4558 lines
7.3 MiB
4558 lines
7.3 MiB
/*
|
||
* 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/).
|
||
*/
|
||
exports.id = "vendor-chunks/next";
|
||
exports.ids = ["vendor-chunks/next"];
|
||
exports.modules = {
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/build/templates/helpers.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/build/templates/helpers.js ***!
|
||
\***********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Hoists a name from a module or promised module.\n *\n * @param module the module to hoist the name from\n * @param name the name to hoist\n * @returns the value on the module (or promised module)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hoist\", ({\n enumerable: true,\n get: function() {\n return hoist;\n }\n}));\nfunction hoist(module, name) {\n // If the name is available in the module, return it.\n if (name in module) {\n return module[name];\n }\n // If a property called `then` exists, assume it's a promise and\n // return a promise that resolves to the name.\n if ('then' in module && typeof module.then === 'function') {\n return module.then((mod)=>hoist(mod, name));\n }\n // If we're trying to hoise the default export, and the module is a function,\n // return the module itself.\n if (typeof module === 'function' && name === 'default') {\n return module;\n }\n // Otherwise, return undefined.\n return undefined;\n}\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseUNBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSG9pc3RzIGEgbmFtZSBmcm9tIGEgbW9kdWxlIG9yIHByb21pc2VkIG1vZHVsZS5cbiAqXG4gKiBAcGFyYW0gbW9kdWxlIHRoZSBtb2R1bGUgdG8gaG9pc3QgdGhlIG5hbWUgZnJvbVxuICogQHBhcmFtIG5hbWUgdGhlIG5hbWUgdG8gaG9pc3RcbiAqIEByZXR1cm5zIHRoZSB2YWx1ZSBvbiB0aGUgbW9kdWxlIChvciBwcm9taXNlZCBtb2R1bGUpXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJob2lzdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaG9pc3Q7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBob2lzdChtb2R1bGUsIG5hbWUpIHtcbiAgICAvLyBJZiB0aGUgbmFtZSBpcyBhdmFpbGFibGUgaW4gdGhlIG1vZHVsZSwgcmV0dXJuIGl0LlxuICAgIGlmIChuYW1lIGluIG1vZHVsZSkge1xuICAgICAgICByZXR1cm4gbW9kdWxlW25hbWVdO1xuICAgIH1cbiAgICAvLyBJZiBhIHByb3BlcnR5IGNhbGxlZCBgdGhlbmAgZXhpc3RzLCBhc3N1bWUgaXQncyBhIHByb21pc2UgYW5kXG4gICAgLy8gcmV0dXJuIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBuYW1lLlxuICAgIGlmICgndGhlbicgaW4gbW9kdWxlICYmIHR5cGVvZiBtb2R1bGUudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbW9kdWxlLnRoZW4oKG1vZCk9PmhvaXN0KG1vZCwgbmFtZSkpO1xuICAgIH1cbiAgICAvLyBJZiB3ZSdyZSB0cnlpbmcgdG8gaG9pc2UgdGhlIGRlZmF1bHQgZXhwb3J0LCBhbmQgdGhlIG1vZHVsZSBpcyBhIGZ1bmN0aW9uLFxuICAgIC8vIHJldHVybiB0aGUgbW9kdWxlIGl0c2VsZi5cbiAgICBpZiAodHlwZW9mIG1vZHVsZSA9PT0gJ2Z1bmN0aW9uJyAmJiBuYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgcmV0dXJuIG1vZHVsZTtcbiAgICB9XG4gICAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdW5kZWZpbmVkLlxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/build/templates/helpers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/redirect-status-code.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGUuanMiLCJtYXBwaW5ncyI6Ijs7OztzREFBWUE7OztlQUFBQTs7O0FBQUwsSUFBS0EscUJBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLGtCQUFBQTs7OztXQUFBQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFJlZGlyZWN0U3RhdHVzQ29kZSB7XG4gIFNlZU90aGVyID0gMzAzLFxuICBUZW1wb3JhcnlSZWRpcmVjdCA9IDMwNyxcbiAgUGVybWFuZW50UmVkaXJlY3QgPSAzMDgsXG59XG4iXSwibmFtZXMiOlsiUmVkaXJlY3RTdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./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)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\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\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 \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\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 {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\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 = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n 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\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n 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, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\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 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\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(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\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 */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n 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)\n 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 */\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 */\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 */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\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 */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].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 = { name: \"\", value: \"\" }) {\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQGVkZ2UtcnVudGltZS9jb29raWVzL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGtDQUFrQztBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLDRGQUE0RjtBQUN6SDtBQUNBO0FBQ0E7QUFDQSxvREFBb0Qsa0JBQWtCLGFBQWE7O0FBRW5GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsT0FBTztBQUM1QyxtRUFBbUUsZ0ZBQWdGO0FBQ25KLGdFQUFnRSxTQUFTO0FBQ3pFLDJDQUEyQyxTQUFTO0FBQ3BEO0FBQ0E7QUFDQSxpREFBaUQsV0FBVztBQUM1RDtBQUNBLGlEQUFpRCxXQUFXO0FBQzVEO0FBQ0EseUJBQXlCLE9BQU8sR0FBRyxxREFBcUQ7QUFDeEYsK0NBQStDLGNBQWMsRUFBRSxjQUFjLEdBQUc7QUFDaEY7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw0QkFBNEI7QUFDaEQscUJBQXFCLGdCQUFnQjtBQUNyQyx1Q0FBdUMsd0JBQXdCO0FBQy9EO0FBQ0EscUJBQXFCLG1DQUFtQztBQUN4RCxtQkFBbUIsY0FBYztBQUNqQyxxQkFBcUIsbUNBQW1DO0FBQ3hELHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyxhQUFhO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGFBQWE7QUFDakM7QUFDQTtBQUNBLDRFQUE0RTtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEVBQTBFO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsaURBQWlEO0FBQzlFO0FBQ0E7QUFDQSxvREFBb0QsT0FBTyxHQUFHLDRCQUE0QixXQUFXO0FBQ3JHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLDRFQUE0RTtBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGtGQUFrRjtBQUN4RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw0RUFBNEU7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0Msd0JBQXdCO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrRkFBa0Y7QUFDeEY7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG1FQUFtRTtBQUN6RjtBQUNBO0FBQ0EsOEJBQThCLGlEQUFpRDtBQUMvRTtBQUNBO0FBQ0EsbUVBQW1FO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxxQkFBcUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxDQU1MIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llcy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19nZXRPd25Qcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7XG4gIGZvciAodmFyIG5hbWUgaW4gYWxsKVxuICAgIF9fZGVmUHJvcCh0YXJnZXQsIG5hbWUsIHsgZ2V0OiBhbGxbbmFtZV0sIGVudW1lcmFibGU6IHRydWUgfSk7XG59O1xudmFyIF9fY29weVByb3BzID0gKHRvLCBmcm9tLCBleGNlcHQsIGRlc2MpID0+IHtcbiAgaWYgKGZyb20gJiYgdHlwZW9mIGZyb20gPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGZyb20gPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGZvciAobGV0IGtleSBvZiBfX2dldE93blByb3BOYW1lcyhmcm9tKSlcbiAgICAgIGlmICghX19oYXNPd25Qcm9wLmNhbGwodG8sIGtleSkgJiYga2V5ICE9PSBleGNlcHQpXG4gICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTtcbiAgfVxuICByZXR1cm4gdG87XG59O1xudmFyIF9fdG9Db21tb25KUyA9IChtb2QpID0+IF9fY29weVByb3BzKF9fZGVmUHJvcCh7fSwgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSksIG1vZCk7XG5cbi8vIHNyYy9pbmRleC50c1xudmFyIHNyY19leHBvcnRzID0ge307XG5fX2V4cG9ydChzcmNfZXhwb3J0cywge1xuICBSZXF1ZXN0Q29va2llczogKCkgPT4gUmVxdWVzdENvb2tpZXMsXG4gIFJlc3BvbnNlQ29va2llczogKCkgPT4gUmVzcG9uc2VDb29raWVzLFxuICBwYXJzZUNvb2tpZTogKCkgPT4gcGFyc2VDb29raWUsXG4gIHBhcnNlU2V0Q29va2llOiAoKSA9PiBwYXJzZVNldENvb2tpZSxcbiAgc3RyaW5naWZ5Q29va2llOiAoKSA9PiBzdHJpbmdpZnlDb29raWVcbn0pO1xubW9kdWxlLmV4cG9ydHMgPSBfX3RvQ29tbW9uSlMoc3JjX2V4cG9ydHMpO1xuXG4vLyBzcmMvc2VyaWFsaXplLnRzXG5mdW5jdGlvbiBzdHJpbmdpZnlDb29raWUoYykge1xuICB2YXIgX2E7XG4gIGNvbnN0IGF0dHJzID0gW1xuICAgIFwicGF0aFwiIGluIGMgJiYgYy5wYXRoICYmIGBQYXRoPSR7Yy5wYXRofWAsXG4gICAgXCJleHBpcmVzXCIgaW4gYyAmJiAoYy5leHBpcmVzIHx8IGMuZXhwaXJlcyA9PT0gMCkgJiYgYEV4cGlyZXM9JHsodHlwZW9mIGMuZXhwaXJlcyA9PT0gXCJudW1iZXJcIiA/IG5ldyBEYXRlKGMuZXhwaXJlcykgOiBjLmV4cGlyZXMpLnRvVVRDU3RyaW5nKCl9YCxcbiAgICBcIm1heEFnZVwiIGluIGMgJiYgdHlwZW9mIGMubWF4QWdlID09PSBcIm51bWJlclwiICYmIGBNYXgtQWdlPSR7Yy5tYXhBZ2V9YCxcbiAgICBcImRvbWFpblwiIGluIGMgJiYgYy5kb21haW4gJiYgYERvbWFpbj0ke2MuZG9tYWlufWAsXG4gICAgXCJzZWN1cmVcIiBpbiBjICYmIGMuc2VjdXJlICYmIFwiU2VjdXJlXCIsXG4gICAgXCJodHRwT25seVwiIGluIGMgJiYgYy5odHRwT25seSAmJiBcIkh0dHBPbmx5XCIsXG4gICAgXCJzYW1lU2l0ZVwiIGluIGMgJiYgYy5zYW1lU2l0ZSAmJiBgU2FtZVNpdGU9JHtjLnNhbWVTaXRlfWAsXG4gICAgXCJwYXJ0aXRpb25lZFwiIGluIGMgJiYgYy5wYXJ0aXRpb25lZCAmJiBcIlBhcnRpdGlvbmVkXCIsXG4gICAgXCJwcmlvcml0eVwiIGluIGMgJiYgYy5wcmlvcml0eSAmJiBgUHJpb3JpdHk9JHtjLnByaW9yaXR5fWBcbiAgXS5maWx0ZXIoQm9vbGVhbik7XG4gIGNvbnN0IHN0cmluZ2lmaWVkID0gYCR7Yy5uYW1lfT0ke2VuY29kZVVSSUNvbXBvbmVudCgoX2EgPSBjLnZhbHVlKSAhPSBudWxsID8gX2EgOiBcIlwiKX1gO1xuICByZXR1cm4gYXR0cnMubGVuZ3RoID09PSAwID8gc3RyaW5naWZpZWQgOiBgJHtzdHJpbmdpZmllZH07ICR7YXR0cnMuam9pbihcIjsgXCIpfWA7XG59XG5mdW5jdGlvbiBwYXJzZUNvb2tpZShjb29raWUpIHtcbiAgY29uc3QgbWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgZm9yIChjb25zdCBwYWlyIG9mIGNvb2tpZS5zcGxpdCgvOyAqLykpIHtcbiAgICBpZiAoIXBhaXIpXG4gICAgICBjb250aW51ZTtcbiAgICBjb25zdCBzcGxpdEF0ID0gcGFpci5pbmRleE9mKFwiPVwiKTtcbiAgICBpZiAoc3BsaXRBdCA9PT0gLTEpIHtcbiAgICAgIG1hcC5zZXQocGFpciwgXCJ0cnVlXCIpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IFtwYWlyLnNsaWNlKDAsIHNwbGl0QXQpLCBwYWlyLnNsaWNlKHNwbGl0QXQgKyAxKV07XG4gICAgdHJ5IHtcbiAgICAgIG1hcC5zZXQoa2V5LCBkZWNvZGVVUklDb21wb25lbnQodmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogXCJ0cnVlXCIpKTtcbiAgICB9IGNhdGNoIHtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1hcDtcbn1cbmZ1bmN0aW9uIHBhcnNlU2V0Q29va2llKHNldENvb2tpZSkge1xuICBpZiAoIXNldENvb2tpZSkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgY29uc3QgW1tuYW1lLCB2YWx1ZV0sIC4uLmF0dHJpYnV0ZXNdID0gcGFyc2VDb29raWUoc2V0Q29va2llKTtcbiAgY29uc3Qge1xuICAgIGRvbWFpbixcbiAgICBleHBpcmVzLFxuICAgIGh0dHBvbmx5LFxuICAgIG1heGFnZSxcbiAgICBwYXRoLFxuICAgIHNhbWVzaXRlLFxuICAgIHNlY3VyZSxcbiAgICBwYXJ0aXRpb25lZCxcbiAgICBwcmlvcml0eVxuICB9ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIGF0dHJpYnV0ZXMubWFwKChba2V5LCB2YWx1ZTJdKSA9PiBbXG4gICAgICBrZXkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8tL2csIFwiXCIpLFxuICAgICAgdmFsdWUyXG4gICAgXSlcbiAgKTtcbiAgY29uc3QgY29va2llID0ge1xuICAgIG5hbWUsXG4gICAgdmFsdWU6IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSksXG4gICAgZG9tYWluLFxuICAgIC4uLmV4cGlyZXMgJiYgeyBleHBpcmVzOiBuZXcgRGF0ZShleHBpcmVzKSB9LFxuICAgIC4uLmh0dHBvbmx5ICYmIHsgaHR0cE9ubHk6IHRydWUgfSxcbiAgICAuLi50eXBlb2YgbWF4YWdlID09PSBcInN0cmluZ1wiICYmIHsgbWF4QWdlOiBOdW1iZXIobWF4YWdlKSB9LFxuICAgIHBhdGgsXG4gICAgLi4uc2FtZXNpdGUgJiYgeyBzYW1lU2l0ZTogcGFyc2VTYW1lU2l0ZShzYW1lc2l0ZSkgfSxcbiAgICAuLi5zZWN1cmUgJiYgeyBzZWN1cmU6IHRydWUgfSxcbiAgICAuLi5wcmlvcml0eSAmJiB7IHByaW9yaXR5OiBwYXJzZVByaW9yaXR5KHByaW9yaXR5KSB9LFxuICAgIC4uLnBhcnRpdGlvbmVkICYmIHsgcGFydGl0aW9uZWQ6IHRydWUgfVxuICB9O1xuICByZXR1cm4gY29tcGFjdChjb29raWUpO1xufVxuZnVuY3Rpb24gY29tcGFjdCh0KSB7XG4gIGNvbnN0IG5ld1QgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gdCkge1xuICAgIGlmICh0W2tleV0pIHtcbiAgICAgIG5ld1Rba2V5XSA9IHRba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld1Q7XG59XG52YXIgU0FNRV9TSVRFID0gW1wic3RyaWN0XCIsIFwibGF4XCIsIFwibm9uZVwiXTtcbmZ1bmN0aW9uIHBhcnNlU2FtZVNpdGUoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gU0FNRV9TSVRFLmluY2x1ZGVzKHN0cmluZykgPyBzdHJpbmcgOiB2b2lkIDA7XG59XG52YXIgUFJJT1JJVFkgPSBbXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCJdO1xuZnVuY3Rpb24gcGFyc2VQcmlvcml0eShzdHJpbmcpIHtcbiAgc3RyaW5nID0gc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBQUklPUklUWS5pbmNsdWRlcyhzdHJpbmcpID8gc3RyaW5nIDogdm9pZCAwO1xufVxuZnVuY3Rpb24gc3BsaXRDb29raWVzU3RyaW5nKGNvb2tpZXNTdHJpbmcpIHtcbiAgaWYgKCFjb29raWVzU3RyaW5nKVxuICAgIHJldHVybiBbXTtcbiAgdmFyIGNvb2tpZXNTdHJpbmdzID0gW107XG4gIHZhciBwb3MgPSAwO1xuICB2YXIgc3RhcnQ7XG4gIHZhciBjaDtcbiAgdmFyIGxhc3RDb21tYTtcbiAgdmFyIG5leHRTdGFydDtcbiAgdmFyIGNvb2tpZXNTZXBhcmF0b3JGb3VuZDtcbiAgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpIHtcbiAgICAgIHBvcyArPSAxO1xuICAgIH1cbiAgICByZXR1cm4gcG9zIDwgY29va2llc1N0cmluZy5sZW5ndGg7XG4gIH1cbiAgZnVuY3Rpb24gbm90U3BlY2lhbENoYXIoKSB7XG4gICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgIHJldHVybiBjaCAhPT0gXCI9XCIgJiYgY2ggIT09IFwiO1wiICYmIGNoICE9PSBcIixcIjtcbiAgfVxuICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICBzdGFydCA9IHBvcztcbiAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSBmYWxzZTtcbiAgICB3aGlsZSAoc2tpcFdoaXRlc3BhY2UoKSkge1xuICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgaWYgKGNoID09PSBcIixcIikge1xuICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgIHBvcyArPSAxO1xuICAgICAgICBza2lwV2hpdGVzcGFjZSgpO1xuICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBub3RTcGVjaWFsQ2hhcigpKSB7XG4gICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykgPT09IFwiPVwiKSB7XG4gICAgICAgICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICBwb3MgPSBuZXh0U3RhcnQ7XG4gICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9zICs9IDE7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNvb2tpZXNTdHJpbmdzO1xufVxuXG4vLyBzcmMvcmVxdWVzdC1jb29raWVzLnRzXG52YXIgUmVxdWVzdENvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlcXVlc3RIZWFkZXJzKSB7XG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuX3BhcnNlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgdGhpcy5faGVhZGVycyA9IHJlcXVlc3RIZWFkZXJzO1xuICAgIGNvbnN0IGhlYWRlciA9IHJlcXVlc3RIZWFkZXJzLmdldChcImNvb2tpZVwiKTtcbiAgICBpZiAoaGVhZGVyKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUNvb2tpZShoZWFkZXIpO1xuICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIHBhcnNlZCkge1xuICAgICAgICB0aGlzLl9wYXJzZWQuc2V0KG5hbWUsIHsgbmFtZSwgdmFsdWUgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIGNvb2tpZXMgcmVjZWl2ZWQgZnJvbSB0aGUgY2xpZW50XG4gICAqL1xuICBnZXQgc2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLnNpemU7XG4gIH1cbiAgZ2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KG5hbWUpO1xuICB9XG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsLm1hcCgoW18sIHZhbHVlXSkgPT4gdmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBuYW1lID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogKF9hID0gYXJnc1swXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLm5hbWU7XG4gICAgcmV0dXJuIGFsbC5maWx0ZXIoKFtuXSkgPT4gbiA9PT0gbmFtZSkubWFwKChbXywgdmFsdWVdKSA9PiB2YWx1ZSk7XG4gIH1cbiAgaGFzKG5hbWUpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmhhcyhuYW1lKTtcbiAgfVxuICBzZXQoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBhcmdzLmxlbmd0aCA9PT0gMSA/IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF0udmFsdWVdIDogYXJncztcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgbWFwLnNldChuYW1lLCB7IG5hbWUsIHZhbHVlIH0pO1xuICAgIHRoaXMuX2hlYWRlcnMuc2V0KFxuICAgICAgXCJjb29raWVcIixcbiAgICAgIEFycmF5LmZyb20obWFwKS5tYXAoKFtfLCB2YWx1ZTJdKSA9PiBzdHJpbmdpZnlDb29raWUodmFsdWUyKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICogRGVsZXRlIHRoZSBjb29raWVzIG1hdGNoaW5nIHRoZSBwYXNzZWQgbmFtZSBvciBuYW1lcyBpbiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGRlbGV0ZShuYW1lcykge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBjb25zdCByZXN1bHQgPSAhQXJyYXkuaXNBcnJheShuYW1lcykgPyBtYXAuZGVsZXRlKG5hbWVzKSA6IG5hbWVzLm1hcCgobmFtZSkgPT4gbWFwLmRlbGV0ZShuYW1lKSk7XG4gICAgdGhpcy5faGVhZGVycy5zZXQoXG4gICAgICBcImNvb2tpZVwiLFxuICAgICAgQXJyYXkuZnJvbShtYXApLm1hcCgoW18sIHZhbHVlXSkgPT4gc3RyaW5naWZ5Q29va2llKHZhbHVlKSkuam9pbihcIjsgXCIpXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgYWxsIHRoZSBjb29raWVzIGluIHRoZSBjb29raWVzIGluIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5kZWxldGUoQXJyYXkuZnJvbSh0aGlzLl9wYXJzZWQua2V5cygpKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgY29va2llcyBpbiB0aGUgcmVxdWVzdCBhcyBhIHN0cmluZyBmb3IgbG9nZ2luZ1xuICAgKi9cbiAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgIHJldHVybiBgUmVxdWVzdENvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKCh2KSA9PiBgJHt2Lm5hbWV9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHYudmFsdWUpfWApLmpvaW4oXCI7IFwiKTtcbiAgfVxufTtcblxuLy8gc3JjL3Jlc3BvbnNlLWNvb2tpZXMudHNcbnZhciBSZXNwb25zZUNvb2tpZXMgPSBjbGFzcyB7XG4gIGNvbnN0cnVjdG9yKHJlc3BvbnNlSGVhZGVycykge1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLl9wYXJzZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIHRoaXMuX2hlYWRlcnMgPSByZXNwb25zZUhlYWRlcnM7XG4gICAgY29uc3Qgc2V0Q29va2llID0gKF9jID0gKF9iID0gKF9hID0gcmVzcG9uc2VIZWFkZXJzLmdldFNldENvb2tpZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLmNhbGwocmVzcG9uc2VIZWFkZXJzKSkgIT0gbnVsbCA/IF9iIDogcmVzcG9uc2VIZWFkZXJzLmdldChcInNldC1jb29raWVcIikpICE9IG51bGwgPyBfYyA6IFtdO1xuICAgIGNvbnN0IGNvb2tpZVN0cmluZ3MgPSBBcnJheS5pc0FycmF5KHNldENvb2tpZSkgPyBzZXRDb29raWUgOiBzcGxpdENvb2tpZXNTdHJpbmcoc2V0Q29va2llKTtcbiAgICBmb3IgKGNvbnN0IGNvb2tpZVN0cmluZyBvZiBjb29raWVTdHJpbmdzKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVNldENvb2tpZShjb29raWVTdHJpbmcpO1xuICAgICAgaWYgKHBhcnNlZClcbiAgICAgICAgdGhpcy5fcGFyc2VkLnNldChwYXJzZWQubmFtZSwgcGFyc2VkKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0IENvb2tpZVN0b3JlI2dldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldCguLi5hcmdzKSB7XG4gICAgY29uc3Qga2V5ID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lO1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuZ2V0KGtleSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtZ2V0QWxsIENvb2tpZVN0b3JlI2dldEFsbH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIGdldEFsbCguLi5hcmdzKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IGFsbCA9IEFycmF5LmZyb20odGhpcy5fcGFyc2VkLnZhbHVlcygpKTtcbiAgICBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYWxsO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiAoX2EgPSBhcmdzWzBdKSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZTtcbiAgICByZXR1cm4gYWxsLmZpbHRlcigoYykgPT4gYy5uYW1lID09PSBrZXkpO1xuICB9XG4gIGhhcyhuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5oYXMobmFtZSk7XG4gIH1cbiAgLyoqXG4gICAqIHtAbGluayBodHRwczovL3dpY2cuZ2l0aHViLmlvL2Nvb2tpZS1zdG9yZS8jQ29va2llU3RvcmUtc2V0IENvb2tpZVN0b3JlI3NldH0gd2l0aG91dCB0aGUgUHJvbWlzZS5cbiAgICovXG4gIHNldCguLi5hcmdzKSB7XG4gICAgY29uc3QgW25hbWUsIHZhbHVlLCBjb29raWVdID0gYXJncy5sZW5ndGggPT09IDEgPyBbYXJnc1swXS5uYW1lLCBhcmdzWzBdLnZhbHVlLCBhcmdzWzBdXSA6IGFyZ3M7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIG1hcC5zZXQobmFtZSwgbm9ybWFsaXplQ29va2llKHsgbmFtZSwgdmFsdWUsIC4uLmNvb2tpZSB9KSk7XG4gICAgcmVwbGFjZShtYXAsIHRoaXMuX2hlYWRlcnMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLWRlbGV0ZSBDb29raWVTdG9yZSNkZWxldGV9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBkZWxldGUoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCBvcHRpb25zXSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gW2FyZ3NbMF1dIDogW2FyZ3NbMF0ubmFtZSwgYXJnc1swXV07XG4gICAgcmV0dXJuIHRoaXMuc2V0KHsgLi4ub3B0aW9ucywgbmFtZSwgdmFsdWU6IFwiXCIsIGV4cGlyZXM6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgwKSB9KTtcbiAgfVxuICBbU3ltYm9sLmZvcihcImVkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbVwiKV0oKSB7XG4gICAgcmV0dXJuIGBSZXNwb25zZUNvb2tpZXMgJHtKU09OLnN0cmluZ2lmeShPYmplY3QuZnJvbUVudHJpZXModGhpcy5fcGFyc2VkKSl9YDtcbiAgfVxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX3BhcnNlZC52YWx1ZXMoKV0ubWFwKHN0cmluZ2lmeUNvb2tpZSkuam9pbihcIjsgXCIpO1xuICB9XG59O1xuZnVuY3Rpb24gcmVwbGFjZShiYWcsIGhlYWRlcnMpIHtcbiAgaGVhZGVycy5kZWxldGUoXCJzZXQtY29va2llXCIpO1xuICBmb3IgKGNvbnN0IFssIHZhbHVlXSBvZiBiYWcpIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gc3RyaW5naWZ5Q29va2llKHZhbHVlKTtcbiAgICBoZWFkZXJzLmFwcGVuZChcInNldC1jb29raWVcIiwgc2VyaWFsaXplZCk7XG4gIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNvb2tpZShjb29raWUgPSB7IG5hbWU6IFwiXCIsIHZhbHVlOiBcIlwiIH0pIHtcbiAgaWYgKHR5cGVvZiBjb29raWUuZXhwaXJlcyA9PT0gXCJudW1iZXJcIikge1xuICAgIGNvb2tpZS5leHBpcmVzID0gbmV3IERhdGUoY29va2llLmV4cGlyZXMpO1xuICB9XG4gIGlmIChjb29raWUubWF4QWdlKSB7XG4gICAgY29va2llLmV4cGlyZXMgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgY29va2llLm1heEFnZSAqIDFlMyk7XG4gIH1cbiAgaWYgKGNvb2tpZS5wYXRoID09PSBudWxsIHx8IGNvb2tpZS5wYXRoID09PSB2b2lkIDApIHtcbiAgICBjb29raWUucGF0aCA9IFwiL1wiO1xuICB9XG4gIHJldHVybiBjb29raWU7XG59XG4vLyBBbm5vdGF0ZSB0aGUgQ29tbW9uSlMgZXhwb3J0IG5hbWVzIGZvciBFU00gaW1wb3J0IGluIG5vZGU6XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgUmVxdWVzdENvb2tpZXMsXG4gIFJlc3BvbnNlQ29va2llcyxcbiAgcGFyc2VDb29raWUsXG4gIHBhcnNlU2V0Q29va2llLFxuICBzdHJpbmdpZnlDb29raWVcbn0pO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/@opentelemetry/api/index.js ***!
|
||
\*********************************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("(()=>{\"use strict\";var e={491:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(223);const a=r(172);const o=r(930);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},930:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(56);const a=r(912);const o=r(957);const i=r(172);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"<failed to generate stacktrace>\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},653:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(660);const a=r(172);const o=r(930);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},181:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(172);const a=r(874);const o=r(194);const i=r(277);const c=r(369);const s=r(930);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},997:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(172);const a=r(846);const o=r(139);const i=r(607);const c=r(930);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},277:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(491);const a=r(780);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},993:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},830:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},369:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(930);const a=r(993);const o=r(830);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},67:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(780);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},780:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},506:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(172);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},972:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e<r.length;e++){this[r[e].n]=_consoleFunc(r[e].c)}}}t.DiagConsoleLogger=DiagConsoleLogger},912:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(957);function createLogLevelDiagLogger(e,t){if(e<n.DiagLogLevel.NONE){e=n.DiagLogLevel.NONE}else if(e>n.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},957:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(200);const a=r(521);const o=r(130);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},130:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(521);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});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;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},660:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(102);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},194:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},845:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(476);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},614:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(491);const a=r(607);const o=r(403);const i=r(139);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},124:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(614);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},125:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(614);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},846:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(125);const a=r(124);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},996:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(780);const a=r(403);const o=r(491);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},325:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(564);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},564:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},98:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(325);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},476:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(475);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(476);const a=r(403);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},847:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});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;var t=__nccwpck_require__(369);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(780);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(972);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(957);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(102);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(901);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(194);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(125);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(846);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(996);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(357);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(847);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(475);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(98);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(139);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(476);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(67);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(506);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(886);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(939);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(845);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPLGNBQWMsc0NBQXNDLFdBQVcsRUFBRSxvQkFBb0IsZUFBZSxlQUFlLGVBQWUsa0JBQWtCLGlDQUFpQyxpQkFBaUIsZUFBZSxxQkFBcUIsb0JBQW9CLDhCQUE4QixzQkFBc0IsMkJBQTJCLHFEQUFxRCxTQUFTLDBDQUEwQyxpQkFBaUIsa0RBQWtELFVBQVUsMkNBQTJDLHFCQUFxQiw0QkFBNEIsVUFBVSxvQ0FBb0MsZ0RBQWdELHdCQUF3QixlQUFlLHNDQUFzQyxXQUFXLEVBQUUsaUJBQWlCLGNBQWMsZUFBZSxlQUFlLGVBQWUsZUFBZSxjQUFjLGNBQWMsc0JBQXNCLHNCQUFzQixnQ0FBZ0MsYUFBYSxtQkFBbUIsYUFBYSxzQkFBc0IsNkJBQTZCLElBQUksVUFBVSxVQUFVLHdKQUF3SixvREFBb0QsYUFBYSx3QkFBd0IsR0FBRyxZQUFZLGdDQUFnQyxrR0FBa0csa0NBQWtDLHFGQUFxRixrREFBa0QsRUFBRSxHQUFHLG9FQUFvRSxFQUFFLEdBQUcsNkNBQTZDLHNCQUFzQixlQUFlLDZCQUE2Qix3REFBd0QsK0JBQStCLDJCQUEyQix5QkFBeUIseUJBQXlCLDJCQUEyQixrQkFBa0Isb0JBQW9CLDJCQUEyQix1QkFBdUIsa0JBQWtCLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSxvQkFBb0IsZUFBZSxlQUFlLGVBQWUsa0JBQWtCLGlCQUFpQixlQUFlLHFCQUFxQixvQkFBb0IsOEJBQThCLHNCQUFzQiwwQkFBMEIscURBQXFELG1CQUFtQixnREFBZ0QsZ0JBQWdCLCtDQUErQyxVQUFVLGdEQUFnRCx3QkFBd0IsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLHdCQUF3QixlQUFlLGVBQWUsZUFBZSxlQUFlLGVBQWUsZUFBZSxzQkFBc0Isb0NBQW9DLHFCQUFxQixjQUFjLG1DQUFtQyw2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LCtCQUErQixFQUFFLGdDQUFnQyxtQ0FBbUMsK0JBQStCLGtCQUFrQixFQUFFLGlDQUFpQyxnQ0FBZ0MsK0JBQStCLGVBQWUsRUFBRSxpQ0FBaUMsbUNBQW1DLCtCQUErQixrQkFBa0IsRUFBRSxpQ0FBaUMsdUNBQXVDLCtCQUErQixzQkFBc0IsRUFBRSxpQ0FBaUMsaUNBQWlDLCtCQUErQixnQkFBZ0IsRUFBRSxjQUFjLHlGQUF5RixJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9Ab3BlbnRlbGVtZXRyeS9hcGkvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezQ5MTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkNvbnRleHRBUEk9dm9pZCAwO2NvbnN0IG49cigyMjMpO2NvbnN0IGE9cigxNzIpO2NvbnN0IG89cig5MzApO2NvbnN0IGk9XCJjb250ZXh0XCI7Y29uc3QgYz1uZXcgbi5Ob29wQ29udGV4dE1hbmFnZXI7Y2xhc3MgQ29udGV4dEFQSXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBDb250ZXh0QVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxDb250ZXh0TWFuYWdlcihlKXtyZXR1cm4oMCxhLnJlZ2lzdGVyR2xvYmFsKShpLGUsby5EaWFnQVBJLmluc3RhbmNlKCkpfWFjdGl2ZSgpe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmFjdGl2ZSgpfXdpdGgoZSx0LHIsLi4ubil7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkud2l0aChlLHQsciwuLi5uKX1iaW5kKGUsdCl7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuYmluZChlLHQpfV9nZXRDb250ZXh0TWFuYWdlcigpe3JldHVybigwLGEuZ2V0R2xvYmFsKShpKXx8Y31kaXNhYmxlKCl7dGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5kaXNhYmxlKCk7KDAsYS51bnJlZ2lzdGVyR2xvYmFsKShpLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX19dC5Db250ZXh0QVBJPUNvbnRleHRBUEl9LDkzMDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdBUEk9dm9pZCAwO2NvbnN0IG49cig1Nik7Y29uc3QgYT1yKDkxMik7Y29uc3Qgbz1yKDk1Nyk7Y29uc3QgaT1yKDE3Mik7Y29uc3QgYz1cImRpYWdcIjtjbGFzcyBEaWFnQVBJe2NvbnN0cnVjdG9yKCl7ZnVuY3Rpb24gX2xvZ1Byb3h5KGUpe3JldHVybiBmdW5jdGlvbiguLi50KXtjb25zdCByPSgwLGkuZ2V0R2xvYmFsKShcImRpYWdcIik7aWYoIXIpcmV0dXJuO3JldHVybiByW2VdKC4uLnQpfX1jb25zdCBlPXRoaXM7Y29uc3Qgc2V0TG9nZ2VyPSh0LHI9e2xvZ0xldmVsOm8uRGlhZ0xvZ0xldmVsLklORk99KT0+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+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5WRVJTSU9OPXZvaWQgMDt0LlZFUlNJT049XCIxLjYuMFwifX07dmFyIHQ9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhyKXt2YXIgbj10W3JdO2lmKG4hPT11bmRlZmluZWQpe3JldHVybiBuLmV4cG9ydHN9dmFyIGE9dFtyXT17ZXhwb3J0czp7fX07dmFyIG89dHJ1ZTt0cnl7ZVtyXS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtvPWZhbHNlfWZpbmFsbHl7aWYobylkZWxldGUgdFtyXX1yZXR1cm4gYS5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgcj17fTsoKCk9Pnt2YXIgZT1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7ZS50cmFjZT1lLnByb3BhZ2F0aW9uPWUubWV0cmljcz1lLmRpYWc9ZS5jb250ZXh0PWUuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9ZS5JTlZBTElEX1RSQUNFSUQ9ZS5JTlZBTElEX1NQQU5JRD1lLmlzVmFsaWRTcGFuSWQ9ZS5pc1ZhbGlkVHJhY2VJZD1lLmlzU3BhbkNvbnRleHRWYWxpZD1lLmNyZWF0ZVRyYWNlU3RhdGU9ZS5UcmFjZUZsYWdzPWUuU3BhblN0YXR1c0NvZGU9ZS5TcGFuS2luZD1lLlNhbXBsaW5nRGVjaXNpb249ZS5Qcm94eVRyYWNlclByb3ZpZGVyPWUuUHJveHlUcmFjZXI9ZS5kZWZhdWx0VGV4dE1hcFNldHRlcj1lLmRlZmF1bHRUZXh0TWFwR2V0dGVyPWUuVmFsdWVUeXBlPWUuY3JlYXRlTm9vcE1ldGVyPWUuRGlhZ0xvZ0xldmVsPWUuRGlhZ0NvbnNvbGVMb2dnZXI9ZS5ST09UX0NPTlRFWFQ9ZS5jcmVhdGVDb250ZXh0S2V5PWUuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPXZvaWQgMDt2YXIgdD1fX25jY3dwY2tfcmVxdWlyZV9fKDM2OSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJiYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmdcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ319KTt2YXIgbj1fX25jY3dwY2tfcmVxdWlyZV9fKDc4MCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjcmVhdGVDb250ZXh0S2V5XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jcmVhdGVDb250ZXh0S2V5fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUk9PVF9DT05URVhUXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5ST09UX0NPTlRFWFR9fSk7dmFyIGE9X19uY2N3cGNrX3JlcXVpcmVfXyg5NzIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiRGlhZ0NvbnNvbGVMb2dnZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBhLkRpYWdDb25zb2xlTG9nZ2VyfX0pO3ZhciBvPV9fbmNjd3Bja19yZXF1aXJlX18oOTU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIkRpYWdMb2dMZXZlbFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uRGlhZ0xvZ0xldmVsfX0pO3ZhciBpPV9fbmNjd3Bja19yZXF1aXJlX18oMTAyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZU5vb3BNZXRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGkuY3JlYXRlTm9vcE1ldGVyfX0pO3ZhciBjPV9fbmNjd3Bja19yZXF1aXJlX18oOTAxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlZhbHVlVHlwZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuVmFsdWVUeXBlfX0pO3ZhciBzPV9fbmNjd3Bja19yZXF1aXJlX18oMTk0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwR2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcEdldHRlcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRlZmF1bHRUZXh0TWFwU2V0dGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kZWZhdWx0VGV4dE1hcFNldHRlcn19KTt2YXIgdT1fX25jY3dwY2tfcmVxdWlyZV9fKDEyNSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJQcm94eVRyYWNlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuUHJveHlUcmFjZXJ9fSk7dmFyIGw9X19uY2N3cGNrX3JlcXVpcmVfXyg4NDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUHJveHlUcmFjZXJQcm92aWRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGwuUHJveHlUcmFjZXJQcm92aWRlcn19KTt2YXIgZz1fX25jY3dwY2tfcmVxdWlyZV9fKDk5Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTYW1wbGluZ0RlY2lzaW9uXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5TYW1wbGluZ0RlY2lzaW9ufX0pO3ZhciBwPV9fbmNjd3Bja19yZXF1aXJlX18oMzU3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNwYW5LaW5kXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcC5TcGFuS2luZH19KTt2YXIgZD1fX25jY3dwY2tfcmVxdWlyZV9fKDg0Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTcGFuU3RhdHVzQ29kZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQuU3BhblN0YXR1c0NvZGV9fSk7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXyg0NzUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiVHJhY2VGbGFnc1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIF8uVHJhY2VGbGFnc319KTt2YXIgZj1fX25jY3dwY2tfcmVxdWlyZV9fKDk4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZVRyYWNlU3RhdGVcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBmLmNyZWF0ZVRyYWNlU3RhdGV9fSk7dmFyIGI9X19uY2N3cGNrX3JlcXVpcmVfXygxMzkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaXNTcGFuQ29udGV4dFZhbGlkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1NwYW5Db250ZXh0VmFsaWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkVHJhY2VJZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuaXNWYWxpZFRyYWNlSWR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1ZhbGlkU3BhbklkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1ZhbGlkU3BhbklkfX0pO3ZhciB2PV9fbmNjd3Bja19yZXF1aXJlX18oNDc2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfU1BBTklEXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1NQQU5JRH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfVFJBQ0VJRFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9UUkFDRUlEfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9TUEFOX0NPTlRFWFRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfU1BBTl9DT05URVhUfX0pO2NvbnN0IE89X19uY2N3cGNrX3JlcXVpcmVfXyg2Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjb250ZXh0XCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTy5jb250ZXh0fX0pO2NvbnN0IFA9X19uY2N3cGNrX3JlcXVpcmVfXyg1MDYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGlhZ1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFAuZGlhZ319KTtjb25zdCBOPV9fbmNjd3Bja19yZXF1aXJlX18oODg2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIm1ldHJpY3NcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBOLm1ldHJpY3N9fSk7Y29uc3QgUz1fX25jY3dwY2tfcmVxdWlyZV9fKDkzOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJwcm9wYWdhdGlvblwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFMucHJvcGFnYXRpb259fSk7Y29uc3QgQz1fX25jY3dwY2tfcmVxdWlyZV9fKDg0NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJ0cmFjZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEMudHJhY2V9fSk7ZVtcImRlZmF1bHRcIl09e2NvbnRleHQ6Ty5jb250ZXh0LGRpYWc6UC5kaWFnLG1ldHJpY3M6Ti5tZXRyaWNzLHByb3BhZ2F0aW9uOlMucHJvcGFnYXRpb24sdHJhY2U6Qy50cmFjZX19KSgpO21vZHVsZS5leHBvcnRzPXJ9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/compiled/fresh/index.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/fresh/index.js ***!
|
||
\********************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("(()=>{\"use strict\";var e={695:e=>{\n/*!\n * fresh\n * Copyright(c) 2012 TJ Holowaychuk\n * Copyright(c) 2016-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar r=/(?:^|,)\\s*?no-cache\\s*?(?:,|$)/;e.exports=fresh;function fresh(e,a){var t=e[\"if-modified-since\"];var s=e[\"if-none-match\"];if(!t&&!s){return false}var i=e[\"cache-control\"];if(i&&r.test(i)){return false}if(s&&s!==\"*\"){var f=a[\"etag\"];if(!f){return false}var n=true;var u=parseTokenList(s);for(var _=0;_<u.length;_++){var o=u[_];if(o===f||o===\"W/\"+f||\"W/\"+o===f){n=false;break}}if(n){return false}}if(t){var p=a[\"last-modified\"];var v=!p||!(parseHttpDate(p)<=parseHttpDate(t));if(v){return false}}return true}function parseHttpDate(e){var r=e&&Date.parse(e);return typeof r===\"number\"?r:NaN}function parseTokenList(e){var r=0;var a=[];var t=0;for(var s=0,i=e.length;s<i;s++){switch(e.charCodeAt(s)){case 32:if(t===r){t=r=s+1}break;case 44:a.push(e.substring(t,r));t=r=s+1;break;default:r=s+1;break}}a.push(e.substring(t,r));return a}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var s=r[a]={exports:{}};var i=true;try{e[a](s,s.exports,__nccwpck_require__);i=false}finally{if(i)delete r[a]}return s.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(695);module.exports=a})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvZnJlc2gvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxhQUFhLE9BQU87QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLGdCQUFnQixvQkFBb0IsNkJBQTZCLHlCQUF5QixXQUFXLGFBQWEseUJBQXlCLGlCQUFpQixhQUFhLGVBQWUsZ0JBQWdCLE9BQU8sYUFBYSxXQUFXLHdCQUF3QixZQUFZLFdBQVcsS0FBSyxXQUFXLGtDQUFrQyxRQUFRLE9BQU8sTUFBTSxjQUFjLE1BQU0seUJBQXlCLGdEQUFnRCxNQUFNLGNBQWMsWUFBWSwwQkFBMEIsdUJBQXVCLGlDQUFpQywyQkFBMkIsUUFBUSxTQUFTLFFBQVEsdUJBQXVCLElBQUksS0FBSyx3QkFBd0Isa0JBQWtCLFFBQVEsTUFBTSxpQ0FBaUMsUUFBUSxNQUFNLGNBQWMsT0FBTyx5QkFBeUIsWUFBWSxTQUFTLGdDQUFnQyxXQUFXLGtCQUFrQixpQkFBaUIsWUFBWSxZQUFZLFdBQVcsSUFBSSxzQ0FBc0MsUUFBUSxRQUFRLGlCQUFpQixpQkFBaUIsaUZBQWlGLCtCQUErQixpQkFBaUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvZnJlc2gvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezY5NTplPT57XG4vKiFcbiAqIGZyZXNoXG4gKiBDb3B5cmlnaHQoYykgMjAxMiBUSiBIb2xvd2F5Y2h1a1xuICogQ29weXJpZ2h0KGMpIDIwMTYtMjAxNyBEb3VnbGFzIENocmlzdG9waGVyIFdpbHNvblxuICogTUlUIExpY2Vuc2VkXG4gKi9cbnZhciByPS8oPzpefCwpXFxzKj9uby1jYWNoZVxccyo/KD86LHwkKS87ZS5leHBvcnRzPWZyZXNoO2Z1bmN0aW9uIGZyZXNoKGUsYSl7dmFyIHQ9ZVtcImlmLW1vZGlmaWVkLXNpbmNlXCJdO3ZhciBzPWVbXCJpZi1ub25lLW1hdGNoXCJdO2lmKCF0JiYhcyl7cmV0dXJuIGZhbHNlfXZhciBpPWVbXCJjYWNoZS1jb250cm9sXCJdO2lmKGkmJnIudGVzdChpKSl7cmV0dXJuIGZhbHNlfWlmKHMmJnMhPT1cIipcIil7dmFyIGY9YVtcImV0YWdcIl07aWYoIWYpe3JldHVybiBmYWxzZX12YXIgbj10cnVlO3ZhciB1PXBhcnNlVG9rZW5MaXN0KHMpO2Zvcih2YXIgXz0wO188dS5sZW5ndGg7XysrKXt2YXIgbz11W19dO2lmKG89PT1mfHxvPT09XCJXL1wiK2Z8fFwiVy9cIitvPT09Zil7bj1mYWxzZTticmVha319aWYobil7cmV0dXJuIGZhbHNlfX1pZih0KXt2YXIgcD1hW1wibGFzdC1tb2RpZmllZFwiXTt2YXIgdj0hcHx8IShwYXJzZUh0dHBEYXRlKHApPD1wYXJzZUh0dHBEYXRlKHQpKTtpZih2KXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfWZ1bmN0aW9uIHBhcnNlSHR0cERhdGUoZSl7dmFyIHI9ZSYmRGF0ZS5wYXJzZShlKTtyZXR1cm4gdHlwZW9mIHI9PT1cIm51bWJlclwiP3I6TmFOfWZ1bmN0aW9uIHBhcnNlVG9rZW5MaXN0KGUpe3ZhciByPTA7dmFyIGE9W107dmFyIHQ9MDtmb3IodmFyIHM9MCxpPWUubGVuZ3RoO3M8aTtzKyspe3N3aXRjaChlLmNoYXJDb2RlQXQocykpe2Nhc2UgMzI6aWYodD09PXIpe3Q9cj1zKzF9YnJlYWs7Y2FzZSA0NDphLnB1c2goZS5zdWJzdHJpbmcodCxyKSk7dD1yPXMrMTticmVhaztkZWZhdWx0OnI9cysxO2JyZWFrfX1hLnB1c2goZS5zdWJzdHJpbmcodCxyKSk7cmV0dXJuIGF9fX07dmFyIHI9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhhKXt2YXIgdD1yW2FdO2lmKHQhPT11bmRlZmluZWQpe3JldHVybiB0LmV4cG9ydHN9dmFyIHM9clthXT17ZXhwb3J0czp7fX07dmFyIGk9dHJ1ZTt0cnl7ZVthXShzLHMuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtpPWZhbHNlfWZpbmFsbHl7aWYoaSlkZWxldGUgclthXX1yZXR1cm4gcy5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgYT1fX25jY3dwY2tfcmVxdWlyZV9fKDY5NSk7bW9kdWxlLmV4cG9ydHM9YX0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/compiled/fresh/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/lib/batcher.js":
|
||
/*!***********************************************!*\
|
||
!*** ./node_modules/next/dist/lib/batcher.js ***!
|
||
\***********************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Batcher\", ({\n enumerable: true,\n get: function() {\n return Batcher;\n }\n}));\nconst _detachedpromise = __webpack_require__(/*! ./detached-promise */ \"(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\");\nclass Batcher {\n constructor(cacheKeyFn, /**\n * A function that will be called to schedule the wrapped function to be\n * executed. This defaults to a function that will execute the function\n * immediately.\n */ schedulerFn = (fn)=>fn()){\n this.cacheKeyFn = cacheKeyFn;\n this.schedulerFn = schedulerFn;\n this.pending = new Map();\n }\n static create(options) {\n return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn);\n }\n /**\n * Wraps a function in a promise that will be resolved or rejected only once\n * for a given key. This will allow multiple calls to the function to be\n * made, but only one will be executed at a time. The result of the first\n * call will be returned to all callers.\n *\n * @param key the key to use for the cache\n * @param fn the function to wrap\n * @returns a promise that resolves to the result of the function\n */ async batch(key, fn) {\n const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key;\n if (cacheKey === null) {\n return fn(cacheKey, Promise.resolve);\n }\n const pending = this.pending.get(cacheKey);\n if (pending) return pending;\n const { promise, resolve, reject } = new _detachedpromise.DetachedPromise();\n this.pending.set(cacheKey, promise);\n this.schedulerFn(async ()=>{\n try {\n const result = await fn(cacheKey, resolve);\n // Resolving a promise multiple times is a no-op, so we can safely\n // resolve all pending promises with the same result.\n resolve(result);\n } catch (err) {\n reject(err);\n } finally{\n this.pending.delete(cacheKey);\n }\n });\n return promise;\n }\n}\n\n//# sourceMappingURL=batcher.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2JhdGNoZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRix5QkFBeUIsbUJBQU8sQ0FBQyw2RkFBb0I7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwyQkFBMkI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2JhdGNoZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJCYXRjaGVyXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCYXRjaGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuL2RldGFjaGVkLXByb21pc2VcIik7XG5jbGFzcyBCYXRjaGVyIHtcbiAgICBjb25zdHJ1Y3RvcihjYWNoZUtleUZuLCAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgdG8gc2NoZWR1bGUgdGhlIHdyYXBwZWQgZnVuY3Rpb24gdG8gYmVcbiAgICAgKiBleGVjdXRlZC4gVGhpcyBkZWZhdWx0cyB0byBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAqIGltbWVkaWF0ZWx5LlxuICAgICAqLyBzY2hlZHVsZXJGbiA9IChmbik9PmZuKCkpe1xuICAgICAgICB0aGlzLmNhY2hlS2V5Rm4gPSBjYWNoZUtleUZuO1xuICAgICAgICB0aGlzLnNjaGVkdWxlckZuID0gc2NoZWR1bGVyRm47XG4gICAgICAgIHRoaXMucGVuZGluZyA9IG5ldyBNYXAoKTtcbiAgICB9XG4gICAgc3RhdGljIGNyZWF0ZShvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBuZXcgQmF0Y2hlcihvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLmNhY2hlS2V5Rm4sIG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMuc2NoZWR1bGVyRm4pO1xuICAgIH1cbiAgICAvKipcbiAgICogV3JhcHMgYSBmdW5jdGlvbiBpbiBhIHByb21pc2UgdGhhdCB3aWxsIGJlIHJlc29sdmVkIG9yIHJlamVjdGVkIG9ubHkgb25jZVxuICAgKiBmb3IgYSBnaXZlbiBrZXkuIFRoaXMgd2lsbCBhbGxvdyBtdWx0aXBsZSBjYWxscyB0byB0aGUgZnVuY3Rpb24gdG8gYmVcbiAgICogbWFkZSwgYnV0IG9ubHkgb25lIHdpbGwgYmUgZXhlY3V0ZWQgYXQgYSB0aW1lLiBUaGUgcmVzdWx0IG9mIHRoZSBmaXJzdFxuICAgKiBjYWxsIHdpbGwgYmUgcmV0dXJuZWQgdG8gYWxsIGNhbGxlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBjYWNoZVxuICAgKiBAcGFyYW0gZm4gdGhlIGZ1bmN0aW9uIHRvIHdyYXBcbiAgICogQHJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb25cbiAgICovIGFzeW5jIGJhdGNoKGtleSwgZm4pIHtcbiAgICAgICAgY29uc3QgY2FjaGVLZXkgPSB0aGlzLmNhY2hlS2V5Rm4gPyBhd2FpdCB0aGlzLmNhY2hlS2V5Rm4oa2V5KSA6IGtleTtcbiAgICAgICAgaWYgKGNhY2hlS2V5ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZm4oY2FjaGVLZXksIFByb21pc2UucmVzb2x2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGVuZGluZyA9IHRoaXMucGVuZGluZy5nZXQoY2FjaGVLZXkpO1xuICAgICAgICBpZiAocGVuZGluZykgcmV0dXJuIHBlbmRpbmc7XG4gICAgICAgIGNvbnN0IHsgcHJvbWlzZSwgcmVzb2x2ZSwgcmVqZWN0IH0gPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nLnNldChjYWNoZUtleSwgcHJvbWlzZSk7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVyRm4oYXN5bmMgKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZm4oY2FjaGVLZXksIHJlc29sdmUpO1xuICAgICAgICAgICAgICAgIC8vIFJlc29sdmluZyBhIHByb21pc2UgbXVsdGlwbGUgdGltZXMgaXMgYSBuby1vcCwgc28gd2UgY2FuIHNhZmVseVxuICAgICAgICAgICAgICAgIC8vIHJlc29sdmUgYWxsIHBlbmRpbmcgcHJvbWlzZXMgd2l0aCB0aGUgc2FtZSByZXN1bHQuXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nLmRlbGV0ZShjYWNoZUtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhdGNoZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/batcher.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/lib/constants.js":
|
||
/*!*************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/constants.js ***!
|
||
\*************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n HTML_CONTENT_TYPE_HEADER: function() {\n return HTML_CONTENT_TYPE_HEADER;\n },\n INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n JSON_CONTENT_TYPE_HEADER: function() {\n return JSON_CONTENT_TYPE_HEADER;\n },\n MATCHED_PATH_HEADER: function() {\n return MATCHED_PATH_HEADER;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NEXT_RESUME_HEADER: function() {\n return NEXT_RESUME_HEADER;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_CACHE_WRAPPER_ALIAS: function() {\n return RSC_CACHE_WRAPPER_ALIAS;\n },\n RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: function() {\n return RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SEGMENTS_DIR_SUFFIX: function() {\n return RSC_SEGMENTS_DIR_SUFFIX;\n },\n RSC_SEGMENT_SUFFIX: function() {\n return RSC_SEGMENT_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n TEXT_PLAIN_CONTENT_TYPE_HEADER: function() {\n return TEXT_PLAIN_CONTENT_TYPE_HEADER;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain';\nconst HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8';\nconst JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8';\nconst NEXT_QUERY_PARAM_PREFIX = 'nxtP';\nconst NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI';\nconst MATCHED_PATH_HEADER = 'x-matched-path';\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_SEGMENTS_DIR_SUFFIX = '.segments';\nconst RSC_SEGMENT_SUFFIX = '.segment.rsc';\nconst RSC_SUFFIX = '.rsc';\nconst ACTION_SUFFIX = '.action';\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_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_RESUME_HEADER = 'next-resume';\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_';\nconst CACHE_ONE_YEAR = 31536000;\nconst INFINITE_CACHE = 0xfffffffe;\nconst MIDDLEWARE_FILENAME = 'middleware';\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = 'instrumentation';\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-server-reference';\nconst RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper';\nconst RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import';\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 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 * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\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 Node.js bundle layer for the API routes.\n */ apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */ apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */ middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */ instrument: 'instrument',\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 browser client bundle layer for Pages directory.\n */ pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */ pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */ pagesDirNode: 'pages-dir-node'\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser\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\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0F5REw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSw2Q0FBNkM7QUFDN0Msb0RBQW9EO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxvQkFBb0I7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFDVElPTl9TVUZGSVg6IG51bGwsXG4gICAgQVBQX0RJUl9BTElBUzogbnVsbCxcbiAgICBDQUNIRV9PTkVfWUVBUjogbnVsbCxcbiAgICBET1RfTkVYVF9BTElBUzogbnVsbCxcbiAgICBFU0xJTlRfREVGQVVMVF9ESVJTOiBudWxsLFxuICAgIEdTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I6IG51bGwsXG4gICAgR1NTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVI6IG51bGwsXG4gICAgSU5GSU5JVEVfQ0FDSEU6IG51bGwsXG4gICAgSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUU6IG51bGwsXG4gICAgSlNPTl9DT05URU5UX1RZUEVfSEVBREVSOiBudWxsLFxuICAgIE1BVENIRURfUEFUSF9IRUFERVI6IG51bGwsXG4gICAgTUlERExFV0FSRV9GSUxFTkFNRTogbnVsbCxcbiAgICBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDogbnVsbCxcbiAgICBORVhUX0JPRFlfU1VGRklYOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHU19IRUFERVI6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg6IG51bGwsXG4gICAgTkVYVF9EQVRBX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYOiBudWxsLFxuICAgIE5FWFRfTUVUQV9TVUZGSVg6IG51bGwsXG4gICAgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVg6IG51bGwsXG4gICAgTkVYVF9SRVNVTUVfSEVBREVSOiBudWxsLFxuICAgIE5PTl9TVEFOREFSRF9OT0RFX0VOVjogbnVsbCxcbiAgICBQQUdFU19ESVJfQUxJQVM6IG51bGwsXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSOiBudWxsLFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUjogbnVsbCxcbiAgICBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1Q6IG51bGwsXG4gICAgUk9PVF9ESVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9QUk9YWV9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTOiBudWxsLFxuICAgIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19EWU5BTUlDX0lNUE9SVF9XUkFQUEVSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTOiBudWxsLFxuICAgIFJTQ19QUkVGRVRDSF9TVUZGSVg6IG51bGwsXG4gICAgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVg6IG51bGwsXG4gICAgUlNDX1NFR01FTlRfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TVUZGSVg6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjogbnVsbCxcbiAgICBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX1NTR19DT05GTElDVDogbnVsbCxcbiAgICBTRVJWRVJfUlVOVElNRTogbnVsbCxcbiAgICBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SOiBudWxsLFxuICAgIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDogbnVsbCxcbiAgICBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I6IG51bGwsXG4gICAgVEVYVF9QTEFJTl9DT05URU5UX1RZUEVfSEVBREVSOiBudWxsLFxuICAgIFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SOiBudWxsLFxuICAgIFdFQlBBQ0tfTEFZRVJTOiBudWxsLFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBQ1RJT05fU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFDVElPTl9TVUZGSVg7XG4gICAgfSxcbiAgICBBUFBfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFQUF9ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBDQUNIRV9PTkVfWUVBUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBDQUNIRV9PTkVfWUVBUjtcbiAgICB9LFxuICAgIERPVF9ORVhUX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIERPVF9ORVhUX0FMSUFTO1xuICAgIH0sXG4gICAgRVNMSU5UX0RFRkFVTFRfRElSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFU0xJTlRfREVGQVVMVF9ESVJTO1xuICAgIH0sXG4gICAgR1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTUF9OT19SRVRVUk5FRF9WQUxVRTtcbiAgICB9LFxuICAgIEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I7XG4gICAgfSxcbiAgICBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTU1BfTk9fUkVUVVJORURfVkFMVUU7XG4gICAgfSxcbiAgICBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSFRNTF9DT05URU5UX1RZUEVfSEVBREVSO1xuICAgIH0sXG4gICAgSU5GSU5JVEVfQ0FDSEU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSU5GSU5JVEVfQ0FDSEU7XG4gICAgfSxcbiAgICBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTtcbiAgICB9LFxuICAgIEpTT05fQ09OVEVOVF9UWVBFX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBKU09OX0NPTlRFTlRfVFlQRV9IRUFERVI7XG4gICAgfSxcbiAgICBNQVRDSEVEX1BBVEhfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1BVENIRURfUEFUSF9IRUFERVI7XG4gICAgfSxcbiAgICBNSURETEVXQVJFX0ZJTEVOQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1JRERMRVdBUkVfRklMRU5BTUU7XG4gICAgfSxcbiAgICBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUDtcbiAgICB9LFxuICAgIE5FWFRfQk9EWV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9CT0RZX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVI7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9UQUdTX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1RBR1NfSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUztcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSDtcbiAgICB9LFxuICAgIE5FWFRfREFUQV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9EQVRBX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWDtcbiAgICB9LFxuICAgIE5FWFRfTUVUQV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9NRVRBX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYO1xuICAgIH0sXG4gICAgTkVYVF9SRVNVTUVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUkVTVU1FX0hFQURFUjtcbiAgICB9LFxuICAgIE5PTl9TVEFOREFSRF9OT0RFX0VOVjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOT05fU1RBTkRBUkRfTk9ERV9FTlY7XG4gICAgfSxcbiAgICBQQUdFU19ESVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUEFHRVNfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjtcbiAgICB9LFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI7XG4gICAgfSxcbiAgICBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUO1xuICAgIH0sXG4gICAgUk9PVF9ESVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUk9PVF9ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9QUk9YWV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX1BST1hZX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX1BSRUZFVENIX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfUFJFRkVUQ0hfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NFR01FTlRTX0RJUl9TVUZGSVg7XG4gICAgfSxcbiAgICBSU0NfU0VHTUVOVF9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NFR01FTlRfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfU1VGRklYO1xuICAgIH0sXG4gICAgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SO1xuICAgIH0sXG4gICAgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVDtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1BST1BTX1NTR19DT05GTElDVDtcbiAgICB9LFxuICAgIFNFUlZFUl9SVU5USU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9SVU5USU1FO1xuICAgIH0sXG4gICAgU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SO1xuICAgIH0sXG4gICAgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDtcbiAgICB9LFxuICAgIFNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I7XG4gICAgfSxcbiAgICBURVhUX1BMQUlOX0NPTlRFTlRfVFlQRV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVEVYVF9QTEFJTl9DT05URU5UX1RZUEVfSEVBREVSO1xuICAgIH0sXG4gICAgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I7XG4gICAgfSxcbiAgICBXRUJQQUNLX0xBWUVSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX0xBWUVSUztcbiAgICB9LFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM7XG4gICAgfVxufSk7XG5jb25zdCBURVhUX1BMQUlOX0NPTlRFTlRfVFlQRV9IRUFERVIgPSAndGV4dC9wbGFpbic7XG5jb25zdCBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVIgPSAndGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04JztcbmNvbnN0IEpTT05fQ09OVEVOVF9UWVBFX0hFQURFUiA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JztcbmNvbnN0IE5FWFRfUVVFUllfUEFSQU1fUFJFRklYID0gJ254dFAnO1xuY29uc3QgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCA9ICdueHRJJztcbmNvbnN0IE1BVENIRURfUEFUSF9IRUFERVIgPSAneC1tYXRjaGVkLXBhdGgnO1xuY29uc3QgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSID0gJ3gtcHJlcmVuZGVyLXJldmFsaWRhdGUnO1xuY29uc3QgUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSID0gJ3gtcHJlcmVuZGVyLXJldmFsaWRhdGUtaWYtZ2VuZXJhdGVkJztcbmNvbnN0IFJTQ19QUkVGRVRDSF9TVUZGSVggPSAnLnByZWZldGNoLnJzYyc7XG5jb25zdCBSU0NfU0VHTUVOVFNfRElSX1NVRkZJWCA9ICcuc2VnbWVudHMnO1xuY29uc3QgUlNDX1NFR01FTlRfU1VGRklYID0gJy5zZWdtZW50LnJzYyc7XG5jb25zdCBSU0NfU1VGRklYID0gJy5yc2MnO1xuY29uc3QgQUNUSU9OX1NVRkZJWCA9ICcuYWN0aW9uJztcbmNvbnN0IE5FWFRfREFUQV9TVUZGSVggPSAnLmpzb24nO1xuY29uc3QgTkVYVF9NRVRBX1NVRkZJWCA9ICcubWV0YSc7XG5jb25zdCBORVhUX0JPRFlfU1VGRklYID0gJy5ib2R5JztcbmNvbnN0IE5FWFRfQ0FDSEVfVEFHU19IRUFERVIgPSAneC1uZXh0LWNhY2hlLXRhZ3MnO1xuY29uc3QgTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUiA9ICd4LW5leHQtcmV2YWxpZGF0ZWQtdGFncyc7XG5jb25zdCBORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUiA9ICd4LW5leHQtcmV2YWxpZGF0ZS10YWctdG9rZW4nO1xuY29uc3QgTkVYVF9SRVNVTUVfSEVBREVSID0gJ25leHQtcmVzdW1lJztcbmNvbnN0IE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUyA9IDEyODtcbmNvbnN0IE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEggPSAyNTY7XG5jb25zdCBORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEggPSAxMDI0O1xuY29uc3QgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQgPSAnX05fVF8nO1xuY29uc3QgQ0FDSEVfT05FX1lFQVIgPSAzMTUzNjAwMDtcbmNvbnN0IElORklOSVRFX0NBQ0hFID0gMHhmZmZmZmZmZTtcbmNvbnN0IE1JRERMRVdBUkVfRklMRU5BTUUgPSAnbWlkZGxld2FyZSc7XG5jb25zdCBNSURETEVXQVJFX0xPQ0FUSU9OX1JFR0VYUCA9IGAoPzpzcmMvKT8ke01JRERMRVdBUkVfRklMRU5BTUV9YDtcbmNvbnN0IElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FID0gJ2luc3RydW1lbnRhdGlvbic7XG5jb25zdCBQQUdFU19ESVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXBhZ2VzJztcbmNvbnN0IERPVF9ORVhUX0FMSUFTID0gJ3ByaXZhdGUtZG90LW5leHQnO1xuY29uc3QgUk9PVF9ESVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJvb3QtZGlyJztcbmNvbnN0IEFQUF9ESVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LWFwcC1kaXInO1xuY29uc3QgUlNDX01PRF9SRUZfUFJPWFlfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1tb2QtcmVmLXByb3h5JztcbmNvbnN0IFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tdmFsaWRhdGUnO1xuY29uc3QgUlNDX0FDVElPTl9QUk9YWV9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLXNlcnZlci1yZWZlcmVuY2UnO1xuY29uc3QgUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1jYWNoZS13cmFwcGVyJztcbmNvbnN0IFJTQ19EWU5BTUlDX0lNUE9SVF9XUkFQUEVSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtdHJhY2stZHluYW1pYy1pbXBvcnQnO1xuY29uc3QgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLWVuY3J5cHRpb24nO1xuY29uc3QgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1jbGllbnQtd3JhcHBlcic7XG5jb25zdCBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgaGF2ZSBhICdfbmV4dCcgZm9sZGVyIGluc2lkZSBvZiB5b3VyIHB1YmxpYyBmb2xkZXIuIFRoaXMgY29uZmxpY3RzIHdpdGggdGhlIGludGVybmFsICcvX25leHQnIHJvdXRlLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wdWJsaWMtbmV4dC1mb2xkZXItY29uZmxpY3RgO1xuY29uc3QgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTdGF0aWNQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSB5b3VyIGdldEluaXRpYWxQcm9wc2A7XG5jb25zdCBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldEluaXRpYWxQcm9wcyB3aXRoIGdldFNlcnZlclNpZGVQcm9wcy4gUGxlYXNlIHJlbW92ZSBnZXRJbml0aWFsUHJvcHMuYDtcbmNvbnN0IFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldFN0YXRpY1Byb3BzIG9yIGdldFN0YXRpY1BhdGhzIHdpdGggZ2V0U2VydmVyU2lkZVByb3BzLiBUbyB1c2UgU1NHLCBwbGVhc2UgcmVtb3ZlIGdldFNlcnZlclNpZGVQcm9wc2A7XG5jb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1IgPSBgY2FuIG5vdCBoYXZlIGdldEluaXRpYWxQcm9wcy9nZXRTZXJ2ZXJTaWRlUHJvcHMsIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzLzQwNC1nZXQtaW5pdGlhbC1wcm9wc2A7XG5jb25zdCBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SID0gYHBhZ2VzIHdpdGggXFxgZ2V0U2VydmVyU2lkZVByb3BzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ3NzcC1leHBvcnRgO1xuY29uc3QgR1NQX05PX1JFVFVSTkVEX1ZBTFVFID0gJ1lvdXIgYGdldFN0YXRpY1Byb3BzYCBmdW5jdGlvbiBkaWQgbm90IHJldHVybiBhbiBvYmplY3QuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCBhIGByZXR1cm5gPyc7XG5jb25zdCBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFID0gJ1lvdXIgYGdldFNlcnZlclNpZGVQcm9wc2AgZnVuY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LiBEaWQgeW91IGZvcmdldCB0byBhZGQgYSBgcmV0dXJuYD8nO1xuY29uc3QgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1IgPSAnVGhlIGB1bnN0YWJsZV9yZXZhbGlkYXRlYCBwcm9wZXJ0eSBpcyBhdmFpbGFibGUgZm9yIGdlbmVyYWwgdXNlLlxcbicgKyAnUGxlYXNlIHVzZSBgcmV2YWxpZGF0ZWAgaW5zdGVhZC4nO1xuY29uc3QgR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SID0gYGNhbiBub3QgYmUgYXR0YWNoZWQgdG8gYSBwYWdlJ3MgY29tcG9uZW50IGFuZCBtdXN0IGJlIGV4cG9ydGVkIGZyb20gdGhlIHBhZ2UuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ3NzcC1jb21wb25lbnQtbWVtYmVyYDtcbmNvbnN0IE5PTl9TVEFOREFSRF9OT0RFX0VOViA9IGBZb3UgYXJlIHVzaW5nIGEgbm9uLXN0YW5kYXJkIFwiTk9ERV9FTlZcIiB2YWx1ZSBpbiB5b3VyIGVudmlyb25tZW50LiBUaGlzIGNyZWF0ZXMgaW5jb25zaXN0ZW5jaWVzIGluIHRoZSBwcm9qZWN0IGFuZCBpcyBzdHJvbmdseSBhZHZpc2VkIGFnYWluc3QuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm9uLXN0YW5kYXJkLW5vZGUtZW52YDtcbmNvbnN0IFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1IgPSBgUGFnZXMgd2l0aCBcXGBmYWxsYmFja1xcYCBlbmFibGVkIGluIFxcYGdldFN0YXRpY1BhdGhzXFxgIGNhbiBub3QgYmUgZXhwb3J0ZWQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3NnLWZhbGxiYWNrLXRydWUtZXhwb3J0YDtcbmNvbnN0IEVTTElOVF9ERUZBVUxUX0RJUlMgPSBbXG4gICAgJ2FwcCcsXG4gICAgJ3BhZ2VzJyxcbiAgICAnY29tcG9uZW50cycsXG4gICAgJ2xpYicsXG4gICAgJ3NyYydcbl07XG5jb25zdCBTRVJWRVJfUlVOVElNRSA9IHtcbiAgICBlZGdlOiAnZWRnZScsXG4gICAgZXhwZXJpbWVudGFsRWRnZTogJ2V4cGVyaW1lbnRhbC1lZGdlJyxcbiAgICBub2RlanM6ICdub2RlanMnXG59O1xuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIHdlYnBhY2sgbGF5ZXJzLiBUaGVzZSBsYXllcnMgYXJlIHRoZSBwcmltaXRpdmVzIGZvciB0aGVcbiAqIHdlYnBhY2sgY2h1bmtzLlxuICovIGNvbnN0IFdFQlBBQ0tfTEFZRVJTX05BTUVTID0ge1xuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBzaGFyZWQgY29kZSBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHNlcnZlciBidW5kbGVzLlxuICAgKi8gc2hhcmVkOiAnc2hhcmVkJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciBzZXJ2ZXItb25seSBydW50aW1lIGFuZCBwaWNraW5nIHVwIGByZWFjdC1zZXJ2ZXJgIGV4cG9ydCBjb25kaXRpb25zLlxuICAgKiBJbmNsdWRpbmcgYXBwIHJvdXRlciBSU0MgcGFnZXMgYW5kIGFwcCByb3V0ZXIgY3VzdG9tIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzLlxuICAgKi8gcmVhY3RTZXJ2ZXJDb21wb25lbnRzOiAncnNjJyxcbiAgICAvKipcbiAgICogU2VydmVyIFNpZGUgUmVuZGVyaW5nIGxheWVyIGZvciBhcHAgKHNzcikuXG4gICAqLyBzZXJ2ZXJTaWRlUmVuZGVyaW5nOiAnc3NyJyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgYWN0aW9ucy5cbiAgICovIGFjdGlvbkJyb3dzZXI6ICdhY3Rpb24tYnJvd3NlcicsXG4gICAgLyoqXG4gICAqIFRoZSBOb2RlLmpzIGJ1bmRsZSBsYXllciBmb3IgdGhlIEFQSSByb3V0ZXMuXG4gICAqLyBhcGlOb2RlOiAnYXBpLW5vZGUnLFxuICAgIC8qKlxuICAgKiBUaGUgRWRnZSBMaXRlIGJ1bmRsZSBsYXllciBmb3IgdGhlIEFQSSByb3V0ZXMuXG4gICAqLyBhcGlFZGdlOiAnYXBpLWVkZ2UnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBtaWRkbGV3YXJlIGNvZGUuXG4gICAqLyBtaWRkbGV3YXJlOiAnbWlkZGxld2FyZScsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIGluc3RydW1lbnRhdGlvbiBob29rcy5cbiAgICovIGluc3RydW1lbnQ6ICdpbnN0cnVtZW50JyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciBhc3NldHMgb24gdGhlIGVkZ2UuXG4gICAqLyBlZGdlQXNzZXQ6ICdlZGdlLWFzc2V0JyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgQXBwIGRpcmVjdG9yeS5cbiAgICovIGFwcFBhZ2VzQnJvd3NlcjogJ2FwcC1wYWdlcy1icm93c2VyJyxcbiAgICAvKipcbiAgICogVGhlIGJyb3dzZXIgY2xpZW50IGJ1bmRsZSBsYXllciBmb3IgUGFnZXMgZGlyZWN0b3J5LlxuICAgKi8gcGFnZXNEaXJCcm93c2VyOiAncGFnZXMtZGlyLWJyb3dzZXInLFxuICAgIC8qKlxuICAgKiBUaGUgRWRnZSBMaXRlIGJ1bmRsZSBsYXllciBmb3IgUGFnZXMgZGlyZWN0b3J5LlxuICAgKi8gcGFnZXNEaXJFZGdlOiAncGFnZXMtZGlyLWVkZ2UnLFxuICAgIC8qKlxuICAgKiBUaGUgTm9kZS5qcyBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyTm9kZTogJ3BhZ2VzLWRpci1ub2RlJ1xufTtcbmNvbnN0IFdFQlBBQ0tfTEFZRVJTID0ge1xuICAgIC4uLldFQlBBQ0tfTEFZRVJTX05BTUVTLFxuICAgIEdST1VQOiB7XG4gICAgICAgIGJ1aWx0aW5SZWFjdDogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlclxuICAgICAgICBdLFxuICAgICAgICBzZXJ2ZXJPbmx5OiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuaW5zdHJ1bWVudCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLm1pZGRsZXdhcmVcbiAgICAgICAgXSxcbiAgICAgICAgbmV1dHJhbFRhcmdldDogW1xuICAgICAgICAgICAgLy8gcGFnZXMgYXBpXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcGlOb2RlLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBpRWRnZVxuICAgICAgICBdLFxuICAgICAgICBjbGllbnRPbmx5OiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyXG4gICAgICAgIF0sXG4gICAgICAgIGJ1bmRsZWQ6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2hhcmVkLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuaW5zdHJ1bWVudCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLm1pZGRsZXdhcmVcbiAgICAgICAgXSxcbiAgICAgICAgYXBwUGFnZXM6IFtcbiAgICAgICAgICAgIC8vIGFwcCByb3V0ZXIgcGFnZXMgYW5kIGxheW91dHNcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNlcnZlclNpZGVSZW5kZXJpbmcsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hcHBQYWdlc0Jyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyXG4gICAgICAgIF1cbiAgICB9XG59O1xuY29uc3QgV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTID0ge1xuICAgIGVkZ2VTU1JFbnRyeTogJ19fbmV4dF9lZGdlX3Nzcl9lbnRyeV9fJyxcbiAgICBtZXRhZGF0YTogJ19fbmV4dF9tZXRhZGF0YV9fJyxcbiAgICBtZXRhZGF0YVJvdXRlOiAnX19uZXh0X21ldGFkYXRhX3JvdXRlX18nLFxuICAgIG1ldGFkYXRhSW1hZ2VNZXRhOiAnX19uZXh0X21ldGFkYXRhX2ltYWdlX21ldGFfXydcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/detached-promise.js ***!
|
||
\********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DetachedPromise\", ({\n enumerable: true,\n get: function() {\n return DetachedPromise;\n }\n}));\nclass 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}\n\n//# sourceMappingURL=detached-promise.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2RldGFjaGVkLXByb21pc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLG1EQUFrRDtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9kZXRhY2hlZC1wcm9taXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBgUHJvbWlzZS53aXRoUmVzb2x2ZXJzYCBpbXBsZW1lbnRhdGlvbiB0aGF0IGV4cG9zZXMgdGhlIGByZXNvbHZlYCBhbmRcbiAqIGByZWplY3RgIGZ1bmN0aW9ucyBvbiBhIGBQcm9taXNlYC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1wcm9taXNlLXdpdGgtcmVzb2x2ZXJzL1xuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRGV0YWNoZWRQcm9taXNlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBEZXRhY2hlZFByb21pc2U7XG4gICAgfVxufSk7XG5jbGFzcyBEZXRhY2hlZFByb21pc2Uge1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIGxldCByZXNvbHZlO1xuICAgICAgICBsZXQgcmVqZWN0O1xuICAgICAgICAvLyBDcmVhdGUgdGhlIHByb21pc2UgYW5kIGFzc2lnbiB0aGUgcmVzb2x2ZXJzIHRvIHRoZSBvYmplY3QuXG4gICAgICAgIHRoaXMucHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXMsIHJlaik9PntcbiAgICAgICAgICAgIHJlc29sdmUgPSByZXM7XG4gICAgICAgICAgICByZWplY3QgPSByZWo7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBXZSBrbm93IHRoYXQgcmVzb2x2ZXJzIGlzIGRlZmluZWQgYmVjYXVzZSB0aGUgUHJvbWlzZSBjb25zdHJ1Y3RvciBydW5zXG4gICAgICAgIC8vIHN5bmNocm9ub3VzbHkuXG4gICAgICAgIHRoaXMucmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgIHRoaXMucmVqZWN0ID0gcmVqZWN0O1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGV0YWNoZWQtcHJvbWlzZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/lib/is-error.js":
|
||
/*!************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/is-error.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 /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\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 Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHVCQUF1QixtQkFBTyxDQUFDLDhHQUErQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLElBQXNDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZGVmYXVsdDogbnVsbCxcbiAgICBnZXRQcm9wZXJFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICAvKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIE5leHRFcnJvci5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gcHJpbnQgYSBtb3JlIGRldGFpbGVkIGVycm9yIG1lc3NhZ2Ugd2l0aCBwcm9wZXJ0aWVzIGxpa2UgYGNvZGVgICYgYGRpZ2VzdGAuXG4gKi8gZGVmYXVsdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0Vycm9yO1xuICAgIH0sXG4gICAgZ2V0UHJvcGVyRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UHJvcGVyRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBfaXNwbGFpbm9iamVjdCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2lzLXBsYWluLW9iamVjdFwiKTtcbmZ1bmN0aW9uIGlzRXJyb3IoZXJyKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnIgPT09ICdvYmplY3QnICYmIGVyciAhPT0gbnVsbCAmJiAnbmFtZScgaW4gZXJyICYmICdtZXNzYWdlJyBpbiBlcnI7XG59XG5mdW5jdGlvbiBzYWZlU3RyaW5naWZ5KG9iaikge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgV2Vha1NldCgpO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmosIChfa2V5LCB2YWx1ZSk9PntcbiAgICAgICAgLy8gSWYgdmFsdWUgaXMgYW4gb2JqZWN0IGFuZCBhbHJlYWR5IHNlZW4sIHJlcGxhY2Ugd2l0aCBcIltDaXJjdWxhcl1cIlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHNlZW4uaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWVuLmFkZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0UHJvcGVyRXJyb3IoZXJyKSB7XG4gICAgaWYgKGlzRXJyb3IoZXJyKSkge1xuICAgICAgICByZXR1cm4gZXJyO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgLy8gcHJvdmlkZSBiZXR0ZXIgZXJyb3IgZm9yIGNhc2Ugd2hlcmUgYHRocm93IHVuZGVmaW5lZGBcbiAgICAgICAgLy8gaXMgY2FsbGVkIGluIGRldmVsb3BtZW50XG4gICAgICAgIGlmICh0eXBlb2YgZXJyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0FuIHVuZGVmaW5lZCBlcnJvciB3YXMgdGhyb3duLCAnICsgJ3NlZSBoZXJlIGZvciBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3RocmV3LXVuZGVmaW5lZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFOThcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnIgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdBIG51bGwgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTMzNlwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoKDAsIF9pc3BsYWlub2JqZWN0LmlzUGxhaW5PYmplY3QpKGVycikgPyBzYWZlU3RyaW5naWZ5KGVycikgOiBlcnIgKyAnJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMzk0XCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/is-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/lib/pretty-bytes.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/pretty-bytes.js ***!
|
||
\****************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/*\nMIT License\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return prettyBytes;\n }\n}));\nconst UNITS = [\n 'B',\n 'kB',\n 'MB',\n 'GB',\n 'TB',\n 'PB',\n 'EB',\n 'ZB',\n 'YB'\n];\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/ const toLocaleString = (number, locale)=>{\n let result = number;\n if (typeof locale === 'string') {\n result = number.toLocaleString(locale);\n } else if (locale === true) {\n result = number.toLocaleString();\n }\n return result;\n};\nfunction prettyBytes(number, options) {\n if (!Number.isFinite(number)) {\n throw Object.defineProperty(new TypeError(`Expected a finite number, got ${typeof number}: ${number}`), \"__NEXT_ERROR_CODE\", {\n value: \"E572\",\n enumerable: false,\n configurable: true\n });\n }\n options = Object.assign({}, options);\n if (options.signed && number === 0) {\n return ' 0 B';\n }\n const isNegative = number < 0;\n const prefix = isNegative ? '-' : options.signed ? '+' : '';\n if (isNegative) {\n number = -number;\n }\n if (number < 1) {\n const numberString = toLocaleString(number, options.locale);\n return prefix + numberString + ' B';\n }\n const exponent = Math.min(Math.floor(Math.log10(number) / 3), UNITS.length - 1);\n number = Number((number / Math.pow(1000, exponent)).toPrecision(3));\n const numberString = toLocaleString(number, options.locale);\n const unit = UNITS[exponent];\n return prefix + numberString + ' ' + unit;\n}\n\n//# sourceMappingURL=pretty-bytes.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3ByZXR0eS1ieXRlcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0EsR0FBZ0I7QUFDaEIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRkFBbUYsY0FBYyxJQUFJLE9BQU87QUFDNUc7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvcHJldHR5LWJ5dGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5NSVQgTGljZW5zZVxuXG5Db3B5cmlnaHQgKGMpIFNpbmRyZSBTb3JodXMgPHNpbmRyZXNvcmh1c0BnbWFpbC5jb20+IChzaW5kcmVzb3JodXMuY29tKVxuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG5UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG4qLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHByZXR0eUJ5dGVzO1xuICAgIH1cbn0pO1xuY29uc3QgVU5JVFMgPSBbXG4gICAgJ0InLFxuICAgICdrQicsXG4gICAgJ01CJyxcbiAgICAnR0InLFxuICAgICdUQicsXG4gICAgJ1BCJyxcbiAgICAnRUInLFxuICAgICdaQicsXG4gICAgJ1lCJ1xuXTtcbi8qXG5Gb3JtYXRzIHRoZSBnaXZlbiBudW1iZXIgdXNpbmcgYE51bWJlciN0b0xvY2FsZVN0cmluZ2AuXG4tIElmIGxvY2FsZSBpcyBhIHN0cmluZywgdGhlIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGJlIGEgbG9jYWxlLWtleSAoZm9yIGV4YW1wbGU6IGBkZWApLlxuLSBJZiBsb2NhbGUgaXMgdHJ1ZSwgdGhlIHN5c3RlbSBkZWZhdWx0IGxvY2FsZSBpcyB1c2VkIGZvciB0cmFuc2xhdGlvbi5cbi0gSWYgbm8gdmFsdWUgZm9yIGxvY2FsZSBpcyBzcGVjaWZpZWQsIHRoZSBudW1iZXIgaXMgcmV0dXJuZWQgdW5tb2RpZmllZC5cbiovIGNvbnN0IHRvTG9jYWxlU3RyaW5nID0gKG51bWJlciwgbG9jYWxlKT0+e1xuICAgIGxldCByZXN1bHQgPSBudW1iZXI7XG4gICAgaWYgKHR5cGVvZiBsb2NhbGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJlc3VsdCA9IG51bWJlci50b0xvY2FsZVN0cmluZyhsb2NhbGUpO1xuICAgIH0gZWxzZSBpZiAobG9jYWxlID09PSB0cnVlKSB7XG4gICAgICAgIHJlc3VsdCA9IG51bWJlci50b0xvY2FsZVN0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbmZ1bmN0aW9uIHByZXR0eUJ5dGVzKG51bWJlciwgb3B0aW9ucykge1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG51bWJlcikpIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgZmluaXRlIG51bWJlciwgZ290ICR7dHlwZW9mIG51bWJlcn06ICR7bnVtYmVyfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkU1NzJcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyk7XG4gICAgaWYgKG9wdGlvbnMuc2lnbmVkICYmIG51bWJlciA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJyAwIEInO1xuICAgIH1cbiAgICBjb25zdCBpc05lZ2F0aXZlID0gbnVtYmVyIDwgMDtcbiAgICBjb25zdCBwcmVmaXggPSBpc05lZ2F0aXZlID8gJy0nIDogb3B0aW9ucy5zaWduZWQgPyAnKycgOiAnJztcbiAgICBpZiAoaXNOZWdhdGl2ZSkge1xuICAgICAgICBudW1iZXIgPSAtbnVtYmVyO1xuICAgIH1cbiAgICBpZiAobnVtYmVyIDwgMSkge1xuICAgICAgICBjb25zdCBudW1iZXJTdHJpbmcgPSB0b0xvY2FsZVN0cmluZyhudW1iZXIsIG9wdGlvbnMubG9jYWxlKTtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIG51bWJlclN0cmluZyArICcgQic7XG4gICAgfVxuICAgIGNvbnN0IGV4cG9uZW50ID0gTWF0aC5taW4oTWF0aC5mbG9vcihNYXRoLmxvZzEwKG51bWJlcikgLyAzKSwgVU5JVFMubGVuZ3RoIC0gMSk7XG4gICAgbnVtYmVyID0gTnVtYmVyKChudW1iZXIgLyBNYXRoLnBvdygxMDAwLCBleHBvbmVudCkpLnRvUHJlY2lzaW9uKDMpKTtcbiAgICBjb25zdCBudW1iZXJTdHJpbmcgPSB0b0xvY2FsZVN0cmluZyhudW1iZXIsIG9wdGlvbnMubG9jYWxlKTtcbiAgICBjb25zdCB1bml0ID0gVU5JVFNbZXhwb25lbnRdO1xuICAgIHJldHVybiBwcmVmaXggKyBudW1iZXJTdHJpbmcgKyAnICcgKyB1bml0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcmV0dHktYnl0ZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/pretty-bytes.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/redirect-status.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 allowedStatusCodes: function() {\n return allowedStatusCodes;\n },\n getRedirectStatus: function() {\n return getRedirectStatus;\n },\n modifyRouteRegex: function() {\n return modifyRouteRegex;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ../client/components/redirect-status-code */ \"(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst allowedStatusCodes = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction getRedirectStatus(route) {\n return route.statusCode || (route.permanent ? _redirectstatuscode.RedirectStatusCode.PermanentRedirect : _redirectstatuscode.RedirectStatusCode.TemporaryRedirect);\n}\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}\n\n//# sourceMappingURL=redirect-status.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3JlZGlyZWN0LXN0YXR1cy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDRCQUE0QixtQkFBTyxDQUFDLHNJQUEyQztBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsa0VBQWtFO0FBQzdHO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9yZWRpcmVjdC1zdGF0dXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBhbGxvd2VkU3RhdHVzQ29kZXM6IG51bGwsXG4gICAgZ2V0UmVkaXJlY3RTdGF0dXM6IG51bGwsXG4gICAgbW9kaWZ5Um91dGVSZWdleDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBhbGxvd2VkU3RhdHVzQ29kZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWxsb3dlZFN0YXR1c0NvZGVzO1xuICAgIH0sXG4gICAgZ2V0UmVkaXJlY3RTdGF0dXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UmVkaXJlY3RTdGF0dXM7XG4gICAgfSxcbiAgICBtb2RpZnlSb3V0ZVJlZ2V4OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1vZGlmeVJvdXRlUmVnZXg7XG4gICAgfVxufSk7XG5jb25zdCBfcmVkaXJlY3RzdGF0dXNjb2RlID0gcmVxdWlyZShcIi4uL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlXCIpO1xuY29uc3QgYWxsb3dlZFN0YXR1c0NvZGVzID0gbmV3IFNldChbXG4gICAgMzAxLFxuICAgIDMwMixcbiAgICAzMDMsXG4gICAgMzA3LFxuICAgIDMwOFxuXSk7XG5mdW5jdGlvbiBnZXRSZWRpcmVjdFN0YXR1cyhyb3V0ZSkge1xuICAgIHJldHVybiByb3V0ZS5zdGF0dXNDb2RlIHx8IChyb3V0ZS5wZXJtYW5lbnQgPyBfcmVkaXJlY3RzdGF0dXNjb2RlLlJlZGlyZWN0U3RhdHVzQ29kZS5QZXJtYW5lbnRSZWRpcmVjdCA6IF9yZWRpcmVjdHN0YXR1c2NvZGUuUmVkaXJlY3RTdGF0dXNDb2RlLlRlbXBvcmFyeVJlZGlyZWN0KTtcbn1cbmZ1bmN0aW9uIG1vZGlmeVJvdXRlUmVnZXgocmVnZXgsIHJlc3RyaWN0ZWRQYXRocykge1xuICAgIGlmIChyZXN0cmljdGVkUGF0aHMpIHtcbiAgICAgICAgcmVnZXggPSByZWdleC5yZXBsYWNlKC9cXF4vLCBgXig/ISR7cmVzdHJpY3RlZFBhdGhzLm1hcCgocGF0aCk9PnBhdGgucmVwbGFjZSgvXFwvL2csICdcXFxcLycpKS5qb2luKCd8Jyl9KWApO1xuICAgIH1cbiAgICByZWdleCA9IHJlZ2V4LnJlcGxhY2UoL1xcJCQvLCAnKD86XFxcXC8pPyQnKTtcbiAgICByZXR1cm4gcmVnZXg7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlZGlyZWN0LXN0YXR1cy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js":
|
||
/*!*************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/scheduler.js ***!
|
||
\*************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst 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 if (false) {} else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (false) {} else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (false) {} else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3NjaGVkdWxlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FLTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ1Y7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsUUFBUSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBhdExlYXN0T25lVGFzazogbnVsbCxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogbnVsbCxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IG51bGwsXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYXRMZWFzdE9uZVRhc2s7XG4gICAgfSxcbiAgICBzY2hlZHVsZUltbWVkaWF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZUltbWVkaWF0ZTtcbiAgICB9LFxuICAgIHNjaGVkdWxlT25OZXh0VGljazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzY2hlZHVsZU9uTmV4dFRpY2s7XG4gICAgfSxcbiAgICB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaztcbiAgICB9XG59KTtcbmNvbnN0IHNjaGVkdWxlT25OZXh0VGljayA9IChjYik9PntcbiAgICAvLyBXZSB1c2UgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigpIGhlcmUgc28gdGhhdCB0aGUgb3BlcmF0aW9uIGlzIHNjaGVkdWxlZCBhdFxuICAgIC8vIHRoZSBlbmQgb2YgdGhlIHByb21pc2Ugam9iIHF1ZXVlLCB3ZSB0aGVuIGFkZCBpdCB0byB0aGUgbmV4dCBwcm9jZXNzIHRpY2tcbiAgICAvLyB0byBlbnN1cmUgaXQncyBldmFsdWF0ZWQgYWZ0ZXJ3YXJkcy5cbiAgICAvL1xuICAgIC8vIFRoaXMgd2FzIGluc3BpcmVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGF0YUxvYWRlciBpbnRlcmZhY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFwaHFsL2RhdGFsb2FkZXIvYmxvYi9kMzM2YmQxNTI4MjY2NGUwYmU0YjRhNjU3Y2I3OTZmMDliYWZiYzZiL3NyYy9pbmRleC5qcyNMMjEzLUwyNTVcbiAgICAvL1xuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb2Nlc3MubmV4dFRpY2soY2IpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuY29uc3Qgc2NoZWR1bGVJbW1lZGlhdGUgPSAoY2IpPT57XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgICAgIHNldFRpbWVvdXQoY2IsIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEltbWVkaWF0ZShjYik7XG4gICAgfVxufTtcbmZ1bmN0aW9uIGF0TGVhc3RPbmVUYXNrKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnNjaGVkdWxlSW1tZWRpYXRlKHJlc29sdmUpKTtcbn1cbmZ1bmN0aW9uIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRUaW1lb3V0KHIsIDApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHIpPT5zZXRJbW1lZGlhdGUocikpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2NoZWR1bGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/pages/_app.js":
|
||
/*!**********************************************!*\
|
||
!*** ./node_modules/next/dist/pages/_app.js ***!
|
||
\**********************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return App;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"react\"));\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */ async function appGetInitialProps(param) {\n let { Component, ctx } = param;\n const pageProps = await (0, _utils.loadGetInitialProps)(Component, ctx);\n return {\n pageProps\n };\n}\nclass App extends _react.default.Component {\n render() {\n const { Component, pageProps } = this.props;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n ...pageProps\n });\n }\n}\nApp.origGetInitialProps = appGetInitialProps;\nApp.getInitialProps = appGetInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_app.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2FwcC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O2VBaUNxQkE7Ozs7OzRFQWpDSDttQ0FXa0I7QUFVcEM7OztDQUdDLEdBQ0QsZUFBZUMsbUJBQW1CLEtBR3JCO0lBSHFCLE1BQ2hDQyxTQUFTLEVBQ1RDLEdBQUcsRUFDUSxHQUhxQjtJQUloQyxNQUFNQyxZQUFZLE1BQU1DLENBQUFBLEdBQUFBLE9BQUFBLG1CQUFBQSxFQUFvQkgsV0FBV0M7SUFDdkQsT0FBTztRQUFFQztJQUFVO0FBQ3JCO0FBRWUsTUFBTUosWUFBc0NNLE9BQUFBLE9BQUssQ0FBQ0osU0FBUztJQU94RUssU0FBUztRQUNQLE1BQU0sRUFBRUwsU0FBUyxFQUFFRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUNJLEtBQUs7UUFFM0MsT0FBTyxXQUFQLEdBQU8scUJBQUNOLFdBQUFBO1lBQVcsR0FBR0UsU0FBUzs7SUFDakM7QUFDRjtBQVpxQkosSUFJWlMsbUJBQUFBLEdBQXNCUjtBQUpWRCxJQUtaVSxlQUFBQSxHQUFrQlQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvc3JjL3BhZ2VzL19hcHAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUge1xuICBBcHBDb250ZXh0VHlwZSxcbiAgQXBwSW5pdGlhbFByb3BzLFxuICBBcHBQcm9wc1R5cGUsXG4gIE5leHRXZWJWaXRhbHNNZXRyaWMsXG4gIEFwcFR5cGUsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgdHlwZSB7IFJvdXRlciB9IGZyb20gJy4uL2NsaWVudC9yb3V0ZXInXG5cbmltcG9ydCB7IGxvYWRHZXRJbml0aWFsUHJvcHMgfSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuXG5leHBvcnQgdHlwZSB7IEFwcEluaXRpYWxQcm9wcywgQXBwVHlwZSB9XG5cbmV4cG9ydCB0eXBlIHsgTmV4dFdlYlZpdGFsc01ldHJpYyB9XG5cbmV4cG9ydCB0eXBlIEFwcENvbnRleHQgPSBBcHBDb250ZXh0VHlwZTxSb3V0ZXI+XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzPFAgPSBhbnk+ID0gQXBwUHJvcHNUeXBlPFJvdXRlciwgUD5cblxuLyoqXG4gKiBgQXBwYCBjb21wb25lbnQgaXMgdXNlZCBmb3IgaW5pdGlhbGl6ZSBvZiBwYWdlcy4gSXQgYWxsb3dzIGZvciBvdmVyd3JpdGluZyBhbmQgZnVsbCBjb250cm9sIG9mIHRoZSBgcGFnZWAgaW5pdGlhbGl6YXRpb24uXG4gKiBUaGlzIGFsbG93cyBmb3Iga2VlcGluZyBzdGF0ZSBiZXR3ZWVuIG5hdmlnYXRpb24sIGN1c3RvbSBlcnJvciBoYW5kbGluZywgaW5qZWN0aW5nIGFkZGl0aW9uYWwgZGF0YS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYXBwR2V0SW5pdGlhbFByb3BzKHtcbiAgQ29tcG9uZW50LFxuICBjdHgsXG59OiBBcHBDb250ZXh0KTogUHJvbWlzZTxBcHBJbml0aWFsUHJvcHM+IHtcbiAgY29uc3QgcGFnZVByb3BzID0gYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIGN0eClcbiAgcmV0dXJuIHsgcGFnZVByb3BzIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBwPFAgPSBhbnksIENQID0ge30sIFMgPSB7fT4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8XG4gIFAgJiBBcHBQcm9wczxDUD4sXG4gIFNcbj4ge1xuICBzdGF0aWMgb3JpZ0dldEluaXRpYWxQcm9wcyA9IGFwcEdldEluaXRpYWxQcm9wc1xuICBzdGF0aWMgZ2V0SW5pdGlhbFByb3BzID0gYXBwR2V0SW5pdGlhbFByb3BzXG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSA9IHRoaXMucHJvcHMgYXMgQXBwUHJvcHM8Q1A+XG5cbiAgICByZXR1cm4gPENvbXBvbmVudCB7Li4ucGFnZVByb3BzfSAvPlxuICB9XG59XG4iXSwibmFtZXMiOlsiQXBwIiwiYXBwR2V0SW5pdGlhbFByb3BzIiwiQ29tcG9uZW50IiwiY3R4IiwicGFnZVByb3BzIiwibG9hZEdldEluaXRpYWxQcm9wcyIsIlJlYWN0IiwicmVuZGVyIiwicHJvcHMiLCJvcmlnR2V0SW5pdGlhbFByb3BzIiwiZ2V0SW5pdGlhbFByb3BzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/pages/_app.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/pages/_document.js":
|
||
/*!***************************************************!*\
|
||
!*** ./node_modules/next/dist/pages/_document.js ***!
|
||
\***************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/// <reference types=\"webpack/module.d.ts\" />\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 Head: function() {\n return Head;\n },\n Html: function() {\n return Html;\n },\n Main: function() {\n return Main;\n },\n NextScript: function() {\n return NextScript;\n },\n /**\n * `Document` component handles the initial `document` markup and renders only on the server side.\n * Commonly used for implementing server side rendering for `css-in-js` libraries.\n */ default: function() {\n return Document;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"react\"));\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js\");\nconst _getpagefiles = __webpack_require__(/*! ../server/get-page-files */ \"(pages-dir-node)/./node_modules/next/dist/server/get-page-files.js\");\nconst _htmlescape = __webpack_require__(/*! ../server/htmlescape */ \"(pages-dir-node)/./node_modules/next/dist/server/htmlescape.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../lib/is-error */ \"(pages-dir-node)/./node_modules/next/dist/lib/is-error.js\"));\nconst _htmlcontextsharedruntime = __webpack_require__(/*! ../shared/lib/html-context.shared-runtime */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js\");\nconst _encodeuripath = __webpack_require__(/*! ../shared/lib/encode-uri-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/encode-uri-path.js\");\nconst _tracer = __webpack_require__(/*! ../server/lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _utils = __webpack_require__(/*! ../server/lib/trace/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/utils.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\n/** Set of pages that have triggered a large data warning on production mode. */ const largePageDataWarnings = new Set();\nfunction getDocumentFiles(buildManifest, pathname, inAmpMode) {\n const sharedFiles = (0, _getpagefiles.getPageFiles)(buildManifest, '/_app');\n const pageFiles = true && inAmpMode ? [] : (0, _getpagefiles.getPageFiles)(buildManifest, pathname);\n return {\n sharedFiles,\n pageFiles,\n allFiles: [\n ...new Set([\n ...sharedFiles,\n ...pageFiles\n ])\n ]\n };\n}\nfunction getPolyfillScripts(context, props) {\n // polyfills.js has to be rendered as nomodule without async\n // It also has to be the first script to load\n const { assetPrefix, buildManifest, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return buildManifest.polyfillFiles.filter((polyfill)=>polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map((polyfill)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n defer: !disableOptimizedLoading,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin,\n noModule: true,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(polyfill)}${assetQueryString}`\n }, polyfill));\n}\nfunction hasComponentProps(child) {\n return !!child && !!child.props;\n}\nfunction AmpStyles({ styles }) {\n if (!styles) return null;\n // try to parse styles from fragment for backwards compat\n const curStyles = Array.isArray(styles) ? styles : [];\n if (styles.props && // @ts-ignore Property 'props' does not exist on type ReactElement\n Array.isArray(styles.props.children)) {\n const hasStyles = (el)=>{\n var _el_props_dangerouslySetInnerHTML, _el_props;\n return el == null ? void 0 : (_el_props = el.props) == null ? void 0 : (_el_props_dangerouslySetInnerHTML = _el_props.dangerouslySetInnerHTML) == null ? void 0 : _el_props_dangerouslySetInnerHTML.__html;\n };\n // @ts-ignore Property 'props' does not exist on type ReactElement\n styles.props.children.forEach((child)=>{\n if (Array.isArray(child)) {\n child.forEach((el)=>hasStyles(el) && curStyles.push(el));\n } else if (hasStyles(child)) {\n curStyles.push(child);\n }\n });\n }\n /* Add custom styles before AMP styles to prevent accidental overrides */ return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-custom\": \"\",\n dangerouslySetInnerHTML: {\n __html: curStyles.map((style)=>style.props.dangerouslySetInnerHTML.__html).join('').replace(/\\/\\*# sourceMappingURL=.*\\*\\//g, '').replace(/\\/\\*@ sourceURL=.*?\\*\\//g, '')\n }\n });\n}\nfunction getDynamicChunks(context, props, files) {\n const { dynamicImports, assetPrefix, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith('.js') || files.allFiles.includes(file)) return null;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getScripts(context, props, files) {\n var _buildManifest_lowPriorityFiles;\n const { assetPrefix, buildManifest, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n const normalScripts = files.allFiles.filter((file)=>file.endsWith('.js'));\n const lowPriorityScripts = (_buildManifest_lowPriorityFiles = buildManifest.lowPriorityFiles) == null ? void 0 : _buildManifest_lowPriorityFiles.filter((file)=>file.endsWith('.js'));\n return [\n ...normalScripts,\n ...lowPriorityScripts\n ].map((file)=>{\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getPreNextWorkerScripts(context, props) {\n const { assetPrefix, scriptLoader, crossOrigin, nextScriptWorkers } = context;\n // disable `nextScriptWorkers` in edge runtime\n if (!nextScriptWorkers || \"nodejs\" === 'edge') return null;\n try {\n // @ts-expect-error: Prevent webpack from processing this require\n let { partytownSnippet } = require('@builder.io/partytown/integration');\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n // Check to see if the user has defined their own Partytown configuration\n const userDefinedConfig = children.find((child)=>{\n var _child_props_dangerouslySetInnerHTML, _child_props;\n return hasComponentProps(child) && (child == null ? void 0 : (_child_props = child.props) == null ? void 0 : (_child_props_dangerouslySetInnerHTML = _child_props.dangerouslySetInnerHTML) == null ? void 0 : _child_props_dangerouslySetInnerHTML.__html.length) && 'data-partytown-config' in child.props;\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !userDefinedConfig && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown-config\": \"\",\n dangerouslySetInnerHTML: {\n __html: `\n partytown = {\n lib: \"${assetPrefix}/_next/static/~partytown/\"\n };\n `\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown\": \"\",\n dangerouslySetInnerHTML: {\n __html: partytownSnippet()\n }\n }),\n (scriptLoader.worker || []).map((file, index)=>{\n const { strategy, src, children: scriptChildren, dangerouslySetInnerHTML, ...scriptProps } = file;\n let srcProps = {};\n if (src) {\n // Use external src if provided\n srcProps.src = src;\n } else if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n // Embed inline script if provided with dangerouslySetInnerHTML\n srcProps.dangerouslySetInnerHTML = {\n __html: dangerouslySetInnerHTML.__html\n };\n } else if (scriptChildren) {\n // Embed inline script if provided with children\n srcProps.dangerouslySetInnerHTML = {\n __html: typeof scriptChildren === 'string' ? scriptChildren : Array.isArray(scriptChildren) ? scriptChildren.join('') : ''\n };\n } else {\n throw Object.defineProperty(new Error('Invalid usage of next/script. Did you forget to include a src attribute or an inline script? https://nextjs.org/docs/messages/invalid-script'), \"__NEXT_ERROR_CODE\", {\n value: \"E82\",\n enumerable: false,\n configurable: true\n });\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...srcProps,\n ...scriptProps,\n type: \"text/partytown\",\n key: src || index,\n nonce: props.nonce,\n \"data-nscript\": \"worker\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n })\n ]\n });\n } catch (err) {\n if ((0, _iserror.default)(err) && err.code !== 'MODULE_NOT_FOUND') {\n console.warn(`Warning: ${err.message}`);\n }\n return null;\n }\n}\nfunction getPreNextScripts(context, props) {\n const { scriptLoader, disableOptimizedLoading, crossOrigin } = context;\n const webWorkerScripts = getPreNextWorkerScripts(context, props);\n const beforeInteractiveScripts = (scriptLoader.beforeInteractive || []).filter((script)=>script.src).map((file, index)=>{\n const { strategy, ...scriptProps } = file;\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n key: scriptProps.src || index,\n defer: scriptProps.defer ?? !disableOptimizedLoading,\n nonce: scriptProps.nonce || props.nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n webWorkerScripts,\n beforeInteractiveScripts\n ]\n });\n}\nfunction getHeadHTMLProps(props) {\n const { crossOrigin, nonce, ...restProps } = props;\n // This assignment is necessary for additional type checking to avoid unsupported attributes in <head>\n const headProps = restProps;\n return headProps;\n}\nfunction getAmpPath(ampPath, asPath) {\n return ampPath || `${asPath}${asPath.includes('?') ? '&' : '?'}amp=1`;\n}\nfunction getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix = '') {\n if (!nextFontManifest) {\n return {\n preconnect: null,\n preload: null\n };\n }\n const appFontsEntry = nextFontManifest.pages['/_app'];\n const pageFontsEntry = nextFontManifest.pages[dangerousAsPath];\n const preloadedFontFiles = Array.from(new Set([\n ...appFontsEntry ?? [],\n ...pageFontsEntry ?? []\n ]));\n // If no font files should preload but there's an entry for the path, add a preconnect tag.\n const preconnectToSelf = !!(preloadedFontFiles.length === 0 && (appFontsEntry || pageFontsEntry));\n return {\n preconnect: preconnectToSelf ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n \"data-next-font\": nextFontManifest.pagesUsingSizeAdjust ? 'size-adjust' : '',\n rel: \"preconnect\",\n href: \"/\",\n crossOrigin: \"anonymous\"\n }) : null,\n preload: preloadedFontFiles ? preloadedFontFiles.map((fontFile)=>{\n const ext = /\\.(woff|woff2|eot|ttf|otf)$/.exec(fontFile)[1];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(fontFile)}`,\n as: \"font\",\n type: `font/${ext}`,\n crossOrigin: \"anonymous\",\n \"data-next-font\": fontFile.includes('-s') ? 'size-adjust' : ''\n }, fontFile);\n }) : null\n };\n}\nclass Head extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getCssLinks(files) {\n const { assetPrefix, assetQueryString, dynamicImports, dynamicCssManifest, crossOrigin, optimizeCss } = this.context;\n const cssFiles = files.allFiles.filter((f)=>f.endsWith('.css'));\n const sharedFiles = new Set(files.sharedFiles);\n // Unmanaged files are CSS files that will be handled directly by the\n // webpack runtime (`mini-css-extract-plugin`).\n let unmanagedFiles = new Set([]);\n let localDynamicCssFiles = Array.from(new Set(dynamicImports.filter((file)=>file.endsWith('.css'))));\n if (localDynamicCssFiles.length) {\n const existing = new Set(cssFiles);\n localDynamicCssFiles = localDynamicCssFiles.filter((f)=>!(existing.has(f) || sharedFiles.has(f)));\n unmanagedFiles = new Set(localDynamicCssFiles);\n cssFiles.push(...localDynamicCssFiles);\n }\n let cssLinkElements = [];\n cssFiles.forEach((file)=>{\n const isSharedFile = sharedFiles.has(file);\n const isUnmanagedFile = unmanagedFiles.has(file);\n const isFileInDynamicCssManifest = dynamicCssManifest.has(file);\n if (!optimizeCss) {\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"style\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, `${file}-preload`));\n }\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"stylesheet\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-n-g\": isUnmanagedFile ? undefined : isSharedFile ? '' : undefined,\n \"data-n-p\": isSharedFile || isUnmanagedFile || isFileInDynamicCssManifest ? undefined : ''\n }, file));\n });\n return cssLinkElements.length === 0 ? null : cssLinkElements;\n }\n getPreloadDynamicChunks() {\n const { dynamicImports, assetPrefix, assetQueryString, crossOrigin } = this.context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith('.js')) {\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file);\n }) // Filter out nulled scripts\n .filter(Boolean);\n }\n getPreloadMainLinks(files) {\n const { assetPrefix, assetQueryString, scriptLoader, crossOrigin } = this.context;\n const preloadFiles = files.allFiles.filter((file)=>{\n return file.endsWith('.js');\n });\n return [\n ...(scriptLoader.beforeInteractive || []).map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: file.src,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file.src)),\n ...preloadFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file))\n ];\n }\n getBeforeInteractiveInlineScripts() {\n const { scriptLoader } = this.context;\n const { nonce, crossOrigin } = this.props;\n return (scriptLoader.beforeInteractive || []).filter((script)=>!script.src && (script.dangerouslySetInnerHTML || script.children)).map((file, index)=>{\n const { strategy, children, dangerouslySetInnerHTML, src, ...scriptProps } = file;\n let html = '';\n if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n html = dangerouslySetInnerHTML.__html;\n } else if (children) {\n html = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n dangerouslySetInnerHTML: {\n __html: html\n },\n key: scriptProps.id || index,\n nonce: nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: crossOrigin || undefined\n });\n });\n }\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n render() {\n const { styles, ampPath, inAmpMode, hybridAmp, canonicalBase, __NEXT_DATA__, dangerousAsPath, headTags, unstable_runtimeJS, unstable_JsPreload, disableOptimizedLoading, optimizeCss, assetPrefix, nextFontManifest } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n const disableJsPreload = unstable_JsPreload === false || !disableOptimizedLoading;\n this.context.docComponentsRendered.Head = true;\n let { head } = this.context;\n let cssPreloads = [];\n let otherHeadElements = [];\n if (head) {\n head.forEach((child)=>{\n if (child && child.type === 'link' && child.props['rel'] === 'preload' && child.props['as'] === 'style') {\n cssPreloads.push(child);\n } else {\n if (child) {\n otherHeadElements.push(/*#__PURE__*/ _react.default.cloneElement(child, {\n 'data-next-head': ''\n }));\n }\n }\n });\n head = cssPreloads.concat(otherHeadElements);\n }\n let children = _react.default.Children.toArray(this.props.children).filter(Boolean);\n // show a warning if Head contains <title> (only in development)\n if (true) {\n children = _react.default.Children.map(children, (child)=>{\n var _child_props;\n const isReactHelmet = child == null ? void 0 : (_child_props = child.props) == null ? void 0 : _child_props['data-react-helmet'];\n if (!isReactHelmet) {\n var _child_props1;\n if ((child == null ? void 0 : child.type) === 'title') {\n console.warn(\"Warning: <title> should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-title\");\n } else if ((child == null ? void 0 : child.type) === 'meta' && (child == null ? void 0 : (_child_props1 = child.props) == null ? void 0 : _child_props1.name) === 'viewport') {\n console.warn(\"Warning: viewport meta tags should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-viewport-meta\");\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n if (this.props.crossOrigin) console.warn('Warning: `Head` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n let hasAmphtmlRel = false;\n let hasCanonicalRel = false;\n // show warning and remove conflicting amp head tags\n head = _react.default.Children.map(head || [], (child)=>{\n if (!child) return child;\n const { type, props } = child;\n if ( true && inAmpMode) {\n let badProp = '';\n if (type === 'meta' && props.name === 'viewport') {\n badProp = 'name=\"viewport\"';\n } else if (type === 'link' && props.rel === 'canonical') {\n hasCanonicalRel = true;\n } else if (type === 'script') {\n // only block if\n // 1. it has a src and isn't pointing to ampproject's CDN\n // 2. it is using dangerouslySetInnerHTML without a type or\n // a type of text/javascript\n if (props.src && props.src.indexOf('ampproject') < -1 || props.dangerouslySetInnerHTML && (!props.type || props.type === 'text/javascript')) {\n badProp = '<script';\n Object.keys(props).forEach((prop)=>{\n badProp += ` ${prop}=\"${props[prop]}\"`;\n });\n badProp += '/>';\n }\n }\n if (badProp) {\n console.warn(`Found conflicting amp tag \"${child.type}\" with conflicting prop ${badProp} in ${__NEXT_DATA__.page}. https://nextjs.org/docs/messages/conflicting-amp-tag`);\n return null;\n }\n } else {\n // non-amp mode\n if (type === 'link' && props.rel === 'amphtml') {\n hasAmphtmlRel = true;\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, true && inAmpMode);\n const nextFontLinkTags = getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix);\n const tracingMetadata = (0, _utils.getTracedMetadata)((0, _tracer.getTracer)().getTracePropagationData(), this.context.experimentalClientTraceMetadata);\n const traceMetaTags = (tracingMetadata || []).map(({ key, value }, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: key,\n content: value\n }, `next-trace-data-${index}`));\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"head\", {\n ...getHeadHTMLProps(this.props),\n children: [\n this.context.isDevelopment && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": true && inAmpMode ? 'true' : undefined,\n dangerouslySetInnerHTML: {\n __html: `body{display:none}`\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": true && inAmpMode ? 'true' : undefined,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `body{display:block}`\n }\n })\n })\n ]\n }),\n head,\n children,\n nextFontLinkTags.preconnect,\n nextFontLinkTags.preload,\n true && inAmpMode && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width,minimum-scale=1,initial-scale=1\"\n }),\n !hasCanonicalRel && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"canonical\",\n href: canonicalBase + (__webpack_require__(/*! ../server/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/utils.js\").cleanAmpPath)(dangerousAsPath)\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n as: \"script\",\n href: \"https://cdn.ampproject.org/v0.js\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(AmpStyles, {\n styles: styles\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}`\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}`\n }\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: true,\n src: \"https://cdn.ampproject.org/v0.js\"\n })\n ]\n }),\n !( true && inAmpMode) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !hasAmphtmlRel && hybridAmp && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"amphtml\",\n href: canonicalBase + getAmpPath(ampPath, dangerousAsPath)\n }),\n this.getBeforeInteractiveInlineScripts(),\n !optimizeCss && this.getCssLinks(files),\n !optimizeCss && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-n-css\": this.props.nonce ?? ''\n }),\n !disableRuntimeJS && !disableJsPreload && this.getPreloadDynamicChunks(),\n !disableRuntimeJS && !disableJsPreload && this.getPreloadMainLinks(files),\n !disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(),\n !disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(),\n !disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files),\n !disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files),\n optimizeCss && this.getCssLinks(files),\n optimizeCss && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-n-css\": this.props.nonce ?? ''\n }),\n this.context.isDevelopment && // this element is used to mount development styles so the\n // ordering matches production\n // (by default, style-loader injects at the bottom of <head />)\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n id: \"__next_css__DO_NOT_USE__\"\n }),\n traceMetaTags,\n styles || null\n ]\n }),\n /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, {}, ...headTags || [])\n ]\n });\n }\n}\nfunction handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props) {\n var _children_find_props, _children_find, _children_find_props1, _children_find1;\n if (!props.children) return;\n const scriptLoaderItems = [];\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n const headChildren = (_children_find = children.find((child)=>child.type === Head)) == null ? void 0 : (_children_find_props = _children_find.props) == null ? void 0 : _children_find_props.children;\n const bodyChildren = (_children_find1 = children.find((child)=>child.type === 'body')) == null ? void 0 : (_children_find_props1 = _children_find1.props) == null ? void 0 : _children_find_props1.children;\n // Scripts with beforeInteractive can be placed inside Head or <body> so children of both needs to be traversed\n const combinedChildren = [\n ...Array.isArray(headChildren) ? headChildren : [\n headChildren\n ],\n ...Array.isArray(bodyChildren) ? bodyChildren : [\n bodyChildren\n ]\n ];\n _react.default.Children.forEach(combinedChildren, (child)=>{\n var _child_type;\n if (!child) return;\n // When using the `next/script` component, register it in script loader.\n if ((_child_type = child.type) == null ? void 0 : _child_type.__nextScript) {\n if (child.props.strategy === 'beforeInteractive') {\n scriptLoader.beforeInteractive = (scriptLoader.beforeInteractive || []).concat([\n {\n ...child.props\n }\n ]);\n return;\n } else if ([\n 'lazyOnload',\n 'afterInteractive',\n 'worker'\n ].includes(child.props.strategy)) {\n scriptLoaderItems.push(child.props);\n return;\n } else if (typeof child.props.strategy === 'undefined') {\n scriptLoaderItems.push({\n ...child.props,\n strategy: 'afterInteractive'\n });\n return;\n }\n }\n });\n __NEXT_DATA__.scriptLoader = scriptLoaderItems;\n}\nclass NextScript extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n static getInlineScriptSource(context) {\n const { __NEXT_DATA__, largePageDataBytes } = context;\n try {\n const data = JSON.stringify(__NEXT_DATA__);\n if (largePageDataWarnings.has(__NEXT_DATA__.page)) {\n return (0, _htmlescape.htmlEscapeJsonString)(data);\n }\n const bytes = false ? 0 : Buffer.from(data).byteLength;\n const prettyBytes = (__webpack_require__(/*! ../lib/pretty-bytes */ \"(pages-dir-node)/./node_modules/next/dist/lib/pretty-bytes.js\")[\"default\"]);\n if (largePageDataBytes && bytes > largePageDataBytes) {\n if (false) {}\n console.warn(`Warning: data for page \"${__NEXT_DATA__.page}\"${__NEXT_DATA__.page === context.dangerousAsPath ? '' : ` (path \"${context.dangerousAsPath}\")`} is ${prettyBytes(bytes)} which exceeds the threshold of ${prettyBytes(largePageDataBytes)}, this amount of data can reduce performance.\\nSee more info here: https://nextjs.org/docs/messages/large-page-data`);\n }\n return (0, _htmlescape.htmlEscapeJsonString)(data);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.message.indexOf('circular structure') !== -1) {\n throw Object.defineProperty(new Error(`Circular structure in \"getInitialProps\" result of page \"${__NEXT_DATA__.page}\". https://nextjs.org/docs/messages/circular-structure`), \"__NEXT_ERROR_CODE\", {\n value: \"E490\",\n enumerable: false,\n configurable: true\n });\n }\n throw err;\n }\n }\n render() {\n const { assetPrefix, inAmpMode, buildManifest, unstable_runtimeJS, docComponentsRendered, assetQueryString, disableOptimizedLoading, crossOrigin } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n docComponentsRendered.NextScript = true;\n if ( true && inAmpMode) {\n if (false) {}\n const ampDevFiles = [\n ...buildManifest.devFiles,\n ...buildManifest.polyfillFiles,\n ...buildManifest.ampDevFiles\n ];\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n disableRuntimeJS ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n },\n \"data-ampdevmode\": true\n }),\n ampDevFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-ampdevmode\": true\n }, file))\n ]\n });\n }\n if (true) {\n if (this.props.crossOrigin) console.warn('Warning: `NextScript` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, true && inAmpMode);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !disableRuntimeJS && buildManifest.devFiles ? buildManifest.devFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file)) : null,\n disableRuntimeJS ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n }\n }),\n disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(),\n disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(),\n disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files),\n disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files)\n ]\n });\n }\n}\nfunction Html(props) {\n const { inAmpMode, docComponentsRendered, locale, scriptLoader, __NEXT_DATA__ } = (0, _htmlcontextsharedruntime.useHtmlContext)();\n docComponentsRendered.Html = true;\n handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"html\", {\n ...props,\n lang: props.lang || locale || undefined,\n amp: true && inAmpMode ? '' : undefined,\n \"data-ampdevmode\": true && inAmpMode && \"development\" !== 'production' ? '' : undefined\n });\n}\nfunction Main() {\n const { docComponentsRendered } = (0, _htmlcontextsharedruntime.useHtmlContext)();\n docComponentsRendered.Main = true;\n // @ts-ignore\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"next-js-internal-body-render-target\", {});\n}\nclass Document extends _react.default.Component {\n /**\n * `getInitialProps` hook returns the context object with the addition of `renderPage`.\n * `renderPage` callback executes `React` rendering logic synchronously to support server-rendering wrappers\n */ static getInitialProps(ctx) {\n return ctx.defaultGetInitialProps(ctx);\n }\n render() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(Html, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {\n nonce: this.props.nonce\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Main, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(NextScript, {\n nonce: this.props.nonce\n })\n ]\n })\n ]\n });\n }\n}\n// Add a special property to the built-in `Document` component so later we can\n// identify if a user customized `Document` is used or not.\nconst InternalFunctionDocument = function InternalFunctionDocument() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(Html, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Main, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(NextScript, {})\n ]\n })\n ]\n });\n};\nDocument[_constants.NEXT_BUILTIN_DOCUMENT] = InternalFunctionDocument; //# sourceMappingURL=_document.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2RvY3VtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBLDZDQUE2Qzs7Ozs7Ozs7Ozs7OztJQXVhaENBLElBQUk7ZUFBSkE7O0lBcXNCR0MsSUFBSTtlQUFKQTs7SUFpQ0FDLElBQUk7ZUFBSkE7O0lBL01IQyxVQUFVO2VBQVZBOztJQXNOYjs7O0NBR0MsR0FDRCxPQXNCQztlQXRCb0JDOzs7OzJFQXRwQ1c7dUNBQ007MENBV1Q7d0NBRVE7NEVBQ2pCO3NEQUtiOzJDQUV1QjtvQ0FFSjttQ0FDUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QmxDLDhFQUE4RSxHQUM5RSxNQUFNQyx3QkFBd0IsSUFBSUM7QUFFbEMsU0FBU0MsaUJBQ1BDLGFBQTRCLEVBQzVCQyxRQUFnQixFQUNoQkMsU0FBa0I7SUFFbEIsTUFBTUMsY0FBaUNDLENBQUFBLEdBQUFBLGNBQUFBLFlBQVksRUFBQ0osZUFBZTtJQUNuRSxNQUFNSyxZQUNKQyxLQUFtQyxJQUFJSixZQUNuQyxFQUFFLEdBQ0ZFLENBQUFBLEdBQUFBLGNBQUFBLFlBQUFBLEVBQWFKLGVBQWVDO0lBRWxDLE9BQU87UUFDTEU7UUFDQUU7UUFDQUksVUFBVTtlQUFJLElBQUlYLElBQUk7bUJBQUlLO21CQUFnQkU7YUFBVTtTQUFFO0lBQ3hEO0FBQ0Y7QUFFQSxTQUFTSyxtQkFBbUJDLE9BQWtCLEVBQUVDLEtBQWtCO0lBQ2hFLDREQUE0RDtJQUM1RCw2Q0FBNkM7SUFDN0MsTUFBTSxFQUNKQyxXQUFXLEVBQ1hiLGFBQWEsRUFDYmMsZ0JBQWdCLEVBQ2hCQyx1QkFBdUIsRUFDdkJDLFdBQVcsRUFDWixHQUFHTDtJQUVKLE9BQU9YLGNBQWNpQixhQUFhLENBQy9CQyxNQUFNLENBQ0wsQ0FBQ0MsV0FBYUEsU0FBU0MsUUFBUSxDQUFDLFVBQVUsQ0FBQ0QsU0FBU0MsUUFBUSxDQUFDLGVBRTlEQyxHQUFH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OzhCQUM3QixzQkFBQ21NLFFBQUFBOztzQ0FDQyxxQkFBQ2pPLE1BQUFBLENBQUFBO3NDQUNELHFCQUFDQyxZQUFBQTs0QkFBVzZCLE9BQU8sSUFBSSxDQUFDWixLQUFLLENBQUNZLEtBQUs7Ozs7OztJQUkzQztBQUNGO0FBRUEsOEVBQThFO0FBQzlFLDJEQUEyRDtBQUMzRCxNQUFNb00sMkJBQ0osU0FBU0E7SUFDUCxxQkFDRSxzQkFBQ25PLE1BQUFBOzswQkFDQyxxQkFBQ0QsTUFBQUEsQ0FBQUE7MEJBQ0Qsc0JBQUNtTyxRQUFBQTs7a0NBQ0MscUJBQUNqTyxNQUFBQSxDQUFBQTtrQ0FDRCxxQkFBQ0MsWUFBQUEsQ0FBQUE7Ozs7O0FBSVQ7QUFDQUMsUUFBZ0IsQ0FBQ2lPLFdBQUFBLHFCQUFxQixDQUFDLEdBQUdEIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL3NyYy9wYWdlcy9fZG9jdW1lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwid2VicGFjay9tb2R1bGUuZC50c1wiIC8+XG5cbmltcG9ydCBSZWFjdCwgeyB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTkVYVF9CVUlMVElOX0RPQ1VNRU5UIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7XG4gIERvY3VtZW50Q29udGV4dCxcbiAgRG9jdW1lbnRJbml0aWFsUHJvcHMsXG4gIERvY3VtZW50UHJvcHMsXG4gIERvY3VtZW50VHlwZSxcbiAgTkVYVF9EQVRBLFxufSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBTY3JpcHRQcm9wcyB9IGZyb20gJy4uL2NsaWVudC9zY3JpcHQnXG5pbXBvcnQgdHlwZSB7IE5leHRGb250TWFuaWZlc3QgfSBmcm9tICcuLi9idWlsZC93ZWJwYWNrL3BsdWdpbnMvbmV4dC1mb250LW1hbmlmZXN0LXBsdWdpbidcblxuaW1wb3J0IHsgZ2V0UGFnZUZpbGVzIH0gZnJvbSAnLi4vc2VydmVyL2dldC1wYWdlLWZpbGVzJ1xuaW1wb3J0IHR5cGUgeyBCdWlsZE1hbmlmZXN0IH0gZnJvbSAnLi4vc2VydmVyL2dldC1wYWdlLWZpbGVzJ1xuaW1wb3J0IHsgaHRtbEVzY2FwZUpzb25TdHJpbmcgfSBmcm9tICcuLi9zZXJ2ZXIvaHRtbGVzY2FwZSdcbmltcG9ydCBpc0Vycm9yIGZyb20gJy4uL2xpYi9pcy1lcnJvcidcblxuaW1wb3J0IHtcbiAgSHRtbENvbnRleHQsXG4gIHVzZUh0bWxDb250ZXh0LFxufSBmcm9tICcuLi9zaGFyZWQvbGliL2h0bWwtY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHsgSHRtbFByb3BzIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9odG1sLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBlbmNvZGVVUklQYXRoIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9lbmNvZGUtdXJpLXBhdGgnXG5pbXBvcnQgdHlwZSB7IERlZXBSZWFkb25seSB9IGZyb20gJy4uL3NoYXJlZC9saWIvZGVlcC1yZWFkb25seSdcbmltcG9ydCB7IGdldFRyYWNlciB9IGZyb20gJy4uL3NlcnZlci9saWIvdHJhY2UvdHJhY2VyJ1xuaW1wb3J0IHsgZ2V0VHJhY2VkTWV0YWRhdGEgfSBmcm9tICcuLi9zZXJ2ZXIvbGliL3RyYWNlL3V0aWxzJ1xuXG5leHBvcnQgdHlwZSB7IERvY3VtZW50Q29udGV4dCwgRG9jdW1lbnRJbml0aWFsUHJvcHMsIERvY3VtZW50UHJvcHMgfVxuXG5leHBvcnQgdHlwZSBPcmlnaW5Qcm9wcyA9IHtcbiAgbm9uY2U/OiBzdHJpbmdcbiAgY3Jvc3NPcmlnaW4/OiAnYW5vbnltb3VzJyB8ICd1c2UtY3JlZGVudGlhbHMnIHwgJycgfCB1bmRlZmluZWRcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbn1cblxudHlwZSBEb2N1bWVudEZpbGVzID0ge1xuICBzaGFyZWRGaWxlczogcmVhZG9ubHkgc3RyaW5nW11cbiAgcGFnZUZpbGVzOiByZWFkb25seSBzdHJpbmdbXVxuICBhbGxGaWxlczogcmVhZG9ubHkgc3RyaW5nW11cbn1cblxudHlwZSBIZWFkSFRNTFByb3BzID0gUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxIZWFkRWxlbWVudD4sXG4gIEhUTUxIZWFkRWxlbWVudFxuPlxuXG50eXBlIEhlYWRQcm9wcyA9IE9yaWdpblByb3BzICYgSGVhZEhUTUxQcm9wc1xuXG4vKiogU2V0IG9mIHBhZ2VzIHRoYXQgaGF2ZSB0cmlnZ2VyZWQgYSBsYXJnZSBkYXRhIHdhcm5pbmcgb24gcHJvZHVjdGlvbiBtb2RlLiAqL1xuY29uc3QgbGFyZ2VQYWdlRGF0YVdhcm5pbmdzID0gbmV3IFNldDxzdHJpbmc+KClcblxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRGaWxlcyhcbiAgYnVpbGRNYW5pZmVzdDogQnVpbGRNYW5pZmVzdCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgaW5BbXBNb2RlOiBib29sZWFuXG4pOiBEb2N1bWVudEZpbGVzIHtcbiAgY29uc3Qgc2hhcmVkRmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdID0gZ2V0UGFnZUZpbGVzKGJ1aWxkTWFuaWZlc3QsICcvX2FwcCcpXG4gIGNvbnN0IHBhZ2VGaWxlczogcmVhZG9ubHkgc3RyaW5nW10gPVxuICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZVxuICAgICAgPyBbXVxuICAgICAgOiBnZXRQYWdlRmlsZXMoYnVpbGRNYW5pZmVzdCwgcGF0aG5hbWUpXG5cbiAgcmV0dXJuIHtcbiAgICBzaGFyZWRGaWxlcyxcbiAgICBwYWdlRmlsZXMsXG4gICAgYWxsRmlsZXM6IFsuLi5uZXcgU2V0KFsuLi5zaGFyZWRGaWxlcywgLi4ucGFnZUZpbGVzXSldLFxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFBvbHlmaWxsU2NyaXB0cyhjb250ZXh0OiBIdG1sUHJvcHMsIHByb3BzOiBPcmlnaW5Qcm9wcykge1xuICAvLyBwb2x5ZmlsbHMuanMgaGFzIHRvIGJlIHJlbmRlcmVkIGFzIG5vbW9kdWxlIHdpdGhvdXQgYXN5bmNcbiAgLy8gSXQgYWxzbyBoYXMgdG8gYmUgdGhlIGZpcnN0IHNjcmlwdCB0byBsb2FkXG4gIGNvbnN0IHtcbiAgICBhc3NldFByZWZpeCxcbiAgICBidWlsZE1hbmlmZXN0LFxuICAgIGFzc2V0UXVlcnlTdHJpbmcsXG4gICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgY3Jvc3NPcmlnaW4sXG4gIH0gPSBjb250ZXh0XG5cbiAgcmV0dXJuIGJ1aWxkTWFuaWZlc3QucG9seWZpbGxGaWxlc1xuICAgIC5maWx0ZXIoXG4gICAgICAocG9seWZpbGwpID0+IHBvbHlmaWxsLmVuZHNXaXRoKCcuanMnKSAmJiAhcG9seWZpbGwuZW5kc1dpdGgoJy5tb2R1bGUuanMnKVxuICAgIClcbiAgICAubWFwKChwb2x5ZmlsbCkgPT4gKFxuICAgICAgPHNjcmlwdFxuICAgICAgICBrZXk9e3BvbHlmaWxsfVxuICAgICAgICBkZWZlcj17IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgIGNyb3NzT3JpZ2luPXtwcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgbm9Nb2R1bGU9e3RydWV9XG4gICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICBwb2x5ZmlsbFxuICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgLz5cbiAgICApKVxufVxuXG5mdW5jdGlvbiBoYXNDb21wb25lbnRQcm9wcyhjaGlsZDogYW55KTogY2hpbGQgaXMgUmVhY3QuUmVhY3RFbGVtZW50PGFueT4ge1xuICByZXR1cm4gISFjaGlsZCAmJiAhIWNoaWxkLnByb3BzXG59XG5cbmZ1bmN0aW9uIEFtcFN0eWxlcyh7XG4gIHN0eWxlcyxcbn06IHtcbiAgc3R5bGVzPzogUmVhY3QuUmVhY3RFbGVtZW50W10gfCBJdGVyYWJsZTxSZWFjdC5SZWFjdE5vZGU+XG59KSB7XG4gIGlmICghc3R5bGVzKSByZXR1cm4gbnVsbFxuXG4gIC8vIHRyeSB0byBwYXJzZSBzdHlsZXMgZnJvbSBmcmFnbWVudCBmb3IgYmFja3dhcmRzIGNvbXBhdFxuICBjb25zdCBjdXJTdHlsZXM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+W10gPSBBcnJheS5pc0FycmF5KHN0eWxlcylcbiAgICA/IChzdHlsZXMgYXMgUmVhY3QuUmVhY3RFbGVtZW50W10pXG4gICAgOiBbXVxuICBpZiAoXG4gICAgLy8gQHRzLWlnbm9yZSBQcm9wZXJ0eSAncHJvcHMnIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgUmVhY3RFbGVtZW50XG4gICAgc3R5bGVzLnByb3BzICYmXG4gICAgLy8gQHRzLWlnbm9yZSBQcm9wZXJ0eSAncHJvcHMnIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgUmVhY3RFbGVtZW50XG4gICAgQXJyYXkuaXNBcnJheShzdHlsZXMucHJvcHMuY2hpbGRyZW4pXG4gICkge1xuICAgIGNvbnN0IGhhc1N0eWxlcyA9IChlbDogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4pID0+XG4gICAgICBlbD8ucHJvcHM/LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPy5fX2h0bWxcbiAgICAvLyBAdHMtaWdub3JlIFByb3BlcnR5ICdwcm9wcycgZG9lcyBub3QgZXhpc3Qgb24gdHlwZSBSZWFjdEVsZW1lbnRcbiAgICBzdHlsZXMucHJvcHMuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCkgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGQpKSB7XG4gICAgICAgIGNoaWxkLmZvckVhY2goKGVsKSA9PiBoYXNTdHlsZXMoZWwpICYmIGN1clN0eWxlcy5wdXNoKGVsKSlcbiAgICAgIH0gZWxzZSBpZiAoaGFzU3R5bGVzKGNoaWxkKSkge1xuICAgICAgICBjdXJTdHlsZXMucHVzaChjaGlsZClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyogQWRkIGN1c3RvbSBzdHlsZXMgYmVmb3JlIEFNUCBzdHlsZXMgdG8gcHJldmVudCBhY2NpZGVudGFsIG92ZXJyaWRlcyAqL1xuICByZXR1cm4gKFxuICAgIDxzdHlsZVxuICAgICAgYW1wLWN1c3RvbT1cIlwiXG4gICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICBfX2h0bWw6IGN1clN0eWxlc1xuICAgICAgICAgIC5tYXAoKHN0eWxlKSA9PiBzdHlsZS5wcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwpXG4gICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgLnJlcGxhY2UoL1xcL1xcKiMgc291cmNlTWFwcGluZ1VSTD0uKlxcKlxcLy9nLCAnJylcbiAgICAgICAgICAucmVwbGFjZSgvXFwvXFwqQCBzb3VyY2VVUkw9Lio/XFwqXFwvL2csICcnKSxcbiAgICAgIH19XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBnZXREeW5hbWljQ2h1bmtzKFxuICBjb250ZXh0OiBIdG1sUHJvcHMsXG4gIHByb3BzOiBPcmlnaW5Qcm9wcyxcbiAgZmlsZXM6IERvY3VtZW50RmlsZXNcbikge1xuICBjb25zdCB7XG4gICAgZHluYW1pY0ltcG9ydHMsXG4gICAgYXNzZXRQcmVmaXgsXG4gICAgaXNEZXZlbG9wbWVudCxcbiAgICBhc3NldFF1ZXJ5U3RyaW5nLFxuICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgIGNyb3NzT3JpZ2luLFxuICB9ID0gY29udGV4dFxuXG4gIHJldHVybiBkeW5hbWljSW1wb3J0cy5tYXAoKGZpbGUpID0+IHtcbiAgICBpZiAoIWZpbGUuZW5kc1dpdGgoJy5qcycpIHx8IGZpbGVzLmFsbEZpbGVzLmluY2x1ZGVzKGZpbGUpKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzY3JpcHRcbiAgICAgICAgYXN5bmM9eyFpc0RldmVsb3BtZW50ICYmIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBkZWZlcj17IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChmaWxlKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgbm9uY2U9e3Byb3BzLm5vbmNlfVxuICAgICAgICBjcm9zc09yaWdpbj17cHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAvPlxuICAgIClcbiAgfSlcbn1cblxuZnVuY3Rpb24gZ2V0U2NyaXB0cyhcbiAgY29udGV4dDogSHRtbFByb3BzLFxuICBwcm9wczogT3JpZ2luUHJvcHMsXG4gIGZpbGVzOiBEb2N1bWVudEZpbGVzXG4pIHtcbiAgY29uc3Qge1xuICAgIGFzc2V0UHJlZml4LFxuICAgIGJ1aWxkTWFuaWZlc3QsXG4gICAgaXNEZXZlbG9wbWVudCxcbiAgICBhc3NldFF1ZXJ5U3RyaW5nLFxuICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgIGNyb3NzT3JpZ2luLFxuICB9ID0gY29udGV4dFxuXG4gIGNvbnN0IG5vcm1hbFNjcmlwdHMgPSBmaWxlcy5hbGxGaWxlcy5maWx0ZXIoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJy5qcycpKVxuICBjb25zdCBsb3dQcmlvcml0eVNjcmlwdHMgPSBidWlsZE1hbmlmZXN0Lmxvd1ByaW9yaXR5RmlsZXM/LmZpbHRlcigoZmlsZSkgPT5cbiAgICBmaWxlLmVuZHNXaXRoKCcuanMnKVxuICApXG5cbiAgcmV0dXJuIFsuLi5ub3JtYWxTY3JpcHRzLCAuLi5sb3dQcmlvcml0eVNjcmlwdHNdLm1hcCgoZmlsZSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8c2NyaXB0XG4gICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgc3JjPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKGZpbGUpfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgIGFzeW5jPXshaXNEZXZlbG9wbWVudCAmJiBkaXNhYmxlT3B0aW1pemVkTG9hZGluZ31cbiAgICAgICAgZGVmZXI9eyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZ31cbiAgICAgICAgY3Jvc3NPcmlnaW49e3Byb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgLz5cbiAgICApXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGdldFByZU5leHRXb3JrZXJTY3JpcHRzKGNvbnRleHQ6IEh0bWxQcm9wcywgcHJvcHM6IE9yaWdpblByb3BzKSB7XG4gIGNvbnN0IHsgYXNzZXRQcmVmaXgsIHNjcmlwdExvYWRlciwgY3Jvc3NPcmlnaW4sIG5leHRTY3JpcHRXb3JrZXJzIH0gPSBjb250ZXh0XG5cbiAgLy8gZGlzYWJsZSBgbmV4dFNjcmlwdFdvcmtlcnNgIGluIGVkZ2UgcnVudGltZVxuICBpZiAoIW5leHRTY3JpcHRXb3JrZXJzIHx8IHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSByZXR1cm4gbnVsbFxuXG4gIHRyeSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogUHJldmVudCB3ZWJwYWNrIGZyb20gcHJvY2Vzc2luZyB0aGlzIHJlcXVpcmVcbiAgICBsZXQgeyBwYXJ0eXRvd25TbmlwcGV0IH0gPSBfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyhcbiAgICAgICdAYnVpbGRlci5pby9wYXJ0eXRvd24vaW50ZWdyYXRpb24nIVxuICAgIClcblxuICAgIGNvbnN0IGNoaWxkcmVuID0gQXJyYXkuaXNBcnJheShwcm9wcy5jaGlsZHJlbilcbiAgICAgID8gcHJvcHMuY2hpbGRyZW5cbiAgICAgIDogW3Byb3BzLmNoaWxkcmVuXVxuXG4gICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB1c2VyIGhhcyBkZWZpbmVkIHRoZWlyIG93biBQYXJ0eXRvd24gY29uZmlndXJhdGlvblxuICAgIGNvbnN0IHVzZXJEZWZpbmVkQ29uZmlnID0gY2hpbGRyZW4uZmluZChcbiAgICAgIChjaGlsZCkgPT5cbiAgICAgICAgaGFzQ29tcG9uZW50UHJvcHMoY2hpbGQpICYmXG4gICAgICAgIGNoaWxkPy5wcm9wcz8uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw/Ll9faHRtbC5sZW5ndGggJiZcbiAgICAgICAgJ2RhdGEtcGFydHl0b3duLWNvbmZpZycgaW4gY2hpbGQucHJvcHNcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgeyF1c2VyRGVmaW5lZENvbmZpZyAmJiAoXG4gICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgZGF0YS1wYXJ0eXRvd24tY29uZmlnPVwiXCJcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIF9faHRtbDogYFxuICAgICAgICAgICAgcGFydHl0b3duID0ge1xuICAgICAgICAgICAgICBsaWI6IFwiJHthc3NldFByZWZpeH0vX25leHQvc3RhdGljL35wYXJ0eXRvd24vXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgYCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgPHNjcmlwdFxuICAgICAgICAgIGRhdGEtcGFydHl0b3duPVwiXCJcbiAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgX19odG1sOiBwYXJ0eXRvd25TbmlwcGV0KCksXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgeyhzY3JpcHRMb2FkZXIud29ya2VyIHx8IFtdKS5tYXAoKGZpbGU6IFNjcmlwdFByb3BzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgc3RyYXRlZ3ksXG4gICAgICAgICAgICBzcmMsXG4gICAgICAgICAgICBjaGlsZHJlbjogc2NyaXB0Q2hpbGRyZW4sXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTCxcbiAgICAgICAgICAgIC4uLnNjcmlwdFByb3BzXG4gICAgICAgICAgfSA9IGZpbGVcblxuICAgICAgICAgIGxldCBzcmNQcm9wczoge1xuICAgICAgICAgICAgc3JjPzogc3RyaW5nXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD86IFNjcmlwdFByb3BzWydkYW5nZXJvdXNseVNldElubmVySFRNTCddXG4gICAgICAgICAgfSA9IHt9XG5cbiAgICAgICAgICBpZiAoc3JjKSB7XG4gICAgICAgICAgICAvLyBVc2UgZXh0ZXJuYWwgc3JjIGlmIHByb3ZpZGVkXG4gICAgICAgICAgICBzcmNQcm9wcy5zcmMgPSBzcmNcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiZcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gRW1iZWQgaW5saW5lIHNjcmlwdCBpZiBwcm92aWRlZCB3aXRoIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXG4gICAgICAgICAgICBzcmNQcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9IHtcbiAgICAgICAgICAgICAgX19odG1sOiBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChzY3JpcHRDaGlsZHJlbikge1xuICAgICAgICAgICAgLy8gRW1iZWQgaW5saW5lIHNjcmlwdCBpZiBwcm92aWRlZCB3aXRoIGNoaWxkcmVuXG4gICAgICAgICAgICBzcmNQcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCA9IHtcbiAgICAgICAgICAgICAgX19odG1sOlxuICAgICAgICAgICAgICAgIHR5cGVvZiBzY3JpcHRDaGlsZHJlbiA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICAgID8gc2NyaXB0Q2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgIDogQXJyYXkuaXNBcnJheShzY3JpcHRDaGlsZHJlbilcbiAgICAgICAgICAgICAgICAgICAgPyBzY3JpcHRDaGlsZHJlbi5qb2luKCcnKVxuICAgICAgICAgICAgICAgICAgICA6ICcnLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICdJbnZhbGlkIHVzYWdlIG9mIG5leHQvc2NyaXB0LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlIGEgc3JjIGF0dHJpYnV0ZSBvciBhbiBpbmxpbmUgc2NyaXB0PyBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnZhbGlkLXNjcmlwdCdcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICB7Li4uc3JjUHJvcHN9XG4gICAgICAgICAgICAgIHsuLi5zY3JpcHRQcm9wc31cbiAgICAgICAgICAgICAgdHlwZT1cInRleHQvcGFydHl0b3duXCJcbiAgICAgICAgICAgICAga2V5PXtzcmMgfHwgaW5kZXh9XG4gICAgICAgICAgICAgIG5vbmNlPXtwcm9wcy5ub25jZX1cbiAgICAgICAgICAgICAgZGF0YS1uc2NyaXB0PVwid29ya2VyXCJcbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3Byb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApXG4gICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoaXNFcnJvcihlcnIpICYmIGVyci5jb2RlICE9PSAnTU9EVUxFX05PVF9GT1VORCcpIHtcbiAgICAgIGNvbnNvbGUud2FybihgV2FybmluZzogJHtlcnIubWVzc2FnZX1gKVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFByZU5leHRTY3JpcHRzKGNvbnRleHQ6IEh0bWxQcm9wcywgcHJvcHM6IE9yaWdpblByb3BzKSB7XG4gIGNvbnN0IHsgc2NyaXB0TG9hZGVyLCBkaXNhYmxlT3B0aW1pemVkTG9hZGluZywgY3Jvc3NPcmlnaW4gfSA9IGNvbnRleHRcblxuICBjb25zdCB3ZWJXb3JrZXJTY3JpcHRzID0gZ2V0UHJlTmV4dFdvcmtlclNjcmlwdHMoY29udGV4dCwgcHJvcHMpXG5cbiAgY29uc3QgYmVmb3JlSW50ZXJhY3RpdmVTY3JpcHRzID0gKHNjcmlwdExvYWRlci5iZWZvcmVJbnRlcmFjdGl2ZSB8fCBbXSlcbiAgICAuZmlsdGVyKChzY3JpcHQpID0+IHNjcmlwdC5zcmMpXG4gICAgLm1hcCgoZmlsZTogU2NyaXB0UHJvcHMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyYXRlZ3ksIC4uLnNjcmlwdFByb3BzIH0gPSBmaWxlXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgey4uLnNjcmlwdFByb3BzfVxuICAgICAgICAgIGtleT17c2NyaXB0UHJvcHMuc3JjIHx8IGluZGV4fVxuICAgICAgICAgIGRlZmVyPXtzY3JpcHRQcm9wcy5kZWZlciA/PyAhZGlzYWJsZU9wdGltaXplZExvYWRpbmd9XG4gICAgICAgICAgbm9uY2U9e3NjcmlwdFByb3BzLm5vbmNlIHx8IHByb3BzLm5vbmNlfVxuICAgICAgICAgIGRhdGEtbnNjcmlwdD1cImJlZm9yZUludGVyYWN0aXZlXCJcbiAgICAgICAgICBjcm9zc09yaWdpbj17cHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfSlcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7d2ViV29ya2VyU2NyaXB0c31cbiAgICAgIHtiZWZvcmVJbnRlcmFjdGl2ZVNjcmlwdHN9XG4gICAgPC8+XG4gIClcbn1cblxuZnVuY3Rpb24gZ2V0SGVhZEhUTUxQcm9wcyhwcm9wczogSGVhZFByb3BzKSB7XG4gIGNvbnN0IHsgY3Jvc3NPcmlnaW4sIG5vbmNlLCAuLi5yZXN0UHJvcHMgfSA9IHByb3BzXG5cbiAgLy8gVGhpcyBhc3NpZ25tZW50IGlzIG5lY2Vzc2FyeSBmb3IgYWRkaXRpb25hbCB0eXBlIGNoZWNraW5nIHRvIGF2b2lkIHVuc3VwcG9ydGVkIGF0dHJpYnV0ZXMgaW4gPGhlYWQ+XG4gIGNvbnN0IGhlYWRQcm9wczogSGVhZEhUTUxQcm9wcyAmIHtcbiAgICBbUCBpbiBFeGNsdWRlPGtleW9mIEhlYWRQcm9wcywga2V5b2YgSGVhZEhUTUxQcm9wcz5dPzogbmV2ZXJcbiAgfSA9IHJlc3RQcm9wc1xuXG4gIHJldHVybiBoZWFkUHJvcHNcbn1cblxuZnVuY3Rpb24gZ2V0QW1wUGF0aChhbXBQYXRoOiBzdHJpbmcsIGFzUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGFtcFBhdGggfHwgYCR7YXNQYXRofSR7YXNQYXRoLmluY2x1ZGVzKCc/JykgPyAnJicgOiAnPyd9YW1wPTFgXG59XG5cbmZ1bmN0aW9uIGdldE5leHRGb250TGlua1RhZ3MoXG4gIG5leHRGb250TWFuaWZlc3Q6IERlZXBSZWFkb25seTxOZXh0Rm9udE1hbmlmZXN0PiB8IHVuZGVmaW5lZCxcbiAgZGFuZ2Vyb3VzQXNQYXRoOiBzdHJpbmcsXG4gIGFzc2V0UHJlZml4OiBzdHJpbmcgPSAnJ1xuKSB7XG4gIGlmICghbmV4dEZvbnRNYW5pZmVzdCkge1xuICAgIHJldHVybiB7XG4gICAgICBwcmVjb25uZWN0OiBudWxsLFxuICAgICAgcHJlbG9hZDogbnVsbCxcbiAgICB9XG4gIH1cblxuICBjb25zdCBhcHBGb250c0VudHJ5ID0gbmV4dEZvbnRNYW5pZmVzdC5wYWdlc1snL19hcHAnXVxuICBjb25zdCBwYWdlRm9udHNFbnRyeSA9IG5leHRGb250TWFuaWZlc3QucGFnZXNbZGFuZ2Vyb3VzQXNQYXRoXVxuXG4gIGNvbnN0IHByZWxvYWRlZEZvbnRGaWxlcyA9IEFycmF5LmZyb20oXG4gICAgbmV3IFNldChbLi4uKGFwcEZvbnRzRW50cnkgPz8gW10pLCAuLi4ocGFnZUZvbnRzRW50cnkgPz8gW10pXSlcbiAgKVxuXG4gIC8vIElmIG5vIGZvbnQgZmlsZXMgc2hvdWxkIHByZWxvYWQgYnV0IHRoZXJlJ3MgYW4gZW50cnkgZm9yIHRoZSBwYXRoLCBhZGQgYSBwcmVjb25uZWN0IHRhZy5cbiAgY29uc3QgcHJlY29ubmVjdFRvU2VsZiA9ICEhKFxuICAgIHByZWxvYWRlZEZvbnRGaWxlcy5sZW5ndGggPT09IDAgJiZcbiAgICAoYXBwRm9udHNFbnRyeSB8fCBwYWdlRm9udHNFbnRyeSlcbiAgKVxuXG4gIHJldHVybiB7XG4gICAgcHJlY29ubmVjdDogcHJlY29ubmVjdFRvU2VsZiA/IChcbiAgICAgIDxsaW5rXG4gICAgICAgIGRhdGEtbmV4dC1mb250PXtcbiAgICAgICAgICBuZXh0Rm9udE1hbmlmZXN0LnBhZ2VzVXNpbmdTaXplQWRqdXN0ID8gJ3NpemUtYWRqdXN0JyA6ICcnXG4gICAgICAgIH1cbiAgICAgICAgcmVsPVwicHJlY29ubmVjdFwiXG4gICAgICAgIGhyZWY9XCIvXCJcbiAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgLz5cbiAgICApIDogbnVsbCxcbiAgICBwcmVsb2FkOiBwcmVsb2FkZWRGb250RmlsZXNcbiAgICAgID8gcHJlbG9hZGVkRm9udEZpbGVzLm1hcCgoZm9udEZpbGUpID0+IHtcbiAgICAgICAgICBjb25zdCBleHQgPSAvXFwuKHdvZmZ8d29mZjJ8ZW90fHR0ZnxvdGYpJC8uZXhlYyhmb250RmlsZSkhWzFdXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgIGtleT17Zm9udEZpbGV9XG4gICAgICAgICAgICAgIHJlbD1cInByZWxvYWRcIlxuICAgICAgICAgICAgICBocmVmPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKGZvbnRGaWxlKX1gfVxuICAgICAgICAgICAgICBhcz1cImZvbnRcIlxuICAgICAgICAgICAgICB0eXBlPXtgZm9udC8ke2V4dH1gfVxuICAgICAgICAgICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1mb250PXtmb250RmlsZS5pbmNsdWRlcygnLXMnKSA/ICdzaXplLWFkanVzdCcgOiAnJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgOiBudWxsLFxuICB9XG59XG5cbi8vIFVzZSBgUmVhY3QuQ29tcG9uZW50YCB0byBhdm9pZCBlcnJvcnMgZnJvbSB0aGUgUlNDIGNoZWNrcyBiZWNhdXNlXG4vLyBpdCBjYW4ndCBiZSBpbXBvcnRlZCBkaXJlY3RseSBpbiBTZXJ2ZXIgQ29tcG9uZW50czpcbi8vXG4vLyAgIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0J1xuLy9cbi8vIE1vcmUgaW5mbzogaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL3B1bGwvNDA2ODZcbmV4cG9ydCBjbGFzcyBIZWFkIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PEhlYWRQcm9wcz4ge1xuICBzdGF0aWMgY29udGV4dFR5cGUgPSBIdG1sQ29udGV4dFxuXG4gIGNvbnRleHQhOiBIdG1sUHJvcHNcblxuICBnZXRDc3NMaW5rcyhmaWxlczogRG9jdW1lbnRGaWxlcyk6IEpTWC5FbGVtZW50W10gfCBudWxsIHtcbiAgICBjb25zdCB7XG4gICAgICBhc3NldFByZWZpeCxcbiAgICAgIGFzc2V0UXVlcnlTdHJpbmcsXG4gICAgICBkeW5hbWljSW1wb3J0cyxcbiAgICAgIGR5bmFtaWNDc3NNYW5pZmVzdCxcbiAgICAgIGNyb3NzT3JpZ2luLFxuICAgICAgb3B0aW1pemVDc3MsXG4gICAgfSA9IHRoaXMuY29udGV4dFxuICAgIGNvbnN0IGNzc0ZpbGVzID0gZmlsZXMuYWxsRmlsZXMuZmlsdGVyKChmKSA9PiBmLmVuZHNXaXRoKCcuY3NzJykpXG4gICAgY29uc3Qgc2hhcmVkRmlsZXM6IFNldDxzdHJpbmc+ID0gbmV3IFNldChmaWxlcy5zaGFyZWRGaWxlcylcblxuICAgIC8vIFVubWFuYWdlZCBmaWxlcyBhcmUgQ1NTIGZpbGVzIHRoYXQgd2lsbCBiZSBoYW5kbGVkIGRpcmVjdGx5IGJ5IHRoZVxuICAgIC8vIHdlYnBhY2sgcnVudGltZSAoYG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luYCkuXG4gICAgbGV0IHVubWFuYWdlZEZpbGVzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW10pXG4gICAgbGV0IGxvY2FsRHluYW1pY0Nzc0ZpbGVzID0gQXJyYXkuZnJvbShcbiAgICAgIG5ldyBTZXQoZHluYW1pY0ltcG9ydHMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLmVuZHNXaXRoKCcuY3NzJykpKVxuICAgIClcbiAgICBpZiAobG9jYWxEeW5hbWljQ3NzRmlsZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBleGlzdGluZyA9IG5ldyBTZXQoY3NzRmlsZXMpXG4gICAgICBsb2NhbER5bmFtaWNDc3NGaWxlcyA9IGxvY2FsRHluYW1pY0Nzc0ZpbGVzLmZpbHRlcihcbiAgICAgICAgKGYpID0+ICEoZXhpc3RpbmcuaGFzKGYpIHx8IHNoYXJlZEZpbGVzLmhhcyhmKSlcbiAgICAgIClcbiAgICAgIHVubWFuYWdlZEZpbGVzID0gbmV3IFNldChsb2NhbER5bmFtaWNDc3NGaWxlcylcbiAgICAgIGNzc0ZpbGVzLnB1c2goLi4ubG9jYWxEeW5hbWljQ3NzRmlsZXMpXG4gICAgfVxuXG4gICAgbGV0IGNzc0xpbmtFbGVtZW50czogSlNYLkVsZW1lbnRbXSA9IFtdXG4gICAgY3NzRmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgY29uc3QgaXNTaGFyZWRGaWxlID0gc2hhcmVkRmlsZXMuaGFzKGZpbGUpXG4gICAgICBjb25zdCBpc1VubWFuYWdlZEZpbGUgPSB1bm1hbmFnZWRGaWxlcy5oYXMoZmlsZSlcbiAgICAgIGNvbnN0IGlzRmlsZUluRHluYW1pY0Nzc01hbmlmZXN0ID0gZHluYW1pY0Nzc01hbmlmZXN0LmhhcyhmaWxlKVxuXG4gICAgICBpZiAoIW9wdGltaXplQ3NzKSB7XG4gICAgICAgIGNzc0xpbmtFbGVtZW50cy5wdXNoKFxuICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICBrZXk9e2Ake2ZpbGV9LXByZWxvYWRgfVxuICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICAgIGhyZWY9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoXG4gICAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICBhcz1cInN0eWxlXCJcbiAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgY3NzTGlua0VsZW1lbnRzLnB1c2goXG4gICAgICAgIDxsaW5rXG4gICAgICAgICAga2V5PXtmaWxlfVxuICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgIHJlbD1cInN0eWxlc2hlZXRcIlxuICAgICAgICAgIGhyZWY9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoXG4gICAgICAgICAgICBmaWxlXG4gICAgICAgICAgKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICBkYXRhLW4tZz17aXNVbm1hbmFnZWRGaWxlID8gdW5kZWZpbmVkIDogaXNTaGFyZWRGaWxlID8gJycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgZGF0YS1uLXA9e1xuICAgICAgICAgICAgaXNTaGFyZWRGaWxlIHx8IGlzVW5tYW5hZ2VkRmlsZSB8fCBpc0ZpbGVJbkR5bmFtaWNDc3NNYW5pZmVzdFxuICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH0pXG5cbiAgICByZXR1cm4gY3NzTGlua0VsZW1lbnRzLmxlbmd0aCA9PT0gMCA/IG51bGwgOiBjc3NMaW5rRWxlbWVudHNcbiAgfVxuXG4gIGdldFByZWxvYWREeW5hbWljQ2h1bmtzKCkge1xuICAgIGNvbnN0IHsgZHluYW1pY0ltcG9ydHMsIGFzc2V0UHJlZml4LCBhc3NldFF1ZXJ5U3RyaW5nLCBjcm9zc09yaWdpbiB9ID1cbiAgICAgIHRoaXMuY29udGV4dFxuXG4gICAgcmV0dXJuIChcbiAgICAgIGR5bmFtaWNJbXBvcnRzXG4gICAgICAgIC5tYXAoKGZpbGUpID0+IHtcbiAgICAgICAgICBpZiAoIWZpbGUuZW5kc1dpdGgoJy5qcycpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICAgICAga2V5PXtmaWxlfVxuICAgICAgICAgICAgICBocmVmPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICAgICAgKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgICAgICAgYXM9XCJzY3JpcHRcIlxuICAgICAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgICAgLy8gRmlsdGVyIG91dCBudWxsZWQgc2NyaXB0c1xuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgKVxuICB9XG5cbiAgZ2V0UHJlbG9hZE1haW5MaW5rcyhmaWxlczogRG9jdW1lbnRGaWxlcyk6IEpTWC5FbGVtZW50W10gfCBudWxsIHtcbiAgICBjb25zdCB7IGFzc2V0UHJlZml4LCBhc3NldFF1ZXJ5U3RyaW5nLCBzY3JpcHRMb2FkZXIsIGNyb3NzT3JpZ2luIH0gPVxuICAgICAgdGhpcy5jb250ZXh0XG4gICAgY29uc3QgcHJlbG9hZEZpbGVzID0gZmlsZXMuYWxsRmlsZXMuZmlsdGVyKChmaWxlOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBmaWxlLmVuZHNXaXRoKCcuanMnKVxuICAgIH0pXG5cbiAgICByZXR1cm4gW1xuICAgICAgLi4uKHNjcmlwdExvYWRlci5iZWZvcmVJbnRlcmFjdGl2ZSB8fCBbXSkubWFwKChmaWxlKSA9PiAoXG4gICAgICAgIDxsaW5rXG4gICAgICAgICAga2V5PXtmaWxlLnNyY31cbiAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICBocmVmPXtmaWxlLnNyY31cbiAgICAgICAgICBhcz1cInNjcmlwdFwiXG4gICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgIC8+XG4gICAgICApKSxcbiAgICAgIC4uLnByZWxvYWRGaWxlcy5tYXAoKGZpbGU6IHN0cmluZykgPT4gKFxuICAgICAgICA8bGlua1xuICAgICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICBocmVmPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgYXM9XCJzY3JpcHRcIlxuICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAvPlxuICAgICAgKSksXG4gICAgXVxuICB9XG5cbiAgZ2V0QmVmb3JlSW50ZXJhY3RpdmVJbmxpbmVTY3JpcHRzKCkge1xuICAgIGNvbnN0IHsgc2NyaXB0TG9hZGVyIH0gPSB0aGlzLmNvbnRleHRcbiAgICBjb25zdCB7IG5vbmNlLCBjcm9zc09yaWdpbiB9ID0gdGhpcy5wcm9wc1xuXG4gICAgcmV0dXJuIChzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoc2NyaXB0KSA9PlxuICAgICAgICAgICFzY3JpcHQuc3JjICYmIChzY3JpcHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgfHwgc2NyaXB0LmNoaWxkcmVuKVxuICAgICAgKVxuICAgICAgLm1hcCgoZmlsZTogU2NyaXB0UHJvcHMsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHN0cmF0ZWd5LFxuICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLFxuICAgICAgICAgIHNyYyxcbiAgICAgICAgICAuLi5zY3JpcHRQcm9wc1xuICAgICAgICB9ID0gZmlsZVxuICAgICAgICBsZXQgaHRtbDogTm9uTnVsbGFibGU8XG4gICAgICAgICAgU2NyaXB0UHJvcHNbJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJ11cbiAgICAgICAgPlsnX19odG1sJ10gPSAnJ1xuXG4gICAgICAgIGlmIChkYW5nZXJvdXNseVNldElubmVySFRNTCAmJiBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwpIHtcbiAgICAgICAgICBodG1sID0gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sXG4gICAgICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcbiAgICAgICAgICBodG1sID1cbiAgICAgICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgPyBjaGlsZHJlblxuICAgICAgICAgICAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pXG4gICAgICAgICAgICAgICAgPyBjaGlsZHJlbi5qb2luKCcnKVxuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgey4uLnNjcmlwdFByb3BzfVxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBodG1sIH19XG4gICAgICAgICAgICBrZXk9e3NjcmlwdFByb3BzLmlkIHx8IGluZGV4fVxuICAgICAgICAgICAgbm9uY2U9e25vbmNlfVxuICAgICAgICAgICAgZGF0YS1uc2NyaXB0PVwiYmVmb3JlSW50ZXJhY3RpdmVcIlxuICAgICAgICAgICAgY3Jvc3NPcmlnaW49e1xuICAgICAgICAgICAgICBjcm9zc09yaWdpbiB8fFxuICAgICAgICAgICAgICAocHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTiBhcyB0eXBlb2YgY3Jvc3NPcmlnaW4pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgLz5cbiAgICAgICAgKVxuICAgICAgfSlcbiAgfVxuXG4gIGdldER5bmFtaWNDaHVua3MoZmlsZXM6IERvY3VtZW50RmlsZXMpIHtcbiAgICByZXR1cm4gZ2V0RHluYW1pY0NodW5rcyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMsIGZpbGVzKVxuICB9XG5cbiAgZ2V0UHJlTmV4dFNjcmlwdHMoKSB7XG4gICAgcmV0dXJuIGdldFByZU5leHRTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcylcbiAgfVxuXG4gIGdldFNjcmlwdHMoZmlsZXM6IERvY3VtZW50RmlsZXMpIHtcbiAgICByZXR1cm4gZ2V0U2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMsIGZpbGVzKVxuICB9XG5cbiAgZ2V0UG9seWZpbGxTY3JpcHRzKCkge1xuICAgIHJldHVybiBnZXRQb2x5ZmlsbFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHN0eWxlcyxcbiAgICAgIGFtcFBhdGgsXG4gICAgICBpbkFtcE1vZGUsXG4gICAgICBoeWJyaWRBbXAsXG4gICAgICBjYW5vbmljYWxCYXNlLFxuICAgICAgX19ORVhUX0RBVEFfXyxcbiAgICAgIGRhbmdlcm91c0FzUGF0aCxcbiAgICAgIGhlYWRUYWdzLFxuICAgICAgdW5zdGFibGVfcnVudGltZUpTLFxuICAgICAgdW5zdGFibGVfSnNQcmVsb2FkLFxuICAgICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgICBvcHRpbWl6ZUNzcyxcbiAgICAgIGFzc2V0UHJlZml4LFxuICAgICAgbmV4dEZvbnRNYW5pZmVzdCxcbiAgICB9ID0gdGhpcy5jb250ZXh0XG5cbiAgICBjb25zdCBkaXNhYmxlUnVudGltZUpTID0gdW5zdGFibGVfcnVudGltZUpTID09PSBmYWxzZVxuICAgIGNvbnN0IGRpc2FibGVKc1ByZWxvYWQgPVxuICAgICAgdW5zdGFibGVfSnNQcmVsb2FkID09PSBmYWxzZSB8fCAhZGlzYWJsZU9wdGltaXplZExvYWRpbmdcblxuICAgIHRoaXMuY29udGV4dC5kb2NDb21wb25lbnRzUmVuZGVyZWQuSGVhZCA9IHRydWVcblxuICAgIGxldCB7IGhlYWQgfSA9IHRoaXMuY29udGV4dFxuICAgIGxldCBjc3NQcmVsb2FkczogQXJyYXk8SlNYLkVsZW1lbnQ+ID0gW11cbiAgICBsZXQgb3RoZXJIZWFkRWxlbWVudHM6IEFycmF5PEpTWC5FbGVtZW50PiA9IFtdXG4gICAgaWYgKGhlYWQpIHtcbiAgICAgIGhlYWQuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNoaWxkICYmXG4gICAgICAgICAgY2hpbGQudHlwZSA9PT0gJ2xpbmsnICYmXG4gICAgICAgICAgY2hpbGQucHJvcHNbJ3JlbCddID09PSAncHJlbG9hZCcgJiZcbiAgICAgICAgICBjaGlsZC5wcm9wc1snYXMnXSA9PT0gJ3N0eWxlJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjc3NQcmVsb2Fkcy5wdXNoKGNoaWxkKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICAgICAgb3RoZXJIZWFkRWxlbWVudHMucHVzaChcbiAgICAgICAgICAgICAgUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7ICdkYXRhLW5leHQtaGVhZCc6ICcnIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaGVhZCA9IGNzc1ByZWxvYWRzLmNvbmNhdChvdGhlckhlYWRFbGVtZW50cylcbiAgICB9XG4gICAgbGV0IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoXG4gICAgICB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgKS5maWx0ZXIoQm9vbGVhbilcbiAgICAvLyBzaG93IGEgd2FybmluZyBpZiBIZWFkIGNvbnRhaW5zIDx0aXRsZT4gKG9ubHkgaW4gZGV2ZWxvcG1lbnQpXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNoaWxkcmVuID0gUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpc1JlYWN0SGVsbWV0ID0gY2hpbGQ/LnByb3BzPy5bJ2RhdGEtcmVhY3QtaGVsbWV0J11cbiAgICAgICAgaWYgKCFpc1JlYWN0SGVsbWV0KSB7XG4gICAgICAgICAgaWYgKGNoaWxkPy50eXBlID09PSAndGl0bGUnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIFwiV2FybmluZzogPHRpdGxlPiBzaG91bGQgbm90IGJlIHVzZWQgaW4gX2RvY3VtZW50LmpzJ3MgPEhlYWQ+LiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uby1kb2N1bWVudC10aXRsZVwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGNoaWxkPy50eXBlID09PSAnbWV0YScgJiZcbiAgICAgICAgICAgIGNoaWxkPy5wcm9wcz8ubmFtZSA9PT0gJ3ZpZXdwb3J0J1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBcIldhcm5pbmc6IHZpZXdwb3J0IG1ldGEgdGFncyBzaG91bGQgbm90IGJlIHVzZWQgaW4gX2RvY3VtZW50LmpzJ3MgPEhlYWQ+LiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uby1kb2N1bWVudC12aWV3cG9ydC1tZXRhXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNoaWxkXG4gICAgICAgIC8vIEB0eXBlcy9yZWFjdCBidWcuIFJldHVybmVkIHZhbHVlIGZyb20gLm1hcCB3aWxsIG5vdCBiZSBgbnVsbGAgaWYgeW91IHBhc3MgaW4gYFtudWxsXWBcbiAgICAgIH0pIVxuICAgICAgaWYgKHRoaXMucHJvcHMuY3Jvc3NPcmlnaW4pXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnV2FybmluZzogYEhlYWRgIGF0dHJpYnV0ZSBgY3Jvc3NPcmlnaW5gIGlzIGRlcHJlY2F0ZWQuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2RvYy1jcm9zc29yaWdpbi1kZXByZWNhdGVkJ1xuICAgICAgICApXG4gICAgfVxuXG4gICAgbGV0IGhhc0FtcGh0bWxSZWwgPSBmYWxzZVxuICAgIGxldCBoYXNDYW5vbmljYWxSZWwgPSBmYWxzZVxuXG4gICAgLy8gc2hvdyB3YXJuaW5nIGFuZCByZW1vdmUgY29uZmxpY3RpbmcgYW1wIGhlYWQgdGFnc1xuICAgIGhlYWQgPSBSZWFjdC5DaGlsZHJlbi5tYXAoaGVhZCB8fCBbXSwgKGNoaWxkKSA9PiB7XG4gICAgICBpZiAoIWNoaWxkKSByZXR1cm4gY2hpbGRcbiAgICAgIGNvbnN0IHsgdHlwZSwgcHJvcHMgfSA9IGNoaWxkXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlKSB7XG4gICAgICAgIGxldCBiYWRQcm9wOiBzdHJpbmcgPSAnJ1xuXG4gICAgICAgIGlmICh0eXBlID09PSAnbWV0YScgJiYgcHJvcHMubmFtZSA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgICAgICAgIGJhZFByb3AgPSAnbmFtZT1cInZpZXdwb3J0XCInXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2xpbmsnICYmIHByb3BzLnJlbCA9PT0gJ2Nhbm9uaWNhbCcpIHtcbiAgICAgICAgICBoYXNDYW5vbmljYWxSZWwgPSB0cnVlXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NjcmlwdCcpIHtcbiAgICAgICAgICAvLyBvbmx5IGJsb2NrIGlmXG4gICAgICAgICAgLy8gMS4gaXQgaGFzIGEgc3JjIGFuZCBpc24ndCBwb2ludGluZyB0byBhbXBwcm9qZWN0J3MgQ0ROXG4gICAgICAgICAgLy8gMi4gaXQgaXMgdXNpbmcgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgd2l0aG91dCBhIHR5cGUgb3JcbiAgICAgICAgICAvLyBhIHR5cGUgb2YgdGV4dC9qYXZhc2NyaXB0XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHByb3BzLnNyYyAmJiBwcm9wcy5zcmMuaW5kZXhPZignYW1wcHJvamVjdCcpIDwgLTEpIHx8XG4gICAgICAgICAgICAocHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiZcbiAgICAgICAgICAgICAgKCFwcm9wcy50eXBlIHx8IHByb3BzLnR5cGUgPT09ICd0ZXh0L2phdmFzY3JpcHQnKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGJhZFByb3AgPSAnPHNjcmlwdCdcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHByb3BzKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgICAgICAgICAgIGJhZFByb3AgKz0gYCAke3Byb3B9PVwiJHtwcm9wc1twcm9wXX1cImBcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBiYWRQcm9wICs9ICcvPidcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYmFkUHJvcCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBGb3VuZCBjb25mbGljdGluZyBhbXAgdGFnIFwiJHtjaGlsZC50eXBlfVwiIHdpdGggY29uZmxpY3RpbmcgcHJvcCAke2JhZFByb3B9IGluICR7X19ORVhUX0RBVEFfXy5wYWdlfS4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvY29uZmxpY3RpbmctYW1wLXRhZ2BcbiAgICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gbm9uLWFtcCBtb2RlXG4gICAgICAgIGlmICh0eXBlID09PSAnbGluaycgJiYgcHJvcHMucmVsID09PSAnYW1waHRtbCcpIHtcbiAgICAgICAgICBoYXNBbXBodG1sUmVsID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gY2hpbGRcbiAgICAgIC8vIEB0eXBlcy9yZWFjdCBidWcuIFJldHVybmVkIHZhbHVlIGZyb20gLm1hcCB3aWxsIG5vdCBiZSBgbnVsbGAgaWYgeW91IHBhc3MgaW4gYFtudWxsXWBcbiAgICB9KSFcblxuICAgIGNvbnN0IGZpbGVzOiBEb2N1bWVudEZpbGVzID0gZ2V0RG9jdW1lbnRGaWxlcyhcbiAgICAgIHRoaXMuY29udGV4dC5idWlsZE1hbmlmZXN0LFxuICAgICAgdGhpcy5jb250ZXh0Ll9fTkVYVF9EQVRBX18ucGFnZSxcbiAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZVxuICAgIClcblxuICAgIGNvbnN0IG5leHRGb250TGlua1RhZ3MgPSBnZXROZXh0Rm9udExpbmtUYWdzKFxuICAgICAgbmV4dEZvbnRNYW5pZmVzdCxcbiAgICAgIGRhbmdlcm91c0FzUGF0aCxcbiAgICAgIGFzc2V0UHJlZml4XG4gICAgKVxuXG4gICAgY29uc3QgdHJhY2luZ01ldGFkYXRhID0gZ2V0VHJhY2VkTWV0YWRhdGEoXG4gICAgICBnZXRUcmFjZXIoKS5nZXRUcmFjZVByb3BhZ2F0aW9uRGF0YSgpLFxuICAgICAgdGhpcy5jb250ZXh0LmV4cGVyaW1lbnRhbENsaWVudFRyYWNlTWV0YWRhdGFcbiAgICApXG5cbiAgICBjb25zdCB0cmFjZU1ldGFUYWdzID0gKHRyYWNpbmdNZXRhZGF0YSB8fCBbXSkubWFwKFxuICAgICAgKHsga2V5LCB2YWx1ZSB9LCBpbmRleCkgPT4gKFxuICAgICAgICA8bWV0YSBrZXk9e2BuZXh0LXRyYWNlLWRhdGEtJHtpbmRleH1gfSBuYW1lPXtrZXl9IGNvbnRlbnQ9e3ZhbHVlfSAvPlxuICAgICAgKVxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8aGVhZCB7Li4uZ2V0SGVhZEhUTUxQcm9wcyh0aGlzLnByb3BzKX0+XG4gICAgICAgIHt0aGlzLmNvbnRleHQuaXNEZXZlbG9wbWVudCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxzdHlsZVxuICAgICAgICAgICAgICBkYXRhLW5leHQtaGlkZS1mb3VjXG4gICAgICAgICAgICAgIGRhdGEtYW1wZGV2bW9kZT17XG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlXG4gICAgICAgICAgICAgICAgICA/ICd0cnVlJ1xuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7ZGlzcGxheTpub25lfWAsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPG5vc2NyaXB0XG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1oaWRlLWZvdWNcbiAgICAgICAgICAgICAgZGF0YS1hbXBkZXZtb2RlPXtcbiAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGVcbiAgICAgICAgICAgICAgICAgID8gJ3RydWUnXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzdHlsZVxuICAgICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgICAgICBfX2h0bWw6IGBib2R5e2Rpc3BsYXk6YmxvY2t9YCxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9ub3NjcmlwdD5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgICAge2hlYWR9XG5cbiAgICAgICAge2NoaWxkcmVufVxuXG4gICAgICAgIHtuZXh0Rm9udExpbmtUYWdzLnByZWNvbm5lY3R9XG4gICAgICAgIHtuZXh0Rm9udExpbmtUYWdzLnByZWxvYWR9XG5cbiAgICAgICAge3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxtZXRhXG4gICAgICAgICAgICAgIG5hbWU9XCJ2aWV3cG9ydFwiXG4gICAgICAgICAgICAgIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2NhbGU9MVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgeyFoYXNDYW5vbmljYWxSZWwgJiYgKFxuICAgICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICAgIHJlbD1cImNhbm9uaWNhbFwiXG4gICAgICAgICAgICAgICAgaHJlZj17XG4gICAgICAgICAgICAgICAgICBjYW5vbmljYWxCYXNlICtcbiAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZSgnLi4vc2VydmVyL3V0aWxzJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vc2VydmVyL3V0aWxzJylcbiAgICAgICAgICAgICAgICAgICkuY2xlYW5BbXBQYXRoKGRhbmdlcm91c0FzUGF0aClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgey8qIGh0dHBzOi8vd3d3LmFtcHByb2plY3Qub3JnL2RvY3MvZnVuZGFtZW50YWxzL29wdGltaXplX2FtcCNvcHRpbWl6ZS10aGUtYW1wLXJ1bnRpbWUtbG9hZGluZyAqL31cbiAgICAgICAgICAgIDxsaW5rXG4gICAgICAgICAgICAgIHJlbD1cInByZWxvYWRcIlxuICAgICAgICAgICAgICBhcz1cInNjcmlwdFwiXG4gICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2Nkbi5hbXBwcm9qZWN0Lm9yZy92MC5qc1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPEFtcFN0eWxlcyBzdHlsZXM9e3N0eWxlc30gLz5cbiAgICAgICAgICAgIDxzdHlsZVxuICAgICAgICAgICAgICBhbXAtYm9pbGVycGxhdGU9XCJcIlxuICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7LXdlYmtpdC1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDstbW96LWFuaW1hdGlvbjotYW1wLXN0YXJ0IDhzIHN0ZXBzKDEsZW5kKSAwcyAxIG5vcm1hbCBib3RoOy1tcy1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDthbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aH1ALXdlYmtpdC1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QC1tb3ota2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtbXMta2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtby1rZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19QGtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1gLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxub3NjcmlwdD5cbiAgICAgICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICAgICAgYW1wLWJvaWxlcnBsYXRlPVwiXCJcbiAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgICAgX19odG1sOiBgYm9keXstd2Via2l0LWFuaW1hdGlvbjpub25lOy1tb3otYW5pbWF0aW9uOm5vbmU7LW1zLWFuaW1hdGlvbjpub25lO2FuaW1hdGlvbjpub25lfWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbm9zY3JpcHQ+XG4gICAgICAgICAgICA8c2NyaXB0IGFzeW5jIHNyYz1cImh0dHBzOi8vY2RuLmFtcHByb2plY3Qub3JnL3YwLmpzXCIgLz5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgICAgeyEocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlKSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHshaGFzQW1waHRtbFJlbCAmJiBoeWJyaWRBbXAgJiYgKFxuICAgICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICAgIHJlbD1cImFtcGh0bWxcIlxuICAgICAgICAgICAgICAgIGhyZWY9e2Nhbm9uaWNhbEJhc2UgKyBnZXRBbXBQYXRoKGFtcFBhdGgsIGRhbmdlcm91c0FzUGF0aCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3RoaXMuZ2V0QmVmb3JlSW50ZXJhY3RpdmVJbmxpbmVTY3JpcHRzKCl9XG4gICAgICAgICAgICB7IW9wdGltaXplQ3NzICYmIHRoaXMuZ2V0Q3NzTGlua3MoZmlsZXMpfVxuICAgICAgICAgICAgeyFvcHRpbWl6ZUNzcyAmJiA8bm9zY3JpcHQgZGF0YS1uLWNzcz17dGhpcy5wcm9wcy5ub25jZSA/PyAnJ30gLz59XG5cbiAgICAgICAgICAgIHshZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgICAgICAhZGlzYWJsZUpzUHJlbG9hZCAmJlxuICAgICAgICAgICAgICB0aGlzLmdldFByZWxvYWREeW5hbWljQ2h1bmtzKCl9XG4gICAgICAgICAgICB7IWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVKc1ByZWxvYWQgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXRQcmVsb2FkTWFpbkxpbmtzKGZpbGVzKX1cblxuICAgICAgICAgICAgeyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgICAgICB0aGlzLmdldFBvbHlmaWxsU2NyaXB0cygpfVxuXG4gICAgICAgICAgICB7IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmXG4gICAgICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UHJlTmV4dFNjcmlwdHMoKX1cbiAgICAgICAgICAgIHshZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXREeW5hbWljQ2h1bmtzKGZpbGVzKX1cbiAgICAgICAgICAgIHshZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXRTY3JpcHRzKGZpbGVzKX1cblxuICAgICAgICAgICAge29wdGltaXplQ3NzICYmIHRoaXMuZ2V0Q3NzTGlua3MoZmlsZXMpfVxuICAgICAgICAgICAge29wdGltaXplQ3NzICYmIDxub3NjcmlwdCBkYXRhLW4tY3NzPXt0aGlzLnByb3BzLm5vbmNlID8/ICcnfSAvPn1cbiAgICAgICAgICAgIHt0aGlzLmNvbnRleHQuaXNEZXZlbG9wbWVudCAmJiAoXG4gICAgICAgICAgICAgIC8vIHRoaXMgZWxlbWVudCBpcyB1c2VkIHRvIG1vdW50IGRldmVsb3BtZW50IHN0eWxlcyBzbyB0aGVcbiAgICAgICAgICAgICAgLy8gb3JkZXJpbmcgbWF0Y2hlcyBwcm9kdWN0aW9uXG4gICAgICAgICAgICAgIC8vIChieSBkZWZhdWx0LCBzdHlsZS1sb2FkZXIgaW5qZWN0cyBhdCB0aGUgYm90dG9tIG9mIDxoZWFkIC8+KVxuICAgICAgICAgICAgICA8bm9zY3JpcHQgaWQ9XCJfX25leHRfY3NzX19ET19OT1RfVVNFX19cIiAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHt0cmFjZU1ldGFUYWdzfVxuICAgICAgICAgICAge3N0eWxlcyB8fCBudWxsfVxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgICB7UmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwge30sIC4uLihoZWFkVGFncyB8fCBbXSkpfVxuICAgICAgPC9oZWFkPlxuICAgIClcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVEb2N1bWVudFNjcmlwdExvYWRlckl0ZW1zKFxuICBzY3JpcHRMb2FkZXI6IHsgYmVmb3JlSW50ZXJhY3RpdmU/OiBhbnlbXSB9LFxuICBfX05FWFRfREFUQV9fOiBORVhUX0RBVEEsXG4gIHByb3BzOiBhbnlcbik6IHZvaWQge1xuICBpZiAoIXByb3BzLmNoaWxkcmVuKSByZXR1cm5cblxuICBjb25zdCBzY3JpcHRMb2FkZXJJdGVtczogU2NyaXB0UHJvcHNbXSA9IFtdXG5cbiAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5pc0FycmF5KHByb3BzLmNoaWxkcmVuKVxuICAgID8gcHJvcHMuY2hpbGRyZW5cbiAgICA6IFtwcm9wcy5jaGlsZHJlbl1cblxuICBjb25zdCBoZWFkQ2hpbGRyZW4gPSBjaGlsZHJlbi5maW5kKFxuICAgIChjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50KSA9PiBjaGlsZC50eXBlID09PSBIZWFkXG4gICk/LnByb3BzPy5jaGlsZHJlblxuICBjb25zdCBib2R5Q2hpbGRyZW4gPSBjaGlsZHJlbi5maW5kKFxuICAgIChjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50KSA9PiBjaGlsZC50eXBlID09PSAnYm9keSdcbiAgKT8ucHJvcHM/LmNoaWxkcmVuXG5cbiAgLy8gU2NyaXB0cyB3aXRoIGJlZm9yZUludGVyYWN0aXZlIGNhbiBiZSBwbGFjZWQgaW5zaWRlIEhlYWQgb3IgPGJvZHk+IHNvIGNoaWxkcmVuIG9mIGJvdGggbmVlZHMgdG8gYmUgdHJhdmVyc2VkXG4gIGNvbnN0IGNvbWJpbmVkQ2hpbGRyZW4gPSBbXG4gICAgLi4uKEFycmF5LmlzQXJyYXkoaGVhZENoaWxkcmVuKSA/IGhlYWRDaGlsZHJlbiA6IFtoZWFkQ2hpbGRyZW5dKSxcbiAgICAuLi4oQXJyYXkuaXNBcnJheShib2R5Q2hpbGRyZW4pID8gYm9keUNoaWxkcmVuIDogW2JvZHlDaGlsZHJlbl0pLFxuICBdXG5cbiAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjb21iaW5lZENoaWxkcmVuLCAoY2hpbGQ6IGFueSkgPT4ge1xuICAgIGlmICghY2hpbGQpIHJldHVyblxuXG4gICAgLy8gV2hlbiB1c2luZyB0aGUgYG5leHQvc2NyaXB0YCBjb21wb25lbnQsIHJlZ2lzdGVyIGl0IGluIHNjcmlwdCBsb2FkZXIuXG4gICAgaWYgKGNoaWxkLnR5cGU/Ll9fbmV4dFNjcmlwdCkge1xuICAgICAgaWYgKGNoaWxkLnByb3BzLnN0cmF0ZWd5ID09PSAnYmVmb3JlSW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIHNjcmlwdExvYWRlci5iZWZvcmVJbnRlcmFjdGl2ZSA9IChcbiAgICAgICAgICBzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW11cbiAgICAgICAgKS5jb25jYXQoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmNoaWxkLnByb3BzLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pXG4gICAgICAgIHJldHVyblxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgWydsYXp5T25sb2FkJywgJ2FmdGVySW50ZXJhY3RpdmUnLCAnd29ya2VyJ10uaW5jbHVkZXMoXG4gICAgICAgICAgY2hpbGQucHJvcHMuc3RyYXRlZ3lcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHNjcmlwdExvYWRlckl0ZW1zLnB1c2goY2hpbGQucHJvcHMpXG4gICAgICAgIHJldHVyblxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY2hpbGQucHJvcHMuc3RyYXRlZ3kgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHNjcmlwdExvYWRlckl0ZW1zLnB1c2goeyAuLi5jaGlsZC5wcm9wcywgc3RyYXRlZ3k6ICdhZnRlckludGVyYWN0aXZlJyB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgX19ORVhUX0RBVEFfXy5zY3JpcHRMb2FkZXIgPSBzY3JpcHRMb2FkZXJJdGVtc1xufVxuXG5leHBvcnQgY2xhc3MgTmV4dFNjcmlwdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxPcmlnaW5Qcm9wcz4ge1xuICBzdGF0aWMgY29udGV4dFR5cGUgPSBIdG1sQ29udGV4dFxuXG4gIGNvbnRleHQhOiBIdG1sUHJvcHNcblxuICBnZXREeW5hbWljQ2h1bmtzKGZpbGVzOiBEb2N1bWVudEZpbGVzKSB7XG4gICAgcmV0dXJuIGdldER5bmFtaWNDaHVua3ModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcylcbiAgfVxuXG4gIGdldFByZU5leHRTY3JpcHRzKCkge1xuICAgIHJldHVybiBnZXRQcmVOZXh0U2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMpXG4gIH1cblxuICBnZXRTY3JpcHRzKGZpbGVzOiBEb2N1bWVudEZpbGVzKSB7XG4gICAgcmV0dXJuIGdldFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcylcbiAgfVxuXG4gIGdldFBvbHlmaWxsU2NyaXB0cygpIHtcbiAgICByZXR1cm4gZ2V0UG9seWZpbGxTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcylcbiAgfVxuXG4gIHN0YXRpYyBnZXRJbmxpbmVTY3JpcHRTb3VyY2UoY29udGV4dDogUmVhZG9ubHk8SHRtbFByb3BzPik6IHN0cmluZyB7XG4gICAgY29uc3QgeyBfX05FWFRfREFUQV9fLCBsYXJnZVBhZ2VEYXRhQnl0ZXMgfSA9IGNvbnRleHRcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IEpTT04uc3RyaW5naWZ5KF9fTkVYVF9EQVRBX18pXG5cbiAgICAgIGlmIChsYXJnZVBhZ2VEYXRhV2FybmluZ3MuaGFzKF9fTkVYVF9EQVRBX18ucGFnZSkpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxFc2NhcGVKc29uU3RyaW5nKGRhdGEpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJ5dGVzID1cbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZSdcbiAgICAgICAgICA/IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShkYXRhKS5idWZmZXIuYnl0ZUxlbmd0aFxuICAgICAgICAgIDogQnVmZmVyLmZyb20oZGF0YSkuYnl0ZUxlbmd0aFxuICAgICAgY29uc3QgcHJldHR5Qnl0ZXMgPSAoXG4gICAgICAgIHJlcXVpcmUoJy4uL2xpYi9wcmV0dHktYnl0ZXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9saWIvcHJldHR5LWJ5dGVzJylcbiAgICAgICkuZGVmYXVsdFxuXG4gICAgICBpZiAobGFyZ2VQYWdlRGF0YUJ5dGVzICYmIGJ5dGVzID4gbGFyZ2VQYWdlRGF0YUJ5dGVzKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgbGFyZ2VQYWdlRGF0YVdhcm5pbmdzLmFkZChfX05FWFRfREFUQV9fLnBhZ2UpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFdhcm5pbmc6IGRhdGEgZm9yIHBhZ2UgXCIke19fTkVYVF9EQVRBX18ucGFnZX1cIiR7XG4gICAgICAgICAgICBfX05FWFRfREFUQV9fLnBhZ2UgPT09IGNvbnRleHQuZGFuZ2Vyb3VzQXNQYXRoXG4gICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgOiBgIChwYXRoIFwiJHtjb250ZXh0LmRhbmdlcm91c0FzUGF0aH1cIilgXG4gICAgICAgICAgfSBpcyAke3ByZXR0eUJ5dGVzKFxuICAgICAgICAgICAgYnl0ZXNcbiAgICAgICAgICApfSB3aGljaCBleGNlZWRzIHRoZSB0aHJlc2hvbGQgb2YgJHtwcmV0dHlCeXRlcyhcbiAgICAgICAgICAgIGxhcmdlUGFnZURhdGFCeXRlc1xuICAgICAgICAgICl9LCB0aGlzIGFtb3VudCBvZiBkYXRhIGNhbiByZWR1Y2UgcGVyZm9ybWFuY2UuXFxuU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9sYXJnZS1wYWdlLWRhdGFgXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGh0bWxFc2NhcGVKc29uU3RyaW5nKGRhdGEpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoaXNFcnJvcihlcnIpICYmIGVyci5tZXNzYWdlLmluZGV4T2YoJ2NpcmN1bGFyIHN0cnVjdHVyZScpICE9PSAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENpcmN1bGFyIHN0cnVjdHVyZSBpbiBcImdldEluaXRpYWxQcm9wc1wiIHJlc3VsdCBvZiBwYWdlIFwiJHtfX05FWFRfREFUQV9fLnBhZ2V9XCIuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NpcmN1bGFyLXN0cnVjdHVyZWBcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGFzc2V0UHJlZml4LFxuICAgICAgaW5BbXBNb2RlLFxuICAgICAgYnVpbGRNYW5pZmVzdCxcbiAgICAgIHVuc3RhYmxlX3J1bnRpbWVKUyxcbiAgICAgIGRvY0NvbXBvbmVudHNSZW5kZXJlZCxcbiAgICAgIGFzc2V0UXVlcnlTdHJpbmcsXG4gICAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZyxcbiAgICAgIGNyb3NzT3JpZ2luLFxuICAgIH0gPSB0aGlzLmNvbnRleHRcbiAgICBjb25zdCBkaXNhYmxlUnVudGltZUpTID0gdW5zdGFibGVfcnVudGltZUpTID09PSBmYWxzZVxuXG4gICAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLk5leHRTY3JpcHQgPSB0cnVlXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgICAgY29uc3QgYW1wRGV2RmlsZXMgPSBbXG4gICAgICAgIC4uLmJ1aWxkTWFuaWZlc3QuZGV2RmlsZXMsXG4gICAgICAgIC4uLmJ1aWxkTWFuaWZlc3QucG9seWZpbGxGaWxlcyxcbiAgICAgICAgLi4uYnVpbGRNYW5pZmVzdC5hbXBEZXZGaWxlcyxcbiAgICAgIF1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7ZGlzYWJsZVJ1bnRpbWVKUyA/IG51bGwgOiAoXG4gICAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICAgIGlkPVwiX19ORVhUX0RBVEFfX1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgIF9faHRtbDogTmV4dFNjcmlwdC5nZXRJbmxpbmVTY3JpcHRTb3VyY2UodGhpcy5jb250ZXh0KSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgZGF0YS1hbXBkZXZtb2RlXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2FtcERldkZpbGVzLm1hcCgoZmlsZSkgPT4gKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAgICAgZGF0YS1hbXBkZXZtb2RlXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHRoaXMucHJvcHMuY3Jvc3NPcmlnaW4pXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnV2FybmluZzogYE5leHRTY3JpcHRgIGF0dHJpYnV0ZSBgY3Jvc3NPcmlnaW5gIGlzIGRlcHJlY2F0ZWQuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2RvYy1jcm9zc29yaWdpbi1kZXByZWNhdGVkJ1xuICAgICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXM6IERvY3VtZW50RmlsZXMgPSBnZXREb2N1bWVudEZpbGVzKFxuICAgICAgdGhpcy5jb250ZXh0LmJ1aWxkTWFuaWZlc3QsXG4gICAgICB0aGlzLmNvbnRleHQuX19ORVhUX0RBVEFfXy5wYWdlLFxuICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHshZGlzYWJsZVJ1bnRpbWVKUyAmJiBidWlsZE1hbmlmZXN0LmRldkZpbGVzXG4gICAgICAgICAgPyBidWlsZE1hbmlmZXN0LmRldkZpbGVzLm1hcCgoZmlsZTogc3RyaW5nKSA9PiAoXG4gICAgICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgICAgICAgICAgc3JjPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgICAge2Rpc2FibGVSdW50aW1lSlMgPyBudWxsIDogKFxuICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgIGlkPVwiX19ORVhUX0RBVEFfX1wiXG4gICAgICAgICAgICB0eXBlPVwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgX19odG1sOiBOZXh0U2NyaXB0LmdldElubGluZVNjcmlwdFNvdXJjZSh0aGlzLmNvbnRleHQpLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7ZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgIHRoaXMuZ2V0UG9seWZpbGxTY3JpcHRzKCl9XG4gICAgICAgIHtkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgdGhpcy5nZXRQcmVOZXh0U2NyaXB0cygpfVxuICAgICAgICB7ZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgIHRoaXMuZ2V0RHluYW1pY0NodW5rcyhmaWxlcyl9XG4gICAgICAgIHtkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJiAhZGlzYWJsZVJ1bnRpbWVKUyAmJiB0aGlzLmdldFNjcmlwdHMoZmlsZXMpfVxuICAgICAgPC8+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIdG1sKFxuICBwcm9wczogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgUmVhY3QuSHRtbEhUTUxBdHRyaWJ1dGVzPEhUTUxIdG1sRWxlbWVudD4sXG4gICAgSFRNTEh0bWxFbGVtZW50XG4gID5cbikge1xuICBjb25zdCB7XG4gICAgaW5BbXBNb2RlLFxuICAgIGRvY0NvbXBvbmVudHNSZW5kZXJlZCxcbiAgICBsb2NhbGUsXG4gICAgc2NyaXB0TG9hZGVyLFxuICAgIF9fTkVYVF9EQVRBX18sXG4gIH0gPSB1c2VIdG1sQ29udGV4dCgpXG5cbiAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLkh0bWwgPSB0cnVlXG4gIGhhbmRsZURvY3VtZW50U2NyaXB0TG9hZGVySXRlbXMoc2NyaXB0TG9hZGVyLCBfX05FWFRfREFUQV9fLCBwcm9wcylcblxuICByZXR1cm4gKFxuICAgIDxodG1sXG4gICAgICB7Li4ucHJvcHN9XG4gICAgICBsYW5nPXtwcm9wcy5sYW5nIHx8IGxvY2FsZSB8fCB1bmRlZmluZWR9XG4gICAgICBhbXA9e3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgZGF0YS1hbXBkZXZtb2RlPXtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiZcbiAgICAgICAgaW5BbXBNb2RlICYmXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgICAgICAgICA/ICcnXG4gICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAvPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNYWluKCkge1xuICBjb25zdCB7IGRvY0NvbXBvbmVudHNSZW5kZXJlZCB9ID0gdXNlSHRtbENvbnRleHQoKVxuICBkb2NDb21wb25lbnRzUmVuZGVyZWQuTWFpbiA9IHRydWVcbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gPG5leHQtanMtaW50ZXJuYWwtYm9keS1yZW5kZXItdGFyZ2V0IC8+XG59XG5cbi8qKlxuICogYERvY3VtZW50YCBjb21wb25lbnQgaGFuZGxlcyB0aGUgaW5pdGlhbCBgZG9jdW1lbnRgIG1hcmt1cCBhbmQgcmVuZGVycyBvbmx5IG9uIHRoZSBzZXJ2ZXIgc2lkZS5cbiAqIENvbW1vbmx5IHVzZWQgZm9yIGltcGxlbWVudGluZyBzZXJ2ZXIgc2lkZSByZW5kZXJpbmcgZm9yIGBjc3MtaW4tanNgIGxpYnJhcmllcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRG9jdW1lbnQ8UCA9IHt9PiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgRG9jdW1lbnRQcm9wcyAmIFBcbj4ge1xuICAvKipcbiAgICogYGdldEluaXRpYWxQcm9wc2AgaG9vayByZXR1cm5zIHRoZSBjb250ZXh0IG9iamVjdCB3aXRoIHRoZSBhZGRpdGlvbiBvZiBgcmVuZGVyUGFnZWAuXG4gICAqIGByZW5kZXJQYWdlYCBjYWxsYmFjayBleGVjdXRlcyBgUmVhY3RgIHJlbmRlcmluZyBsb2dpYyBzeW5jaHJvbm91c2x5IHRvIHN1cHBvcnQgc2VydmVyLXJlbmRlcmluZyB3cmFwcGVyc1xuICAgKi9cbiAgc3RhdGljIGdldEluaXRpYWxQcm9wcyhjdHg6IERvY3VtZW50Q29udGV4dCk6IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+IHtcbiAgICByZXR1cm4gY3R4LmRlZmF1bHRHZXRJbml0aWFsUHJvcHMoY3R4KVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8SHRtbD5cbiAgICAgICAgPEhlYWQgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9IC8+XG4gICAgICAgIDxib2R5PlxuICAgICAgICAgIDxNYWluIC8+XG4gICAgICAgICAgPE5leHRTY3JpcHQgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9IC8+XG4gICAgICAgIDwvYm9keT5cbiAgICAgIDwvSHRtbD5cbiAgICApXG4gIH1cbn1cblxuLy8gQWRkIGEgc3BlY2lhbCBwcm9wZXJ0eSB0byB0aGUgYnVpbHQtaW4gYERvY3VtZW50YCBjb21wb25lbnQgc28gbGF0ZXIgd2UgY2FuXG4vLyBpZGVudGlmeSBpZiBhIHVzZXIgY3VzdG9taXplZCBgRG9jdW1lbnRgIGlzIHVzZWQgb3Igbm90LlxuY29uc3QgSW50ZXJuYWxGdW5jdGlvbkRvY3VtZW50OiBEb2N1bWVudFR5cGUgPVxuICBmdW5jdGlvbiBJbnRlcm5hbEZ1bmN0aW9uRG9jdW1lbnQoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxIdG1sPlxuICAgICAgICA8SGVhZCAvPlxuICAgICAgICA8Ym9keT5cbiAgICAgICAgICA8TWFpbiAvPlxuICAgICAgICAgIDxOZXh0U2NyaXB0IC8+XG4gICAgICAgIDwvYm9keT5cbiAgICAgIDwvSHRtbD5cbiAgICApXG4gIH1cbjsoRG9jdW1lbnQgYXMgYW55KVtORVhUX0JVSUxUSU5fRE9DVU1FTlRdID0gSW50ZXJuYWxGdW5jdGlvbkRvY3VtZW50XG4iXSwibmFtZXMiOlsiSGVhZCIsIkh0bWwiLCJNYWluIiwiTmV4dFNjcmlwdCIsIkRvY3VtZW50IiwibGFyZ2VQYWdlRGF0YVdhcm5pbmdzIiwiU2V0IiwiZ2V0RG9jdW1lbnRGaWxlcyIsImJ1aWxkTWFuaWZlc3QiLCJwYXRobmFtZSIsImluQW1wTW9kZSIsInNoYXJlZEZpbGVzIiwiZ2V0UGFnZUZpbGVzIiwicGFnZUZpbGVzIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsImFsbEZpbGVzIiwiZ2V0UG9seWZpbGxTY3JpcHRzIiwiY29udGV4dCIsInByb3BzIiwiYXNzZXRQcmVmaXgiLCJhc3NldFF1ZXJ5U3RyaW5nIiwiZGlzYWJsZU9wdGltaXplZExvYWRpbmciLCJjcm9zc09yaWdpbiIsInBvbHlmaWxsRmlsZXMiLCJmaWx0ZXIiLCJwb2x5ZmlsbCIsImVuZHNXaXRoIiwibWFwIiwic2NyaXB0IiwiZGVmZXIiLCJub25jZSIsIm5vTW9kdWxlIiwic3JjIiwiZW5jb2RlVVJJUGF0aCIsImhhc0NvbXBvbmVudFByb3BzIiwiY2hpbGQiLCJBbXBTdHlsZXMiLCJzdHlsZXMiLCJjdXJTdHlsZXMiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZHJlbiIsImhhc1N0eWxlcyIsImVsIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJmb3JFYWNoIiwicHVzaCIsInN0eWxlIiwiYW1wLWN1c3RvbSIsImpvaW4iLCJyZXBsYWNlIiwiZ2V0RHluYW1pY0NodW5rcyIsImZpbGVzIiwiZHluYW1pY0ltcG9ydHMiLCJpc0RldmVsb3BtZW50IiwiZmlsZSIsImluY2x1ZGVzIiwiYXN5bmMiLCJnZXRTY3JpcHRzIiwibm9ybWFsU2NyaXB0cyIsImxvd1ByaW9yaXR5U2NyaXB0cyIsImxvd1ByaW9yaXR5RmlsZXMiLCJnZXRQcmVOZXh0V29ya2VyU2NyaXB0cyIsInNjcmlwdExvYWRlciIsIm5leHRTY3JpcHRXb3JrZXJzIiwicGFydHl0b3duU25pcHBldCIsIl9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fIiwidXNlckRlZmluZWRDb25maWciLCJmaW5kIiwibGVuZ3RoIiwiZGF0YS1wYXJ0eXRvd24tY29uZmlnIiwiZGF0YS1wYXJ0eXRvd24iLCJ3b3JrZXIiLCJpbmRleCIsInN0cmF0ZWd5Iiwic2NyaXB0Q2hpbGRyZW4iLCJzY3JpcHRQcm9wcyIsInNyY1Byb3BzIiwiRXJyb3IiLCJ0eXBlIiwia2V5IiwiZGF0YS1uc2NyaXB0IiwiZXJyIiwiaXNFcnJvciIsImNvZGUiLCJjb25zb2xlIiwid2FybiIsIm1lc3NhZ2UiLCJnZXRQcmVOZXh0U2NyaXB0cyIsIndlYldvcmtlclNjcmlwdHMiLCJiZWZvcmVJbnRlcmFjdGl2ZVNjcmlwdHMiLCJiZWZvcmVJbnRlcmFjdGl2ZSIsImdldEhlYWRIVE1MUHJvcHMiLCJyZXN0UHJvcHMiLCJoZWFkUHJvcHMiLCJnZXRBbXBQYXRoIiwiYW1wUGF0aCIsImFzUGF0aCIsImdldE5leHRGb250TGlua1RhZ3MiLCJuZXh0Rm9udE1hbmlmZXN0IiwiZGFuZ2Vyb3VzQXNQYXRoIiwicHJlY29ubmVjdCIsInByZWxvYWQiLCJhcHBGb250c0VudHJ5IiwicGFnZXMiLCJwYWdlRm9udHNFbnRyeSIsInByZWxvYWRlZEZvbnRGaWxlcyIsImZyb20iLCJwcmVjb25uZWN0VG9TZWxmIiwibGluayIsImRhdGEtbmV4dC1mb250IiwicGFnZXNVc2luZ1NpemVBZGp1c3QiLCJyZWwiLCJocmVmIiwiZm9udEZpbGUiLCJleHQiLCJleGVjIiwiYXMiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnRleHRUeXBlIiwiSHRtbENvbnRleHQiLCJnZXRDc3NMaW5rcyIsImR5bmFtaWNDc3NNYW5pZmVzdCIsIm9wdGltaXplQ3NzIiwiY3NzRmlsZXMiLCJmIiwidW5tYW5hZ2VkRmlsZXMiLCJsb2NhbER5bmFtaWNDc3NGaWxlcyIsImV4aXN0aW5nIiwiaGFzIiwiY3NzTGlua0VsZW1lbnRzIiwiaXNTaGFyZWRGaWxlIiwiaXNVbm1hbmFnZWRGaWxlIiwiaXNGaWxlSW5EeW5hbWljQ3NzTWFuaWZlc3QiLCJkYXRhLW4tZyIsInVuZGVmaW5lZCIsImRhdGEtbi1wIiwiZ2V0UHJlbG9hZER5bmFtaWNDaHVua3MiLCJCb29sZWFuIiwiZ2V0UHJlbG9hZE1haW5MaW5rcyIsInByZWxvYWRGaWxlcyIsImdldEJlZm9yZUludGVyYWN0aXZlSW5saW5lU2NyaXB0cyIsImh0bWwiLCJpZCIsIl9fTkVYVF9DUk9TU19PUklHSU4iLCJyZW5kZXIiLCJoeWJyaWRBbXAiLCJjYW5vbmljYWxCYXNlIiwiX19ORVhUX0RBVEFfXyIsImhlYWRUYWdzIiwidW5zdGFibGVfcnVudGltZUpTIiwidW5zdGFibGVfSnNQcmVsb2FkIiwiZGlzYWJsZVJ1bnRpbWVKUyIsImRpc2FibGVKc1ByZWxvYWQiLCJkb2NDb21wb25lbnRzUmVuZGVyZWQiLCJoZWFkIiwiY3NzUHJlbG9hZHMiLCJvdGhlckhlYWRFbGVtZW50cyIsImNsb25lRWxlbWVudCIsImNvbmNhdCIsIkNoaWxkcmVuIiwidG9BcnJheSIsIk5PREVfRU5WIiwiaXNSZWFjdEhlbG1ldCIsIm5hbWUiLCJoYXNBbXBodG1sUmVsIiwiaGFzQ2Fub25pY2FsUmVsIiwiYmFkUHJvcCIsImluZGV4T2YiLCJPYmplY3QiLCJrZXlzIiwicHJvcCIsInBhZ2UiLCJuZXh0Rm9udExpbmtUYWdzIiwidHJhY2luZ01ldGFkYXRhIiwiZ2V0VHJhY2VkTWV0YWRhdGEiLCJnZXRUcmFjZXIiLCJnZXRUcmFjZVByb3BhZ2F0aW9uRGF0YSIsImV4cGVyaW1lbnRhbENsaWVudFRyYWNlTWV0YWRhdGEiLCJ0cmFjZU1ldGFUYWdzIiwidmFsdWUiLCJtZXRhIiwiY29udGVudCIsImRhdGEtbmV4dC1oaWRlLWZvdWMiLCJkYXRhLWFtcGRldm1vZGUiLCJub3NjcmlwdCIsInJlcXVpcmUiLCJjbGVhbkFtcFBhdGgiLCJhbXAtYm9pbGVycGxhdGUiLCJkYXRhLW4tY3NzIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiaGFuZGxlRG9jdW1lbnRTY3JpcHRMb2FkZXJJdGVtcyIsInNjcmlwdExvYWRlckl0ZW1zIiwiaGVhZENoaWxkcmVuIiwiYm9keUNoaWxkcmVuIiwiY29tYmluZWRDaGlsZHJlbiIsIl9fbmV4dFNjcmlwdCIsImdldElubGluZVNjcmlwdFNvdXJjZSIsImxhcmdlUGFnZURhdGFCeXRlcyIsImRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwiaHRtbEVzY2FwZUpzb25TdHJpbmciLCJieXRlcyIsIlRleHRFbmNvZGVyIiwiZW5jb2RlIiwiYnVmZmVyIiwiYnl0ZUxlbmd0aCIsIkJ1ZmZlciIsInByZXR0eUJ5dGVzIiwiZGVmYXVsdCIsImFkZCIsImFtcERldkZpbGVzIiwiZGV2RmlsZXMiLCJsb2NhbGUiLCJ1c2VIdG1sQ29udGV4dCIsImxhbmciLCJhbXAiLCJuZXh0LWpzLWludGVybmFsLWJvZHktcmVuZGVyLXRhcmdldCIsImdldEluaXRpYWxQcm9wcyIsImN0eCIsImRlZmF1bHRHZXRJbml0aWFsUHJvcHMiLCJib2R5IiwiSW50ZXJuYWxGdW5jdGlvbkRvY3VtZW50IiwiTkVYVF9CVUlMVElOX0RPQ1VNRU5UIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/pages/_document.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/pages/_error.js":
|
||
/*!************************************************!*\
|
||
!*** ./node_modules/next/dist/pages/_error.js ***!
|
||
\************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Error;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"react\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/head.js\"));\nconst statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\nfunction _getInitialProps(param) {\n let { req, res, err } = param;\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n let hostname;\n if (false) {} else if (req) {\n const { getRequestMeta } = __webpack_require__(/*! ../server/request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\n const initUrl = getRequestMeta(req, 'initURL');\n if (initUrl) {\n const url = new URL(initUrl);\n hostname = url.hostname;\n }\n }\n return {\n statusCode,\n hostname\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 desc: {\n lineHeight: '48px'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px'\n },\n wrap: {\n display: 'inline-block'\n }\n};\nclass Error extends _react.default.Component {\n render() {\n const { statusCode, withDarkMode = true } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.error,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: statusCode ? statusCode + \": \" + title : 'Application error: a client-side exception has occurred'\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.desc,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* CSS minified from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n ${\n withDarkMode\n ? `@media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }`\n : ''\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\" + (withDarkMode ? '@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}' : '')\n }\n }),\n statusCode ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: statusCode\n }) : null,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.wrap,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.h2,\n children: [\n this.props.title || statusCode ? title : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"Application error: a client-side exception has occurred\",\n ' ',\n Boolean(this.props.hostname) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"while loading \",\n this.props.hostname\n ]\n }),\n ' ',\n \"(see the browser console for more information)\"\n ]\n }),\n \".\"\n ]\n })\n })\n ]\n })\n ]\n });\n }\n}\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvcGFnZXMvX2Vycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7ZUFnRnFCQTs7Ozs7NEVBaEZIOzJFQUNEO0FBR2pCLE1BQU1DLGNBQTBDO0lBQzlDLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7QUFDUDtBQVNBLFNBQVNDLGlCQUFpQixLQUlSO0lBSlEsTUFDeEJDLEdBQUcsRUFDSEMsR0FBRyxFQUNIQyxHQUFHLEVBQ2EsR0FKUTtJQUt4QixNQUFNQyxhQUNKRixPQUFPQSxJQUFJRSxVQUFVLEdBQUdGLElBQUlFLFVBQVUsR0FBR0QsTUFBTUEsSUFBSUMsVUFBVSxHQUFJO0lBRW5FLElBQUlDO0lBRUosSUFBSSxLQUE2QixFQUFFLEVBRWxDLE1BQU0sSUFBSUosS0FBSztRQUNkLE1BQU0sRUFBRU8sY0FBYyxFQUFFLEdBQ3RCQyxtQkFBT0EsQ0FBQyxnR0FBd0I7UUFFbEMsTUFBTUMsVUFBVUYsZUFBZVAsS0FBSztRQUNwQyxJQUFJUyxTQUFTO1lBQ1gsTUFBTUMsTUFBTSxJQUFJQyxJQUFJRjtZQUNwQkwsV0FBV00sSUFBSU4sUUFBUTtRQUN6QjtJQUNGO0lBRUEsT0FBTztRQUFFRDtRQUFZQztJQUFTO0FBQ2hDO0FBRUEsTUFBTVEsU0FBOEM7SUFDbERDLE9BQU87UUFDTCwwRkFBMEY7UUFDMUZDLFlBQ0U7UUFDRkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNsQjtJQUNBQyxNQUFNO1FBQ0pDLFlBQVk7SUFDZDtJQUNBQyxJQUFJO1FBQ0ZOLFNBQVM7UUFDVE8sUUFBUTtRQUNSQyxjQUFjO1FBQ2RDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxlQUFlO0lBQ2pCO0lBQ0FDLElBQUk7UUFDRkgsVUFBVTtRQUNWQyxZQUFZO1FBQ1pMLFlBQVk7SUFDZDtJQUNBUSxNQUFNO1FBQ0piLFNBQVM7SUFDWDtBQUNGO0FBS2UsTUFBTXBCLGNBQXNCa0MsT0FBQUEsT0FBSyxDQUFDQyxTQUFTO0lBTXhEQyxTQUFTO1FBQ1AsTUFBTSxFQUFFOUIsVUFBVSxFQUFFK0IsZUFBZSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUNDLEtBQUs7UUFDdEQsTUFBTUMsUUFDSixJQUFJLENBQUNELEtBQUssQ0FBQ0MsS0FBSyxJQUNoQnRDLFdBQVcsQ0FBQ0ssV0FBVyxJQUN2QjtRQUVGLHFCQUNFLHNCQUFDa0MsT0FBQUE7WUFBSUMsT0FBTzFCLE9BQU9DLEtBQUs7OzhCQUN0QixxQkFBQzBCLE1BQUFBLE9BQUk7OEJBQ0gsbUNBQUNILFNBQUFBO2tDQUNFakMsYUFDTUEsYUFBVyxPQUFJaUMsUUFDbEI7Ozs4QkFHUixzQkFBQ0MsT0FBQUE7b0JBQUlDLE9BQU8xQixPQUFPUyxJQUFJOztzQ0FDckIscUJBQUNpQixTQUFBQTs0QkFDQ0UseUJBQXlCO2dDQUN2Qjs7Ozs7Ozs7Ozs7Ozs7OztlQWdCQyxHQUNEQyxRQUFTLG1HQUNQUCxDQUFBQSxlQUNJLG9JQUNBLEdBQUM7NEJBRVQ7O3dCQUdEL0IsYUFBQUEsV0FBQUEsR0FDQyxxQkFBQ29CLE1BQUFBOzRCQUFHbUIsV0FBVTs0QkFBZ0JKLE9BQU8xQixPQUFPVyxFQUFFO3NDQUMzQ3BCOzZCQUVEO3NDQUNKLHFCQUFDa0MsT0FBQUE7NEJBQUlDLE9BQU8xQixPQUFPa0IsSUFBSTtzQ0FDckIsb0NBQUNELE1BQUFBO2dDQUFHUyxPQUFPMUIsT0FBT2lCLEVBQUU7O29DQUNqQixJQUFJLENBQUNNLEtBQUssQ0FBQ0MsS0FBSyxJQUFJakMsYUFDbkJpQyxRQUVBLFdBRkFBLEdBRUE7OzRDQUFFOzRDQUN3RDs0Q0FDdkRPLFFBQVEsSUFBSSxDQUFDUixLQUFLLENBQUMvQixRQUFRLEtBQzFCLFdBRDBCLEdBQzFCOztvREFBRTtvREFBZSxJQUFJLENBQUMrQixLQUFLLENBQUMvQixRQUFROzs7NENBQ25DOzRDQUFJOzs7b0NBR1Q7Ozs7Ozs7O0lBT2Q7QUFDRjtBQTNFcUJQLE1BQ1orQyxXQUFBQSxHQUFjO0FBREYvQyxNQUdaZ0QsZUFBQUEsR0FBa0I5QztBQUhORixNQUlaaUQsbUJBQUFBLEdBQXNCL0MiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvc3JjL3BhZ2VzL19lcnJvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IEhlYWQgZnJvbSAnLi4vc2hhcmVkL2xpYi9oZWFkJ1xuaW1wb3J0IHR5cGUgeyBOZXh0UGFnZUNvbnRleHQgfSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuXG5jb25zdCBzdGF0dXNDb2RlczogeyBbY29kZTogbnVtYmVyXTogc3RyaW5nIH0gPSB7XG4gIDQwMDogJ0JhZCBSZXF1ZXN0JyxcbiAgNDA0OiAnVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZCcsXG4gIDQwNTogJ01ldGhvZCBOb3QgQWxsb3dlZCcsXG4gIDUwMDogJ0ludGVybmFsIFNlcnZlciBFcnJvcicsXG59XG5cbmV4cG9ydCB0eXBlIEVycm9yUHJvcHMgPSB7XG4gIHN0YXR1c0NvZGU6IG51bWJlclxuICBob3N0bmFtZT86IHN0cmluZ1xuICB0aXRsZT86IHN0cmluZ1xuICB3aXRoRGFya01vZGU/OiBib29sZWFuXG59XG5cbmZ1bmN0aW9uIF9nZXRJbml0aWFsUHJvcHMoe1xuICByZXEsXG4gIHJlcyxcbiAgZXJyLFxufTogTmV4dFBhZ2VDb250ZXh0KTogUHJvbWlzZTxFcnJvclByb3BzPiB8IEVycm9yUHJvcHMge1xuICBjb25zdCBzdGF0dXNDb2RlID1cbiAgICByZXMgJiYgcmVzLnN0YXR1c0NvZGUgPyByZXMuc3RhdHVzQ29kZSA6IGVyciA/IGVyci5zdGF0dXNDb2RlISA6IDQwNFxuXG4gIGxldCBob3N0bmFtZVxuXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIGhvc3RuYW1lID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lXG4gIH0gZWxzZSBpZiAocmVxKSB7XG4gICAgY29uc3QgeyBnZXRSZXF1ZXN0TWV0YSB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3NlcnZlci9yZXF1ZXN0LW1ldGEnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9zZXJ2ZXIvcmVxdWVzdC1tZXRhJylcblxuICAgIGNvbnN0IGluaXRVcmwgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdpbml0VVJMJylcbiAgICBpZiAoaW5pdFVybCkge1xuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChpbml0VXJsKVxuICAgICAgaG9zdG5hbWUgPSB1cmwuaG9zdG5hbWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBzdGF0dXNDb2RlLCBob3N0bmFtZSB9XG59XG5cbmNvbnN0IHN0eWxlczogUmVjb3JkPHN0cmluZywgUmVhY3QuQ1NTUHJvcGVydGllcz4gPSB7XG4gIGVycm9yOiB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2Jsb2IvbWFpbi9tb2Rlcm4tbm9ybWFsaXplLmNzcyNMMzgtTDUyXG4gICAgZm9udEZhbWlseTpcbiAgICAgICdzeXN0ZW0tdWksXCJTZWdvZSBVSVwiLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiJyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9LFxuICBkZXNjOiB7XG4gICAgbGluZUhlaWdodDogJzQ4cHgnLFxuICB9LFxuICBoMToge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgIG1hcmdpbjogJzAgMjBweCAwIDAnLFxuICAgIHBhZGRpbmdSaWdodDogMjMsXG4gICAgZm9udFNpemU6IDI0LFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbiAgfSxcbiAgaDI6IHtcbiAgICBmb250U2l6ZTogMTQsXG4gICAgZm9udFdlaWdodDogNDAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyOHB4JyxcbiAgfSxcbiAgd3JhcDoge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICB9LFxufVxuXG4vKipcbiAqIGBFcnJvcmAgY29tcG9uZW50IHVzZWQgZm9yIGhhbmRsaW5nIGVycm9ycy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXJyb3I8UCA9IHt9PiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQICYgRXJyb3JQcm9wcz4ge1xuICBzdGF0aWMgZGlzcGxheU5hbWUgPSAnRXJyb3JQYWdlJ1xuXG4gIHN0YXRpYyBnZXRJbml0aWFsUHJvcHMgPSBfZ2V0SW5pdGlhbFByb3BzXG4gIHN0YXRpYyBvcmlnR2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wc1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHN0YXR1c0NvZGUsIHdpdGhEYXJrTW9kZSA9IHRydWUgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB0aXRsZSA9XG4gICAgICB0aGlzLnByb3BzLnRpdGxlIHx8XG4gICAgICBzdGF0dXNDb2Rlc1tzdGF0dXNDb2RlXSB8fFxuICAgICAgJ0FuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkJ1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5lcnJvcn0+XG4gICAgICAgIDxIZWFkPlxuICAgICAgICAgIDx0aXRsZT5cbiAgICAgICAgICAgIHtzdGF0dXNDb2RlXG4gICAgICAgICAgICAgID8gYCR7c3RhdHVzQ29kZX06ICR7dGl0bGV9YFxuICAgICAgICAgICAgICA6ICdBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkJ31cbiAgICAgICAgICA8L3RpdGxlPlxuICAgICAgICA8L0hlYWQ+XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5kZXNjfT5cbiAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIC8qIENTUyBtaW5pZmllZCBmcm9tXG4gICAgICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMDsgY29sb3I6ICMwMDA7IGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgICAgICAgICAubmV4dC1lcnJvci1oMSB7XG4gICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIC4zKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAke1xuICAgICAgICAgICAgICAgICAgd2l0aERhcmtNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gYEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgICAgICAgICAgIGJvZHkgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogIzAwMDsgfVxuICAgICAgICAgICAgICAgICAgLm5leHQtZXJyb3ItaDEge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIC4zKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgX19odG1sOiBgYm9keXtjb2xvcjojMDAwO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpfSR7XG4gICAgICAgICAgICAgICAgd2l0aERhcmtNb2RlXG4gICAgICAgICAgICAgICAgICA/ICdAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspe2JvZHl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMwMDB9Lm5leHQtZXJyb3ItaDF7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4zKX19J1xuICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cblxuICAgICAgICAgIHtzdGF0dXNDb2RlID8gKFxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm5leHQtZXJyb3ItaDFcIiBzdHlsZT17c3R5bGVzLmgxfT5cbiAgICAgICAgICAgICAge3N0YXR1c0NvZGV9XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy53cmFwfT5cbiAgICAgICAgICAgIDxoMiBzdHlsZT17c3R5bGVzLmgyfT5cbiAgICAgICAgICAgICAge3RoaXMucHJvcHMudGl0bGUgfHwgc3RhdHVzQ29kZSA/IChcbiAgICAgICAgICAgICAgICB0aXRsZVxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkeycgJ31cbiAgICAgICAgICAgICAgICAgIHtCb29sZWFuKHRoaXMucHJvcHMuaG9zdG5hbWUpICYmIChcbiAgICAgICAgICAgICAgICAgICAgPD53aGlsZSBsb2FkaW5nIHt0aGlzLnByb3BzLmhvc3RuYW1lfTwvPlxuICAgICAgICAgICAgICAgICAgKX17JyAnfVxuICAgICAgICAgICAgICAgICAgKHNlZSB0aGUgYnJvd3NlciBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uKVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAuXG4gICAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVycm9yIiwic3RhdHVzQ29kZXMiLCJfZ2V0SW5pdGlhbFByb3BzIiwicmVxIiwicmVzIiwiZXJyIiwic3RhdHVzQ29kZSIsImhvc3RuYW1lIiwid2luZG93IiwibG9jYXRpb24iLCJnZXRSZXF1ZXN0TWV0YSIsInJlcXVpcmUiLCJpbml0VXJsIiwidXJsIiwiVVJMIiwic3R5bGVzIiwiZXJyb3IiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJkZXNjIiwibGluZUhlaWdodCIsImgxIiwibWFyZ2luIiwicGFkZGluZ1JpZ2h0IiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwidmVydGljYWxBbGlnbiIsImgyIiwid3JhcCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwid2l0aERhcmtNb2RlIiwicHJvcHMiLCJ0aXRsZSIsImRpdiIsInN0eWxlIiwiSGVhZCIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiY2xhc3NOYW1lIiwiQm9vbGVhbiIsImRpc3BsYXlOYW1lIiwiZ2V0SW5pdGlhbFByb3BzIiwib3JpZ0dldEluaXRpYWxQcm9wcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/pages/_error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/interop-default.js ***!
|
||
\*********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Interop between \"export default\" and \"module.exports\".\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interopDefault\", ({\n enumerable: true,\n get: function() {\n return interopDefault;\n }\n}));\nfunction interopDefault(mod) {\n return mod.default || mod;\n}\n\n//# sourceMappingURL=interop-default.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJvcCBiZXR3ZWVuIFwiZXhwb3J0IGRlZmF1bHRcIiBhbmQgXCJtb2R1bGUuZXhwb3J0c1wiLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaW50ZXJvcERlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGludGVyb3BEZWZhdWx0O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaW50ZXJvcERlZmF1bHQobW9kKSB7XG4gICAgcmV0dXJuIG1vZC5kZWZhdWx0IHx8IG1vZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJvcC1kZWZhdWx0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/base-http/helpers.js":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/base-http/helpers.js ***!
|
||
\************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 isNodeNextRequest: function() {\n return isNodeNextRequest;\n },\n isNodeNextResponse: function() {\n return isNodeNextResponse;\n },\n isWebNextRequest: function() {\n return isWebNextRequest;\n },\n isWebNextResponse: function() {\n return isWebNextResponse;\n }\n});\nconst isWebNextRequest = (req)=>\"nodejs\" === 'edge';\nconst isWebNextResponse = (res)=>\"nodejs\" === 'edge';\nconst isNodeNextRequest = (req)=>\"nodejs\" !== 'edge';\nconst isNodeNextResponse = (res)=>\"nodejs\" !== 'edge';\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Jhc2UtaHR0cC9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxnQ0FBZ0MsUUFBd0I7QUFDeEQsaUNBQWlDLFFBQXdCO0FBQ3pELGlDQUFpQyxRQUF3QjtBQUN6RCxrQ0FBa0MsUUFBd0I7O0FBRTFEIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaGVscGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzTm9kZU5leHRSZXF1ZXN0OiBudWxsLFxuICAgIGlzTm9kZU5leHRSZXNwb25zZTogbnVsbCxcbiAgICBpc1dlYk5leHRSZXF1ZXN0OiBudWxsLFxuICAgIGlzV2ViTmV4dFJlc3BvbnNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGlzTm9kZU5leHRSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzTm9kZU5leHRSZXF1ZXN0O1xuICAgIH0sXG4gICAgaXNOb2RlTmV4dFJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzTm9kZU5leHRSZXNwb25zZTtcbiAgICB9LFxuICAgIGlzV2ViTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNXZWJOZXh0UmVxdWVzdDtcbiAgICB9LFxuICAgIGlzV2ViTmV4dFJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzV2ViTmV4dFJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgaXNXZWJOZXh0UmVxdWVzdCA9IChyZXEpPT5wcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJztcbmNvbnN0IGlzV2ViTmV4dFJlc3BvbnNlID0gKHJlcyk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnO1xuY29uc3QgaXNOb2RlTmV4dFJlcXVlc3QgPSAocmVxKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZSc7XG5jb25zdCBpc05vZGVOZXh0UmVzcG9uc2UgPSAocmVzKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZSc7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/base-http/helpers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/client-component-renderer-logger.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/client-component-renderer-logger.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 getClientComponentLoaderMetrics: function() {\n return getClientComponentLoaderMetrics;\n },\n wrapClientComponentLoader: function() {\n return wrapClientComponentLoader;\n }\n});\n// Combined load times for loading client components\nlet clientComponentLoadStart = 0;\nlet clientComponentLoadTimes = 0;\nlet clientComponentLoadCount = 0;\nfunction wrapClientComponentLoader(ComponentMod) {\n if (!('performance' in globalThis)) {\n return ComponentMod.__next_app__;\n }\n return {\n require: (...args)=>{\n const startTime = performance.now();\n if (clientComponentLoadStart === 0) {\n clientComponentLoadStart = startTime;\n }\n try {\n clientComponentLoadCount += 1;\n return ComponentMod.__next_app__.require(...args);\n } finally{\n clientComponentLoadTimes += performance.now() - startTime;\n }\n },\n loadChunk: (...args)=>{\n const startTime = performance.now();\n const result = ComponentMod.__next_app__.loadChunk(...args);\n // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity.\n // We only need to know when it's settled.\n result.finally(()=>{\n clientComponentLoadTimes += performance.now() - startTime;\n });\n return result;\n }\n };\n}\nfunction getClientComponentLoaderMetrics(options = {}) {\n const metrics = clientComponentLoadStart === 0 ? undefined : {\n clientComponentLoadStart,\n clientComponentLoadTimes,\n clientComponentLoadCount\n };\n if (options.reset) {\n clientComponentLoadStart = 0;\n clientComponentLoadTimes = 0;\n clientComponentLoadCount = 0;\n }\n return metrics;\n}\n\n//# sourceMappingURL=client-component-renderer-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2NsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2NsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljczogbnVsbCxcbiAgICB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljcztcbiAgICB9LFxuICAgIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd3JhcENsaWVudENvbXBvbmVudExvYWRlcjtcbiAgICB9XG59KTtcbi8vIENvbWJpbmVkIGxvYWQgdGltZXMgZm9yIGxvYWRpbmcgY2xpZW50IGNvbXBvbmVudHNcbmxldCBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPSAwO1xubGV0IGNsaWVudENvbXBvbmVudExvYWRUaW1lcyA9IDA7XG5sZXQgY2xpZW50Q29tcG9uZW50TG9hZENvdW50ID0gMDtcbmZ1bmN0aW9uIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXIoQ29tcG9uZW50TW9kKSB7XG4gICAgaWYgKCEoJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzKSkge1xuICAgICAgICByZXR1cm4gQ29tcG9uZW50TW9kLl9fbmV4dF9hcHBfXztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZTogKC4uLmFyZ3MpPT57XG4gICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgICAgIGlmIChjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPSBzdGFydFRpbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNsaWVudENvbXBvbmVudExvYWRDb3VudCArPSAxO1xuICAgICAgICAgICAgICAgIHJldHVybiBDb21wb25lbnRNb2QuX19uZXh0X2FwcF9fLnJlcXVpcmUoLi4uYXJncyk7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzICs9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsb2FkQ2h1bms6ICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBDb21wb25lbnRNb2QuX19uZXh0X2FwcF9fLmxvYWRDaHVuayguLi5hcmdzKTtcbiAgICAgICAgICAgIC8vIEF2b2lkIHdyYXBwaW5nIGBsb2FkQ2h1bmtgJ3MgcmVzdWx0IGluIGFuIGV4dHJhIHByb21pc2UgaW4gY2FzZSBzb21ldGhpbmcgbGlrZSBSZWFjdCBkZXBlbmRzIG9uIGl0cyBpZGVudGl0eS5cbiAgICAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBrbm93IHdoZW4gaXQncyBzZXR0bGVkLlxuICAgICAgICAgICAgcmVzdWx0LmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgKz0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljcyhvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBtZXRyaWNzID0gY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID09PSAwID8gdW5kZWZpbmVkIDoge1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQsXG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRUaW1lcyxcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZENvdW50XG4gICAgfTtcbiAgICBpZiAob3B0aW9ucy5yZXNldCkge1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkU3RhcnQgPSAwO1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgPSAwO1xuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkQ291bnQgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gbWV0cmljcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xpZW50LWNvbXBvbmVudC1yZW5kZXJlci1sb2dnZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/client-component-renderer-logger.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/get-page-files.js":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/get-page-files.js ***!
|
||
\*********************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getPageFiles\", ({\n enumerable: true,\n get: function() {\n return getPageFiles;\n }\n}));\nconst _denormalizepagepath = __webpack_require__(/*! ../shared/lib/page-path/denormalize-page-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\");\nconst _normalizepagepath = __webpack_require__(/*! ../shared/lib/page-path/normalize-page-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js\");\nfunction getPageFiles(buildManifest, page) {\n const normalizedPage = (0, _denormalizepagepath.denormalizePagePath)((0, _normalizepagepath.normalizePagePath)(page));\n let files = buildManifest.pages[normalizedPage];\n if (!files) {\n console.warn(`Could not find files for ${normalizedPage} in .next/build-manifest.json`);\n return [];\n }\n return files;\n}\n\n//# sourceMappingURL=get-page-files.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2dldC1wYWdlLWZpbGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZ0RBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNkJBQTZCLG1CQUFPLENBQUMsOElBQStDO0FBQ3BGLDJCQUEyQixtQkFBTyxDQUFDLDBJQUE2QztBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRCxnQkFBZ0I7QUFDakU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2dldC1wYWdlLWZpbGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0UGFnZUZpbGVzXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRQYWdlRmlsZXM7XG4gICAgfVxufSk7XG5jb25zdCBfZGVub3JtYWxpemVwYWdlcGF0aCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9kZW5vcm1hbGl6ZS1wYWdlLXBhdGhcIik7XG5jb25zdCBfbm9ybWFsaXplcGFnZXBhdGggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhZ2UtcGF0aFwiKTtcbmZ1bmN0aW9uIGdldFBhZ2VGaWxlcyhidWlsZE1hbmlmZXN0LCBwYWdlKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFBhZ2UgPSAoMCwgX2Rlbm9ybWFsaXplcGFnZXBhdGguZGVub3JtYWxpemVQYWdlUGF0aCkoKDAsIF9ub3JtYWxpemVwYWdlcGF0aC5ub3JtYWxpemVQYWdlUGF0aCkocGFnZSkpO1xuICAgIGxldCBmaWxlcyA9IGJ1aWxkTWFuaWZlc3QucGFnZXNbbm9ybWFsaXplZFBhZ2VdO1xuICAgIGlmICghZmlsZXMpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBDb3VsZCBub3QgZmluZCBmaWxlcyBmb3IgJHtub3JtYWxpemVkUGFnZX0gaW4gLm5leHQvYnVpbGQtbWFuaWZlc3QuanNvbmApO1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBmaWxlcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LXBhZ2UtZmlsZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/get-page-files.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/htmlescape.js":
|
||
/*!*****************************************************!*\
|
||
!*** ./node_modules/next/dist/server/htmlescape.js ***!
|
||
\*****************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// This utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\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 ESCAPE_REGEX: function() {\n return ESCAPE_REGEX;\n },\n htmlEscapeJsonString: function() {\n return htmlEscapeJsonString;\n }\n});\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}\n\n//# sourceMappingURL=htmlescape.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2h0bWxlc2NhcGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2h0bWxlc2NhcGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyB1dGlsaXR5IGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS96ZXJ0b3NoL2h0bWxlc2NhcGVcbi8vIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS96ZXJ0b3NoL2h0bWxlc2NhcGUvYmxvYi8wNTI3Y2E3MTU2YTUyNGQyNTYxMDFiYjMxMGE5Zjk3MGY2MzA3OGFkL0xJQ0VOU0VcblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgRVNDQVBFX1JFR0VYOiBudWxsLFxuICAgIGh0bWxFc2NhcGVKc29uU3RyaW5nOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEVTQ0FQRV9SRUdFWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFU0NBUEVfUkVHRVg7XG4gICAgfSxcbiAgICBodG1sRXNjYXBlSnNvblN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBodG1sRXNjYXBlSnNvblN0cmluZztcbiAgICB9XG59KTtcbmNvbnN0IEVTQ0FQRV9MT09LVVAgPSB7XG4gICAgJyYnOiAnXFxcXHUwMDI2JyxcbiAgICAnPic6ICdcXFxcdTAwM2UnLFxuICAgICc8JzogJ1xcXFx1MDAzYycsXG4gICAgJ1xcdTIwMjgnOiAnXFxcXHUyMDI4JyxcbiAgICAnXFx1MjAyOSc6ICdcXFxcdTIwMjknXG59O1xuY29uc3QgRVNDQVBFX1JFR0VYID0gL1smPjxcXHUyMDI4XFx1MjAyOV0vZztcbmZ1bmN0aW9uIGh0bWxFc2NhcGVKc29uU3RyaW5nKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShFU0NBUEVfUkVHRVgsIChtYXRjaCk9PkVTQ0FQRV9MT09LVVBbbWF0Y2hdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aHRtbGVzY2FwZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/htmlescape.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/instrumentation/utils.js ***!
|
||
\****************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRevalidateReason\", ({\n enumerable: true,\n get: function() {\n return getRevalidateReason;\n }\n}));\nfunction getRevalidateReason(params) {\n if (params.isOnDemandRevalidate) {\n return 'on-demand';\n }\n if (params.isRevalidate) {\n return 'stale';\n }\n return undefined;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2luc3RydW1lbnRhdGlvbi91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHVEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvaW5zdHJ1bWVudGF0aW9uL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0UmV2YWxpZGF0ZVJlYXNvblwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0UmV2YWxpZGF0ZVJlYXNvbjtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGdldFJldmFsaWRhdGVSZWFzb24ocGFyYW1zKSB7XG4gICAgaWYgKHBhcmFtcy5pc09uRGVtYW5kUmV2YWxpZGF0ZSkge1xuICAgICAgICByZXR1cm4gJ29uLWRlbWFuZCc7XG4gICAgfVxuICAgIGlmIChwYXJhbXMuaXNSZXZhbGlkYXRlKSB7XG4gICAgICAgIHJldHVybiAnc3RhbGUnO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/cache-control.js ***!
|
||
\************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getCacheControlHeader\", ({\n enumerable: true,\n get: function() {\n return getCacheControlHeader;\n }\n}));\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nfunction getCacheControlHeader({ revalidate, expire }) {\n const swrHeader = typeof revalidate === 'number' && expire !== undefined && revalidate < expire ? `, stale-while-revalidate=${expire - 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}${swrHeader}`;\n }\n return `s-maxage=${_constants.CACHE_ONE_YEAR}${swrHeader}`;\n}\n\n//# sourceMappingURL=cache-control.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9jYWNoZS1jb250cm9sLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseURBQXdEO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsbUJBQW1CLG1CQUFPLENBQUMsdUZBQXFCO0FBQ2hELGlDQUFpQyxvQkFBb0I7QUFDckQsa0lBQWtJLG9CQUFvQjtBQUN0SjtBQUNBO0FBQ0EsTUFBTTtBQUNOLDJCQUEyQixXQUFXLEVBQUUsVUFBVTtBQUNsRDtBQUNBLHVCQUF1QiwwQkFBMEIsRUFBRSxVQUFVO0FBQzdEOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2FjaGUtY29udHJvbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldENhY2hlQ29udHJvbEhlYWRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0Q2FjaGVDb250cm9sSGVhZGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi9saWIvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gZ2V0Q2FjaGVDb250cm9sSGVhZGVyKHsgcmV2YWxpZGF0ZSwgZXhwaXJlIH0pIHtcbiAgICBjb25zdCBzd3JIZWFkZXIgPSB0eXBlb2YgcmV2YWxpZGF0ZSA9PT0gJ251bWJlcicgJiYgZXhwaXJlICE9PSB1bmRlZmluZWQgJiYgcmV2YWxpZGF0ZSA8IGV4cGlyZSA/IGAsIHN0YWxlLXdoaWxlLXJldmFsaWRhdGU9JHtleHBpcmUgLSByZXZhbGlkYXRlfWAgOiAnJztcbiAgICBpZiAocmV2YWxpZGF0ZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJ3ByaXZhdGUsIG5vLWNhY2hlLCBuby1zdG9yZSwgbWF4LWFnZT0wLCBtdXN0LXJldmFsaWRhdGUnO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldmFsaWRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiBgcy1tYXhhZ2U9JHtyZXZhbGlkYXRlfSR7c3dySGVhZGVyfWA7XG4gICAgfVxuICAgIHJldHVybiBgcy1tYXhhZ2U9JHtfY29uc3RhbnRzLkNBQ0hFX09ORV9ZRUFSfSR7c3dySGVhZGVyfWA7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhY2hlLWNvbnRyb2wuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/etag.js":
|
||
/*!***************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/etag.js ***!
|
||
\***************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <me@traviswebb.com>\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 */ \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 fnv1a52: function() {\n return fnv1a52;\n },\n generateETag: function() {\n return generateETag;\n }\n});\nconst 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};\n\n//# sourceMappingURL=etag.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9ldGFnLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZXRhZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZOVi0xYSBIYXNoIGltcGxlbWVudGF0aW9uXG4gKiBAYXV0aG9yIFRyYXZpcyBXZWJiICh0andlYmIpIDxtZUB0cmF2aXN3ZWJiLmNvbT5cbiAqXG4gKiBQb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdGp3ZWJiL2Zudi1wbHVzL2Jsb2IvbWFzdGVyL2luZGV4LmpzXG4gKlxuICogU2ltcGxpZmllZCwgb3B0aW1pemVkIGFuZCBhZGQgbW9kaWZpZWQgZm9yIDUyIGJpdCwgd2hpY2ggcHJvdmlkZXMgYSBsYXJnZXIgaGFzaCBzcGFjZVxuICogYW5kIHN0aWxsIG1ha2luZyB1c2Ugb2YgSmF2YXNjcmlwdCdzIDUzLWJpdCBpbnRlZ2VyIHNwYWNlLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZm52MWE1MjogbnVsbCxcbiAgICBnZW5lcmF0ZUVUYWc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZm52MWE1MjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmbnYxYTUyO1xuICAgIH0sXG4gICAgZ2VuZXJhdGVFVGFnOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlRVRhZztcbiAgICB9XG59KTtcbmNvbnN0IGZudjFhNTIgPSAoc3RyKT0+e1xuICAgIGNvbnN0IGxlbiA9IHN0ci5sZW5ndGg7XG4gICAgbGV0IGkgPSAwLCB0MCA9IDAsIHYwID0gMHgyMzI1LCB0MSA9IDAsIHYxID0gMHg4NDIyLCB0MiA9IDAsIHYyID0gMHg5Y2U0LCB0MyA9IDAsIHYzID0gMHhjYmYyO1xuICAgIHdoaWxlKGkgPCBsZW4pe1xuICAgICAgICB2MCBePSBzdHIuY2hhckNvZGVBdChpKyspO1xuICAgICAgICB0MCA9IHYwICogNDM1O1xuICAgICAgICB0MSA9IHYxICogNDM1O1xuICAgICAgICB0MiA9IHYyICogNDM1O1xuICAgICAgICB0MyA9IHYzICogNDM1O1xuICAgICAgICB0MiArPSB2MCA8PCA4O1xuICAgICAgICB0MyArPSB2MSA8PCA4O1xuICAgICAgICB0MSArPSB0MCA+Pj4gMTY7XG4gICAgICAgIHYwID0gdDAgJiA2NTUzNTtcbiAgICAgICAgdDIgKz0gdDEgPj4+IDE2O1xuICAgICAgICB2MSA9IHQxICYgNjU1MzU7XG4gICAgICAgIHYzID0gdDMgKyAodDIgPj4+IDE2KSAmIDY1NTM1O1xuICAgICAgICB2MiA9IHQyICYgNjU1MzU7XG4gICAgfVxuICAgIHJldHVybiAodjMgJiAxNSkgKiAyODE0NzQ5NzY3MTA2NTYgKyB2MiAqIDQyOTQ5NjcyOTYgKyB2MSAqIDY1NTM2ICsgKHYwIF4gdjMgPj4gNCk7XG59O1xuY29uc3QgZ2VuZXJhdGVFVGFnID0gKHBheWxvYWQsIHdlYWsgPSBmYWxzZSk9PntcbiAgICBjb25zdCBwcmVmaXggPSB3ZWFrID8gJ1cvXCInIDogJ1wiJztcbiAgICByZXR1cm4gcHJlZml4ICsgZm52MWE1MihwYXlsb2FkKS50b1N0cmluZygzNikgKyBwYXlsb2FkLmxlbmd0aC50b1N0cmluZygzNikgKyAnXCInO1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXRhZy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/etag.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/trace/constants.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \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 AppRenderSpan: function() {\n return AppRenderSpan;\n },\n AppRouteRouteHandlersSpan: function() {\n return AppRouteRouteHandlersSpan;\n },\n BaseServerSpan: function() {\n return BaseServerSpan;\n },\n LoadComponentsSpan: function() {\n return LoadComponentsSpan;\n },\n LogSpanAllowList: function() {\n return LogSpanAllowList;\n },\n MiddlewareSpan: function() {\n return MiddlewareSpan;\n },\n NextNodeServerSpan: function() {\n return NextNodeServerSpan;\n },\n NextServerSpan: function() {\n return NextServerSpan;\n },\n NextVanillaSpanAllowlist: function() {\n return NextVanillaSpanAllowlist;\n },\n NodeSpan: function() {\n return NodeSpan;\n },\n RenderSpan: function() {\n return RenderSpan;\n },\n ResolveMetadataSpan: function() {\n return ResolveMetadataSpan;\n },\n RouterSpan: function() {\n return RouterSpan;\n },\n StartServerSpan: function() {\n return StartServerSpan;\n }\n});\nvar BaseServerSpan = /*#__PURE__*/ 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 return BaseServerSpan;\n}(BaseServerSpan || {});\nvar LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n return LoadComponentsSpan;\n}(LoadComponentsSpan || {});\nvar NextServerSpan = /*#__PURE__*/ function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n return NextServerSpan;\n}(NextServerSpan || {});\nvar NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"createComponentTree\"] = \"NextNodeServer.createComponentTree\";\n NextNodeServerSpan[\"clientComponentLoading\"] = \"NextNodeServer.clientComponentLoading\";\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[\"startResponse\"] = \"NextNodeServer.startResponse\";\n // nested inner span, does not require parent scope name\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n return NextNodeServerSpan;\n}(NextNodeServerSpan || {});\nvar StartServerSpan = /*#__PURE__*/ function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n return StartServerSpan;\n}(StartServerSpan || {});\nvar RenderSpan = /*#__PURE__*/ 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 return RenderSpan;\n}(RenderSpan || {});\nvar AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n return AppRenderSpan;\n}(AppRenderSpan || {});\nvar RouterSpan = /*#__PURE__*/ function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n return RouterSpan;\n}(RouterSpan || {});\nvar NodeSpan = /*#__PURE__*/ function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n return NodeSpan;\n}(NodeSpan || {});\nvar AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n return AppRouteRouteHandlersSpan;\n}(AppRouteRouteHandlersSpan || {});\nvar ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n return ResolveMetadataSpan;\n}(ResolveMetadataSpan || {});\nvar MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) {\n MiddlewareSpan[\"execute\"] = \"Middleware.execute\";\n return MiddlewareSpan;\n}(MiddlewareSpan || {});\nconst NextVanillaSpanAllowlist = [\n \"Middleware.execute\",\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.createComponentTree\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\",\n \"NextNodeServer.startResponse\",\n \"NextNodeServer.clientComponentLoading\"\n];\nconst LogSpanAllowList = [\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.clientComponentLoading\"\n];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQTRDO0FBQzVDLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FlTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxxQkFBcUI7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHlCQUF5QjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFCQUFxQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHlCQUF5QjtBQUMxQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLHNCQUFzQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsaUJBQWlCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0JBQW9CO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLENBQUMsaUJBQWlCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLENBQUMsZUFBZTtBQUNoQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdDQUFnQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsMEJBQTBCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLENBQUMscUJBQXFCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250YWlucyBwcmVkZWZpbmVkIGNvbnN0YW50cyBmb3IgdGhlIHRyYWNlIHNwYW4gbmFtZSBpbiBuZXh0L3NlcnZlci5cbiAqXG4gKiBDdXJyZW50bHksIG5leHQvc2VydmVyL3RyYWNlciBpcyBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBvbmx5IGZvciB0cmFja2luZ1xuICogbmV4dC5qcydzIGltcGxlbWVudGF0aW9uIG9ubHkgd2l0aCBrbm93biBzcGFuIG5hbWVzIGRlZmluZWQgaGVyZS5cbiAqKi8gLy8gZXNsaW50IHR5cGVzY3JpcHQgaGFzIGEgYnVnIHdpdGggVFMgZW51bXNcbi8qIGVzbGludC1kaXNhYmxlIG5vLXNoYWRvdyAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFwcFJlbmRlclNwYW46IG51bGwsXG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjogbnVsbCxcbiAgICBCYXNlU2VydmVyU3BhbjogbnVsbCxcbiAgICBMb2FkQ29tcG9uZW50c1NwYW46IG51bGwsXG4gICAgTG9nU3BhbkFsbG93TGlzdDogbnVsbCxcbiAgICBNaWRkbGV3YXJlU3BhbjogbnVsbCxcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW46IG51bGwsXG4gICAgTmV4dFNlcnZlclNwYW46IG51bGwsXG4gICAgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0OiBudWxsLFxuICAgIE5vZGVTcGFuOiBudWxsLFxuICAgIFJlbmRlclNwYW46IG51bGwsXG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbjogbnVsbCxcbiAgICBSb3V0ZXJTcGFuOiBudWxsLFxuICAgIFN0YXJ0U2VydmVyU3BhbjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcHBSZW5kZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFwcFJlbmRlclNwYW47XG4gICAgfSxcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW47XG4gICAgfSxcbiAgICBCYXNlU2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCYXNlU2VydmVyU3BhbjtcbiAgICB9LFxuICAgIExvYWRDb21wb25lbnRzU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBMb2FkQ29tcG9uZW50c1NwYW47XG4gICAgfSxcbiAgICBMb2dTcGFuQWxsb3dMaXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIExvZ1NwYW5BbGxvd0xpc3Q7XG4gICAgfSxcbiAgICBNaWRkbGV3YXJlU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNaWRkbGV3YXJlU3BhbjtcbiAgICB9LFxuICAgIE5leHROb2RlU2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0Tm9kZVNlcnZlclNwYW47XG4gICAgfSxcbiAgICBOZXh0U2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0U2VydmVyU3BhbjtcbiAgICB9LFxuICAgIE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3Q7XG4gICAgfSxcbiAgICBOb2RlU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOb2RlU3BhbjtcbiAgICB9LFxuICAgIFJlbmRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVuZGVyU3BhbjtcbiAgICB9LFxuICAgIFJlc29sdmVNZXRhZGF0YVNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzb2x2ZU1ldGFkYXRhU3BhbjtcbiAgICB9LFxuICAgIFJvdXRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUm91dGVyU3BhbjtcbiAgICB9LFxuICAgIFN0YXJ0U2VydmVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTdGFydFNlcnZlclNwYW47XG4gICAgfVxufSk7XG52YXIgQmFzZVNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEJhc2VTZXJ2ZXJTcGFuKSB7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJoYW5kbGVSZXF1ZXN0XCJdID0gXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJ1blwiXSA9IFwiQmFzZVNlcnZlci5ydW5cIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInBpcGVcIl0gPSBcIkJhc2VTZXJ2ZXIucGlwZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wiZ2V0U3RhdGljSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5nZXRTdGF0aWNIVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHNcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9SZXNwb25zZVdpdGhDb21wb25lbnRzXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb1Jlc3BvbnNlXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvUmVzcG9uc2VcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvUmVzcG9uc2VcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JUb1Jlc3BvbnNlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclRvSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyNDA0XCJdID0gXCJCYXNlU2VydmVyLnJlbmRlcjQwNFwiO1xuICAgIHJldHVybiBCYXNlU2VydmVyU3Bhbjtcbn0oQmFzZVNlcnZlclNwYW4gfHwge30pO1xudmFyIExvYWRDb21wb25lbnRzU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTG9hZENvbXBvbmVudHNTcGFuKSB7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZERlZmF1bHRFcnJvckNvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWREZWZhdWx0RXJyb3JDb21wb25lbnRzXCI7XG4gICAgTG9hZENvbXBvbmVudHNTcGFuW1wibG9hZENvbXBvbmVudHNcIl0gPSBcIkxvYWRDb21wb25lbnRzLmxvYWRDb21wb25lbnRzXCI7XG4gICAgcmV0dXJuIExvYWRDb21wb25lbnRzU3Bhbjtcbn0oTG9hZENvbXBvbmVudHNTcGFuIHx8IHt9KTtcbnZhciBOZXh0U2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTmV4dFNlcnZlclNwYW4pIHtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0U2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0U2VydmVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRTZXJ2ZXJSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiY3JlYXRlU2VydmVyXCJdID0gXCJjcmVhdGVTZXJ2ZXIuY3JlYXRlU2VydmVyXCI7XG4gICAgcmV0dXJuIE5leHRTZXJ2ZXJTcGFuO1xufShOZXh0U2VydmVyU3BhbiB8fCB7fSk7XG52YXIgTmV4dE5vZGVTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihOZXh0Tm9kZVNlcnZlclNwYW4pIHtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjb21wcmVzc2lvblwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY29tcHJlc3Npb25cIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRCdWlsZElkXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRCdWlsZElkXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiY3JlYXRlQ29tcG9uZW50VHJlZVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY3JlYXRlQ29tcG9uZW50VHJlZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImNsaWVudENvbXBvbmVudExvYWRpbmdcIl0gPSBcIk5leHROb2RlU2VydmVyLmNsaWVudENvbXBvbmVudExvYWRpbmdcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRMYXlvdXRPclBhZ2VNb2R1bGVcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldExheW91dE9yUGFnZU1vZHVsZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlU3RhdGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZVN0YXRpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlRnNTdGF0aWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlRnNTdGF0aWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZVB1YmxpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVQdWJsaWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZUltYWdlUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZUltYWdlUm91dGVzLnJvdXRlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wic2VuZFJlbmRlclJlc3VsdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuc2VuZFJlbmRlclJlc3VsdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInByb3h5UmVxdWVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucHJveHlSZXF1ZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicnVuQXBpXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5ydW5BcGlcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckhUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckhUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbWFnZU9wdGltaXplclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuaW1hZ2VPcHRpbWl6ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRQYWdlUGF0aFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0UGFnZVBhdGhcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRSb3V0ZXNNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0Um91dGVzTWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJmaW5kUGFnZUNvbXBvbmVudHNcIl0gPSBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldEZvbnRNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0Rm9udE1hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0U2VydmVyQ29tcG9uZW50TWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFNlcnZlckNvbXBvbmVudE1hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0UmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyVG9IVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJUb0hUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyRXJyb3JcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclRvSFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyRXJyb3JUb0hUTUxcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXI0MDRcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlcjQwNFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInN0YXJ0UmVzcG9uc2VcIl0gPSBcIk5leHROb2RlU2VydmVyLnN0YXJ0UmVzcG9uc2VcIjtcbiAgICAvLyBuZXN0ZWQgaW5uZXIgc3BhbiwgZG9lcyBub3QgcmVxdWlyZSBwYXJlbnQgc2NvcGUgbmFtZVxuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJvdXRlXCJdID0gXCJyb3V0ZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcIm9uUHJveHlSZXFcIl0gPSBcIm9uUHJveHlSZXFcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJhcGlSZXNvbHZlclwiXSA9IFwiYXBpUmVzb2x2ZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJpbnRlcm5hbEZldGNoXCJdID0gXCJpbnRlcm5hbEZldGNoXCI7XG4gICAgcmV0dXJuIE5leHROb2RlU2VydmVyU3Bhbjtcbn0oTmV4dE5vZGVTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBTdGFydFNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFN0YXJ0U2VydmVyU3Bhbikge1xuICAgIFN0YXJ0U2VydmVyU3BhbltcInN0YXJ0U2VydmVyXCJdID0gXCJzdGFydFNlcnZlci5zdGFydFNlcnZlclwiO1xuICAgIHJldHVybiBTdGFydFNlcnZlclNwYW47XG59KFN0YXJ0U2VydmVyU3BhbiB8fCB7fSk7XG52YXIgUmVuZGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUmVuZGVyU3Bhbikge1xuICAgIFJlbmRlclNwYW5bXCJnZXRTZXJ2ZXJTaWRlUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIjtcbiAgICBSZW5kZXJTcGFuW1wiZ2V0U3RhdGljUHJvcHNcIl0gPSBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiO1xuICAgIFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgUmVuZGVyU3BhbltcInJlbmRlckRvY3VtZW50XCJdID0gXCJSZW5kZXIucmVuZGVyRG9jdW1lbnRcIjtcbiAgICBSZW5kZXJTcGFuW1wiY3JlYXRlQm9keVJlc3VsdFwiXSA9IFwiUmVuZGVyLmNyZWF0ZUJvZHlSZXN1bHRcIjtcbiAgICByZXR1cm4gUmVuZGVyU3Bhbjtcbn0oUmVuZGVyU3BhbiB8fCB7fSk7XG52YXIgQXBwUmVuZGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQXBwUmVuZGVyU3Bhbikge1xuICAgIEFwcFJlbmRlclNwYW5bXCJyZW5kZXJUb1N0cmluZ1wiXSA9IFwiQXBwUmVuZGVyLnJlbmRlclRvU3RyaW5nXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcInJlbmRlclRvUmVhZGFibGVTdHJlYW1cIl0gPSBcIkFwcFJlbmRlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtXCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImdldEJvZHlSZXN1bHRcIl0gPSBcIkFwcFJlbmRlci5nZXRCb2R5UmVzdWx0XCI7XG4gICAgQXBwUmVuZGVyU3BhbltcImZldGNoXCJdID0gXCJBcHBSZW5kZXIuZmV0Y2hcIjtcbiAgICByZXR1cm4gQXBwUmVuZGVyU3Bhbjtcbn0oQXBwUmVuZGVyU3BhbiB8fCB7fSk7XG52YXIgUm91dGVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUm91dGVyU3Bhbikge1xuICAgIFJvdXRlclNwYW5bXCJleGVjdXRlUm91dGVcIl0gPSBcIlJvdXRlci5leGVjdXRlUm91dGVcIjtcbiAgICByZXR1cm4gUm91dGVyU3Bhbjtcbn0oUm91dGVyU3BhbiB8fCB7fSk7XG52YXIgTm9kZVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE5vZGVTcGFuKSB7XG4gICAgTm9kZVNwYW5bXCJydW5IYW5kbGVyXCJdID0gXCJOb2RlLnJ1bkhhbmRsZXJcIjtcbiAgICByZXR1cm4gTm9kZVNwYW47XG59KE5vZGVTcGFuIHx8IHt9KTtcbnZhciBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuKSB7XG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbltcInJ1bkhhbmRsZXJcIl0gPSBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCI7XG4gICAgcmV0dXJuIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW47XG59KEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4gfHwge30pO1xudmFyIFJlc29sdmVNZXRhZGF0YVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJlc29sdmVNZXRhZGF0YVNwYW4pIHtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVNZXRhZGF0YVwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlTWV0YWRhdGFcIjtcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuW1wiZ2VuZXJhdGVWaWV3cG9ydFwiXSA9IFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIjtcbiAgICByZXR1cm4gUmVzb2x2ZU1ldGFkYXRhU3Bhbjtcbn0oUmVzb2x2ZU1ldGFkYXRhU3BhbiB8fCB7fSk7XG52YXIgTWlkZGxld2FyZVNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE1pZGRsZXdhcmVTcGFuKSB7XG4gICAgTWlkZGxld2FyZVNwYW5bXCJleGVjdXRlXCJdID0gXCJNaWRkbGV3YXJlLmV4ZWN1dGVcIjtcbiAgICByZXR1cm4gTWlkZGxld2FyZVNwYW47XG59KE1pZGRsZXdhcmVTcGFuIHx8IHt9KTtcbmNvbnN0IE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdCA9IFtcbiAgICBcIk1pZGRsZXdhcmUuZXhlY3V0ZVwiLFxuICAgIFwiQmFzZVNlcnZlci5oYW5kbGVSZXF1ZXN0XCIsXG4gICAgXCJSZW5kZXIuZ2V0U2VydmVyU2lkZVByb3BzXCIsXG4gICAgXCJSZW5kZXIuZ2V0U3RhdGljUHJvcHNcIixcbiAgICBcIkFwcFJlbmRlci5mZXRjaFwiLFxuICAgIFwiQXBwUmVuZGVyLmdldEJvZHlSZXN1bHRcIixcbiAgICBcIlJlbmRlci5yZW5kZXJEb2N1bWVudFwiLFxuICAgIFwiTm9kZS5ydW5IYW5kbGVyXCIsXG4gICAgXCJBcHBSb3V0ZVJvdXRlSGFuZGxlcnMucnVuSGFuZGxlclwiLFxuICAgIFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlTWV0YWRhdGFcIixcbiAgICBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZVZpZXdwb3J0XCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jcmVhdGVDb21wb25lbnRUcmVlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5maW5kUGFnZUNvbXBvbmVudHNcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmdldExheW91dE9yUGFnZU1vZHVsZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuc3RhcnRSZXNwb25zZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXG5dO1xuY29uc3QgTG9nU3BhbkFsbG93TGlzdCA9IFtcbiAgICBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY3JlYXRlQ29tcG9uZW50VHJlZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXG5dO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/trace/tracer.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 BubbledError: function() {\n return BubbledError;\n },\n SpanKind: function() {\n return SpanKind;\n },\n SpanStatusCode: function() {\n return SpanStatusCode;\n },\n getTracer: function() {\n return getTracer;\n },\n isBubbledError: function() {\n return isBubbledError;\n }\n});\nconst _constants = __webpack_require__(/*! ./constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _isthenable = __webpack_require__(/*! ../../../shared/lib/is-thenable */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/is-thenable.js\");\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 (false) {} else {\n try {\n api = __webpack_require__(/*! @opentelemetry/api */ \"(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n } catch (err) {\n api = __webpack_require__(/*! next/dist/compiled/@opentelemetry/api */ \"(pages-dir-node)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n }\n}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nclass BubbledError extends Error {\n constructor(bubble, result){\n super(), this.bubble = bubble, this.result = result;\n }\n}\nfunction isBubbledError(error) {\n if (typeof error !== 'object' || error === null) return false;\n return error instanceof BubbledError;\n}\nconst closeSpanWithError = (span, error)=>{\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true);\n } else {\n if (error) {\n span.recordException(error);\n span.setAttribute('error.type', error.name);\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++;\nconst clientTraceDataSetter = {\n set (carrier, key, value) {\n carrier.push({\n key,\n value\n });\n }\n};\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 getTracePropagationData() {\n const activeContext = context.active();\n const entries = [];\n propagation.inject(activeContext, entries, clientTraceDataSetter);\n return entries;\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 const spanName = options.spanName ?? type;\n if (!_constants.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) {\n return fn();\n }\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 = (context == null ? void 0 : context.active()) ?? 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 startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined;\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || '')) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, {\n start: startTime,\n end: performance.now()\n });\n }\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 ((0, _isthenable.isThenable)(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.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 setRootSpanAttribute(key, value) {\n const spanId = context.active().getValue(rootSpanIdKey);\n const attributes = rootSpanAttributesStore.get(spanId);\n if (attributes) {\n attributes.set(key, value);\n }\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n\n//# sourceMappingURL=tracer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsNEZBQWE7QUFDeEMsb0JBQW9CLG1CQUFPLENBQUMsNEdBQWlDO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNGO0FBQ0EsY0FBYyxtQkFBTyxDQUFDLDBHQUFvQjtBQUMxQyxNQUFNO0FBQ04sY0FBYyxtQkFBTyxDQUFDLDZIQUF1QztBQUM3RDtBQUNBO0FBQ0EsUUFBUSxzRUFBc0U7QUFDOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGNBQWM7QUFDOUI7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUNBQXlDLFFBQVEsb0ZBQW9GO0FBQ3BMO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0EsdUdBQXVHO0FBQ3ZHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4RUFBOEU7QUFDOUU7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QixzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBCdWJibGVkRXJyb3I6IG51bGwsXG4gICAgU3BhbktpbmQ6IG51bGwsXG4gICAgU3BhblN0YXR1c0NvZGU6IG51bGwsXG4gICAgZ2V0VHJhY2VyOiBudWxsLFxuICAgIGlzQnViYmxlZEVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEJ1YmJsZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCdWJibGVkRXJyb3I7XG4gICAgfSxcbiAgICBTcGFuS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTcGFuS2luZDtcbiAgICB9LFxuICAgIFNwYW5TdGF0dXNDb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNwYW5TdGF0dXNDb2RlO1xuICAgIH0sXG4gICAgZ2V0VHJhY2VyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFRyYWNlcjtcbiAgICB9LFxuICAgIGlzQnViYmxlZEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQnViYmxlZEVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9pc3RoZW5hYmxlID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvaXMtdGhlbmFibGVcIik7XG5sZXQgYXBpO1xuLy8gd2Ugd2FudCB0byBhbGxvdyB1c2VycyB0byB1c2UgdGhlaXIgb3duIHZlcnNpb24gb2YgQG9wZW50ZWxlbWV0cnkvYXBpIGlmIHRoZXlcbi8vIHdhbnQgdG8sIHNvIHdlIHRyeSB0byByZXF1aXJlIGl0IGZpcnN0LCBhbmQgaWYgaXQgZmFpbHMgd2UgZmFsbCBiYWNrIHRvIHRoZVxuLy8gdmVyc2lvbiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCBOZXh0LmpzXG4vLyB0aGlzIGlzIGJlY2F1c2UgQG9wZW50ZWxlbWV0cnkvYXBpIGhhcyB0byBiZSBzeW5jZWQgd2l0aCB0aGUgdmVyc2lvbiBvZlxuLy8gQG9wZW50ZWxlbWV0cnkvdHJhY2luZyB0aGF0IGlzIHVzZWQsIGFuZCB3ZSBkb24ndCB3YW50IHRvIGZvcmNlIHVzZXJzIHRvIHVzZVxuLy8gdGhlIHZlcnNpb24gdGhhdCBpcyBidW5kbGVkIHdpdGggTmV4dC5qcy5cbi8vIHRoZSBBUEkgaXMgfnN0YWJsZSwgc28gdGhpcyBzaG91bGQgYmUgZmluZVxuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgYXBpID0gcmVxdWlyZSgnQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG59IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICAgIGFwaSA9IHJlcXVpcmUoJ0BvcGVudGVsZW1ldHJ5L2FwaScpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhcGkgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG4gICAgfVxufVxuY29uc3QgeyBjb250ZXh0LCBwcm9wYWdhdGlvbiwgdHJhY2UsIFNwYW5TdGF0dXNDb2RlLCBTcGFuS2luZCwgUk9PVF9DT05URVhUIH0gPSBhcGk7XG5jbGFzcyBCdWJibGVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoYnViYmxlLCByZXN1bHQpe1xuICAgICAgICBzdXBlcigpLCB0aGlzLmJ1YmJsZSA9IGJ1YmJsZSwgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG4gICAgfVxufVxuZnVuY3Rpb24gaXNCdWJibGVkRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBlcnJvciBpbnN0YW5jZW9mIEJ1YmJsZWRFcnJvcjtcbn1cbmNvbnN0IGNsb3NlU3BhbldpdGhFcnJvciA9IChzcGFuLCBlcnJvcik9PntcbiAgICBpZiAoaXNCdWJibGVkRXJyb3IoZXJyb3IpICYmIGVycm9yLmJ1YmJsZSkge1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnbmV4dC5idWJibGUnLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycm9yKTtcbiAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdlcnJvci50eXBlJywgZXJyb3IubmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IubWVzc2FnZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3Bhbi5lbmQoKTtcbn07XG4vKiogd2UgdXNlIHRoaXMgbWFwIHRvIHByb3BhZ2F0ZSBhdHRyaWJ1dGVzIGZyb20gbmVzdGVkIHNwYW5zIHRvIHRoZSB0b3Agc3BhbiAqLyBjb25zdCByb290U3BhbkF0dHJpYnV0ZXNTdG9yZSA9IG5ldyBNYXAoKTtcbmNvbnN0IHJvb3RTcGFuSWRLZXkgPSBhcGkuY3JlYXRlQ29udGV4dEtleSgnbmV4dC5yb290U3BhbklkJyk7XG5sZXQgbGFzdFNwYW5JZCA9IDA7XG5jb25zdCBnZXRTcGFuSWQgPSAoKT0+bGFzdFNwYW5JZCsrO1xuY29uc3QgY2xpZW50VHJhY2VEYXRhU2V0dGVyID0ge1xuICAgIHNldCAoY2Fycmllciwga2V5LCB2YWx1ZSkge1xuICAgICAgICBjYXJyaWVyLnB1c2goe1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNsYXNzIE5leHRUcmFjZXJJbXBsIHtcbiAgICAvKipcbiAgICogUmV0dXJucyBhbiBpbnN0YW5jZSB0byB0aGUgdHJhY2Ugd2l0aCBjb25maWd1cmVkIG5hbWUuXG4gICAqIFNpbmNlIHdyYXAgLyB0cmFjZSBjYW4gYmUgZGVmaW5lZCBpbiBhbnkgcGxhY2UgcHJpb3IgdG8gYWN0dWFsIHRyYWNlIHN1YnNjcmliZXIgaW5pdGlhbGl6YXRpb24sXG4gICAqIFRoaXMgc2hvdWxkIGJlIGxhemlseSBldmFsdWF0ZWQuXG4gICAqLyBnZXRUcmFjZXJJbnN0YW5jZSgpIHtcbiAgICAgICAgcmV0dXJuIHRyYWNlLmdldFRyYWNlcignbmV4dC5qcycsICcwLjAuMScpO1xuICAgIH1cbiAgICBnZXRDb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9XG4gICAgZ2V0VHJhY2VQcm9wYWdhdGlvbkRhdGEoKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUNvbnRleHQgPSBjb250ZXh0LmFjdGl2ZSgpO1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gW107XG4gICAgICAgIHByb3BhZ2F0aW9uLmluamVjdChhY3RpdmVDb250ZXh0LCBlbnRyaWVzLCBjbGllbnRUcmFjZURhdGFTZXR0ZXIpO1xuICAgICAgICByZXR1cm4gZW50cmllcztcbiAgICB9XG4gICAgZ2V0QWN0aXZlU2NvcGVTcGFuKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0U3Bhbihjb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBjb250ZXh0LmFjdGl2ZSgpKTtcbiAgICB9XG4gICAgd2l0aFByb3BhZ2F0ZWRDb250ZXh0KGNhcnJpZXIsIGZuLCBnZXR0ZXIpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlQ29udGV4dCA9IGNvbnRleHQuYWN0aXZlKCk7XG4gICAgICAgIGlmICh0cmFjZS5nZXRTcGFuQ29udGV4dChhY3RpdmVDb250ZXh0KSkge1xuICAgICAgICAgICAgLy8gQWN0aXZlIHNwYW4gaXMgYWxyZWFkeSBzZXQsIHRvbyBsYXRlIHRvIHByb3BhZ2F0ZS5cbiAgICAgICAgICAgIHJldHVybiBmbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlbW90ZUNvbnRleHQgPSBwcm9wYWdhdGlvbi5leHRyYWN0KGFjdGl2ZUNvbnRleHQsIGNhcnJpZXIsIGdldHRlcik7XG4gICAgICAgIHJldHVybiBjb250ZXh0LndpdGgocmVtb3RlQ29udGV4dCwgZm4pO1xuICAgIH1cbiAgICB0cmFjZSguLi5hcmdzKSB7XG4gICAgICAgIHZhciBfdHJhY2VfZ2V0U3BhbkNvbnRleHQ7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBmbk9yT3B0aW9ucywgZm5PckVtcHR5XSA9IGFyZ3M7XG4gICAgICAgIC8vIGNvZXJjZSBvcHRpb25zIGZvcm0gb3ZlcmxvYWRcbiAgICAgICAgY29uc3QgeyBmbiwgb3B0aW9ucyB9ID0gdHlwZW9mIGZuT3JPcHRpb25zID09PSAnZnVuY3Rpb24nID8ge1xuICAgICAgICAgICAgZm46IGZuT3JPcHRpb25zLFxuICAgICAgICAgICAgb3B0aW9uczoge31cbiAgICAgICAgfSA6IHtcbiAgICAgICAgICAgIGZuOiBmbk9yRW1wdHksXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgLi4uZm5Pck9wdGlvbnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc3Bhbk5hbWUgPSBvcHRpb25zLnNwYW5OYW1lID8/IHR5cGU7XG4gICAgICAgIGlmICghX2NvbnN0YW50cy5OZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QuaW5jbHVkZXModHlwZSkgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1ZFUkJPU0UgIT09ICcxJyB8fCBvcHRpb25zLmhpZGVTcGFuKSB7XG4gICAgICAgICAgICByZXR1cm4gZm4oKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUcnlpbmcgdG8gZ2V0IGFjdGl2ZSBzY29wZWQgc3BhbiB0byBhc3NpZ24gcGFyZW50LiBJZiBvcHRpb24gc3BlY2lmaWVzIHBhcmVudCBzcGFuIG1hbnVhbGx5LCB3aWxsIHRyeSB0byB1c2UgaXQuXG4gICAgICAgIGxldCBzcGFuQ29udGV4dCA9IHRoaXMuZ2V0U3BhbkNvbnRleHQoKG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyZW50U3BhbikgPz8gdGhpcy5nZXRBY3RpdmVTY29wZVNwYW4oKSk7XG4gICAgICAgIGxldCBpc1Jvb3RTcGFuID0gZmFsc2U7XG4gICAgICAgIGlmICghc3BhbkNvbnRleHQpIHtcbiAgICAgICAgICAgIHNwYW5Db250ZXh0ID0gKGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQuYWN0aXZlKCkpID8/IFJPT1RfQ09OVEVYVDtcbiAgICAgICAgICAgIGlzUm9vdFNwYW4gPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKChfdHJhY2VfZ2V0U3BhbkNvbnRleHQgPSB0cmFjZS5nZXRTcGFuQ29udGV4dChzcGFuQ29udGV4dCkpID09IG51bGwgPyB2b2lkIDAgOiBfdHJhY2VfZ2V0U3BhbkNvbnRleHQuaXNSZW1vdGUpIHtcbiAgICAgICAgICAgIGlzUm9vdFNwYW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGdldFNwYW5JZCgpO1xuICAgICAgICBvcHRpb25zLmF0dHJpYnV0ZXMgPSB7XG4gICAgICAgICAgICAnbmV4dC5zcGFuX25hbWUnOiBzcGFuTmFtZSxcbiAgICAgICAgICAgICduZXh0LnNwYW5fdHlwZSc6IHR5cGUsXG4gICAgICAgICAgICAuLi5vcHRpb25zLmF0dHJpYnV0ZXNcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQud2l0aChzcGFuQ29udGV4dC5zZXRWYWx1ZShyb290U3BhbklkS2V5LCBzcGFuSWQpLCAoKT0+dGhpcy5nZXRUcmFjZXJJbnN0YW5jZSgpLnN0YXJ0QWN0aXZlU3BhbihzcGFuTmFtZSwgb3B0aW9ucywgKHNwYW4pPT57XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzICYmICdtZWFzdXJlJyBpbiBwZXJmb3JtYW5jZSA/IGdsb2JhbFRoaXMucGVyZm9ybWFuY2Uubm93KCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgb25DbGVhbnVwID0gKCk9PntcbiAgICAgICAgICAgICAgICAgICAgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZGVsZXRlKHNwYW5JZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydFRpbWUgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWCAmJiBfY29uc3RhbnRzLkxvZ1NwYW5BbGxvd0xpc3QuaW5jbHVkZXModHlwZSB8fCAnJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoYCR7cHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWH06bmV4dC0keyh0eXBlLnNwbGl0KCcuJykucG9wKCkgfHwgJycpLnJlcGxhY2UoL1tBLVpdL2csIChtYXRjaCk9PictJyArIG1hdGNoLnRvTG93ZXJDYXNlKCkpfWAsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogcGVyZm9ybWFuY2Uubm93KClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoaXNSb290U3Bhbikge1xuICAgICAgICAgICAgICAgICAgICByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5zZXQoc3BhbklkLCBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuYXR0cmlidXRlcyA/PyB7fSkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmbihzcGFuLCAoZXJyKT0+Y2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKHNwYW4pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoKDAsIF9pc3RoZW5hYmxlLmlzVGhlbmFibGUpKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlJ3MgZXJyb3IgbWFrZSBzdXJlIGl0IHRocm93c1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChyZXMpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOZWVkIHRvIHBhc3MgZG93biB0aGUgcHJvbWlzZSByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQgY291bGQgYmUgcmVhY3Qgc3RyZWFtIHJlc3BvbnNlIHdpdGggZXJyb3IgeyBlcnJvciwgc3RyZWFtIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5maW5hbGx5KG9uQ2xlYW51cCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycik7XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xlYW51cCgpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cbiAgICB3cmFwKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgdHJhY2VyID0gdGhpcztcbiAgICAgICAgY29uc3QgW25hbWUsIG9wdGlvbnMsIGZuXSA9IGFyZ3MubGVuZ3RoID09PSAzID8gYXJncyA6IFtcbiAgICAgICAgICAgIGFyZ3NbMF0sXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIGFyZ3NbMV1cbiAgICAgICAgXTtcbiAgICAgICAgaWYgKCFfY29uc3RhbnRzLk5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyhuYW1lKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gJzEnKSB7XG4gICAgICAgICAgICByZXR1cm4gZm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0IG9wdGlvbnNPYmogPSBvcHRpb25zO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT2JqID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnNPYmogPSBvcHRpb25zT2JqLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsYXN0QXJnSWQgPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGNvbnN0IGNiID0gYXJndW1lbnRzW2xhc3RBcmdJZF07XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNiID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NvcGVCb3VuZENiID0gdHJhY2VyLmdldENvbnRleHQoKS5iaW5kKGNvbnRleHQuYWN0aXZlKCksIGNiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhY2VyLnRyYWNlKG5hbWUsIG9wdGlvbnNPYmosIChfc3BhbiwgZG9uZSk9PntcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzW2xhc3RBcmdJZF0gPSBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgPT0gbnVsbCA/IHZvaWQgMCA6IGRvbmUoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzY29wZUJvdW5kQ2IuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFjZXIudHJhY2UobmFtZSwgb3B0aW9uc09iaiwgKCk9PmZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbiAgICBzdGFydFNwYW4oLi4uYXJncykge1xuICAgICAgICBjb25zdCBbdHlwZSwgb3B0aW9uc10gPSBhcmdzO1xuICAgICAgICBjb25zdCBzcGFuQ29udGV4dCA9IHRoaXMuZ2V0U3BhbkNvbnRleHQoKG9wdGlvbnMgPT0gbnVsbCA/IHZvaWQgMCA6IG9wdGlvbnMucGFyZW50U3BhbikgPz8gdGhpcy5nZXRBY3RpdmVTY29wZVNwYW4oKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNlckluc3RhbmNlKCkuc3RhcnRTcGFuKHR5cGUsIG9wdGlvbnMsIHNwYW5Db250ZXh0KTtcbiAgICB9XG4gICAgZ2V0U3BhbkNvbnRleHQocGFyZW50U3Bhbikge1xuICAgICAgICBjb25zdCBzcGFuQ29udGV4dCA9IHBhcmVudFNwYW4gPyB0cmFjZS5zZXRTcGFuKGNvbnRleHQuYWN0aXZlKCksIHBhcmVudFNwYW4pIDogdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gc3BhbkNvbnRleHQ7XG4gICAgfVxuICAgIGdldFJvb3RTcGFuQXR0cmlidXRlcygpIHtcbiAgICAgICAgY29uc3Qgc3BhbklkID0gY29udGV4dC5hY3RpdmUoKS5nZXRWYWx1ZShyb290U3BhbklkS2V5KTtcbiAgICAgICAgcmV0dXJuIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLmdldChzcGFuSWQpO1xuICAgIH1cbiAgICBzZXRSb290U3BhbkF0dHJpYnV0ZShrZXksIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGNvbnRleHQuYWN0aXZlKCkuZ2V0VmFsdWUocm9vdFNwYW5JZEtleSk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5nZXQoc3BhbklkKTtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgZ2V0VHJhY2VyID0gKCgpPT57XG4gICAgY29uc3QgdHJhY2VyID0gbmV3IE5leHRUcmFjZXJJbXBsKCk7XG4gICAgcmV0dXJuICgpPT50cmFjZXI7XG59KSgpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFjZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/lib/trace/utils.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/trace/utils.js ***!
|
||
\**********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getTracedMetadata\", ({\n enumerable: true,\n get: function() {\n return getTracedMetadata;\n }\n}));\nfunction getTracedMetadata(traceData, clientTraceMetadata) {\n if (!clientTraceMetadata) return undefined;\n return traceData.filter(({ key })=>clientTraceMetadata.includes(key));\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHFEQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQSwrQkFBK0IsS0FBSztBQUNwQzs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3RyYWNlL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZ2V0VHJhY2VkTWV0YWRhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFRyYWNlZE1ldGFkYXRhO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gZ2V0VHJhY2VkTWV0YWRhdGEodHJhY2VEYXRhLCBjbGllbnRUcmFjZU1ldGFkYXRhKSB7XG4gICAgaWYgKCFjbGllbnRUcmFjZU1ldGFkYXRhKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0cmFjZURhdGEuZmlsdGVyKCh7IGtleSB9KT0+Y2xpZW50VHJhY2VNZXRhZGF0YS5pbmNsdWRlcyhrZXkpKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/lib/trace/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/pipe-readable.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/pipe-readable.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 isAbortError: function() {\n return isAbortError;\n },\n pipeToNodeResponse: function() {\n return pipeToNodeResponse;\n }\n});\nconst _nextrequest = __webpack_require__(/*! ./web/spec-extension/adapters/next-request */ \"(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\");\nconst _detachedpromise = __webpack_require__(/*! ../lib/detached-promise */ \"(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _tracer = __webpack_require__(/*! ./lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ./lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _clientcomponentrendererlogger = __webpack_require__(/*! ./client-component-renderer-logger */ \"(pages-dir-node)/./node_modules/next/dist/server/client-component-renderer-logger.js\");\nfunction isAbortError(e) {\n return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === _nextrequest.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 _detachedpromise.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 _detachedpromise.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 if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) {\n const metrics = (0, _clientcomponentrendererlogger.getClientComponentLoaderMetrics)();\n if (metrics) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, {\n start: metrics.clientComponentLoadStart,\n end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes\n });\n }\n }\n res.flushHeaders();\n (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.startResponse, {\n spanName: 'start response'\n }, ()=>undefined);\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 _detachedpromise.DetachedPromise();\n }\n } catch (err) {\n res.end();\n throw Object.defineProperty(new Error('failed to write chunk to response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E321\",\n enumerable: false,\n configurable: true\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, _nextrequest.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 Object.defineProperty(new Error('failed to pipe response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E180\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=pipe-readable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3BpcGUtcmVhZGFibGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscUJBQXFCLG1CQUFPLENBQUMsZ0pBQTRDO0FBQ3pFLHlCQUF5QixtQkFBTyxDQUFDLGtHQUF5QjtBQUMxRCxnQkFBZ0IsbUJBQU8sQ0FBQyxnR0FBb0I7QUFDNUMsbUJBQW1CLG1CQUFPLENBQUMsc0dBQXVCO0FBQ2xELHVDQUF1QyxtQkFBTyxDQUFDLGdJQUFvQztBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyx5Q0FBeUM7QUFDeEY7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQkFBcUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9waXBlLXJlYWRhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaXNBYm9ydEVycm9yOiBudWxsLFxuICAgIHBpcGVUb05vZGVSZXNwb25zZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc0Fib3J0RXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNBYm9ydEVycm9yO1xuICAgIH0sXG4gICAgcGlwZVRvTm9kZVJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBpcGVUb05vZGVSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9uZXh0cmVxdWVzdCA9IHJlcXVpcmUoXCIuL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9uZXh0LXJlcXVlc3RcIik7XG5jb25zdCBfZGV0YWNoZWRwcm9taXNlID0gcmVxdWlyZShcIi4uL2xpYi9kZXRhY2hlZC1wcm9taXNlXCIpO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuL2xpYi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4vbGliL3RyYWNlL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9jbGllbnRjb21wb25lbnRyZW5kZXJlcmxvZ2dlciA9IHJlcXVpcmUoXCIuL2NsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyXCIpO1xuZnVuY3Rpb24gaXNBYm9ydEVycm9yKGUpIHtcbiAgICByZXR1cm4gKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUubmFtZSkgPT09ICdBYm9ydEVycm9yJyB8fCAoZSA9PSBudWxsID8gdm9pZCAwIDogZS5uYW1lKSA9PT0gX25leHRyZXF1ZXN0LlJlc3BvbnNlQWJvcnRlZE5hbWU7XG59XG5mdW5jdGlvbiBjcmVhdGVXcml0ZXJGcm9tUmVzcG9uc2UocmVzLCB3YWl0VW50aWxGb3JFbmQpIHtcbiAgICBsZXQgc3RhcnRlZCA9IGZhbHNlO1xuICAgIC8vIENyZWF0ZSBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgb25jZSB0aGUgcmVzcG9uc2UgaGFzIGRyYWluZWQuIFNlZVxuICAgIC8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvc3RyZWFtLmh0bWwjc3RyZWFtX2V2ZW50X2RyYWluXG4gICAgbGV0IGRyYWluZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICBmdW5jdGlvbiBvbkRyYWluKCkge1xuICAgICAgICBkcmFpbmVkLnJlc29sdmUoKTtcbiAgICB9XG4gICAgcmVzLm9uKCdkcmFpbicsIG9uRHJhaW4pO1xuICAgIC8vIElmIHRoZSBmaW5pc2ggZXZlbnQgZmlyZXMsIGl0IG1lYW5zIHdlIHNob3VsZG4ndCBibG9jayBhbmQgd2FpdCBmb3IgdGhlXG4gICAgLy8gZHJhaW4gZXZlbnQuXG4gICAgcmVzLm9uY2UoJ2Nsb3NlJywgKCk9PntcbiAgICAgICAgcmVzLm9mZignZHJhaW4nLCBvbkRyYWluKTtcbiAgICAgICAgZHJhaW5lZC5yZXNvbHZlKCk7XG4gICAgfSk7XG4gICAgLy8gQ3JlYXRlIGEgcHJvbWlzZSB0aGF0IHdpbGwgcmVzb2x2ZSBvbmNlIHRoZSByZXNwb25zZSBoYXMgZmluaXNoZWQuIFNlZVxuICAgIC8vIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvaHR0cC5odG1sI2V2ZW50LWZpbmlzaF8xXG4gICAgY29uc3QgZmluaXNoZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICByZXMub25jZSgnZmluaXNoJywgKCk9PntcbiAgICAgICAgZmluaXNoZWQucmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIC8vIENyZWF0ZSBhIHdyaXRhYmxlIHN0cmVhbSB0aGF0IHdpbGwgd3JpdGUgdG8gdGhlIHJlc3BvbnNlLlxuICAgIHJldHVybiBuZXcgV3JpdGFibGVTdHJlYW0oe1xuICAgICAgICB3cml0ZTogYXN5bmMgKGNodW5rKT0+e1xuICAgICAgICAgICAgLy8gWW91J2QgdGhpbmsgd2UnZCB3YW50IHRvIHVzZSBgc3RhcnRgIGluc3RlYWQgb2YgcGxhY2luZyB0aGlzIGluIGB3cml0ZWBcbiAgICAgICAgICAgIC8vIGJ1dCB0aGlzIGVuc3VyZXMgdGhhdCB3ZSBkb24ndCBhY3R1YWxseSBmbHVzaCB0aGUgaGVhZGVycyB1bnRpbCB3ZSd2ZVxuICAgICAgICAgICAgLy8gc3RhcnRlZCB3cml0aW5nIGNodW5rcy5cbiAgICAgICAgICAgIGlmICghc3RhcnRlZCkge1xuICAgICAgICAgICAgICAgIHN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICgncGVyZm9ybWFuY2UnIGluIGdsb2JhbFRoaXMgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXRyaWNzID0gKDAsIF9jbGllbnRjb21wb25lbnRyZW5kZXJlcmxvZ2dlci5nZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzKSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobWV0cmljcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZShgJHtwcm9jZXNzLmVudi5ORVhUX09URUxfUEVSRk9STUFOQ0VfUFJFRklYfTpuZXh0LWNsaWVudC1jb21wb25lbnQtbG9hZGluZ2AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogbWV0cmljcy5jbGllbnRDb21wb25lbnRMb2FkU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBtZXRyaWNzLmNsaWVudENvbXBvbmVudExvYWRTdGFydCArIG1ldHJpY3MuY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXMuZmx1c2hIZWFkZXJzKCk7XG4gICAgICAgICAgICAgICAgKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMuTmV4dE5vZGVTZXJ2ZXJTcGFuLnN0YXJ0UmVzcG9uc2UsIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbk5hbWU6ICdzdGFydCByZXNwb25zZSdcbiAgICAgICAgICAgICAgICB9LCAoKT0+dW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2sgPSByZXMud3JpdGUoY2h1bmspO1xuICAgICAgICAgICAgICAgIC8vIEFkZGVkIGJ5IHRoZSBgY29tcHJlc3Npb25gIG1pZGRsZXdhcmUsIHRoaXMgaXMgYSBmdW5jdGlvbiB0aGF0IHdpbGxcbiAgICAgICAgICAgICAgICAvLyBmbHVzaCB0aGUgcGFydGlhbGx5LWNvbXByZXNzZWQgcmVzcG9uc2UgdG8gdGhlIGNsaWVudC5cbiAgICAgICAgICAgICAgICBpZiAoJ2ZsdXNoJyBpbiByZXMgJiYgdHlwZW9mIHJlcy5mbHVzaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICByZXMuZmx1c2goKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHdyaXRlIHJldHVybnMgZmFsc2UsIGl0IG1lYW5zIHRoZXJlJ3Mgc29tZSBiYWNrcHJlc3N1cmUsIHNvXG4gICAgICAgICAgICAgICAgLy8gd2FpdCB1bnRpbCBpdCdzIHN0cmVhbWVkIGJlZm9yZSBjb250aW51aW5nLlxuICAgICAgICAgICAgICAgIGlmICghb2spIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZHJhaW5lZC5wcm9taXNlO1xuICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgZHJhaW5lZCBwcm9taXNlIHNvIHRoYXQgd2UgY2FuIHdhaXQgZm9yIHRoZSBuZXh0IGRyYWluIGV2ZW50LlxuICAgICAgICAgICAgICAgICAgICBkcmFpbmVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ2ZhaWxlZCB0byB3cml0ZSBjaHVuayB0byByZXNwb25zZScsIHtcbiAgICAgICAgICAgICAgICAgICAgY2F1c2U6IGVyclxuICAgICAgICAgICAgICAgIH0pLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTMyMVwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGFib3J0OiAoZXJyKT0+e1xuICAgICAgICAgICAgaWYgKHJlcy53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICByZXMuZGVzdHJveShlcnIpO1xuICAgICAgICB9LFxuICAgICAgICBjbG9zZTogYXN5bmMgKCk9PntcbiAgICAgICAgICAgIC8vIGlmIGEgd2FpdFVudGlsIHByb21pc2Ugd2FzIHBhc3NlZCwgd2FpdCBmb3IgaXQgdG8gcmVzb2x2ZSBiZWZvcmVcbiAgICAgICAgICAgIC8vIGVuZGluZyB0aGUgcmVzcG9uc2UuXG4gICAgICAgICAgICBpZiAod2FpdFVudGlsRm9yRW5kKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgd2FpdFVudGlsRm9yRW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJlcy53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgICAgICByZXMuZW5kKCk7XG4gICAgICAgICAgICByZXR1cm4gZmluaXNoZWQucHJvbWlzZTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gcGlwZVRvTm9kZVJlc3BvbnNlKHJlYWRhYmxlLCByZXMsIHdhaXRVbnRpbEZvckVuZCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBoYXMgYWxyZWFkeSBlcnJvcmVkLCB0aGVuIGp1c3QgcmV0dXJuIG5vdy5cbiAgICAgICAgY29uc3QgeyBlcnJvcmVkLCBkZXN0cm95ZWQgfSA9IHJlcztcbiAgICAgICAgaWYgKGVycm9yZWQgfHwgZGVzdHJveWVkKSByZXR1cm47XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBBYm9ydENvbnRyb2xsZXIgc28gdGhhdCB3ZSBjYW4gYWJvcnQgdGhlIHJlYWRhYmxlIGlmIHRoZVxuICAgICAgICAvLyBjbGllbnQgZGlzY29ubmVjdHMuXG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSAoMCwgX25leHRyZXF1ZXN0LmNyZWF0ZUFib3J0Q29udHJvbGxlcikocmVzKTtcbiAgICAgICAgY29uc3Qgd3JpdGVyID0gY3JlYXRlV3JpdGVyRnJvbVJlc3BvbnNlKHJlcywgd2FpdFVudGlsRm9yRW5kKTtcbiAgICAgICAgYXdhaXQgcmVhZGFibGUucGlwZVRvKHdyaXRlciwge1xuICAgICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbFxuICAgICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gSWYgdGhpcyBpc24ndCByZWxhdGVkIHRvIGFuIGFib3J0IGVycm9yLCByZS10aHJvdyBpdC5cbiAgICAgICAgaWYgKGlzQWJvcnRFcnJvcihlcnIpKSByZXR1cm47XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ2ZhaWxlZCB0byBwaXBlIHJlc3BvbnNlJywge1xuICAgICAgICAgICAgY2F1c2U6IGVyclxuICAgICAgICB9KSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFMTgwXCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBpcGUtcmVhZGFibGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/pipe-readable.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/render-result.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/render-result.js ***!
|
||
\********************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderResult;\n }\n}));\nconst _nodewebstreamshelper = __webpack_require__(/*! ./stream-utils/node-web-streams-helper */ \"(pages-dir-node)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\");\nconst _pipereadable = __webpack_require__(/*! ./pipe-readable */ \"(pages-dir-node)/./node_modules/next/dist/server/pipe-readable.js\");\nconst _invarianterror = __webpack_require__(/*! ../shared/lib/invariant-error */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nclass RenderResult {\n static #_ = /**\n * A render result that represents an empty response. This is used to\n * represent a response that was not found or was already sent.\n */ this.EMPTY = new RenderResult(null, {\n metadata: {},\n contentType: null\n });\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @param contentType the content type of the response\n * @returns a new RenderResult instance\n */ static fromStatic(value, contentType) {\n return new RenderResult(value, {\n metadata: {},\n contentType\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 // If the response is null, return an empty string. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return '';\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new _invarianterror.InvariantError('dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E732\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToString)(this.readable);\n }\n return this.response;\n }\n /**\n * Returns a readable stream of the response.\n */ get readable() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n if (typeof this.response === 'string') {\n return (0, _nodewebstreamshelper.streamFromString)(this.response);\n }\n if (Buffer.isBuffer(this.response)) {\n return (0, _nodewebstreamshelper.streamFromBuffer)(this.response);\n }\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return (0, _nodewebstreamshelper.chainStreams)(...this.response);\n }\n return this.response;\n }\n /**\n * Coerces the response to an array of streams. This will convert the response\n * to an array of streams if it is not already one.\n *\n * @returns An array of streams\n */ coerce() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return [];\n }\n if (typeof this.response === 'string') {\n return [\n (0, _nodewebstreamshelper.streamFromString)(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n return this.response;\n } else if (Buffer.isBuffer(this.response)) {\n return [\n (0, _nodewebstreamshelper.streamFromBuffer)(this.response)\n ];\n } else {\n return [\n this.response\n ];\n }\n }\n /**\n * Unshifts 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 start of the array. When this response is piped, all of the streams\n * will be piped one after the other.\n *\n * @param readable The new stream to unshift\n */ unshift(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the start of the array.\n this.response.unshift(readable);\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 */ push(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the end of the array.\n this.response.push(readable);\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, _pipereadable.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, _pipereadable.pipeToNodeResponse)(this.readable, res, this.waitUntil);\n }\n}\n\n//# sourceMappingURL=render-result.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlbmRlci1yZXN1bHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiw4QkFBOEIsbUJBQU8sQ0FBQyx3SUFBd0M7QUFDOUUsc0JBQXNCLG1CQUFPLENBQUMsMEZBQWlCO0FBQy9DLHdCQUF3QixtQkFBTyxDQUFDLDhHQUErQjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQSxTQUFTO0FBQ1Q7QUFDQSw0QkFBNEIsa0NBQWtDO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZW5kZXItcmVzdWx0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVuZGVyUmVzdWx0O1xuICAgIH1cbn0pO1xuY29uc3QgX25vZGV3ZWJzdHJlYW1zaGVscGVyID0gcmVxdWlyZShcIi4vc3RyZWFtLXV0aWxzL25vZGUtd2ViLXN0cmVhbXMtaGVscGVyXCIpO1xuY29uc3QgX3BpcGVyZWFkYWJsZSA9IHJlcXVpcmUoXCIuL3BpcGUtcmVhZGFibGVcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5jbGFzcyBSZW5kZXJSZXN1bHQge1xuICAgIHN0YXRpYyAjXyA9IC8qKlxuICAgKiBBIHJlbmRlciByZXN1bHQgdGhhdCByZXByZXNlbnRzIGFuIGVtcHR5IHJlc3BvbnNlLiBUaGlzIGlzIHVzZWQgdG9cbiAgICogcmVwcmVzZW50IGEgcmVzcG9uc2UgdGhhdCB3YXMgbm90IGZvdW5kIG9yIHdhcyBhbHJlYWR5IHNlbnQuXG4gICAqLyB0aGlzLkVNUFRZID0gbmV3IFJlbmRlclJlc3VsdChudWxsLCB7XG4gICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgY29udGVudFR5cGU6IG51bGxcbiAgICB9KTtcbiAgICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSZW5kZXJSZXN1bHQgaW5zdGFuY2UgZnJvbSBhIHN0YXRpYyByZXNwb25zZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBzdGF0aWMgcmVzcG9uc2UgdmFsdWVcbiAgICogQHBhcmFtIGNvbnRlbnRUeXBlIHRoZSBjb250ZW50IHR5cGUgb2YgdGhlIHJlc3BvbnNlXG4gICAqIEByZXR1cm5zIGEgbmV3IFJlbmRlclJlc3VsdCBpbnN0YW5jZVxuICAgKi8gc3RhdGljIGZyb21TdGF0aWModmFsdWUsIGNvbnRlbnRUeXBlKSB7XG4gICAgICAgIHJldHVybiBuZXcgUmVuZGVyUmVzdWx0KHZhbHVlLCB7XG4gICAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgICAgICBjb250ZW50VHlwZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IocmVzcG9uc2UsIHsgY29udGVudFR5cGUsIHdhaXRVbnRpbCwgbWV0YWRhdGEgfSl7XG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlO1xuICAgICAgICB0aGlzLm1ldGFkYXRhID0gbWV0YWRhdGE7XG4gICAgICAgIHRoaXMud2FpdFVudGlsID0gd2FpdFVudGlsO1xuICAgIH1cbiAgICBhc3NpZ25NZXRhZGF0YShtZXRhZGF0YSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMubWV0YWRhdGEsIG1ldGFkYXRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVzcG9uc2UgaXMgbnVsbC4gSXQgY2FuIGJlIG51bGwgaWYgdGhlIHJlc3BvbnNlIHdhc1xuICAgKiBub3QgZm91bmQgb3Igd2FzIGFscmVhZHkgc2VudC5cbiAgICovIGdldCBpc051bGwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlID09PSBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyBmYWxzZSBpZiB0aGUgcmVzcG9uc2UgaXMgYSBzdHJpbmcuIEl0IGNhbiBiZSBhIHN0cmluZyBpZiB0aGUgcGFnZVxuICAgKiB3YXMgcHJlcmVuZGVyZWQuIElmIGl0J3Mgbm90LCB0aGVuIGl0IHdhcyBnZW5lcmF0ZWQgZHluYW1pY2FsbHkuXG4gICAqLyBnZXQgaXNEeW5hbWljKCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMucmVzcG9uc2UgIT09ICdzdHJpbmcnO1xuICAgIH1cbiAgICB0b1VuY2h1bmtlZFN0cmluZyhzdHJlYW0gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIG51bGwsIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuIFRoaXMgYmVoYXZpb3IgaXNcbiAgICAgICAgICAgIC8vIGludGVudGlvbmFsIGFzIHdlJ3JlIG5vdyBwcm92aWRpbmcgdGhlIGBSZW5kZXJSZXN1bHQuRU1QVFlgIHZhbHVlLlxuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICghc3RyZWFtKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2R5bmFtaWMgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTczMlwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Ub1N0cmluZykodGhpcy5yZWFkYWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuICAgIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVhZGFibGUgc3RyZWFtIG9mIHRoZSByZXNwb25zZS5cbiAgICovIGdldCByZWFkYWJsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBudWxsLCByZXR1cm4gYW4gZW1wdHkgc3RyZWFtLiBUaGlzIGJlaGF2aW9yIGlzXG4gICAgICAgICAgICAvLyBpbnRlbnRpb25hbCBhcyB3ZSdyZSBub3cgcHJvdmlkaW5nIHRoZSBgUmVuZGVyUmVzdWx0LkVNUFRZYCB2YWx1ZS5cbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICAgICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzcG9uc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tU3RyaW5nKSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHRoaXMucmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgYW4gYXJyYXkgb2Ygc3RyZWFtcywgdGhlbiBjaGFpbiB0aGVtIHRvZ2V0aGVyLlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuY2hhaW5TdHJlYW1zKSguLi50aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENvZXJjZXMgdGhlIHJlc3BvbnNlIHRvIGFuIGFycmF5IG9mIHN0cmVhbXMuIFRoaXMgd2lsbCBjb252ZXJ0IHRoZSByZXNwb25zZVxuICAgKiB0byBhbiBhcnJheSBvZiBzdHJlYW1zIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG9uZS5cbiAgICpcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2Ygc3RyZWFtc1xuICAgKi8gY29lcmNlKCkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIG51bGwsIHJldHVybiBhbiBlbXB0eSBzdHJlYW0uIFRoaXMgYmVoYXZpb3IgaXNcbiAgICAgICAgICAgIC8vIGludGVudGlvbmFsIGFzIHdlJ3JlIG5vdyBwcm92aWRpbmcgdGhlIGBSZW5kZXJSZXN1bHQuRU1QVFlgIHZhbHVlLlxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tU3RyaW5nKSh0aGlzLnJlc3BvbnNlKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMucmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICAgICAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKSh0aGlzLnJlc3BvbnNlKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogVW5zaGlmdHMgYSBuZXcgc3RyZWFtIHRvIHRoZSByZXNwb25zZS4gVGhpcyB3aWxsIGNvbnZlcnQgdGhlIHJlc3BvbnNlIHRvIGFuXG4gICAqIGFycmF5IG9mIHN0cmVhbXMgaWYgaXQgaXMgbm90IGFscmVhZHkgb25lIGFuZCB3aWxsIGFkZCB0aGUgbmV3IHN0cmVhbSB0b1xuICAgKiB0aGUgc3RhcnQgb2YgdGhlIGFycmF5LiBXaGVuIHRoaXMgcmVzcG9uc2UgaXMgcGlwZWQsIGFsbCBvZiB0aGUgc3RyZWFtc1xuICAgKiB3aWxsIGJlIHBpcGVkIG9uZSBhZnRlciB0aGUgb3RoZXIuXG4gICAqXG4gICAqIEBwYXJhbSByZWFkYWJsZSBUaGUgbmV3IHN0cmVhbSB0byB1bnNoaWZ0XG4gICAqLyB1bnNoaWZ0KHJlYWRhYmxlKSB7XG4gICAgICAgIC8vIENvZXJjZSB0aGUgcmVzcG9uc2UgdG8gYW4gYXJyYXkgb2Ygc3RyZWFtcy5cbiAgICAgICAgdGhpcy5yZXNwb25zZSA9IHRoaXMuY29lcmNlKCk7XG4gICAgICAgIC8vIEFkZCB0aGUgbmV3IHN0cmVhbSB0byB0aGUgc3RhcnQgb2YgdGhlIGFycmF5LlxuICAgICAgICB0aGlzLnJlc3BvbnNlLnVuc2hpZnQocmVhZGFibGUpO1xuICAgIH1cbiAgICAvKipcbiAgICogQ2hhaW5zIGEgbmV3IHN0cmVhbSB0byB0aGUgcmVzcG9uc2UuIFRoaXMgd2lsbCBjb252ZXJ0IHRoZSByZXNwb25zZSB0byBhblxuICAgKiBhcnJheSBvZiBzdHJlYW1zIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG9uZSBhbmQgd2lsbCBhZGQgdGhlIG5ldyBzdHJlYW0gdG9cbiAgICogdGhlIGVuZC4gV2hlbiB0aGlzIHJlc3BvbnNlIGlzIHBpcGVkLCBhbGwgb2YgdGhlIHN0cmVhbXMgd2lsbCBiZSBwaXBlZFxuICAgKiBvbmUgYWZ0ZXIgdGhlIG90aGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcmVhZGFibGUgVGhlIG5ldyBzdHJlYW0gdG8gY2hhaW5cbiAgICovIHB1c2gocmVhZGFibGUpIHtcbiAgICAgICAgLy8gQ29lcmNlIHRoZSByZXNwb25zZSB0byBhbiBhcnJheSBvZiBzdHJlYW1zLlxuICAgICAgICB0aGlzLnJlc3BvbnNlID0gdGhpcy5jb2VyY2UoKTtcbiAgICAgICAgLy8gQWRkIHRoZSBuZXcgc3RyZWFtIHRvIHRoZSBlbmQgb2YgdGhlIGFycmF5LlxuICAgICAgICB0aGlzLnJlc3BvbnNlLnB1c2gocmVhZGFibGUpO1xuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgd3JpdGFibGUgc3RyZWFtLiBUaGlzIHdpbGwgY2xvc2UvY2FuY2VsIHRoZVxuICAgKiB3cml0YWJsZSBzdHJlYW0gaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuIElmIHRoaXMgZG9lc24ndCB0aHJvdywgdGhlblxuICAgKiB0aGUgd3JpdGFibGUgc3RyZWFtIHdpbGwgYmUgY2xvc2VkIG9yIGFib3J0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB3cml0YWJsZSBXcml0YWJsZSBzdHJlYW0gdG8gcGlwZSB0aGUgcmVzcG9uc2UgdG9cbiAgICovIGFzeW5jIHBpcGVUbyh3cml0YWJsZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWFkYWJsZS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIGNsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0gb3Vyc2VsdmVzIHNvIHRoYXQgd2UgY2FuIHdhaXRcbiAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHdhaXRVbnRpbCBwcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGNsb3NpbmcgaXQuIElmIGFuIGVycm9yXG4gICAgICAgICAgICAgICAgLy8gaXMgZW5jb3VudGVyZWQsIHdlJ2xsIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gaWYgd2Ugc3dhbGxvd2VkIHRoZVxuICAgICAgICAgICAgICAgIC8vIGVycm9yLlxuICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHdhaXRVbnRpbCBwcm9taXNlLCB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZVxuICAgICAgICAgICAgLy8gY2xvc2luZyB0aGUgd3JpdGFibGUgc3RyZWFtLlxuICAgICAgICAgICAgaWYgKHRoaXMud2FpdFVudGlsKSBhd2FpdCB0aGlzLndhaXRVbnRpbDtcbiAgICAgICAgICAgIC8vIENsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0uXG4gICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5jbG9zZSgpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYW4gYWJvcnQgZXJyb3IsIHdlIHNob3VsZCBhYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFtIChhcyB3ZVxuICAgICAgICAgICAgLy8gdG9vayBvd25lcnNoaXAgb2YgaXQgd2hlbiB3ZSBzdGFydGVkIHBpcGluZykuIFdlIGRvbid0IG5lZWQgdG8gcmUtdGhyb3dcbiAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgaGFuZGxlZCB0aGUgZXJyb3IuXG4gICAgICAgICAgICBpZiAoKDAsIF9waXBlcmVhZGFibGUuaXNBYm9ydEVycm9yKShlcnIpKSB7XG4gICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5hYm9ydChlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCBhYm9ydGluZyB0aGUgd3JpdGVyIGhlcmUgYXMgd2hlbiB0aGlzIG1ldGhvZCB0aHJvd3MgaXQncyBub3RcbiAgICAgICAgICAgIC8vIGNsZWFyIGFzIHRvIGhvdyBzbyB0aGUgY2FsbGVyIHNob3VsZCBhc3N1bWUgaXQncyB0aGVpciByZXNwb25zaWJpbGl0eVxuICAgICAgICAgICAgLy8gdG8gY2xlYW4gdXAgdGhlIHdyaXRlci5cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgbm9kZSByZXNwb25zZS4gVGhpcyB3aWxsIGNsb3NlL2NhbmNlbCB0aGUgbm9kZVxuICAgKiByZXNwb25zZSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHJlc1xuICAgKi8gYXN5bmMgcGlwZVRvTm9kZVJlc3BvbnNlKHJlcykge1xuICAgICAgICBhd2FpdCAoMCwgX3BpcGVyZWFkYWJsZS5waXBlVG9Ob2RlUmVzcG9uc2UpKHRoaXMucmVhZGFibGUsIHJlcywgdGhpcy53YWl0VW50aWwpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVuZGVyLXJlc3VsdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/render-result.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/request-meta.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/server/request-meta.js ***!
|
||
\*******************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/* eslint-disable no-redeclare */ \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 NEXT_REQUEST_META: function() {\n return NEXT_REQUEST_META;\n },\n addRequestMeta: function() {\n return addRequestMeta;\n },\n getRequestMeta: function() {\n return getRequestMeta;\n },\n removeRequestMeta: function() {\n return removeRequestMeta;\n },\n setRequestMeta: function() {\n return setRequestMeta;\n }\n});\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}\nfunction setRequestMeta(req, meta) {\n req[NEXT_REQUEST_META] = meta;\n return meta;\n}\nfunction addRequestMeta(request, key, value) {\n const meta = getRequestMeta(request);\n meta[key] = value;\n return setRequestMeta(request, meta);\n}\nfunction removeRequestMeta(request, key) {\n const meta = getRequestMeta(request);\n delete meta[key];\n return setRequestMeta(request, meta);\n}\n\n//# sourceMappingURL=request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QtbWV0YS5qcyIsIm1hcHBpbmdzIjoiQUFBQSxrQ0FBK0M7QUFDL0MsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVkZWNsYXJlICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTkVYVF9SRVFVRVNUX01FVEE6IG51bGwsXG4gICAgYWRkUmVxdWVzdE1ldGE6IG51bGwsXG4gICAgZ2V0UmVxdWVzdE1ldGE6IG51bGwsXG4gICAgcmVtb3ZlUmVxdWVzdE1ldGE6IG51bGwsXG4gICAgc2V0UmVxdWVzdE1ldGE6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTkVYVF9SRVFVRVNUX01FVEE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9SRVFVRVNUX01FVEE7XG4gICAgfSxcbiAgICBhZGRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBhZGRSZXF1ZXN0TWV0YTtcbiAgICB9LFxuICAgIGdldFJlcXVlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFJlcXVlc3RNZXRhO1xuICAgIH0sXG4gICAgcmVtb3ZlUmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVtb3ZlUmVxdWVzdE1ldGE7XG4gICAgfSxcbiAgICBzZXRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRSZXF1ZXN0TWV0YTtcbiAgICB9XG59KTtcbmNvbnN0IE5FWFRfUkVRVUVTVF9NRVRBID0gU3ltYm9sLmZvcignTmV4dEludGVybmFsUmVxdWVzdE1ldGEnKTtcbmZ1bmN0aW9uIGdldFJlcXVlc3RNZXRhKHJlcSwga2V5KSB7XG4gICAgY29uc3QgbWV0YSA9IHJlcVtORVhUX1JFUVVFU1RfTUVUQV0gfHwge307XG4gICAgcmV0dXJuIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnID8gbWV0YVtrZXldIDogbWV0YTtcbn1cbmZ1bmN0aW9uIHNldFJlcXVlc3RNZXRhKHJlcSwgbWV0YSkge1xuICAgIHJlcVtORVhUX1JFUVVFU1RfTUVUQV0gPSBtZXRhO1xuICAgIHJldHVybiBtZXRhO1xufVxuZnVuY3Rpb24gYWRkUmVxdWVzdE1ldGEocmVxdWVzdCwga2V5LCB2YWx1ZSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRSZXF1ZXN0TWV0YShyZXF1ZXN0KTtcbiAgICBtZXRhW2tleV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGEocmVxdWVzdCwgbWV0YSk7XG59XG5mdW5jdGlvbiByZW1vdmVSZXF1ZXN0TWV0YShyZXF1ZXN0LCBrZXkpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0UmVxdWVzdE1ldGEocmVxdWVzdCk7XG4gICAgZGVsZXRlIG1ldGFba2V5XTtcbiAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGEocmVxdWVzdCwgbWV0YSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QtbWV0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/response-cache/index.js ***!
|
||
\***************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return ResponseCache;\n }\n}));\n0 && 0;\nconst _batcher = __webpack_require__(/*! ../../lib/batcher */ \"(pages-dir-node)/./node_modules/next/dist/lib/batcher.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\");\n_export_star(__webpack_require__(/*! ./types */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\nclass ResponseCache {\n constructor(minimal_mode){\n this.batcher = _batcher.Batcher.create({\n // Ensure on-demand revalidate doesn't block normal requests, it should be\n // safe to run an on-demand revalidate for the same key as a normal request.\n cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`,\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: _scheduler.scheduleOnNextTick\n });\n this.minimal_mode = minimal_mode;\n }\n async get(key, responseGenerator, context) {\n // If there is no key for the cache, we can't possibly look this up in the\n // cache so just return the result of the response generator.\n if (!key) {\n return responseGenerator({\n hasResolved: false,\n previousCacheEntry: null\n });\n }\n const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false, waitUntil } = context;\n const response = await this.batcher.batch({\n key,\n isOnDemandRevalidate\n }, (cacheKey, resolve)=>{\n const prom = (async ()=>{\n var _this_previousCacheItem;\n // We keep the previous cache entry around to leverage when the\n // incremental cache is disabled in minimal mode.\n if (this.minimal_mode && ((_this_previousCacheItem = this.previousCacheItem) == null ? void 0 : _this_previousCacheItem.key) === cacheKey && this.previousCacheItem.expiresAt > Date.now()) {\n return this.previousCacheItem.entry;\n }\n // Coerce the kindHint into a given kind for the incremental cache.\n const kind = (0, _utils.routeKindToIncrementalCacheKind)(context.routeKind);\n let resolved = false;\n let cachedResponse = null;\n try {\n cachedResponse = !this.minimal_mode ? await incrementalCache.get(key, {\n kind,\n isRoutePPREnabled: context.isRoutePPREnabled,\n isFallback\n }) : null;\n if (cachedResponse && !isOnDemandRevalidate) {\n resolve(cachedResponse);\n resolved = true;\n if (!cachedResponse.isStale || context.isPrefetch) {\n // The cached value is still valid, so we don't need\n // to update it yet.\n return null;\n }\n }\n const cacheEntry = await responseGenerator({\n hasResolved: resolved,\n previousCacheEntry: cachedResponse,\n isRevalidating: true\n });\n // If the cache entry couldn't be generated, we don't want to cache\n // the result.\n if (!cacheEntry) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n const resolveValue = await (0, _utils.fromResponseCacheEntry)({\n ...cacheEntry,\n isMiss: !cachedResponse\n });\n if (!resolveValue) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n // For on-demand revalidate wait to resolve until cache is set.\n // Otherwise resolve now.\n if (!isOnDemandRevalidate && !resolved) {\n resolve(resolveValue);\n resolved = true;\n }\n // We want to persist the result only if it has a cache control value\n // defined.\n if (resolveValue.cacheControl) {\n if (this.minimal_mode) {\n this.previousCacheItem = {\n key: cacheKey,\n entry: resolveValue,\n expiresAt: Date.now() + 1000\n };\n } else {\n await incrementalCache.set(key, resolveValue.value, {\n cacheControl: resolveValue.cacheControl,\n isRoutePPREnabled,\n isFallback\n });\n }\n }\n return resolveValue;\n } catch (err) {\n // When a path is erroring we automatically re-set the existing cache\n // with new revalidate and expire times to prevent non-stop retrying.\n if (cachedResponse == null ? void 0 : cachedResponse.cacheControl) {\n const newRevalidate = Math.min(Math.max(cachedResponse.cacheControl.revalidate || 3, 3), 30);\n const newExpire = cachedResponse.cacheControl.expire === undefined ? undefined : Math.max(newRevalidate + 3, cachedResponse.cacheControl.expire);\n await incrementalCache.set(key, cachedResponse.value, {\n cacheControl: {\n revalidate: newRevalidate,\n expire: newExpire\n },\n isRoutePPREnabled,\n isFallback\n });\n }\n // While revalidating in the background we can't reject as we already\n // resolved the cache entry so log the error here.\n if (resolved) {\n console.error(err);\n return null;\n }\n // We haven't resolved yet, so let's throw to indicate an error.\n throw err;\n }\n })();\n // we need to ensure background revalidates are\n // passed to waitUntil\n if (waitUntil) {\n waitUntil(prom);\n }\n return prom;\n });\n return (0, _utils.toResponseCacheEntry)(response);\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsS0FBSyxDQUE0QjtBQUNqQyxpQkFBaUIsbUJBQU8sQ0FBQyxtRkFBbUI7QUFDNUMsbUJBQW1CLG1CQUFPLENBQUMsdUZBQXFCO0FBQ2hELGVBQWUsbUJBQU8sQ0FBQyx5RkFBUztBQUNoQyxhQUFhLG1CQUFPLENBQUMseUZBQVM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQiwyQkFBMkIsTUFBTSxJQUFJLEdBQUcsaUNBQWlDO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLGdCQUFnQiwyR0FBMkc7QUFDM0g7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzcG9uc2VDYWNoZTtcbiAgICB9XG59KTtcbjAgJiYgX19leHBvcnQocmVxdWlyZShcIi4vdHlwZXNcIikpO1xuY29uc3QgX2JhdGNoZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL2JhdGNoZXJcIik7XG5jb25zdCBfc2NoZWR1bGVyID0gcmVxdWlyZShcIi4uLy4uL2xpYi9zY2hlZHVsZXJcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbl9leHBvcnRfc3RhcihyZXF1aXJlKFwiLi90eXBlc1wiKSwgZXhwb3J0cyk7XG5mdW5jdGlvbiBfZXhwb3J0X3N0YXIoZnJvbSwgdG8pIHtcbiAgICBPYmplY3Qua2V5cyhmcm9tKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHtcbiAgICAgICAgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodG8sIGspKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodG8sIGssIHtcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tW2tdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZyb207XG59XG5jbGFzcyBSZXNwb25zZUNhY2hlIHtcbiAgICBjb25zdHJ1Y3RvcihtaW5pbWFsX21vZGUpe1xuICAgICAgICB0aGlzLmJhdGNoZXIgPSBfYmF0Y2hlci5CYXRjaGVyLmNyZWF0ZSh7XG4gICAgICAgICAgICAvLyBFbnN1cmUgb24tZGVtYW5kIHJldmFsaWRhdGUgZG9lc24ndCBibG9jayBub3JtYWwgcmVxdWVzdHMsIGl0IHNob3VsZCBiZVxuICAgICAgICAgICAgLy8gc2FmZSB0byBydW4gYW4gb24tZGVtYW5kIHJldmFsaWRhdGUgZm9yIHRoZSBzYW1lIGtleSBhcyBhIG5vcm1hbCByZXF1ZXN0LlxuICAgICAgICAgICAgY2FjaGVLZXlGbjogKHsga2V5LCBpc09uRGVtYW5kUmV2YWxpZGF0ZSB9KT0+YCR7a2V5fS0ke2lzT25EZW1hbmRSZXZhbGlkYXRlID8gJzEnIDogJzAnfWAsXG4gICAgICAgICAgICAvLyBXZSB3YWl0IHRvIGRvIGFueSBhc3luYyB3b3JrIHVudGlsIGFmdGVyIHdlJ3ZlIGFkZGVkIG91ciBwcm9taXNlIHRvXG4gICAgICAgICAgICAvLyBgcGVuZGluZ1Jlc3BvbnNlc2AgdG8gZW5zdXJlIHRoYXQgYW55IGFueSBvdGhlciBjYWxscyB3aWxsIHJldXNlIHRoZVxuICAgICAgICAgICAgLy8gc2FtZSBwcm9taXNlIHVudGlsIHdlJ3ZlIGZ1bGx5IGZpbmlzaGVkIG91ciB3b3JrLlxuICAgICAgICAgICAgc2NoZWR1bGVyRm46IF9zY2hlZHVsZXIuc2NoZWR1bGVPbk5leHRUaWNrXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1pbmltYWxfbW9kZSA9IG1pbmltYWxfbW9kZTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0KGtleSwgcmVzcG9uc2VHZW5lcmF0b3IsIGNvbnRleHQpIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8ga2V5IGZvciB0aGUgY2FjaGUsIHdlIGNhbid0IHBvc3NpYmx5IGxvb2sgdGhpcyB1cCBpbiB0aGVcbiAgICAgICAgLy8gY2FjaGUgc28ganVzdCByZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgcmVzcG9uc2UgZ2VuZXJhdG9yLlxuICAgICAgICBpZiAoIWtleSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlR2VuZXJhdG9yKHtcbiAgICAgICAgICAgICAgICBoYXNSZXNvbHZlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNDYWNoZUVudHJ5OiBudWxsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGluY3JlbWVudGFsQ2FjaGUsIGlzT25EZW1hbmRSZXZhbGlkYXRlID0gZmFsc2UsIGlzRmFsbGJhY2sgPSBmYWxzZSwgaXNSb3V0ZVBQUkVuYWJsZWQgPSBmYWxzZSwgd2FpdFVudGlsIH0gPSBjb250ZXh0O1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuYmF0Y2hlci5iYXRjaCh7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZVxuICAgICAgICB9LCAoY2FjaGVLZXksIHJlc29sdmUpPT57XG4gICAgICAgICAgICBjb25zdCBwcm9tID0gKGFzeW5jICgpPT57XG4gICAgICAgICAgICAgICAgdmFyIF90aGlzX3ByZXZpb3VzQ2FjaGVJdGVtO1xuICAgICAgICAgICAgICAgIC8vIFdlIGtlZXAgdGhlIHByZXZpb3VzIGNhY2hlIGVudHJ5IGFyb3VuZCB0byBsZXZlcmFnZSB3aGVuIHRoZVxuICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudGFsIGNhY2hlIGlzIGRpc2FibGVkIGluIG1pbmltYWwgbW9kZS5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsX21vZGUgJiYgKChfdGhpc19wcmV2aW91c0NhY2hlSXRlbSA9IHRoaXMucHJldmlvdXNDYWNoZUl0ZW0pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19wcmV2aW91c0NhY2hlSXRlbS5rZXkpID09PSBjYWNoZUtleSAmJiB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtLmV4cGlyZXNBdCA+IERhdGUubm93KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0uZW50cnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIENvZXJjZSB0aGUga2luZEhpbnQgaW50byBhIGdpdmVuIGtpbmQgZm9yIHRoZSBpbmNyZW1lbnRhbCBjYWNoZS5cbiAgICAgICAgICAgICAgICBjb25zdCBraW5kID0gKDAsIF91dGlscy5yb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kKShjb250ZXh0LnJvdXRlS2luZCk7XG4gICAgICAgICAgICAgICAgbGV0IHJlc29sdmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbGV0IGNhY2hlZFJlc3BvbnNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZWRSZXNwb25zZSA9ICF0aGlzLm1pbmltYWxfbW9kZSA/IGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuZ2V0KGtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkOiBjb250ZXh0LmlzUm91dGVQUFJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICB9KSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNwb25zZSAmJiAhaXNPbkRlbWFuZFJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoY2FjaGVkUmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZWRSZXNwb25zZS5pc1N0YWxlIHx8IGNvbnRleHQuaXNQcmVmZXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBjYWNoZWQgdmFsdWUgaXMgc3RpbGwgdmFsaWQsIHNvIHdlIGRvbid0IG5lZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byB1cGRhdGUgaXQgeWV0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhY2hlRW50cnkgPSBhd2FpdCByZXNwb25zZUdlbmVyYXRvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNSZXNvbHZlZDogcmVzb2x2ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NhY2hlRW50cnk6IGNhY2hlZFJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRpbmc6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjYWNoZSBlbnRyeSBjb3VsZG4ndCBiZSBnZW5lcmF0ZWQsIHdlIGRvbid0IHdhbnQgdG8gY2FjaGVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlc3VsdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYWNoZUVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVbnNldCB0aGUgcHJldmlvdXMgY2FjaGUgaXRlbSBpZiBpdCB3YXMgc2V0LlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbF9tb2RlKSB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzb2x2ZVZhbHVlID0gYXdhaXQgKDAsIF91dGlscy5mcm9tUmVzcG9uc2VDYWNoZUVudHJ5KSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jYWNoZUVudHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNNaXNzOiAhY2FjaGVkUmVzcG9uc2VcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzb2x2ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVbnNldCB0aGUgcHJldmlvdXMgY2FjaGUgaXRlbSBpZiBpdCB3YXMgc2V0LlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbF9tb2RlKSB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRm9yIG9uLWRlbWFuZCByZXZhbGlkYXRlIHdhaXQgdG8gcmVzb2x2ZSB1bnRpbCBjYWNoZSBpcyBzZXQuXG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSByZXNvbHZlIG5vdy5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc09uRGVtYW5kUmV2YWxpZGF0ZSAmJiAhcmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzb2x2ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHBlcnNpc3QgdGhlIHJlc3VsdCBvbmx5IGlmIGl0IGhhcyBhIGNhY2hlIGNvbnRyb2wgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5lZC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdmVWYWx1ZS5jYWNoZUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbmltYWxfbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNDYWNoZUl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2FjaGVLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5OiByZXNvbHZlVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIDEwMDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLnNldChrZXksIHJlc29sdmVWYWx1ZS52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHJlc29sdmVWYWx1ZS5jYWNoZUNvbnRyb2wsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVWYWx1ZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiBhIHBhdGggaXMgZXJyb3Jpbmcgd2UgYXV0b21hdGljYWxseSByZS1zZXQgdGhlIGV4aXN0aW5nIGNhY2hlXG4gICAgICAgICAgICAgICAgICAgIC8vIHdpdGggbmV3IHJldmFsaWRhdGUgYW5kIGV4cGlyZSB0aW1lcyB0byBwcmV2ZW50IG5vbi1zdG9wIHJldHJ5aW5nLlxuICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzcG9uc2UgPT0gbnVsbCA/IHZvaWQgMCA6IGNhY2hlZFJlc3BvbnNlLmNhY2hlQ29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3UmV2YWxpZGF0ZSA9IE1hdGgubWluKE1hdGgubWF4KGNhY2hlZFJlc3BvbnNlLmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlIHx8IDMsIDMpLCAzMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdFeHBpcmUgPSBjYWNoZWRSZXNwb25zZS5jYWNoZUNvbnRyb2wuZXhwaXJlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBNYXRoLm1heChuZXdSZXZhbGlkYXRlICsgMywgY2FjaGVkUmVzcG9uc2UuY2FjaGVDb250cm9sLmV4cGlyZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLnNldChrZXksIGNhY2hlZFJlc3BvbnNlLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IG5ld1JldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogbmV3RXhwaXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBXaGlsZSByZXZhbGlkYXRpbmcgaW4gdGhlIGJhY2tncm91bmQgd2UgY2FuJ3QgcmVqZWN0IGFzIHdlIGFscmVhZHlcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVzb2x2ZWQgdGhlIGNhY2hlIGVudHJ5IHNvIGxvZyB0aGUgZXJyb3IgaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlbid0IHJlc29sdmVkIHlldCwgc28gbGV0J3MgdGhyb3cgdG8gaW5kaWNhdGUgYW4gZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBlbnN1cmUgYmFja2dyb3VuZCByZXZhbGlkYXRlcyBhcmVcbiAgICAgICAgICAgIC8vIHBhc3NlZCB0byB3YWl0VW50aWxcbiAgICAgICAgICAgIGlmICh3YWl0VW50aWwpIHtcbiAgICAgICAgICAgICAgICB3YWl0VW50aWwocHJvbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcHJvbTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoMCwgX3V0aWxzLnRvUmVzcG9uc2VDYWNoZUVudHJ5KShyZXNwb25zZSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/response-cache/types.js ***!
|
||
\***************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 CachedRouteKind: function() {\n return CachedRouteKind;\n },\n IncrementalCacheKind: function() {\n return IncrementalCacheKind;\n }\n});\nvar CachedRouteKind = /*#__PURE__*/ function(CachedRouteKind) {\n CachedRouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n CachedRouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n CachedRouteKind[\"PAGES\"] = \"PAGES\";\n CachedRouteKind[\"FETCH\"] = \"FETCH\";\n CachedRouteKind[\"REDIRECT\"] = \"REDIRECT\";\n CachedRouteKind[\"IMAGE\"] = \"IMAGE\";\n return CachedRouteKind;\n}({});\nvar IncrementalCacheKind = /*#__PURE__*/ function(IncrementalCacheKind) {\n IncrementalCacheKind[\"APP_PAGE\"] = \"APP_PAGE\";\n IncrementalCacheKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n IncrementalCacheKind[\"PAGES\"] = \"PAGES\";\n IncrementalCacheKind[\"FETCH\"] = \"FETCH\";\n IncrementalCacheKind[\"IMAGE\"] = \"IMAGE\";\n return IncrementalCacheKind;\n}({});\n\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3R5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGUvdHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBDYWNoZWRSb3V0ZUtpbmQ6IG51bGwsXG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmQ6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQ2FjaGVkUm91dGVLaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIENhY2hlZFJvdXRlS2luZDtcbiAgICB9LFxuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEluY3JlbWVudGFsQ2FjaGVLaW5kO1xuICAgIH1cbn0pO1xudmFyIENhY2hlZFJvdXRlS2luZCA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQ2FjaGVkUm91dGVLaW5kKSB7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiQVBQX1JPVVRFXCJdID0gXCJBUFBfUk9VVEVcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJGRVRDSFwiXSA9IFwiRkVUQ0hcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJSRURJUkVDVFwiXSA9IFwiUkVESVJFQ1RcIjtcbiAgICBDYWNoZWRSb3V0ZUtpbmRbXCJJTUFHRVwiXSA9IFwiSU1BR0VcIjtcbiAgICByZXR1cm4gQ2FjaGVkUm91dGVLaW5kO1xufSh7fSk7XG52YXIgSW5jcmVtZW50YWxDYWNoZUtpbmQgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEluY3JlbWVudGFsQ2FjaGVLaW5kKSB7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJBUFBfUEFHRVwiXSA9IFwiQVBQX1BBR0VcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIkZFVENIXCJdID0gXCJGRVRDSFwiO1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiSU1BR0VcIl0gPSBcIklNQUdFXCI7XG4gICAgcmV0dXJuIEluY3JlbWVudGFsQ2FjaGVLaW5kO1xufSh7fSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXR5cGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/response-cache/utils.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 fromResponseCacheEntry: function() {\n return fromResponseCacheEntry;\n },\n routeKindToIncrementalCacheKind: function() {\n return routeKindToIncrementalCacheKind;\n },\n toResponseCacheEntry: function() {\n return toResponseCacheEntry;\n }\n});\nconst _types = __webpack_require__(/*! ./types */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/types.js\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../render-result */ \"(pages-dir-node)/./node_modules/next/dist/server/render-result.js\"));\nconst _routekind = __webpack_require__(/*! ../route-kind */ \"(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\");\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nasync function fromResponseCacheEntry(cacheEntry) {\n var _cacheEntry_value, _cacheEntry_value1;\n return {\n ...cacheEntry,\n value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n pageData: cacheEntry.value.pageData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status\n } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n postponed: cacheEntry.value.postponed,\n rscData: cacheEntry.value.rscData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n segmentData: cacheEntry.value.segmentData\n } : cacheEntry.value\n };\n}\nasync function toResponseCacheEntry(response) {\n var _response_value, _response_value1;\n if (!response) return null;\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n cacheControl: response.cacheControl,\n value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status\n } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER),\n rscData: response.value.rscData,\n headers: response.value.headers,\n status: response.value.status,\n postponed: response.value.postponed,\n segmentData: response.value.segmentData\n } : response.value\n };\n}\nfunction routeKindToIncrementalCacheKind(routeKind) {\n switch(routeKind){\n case _routekind.RouteKind.PAGES:\n return _types.IncrementalCacheKind.PAGES;\n case _routekind.RouteKind.APP_PAGE:\n return _types.IncrementalCacheKind.APP_PAGE;\n case _routekind.RouteKind.IMAGE:\n return _types.IncrementalCacheKind.IMAGE;\n case _routekind.RouteKind.APP_ROUTE:\n return _types.IncrementalCacheKind.APP_ROUTE;\n case _routekind.RouteKind.PAGES_API:\n // Pages Router API routes are not cached in the incremental cache.\n throw Object.defineProperty(new Error(`Unexpected route kind ${routeKind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E64\",\n enumerable: false,\n configurable: true\n });\n default:\n return routeKind;\n }\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3V0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZUFBZSxtQkFBTyxDQUFDLHlGQUFTO0FBQ2hDLDZEQUE2RCxtQkFBTyxDQUFDLDJGQUFrQjtBQUN2RixtQkFBbUIsbUJBQU8sQ0FBQyxxRkFBZTtBQUMxQyxtQkFBbUIsbUJBQU8sQ0FBQyx1RkFBcUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFLFVBQVU7QUFDckY7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGZyb21SZXNwb25zZUNhY2hlRW50cnk6IG51bGwsXG4gICAgcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZDogbnVsbCxcbiAgICB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZyb21SZXNwb25zZUNhY2hlRW50cnk7XG4gICAgfSxcbiAgICByb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQ7XG4gICAgfSxcbiAgICB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTtcbiAgICB9XG59KTtcbmNvbnN0IF90eXBlcyA9IHJlcXVpcmUoXCIuL3R5cGVzXCIpO1xuY29uc3QgX3JlbmRlcnJlc3VsdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi9yZW5kZXItcmVzdWx0XCIpKTtcbmNvbnN0IF9yb3V0ZWtpbmQgPSByZXF1aXJlKFwiLi4vcm91dGUta2luZFwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeShjYWNoZUVudHJ5KSB7XG4gICAgdmFyIF9jYWNoZUVudHJ5X3ZhbHVlLCBfY2FjaGVFbnRyeV92YWx1ZTE7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2FjaGVFbnRyeSxcbiAgICAgICAgdmFsdWU6ICgoX2NhY2hlRW50cnlfdmFsdWUgPSBjYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlRW50cnlfdmFsdWUua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgaHRtbDogYXdhaXQgY2FjaGVFbnRyeS52YWx1ZS5odG1sLnRvVW5jaHVua2VkU3RyaW5nKHRydWUpLFxuICAgICAgICAgICAgcGFnZURhdGE6IGNhY2hlRW50cnkudmFsdWUucGFnZURhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiBjYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGNhY2hlRW50cnkudmFsdWUuc3RhdHVzXG4gICAgICAgIH0gOiAoKF9jYWNoZUVudHJ5X3ZhbHVlMSA9IGNhY2hlRW50cnkudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfY2FjaGVFbnRyeV92YWx1ZTEua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICAgICAgaHRtbDogYXdhaXQgY2FjaGVFbnRyeS52YWx1ZS5odG1sLnRvVW5jaHVua2VkU3RyaW5nKHRydWUpLFxuICAgICAgICAgICAgcG9zdHBvbmVkOiBjYWNoZUVudHJ5LnZhbHVlLnBvc3Rwb25lZCxcbiAgICAgICAgICAgIHJzY0RhdGE6IGNhY2hlRW50cnkudmFsdWUucnNjRGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IGNhY2hlRW50cnkudmFsdWUuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogY2FjaGVFbnRyeS52YWx1ZS5zdGF0dXMsXG4gICAgICAgICAgICBzZWdtZW50RGF0YTogY2FjaGVFbnRyeS52YWx1ZS5zZWdtZW50RGF0YVxuICAgICAgICB9IDogY2FjaGVFbnRyeS52YWx1ZVxuICAgIH07XG59XG5hc3luYyBmdW5jdGlvbiB0b1Jlc3BvbnNlQ2FjaGVFbnRyeShyZXNwb25zZSkge1xuICAgIHZhciBfcmVzcG9uc2VfdmFsdWUsIF9yZXNwb25zZV92YWx1ZTE7XG4gICAgaWYgKCFyZXNwb25zZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNNaXNzOiByZXNwb25zZS5pc01pc3MsXG4gICAgICAgIGlzU3RhbGU6IHJlc3BvbnNlLmlzU3RhbGUsXG4gICAgICAgIGNhY2hlQ29udHJvbDogcmVzcG9uc2UuY2FjaGVDb250cm9sLFxuICAgICAgICB2YWx1ZTogKChfcmVzcG9uc2VfdmFsdWUgPSByZXNwb25zZS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNwb25zZV92YWx1ZS5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5QQUdFUyA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICBodG1sOiBfcmVuZGVycmVzdWx0LmRlZmF1bHQuZnJvbVN0YXRpYyhyZXNwb25zZS52YWx1ZS5odG1sLCBfY29uc3RhbnRzLkhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUiksXG4gICAgICAgICAgICBwYWdlRGF0YTogcmVzcG9uc2UudmFsdWUucGFnZURhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS52YWx1ZS5zdGF0dXNcbiAgICAgICAgfSA6ICgoX3Jlc3BvbnNlX3ZhbHVlMSA9IHJlc3BvbnNlLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3BvbnNlX3ZhbHVlMS5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgICAgICBodG1sOiBfcmVuZGVycmVzdWx0LmRlZmF1bHQuZnJvbVN0YXRpYyhyZXNwb25zZS52YWx1ZS5odG1sLCBfY29uc3RhbnRzLkhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUiksXG4gICAgICAgICAgICByc2NEYXRhOiByZXNwb25zZS52YWx1ZS5yc2NEYXRhLFxuICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UudmFsdWUuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2UudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgcG9zdHBvbmVkOiByZXNwb25zZS52YWx1ZS5wb3N0cG9uZWQsXG4gICAgICAgICAgICBzZWdtZW50RGF0YTogcmVzcG9uc2UudmFsdWUuc2VnbWVudERhdGFcbiAgICAgICAgfSA6IHJlc3BvbnNlLnZhbHVlXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQocm91dGVLaW5kKSB7XG4gICAgc3dpdGNoKHJvdXRlS2luZCl7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuUEFHRVM6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLlBBR0VTO1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLkFQUF9QQUdFOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5BUFBfUEFHRTtcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5JTUFHRTpcbiAgICAgICAgICAgIHJldHVybiBfdHlwZXMuSW5jcmVtZW50YWxDYWNoZUtpbmQuSU1BR0U7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuQVBQX1JPVVRFOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5BUFBfUk9VVEU7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuUEFHRVNfQVBJOlxuICAgICAgICAgICAgLy8gUGFnZXMgUm91dGVyIEFQSSByb3V0ZXMgYXJlIG5vdCBjYWNoZWQgaW4gdGhlIGluY3JlbWVudGFsIGNhY2hlLlxuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgVW5leHBlY3RlZCByb3V0ZSBraW5kICR7cm91dGVLaW5kfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNjRcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlS2luZDtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-kind.js":
|
||
/*!*****************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-kind.js ***!
|
||
\*****************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouteKind\", ({\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n}));\nvar RouteKind = /*#__PURE__*/ function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\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 */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */ RouteKind[\"IMAGE\"] = \"IMAGE\";\n return RouteKind;\n}({});\n\n//# sourceMappingURL=route-kind.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLWtpbmQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw2Q0FBNEM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsSUFBSSxFQUFFLEdBQUc7QUFDakM7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLElBQUksRUFBRSxHQUFHO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLWtpbmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSb3V0ZUtpbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJvdXRlS2luZDtcbiAgICB9XG59KTtcbnZhciBSb3V0ZUtpbmQgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJvdXRlS2luZCkge1xuICAgIC8qKlxuICAgKiBgUEFHRVNgIHJlcHJlc2VudHMgYWxsIHRoZSBSZWFjdCBwYWdlcyB0aGF0IGFyZSB1bmRlciBgcGFnZXMvYC5cbiAgICovIFJvdXRlS2luZFtcIlBBR0VTXCJdID0gXCJQQUdFU1wiO1xuICAgIC8qKlxuICAgKiBgUEFHRVNfQVBJYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyB1bmRlciBgcGFnZXMvYXBpL2AuXG4gICAqLyBSb3V0ZUtpbmRbXCJQQUdFU19BUElcIl0gPSBcIlBBR0VTX0FQSVwiO1xuICAgIC8qKlxuICAgKiBgQVBQX1BBR0VgIHJlcHJlc2VudHMgYWxsIHRoZSBSZWFjdCBwYWdlcyB0aGF0IGFyZSB1bmRlciBgYXBwL2Agd2l0aCB0aGVcbiAgICogZmlsZW5hbWUgb2YgYHBhZ2Uue2osdH1zeyx4fWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJBUFBfUEFHRVwiXSA9IFwiQVBQX1BBR0VcIjtcbiAgICAvKipcbiAgICogYEFQUF9ST1VURWAgcmVwcmVzZW50cyBhbGwgdGhlIEFQSSByb3V0ZXMgYW5kIG1ldGFkYXRhIHJvdXRlcyB0aGF0IGFyZSB1bmRlciBgYXBwL2Agd2l0aCB0aGVcbiAgICogZmlsZW5hbWUgb2YgYHJvdXRlLntqLHR9c3sseH1gLlxuICAgKi8gUm91dGVLaW5kW1wiQVBQX1JPVVRFXCJdID0gXCJBUFBfUk9VVEVcIjtcbiAgICAvKipcbiAgICogYElNQUdFYCByZXByZXNlbnRzIGFsbCB0aGUgaW1hZ2VzIHRoYXQgYXJlIGdlbmVyYXRlZCBieSBgbmV4dC9pbWFnZWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJJTUFHRVwiXSA9IFwiSU1BR0VcIjtcbiAgICByZXR1cm4gUm91dGVLaW5kO1xufSh7fSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLWtpbmQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/pages/module.compiled.js ***!
|
||
\******************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nif (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/pages.runtime.dev.js */ \"next/dist/compiled/next-server/pages.runtime.dev.js\");\n }\n } else {}\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmNvbXBpbGVkLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLElBQXNDO0FBQzlDLFlBQVksS0FBcUIsRUFBRSxFQUUxQixDQUFDO0FBQ1YsWUFBWSxzSkFBK0U7QUFDM0Y7QUFDQSxNQUFNLEtBQUssRUFNTjtBQUNMOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5jb21waWxlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbmlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5qcycpO1xufSBlbHNlIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMtdHVyYm8ucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL3BhZ2VzLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9wYWdlcy10dXJiby5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL3BhZ2VzLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/pages-handler.js":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/pages/pages-handler.js ***!
|
||
\****************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getHandler\", ({\n enumerable: true,\n get: function() {\n return getHandler;\n }\n}));\nconst _routekind = __webpack_require__(/*! ../../route-kind */ \"(pages-dir-node)/./node_modules/next/dist/server/route-kind.js\");\nconst _constants = __webpack_require__(/*! ../../lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _tracer = __webpack_require__(/*! ../../lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _formaturl = __webpack_require__(/*! ../../../shared/lib/router/utils/format-url */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _requestmeta = __webpack_require__(/*! ../../request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\nconst _interopdefault = __webpack_require__(/*! ../../app-render/interop-default */ \"(pages-dir-node)/./node_modules/next/dist/server/app-render/interop-default.js\");\nconst _utils = __webpack_require__(/*! ../../instrumentation/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/instrumentation/utils.js\");\nconst _normalizedatapath = __webpack_require__(/*! ../../../shared/lib/page-path/normalize-data-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js\");\nconst _responsecache = __webpack_require__(/*! ../../response-cache */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/index.js\");\nconst _cachecontrol = __webpack_require__(/*! ../../lib/cache-control */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\");\nconst _utils1 = __webpack_require__(/*! ../../../shared/lib/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _redirectstatus = __webpack_require__(/*! ../../../lib/redirect-status */ \"(pages-dir-node)/./node_modules/next/dist/lib/redirect-status.js\");\nconst _constants1 = __webpack_require__(/*! ../../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nconst _path = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! path */ \"path\"));\nconst _sendpayload = __webpack_require__(/*! ../../send-payload */ \"(pages-dir-node)/./node_modules/next/dist/server/send-payload.js\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../render-result */ \"(pages-dir-node)/./node_modules/next/dist/server/render-result.js\"));\nconst _utils2 = __webpack_require__(/*! ../../response-cache/utils */ \"(pages-dir-node)/./node_modules/next/dist/server/response-cache/utils.js\");\nconst _nofallbackerrorexternal = __webpack_require__(/*! ../../../shared/lib/no-fallback-error.external */ \"../../../shared/lib/no-fallback-error.external\");\nconst _redirectstatuscode = __webpack_require__(/*! ../../../client/components/redirect-status-code */ \"(pages-dir-node)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst _isbot = __webpack_require__(/*! ../../../shared/lib/router/utils/is-bot */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst _addpathprefix = __webpack_require__(/*! ../../../shared/lib/router/utils/add-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _removetrailingslash = __webpack_require__(/*! ../../../shared/lib/router/utils/remove-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst getHandler = ({ srcPage: originalSrcPage, config, userland, routeModule, isFallbackError, getStaticPaths, getStaticProps, getServerSideProps })=>{\n return async function handler(req, res, ctx) {\n var _serverFilesManifest_config_experimental, _serverFilesManifest_config;\n let srcPage = originalSrcPage;\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (false) {} else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = false;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return;\n }\n const { buildId, query, params, parsedUrl, originalQuery, originalPathname, buildManifest, fallbackBuildManifest, nextFontManifest, serverFilesManifest, reactLoadableManifest, prerenderManifest, isDraftMode, isOnDemandRevalidate, revalidateOnlyGenerated, locale, locales, defaultLocale, routerServerContext, nextConfig, resolvedPathname } = prepareResult;\n const isExperimentalCompile = serverFilesManifest == null ? void 0 : (_serverFilesManifest_config = serverFilesManifest.config) == null ? void 0 : (_serverFilesManifest_config_experimental = _serverFilesManifest_config.experimental) == null ? void 0 : _serverFilesManifest_config_experimental.isExperimentalCompile;\n const hasServerProps = Boolean(getServerSideProps);\n const hasStaticProps = Boolean(getStaticProps);\n const hasStaticPaths = Boolean(getStaticPaths);\n const hasGetInitialProps = Boolean((userland.default || userland).getInitialProps);\n const isAmp = query.amp && (config == null ? void 0 : config.amp);\n let cacheKey = null;\n let isIsrFallback = false;\n let isNextDataRequest = prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps);\n const is404Page = srcPage === '/404';\n const is500Page = srcPage === '/500';\n const isErrorPage = srcPage === '/_error';\n if (!routeModule.isDev && !isDraftMode && hasStaticProps) {\n cacheKey = `${locale ? `/${locale}` : ''}${(srcPage === '/' || resolvedPathname === '/') && locale ? '' : resolvedPathname}${isAmp ? '.amp' : ''}`;\n if (is404Page || is500Page || isErrorPage) {\n cacheKey = `${locale ? `/${locale}` : ''}${srcPage}${isAmp ? '.amp' : ''}`;\n }\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n if (hasStaticPaths && !isDraftMode) {\n const decodedPathname = (0, _removetrailingslash.removeTrailingSlash)(locale ? (0, _addpathprefix.addPathPrefix)(resolvedPathname, `/${locale}`) : resolvedPathname);\n const isPrerendered = Boolean(prerenderManifest.routes[decodedPathname]) || prerenderManifest.notFoundRoutes.includes(decodedPathname);\n const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n throw new _nofallbackerrorexternal.NoFallbackError();\n }\n if (typeof prerenderInfo.fallback === 'string' && !isPrerendered && !isNextDataRequest) {\n isIsrFallback = true;\n }\n }\n }\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (isIsrFallback && (0, _isbot.isBot)(req.headers['user-agent'] || '') || (0, _requestmeta.getRequestMeta)(req, 'minimalMode')) {\n isIsrFallback = false;\n }\n const tracer = (0, _tracer.getTracer)();\n const activeSpan = tracer.getActiveScopeSpan();\n try {\n const method = req.method || 'GET';\n const resolvedUrl = (0, _formaturl.formatUrl)({\n pathname: nextConfig.trailingSlash ? parsedUrl.pathname : (0, _removetrailingslash.removeTrailingSlash)(parsedUrl.pathname || '/'),\n // make sure to only add query values from original URL\n query: hasStaticProps ? {} : originalQuery\n });\n const publicRuntimeConfig = (routerServerContext == null ? void 0 : routerServerContext.publicRuntimeConfig) || nextConfig.publicRuntimeConfig;\n const handleResponse = async (span)=>{\n const responseGenerator = async ({ previousCacheEntry })=>{\n var _previousCacheEntry_value;\n const doRender = async ()=>{\n try {\n var _nextConfig_i18n, _nextConfig_experimental_amp, _nextConfig_experimental_amp1;\n return await routeModule.render(req, res, {\n query: hasStaticProps && !isExperimentalCompile ? {\n ...params,\n ...isAmp ? {\n amp: query.amp\n } : {}\n } : {\n ...query,\n ...params\n },\n params,\n page: srcPage,\n renderContext: {\n isDraftMode,\n isFallback: isIsrFallback,\n developmentNotFoundSourcePage: (0, _requestmeta.getRequestMeta)(req, 'developmentNotFoundSourcePage')\n },\n sharedContext: {\n buildId,\n customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined,\n deploymentId: false\n },\n renderOpts: {\n params,\n routeModule,\n page: srcPage,\n pageConfig: config || {},\n Component: (0, _interopdefault.interopDefault)(userland),\n ComponentMod: userland,\n getStaticProps,\n getStaticPaths,\n getServerSideProps,\n supportsDynamicResponse: !hasStaticProps,\n buildManifest: isFallbackError ? fallbackBuildManifest : buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n assetPrefix: nextConfig.assetPrefix,\n previewProps: prerenderManifest.preview,\n images: nextConfig.images,\n nextConfigOutput: nextConfig.output,\n optimizeCss: Boolean(nextConfig.experimental.optimizeCss),\n nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers),\n domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains,\n crossOrigin: nextConfig.crossOrigin,\n multiZoneDraftMode,\n basePath: nextConfig.basePath,\n canonicalBase: nextConfig.amp.canonicalBase || '',\n ampOptimizerConfig: (_nextConfig_experimental_amp = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp.optimizer,\n disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading,\n largePageDataBytes: 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 isExperimentalCompile,\n experimental: {\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || []\n },\n locale,\n locales,\n defaultLocale,\n setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,\n isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps),\n resolvedUrl,\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, _formaturl.formatUrl)({\n // we use the original URL pathname less the _next/data prefix if\n // present\n pathname: isNextDataRequest ? (0, _normalizedatapath.normalizeDataPath)(originalPathname) : originalPathname,\n query: originalQuery\n }) : resolvedUrl,\n isOnDemandRevalidate,\n ErrorDebug: (0, _requestmeta.getRequestMeta)(req, 'PagesErrorDebug'),\n err: (0, _requestmeta.getRequestMeta)(req, 'invokeError'),\n dev: routeModule.isDev,\n // needed for experimental.optimizeCss feature\n distDir: _path.default.join(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir, routeModule.distDir),\n ampSkipValidation: (_nextConfig_experimental_amp1 = nextConfig.experimental.amp) == null ? void 0 : _nextConfig_experimental_amp1.skipValidation,\n ampValidator: (0, _requestmeta.getRequestMeta)(req, 'ampValidator')\n }\n }).then((renderResult)=>{\n const { metadata } = renderResult;\n let cacheControl = metadata.cacheControl;\n if ('isNotFound' in metadata && metadata.isNotFound) {\n return {\n value: null,\n cacheControl\n };\n }\n // Handle `isRedirect`.\n if (metadata.isRedirect) {\n return {\n value: {\n kind: _responsecache.CachedRouteKind.REDIRECT,\n props: metadata.pageData ?? metadata.flightData\n },\n cacheControl\n };\n }\n return {\n value: {\n kind: _responsecache.CachedRouteKind.PAGES,\n html: renderResult,\n pageData: renderResult.metadata.pageData,\n headers: renderResult.metadata.headers,\n status: renderResult.metadata.statusCode\n },\n cacheControl\n };\n }).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== _constants.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 name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${req.url}`);\n }\n });\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0, _utils.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n throw err;\n }\n };\n // if we've already generated this page we no longer\n // serve the fallback\n if (previousCacheEntry) {\n isIsrFallback = false;\n }\n if (isIsrFallback) {\n const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{\n if (!routeModule.isDev) {\n return (0, _utils2.toResponseCacheEntry)(previousFallbackCacheEntry);\n }\n return doRender();\n }, {\n routeKind: _routekind.RouteKind.PAGES,\n isFallback: true,\n isRoutePPREnabled: false,\n isOnDemandRevalidate: false,\n incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest),\n waitUntil: ctx.waitUntil\n });\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl;\n fallbackResponse.isMiss = true;\n return fallbackResponse;\n }\n }\n if (!(0, _requestmeta.getRequestMeta)(req, 'minimalMode') && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === _responsecache.CachedRouteKind.PAGES) {\n return {\n value: {\n kind: _responsecache.CachedRouteKind.PAGES,\n html: new _renderresult.default(Buffer.from(previousCacheEntry.value.html), {\n contentType: _constants1.HTML_CONTENT_TYPE_HEADER,\n metadata: {\n statusCode: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n }\n }),\n pageData: {},\n status: previousCacheEntry.value.status,\n headers: previousCacheEntry.value.headers\n },\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n };\n }\n return doRender();\n };\n const result = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: _routekind.RouteKind.PAGES,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n waitUntil: ctx.waitUntil,\n responseGenerator: responseGenerator,\n prerenderManifest\n });\n // if we got a cache hit this wasn't an ISR fallback\n // but it wasn't generated during build so isn't in the\n // prerender-manifest\n if (isIsrFallback && !(result == null ? void 0 : result.isMiss)) {\n isIsrFallback = false;\n }\n // response is finished is no cache entry\n if (!result) {\n return;\n }\n if (hasStaticProps && !(0, _requestmeta.getRequestMeta)(req, 'minimalMode')) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : result.isMiss ? 'MISS' : result.isStale ? 'STALE' : 'HIT');\n }\n let cacheControl;\n if (!hasStaticProps || isIsrFallback) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n }\n } else if (is404Page) {\n const notFoundRevalidate = (0, _requestmeta.getRequestMeta)(req, 'notFoundRevalidate');\n cacheControl = {\n revalidate: typeof notFoundRevalidate === 'undefined' ? 0 : notFoundRevalidate,\n expire: undefined\n };\n } else if (is500Page) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (result.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof result.cacheControl.revalidate === 'number') {\n var _result_cacheControl;\n if (result.cacheControl.revalidate < 1) {\n throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`), \"__NEXT_ERROR_CODE\", {\n value: \"E22\",\n enumerable: false,\n configurable: true\n });\n }\n cacheControl = {\n revalidate: result.cacheControl.revalidate,\n expire: ((_result_cacheControl = result.cacheControl) == null ? void 0 : _result_cacheControl.expire) ?? nextConfig.expireTime\n };\n } else {\n // revalidate: false\n cacheControl = {\n revalidate: _constants1.CACHE_ONE_YEAR,\n expire: undefined\n };\n }\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));\n }\n // notFound: true case\n if (!result.value) {\n var _result_cacheControl1;\n // add revalidate metadata before rendering 404 page\n // so that we can use this as source of truth for the\n // cache-control header instead of what the 404 page returns\n // for the revalidate value\n (0, _requestmeta.addRequestMeta)(req, 'notFoundRevalidate', (_result_cacheControl1 = result.cacheControl) == null ? void 0 : _result_cacheControl1.revalidate);\n res.statusCode = 404;\n if (isNextDataRequest) {\n res.end('{\"notFound\":true}');\n return;\n }\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return;\n }\n if (result.value.kind === _responsecache.CachedRouteKind.REDIRECT) {\n if (isNextDataRequest) {\n res.setHeader('content-type', _constants1.JSON_CONTENT_TYPE_HEADER);\n res.end(JSON.stringify(result.value.props));\n return;\n } else {\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, _redirectstatus.getRedirectStatus)(redirect);\n const { basePath } = 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, _utils1.normalizeRepeatedSlashes)(redirect.destination);\n }\n res.statusCode = statusCode;\n res.setHeader('Location', redirect.destination);\n if (statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect) {\n res.setHeader('Refresh', `0;url=${redirect.destination}`);\n }\n res.end(redirect.destination);\n };\n await handleRedirect(result.value.props);\n return null;\n }\n }\n if (result.value.kind !== _responsecache.CachedRouteKind.PAGES) {\n throw Object.defineProperty(new Error(`Invariant: received non-pages cache entry in pages handler`), \"__NEXT_ERROR_CODE\", {\n value: \"E695\",\n enumerable: false,\n configurable: true\n });\n }\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-store, must-revalidate');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n // when invoking _error before pages/500 we don't actually\n // send the _error response\n if ((0, _requestmeta.getRequestMeta)(req, 'customErrorRender') || isErrorPage && (0, _requestmeta.getRequestMeta)(req, 'minimalMode') && res.statusCode === 500) {\n return null;\n }\n await (0, _sendpayload.sendRenderResult)({\n req,\n res,\n // If we are rendering the error page it's not a data request\n // anymore\n result: isNextDataRequest && !isErrorPage && !is500Page ? new _renderresult.default(Buffer.from(JSON.stringify(result.value.pageData)), {\n contentType: _constants1.JSON_CONTENT_TYPE_HEADER,\n metadata: result.value.html.metadata\n }) : result.value.html,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n cacheControl: routeModule.isDev ? undefined : cacheControl\n });\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse();\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(_constants.BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: _tracer.SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof _nofallbackerrorexternal.NoFallbackError)) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'Pages Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0, _utils.getRevalidateReason)({\n isRevalidate: hasStaticProps,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n throw err;\n }\n };\n};\n\n//# sourceMappingURL=pages-handler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvcGFnZXMtaGFuZGxlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDhDQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG1CQUFtQixtQkFBTyxDQUFDLHdGQUFrQjtBQUM3QyxtQkFBbUIsbUJBQU8sQ0FBQywwR0FBMkI7QUFDdEQsZ0JBQWdCLG1CQUFPLENBQUMsb0dBQXdCO0FBQ2hELG1CQUFtQixtQkFBTyxDQUFDLG9JQUE2QztBQUN4RSxxQkFBcUIsbUJBQU8sQ0FBQyw0RkFBb0I7QUFDakQsd0JBQXdCLG1CQUFPLENBQUMsd0hBQWtDO0FBQ2xFLGVBQWUsbUJBQU8sQ0FBQyw4R0FBNkI7QUFDcEQsMkJBQTJCLG1CQUFPLENBQUMsZ0pBQW1EO0FBQ3RGLHVCQUF1QixtQkFBTyxDQUFDLHNHQUFzQjtBQUNyRCxzQkFBc0IsbUJBQU8sQ0FBQyxzR0FBeUI7QUFDdkQsZ0JBQWdCLG1CQUFPLENBQUMsZ0dBQTJCO0FBQ25ELHdCQUF3QixtQkFBTyxDQUFDLHNHQUE4QjtBQUM5RCxvQkFBb0IsbUJBQU8sQ0FBQywwRkFBd0I7QUFDcEQscURBQXFELG1CQUFPLENBQUMsa0JBQU07QUFDbkUscUJBQXFCLG1CQUFPLENBQUMsNEZBQW9CO0FBQ2pELDZEQUE2RCxtQkFBTyxDQUFDLDhGQUFxQjtBQUMxRixnQkFBZ0IsbUJBQU8sQ0FBQyw0R0FBNEI7QUFDcEQsaUNBQWlDLG1CQUFPLENBQUMsc0dBQWdEO0FBQ3pGLDRCQUE0QixtQkFBTyxDQUFDLDRJQUFpRDtBQUNyRixlQUFlLG1CQUFPLENBQUMsNEhBQXlDO0FBQ2hFLHVCQUF1QixtQkFBTyxDQUFDLDhJQUFrRDtBQUNqRiw2QkFBNkIsbUJBQU8sQ0FBQywwSkFBd0Q7QUFDN0Y7QUFDQTtBQUNBO0FB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LDREQUE0RCxNQUFNLHFCQUFxQjtBQUN2RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQSxxQ0FBcUMsUUFBUSxFQUFFLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvcGFnZXMtaGFuZGxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldEhhbmRsZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldEhhbmRsZXI7XG4gICAgfVxufSk7XG5jb25zdCBfcm91dGVraW5kID0gcmVxdWlyZShcIi4uLy4uL3JvdXRlLWtpbmRcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uLy4uL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfdHJhY2VyID0gcmVxdWlyZShcIi4uLy4uL2xpYi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfZm9ybWF0dXJsID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmxcIik7XG5jb25zdCBfcmVxdWVzdG1ldGEgPSByZXF1aXJlKFwiLi4vLi4vcmVxdWVzdC1tZXRhXCIpO1xuY29uc3QgX2ludGVyb3BkZWZhdWx0ID0gcmVxdWlyZShcIi4uLy4uL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0XCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uLy4uL2luc3RydW1lbnRhdGlvbi91dGlsc1wiKTtcbmNvbnN0IF9ub3JtYWxpemVkYXRhcGF0aCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtZGF0YS1wYXRoXCIpO1xuY29uc3QgX3Jlc3BvbnNlY2FjaGUgPSByZXF1aXJlKFwiLi4vLi4vcmVzcG9uc2UtY2FjaGVcIik7XG5jb25zdCBfY2FjaGVjb250cm9sID0gcmVxdWlyZShcIi4uLy4uL2xpYi9jYWNoZS1jb250cm9sXCIpO1xuY29uc3QgX3V0aWxzMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL3V0aWxzXCIpO1xuY29uc3QgX3JlZGlyZWN0c3RhdHVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2xpYi9yZWRpcmVjdC1zdGF0dXNcIik7XG5jb25zdCBfY29uc3RhbnRzMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9saWIvY29uc3RhbnRzXCIpO1xuY29uc3QgX3BhdGggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwicGF0aFwiKSk7XG5jb25zdCBfc2VuZHBheWxvYWQgPSByZXF1aXJlKFwiLi4vLi4vc2VuZC1wYXlsb2FkXCIpO1xuY29uc3QgX3JlbmRlcnJlc3VsdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9yZW5kZXItcmVzdWx0XCIpKTtcbmNvbnN0IF91dGlsczIgPSByZXF1aXJlKFwiLi4vLi4vcmVzcG9uc2UtY2FjaGUvdXRpbHNcIik7XG5jb25zdCBfbm9mYWxsYmFja2Vycm9yZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9uby1mYWxsYmFjay1lcnJvci5leHRlcm5hbFwiKTtcbmNvbnN0IF9yZWRpcmVjdHN0YXR1c2NvZGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGVcIik7XG5jb25zdCBfaXNib3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtYm90XCIpO1xuY29uc3QgX2FkZHBhdGhwcmVmaXggPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4XCIpO1xuY29uc3QgX3JlbW92ZXRyYWlsaW5nc2xhc2ggPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5jb25zdCBnZXRIYW5kbGVyID0gKHsgc3JjUGFnZTogb3JpZ2luYWxTcmNQYWdlLCBjb25maWcsIHVzZXJsYW5kLCByb3V0ZU1vZHVsZSwgaXNGYWxsYmFja0Vycm9yLCBnZXRTdGF0aWNQYXRocywgZ2V0U3RhdGljUHJvcHMsIGdldFNlcnZlclNpZGVQcm9wcyB9KT0+e1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKHJlcSwgcmVzLCBjdHgpIHtcbiAgICAgICAgdmFyIF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZ19leHBlcmltZW50YWwsIF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZztcbiAgICAgICAgbGV0IHNyY1BhZ2UgPSBvcmlnaW5hbFNyY1BhZ2U7XG4gICAgICAgIC8vIHR1cmJvcGFjayBkb2Vzbid0IG5vcm1hbGl6ZSBgL2luZGV4YCBpbiB0aGUgcGFnZSBuYW1lXG4gICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gdG8gcHJvY2VzcyBkeW5hbWljIHJvdXRlcyBwcm9wZXJseVxuICAgICAgICAvLyBUT0RPOiBmaXggdHVyYm9wYWNrIHByb3ZpZGluZyBkaWZmZXJpbmcgdmFsdWUgZnJvbSB3ZWJwYWNrXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgIHNyY1BhZ2UgPSBzcmNQYWdlLnJlcGxhY2UoL1xcL2luZGV4JC8sICcnKSB8fCAnLyc7XG4gICAgICAgIH0gZWxzZSBpZiAoc3JjUGFnZSA9PT0gJy9pbmRleCcpIHtcbiAgICAgICAgICAgIC8vIHdlIGFsd2F5cyBub3JtYWxpemUgL2luZGV4IHNwZWNpZmljYWxseVxuICAgICAgICAgICAgc3JjUGFnZSA9ICcvJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtdWx0aVpvbmVEcmFmdE1vZGUgPSBwcm9jZXNzLmVudi5fX05FWFRfTVVMVElfWk9ORV9EUkFGVF9NT0RFO1xuICAgICAgICBjb25zdCBwcmVwYXJlUmVzdWx0ID0gYXdhaXQgcm91dGVNb2R1bGUucHJlcGFyZShyZXEsIHJlcywge1xuICAgICAgICAgICAgc3JjUGFnZSxcbiAgICAgICAgICAgIG11bHRpWm9uZURyYWZ0TW9kZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFwcmVwYXJlUmVzdWx0KSB7XG4gICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMDtcbiAgICAgICAgICAgIHJlcy5lbmQoJ0JhZCBSZXF1ZXN0Jyk7XG4gICAgICAgICAgICBjdHgud2FpdFVudGlsID09IG51bGwgPyB2b2lkIDAgOiBjdHgud2FpdFVudGlsLmNhbGwoY3R4LCBQcm9taXNlLnJlc29sdmUoKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBidWlsZElkLCBxdWVyeSwgcGFyYW1zLCBwYXJzZWRVcmwsIG9yaWdpbmFsUXVlcnksIG9yaWdpbmFsUGF0aG5hbWUsIGJ1aWxkTWFuaWZlc3QsIGZhbGxiYWNrQnVpbGRNYW5pZmVzdCwgbmV4dEZvbnRNYW5pZmVzdCwgc2VydmVyRmlsZXNNYW5pZmVzdCwgcmVhY3RMb2FkYWJsZU1hbmlmZXN0LCBwcmVyZW5kZXJNYW5pZmVzdCwgaXNEcmFmdE1vZGUsIGlzT25EZW1hbmRSZXZhbGlkYXRlLCByZXZhbGlkYXRlT25seUdlbmVyYXRlZCwgbG9jYWxlLCBsb2NhbGVzLCBkZWZhdWx0TG9jYWxlLCByb3V0ZXJTZXJ2ZXJDb250ZXh0LCBuZXh0Q29uZmlnLCByZXNvbHZlZFBhdGhuYW1lIH0gPSBwcmVwYXJlUmVzdWx0O1xuICAgICAgICBjb25zdCBpc0V4cGVyaW1lbnRhbENvbXBpbGUgPSBzZXJ2ZXJGaWxlc01hbmlmZXN0ID09IG51bGwgPyB2b2lkIDAgOiAoX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnID0gc2VydmVyRmlsZXNNYW5pZmVzdC5jb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3NlcnZlckZpbGVzTWFuaWZlc3RfY29uZmlnX2V4cGVyaW1lbnRhbCA9IF9zZXJ2ZXJGaWxlc01hbmlmZXN0X2NvbmZpZy5leHBlcmltZW50YWwpID09IG51bGwgPyB2b2lkIDAgOiBfc2VydmVyRmlsZXNNYW5pZmVzdF9jb25maWdfZXhwZXJpbWVudGFsLmlzRXhwZXJpbWVudGFsQ29tcGlsZTtcbiAgICAgICAgY29uc3QgaGFzU2VydmVyUHJvcHMgPSBCb29sZWFuKGdldFNlcnZlclNpZGVQcm9wcyk7XG4gICAgICAgIGNvbnN0IGhhc1N0YXRpY1Byb3BzID0gQm9vbGVhbihnZXRTdGF0aWNQcm9wcyk7XG4gICAgICAgIGNvbnN0IGhhc1N0YXRpY1BhdGhzID0gQm9vbGVhbihnZXRTdGF0aWNQYXRocyk7XG4gICAgICAgIGNvbnN0IGhhc0dldEluaXRpYWxQcm9wcyA9IEJvb2xlYW4oKHVzZXJsYW5kLmRlZmF1bHQgfHwgdXNlcmxhbmQpLmdldEluaXRpYWxQcm9wcyk7XG4gICAgICAgIGNvbnN0IGlzQW1wID0gcXVlcnkuYW1wICYmIChjb25maWcgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbmZpZy5hbXApO1xuICAgICAgICBsZXQgY2FjaGVLZXkgPSBudWxsO1xuICAgICAgICBsZXQgaXNJc3JGYWxsYmFjayA9IGZhbHNlO1xuICAgICAgICBsZXQgaXNOZXh0RGF0YVJlcXVlc3QgPSBwcmVwYXJlUmVzdWx0LmlzTmV4dERhdGFSZXF1ZXN0ICYmIChoYXNTdGF0aWNQcm9wcyB8fCBoYXNTZXJ2ZXJQcm9wcyk7XG4gICAgICAgIGNvbnN0IGlzNDA0UGFnZSA9IHNyY1BhZ2UgPT09ICcvNDA0JztcbiAgICAgICAgY29uc3QgaXM1MDBQYWdlID0gc3JjUGFnZSA9PT0gJy81MDAnO1xuICAgICAgICBjb25zdCBpc0Vycm9yUGFnZSA9IHNyY1BhZ2UgPT09ICcvX2Vycm9yJztcbiAgICAgICAgaWYgKCFyb3V0ZU1vZHVsZS5pc0RldiAmJiAhaXNEcmFmdE1vZGUgJiYgaGFzU3RhdGljUHJvcHMpIHtcbiAgICAgICAgICAgIGNhY2hlS2V5ID0gYCR7bG9jYWxlID8gYC8ke2xvY2FsZX1gIDogJyd9JHsoc3JjUGFnZSA9PT0gJy8nIHx8IHJlc29sdmVkUGF0aG5hbWUgPT09ICcvJykgJiYgbG9jYWxlID8gJycgOiByZXNvbHZlZFBhdGhuYW1lfSR7aXNBbXAgPyAnLmFtcCcgOiAnJ31gO1xuICAgICAgICAgICAgaWYgKGlzNDA0UGFnZSB8fCBpczUwMFBhZ2UgfHwgaXNFcnJvclBhZ2UpIHtcbiAgICAgICAgICAgICAgICBjYWNoZUtleSA9IGAke2xvY2FsZSA/IGAvJHtsb2NhbGV9YCA6ICcnfSR7c3JjUGFnZX0ke2lzQW1wID8gJy5hbXAnIDogJyd9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGVuc3VyZSAvaW5kZXggYW5kIC8gaXMgbm9ybWFsaXplZCB0byBvbmUga2V5XG4gICAgICAgICAgICBjYWNoZUtleSA9IGNhY2hlS2V5ID09PSAnL2luZGV4JyA/ICcvJyA6IGNhY2hlS2V5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNTdGF0aWNQYXRocyAmJiAhaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRQYXRobmFtZSA9ICgwLCBfcmVtb3ZldHJhaWxpbmdzbGFzaC5yZW1vdmVUcmFpbGluZ1NsYXNoKShsb2NhbGUgPyAoMCwgX2FkZHBhdGhwcmVmaXguYWRkUGF0aFByZWZpeCkocmVzb2x2ZWRQYXRobmFtZSwgYC8ke2xvY2FsZX1gKSA6IHJlc29sdmVkUGF0aG5hbWUpO1xuICAgICAgICAgICAgY29uc3QgaXNQcmVyZW5kZXJlZCA9IEJvb2xlYW4ocHJlcmVuZGVyTWFuaWZlc3Qucm91dGVzW2RlY29kZWRQYXRobmFtZV0pIHx8IHByZXJlbmRlck1hbmlmZXN0Lm5vdEZvdW5kUm91dGVzLmluY2x1ZGVzKGRlY29kZWRQYXRobmFtZSk7XG4gICAgICAgICAgICBjb25zdCBwcmVyZW5kZXJJbmZvID0gcHJlcmVuZGVyTWFuaWZlc3QuZHluYW1pY1JvdXRlc1tzcmNQYWdlXTtcbiAgICAgICAgICAgIGlmIChwcmVyZW5kZXJJbmZvKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByZXJlbmRlckluZm8uZmFsbGJhY2sgPT09IGZhbHNlICYmICFpc1ByZXJlbmRlcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfbm9mYWxsYmFja2Vycm9yZXh0ZXJuYWwuTm9GYWxsYmFja0Vycm9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJlcmVuZGVySW5mby5mYWxsYmFjayA9PT0gJ3N0cmluZycgJiYgIWlzUHJlcmVuZGVyZWQgJiYgIWlzTmV4dERhdGFSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlzSXNyRmFsbGJhY2sgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBXaGVuIHNlcnZpbmcgYSBib3QgcmVxdWVzdCwgd2Ugd2FudCB0byBzZXJ2ZSBhIGJsb2NraW5nIHJlbmRlciBhbmQgbm90XG4gICAgICAgIC8vIHRoZSBwcmVyZW5kZXJlZCBwYWdlLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgY29ycmVjdCBjb250ZW50IGlzIHNlcnZlZFxuICAgICAgICAvLyB0byB0aGUgYm90IGluIHRoZSBoZWFkLlxuICAgICAgICBpZiAoaXNJc3JGYWxsYmFjayAmJiAoMCwgX2lzYm90LmlzQm90KShyZXEuaGVhZGVyc1sndXNlci1hZ2VudCddIHx8ICcnKSB8fCAoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdtaW5pbWFsTW9kZScpKSB7XG4gICAgICAgICAgICBpc0lzckZhbGxiYWNrID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdHJhY2VyID0gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpO1xuICAgICAgICBjb25zdCBhY3RpdmVTcGFuID0gdHJhY2VyLmdldEFjdGl2ZVNjb3BlU3BhbigpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbWV0aG9kID0gcmVxLm1ldGhvZCB8fCAnR0VUJztcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkVXJsID0gKDAsIF9mb3JtYXR1cmwuZm9ybWF0VXJsKSh7XG4gICAgICAgICAgICAgICAgcGF0aG5hbWU6IG5leHRDb25maWcudHJhaWxpbmdTbGFzaCA/IHBhcnNlZFVybC5wYXRobmFtZSA6ICgwLCBfcmVtb3ZldHJhaWxpbmdzbGFzaC5yZW1vdmVUcmFpbGluZ1NsYXNoKShwYXJzZWRVcmwucGF0aG5hbWUgfHwgJy8nKSxcbiAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdG8gb25seSBhZGQgcXVlcnkgdmFsdWVzIGZyb20gb3JpZ2luYWwgVVJMXG4gICAgICAgICAgICAgICAgcXVlcnk6IGhhc1N0YXRpY1Byb3BzID8ge30gOiBvcmlnaW5hbFF1ZXJ5XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHB1YmxpY1J1bnRpbWVDb25maWcgPSAocm91dGVyU2VydmVyQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcm91dGVyU2VydmVyQ29udGV4dC5wdWJsaWNSdW50aW1lQ29uZmlnKSB8fCBuZXh0Q29uZmlnLnB1YmxpY1J1bnRpbWVDb25maWc7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVSZXNwb25zZSA9IGFzeW5jIChzcGFuKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlR2VuZXJhdG9yID0gYXN5bmMgKHsgcHJldmlvdXNDYWNoZUVudHJ5IH0pPT57XG4gICAgICAgICAgICAgICAgICAgIHZhciBfcHJldmlvdXNDYWNoZUVudHJ5X3ZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkb1JlbmRlciA9IGFzeW5jICgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbmV4dENvbmZpZ19pMThuLCBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wLCBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgcm91dGVNb2R1bGUucmVuZGVyKHJlcSwgcmVzLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBoYXNTdGF0aWNQcm9wcyAmJiAhaXNFeHBlcmltZW50YWxDb21waWxlID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXNBbXAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1wOiBxdWVyeS5hbXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wYXJhbXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiBzcmNQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0RyYWZ0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2s6IGlzSXNyRmFsbGJhY2ssXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZlbG9wbWVudE5vdEZvdW5kU291cmNlUGFnZTogKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxLCAnZGV2ZWxvcG1lbnROb3RGb3VuZFNvdXJjZVBhZ2UnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tU2VydmVyOiBCb29sZWFuKHJvdXRlclNlcnZlckNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJvdXRlclNlcnZlckNvbnRleHQuaXNDdXN0b21TZXJ2ZXIpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGxveW1lbnRJZDogcHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlck9wdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlTW9kdWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VDb25maWc6IGNvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudDogKDAsIF9pbnRlcm9wZGVmYXVsdC5pbnRlcm9wRGVmYXVsdCkodXNlcmxhbmQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50TW9kOiB1c2VybGFuZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFN0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U3RhdGljUGF0aHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRTZXJ2ZXJTaWRlUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c0R5bmFtaWNSZXNwb25zZTogIWhhc1N0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRNYW5pZmVzdDogaXNGYWxsYmFja0Vycm9yID8gZmFsbGJhY2tCdWlsZE1hbmlmZXN0IDogYnVpbGRNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRGb250TWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFjdExvYWRhYmxlTWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldFByZWZpeDogbmV4dENvbmZpZy5hc3NldFByZWZpeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdQcm9wczogcHJlcmVuZGVyTWFuaWZlc3QucHJldmlldyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlczogbmV4dENvbmZpZy5pbWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0Q29uZmlnT3V0cHV0OiBuZXh0Q29uZmlnLm91dHB1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGltaXplQ3NzOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLm9wdGltaXplQ3NzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTY3JpcHRXb3JrZXJzOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLm5leHRTY3JpcHRXb3JrZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbkxvY2FsZXM6IChfbmV4dENvbmZpZ19pMThuID0gbmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX25leHRDb25maWdfaTE4bi5kb21haW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IG5leHRDb25maWcuY3Jvc3NPcmlnaW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aVpvbmVEcmFmdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlUGF0aDogbmV4dENvbmZpZy5iYXNlUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbm9uaWNhbEJhc2U6IG5leHRDb25maWcuYW1wLmNhbm9uaWNhbEJhc2UgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbXBPcHRpbWl6ZXJDb25maWc6IChfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wID0gbmV4dENvbmZpZy5leHBlcmltZW50YWwuYW1wKSA9PSBudWxsID8gdm9pZCAwIDogX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcC5vcHRpbWl6ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlT3B0aW1pemVkTG9hZGluZzogbmV4dENvbmZpZy5leHBlcmltZW50YWwuZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXJnZVBhZ2VEYXRhQnl0ZXM6IG5leHRDb25maWcuZXhwZXJpbWVudGFsLmxhcmdlUGFnZURhdGFCeXRlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgdGhlIGBwdWJsaWNSdW50aW1lQ29uZmlnYCBrZXkgaXMgZXhwb3NlZCB0byB0aGUgY2xpZW50IHNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEl0J2xsIGJlIHJlbmRlcmVkIGFzIHBhcnQgb2YgX19ORVhUX0RBVEFfXyBvbiB0aGUgY2xpZW50IHNpZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWVDb25maWc6IE9iamVjdC5rZXlzKHB1YmxpY1J1bnRpbWVDb25maWcpLmxlbmd0aCA+IDAgPyBwdWJsaWNSdW50aW1lQ29uZmlnIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNFeHBlcmltZW50YWxDb21waWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudGFsOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50VHJhY2VNZXRhZGF0YTogbmV4dENvbmZpZy5leHBlcmltZW50YWwuY2xpZW50VHJhY2VNZXRhZGF0YSB8fCBbXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNyU3RhdHVzOiByb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnNldElzclN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTmV4dERhdGFSZXF1ZXN0OiBpc05leHREYXRhUmVxdWVzdCAmJiAoaGFzU2VydmVyUHJvcHMgfHwgaGFzU3RhdGljUHJvcHMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgZ2V0U2VydmVyU2lkZVByb3BzIGFuZCBnZXRJbml0aWFsUHJvcHMgd2UgbmVlZCB0byBlbnN1cmUgd2UgdXNlIHRoZSBvcmlnaW5hbCBVUkxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBub3QgdGhlIHJlc29sdmVkIFVSTCB0byBwcmV2ZW50IGEgaHlkcmF0aW9uIG1pc21hdGNoIG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhc1BhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkQXNQYXRoOiBoYXNTZXJ2ZXJQcm9wcyB8fCBoYXNHZXRJbml0aWFsUHJvcHMgPyAoMCwgX2Zvcm1hdHVybC5mb3JtYXRVcmwpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSB1c2UgdGhlIG9yaWdpbmFsIFVSTCBwYXRobmFtZSBsZXNzIHRoZSBfbmV4dC9kYXRhIHByZWZpeCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZXNlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZTogaXNOZXh0RGF0YVJlcXVlc3QgPyAoMCwgX25vcm1hbGl6ZWRhdGFwYXRoLm5vcm1hbGl6ZURhdGFQYXRoKShvcmlnaW5hbFBhdGhuYW1lKSA6IG9yaWdpbmFsUGF0aG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IG9yaWdpbmFsUXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pIDogcmVzb2x2ZWRVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yRGVidWc6ICgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcSwgJ1BhZ2VzRXJyb3JEZWJ1ZycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyOiAoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdpbnZva2VFcnJvcicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2OiByb3V0ZU1vZHVsZS5pc0RldixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZWRlZCBmb3IgZXhwZXJpbWVudGFsLm9wdGltaXplQ3NzIGZlYXR1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3REaXI6IF9wYXRoLmRlZmF1bHQuam9pbigvKiB0dXJib3BhY2tJZ25vcmU6IHRydWUgKi8gcHJvY2Vzcy5jd2QoKSwgcm91dGVNb2R1bGUucmVsYXRpdmVQcm9qZWN0RGlyLCByb3V0ZU1vZHVsZS5kaXN0RGlyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtcFNraXBWYWxpZGF0aW9uOiAoX25leHRDb25maWdfZXhwZXJpbWVudGFsX2FtcDEgPSBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5hbXApID09IG51bGwgPyB2b2lkIDAgOiBfbmV4dENvbmZpZ19leHBlcmltZW50YWxfYW1wMS5za2lwVmFsaWRhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtcFZhbGlkYXRvcjogKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxLCAnYW1wVmFsaWRhdG9yJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oKHJlbmRlclJlc3VsdCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtZXRhZGF0YSB9ID0gcmVuZGVyUmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2FjaGVDb250cm9sID0gbWV0YWRhdGEuY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ2lzTm90Rm91bmQnIGluIG1ldGFkYXRhICYmIG1ldGFkYXRhLmlzTm90Rm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBgaXNSZWRpcmVjdGAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZXRhZGF0YS5pc1JlZGlyZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5SRURJUkVDVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IG1ldGFkYXRhLnBhZ2VEYXRhID8/IG1ldGFkYXRhLmZsaWdodERhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbDogcmVuZGVyUmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEYXRhOiByZW5kZXJSZXN1bHQubWV0YWRhdGEucGFnZURhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVuZGVyUmVzdWx0Lm1ldGFkYXRhLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZW5kZXJSZXN1bHQubWV0YWRhdGEuc3RhdHVzQ29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzcGFuKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC5zdGF0dXNfY29kZSc6IHJlcy5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25leHQucnNjJzogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvb3RTcGFuQXR0cmlidXRlcyA9IHRyYWNlci5nZXRSb290U3BhbkF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2VyZSB1bmFibGUgdG8gZ2V0IGF0dHJpYnV0ZXMsIHByb2JhYmx5IE9URUwgaXMgbm90IGVuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyb290U3BhbkF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5zcGFuX3R5cGUnKSAhPT0gX2NvbnN0YW50cy5CYXNlU2VydmVyU3Bhbi5oYW5kbGVSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgcm9vdCBzcGFuIHR5cGUgJyR7cm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5zcGFuX3R5cGUnKX0nLiBQbGVhc2UgcmVwb3J0IHRoaXMgTmV4dC5qcyBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanNgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0ZSA9IHJvb3RTcGFuQXR0cmlidXRlcy5nZXQoJ25leHQucm91dGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gYCR7bWV0aG9kfSAke3JvdXRlfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXh0LnJvdXRlJzogcm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAucm91dGUnOiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV4dC5zcGFuX25hbWUnOiBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4udXBkYXRlTmFtZShuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4udXBkYXRlTmFtZShgJHttZXRob2R9ICR7cmVxLnVybH1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhIGJhY2tncm91bmQgcmV2YWxpZGF0ZSB3ZSBuZWVkIHRvIHJlcG9ydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZXF1ZXN0IGVycm9yIGhlcmUgYXMgaXQgd29uJ3QgYmUgYnViYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0NhY2hlRW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IHByZXZpb3VzQ2FjaGVFbnRyeS5pc1N0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHJvdXRlTW9kdWxlLm9uUmVxdWVzdEVycm9yKHJlcSwgZXJyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJLaW5kOiAnUGFnZXMgUm91dGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlUGF0aDogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlVHlwZTogJ3JlbmRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlUmVhc29uOiAoMCwgX3V0aWxzLmdldFJldmFsaWRhdGVSZWFzb24pKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGU6IGhhc1N0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCByb3V0ZXJTZXJ2ZXJDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSd2ZSBhbHJlYWR5IGdlbmVyYXRlZCB0aGlzIHBhZ2Ugd2Ugbm8gbG9uZ2VyXG4gICAgICAgICAgICAgICAgICAgIC8vIHNlcnZlIHRoZSBmYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNDYWNoZUVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0lzckZhbGxiYWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzSXNyRmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrUmVzcG9uc2UgPSBhd2FpdCByb3V0ZU1vZHVsZS5nZXRSZXNwb25zZUNhY2hlKHJlcSkuZ2V0KHJvdXRlTW9kdWxlLmlzRGV2ID8gbnVsbCA6IGxvY2FsZSA/IGAvJHtsb2NhbGV9JHtzcmNQYWdlfWAgOiBzcmNQYWdlLCBhc3luYyAoeyBwcmV2aW91c0NhY2hlRW50cnk6IHByZXZpb3VzRmFsbGJhY2tDYWNoZUVudHJ5ID0gbnVsbCB9KT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcm91dGVNb2R1bGUuaXNEZXYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfdXRpbHMyLnRvUmVzcG9uc2VDYWNoZUVudHJ5KShwcmV2aW91c0ZhbGxiYWNrQ2FjaGVFbnRyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb1JlbmRlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlS2luZDogX3JvdXRla2luZC5Sb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFjazogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudGFsQ2FjaGU6IGF3YWl0IHJvdXRlTW9kdWxlLmdldEluY3JlbWVudGFsQ2FjaGUocmVxLCBuZXh0Q29uZmlnLCBwcmVyZW5kZXJNYW5pZmVzdCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FpdFVudGlsOiBjdHgud2FpdFVudGlsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1Jlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBjYWNoZSBjb250cm9sIGZyb20gdGhlIHJlc3BvbnNlIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZWQgaW4gdGhlIHN1cnJvdW5kaW5nIGNhY2hlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmYWxsYmFja1Jlc3BvbnNlLmNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja1Jlc3BvbnNlLmlzTWlzcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbGxiYWNrUmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdtaW5pbWFsTW9kZScpICYmIGlzT25EZW1hbmRSZXZhbGlkYXRlICYmIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkICYmICFwcmV2aW91c0NhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24tZGVtYW5kIHJldmFsaWRhdGUgYWx3YXlzIHNldHMgdGhpcyBoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ3gtbmV4dGpzLWNhY2hlJywgJ1JFVkFMSURBVEVEJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZW5kKCdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNJc3JGYWxsYmFjayAmJiAocHJldmlvdXNDYWNoZUVudHJ5ID09IG51bGwgPyB2b2lkIDAgOiAoX3ByZXZpb3VzQ2FjaGVFbnRyeV92YWx1ZSA9IHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9wcmV2aW91c0NhY2hlRW50cnlfdmFsdWUua2luZCkgPT09IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5QQUdFUykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWw6IG5ldyBfcmVuZGVycmVzdWx0LmRlZmF1bHQoQnVmZmVyLmZyb20ocHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLmh0bWwpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogX2NvbnN0YW50czEuSFRNTF9DT05URU5UX1RZUEVfSEVBREVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBwcmV2aW91c0NhY2hlRW50cnkudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHByZXZpb3VzQ2FjaGVFbnRyeS52YWx1ZS5oZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcHJldmlvdXNDYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvUmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByb3V0ZU1vZHVsZS5oYW5kbGVSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5LFxuICAgICAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgICAgIG5leHRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlS2luZDogX3JvdXRla2luZC5Sb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlT25seUdlbmVyYXRlZCxcbiAgICAgICAgICAgICAgICAgICAgd2FpdFVudGlsOiBjdHgud2FpdFVudGlsLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZUdlbmVyYXRvcjogcmVzcG9uc2VHZW5lcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgIHByZXJlbmRlck1hbmlmZXN0XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgY2FjaGUgaGl0IHRoaXMgd2Fzbid0IGFuIElTUiBmYWxsYmFja1xuICAgICAgICAgICAgICAgIC8vIGJ1dCBpdCB3YXNuJ3QgZ2VuZXJhdGVkIGR1cmluZyBidWlsZCBzbyBpc24ndCBpbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBwcmVyZW5kZXItbWFuaWZlc3RcbiAgICAgICAgICAgICAgICBpZiAoaXNJc3JGYWxsYmFjayAmJiAhKHJlc3VsdCA9PSBudWxsID8gdm9pZCAwIDogcmVzdWx0LmlzTWlzcykpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNJc3JGYWxsYmFjayA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyByZXNwb25zZSBpcyBmaW5pc2hlZCBpcyBubyBjYWNoZSBlbnRyeVxuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGhhc1N0YXRpY1Byb3BzICYmICEoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdtaW5pbWFsTW9kZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ3gtbmV4dGpzLWNhY2hlJywgaXNPbkRlbWFuZFJldmFsaWRhdGUgPyAnUkVWQUxJREFURUQnIDogcmVzdWx0LmlzTWlzcyA/ICdNSVNTJyA6IHJlc3VsdC5pc1N0YWxlID8gJ1NUQUxFJyA6ICdISVQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1N0YXRpY1Byb3BzIHx8IGlzSXNyRmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXMuZ2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpczQwNFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm90Rm91bmRSZXZhbGlkYXRlID0gKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxLCAnbm90Rm91bmRSZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IHR5cGVvZiBub3RGb3VuZFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnID8gMCA6IG5vdEZvdW5kUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpczUwMFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuY2FjaGVDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjYWNoZSBlbnRyeSBoYXMgYSBjYWNoZSBjb250cm9sIHdpdGggYSByZXZhbGlkYXRlIHZhbHVlIHRoYXQnc1xuICAgICAgICAgICAgICAgICAgICAvLyBhIG51bWJlciwgdXNlIGl0LlxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdC5jYWNoZUNvbnRyb2wucmV2YWxpZGF0ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfcmVzdWx0X2NhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuY2FjaGVDb250cm9sLnJldmFsaWRhdGUgPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCByZXZhbGlkYXRlIGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQ6ICR7cmVzdWx0LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlfSA8IDFgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUyMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogcmVzdWx0LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogKChfcmVzdWx0X2NhY2hlQ29udHJvbCA9IHJlc3VsdC5jYWNoZUNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzdWx0X2NhY2hlQ29udHJvbC5leHBpcmUpID8/IG5leHRDb25maWcuZXhwaXJlVGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldmFsaWRhdGU6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogX2NvbnN0YW50czEuQ0FDSEVfT05FX1lFQVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgY2FjaGUgY29udHJvbCBpcyBhbHJlYWR5IHNldCBvbiB0aGUgcmVzcG9uc2Ugd2UgZG9uJ3RcbiAgICAgICAgICAgICAgICAvLyBvdmVycmlkZSBpdCB0byBhbGxvdyB1c2VycyB0byBjdXN0b21pemUgaXQgdmlhIG5leHQuY29uZmlnXG4gICAgICAgICAgICAgICAgaWYgKGNhY2hlQ29udHJvbCAmJiAhcmVzLmdldEhlYWRlcignQ2FjaGUtQ29udHJvbCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAoMCwgX2NhY2hlY29udHJvbC5nZXRDYWNoZUNvbnRyb2xIZWFkZXIpKGNhY2hlQ29udHJvbCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBub3RGb3VuZDogdHJ1ZSBjYXNlXG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9yZXN1bHRfY2FjaGVDb250cm9sMTtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIHJldmFsaWRhdGUgbWV0YWRhdGEgYmVmb3JlIHJlbmRlcmluZyA0MDQgcGFnZVxuICAgICAgICAgICAgICAgICAgICAvLyBzbyB0aGF0IHdlIGNhbiB1c2UgdGhpcyBhcyBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZVxuICAgICAgICAgICAgICAgICAgICAvLyBjYWNoZS1jb250cm9sIGhlYWRlciBpbnN0ZWFkIG9mIHdoYXQgdGhlIDQwNCBwYWdlIHJldHVybnNcbiAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHRoZSByZXZhbGlkYXRlIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICgwLCBfcmVxdWVzdG1ldGEuYWRkUmVxdWVzdE1ldGEpKHJlcSwgJ25vdEZvdW5kUmV2YWxpZGF0ZScsIChfcmVzdWx0X2NhY2hlQ29udHJvbDEgPSByZXN1bHQuY2FjaGVDb250cm9sKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3VsdF9jYWNoZUNvbnRyb2wxLnJldmFsaWRhdGUpO1xuICAgICAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmV4dERhdGFSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZW5kKCd7XCJub3RGb3VuZFwiOnRydWV9Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogc2hvdWxkIHJvdXRlLW1vZHVsZSBpdHNlbGYgaGFuZGxlIHJlbmRlcmluZyB0aGUgNDA0XG4gICAgICAgICAgICAgICAgICAgIGlmIChyb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnJlbmRlcjQwNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcm91dGVyU2VydmVyQ29udGV4dC5yZW5kZXI0MDQocmVxLCByZXMsIHBhcnNlZFVybCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmVuZCgnVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZS5raW5kID09PSBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuUkVESVJFQ1QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTmV4dERhdGFSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdjb250ZW50LXR5cGUnLCBfY29uc3RhbnRzMS5KU09OX0NPTlRFTlRfVFlQRV9IRUFERVIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmVuZChKU09OLnN0cmluZ2lmeShyZXN1bHQudmFsdWUucHJvcHMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZVJlZGlyZWN0ID0gKHBhZ2VEYXRhKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZGlyZWN0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogcGFnZURhdGEucGFnZVByb3BzLl9fTl9SRURJUkVDVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcGFnZURhdGEucGFnZVByb3BzLl9fTl9SRURJUkVDVF9TVEFUVVMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBwYWdlRGF0YS5wYWdlUHJvcHMuX19OX1JFRElSRUNUX0JBU0VfUEFUSFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29kZSA9ICgwLCBfcmVkaXJlY3RzdGF0dXMuZ2V0UmVkaXJlY3RTdGF0dXMpKHJlZGlyZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGJhc2VQYXRoIH0gPSBuZXh0Q29uZmlnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiYXNlUGF0aCAmJiByZWRpcmVjdC5iYXNlUGF0aCAhPT0gZmFsc2UgJiYgcmVkaXJlY3QuZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0LmRlc3RpbmF0aW9uID0gYCR7YmFzZVBhdGh9JHtyZWRpcmVjdC5kZXN0aW5hdGlvbn1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVkaXJlY3QuZGVzdGluYXRpb24uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0LmRlc3RpbmF0aW9uID0gKDAsIF91dGlsczEubm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzKShyZWRpcmVjdC5kZXN0aW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdMb2NhdGlvbicsIHJlZGlyZWN0LmRlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzQ29kZSA9PT0gX3JlZGlyZWN0c3RhdHVzY29kZS5SZWRpcmVjdFN0YXR1c0NvZGUuUGVybWFuZW50UmVkaXJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignUmVmcmVzaCcsIGAwO3VybD0ke3JlZGlyZWN0LmRlc3RpbmF0aW9ufWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuZW5kKHJlZGlyZWN0LmRlc3RpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVSZWRpcmVjdChyZXN1bHQudmFsdWUucHJvcHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZS5raW5kICE9PSBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YXJpYW50OiByZWNlaXZlZCBub24tcGFnZXMgY2FjaGUgZW50cnkgaW4gcGFnZXMgaGFuZGxlcmApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU2OTVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBJbiBkZXYsIHdlIHNob3VsZCBub3QgY2FjaGUgcGFnZXMgZm9yIGFueSByZWFzb24uXG4gICAgICAgICAgICAgICAgaWYgKHJvdXRlTW9kdWxlLmlzRGV2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBEcmFmdCBtb2RlIHNob3VsZCBuZXZlciBiZSBjYWNoZWRcbiAgICAgICAgICAgICAgICBpZiAoaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICdwcml2YXRlLCBuby1jYWNoZSwgbm8tc3RvcmUsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHdoZW4gaW52b2tpbmcgX2Vycm9yIGJlZm9yZSBwYWdlcy81MDAgd2UgZG9uJ3QgYWN0dWFsbHlcbiAgICAgICAgICAgICAgICAvLyBzZW5kIHRoZSBfZXJyb3IgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICBpZiAoKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxLCAnY3VzdG9tRXJyb3JSZW5kZXInKSB8fCBpc0Vycm9yUGFnZSAmJiAoMCwgX3JlcXVlc3RtZXRhLmdldFJlcXVlc3RNZXRhKShyZXEsICdtaW5pbWFsTW9kZScpICYmIHJlcy5zdGF0dXNDb2RlID09PSA1MDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0ICgwLCBfc2VuZHBheWxvYWQuc2VuZFJlbmRlclJlc3VsdCkoe1xuICAgICAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIHJlbmRlcmluZyB0aGUgZXJyb3IgcGFnZSBpdCdzIG5vdCBhIGRhdGEgcmVxdWVzdFxuICAgICAgICAgICAgICAgICAgICAvLyBhbnltb3JlXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogaXNOZXh0RGF0YVJlcXVlc3QgJiYgIWlzRXJyb3JQYWdlICYmICFpczUwMFBhZ2UgPyBuZXcgX3JlbmRlcnJlc3VsdC5kZWZhdWx0KEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHJlc3VsdC52YWx1ZS5wYWdlRGF0YSkpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogX2NvbnN0YW50czEuSlNPTl9DT05URU5UX1RZUEVfSEVBREVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3VsdC52YWx1ZS5odG1sLm1ldGFkYXRhXG4gICAgICAgICAgICAgICAgICAgIH0pIDogcmVzdWx0LnZhbHVlLmh0bWwsXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiByb3V0ZU1vZHVsZS5pc0RldiA/IHVuZGVmaW5lZCA6IGNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vIFRPRE86IGFjdGl2ZVNwYW4gY29kZSBwYXRoIGlzIGZvciB3aGVuIHdyYXBwZWQgYnlcbiAgICAgICAgICAgIC8vIG5leHQtc2VydmVyIGNhbiBiZSByZW1vdmVkIHdoZW4gdGhpcyBpcyBubyBsb25nZXIgdXNlZFxuICAgICAgICAgICAgaWYgKGFjdGl2ZVNwYW4pIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVSZXNwb25zZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0cmFjZXIud2l0aFByb3BhZ2F0ZWRDb250ZXh0KHJlcS5oZWFkZXJzLCAoKT0+dHJhY2VyLnRyYWNlKF9jb25zdGFudHMuQmFzZVNlcnZlclNwYW4uaGFuZGxlUmVxdWVzdCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbk5hbWU6IGAke21ldGhvZH0gJHtyZXEudXJsfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBfdHJhY2VyLlNwYW5LaW5kLlNFUlZFUixcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC5tZXRob2QnOiBtZXRob2QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAudGFyZ2V0JzogcmVxLnVybFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LCBoYW5kbGVSZXNwb25zZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGlmICghKGVyciBpbnN0YW5jZW9mIF9ub2ZhbGxiYWNrZXJyb3JleHRlcm5hbC5Ob0ZhbGxiYWNrRXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgcm91dGVNb2R1bGUub25SZXF1ZXN0RXJyb3IocmVxLCBlcnIsIHtcbiAgICAgICAgICAgICAgICAgICAgcm91dGVyS2luZDogJ1BhZ2VzIFJvdXRlcicsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlUGF0aDogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgcm91dGVUeXBlOiAncmVuZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZVJlYXNvbjogKDAsIF91dGlscy5nZXRSZXZhbGlkYXRlUmVhc29uKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGU6IGhhc1N0YXRpY1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9LCByb3V0ZXJTZXJ2ZXJDb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHJldGhyb3cgc28gdGhhdCB3ZSBjYW4gaGFuZGxlIHNlcnZpbmcgZXJyb3IgcGFnZVxuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgfTtcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLWhhbmRsZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/pages-handler.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js":
|
||
/*!********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js ***!
|
||
\********************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.AmpContext;\n\n//# sourceMappingURL=amp-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvYW1wLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix5TEFBaUY7O0FBRWpGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2FtcC1jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsnY29udGV4dHMnXS5BbXBDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbXAtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js":
|
||
/*!*****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js ***!
|
||
\*****************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.HeadManagerContext;\n\n//# sourceMappingURL=head-manager-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvaGVhZC1tYW5hZ2VyLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixpTUFBeUY7O0FBRXpGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2hlYWQtbWFuYWdlci1jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsnY29udGV4dHMnXS5IZWFkTWFuYWdlckNvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWQtbWFuYWdlci1jb250ZXh0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js":
|
||
/*!*********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js ***!
|
||
\*********************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.HtmlContext;\n\n//# sourceMappingURL=html-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvaHRtbC1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMExBQWtGOztBQUVsRiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9wYWdlcy92ZW5kb3JlZC9jb250ZXh0cy9odG1sLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydjb250ZXh0cyddLkh0bWxDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1odG1sLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/send-payload.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/server/send-payload.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 sendEtagResponse: function() {\n return sendEtagResponse;\n },\n sendRenderResult: function() {\n return sendRenderResult;\n }\n});\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _etag = __webpack_require__(/*! ./lib/etag */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/etag.js\");\nconst _fresh = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/fresh */ \"(pages-dir-node)/./node_modules/next/dist/compiled/fresh/index.js\"));\nconst _cachecontrol = __webpack_require__(/*! ./lib/cache-control */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/cache-control.js\");\nconst _constants = __webpack_require__(/*! ../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction sendEtagResponse(req, res, etag) {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */ res.setHeader('ETag', etag);\n }\n if ((0, _fresh.default)(req.headers, {\n etag\n })) {\n res.statusCode = 304;\n res.end();\n return true;\n }\n return false;\n}\nasync function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl }) {\n if ((0, _utils.isResSent)(res)) {\n return;\n }\n if (poweredByHeader && result.contentType === _constants.HTML_CONTENT_TYPE_HEADER) {\n res.setHeader('X-Powered-By', 'Next.js');\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));\n }\n const payload = result.isDynamic ? null : result.toUnchunkedString();\n if (generateEtags && payload !== null) {\n const etag = (0, _etag.generateETag)(payload);\n if (sendEtagResponse(req, res, etag)) {\n return;\n }\n }\n if (!res.getHeader('Content-Type') && result.contentType) {\n res.setHeader('Content-Type', result.contentType);\n }\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload));\n }\n if (req.method === 'HEAD') {\n res.end(null);\n return;\n }\n if (payload !== null) {\n res.end(payload);\n return;\n }\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res);\n}\n\n//# sourceMappingURL=send-payload.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3NlbmQtcGF5bG9hZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsMEZBQXFCO0FBQzVDLGNBQWMsbUJBQU8sQ0FBQyxnRkFBWTtBQUNsQyxzREFBc0QsbUJBQU8sQ0FBQyxtR0FBMEI7QUFDeEYsc0JBQXNCLG1CQUFPLENBQUMsa0dBQXFCO0FBQ25ELG1CQUFtQixtQkFBTyxDQUFDLG9GQUFrQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsZ0VBQWdFO0FBQ2xHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3NlbmQtcGF5bG9hZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNlbmRFdGFnUmVzcG9uc2U6IG51bGwsXG4gICAgc2VuZFJlbmRlclJlc3VsdDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBzZW5kRXRhZ1Jlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRFdGFnUmVzcG9uc2U7XG4gICAgfSxcbiAgICBzZW5kUmVuZGVyUmVzdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQ7XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi91dGlsc1wiKTtcbmNvbnN0IF9ldGFnID0gcmVxdWlyZShcIi4vbGliL2V0YWdcIik7XG5jb25zdCBfZnJlc2ggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoXCIpKTtcbmNvbnN0IF9jYWNoZWNvbnRyb2wgPSByZXF1aXJlKFwiLi9saWIvY2FjaGUtY29udHJvbFwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gc2VuZEV0YWdSZXNwb25zZShyZXEsIHJlcywgZXRhZykge1xuICAgIGlmIChldGFnKSB7XG4gICAgICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2ZXIgZ2VuZXJhdGluZyBhIDMwNCByZXNwb25zZSBNVVNUIGdlbmVyYXRlIGFueSBvZiB0aGVcbiAgICAgKiBmb2xsb3dpbmcgaGVhZGVyIGZpZWxkcyB0aGF0IHdvdWxkIGhhdmUgYmVlbiBzZW50IGluIGEgMjAwIChPSylcbiAgICAgKiByZXNwb25zZSB0byB0aGUgc2FtZSByZXF1ZXN0OiBDYWNoZS1Db250cm9sLCBDb250ZW50LUxvY2F0aW9uLCBEYXRlLFxuICAgICAqIEVUYWcsIEV4cGlyZXMsIGFuZCBWYXJ5LiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMiNzZWN0aW9uLTQuMVxuICAgICAqLyByZXMuc2V0SGVhZGVyKCdFVGFnJywgZXRhZyk7XG4gICAgfVxuICAgIGlmICgoMCwgX2ZyZXNoLmRlZmF1bHQpKHJlcS5oZWFkZXJzLCB7XG4gICAgICAgIGV0YWdcbiAgICB9KSkge1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDMwNDtcbiAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuYXN5bmMgZnVuY3Rpb24gc2VuZFJlbmRlclJlc3VsdCh7IHJlcSwgcmVzLCByZXN1bHQsIGdlbmVyYXRlRXRhZ3MsIHBvd2VyZWRCeUhlYWRlciwgY2FjaGVDb250cm9sIH0pIHtcbiAgICBpZiAoKDAsIF91dGlscy5pc1Jlc1NlbnQpKHJlcykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG93ZXJlZEJ5SGVhZGVyICYmIHJlc3VsdC5jb250ZW50VHlwZSA9PT0gX2NvbnN0YW50cy5IVE1MX0NPTlRFTlRfVFlQRV9IRUFERVIpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignWC1Qb3dlcmVkLUJ5JywgJ05leHQuanMnKTtcbiAgICB9XG4gICAgLy8gSWYgY2FjaGUgY29udHJvbCBpcyBhbHJlYWR5IHNldCBvbiB0aGUgcmVzcG9uc2Ugd2UgZG9uJ3RcbiAgICAvLyBvdmVycmlkZSBpdCB0byBhbGxvdyB1c2VycyB0byBjdXN0b21pemUgaXQgdmlhIG5leHQuY29uZmlnXG4gICAgaWYgKGNhY2hlQ29udHJvbCAmJiAhcmVzLmdldEhlYWRlcignQ2FjaGUtQ29udHJvbCcpKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAoMCwgX2NhY2hlY29udHJvbC5nZXRDYWNoZUNvbnRyb2xIZWFkZXIpKGNhY2hlQ29udHJvbCkpO1xuICAgIH1cbiAgICBjb25zdCBwYXlsb2FkID0gcmVzdWx0LmlzRHluYW1pYyA/IG51bGwgOiByZXN1bHQudG9VbmNodW5rZWRTdHJpbmcoKTtcbiAgICBpZiAoZ2VuZXJhdGVFdGFncyAmJiBwYXlsb2FkICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGV0YWcgPSAoMCwgX2V0YWcuZ2VuZXJhdGVFVGFnKShwYXlsb2FkKTtcbiAgICAgICAgaWYgKHNlbmRFdGFnUmVzcG9uc2UocmVxLCByZXMsIGV0YWcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFyZXMuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKSAmJiByZXN1bHQuY29udGVudFR5cGUpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1UeXBlJywgcmVzdWx0LmNvbnRlbnRUeXBlKTtcbiAgICB9XG4gICAgaWYgKHBheWxvYWQpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC1MZW5ndGgnLCBCdWZmZXIuYnl0ZUxlbmd0aChwYXlsb2FkKSk7XG4gICAgfVxuICAgIGlmIChyZXEubWV0aG9kID09PSAnSEVBRCcpIHtcbiAgICAgICAgcmVzLmVuZChudWxsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocGF5bG9hZCAhPT0gbnVsbCkge1xuICAgICAgICByZXMuZW5kKHBheWxvYWQpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFBpcGUgdGhlIHJlbmRlciByZXN1bHQgdG8gdGhlIHJlc3BvbnNlIGFmdGVyIHdlIGdldCBhIHdyaXRlciBmb3IgaXQuXG4gICAgYXdhaXQgcmVzdWx0LnBpcGVUb05vZGVSZXNwb25zZShyZXMpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZW5kLXBheWxvYWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/send-payload.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/stream-utils/encoded-tags.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/stream-utils/encoded-tags.js ***!
|
||
\********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ENCODED_TAGS\", ({\n enumerable: true,\n get: function() {\n return ENCODED_TAGS;\n }\n}));\nconst ENCODED_TAGS = {\n // opening tags do not have the closing `>` since they can contain other attributes such as `<body className=''>`\n OPENING: {\n // <html\n HTML: new Uint8Array([\n 60,\n 104,\n 116,\n 109,\n 108\n ]),\n // <body\n BODY: new Uint8Array([\n 60,\n 98,\n 111,\n 100,\n 121\n ])\n },\n CLOSED: {\n // </head>\n HEAD: new Uint8Array([\n 60,\n 47,\n 104,\n 101,\n 97,\n 100,\n 62\n ]),\n // </body>\n BODY: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62\n ]),\n // </html>\n HTML: new Uint8Array([\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ]),\n // </body></html>\n BODY_AND_HTML: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62,\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ])\n },\n META: {\n // Only the match the prefix cause the suffix can be different wether it's xml compatible or not \">\" or \"/>\"\n // <meta name=\"«nxt-icon»\"\n // This is a special mark that will be replaced by the icon insertion script tag.\n ICON_MARK: new Uint8Array([\n 60,\n 109,\n 101,\n 116,\n 97,\n 32,\n 110,\n 97,\n 109,\n 101,\n 61,\n 34,\n 194,\n 171,\n 110,\n 120,\n 116,\n 45,\n 105,\n 99,\n 111,\n 110,\n 194,\n 187,\n 34\n ])\n }\n};\n\n//# sourceMappingURL=encoded-tags.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9lbmNvZGVkLXRhZ3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixnREFBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvZW5jb2RlZC10YWdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiRU5DT0RFRF9UQUdTXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFTkNPREVEX1RBR1M7XG4gICAgfVxufSk7XG5jb25zdCBFTkNPREVEX1RBR1MgPSB7XG4gICAgLy8gb3BlbmluZyB0YWdzIGRvIG5vdCBoYXZlIHRoZSBjbG9zaW5nIGA+YCBzaW5jZSB0aGV5IGNhbiBjb250YWluIG90aGVyIGF0dHJpYnV0ZXMgc3VjaCBhcyBgPGJvZHkgY2xhc3NOYW1lPScnPmBcbiAgICBPUEVOSU5HOiB7XG4gICAgICAgIC8vIDxodG1sXG4gICAgICAgIEhUTUw6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTA4XG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8Ym9keVxuICAgICAgICBCT0RZOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDk4LFxuICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMTIxXG4gICAgICAgIF0pXG4gICAgfSxcbiAgICBDTE9TRUQ6IHtcbiAgICAgICAgLy8gPC9oZWFkPlxuICAgICAgICBIRUFEOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPC9ib2R5PlxuICAgICAgICBCT0RZOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgOTgsXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAxMjEsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPC9odG1sPlxuICAgICAgICBIVE1MOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgMTA0LFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTA4LFxuICAgICAgICAgICAgNjJcbiAgICAgICAgXSksXG4gICAgICAgIC8vIDwvYm9keT48L2h0bWw+XG4gICAgICAgIEJPRFlfQU5EX0hUTUw6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICA5OCxcbiAgICAgICAgICAgIDExMSxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDEyMSxcbiAgICAgICAgICAgIDYyLFxuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwOCxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pXG4gICAgfSxcbiAgICBNRVRBOiB7XG4gICAgICAgIC8vIE9ubHkgdGhlIG1hdGNoIHRoZSBwcmVmaXggY2F1c2UgdGhlIHN1ZmZpeCBjYW4gYmUgZGlmZmVyZW50IHdldGhlciBpdCdzIHhtbCBjb21wYXRpYmxlIG9yIG5vdCBcIj5cIiBvciBcIi8+XCJcbiAgICAgICAgLy8gPG1ldGEgbmFtZT1cIsKrbnh0LWljb27Cu1wiXG4gICAgICAgIC8vIFRoaXMgaXMgYSBzcGVjaWFsIG1hcmsgdGhhdCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBpY29uIGluc2VydGlvbiBzY3JpcHQgdGFnLlxuICAgICAgICBJQ09OX01BUks6IG5ldyBVaW50OEFycmF5KFtcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgMTE2LFxuICAgICAgICAgICAgOTcsXG4gICAgICAgICAgICAzMixcbiAgICAgICAgICAgIDExMCxcbiAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgMTA5LFxuICAgICAgICAgICAgMTAxLFxuICAgICAgICAgICAgNjEsXG4gICAgICAgICAgICAzNCxcbiAgICAgICAgICAgIDE5NCxcbiAgICAgICAgICAgIDE3MSxcbiAgICAgICAgICAgIDExMCxcbiAgICAgICAgICAgIDEyMCxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDQ1LFxuICAgICAgICAgICAgMTA1LFxuICAgICAgICAgICAgOTksXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICAxOTQsXG4gICAgICAgICAgICAxODcsXG4gICAgICAgICAgICAzNFxuICAgICAgICBdKVxuICAgIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVuY29kZWQtdGFncy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/stream-utils/node-web-streams-helper.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 chainStreams: function() {\n return chainStreams;\n },\n continueDynamicHTMLResume: function() {\n return continueDynamicHTMLResume;\n },\n continueDynamicPrerender: function() {\n return continueDynamicPrerender;\n },\n continueFizzStream: function() {\n return continueFizzStream;\n },\n continueStaticPrerender: function() {\n return continueStaticPrerender;\n },\n createBufferedTransformStream: function() {\n return createBufferedTransformStream;\n },\n createDocumentClosingStream: function() {\n return createDocumentClosingStream;\n },\n createRootLayoutValidatorStream: function() {\n return createRootLayoutValidatorStream;\n },\n renderToInitialFizzStream: function() {\n return renderToInitialFizzStream;\n },\n streamFromBuffer: function() {\n return streamFromBuffer;\n },\n streamFromString: function() {\n return streamFromString;\n },\n streamToBuffer: function() {\n return streamToBuffer;\n },\n streamToString: function() {\n return streamToString;\n }\n});\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ../lib/trace/constants */ \"(pages-dir-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _detachedpromise = __webpack_require__(/*! ../../lib/detached-promise */ \"(pages-dir-node)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(pages-dir-node)/./node_modules/next/dist/lib/scheduler.js\");\nconst _encodedtags = __webpack_require__(/*! ./encoded-tags */ \"(pages-dir-node)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\");\nconst _uint8arrayhelpers = __webpack_require__(/*! ./uint8array-helpers */ \"(pages-dir-node)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\");\nconst _constants1 = __webpack_require__(/*! ../../shared/lib/errors/constants */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/errors/constants.js\");\nconst _outputexportprefetchencoding = __webpack_require__(/*! ../../shared/lib/segment-cache/output-export-prefetch-encoding */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\");\nfunction voidCatch() {\n// this catcher is designed to be used with pipeTo where we expect the underlying\n// pipe implementation to forward errors but we don't want the pipeTo promise to reject\n// and be unhandled\n}\n// We can share the same encoder instance everywhere\n// Notably we cannot do the same for TextDecoder because it is stateful\n// when handling streaming data\nconst encoder = new TextEncoder();\nfunction chainStreams(...streams) {\n // If we have no streams, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n if (streams.length === 0) {\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n // If we only have 1 stream we fast path it by returning just this stream\n if (streams.length === 1) {\n return streams[0];\n }\n const { readable, writable } = new TransformStream();\n // We always initiate pipeTo immediately. We know we have at least 2 streams\n // so we need to avoid closing the writable when this one finishes.\n let promise = streams[0].pipeTo(writable, {\n preventClose: true\n });\n let i = 1;\n for(; i < streams.length - 1; i++){\n const nextStream = streams[i];\n promise = promise.then(()=>nextStream.pipeTo(writable, {\n preventClose: true\n }));\n }\n // We can omit the length check because we halted before the last stream and there\n // is at least two streams so the lastStream here will always be defined\n const lastStream = streams[i];\n promise = promise.then(()=>lastStream.pipeTo(writable));\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(voidCatch);\n return readable;\n}\nfunction streamFromString(str) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(encoder.encode(str));\n controller.close();\n }\n });\n}\nfunction streamFromBuffer(chunk) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(chunk);\n controller.close();\n }\n });\n}\nasync function streamToBuffer(stream) {\n const reader = stream.getReader();\n const chunks = [];\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n }\n return Buffer.concat(chunks);\n}\nasync function streamToString(stream, signal) {\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n let string = '';\n for await (const chunk of stream){\n if (signal == null ? void 0 : signal.aborted) {\n return string;\n }\n string += decoder.decode(chunk, {\n stream: true\n });\n }\n string += decoder.decode();\n return string;\n}\nfunction createBufferedTransformStream() {\n let bufferedChunks = [];\n let bufferByteLength = 0;\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 _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n const chunk = new Uint8Array(bufferByteLength);\n let copiedBytes = 0;\n for(let i = 0; i < bufferedChunks.length; i++){\n const bufferedChunk = bufferedChunks[i];\n chunk.set(bufferedChunk, copiedBytes);\n copiedBytes += bufferedChunk.byteLength;\n }\n // We just wrote all the buffered chunks so we need to reset the bufferedChunks array\n // and our bufferByteLength to prepare for the next round of buffered chunks\n bufferedChunks.length = 0;\n bufferByteLength = 0;\n controller.enqueue(chunk);\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 bufferedChunks.push(chunk);\n bufferByteLength += chunk.byteLength;\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 createPrefetchCommentStream(isBuildTimePrerendering, buildId) {\n // Insert an extra comment at the beginning of the HTML document. This must\n // come after the DOCTYPE, which is inserted by React.\n //\n // The first chunk sent by React will contain the doctype. After that, we can\n // pass through the rest of the chunks as-is.\n let didTransformFirstChunk = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (isBuildTimePrerendering && !didTransformFirstChunk) {\n didTransformFirstChunk = true;\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n const chunkStr = decoder.decode(chunk, {\n stream: true\n });\n const updatedChunkStr = (0, _outputexportprefetchencoding.insertBuildIdComment)(chunkStr, buildId);\n controller.enqueue(encoder.encode(updatedChunkStr));\n return;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return (0, _tracer.getTracer)().trace(_constants.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nfunction createMetadataTransformStream(insert) {\n let chunkIndex = -1;\n let isMarkRemoved = false;\n return new TransformStream({\n async transform (chunk, controller) {\n let iconMarkIndex = -1;\n let closedHeadIndex = -1;\n chunkIndex++;\n if (isMarkRemoved) {\n controller.enqueue(chunk);\n return;\n }\n let iconMarkLength = 0;\n // Only search for the closed head tag once\n if (iconMarkIndex === -1) {\n iconMarkIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.META.ICON_MARK);\n if (iconMarkIndex === -1) {\n controller.enqueue(chunk);\n return;\n } else {\n // When we found the `<meta name=\"«nxt-icon»\"` tag prefix, we will remove it from the chunk.\n // Its close tag could either be `/>` or `>`, checking the next char to ensure we cover both cases.\n iconMarkLength = _encodedtags.ENCODED_TAGS.META.ICON_MARK.length;\n // Check if next char is /, this is for xml mode.\n if (chunk[iconMarkIndex + iconMarkLength] === 47) {\n iconMarkLength += 2;\n } else {\n // The last char is `>`\n iconMarkLength++;\n }\n }\n }\n // Check if icon mark is inside <head> tag in the first chunk.\n if (chunkIndex === 0) {\n closedHeadIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n if (iconMarkIndex !== -1) {\n // The mark icon is located in the 1st chunk before the head tag.\n // We do not need to insert the script tag in this case because it's in the head.\n // Just remove the icon mark from the chunk.\n if (iconMarkIndex < closedHeadIndex) {\n const replaced = new Uint8Array(chunk.length - iconMarkLength);\n // Remove the icon mark from the chunk.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex);\n chunk = replaced;\n } else {\n // The icon mark is after the head tag, replace and insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(encodedInsertion, iconMarkIndex);\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n }\n isMarkRemoved = true;\n }\n // If there's no icon mark located, it will be handled later when if present in the following chunks.\n } else {\n // When it's appeared in the following chunks, we'll need to\n // remove the mark and then insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n // Replace the icon mark with the hoist script or empty string.\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n // Set the first part of the chunk, before the icon mark.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n // Set the insertion after the icon mark.\n replaced.set(encodedInsertion, iconMarkIndex);\n // Set the rest of the chunk after the icon mark.\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n isMarkRemoved = true;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction createHeadInsertionTransformStream(insert) {\n let inserted = false;\n // We need to track if this transform saw any bytes because if it didn't\n // we won't want to insert any server HTML at all\n let hasBytes = false;\n return new TransformStream({\n async transform (chunk, controller) {\n hasBytes = true;\n const insertion = await insert();\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n controller.enqueue(encodedInsertion);\n }\n controller.enqueue(chunk);\n } else {\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = <head><meta charset=\"utf-8\"></head>\n // insertion = <script>...</script>\n // output = <head><meta charset=\"utf-8\"> [ <script>...</script> ] </head>\n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, index));\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, index);\n // Append the rest of the chunk\n insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n } else {\n controller.enqueue(chunk);\n }\n inserted = true;\n } else {\n // This will happens in PPR rendering during next start, when the page is partially rendered.\n // When the page resumes, the head tag will be found in the middle of the chunk.\n // Where we just need to append the insertion and chunk to the current stream.\n // e.g.\n // PPR-static: <head>...</head><body> [ resume content ] </body>\n // PPR-resume: [ insertion ] [ rest content ]\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n controller.enqueue(chunk);\n inserted = true;\n }\n }\n },\n async flush (controller) {\n // Check before closing if there's anything remaining to insert.\n if (hasBytes) {\n const insertion = await insert();\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\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 flush = (controller)=>{\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.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}\nfunction createFlightDataInjectionTransformStream(stream, delayDataUntilFirstHtmlChunk) {\n let htmlStreamFinished = false;\n let pull = null;\n let donePulling = false;\n function startOrContinuePulling(controller) {\n if (!pull) {\n pull = startPulling(controller);\n }\n return pull;\n }\n async function startPulling(controller) {\n const reader = stream.getReader();\n if (delayDataUntilFirstHtmlChunk) {\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 // We don't start reading until we've left the current Task to ensure\n // that it's inserted after flushing the shell. Note that this implementation\n // might get stale if impl details of Fizz change in the future.\n await (0, _scheduler.atLeastOneTask)();\n }\n try {\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n donePulling = true;\n return;\n }\n // We want to prioritize HTML over RSC data.\n // The SSR render is based on the same RSC stream, so when we get a new RSC chunk,\n // we're likely to produce an HTML chunk as well, so give it a chance to flush first.\n if (!delayDataUntilFirstHtmlChunk && !htmlStreamFinished) {\n await (0, _scheduler.atLeastOneTask)();\n }\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n }\n }\n return new TransformStream({\n start (controller) {\n if (!delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n flush (controller) {\n htmlStreamFinished = true;\n if (donePulling) {\n return;\n }\n return startOrContinuePulling(controller);\n }\n });\n}\nconst CLOSE_TAG = '</body></html>';\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() {\n let foundSuffix = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk);\n }\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\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 (chunk.length === _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) {\n return;\n }\n // Write out the part before the suffix.\n const before = chunk.slice(0, index);\n controller.enqueue(before);\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 (chunk.length > _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) {\n // Write out the part after the suffix.\n const after = chunk.slice(index + _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);\n controller.enqueue(after);\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(_encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n }\n });\n}\nfunction createStripDocumentClosingTagsTransform() {\n return new TransformStream({\n transform (chunk, controller) {\n // We rely on the assumption that chunks will never break across a code unit.\n // This is reasonable because we currently concat all of React's output from a single\n // flush into one chunk before streaming it forward which means the chunk will represent\n // a single coherent utf-8 string. This is not safe to use if we change our streaming to no\n // longer do this large buffered chunk\n if ((0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML)) {\n // the entire chunk is the closing tags; return without enqueueing anything.\n return;\n }\n // We assume these tags will go at together at the end of the document and that\n // they won't appear anywhere else in the document. This is not really a safe assumption\n // but until we revamp our streaming infra this is a performant way to string the tags\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY);\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML);\n controller.enqueue(chunk);\n }\n });\n}\nfunction createRootLayoutValidatorStream() {\n let foundHtml = false;\n let foundBody = false;\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 && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.HTML) > -1) {\n foundHtml = true;\n }\n if (!foundBody && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.BODY) > -1) {\n foundBody = true;\n }\n controller.enqueue(chunk);\n },\n flush (controller) {\n const missingTags = [];\n if (!foundHtml) missingTags.push('html');\n if (!foundBody) missingTags.push('body');\n if (!missingTags.length) return;\n controller.enqueue(encoder.encode(`<html id=\"__next_error__\">\n <template\n data-next-error-message=\"Missing ${missingTags.map((c)=>`<${c}>`).join(missingTags.length > 1 ? ' and ' : '')} tags in the root layout.\\nRead more at https://nextjs.org/docs/messages/missing-root-layout-tags\"\n data-next-error-digest=\"${_constants1.MISSING_ROOT_TAGS_ERROR}\"\n data-next-error-stack=\"\"\n ></template>\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, isBuildTimePrerendering, buildId, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) {\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null;\n // If we're generating static HTML we need to wait for it to resolve before continuing.\n if (isStaticGeneration) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Add build id comment to start of the HTML document (in export mode)\n createPrefetchCommentStream(isBuildTimePrerendering, buildId),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\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 ? createFlightDataInjectionTransformStream(inlinedDataStream, true) : null,\n // Validate the root layout for missing html or body tags\n validateRootLayout ? createRootLayoutValidatorStream() : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(),\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 createHeadInsertionTransformStream(getServerInsertedHTML)\n ]);\n}\nasync function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream()).pipeThrough(createStripDocumentClosingTagsTransform())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata));\n}\nasync function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, isBuildTimePrerendering, buildId }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Add build id comment to start of the HTML document (in export mode)\n .pipeThrough(createPrefetchCommentStream(isBuildTimePrerendering, buildId))// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, true))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nasync function continueDynamicHTMLResume(renderStream, { delayDataUntilFirstHtmlChunk, inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata }) {\n return renderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, delayDataUntilFirstHtmlChunk))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nfunction createDocumentClosingStream() {\n return streamFromString(CLOSE_TAG);\n}\n\n//# sourceMappingURL=node-web-streams-helper.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FjTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZ0JBQWdCLG1CQUFPLENBQUMsaUdBQXFCO0FBQzdDLG1CQUFtQixtQkFBTyxDQUFDLHVHQUF3QjtBQUNuRCx5QkFBeUIsbUJBQU8sQ0FBQyxxR0FBNEI7QUFDN0QsbUJBQW1CLG1CQUFPLENBQUMsdUZBQXFCO0FBQ2hELHFCQUFxQixtQkFBTyxDQUFDLHFHQUFnQjtBQUM3QywyQkFBMkIsbUJBQU8sQ0FBQyxpSEFBc0I7QUFDekQsb0JBQW9CLG1CQUFPLENBQUMsbUhBQW1DO0FBQy9ELHNDQUFzQyxtQkFBTyxDQUFDLDZLQUFnRTtBQUM5RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFVBQVUsd0JBQXdCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGNBQWM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiwyQkFBMkI7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EscUNBQXFDLHdDQUF3QztBQUM3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRCx5QkFBeUIsRUFBRSxpREFBaUQ7QUFDN0gsd0NBQXdDLG9DQUFvQztBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsdUpBQXVKO0FBQ3pNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxrREFBa0Q7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRCx1R0FBdUc7QUFDaks7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RCxtR0FBbUc7QUFDNUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNoYWluU3RyZWFtczogbnVsbCxcbiAgICBjb250aW51ZUR5bmFtaWNIVE1MUmVzdW1lOiBudWxsLFxuICAgIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjogbnVsbCxcbiAgICBjb250aW51ZUZpenpTdHJlYW06IG51bGwsXG4gICAgY29udGludWVTdGF0aWNQcmVyZW5kZXI6IG51bGwsXG4gICAgY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW06IG51bGwsXG4gICAgY3JlYXRlRG9jdW1lbnRDbG9zaW5nU3RyZWFtOiBudWxsLFxuICAgIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW06IG51bGwsXG4gICAgcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbTogbnVsbCxcbiAgICBzdHJlYW1Gcm9tQnVmZmVyOiBudWxsLFxuICAgIHN0cmVhbUZyb21TdHJpbmc6IG51bGwsXG4gICAgc3RyZWFtVG9CdWZmZXI6IG51bGwsXG4gICAgc3RyZWFtVG9TdHJpbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY2hhaW5TdHJlYW1zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNoYWluU3RyZWFtcztcbiAgICB9LFxuICAgIGNvbnRpbnVlRHluYW1pY0hUTUxSZXN1bWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVEeW5hbWljSFRNTFJlc3VtZTtcbiAgICB9LFxuICAgIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZUR5bmFtaWNQcmVyZW5kZXI7XG4gICAgfSxcbiAgICBjb250aW51ZUZpenpTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVGaXp6U3RyZWFtO1xuICAgIH0sXG4gICAgY29udGludWVTdGF0aWNQcmVyZW5kZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVTdGF0aWNQcmVyZW5kZXI7XG4gICAgfSxcbiAgICBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTtcbiAgICB9LFxuICAgIGNyZWF0ZURvY3VtZW50Q2xvc2luZ1N0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW07XG4gICAgfSxcbiAgICBjcmVhdGVSb290TGF5b3V0VmFsaWRhdG9yU3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW07XG4gICAgfSxcbiAgICByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW07XG4gICAgfSxcbiAgICBzdHJlYW1Gcm9tQnVmZmVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbUZyb21CdWZmZXI7XG4gICAgfSxcbiAgICBzdHJlYW1Gcm9tU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbUZyb21TdHJpbmc7XG4gICAgfSxcbiAgICBzdHJlYW1Ub0J1ZmZlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJlYW1Ub0J1ZmZlcjtcbiAgICB9LFxuICAgIHN0cmVhbVRvU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbVRvU3RyaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvY29uc3RhbnRzXCIpO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuLi8uLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmNvbnN0IF9lbmNvZGVkdGFncyA9IHJlcXVpcmUoXCIuL2VuY29kZWQtdGFnc1wiKTtcbmNvbnN0IF91aW50OGFycmF5aGVscGVycyA9IHJlcXVpcmUoXCIuL3VpbnQ4YXJyYXktaGVscGVyc1wiKTtcbmNvbnN0IF9jb25zdGFudHMxID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9vdXRwdXRleHBvcnRwcmVmZXRjaGVuY29kaW5nID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9vdXRwdXQtZXhwb3J0LXByZWZldGNoLWVuY29kaW5nXCIpO1xuZnVuY3Rpb24gdm9pZENhdGNoKCkge1xuLy8gdGhpcyBjYXRjaGVyIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBwaXBlVG8gd2hlcmUgd2UgZXhwZWN0IHRoZSB1bmRlcmx5aW5nXG4vLyBwaXBlIGltcGxlbWVudGF0aW9uIHRvIGZvcndhcmQgZXJyb3JzIGJ1dCB3ZSBkb24ndCB3YW50IHRoZSBwaXBlVG8gcHJvbWlzZSB0byByZWplY3Rcbi8vIGFuZCBiZSB1bmhhbmRsZWRcbn1cbi8vIFdlIGNhbiBzaGFyZSB0aGUgc2FtZSBlbmNvZGVyIGluc3RhbmNlIGV2ZXJ5d2hlcmVcbi8vIE5vdGFibHkgd2UgY2Fubm90IGRvIHRoZSBzYW1lIGZvciBUZXh0RGVjb2RlciBiZWNhdXNlIGl0IGlzIHN0YXRlZnVsXG4vLyB3aGVuIGhhbmRsaW5nIHN0cmVhbWluZyBkYXRhXG5jb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG5mdW5jdGlvbiBjaGFpblN0cmVhbXMoLi4uc3RyZWFtcykge1xuICAgIC8vIElmIHdlIGhhdmUgbm8gc3RyZWFtcywgcmV0dXJuIGFuIGVtcHR5IHN0cmVhbS4gVGhpcyBiZWhhdmlvciBpc1xuICAgIC8vIGludGVudGlvbmFsIGFzIHdlJ3JlIG5vdyBwcm92aWRpbmcgdGhlIGBSZW5kZXJSZXN1bHQuRU1QVFlgIHZhbHVlLlxuICAgIGlmIChzdHJlYW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLy8gSWYgd2Ugb25seSBoYXZlIDEgc3RyZWFtIHdlIGZhc3QgcGF0aCBpdCBieSByZXR1cm5pbmcganVzdCB0aGlzIHN0cmVhbVxuICAgIGlmIChzdHJlYW1zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gc3RyZWFtc1swXTtcbiAgICB9XG4gICAgY29uc3QgeyByZWFkYWJsZSwgd3JpdGFibGUgfSA9IG5ldyBUcmFuc2Zvcm1TdHJlYW0oKTtcbiAgICAvLyBXZSBhbHdheXMgaW5pdGlhdGUgcGlwZVRvIGltbWVkaWF0ZWx5LiBXZSBrbm93IHdlIGhhdmUgYXQgbGVhc3QgMiBzdHJlYW1zXG4gICAgLy8gc28gd2UgbmVlZCB0byBhdm9pZCBjbG9zaW5nIHRoZSB3cml0YWJsZSB3aGVuIHRoaXMgb25lIGZpbmlzaGVzLlxuICAgIGxldCBwcm9taXNlID0gc3RyZWFtc1swXS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgcHJldmVudENsb3NlOiB0cnVlXG4gICAgfSk7XG4gICAgbGV0IGkgPSAxO1xuICAgIGZvcig7IGkgPCBzdHJlYW1zLmxlbmd0aCAtIDE7IGkrKyl7XG4gICAgICAgIGNvbnN0IG5leHRTdHJlYW0gPSBzdHJlYW1zW2ldO1xuICAgICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKCgpPT5uZXh0U3RyZWFtLnBpcGVUbyh3cml0YWJsZSwge1xuICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cbiAgICAvLyBXZSBjYW4gb21pdCB0aGUgbGVuZ3RoIGNoZWNrIGJlY2F1c2Ugd2UgaGFsdGVkIGJlZm9yZSB0aGUgbGFzdCBzdHJlYW0gYW5kIHRoZXJlXG4gICAgLy8gaXMgYXQgbGVhc3QgdHdvIHN0cmVhbXMgc28gdGhlIGxhc3RTdHJlYW0gaGVyZSB3aWxsIGFsd2F5cyBiZSBkZWZpbmVkXG4gICAgY29uc3QgbGFzdFN0cmVhbSA9IHN0cmVhbXNbaV07XG4gICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoKT0+bGFzdFN0cmVhbS5waXBlVG8od3JpdGFibGUpKTtcbiAgICAvLyBDYXRjaCBhbnkgZXJyb3JzIGZyb20gdGhlIHN0cmVhbXMgYW5kIGlnbm9yZSB0aGVtLCB0aGV5IHdpbGwgYmUgaGFuZGxlZFxuICAgIC8vIGJ5IHdoYXRldmVyIGlzIGNvbnN1bWluZyB0aGUgcmVhZGFibGUgc3RyZWFtLlxuICAgIHByb21pc2UuY2F0Y2godm9pZENhdGNoKTtcbiAgICByZXR1cm4gcmVhZGFibGU7XG59XG5mdW5jdGlvbiBzdHJlYW1Gcm9tU3RyaW5nKHN0cikge1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHN0cikpO1xuICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBzdHJlYW1Gcm9tQnVmZmVyKGNodW5rKSB7XG4gICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5hc3luYyBmdW5jdGlvbiBzdHJlYW1Ub0J1ZmZlcihzdHJlYW0pIHtcbiAgICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgd2hpbGUodHJ1ZSl7XG4gICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjaHVua3MucHVzaCh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KGNodW5rcyk7XG59XG5hc3luYyBmdW5jdGlvbiBzdHJlYW1Ub1N0cmluZyhzdHJlYW0sIHNpZ25hbCkge1xuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jywge1xuICAgICAgICBmYXRhbDogdHJ1ZVxuICAgIH0pO1xuICAgIGxldCBzdHJpbmcgPSAnJztcbiAgICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIHN0cmVhbSl7XG4gICAgICAgIGlmIChzaWduYWwgPT0gbnVsbCA/IHZvaWQgMCA6IHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHN0cmluZyArPSBkZWNvZGVyLmRlY29kZShjaHVuaywge1xuICAgICAgICAgICAgc3RyZWFtOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdHJpbmcgKz0gZGVjb2Rlci5kZWNvZGUoKTtcbiAgICByZXR1cm4gc3RyaW5nO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSB7XG4gICAgbGV0IGJ1ZmZlcmVkQ2h1bmtzID0gW107XG4gICAgbGV0IGJ1ZmZlckJ5dGVMZW5ndGggPSAwO1xuICAgIGxldCBwZW5kaW5nO1xuICAgIGNvbnN0IGZsdXNoID0gKGNvbnRyb2xsZXIpPT57XG4gICAgICAgIC8vIElmIHdlIGFscmVhZHkgaGF2ZSBhIHBlbmRpbmcgZmx1c2gsIHRoZW4gcmV0dXJuIGVhcmx5LlxuICAgICAgICBpZiAocGVuZGluZykgcmV0dXJuO1xuICAgICAgICBjb25zdCBkZXRhY2hlZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICBwZW5kaW5nID0gZGV0YWNoZWQ7XG4gICAgICAgICgwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+e1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlckJ5dGVMZW5ndGgpO1xuICAgICAgICAgICAgICAgIGxldCBjb3BpZWRCeXRlcyA9IDA7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGJ1ZmZlcmVkQ2h1bmtzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyZWRDaHVuayA9IGJ1ZmZlcmVkQ2h1bmtzW2ldO1xuICAgICAgICAgICAgICAgICAgICBjaHVuay5zZXQoYnVmZmVyZWRDaHVuaywgY29waWVkQnl0ZXMpO1xuICAgICAgICAgICAgICAgICAgICBjb3BpZWRCeXRlcyArPSBidWZmZXJlZENodW5rLmJ5dGVMZW5ndGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFdlIGp1c3Qgd3JvdGUgYWxsIHRoZSBidWZmZXJlZCBjaHVua3Mgc28gd2UgbmVlZCB0byByZXNldCB0aGUgYnVmZmVyZWRDaHVua3MgYXJyYXlcbiAgICAgICAgICAgICAgICAvLyBhbmQgb3VyIGJ1ZmZlckJ5dGVMZW5ndGggdG8gcHJlcGFyZSBmb3IgdGhlIG5leHQgcm91bmQgb2YgYnVmZmVyZWQgY2h1bmtzXG4gICAgICAgICAgICAgICAgYnVmZmVyZWRDaHVua3MubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICBidWZmZXJCeXRlTGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgLy8gSWYgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGVucXVldWluZyBpdCBjYW4ndCBiZSBkdWUgdG8gdGhpc1xuICAgICAgICAgICAgLy8gdHJhbnNmb3JtZXJzIGZhdWx0LiBJdCdzIGxpa2VseSBkdWUgdG8gdGhlIGNvbnRyb2xsZXIgYmVpbmdcbiAgICAgICAgICAgIC8vIGVycm9yZWQgZHVlIHRvIHRoZSBzdHJlYW0gYmVpbmcgY2FuY2VsbGVkLlxuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIHBlbmRpbmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWQucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gQ29tYmluZSB0aGUgcHJldmlvdXMgYnVmZmVyIHdpdGggdGhlIG5ldyBjaHVuay5cbiAgICAgICAgICAgIGJ1ZmZlcmVkQ2h1bmtzLnB1c2goY2h1bmspO1xuICAgICAgICAgICAgYnVmZmVyQnl0ZUxlbmd0aCArPSBjaHVuay5ieXRlTGVuZ3RoO1xuICAgICAgICAgICAgLy8gRmx1c2ggdGhlIGJ1ZmZlciB0byB0aGUgY29udHJvbGxlci5cbiAgICAgICAgICAgIGZsdXNoKGNvbnRyb2xsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoKSB7XG4gICAgICAgICAgICBpZiAoIXBlbmRpbmcpIHJldHVybjtcbiAgICAgICAgICAgIHJldHVybiBwZW5kaW5nLnByb21pc2U7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZWZldGNoQ29tbWVudFN0cmVhbShpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCkge1xuICAgIC8vIEluc2VydCBhbiBleHRyYSBjb21tZW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIEhUTUwgZG9jdW1lbnQuIFRoaXMgbXVzdFxuICAgIC8vIGNvbWUgYWZ0ZXIgdGhlIERPQ1RZUEUsIHdoaWNoIGlzIGluc2VydGVkIGJ5IFJlYWN0LlxuICAgIC8vXG4gICAgLy8gVGhlIGZpcnN0IGNodW5rIHNlbnQgYnkgUmVhY3Qgd2lsbCBjb250YWluIHRoZSBkb2N0eXBlLiBBZnRlciB0aGF0LCB3ZSBjYW5cbiAgICAvLyBwYXNzIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIGNodW5rcyBhcy1pcy5cbiAgICBsZXQgZGlkVHJhbnNmb3JtRmlyc3RDaHVuayA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nICYmICFkaWRUcmFuc2Zvcm1GaXJzdENodW5rKSB7XG4gICAgICAgICAgICAgICAgZGlkVHJhbnNmb3JtRmlyc3RDaHVuayA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnLCB7XG4gICAgICAgICAgICAgICAgICAgIGZhdGFsOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2h1bmtTdHIgPSBkZWNvZGVyLmRlY29kZShjaHVuaywge1xuICAgICAgICAgICAgICAgICAgICBzdHJlYW06IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkQ2h1bmtTdHIgPSAoMCwgX291dHB1dGV4cG9ydHByZWZldGNoZW5jb2RpbmcuaW5zZXJ0QnVpbGRJZENvbW1lbnQpKGNodW5rU3RyLCBidWlsZElkKTtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUodXBkYXRlZENodW5rU3RyKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbSh7IFJlYWN0RE9NU2VydmVyLCBlbGVtZW50LCBzdHJlYW1PcHRpb25zIH0pIHtcbiAgICByZXR1cm4gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMuQXBwUmVuZGVyU3Bhbi5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtLCBhc3luYyAoKT0+UmVhY3RET01TZXJ2ZXIucmVuZGVyVG9SZWFkYWJsZVN0cmVhbShlbGVtZW50LCBzdHJlYW1PcHRpb25zKSk7XG59XG5mdW5jdGlvbiBjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShpbnNlcnQpIHtcbiAgICBsZXQgY2h1bmtJbmRleCA9IC0xO1xuICAgIGxldCBpc01hcmtSZW1vdmVkID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBhc3luYyB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBsZXQgaWNvbk1hcmtJbmRleCA9IC0xO1xuICAgICAgICAgICAgbGV0IGNsb3NlZEhlYWRJbmRleCA9IC0xO1xuICAgICAgICAgICAgY2h1bmtJbmRleCsrO1xuICAgICAgICAgICAgaWYgKGlzTWFya1JlbW92ZWQpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBpY29uTWFya0xlbmd0aCA9IDA7XG4gICAgICAgICAgICAvLyBPbmx5IHNlYXJjaCBmb3IgdGhlIGNsb3NlZCBoZWFkIHRhZyBvbmNlXG4gICAgICAgICAgICBpZiAoaWNvbk1hcmtJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpY29uTWFya0luZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuTUVUQS5JQ09OX01BUkspO1xuICAgICAgICAgICAgICAgIGlmIChpY29uTWFya0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSBmb3VuZCB0aGUgYDxtZXRhIG5hbWU9XCLCq254dC1pY29uwrtcImAgdGFnIHByZWZpeCwgd2Ugd2lsbCByZW1vdmUgaXQgZnJvbSB0aGUgY2h1bmsuXG4gICAgICAgICAgICAgICAgICAgIC8vIEl0cyBjbG9zZSB0YWcgY291bGQgZWl0aGVyIGJlIGAvPmAgb3IgYD5gLCBjaGVja2luZyB0aGUgbmV4dCBjaGFyIHRvIGVuc3VyZSB3ZSBjb3ZlciBib3RoIGNhc2VzLlxuICAgICAgICAgICAgICAgICAgICBpY29uTWFya0xlbmd0aCA9IF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuTUVUQS5JQ09OX01BUksubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBuZXh0IGNoYXIgaXMgLywgdGhpcyBpcyBmb3IgeG1sIG1vZGUuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaHVua1tpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGhdID09PSA0Nykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbk1hcmtMZW5ndGggKz0gMjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBsYXN0IGNoYXIgaXMgYD5gXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uTWFya0xlbmd0aCsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaWNvbiBtYXJrIGlzIGluc2lkZSA8aGVhZD4gdGFnIGluIHRoZSBmaXJzdCBjaHVuay5cbiAgICAgICAgICAgIGlmIChjaHVua0luZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VkSGVhZEluZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhFQUQpO1xuICAgICAgICAgICAgICAgIGlmIChpY29uTWFya0luZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbWFyayBpY29uIGlzIGxvY2F0ZWQgaW4gdGhlIDFzdCBjaHVuayBiZWZvcmUgdGhlIGhlYWQgdGFnLlxuICAgICAgICAgICAgICAgICAgICAvLyBXZSBkbyBub3QgbmVlZCB0byBpbnNlcnQgdGhlIHNjcmlwdCB0YWcgaW4gdGhpcyBjYXNlIGJlY2F1c2UgaXQncyBpbiB0aGUgaGVhZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCByZW1vdmUgdGhlIGljb24gbWFyayBmcm9tIHRoZSBjaHVuay5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGljb25NYXJrSW5kZXggPCBjbG9zZWRIZWFkSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VkID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoIC0gaWNvbk1hcmtMZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBpY29uIG1hcmsgZnJvbSB0aGUgY2h1bmsuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoMCwgaWNvbk1hcmtJbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KGljb25NYXJrSW5kZXggKyBpY29uTWFya0xlbmd0aCksIGljb25NYXJrSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmsgPSByZXBsYWNlZDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBpY29uIG1hcmsgaXMgYWZ0ZXIgdGhlIGhlYWQgdGFnLCByZXBsYWNlIGFuZCBpbnNlcnQgdGhlIHNjcmlwdCB0YWcgYXQgdGhhdCBwb3NpdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZEluc2VydGlvbiA9IGVuY29kZXIuZW5jb2RlKGluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb25MZW5ndGggPSBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VkID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoIC0gaWNvbk1hcmtMZW5ndGggKyBpbnNlcnRpb25MZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KDAsIGljb25NYXJrSW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChlbmNvZGVkSW5zZXJ0aW9uLCBpY29uTWFya0luZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheShpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGgpLCBpY29uTWFya0luZGV4ICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rID0gcmVwbGFjZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaXNNYXJrUmVtb3ZlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBpY29uIG1hcmsgbG9jYXRlZCwgaXQgd2lsbCBiZSBoYW5kbGVkIGxhdGVyIHdoZW4gaWYgcHJlc2VudCBpbiB0aGUgZm9sbG93aW5nIGNodW5rcy5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gV2hlbiBpdCdzIGFwcGVhcmVkIGluIHRoZSBmb2xsb3dpbmcgY2h1bmtzLCB3ZSdsbCBuZWVkIHRvXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBtYXJrIGFuZCB0aGVuIGluc2VydCB0aGUgc2NyaXB0IHRhZyBhdCB0aGF0IHBvc2l0aW9uLlxuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbkxlbmd0aCA9IGVuY29kZWRJbnNlcnRpb24ubGVuZ3RoO1xuICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIGljb24gbWFyayB3aXRoIHRoZSBob2lzdCBzY3JpcHQgb3IgZW1wdHkgc3RyaW5nLlxuICAgICAgICAgICAgICAgIGNvbnN0IHJlcGxhY2VkID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoIC0gaWNvbk1hcmtMZW5ndGggKyBpbnNlcnRpb25MZW5ndGgpO1xuICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgZmlyc3QgcGFydCBvZiB0aGUgY2h1bmssIGJlZm9yZSB0aGUgaWNvbiBtYXJrLlxuICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheSgwLCBpY29uTWFya0luZGV4KSk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSBpbnNlcnRpb24gYWZ0ZXIgdGhlIGljb24gbWFyay5cbiAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoZW5jb2RlZEluc2VydGlvbiwgaWNvbk1hcmtJbmRleCk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IHRoZSByZXN0IG9mIHRoZSBjaHVuayBhZnRlciB0aGUgaWNvbiBtYXJrLlxuICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheShpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGgpLCBpY29uTWFya0luZGV4ICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBjaHVuayA9IHJlcGxhY2VkO1xuICAgICAgICAgICAgICAgIGlzTWFya1JlbW92ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShpbnNlcnQpIHtcbiAgICBsZXQgaW5zZXJ0ZWQgPSBmYWxzZTtcbiAgICAvLyBXZSBuZWVkIHRvIHRyYWNrIGlmIHRoaXMgdHJhbnNmb3JtIHNhdyBhbnkgYnl0ZXMgYmVjYXVzZSBpZiBpdCBkaWRuJ3RcbiAgICAvLyB3ZSB3b24ndCB3YW50IHRvIGluc2VydCBhbnkgc2VydmVyIEhUTUwgYXQgYWxsXG4gICAgbGV0IGhhc0J5dGVzID0gZmFsc2U7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBhc3luYyB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBoYXNCeXRlcyA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgIGlmIChpbnNlcnRlZCkge1xuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZEluc2VydGlvbiA9IGVuY29kZXIuZW5jb2RlKGluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVkSW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETyAoQEV0aGFuLUFycm93b29kKTogUmVwbGFjZSB0aGUgZ2VuZXJpYyBgaW5kZXhPZlVpbnQ4QXJyYXlgIG1ldGhvZCB3aXRoIHNvbWV0aGluZyBmaW5lbHkgdHVuZWQgZm9yIHRoZSBzdWJzZXQgb2YgdGhpbmdzIGFjdHVhbGx5IGJlaW5nIGNoZWNrZWQgZm9yLlxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhFQUQpO1xuICAgICAgICAgICAgICAgIC8vIEluIGZ1bGx5IHN0YXRpYyByZW5kZXJpbmcgb3Igbm9uIFBQUiByZW5kZXJpbmcgY2FzZXM6XG4gICAgICAgICAgICAgICAgLy8gYC9oZWFkPmAgd2lsbCBhbHdheXMgYmUgZm91bmQgaW4gdGhlIGNodW5rIGluIGZpcnN0IGNodW5rIHJlbmRlcmluZy5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSB0b3RhbCBjb3VudCBvZiB0aGUgYnl0ZXMgaW4gdGhlIGNodW5rIGFuZCB0aGUgaW5zZXJ0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlLmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjaHVuayA9IDxoZWFkPjxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiPjwvaGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluc2VydGlvbiA9IDxzY3JpcHQ+Li4uPC9zY3JpcHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXRwdXQgPSA8aGVhZD48bWV0YSBjaGFyc2V0PVwidXRmLThcIj4gWyA8c2NyaXB0Pi4uLjwvc2NyaXB0PiBdIDwvaGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGVkSGVhZENvbnRlbnQgPSBuZXcgVWludDhBcnJheShjaHVuay5sZW5ndGggKyBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGNodW5rLCBiZWZvcmUgdGhlIGhlYWQgdGFnXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZEhlYWRDb250ZW50LnNldChjaHVuay5zbGljZSgwLCBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzZXJ2ZXIgaW5zZXJ0ZWQgY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoZW5jb2RlZEluc2VydGlvbiwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSByZXN0IG9mIHRoZSBjaHVua1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoY2h1bmsuc2xpY2UoaW5kZXgpLCBpbmRleCArIGVuY29kZWRJbnNlcnRpb24ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShpbnNlcnRlZEhlYWRDb250ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBoYXBwZW5zIGluIFBQUiByZW5kZXJpbmcgZHVyaW5nIG5leHQgc3RhcnQsIHdoZW4gdGhlIHBhZ2UgaXMgcGFydGlhbGx5IHJlbmRlcmVkLlxuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBwYWdlIHJlc3VtZXMsIHRoZSBoZWFkIHRhZyB3aWxsIGJlIGZvdW5kIGluIHRoZSBtaWRkbGUgb2YgdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICAvLyBXaGVyZSB3ZSBqdXN0IG5lZWQgdG8gYXBwZW5kIHRoZSBpbnNlcnRpb24gYW5kIGNodW5rIHRvIHRoZSBjdXJyZW50IHN0cmVhbS5cbiAgICAgICAgICAgICAgICAgICAgLy8gZS5nLlxuICAgICAgICAgICAgICAgICAgICAvLyBQUFItc3RhdGljOiA8aGVhZD4uLi48L2hlYWQ+PGJvZHk+IFsgcmVzdW1lIGNvbnRlbnQgXSA8L2JvZHk+XG4gICAgICAgICAgICAgICAgICAgIC8vIFBQUi1yZXN1bWU6IFsgaW5zZXJ0aW9uIF0gWyByZXN0IGNvbnRlbnQgXVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGJlZm9yZSBjbG9zaW5nIGlmIHRoZXJlJ3MgYW55dGhpbmcgcmVtYWluaW5nIHRvIGluc2VydC5cbiAgICAgICAgICAgIGlmIChoYXNCeXRlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbiA9IGF3YWl0IGluc2VydCgpO1xuICAgICAgICAgICAgICAgIGlmIChpbnNlcnRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGluc2VydGlvbikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuLy8gU3VmZml4IGFmdGVyIG1haW4gYm9keSBjb250ZW50IC0gc2NyaXB0cyBiZWZvcmUgPC9ib2R5Pixcbi8vIGJ1dCB3YWl0IGZvciB0aGUgbWFqb3IgY2h1bmtzIHRvIGJlIGVucXVldWVkLlxuZnVuY3Rpb24gY3JlYXRlRGVmZXJyZWRTdWZmaXhTdHJlYW0oc3VmZml4KSB7XG4gICAgbGV0IGZsdXNoZWQgPSBmYWxzZTtcbiAgICBsZXQgcGVuZGluZztcbiAgICBjb25zdCBmbHVzaCA9IChjb250cm9sbGVyKT0+e1xuICAgICAgICBjb25zdCBkZXRhY2hlZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICBwZW5kaW5nID0gZGV0YWNoZWQ7XG4gICAgICAgICgwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+e1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2Rlci5lbmNvZGUoc3VmZml4KSk7XG4gICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAvLyBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgZW5xdWV1aW5nIGl0IGNhbid0IGJlIGR1ZSB0byB0aGlzXG4gICAgICAgICAgICAvLyB0cmFuc2Zvcm1lcnMgZmF1bHQuIEl0J3MgbGlrZWx5IGR1ZSB0byB0aGUgY29udHJvbGxlciBiZWluZ1xuICAgICAgICAgICAgLy8gZXJyb3JlZCBkdWUgdG8gdGhlIHN0cmVhbSBiZWluZyBjYW5jZWxsZWQuXG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgcGVuZGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBkZXRhY2hlZC5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBmbHVzaGVkLCB3ZSdyZSBkb25lLlxuICAgICAgICAgICAgaWYgKGZsdXNoZWQpIHJldHVybjtcbiAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBmbHVzaCB0byBoYXBwZW4uXG4gICAgICAgICAgICBmbHVzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGZsdXNoKGNvbnRyb2xsZXIpO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybiBwZW5kaW5nLnByb21pc2U7XG4gICAgICAgICAgICBpZiAoZmx1c2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgLy8gRmx1c2ggbm93LlxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHN1ZmZpeCkpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVGbGlnaHREYXRhSW5qZWN0aW9uVHJhbnNmb3JtU3RyZWFtKHN0cmVhbSwgZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaykge1xuICAgIGxldCBodG1sU3RyZWFtRmluaXNoZWQgPSBmYWxzZTtcbiAgICBsZXQgcHVsbCA9IG51bGw7XG4gICAgbGV0IGRvbmVQdWxsaW5nID0gZmFsc2U7XG4gICAgZnVuY3Rpb24gc3RhcnRPckNvbnRpbnVlUHVsbGluZyhjb250cm9sbGVyKSB7XG4gICAgICAgIGlmICghcHVsbCkge1xuICAgICAgICAgICAgcHVsbCA9IHN0YXJ0UHVsbGluZyhjb250cm9sbGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHVsbDtcbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gc3RhcnRQdWxsaW5nKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpO1xuICAgICAgICBpZiAoZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaykge1xuICAgICAgICAgICAgLy8gTk9URTogc3RyZWFtaW5nIGZsdXNoXG4gICAgICAgICAgICAvLyBXZSBhcmUgYnVmZmVyaW5nIGhlcmUgZm9yIHRoZSBpbmxpbmVkIGRhdGEgc3RyZWFtIGJlY2F1c2UgdGhlXG4gICAgICAgICAgICAvLyBcInNoZWxsXCIgc3RyZWFtIG1pZ2h0IGJlIGNodW5rZW5pemVkIGFnYWluIGJ5IHRoZSB1bmRlcmx5aW5nIHN0cmVhbVxuICAgICAgICAgICAgLy8gaW1wbGVtZW50YXRpb24sIGUuZy4gd2l0aCBhIHNwZWNpZmljIGhpZ2gtd2F0ZXIgbWFyay4gVG8gZW5zdXJlIGl0J3NcbiAgICAgICAgICAgIC8vIHRoZSBzYWZlIHRpbWluZyB0byBwaXBlIHRoZSBkYXRhIHN0cmVhbSwgdGhpcyBleHRyYSB0aWNrIGlzXG4gICAgICAgICAgICAvLyBuZWNlc3NhcnkuXG4gICAgICAgICAgICAvLyBXZSBkb24ndCBzdGFydCByZWFkaW5nIHVudGlsIHdlJ3ZlIGxlZnQgdGhlIGN1cnJlbnQgVGFzayB0byBlbnN1cmVcbiAgICAgICAgICAgIC8vIHRoYXQgaXQncyBpbnNlcnRlZCBhZnRlciBmbHVzaGluZyB0aGUgc2hlbGwuIE5vdGUgdGhhdCB0aGlzIGltcGxlbWVudGF0aW9uXG4gICAgICAgICAgICAvLyBtaWdodCBnZXQgc3RhbGUgaWYgaW1wbCBkZXRhaWxzIG9mIEZpenogY2hhbmdlIGluIHRoZSBmdXR1cmUuXG4gICAgICAgICAgICBhd2FpdCAoMCwgX3NjaGVkdWxlci5hdExlYXN0T25lVGFzaykoKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgd2hpbGUodHJ1ZSl7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICBkb25lUHVsbGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBwcmlvcml0aXplIEhUTUwgb3ZlciBSU0MgZGF0YS5cbiAgICAgICAgICAgICAgICAvLyBUaGUgU1NSIHJlbmRlciBpcyBiYXNlZCBvbiB0aGUgc2FtZSBSU0Mgc3RyZWFtLCBzbyB3aGVuIHdlIGdldCBhIG5ldyBSU0MgY2h1bmssXG4gICAgICAgICAgICAgICAgLy8gd2UncmUgbGlrZWx5IHRvIHByb2R1Y2UgYW4gSFRNTCBjaHVuayBhcyB3ZWxsLCBzbyBnaXZlIGl0IGEgY2hhbmNlIHRvIGZsdXNoIGZpcnN0LlxuICAgICAgICAgICAgICAgIGlmICghZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuayAmJiAhaHRtbFN0cmVhbUZpbmlzaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0ICgwLCBfc2NoZWR1bGVyLmF0TGVhc3RPbmVUYXNrKSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBpZiAoIWRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspIHtcbiAgICAgICAgICAgICAgICBzdGFydE9yQ29udGludWVQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgLy8gU3RhcnQgdGhlIHN0cmVhbWluZyBpZiBpdCBoYXNuJ3QgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQgeWV0LlxuICAgICAgICAgICAgaWYgKGRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspIHtcbiAgICAgICAgICAgICAgICBzdGFydE9yQ29udGludWVQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaHRtbFN0cmVhbUZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChkb25lUHVsbGluZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdGFydE9yQ29udGludWVQdWxsaW5nKGNvbnRyb2xsZXIpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5jb25zdCBDTE9TRV9UQUcgPSAnPC9ib2R5PjwvaHRtbD4nO1xuLyoqXG4gKiBUaGlzIHRyYW5zZm9ybSBzdHJlYW0gbW92ZXMgdGhlIHN1ZmZpeCB0byB0aGUgZW5kIG9mIHRoZSBzdHJlYW0sIHNvIHJlc3VsdHNcbiAqIGxpa2UgYDwvYm9keT48L2h0bWw+PHNjcmlwdD4uLi48L3NjcmlwdD5gIHdpbGwgYmUgdHJhbnNmb3JtZWQgdG9cbiAqIGA8c2NyaXB0Pi4uLjwvc2NyaXB0PjwvYm9keT48L2h0bWw+YC5cbiAqLyBmdW5jdGlvbiBjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCkge1xuICAgIGxldCBmb3VuZFN1ZmZpeCA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKGZvdW5kU3VmZml4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRTdWZmaXggPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB3aG9sZSBjaHVuayBpcyB0aGUgc3VmZml4LCB0aGVuIGRvbid0IHdyaXRlIGFueXRoaW5nLCBpdCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gYmUgd3JpdHRlbiBpbiB0aGUgZmx1c2guXG4gICAgICAgICAgICAgICAgaWYgKGNodW5rLmxlbmd0aCA9PT0gX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXcml0ZSBvdXQgdGhlIHBhcnQgYmVmb3JlIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlID0gY2h1bmsuc2xpY2UoMCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShiZWZvcmUpO1xuICAgICAgICAgICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBzdWZmaXggaXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY2h1bmssIHdlIG5lZWRcbiAgICAgICAgICAgICAgICAvLyB0byBzcGxpdCB0aGUgY2h1bmsgaW50byB0d28gcGFydHMuXG4gICAgICAgICAgICAgICAgaWYgKGNodW5rLmxlbmd0aCA+IF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwubGVuZ3RoICsgaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBwYXJ0IGFmdGVyIHRoZSBzdWZmaXguXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyID0gY2h1bmsuc2xpY2UoaW5kZXggKyBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShhZnRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gRXZlbiBpZiB3ZSBkaWRuJ3QgZmluZCB0aGUgc3VmZml4LCB0aGUgSFRNTCBpcyBub3QgdmFsaWQgaWYgd2UgZG9uJ3RcbiAgICAgICAgICAgIC8vIGFkZCBpdCwgc28gaW5zZXJ0IGl0IGF0IHRoZSBlbmQuXG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVN0cmlwRG9jdW1lbnRDbG9zaW5nVGFnc1RyYW5zZm9ybSgpIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIFdlIHJlbHkgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBjaHVua3Mgd2lsbCBuZXZlciBicmVhayBhY3Jvc3MgYSBjb2RlIHVuaXQuXG4gICAgICAgICAgICAvLyBUaGlzIGlzIHJlYXNvbmFibGUgYmVjYXVzZSB3ZSBjdXJyZW50bHkgY29uY2F0IGFsbCBvZiBSZWFjdCdzIG91dHB1dCBmcm9tIGEgc2luZ2xlXG4gICAgICAgICAgICAvLyBmbHVzaCBpbnRvIG9uZSBjaHVuayBiZWZvcmUgc3RyZWFtaW5nIGl0IGZvcndhcmQgd2hpY2ggbWVhbnMgdGhlIGNodW5rIHdpbGwgcmVwcmVzZW50XG4gICAgICAgICAgICAvLyBhIHNpbmdsZSBjb2hlcmVudCB1dGYtOCBzdHJpbmcuIFRoaXMgaXMgbm90IHNhZmUgdG8gdXNlIGlmIHdlIGNoYW5nZSBvdXIgc3RyZWFtaW5nIHRvIG5vXG4gICAgICAgICAgICAvLyBsb25nZXIgZG8gdGhpcyBsYXJnZSBidWZmZXJlZCBjaHVua1xuICAgICAgICAgICAgaWYgKCgwLCBfdWludDhhcnJheWhlbHBlcnMuaXNFcXVpdmFsZW50VWludDhBcnJheXMpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKSB8fCAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzKShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWSkgfHwgKDAsIF91aW50OGFycmF5aGVscGVycy5pc0VxdWl2YWxlbnRVaW50OEFycmF5cykoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhUTUwpKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGVudGlyZSBjaHVuayBpcyB0aGUgY2xvc2luZyB0YWdzOyByZXR1cm4gd2l0aG91dCBlbnF1ZXVlaW5nIGFueXRoaW5nLlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlIGFzc3VtZSB0aGVzZSB0YWdzIHdpbGwgZ28gYXQgdG9nZXRoZXIgYXQgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgYW5kIHRoYXRcbiAgICAgICAgICAgIC8vIHRoZXkgd29uJ3QgYXBwZWFyIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LiBUaGlzIGlzIG5vdCByZWFsbHkgYSBzYWZlIGFzc3VtcHRpb25cbiAgICAgICAgICAgIC8vIGJ1dCB1bnRpbCB3ZSByZXZhbXAgb3VyIHN0cmVhbWluZyBpbmZyYSB0aGlzIGlzIGEgcGVyZm9ybWFudCB3YXkgdG8gc3RyaW5nIHRoZSB0YWdzXG4gICAgICAgICAgICBjaHVuayA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMucmVtb3ZlRnJvbVVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZKTtcbiAgICAgICAgICAgIGNodW5rID0gKDAsIF91aW50OGFycmF5aGVscGVycy5yZW1vdmVGcm9tVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkhUTUwpO1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbSgpIHtcbiAgICBsZXQgZm91bmRIdG1sID0gZmFsc2U7XG4gICAgbGV0IGZvdW5kQm9keSA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgLy8gUGVlayBpbnRvIHRoZSBzdHJlYW1lZCBjaHVuayB0byBzZWUgaWYgdGhlIHRhZ3MgYXJlIHByZXNlbnQuXG4gICAgICAgICAgICBpZiAoIWZvdW5kSHRtbCAmJiAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5PUEVOSU5HLkhUTUwpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmb3VuZEh0bWwgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFmb3VuZEJvZHkgJiYgKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuT1BFTklORy5CT0RZKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRCb2R5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH0sXG4gICAgICAgIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBtaXNzaW5nVGFncyA9IFtdO1xuICAgICAgICAgICAgaWYgKCFmb3VuZEh0bWwpIG1pc3NpbmdUYWdzLnB1c2goJ2h0bWwnKTtcbiAgICAgICAgICAgIGlmICghZm91bmRCb2R5KSBtaXNzaW5nVGFncy5wdXNoKCdib2R5Jyk7XG4gICAgICAgICAgICBpZiAoIW1pc3NpbmdUYWdzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGA8aHRtbCBpZD1cIl9fbmV4dF9lcnJvcl9fXCI+XG4gICAgICAgICAgICA8dGVtcGxhdGVcbiAgICAgICAgICAgICAgZGF0YS1uZXh0LWVycm9yLW1lc3NhZ2U9XCJNaXNzaW5nICR7bWlzc2luZ1RhZ3MubWFwKChjKT0+YDwke2N9PmApLmpvaW4obWlzc2luZ1RhZ3MubGVuZ3RoID4gMSA/ICcgYW5kICcgOiAnJyl9IHRhZ3MgaW4gdGhlIHJvb3QgbGF5b3V0LlxcblJlYWQgbW9yZSBhdCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taXNzaW5nLXJvb3QtbGF5b3V0LXRhZ3NcIlxuICAgICAgICAgICAgICBkYXRhLW5leHQtZXJyb3ItZGlnZXN0PVwiJHtfY29uc3RhbnRzMS5NSVNTSU5HX1JPT1RfVEFHU19FUlJPUn1cIlxuICAgICAgICAgICAgICBkYXRhLW5leHQtZXJyb3Itc3RhY2s9XCJcIlxuICAgICAgICAgICAgPjwvdGVtcGxhdGU+XG4gICAgICAgICAgYCkpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjaGFpblRyYW5zZm9ybWVycyhyZWFkYWJsZSwgdHJhbnNmb3JtZXJzKSB7XG4gICAgbGV0IHN0cmVhbSA9IHJlYWRhYmxlO1xuICAgIGZvciAoY29uc3QgdHJhbnNmb3JtZXIgb2YgdHJhbnNmb3JtZXJzKXtcbiAgICAgICAgaWYgKCF0cmFuc2Zvcm1lcikgY29udGludWU7XG4gICAgICAgIHN0cmVhbSA9IHN0cmVhbS5waXBlVGhyb3VnaCh0cmFuc2Zvcm1lcik7XG4gICAgfVxuICAgIHJldHVybiBzdHJlYW07XG59XG5hc3luYyBmdW5jdGlvbiBjb250aW51ZUZpenpTdHJlYW0ocmVuZGVyU3RyZWFtLCB7IHN1ZmZpeCwgaW5saW5lZERhdGFTdHJlYW0sIGlzU3RhdGljR2VuZXJhdGlvbiwgaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQsIGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSwgdmFsaWRhdGVSb290TGF5b3V0IH0pIHtcbiAgICAvLyBTdWZmaXggaXRzZWxmIG1pZ2h0IGNvbnRhaW4gY2xvc2UgdGFncyBhdCB0aGUgZW5kLCBzbyB3ZSBuZWVkIHRvIHNwbGl0IGl0LlxuICAgIGNvbnN0IHN1ZmZpeFVuY2xvc2VkID0gc3VmZml4ID8gc3VmZml4LnNwbGl0KENMT1NFX1RBRywgMSlbMF0gOiBudWxsO1xuICAgIC8vIElmIHdlJ3JlIGdlbmVyYXRpbmcgc3RhdGljIEhUTUwgd2UgbmVlZCB0byB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZSBjb250aW51aW5nLlxuICAgIGlmIChpc1N0YXRpY0dlbmVyYXRpb24pIHtcbiAgICAgICAgYXdhaXQgcmVuZGVyU3RyZWFtLmFsbFJlYWR5O1xuICAgIH1cbiAgICByZXR1cm4gY2hhaW5UcmFuc2Zvcm1lcnMocmVuZGVyU3RyZWFtLCBbXG4gICAgICAgIC8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgICAgIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCksXG4gICAgICAgIC8vIEFkZCBidWlsZCBpZCBjb21tZW50IHRvIHN0YXJ0IG9mIHRoZSBIVE1MIGRvY3VtZW50IChpbiBleHBvcnQgbW9kZSlcbiAgICAgICAgY3JlYXRlUHJlZmV0Y2hDb21tZW50U3RyZWFtKGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nLCBidWlsZElkKSxcbiAgICAgICAgLy8gVHJhbnNmb3JtIG1ldGFkYXRhXG4gICAgICAgIGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEpLFxuICAgICAgICAvLyBJbnNlcnQgc3VmZml4IGNvbnRlbnRcbiAgICAgICAgc3VmZml4VW5jbG9zZWQgIT0gbnVsbCAmJiBzdWZmaXhVbmNsb3NlZC5sZW5ndGggPiAwID8gY3JlYXRlRGVmZXJyZWRTdWZmaXhTdHJlYW0oc3VmZml4VW5jbG9zZWQpIDogbnVsbCxcbiAgICAgICAgLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgICAgICBpbmxpbmVkRGF0YVN0cmVhbSA/IGNyZWF0ZUZsaWdodERhdGFJbmplY3Rpb25UcmFuc2Zvcm1TdHJlYW0oaW5saW5lZERhdGFTdHJlYW0sIHRydWUpIDogbnVsbCxcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIHJvb3QgbGF5b3V0IGZvciBtaXNzaW5nIGh0bWwgb3IgYm9keSB0YWdzXG4gICAgICAgIHZhbGlkYXRlUm9vdExheW91dCA/IGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW0oKSA6IG51bGwsXG4gICAgICAgIC8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgICAgIGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSxcbiAgICAgICAgLy8gU3BlY2lhbCBoZWFkIGluc2VydGlvbnNcbiAgICAgICAgLy8gVE9ETy1BUFA6IEluc2VydCBzZXJ2ZXIgc2lkZSBodG1sIHRvIGVuZCBvZiBoZWFkIGluIGFwcCBsYXlvdXQgcmVuZGVyaW5nLCB0byBhdm9pZFxuICAgICAgICAvLyBoeWRyYXRpb24gZXJyb3JzLiBSZW1vdmUgdGhpcyBvbmNlIGl0J3MgcmVhZHkgdG8gYmUgaGFuZGxlZCBieSByZWFjdCBpdHNlbGYuXG4gICAgICAgIGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKVxuICAgIF0pO1xufVxuYXN5bmMgZnVuY3Rpb24gY29udGludWVEeW5hbWljUHJlcmVuZGVyKHByZXJlbmRlclN0cmVhbSwgeyBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwsIGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEgfSkge1xuICAgIHJldHVybiBwcmVyZW5kZXJTdHJlYW0vLyBCdWZmZXIgZXZlcnl0aGluZyB0byBhdm9pZCBmbHVzaGluZyB0b28gZnJlcXVlbnRseVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpKS5waXBlVGhyb3VnaChjcmVhdGVTdHJpcERvY3VtZW50Q2xvc2luZ1RhZ3NUcmFuc2Zvcm0oKSkvLyBJbnNlcnQgZ2VuZXJhdGVkIHRhZ3MgdG8gaGVhZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTCkpLy8gVHJhbnNmb3JtIG1ldGFkYXRhXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEpKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlU3RhdGljUHJlcmVuZGVyKHByZXJlbmRlclN0cmVhbSwgeyBpbmxpbmVkRGF0YVN0cmVhbSwgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MLCBnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhLCBpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCB9KSB7XG4gICAgcmV0dXJuIHByZXJlbmRlclN0cmVhbS8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkpLy8gQWRkIGJ1aWxkIGlkIGNvbW1lbnQgdG8gc3RhcnQgb2YgdGhlIEhUTUwgZG9jdW1lbnQgKGluIGV4cG9ydCBtb2RlKVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVQcmVmZXRjaENvbW1lbnRTdHJlYW0oaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQpKS8vIEluc2VydCBnZW5lcmF0ZWQgdGFncyB0byBoZWFkXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKSkvLyBUcmFuc2Zvcm0gbWV0YWRhdGFcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSkpLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVGbGlnaHREYXRhSW5qZWN0aW9uVHJhbnNmb3JtU3RyZWFtKGlubGluZWREYXRhU3RyZWFtLCB0cnVlKSkvLyBDbG9zZSB0YWdzIHNob3VsZCBhbHdheXMgYmUgZGVmZXJyZWQgdG8gdGhlIGVuZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCkpO1xufVxuYXN5bmMgZnVuY3Rpb24gY29udGludWVEeW5hbWljSFRNTFJlc3VtZShyZW5kZXJTdHJlYW0sIHsgZGVsYXlEYXRhVW50aWxGaXJzdEh0bWxDaHVuaywgaW5saW5lZERhdGFTdHJlYW0sIGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSB9KSB7XG4gICAgcmV0dXJuIHJlbmRlclN0cmVhbS8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkpLy8gSW5zZXJ0IGdlbmVyYXRlZCB0YWdzIHRvIGhlYWRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpKS8vIFRyYW5zZm9ybSBtZXRhZGF0YVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhKSkvLyBJbnNlcnQgdGhlIGlubGluZWQgZGF0YSAoRmxpZ2h0IGRhdGEsIGZvcm0gc3RhdGUsIGV0Yy4pIHN0cmVhbSBpbnRvIHRoZSBIVE1MXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUZsaWdodERhdGFJbmplY3Rpb25UcmFuc2Zvcm1TdHJlYW0oaW5saW5lZERhdGFTdHJlYW0sIGRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspKS8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSk7XG59XG5mdW5jdGlvbiBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHN0cmVhbUZyb21TdHJpbmcoQ0xPU0VfVEFHKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/stream-utils/uint8array-helpers.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Find the starting index of Uint8Array `b` within Uint8Array `a`.\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 indexOfUint8Array: function() {\n return indexOfUint8Array;\n },\n isEquivalentUint8Arrays: function() {\n return isEquivalentUint8Arrays;\n },\n removeFromUint8Array: function() {\n return removeFromUint8Array;\n }\n});\nfunction indexOfUint8Array(a, b) {\n if (b.length === 0) return 0;\n if (a.length === 0 || b.length > a.length) return -1;\n // start iterating through `a`\n for(let i = 0; i <= a.length - b.length; i++){\n let completeMatch = true;\n // from index `i`, iterate through `b` and check for mismatch\n for(let j = 0; j < b.length; j++){\n // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`.\n if (a[i + j] !== b[j]) {\n completeMatch = false;\n break;\n }\n }\n if (completeMatch) {\n return i;\n }\n }\n return -1;\n}\nfunction isEquivalentUint8Arrays(a, b) {\n if (a.length !== b.length) return false;\n for(let i = 0; i < a.length; i++){\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\nfunction removeFromUint8Array(a, b) {\n const tagIndex = indexOfUint8Array(a, b);\n if (tagIndex === 0) return a.subarray(b.length);\n if (tagIndex > -1) {\n const removed = new Uint8Array(a.length - b.length);\n removed.set(a.slice(0, tagIndex));\n removed.set(a.slice(tagIndex + b.length), tagIndex);\n return removed;\n } else {\n return a;\n }\n}\n\n//# sourceMappingURL=uint8array-helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy91aW50OGFycmF5LWhlbHBlcnMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLDBCQUEwQjtBQUM3QztBQUNBO0FBQ0EsdUJBQXVCLGNBQWM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixjQUFjO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy91aW50OGFycmF5LWhlbHBlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaW5kIHRoZSBzdGFydGluZyBpbmRleCBvZiBVaW50OEFycmF5IGBiYCB3aXRoaW4gVWludDhBcnJheSBgYWAuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpbmRleE9mVWludDhBcnJheTogbnVsbCxcbiAgICBpc0VxdWl2YWxlbnRVaW50OEFycmF5czogbnVsbCxcbiAgICByZW1vdmVGcm9tVWludDhBcnJheTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpbmRleE9mVWludDhBcnJheTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbmRleE9mVWludDhBcnJheTtcbiAgICB9LFxuICAgIGlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzO1xuICAgIH0sXG4gICAgcmVtb3ZlRnJvbVVpbnQ4QXJyYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVtb3ZlRnJvbVVpbnQ4QXJyYXk7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpbmRleE9mVWludDhBcnJheShhLCBiKSB7XG4gICAgaWYgKGIubGVuZ3RoID09PSAwKSByZXR1cm4gMDtcbiAgICBpZiAoYS5sZW5ndGggPT09IDAgfHwgYi5sZW5ndGggPiBhLmxlbmd0aCkgcmV0dXJuIC0xO1xuICAgIC8vIHN0YXJ0IGl0ZXJhdGluZyB0aHJvdWdoIGBhYFxuICAgIGZvcihsZXQgaSA9IDA7IGkgPD0gYS5sZW5ndGggLSBiLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgbGV0IGNvbXBsZXRlTWF0Y2ggPSB0cnVlO1xuICAgICAgICAvLyBmcm9tIGluZGV4IGBpYCwgaXRlcmF0ZSB0aHJvdWdoIGBiYCBhbmQgY2hlY2sgZm9yIG1pc21hdGNoXG4gICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCBiLmxlbmd0aDsgaisrKXtcbiAgICAgICAgICAgIC8vIGlmIHRoZSB2YWx1ZXMgZG8gbm90IG1hdGNoLCB0aGVuIHRoaXMgaXNuJ3QgYSBjb21wbGV0ZSBtYXRjaCwgZXhpdCBgYmAgaXRlcmF0aW9uIGVhcmx5IGFuZCBpdGVyYXRlIHRvIG5leHQgaW5kZXggb2YgYGFgLlxuICAgICAgICAgICAgaWYgKGFbaSArIGpdICE9PSBiW2pdKSB7XG4gICAgICAgICAgICAgICAgY29tcGxldGVNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjb21wbGV0ZU1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG59XG5mdW5jdGlvbiBpc0VxdWl2YWxlbnRVaW50OEFycmF5cyhhLCBiKSB7XG4gICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgaWYgKGFbaV0gIT09IGJbaV0pIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiByZW1vdmVGcm9tVWludDhBcnJheShhLCBiKSB7XG4gICAgY29uc3QgdGFnSW5kZXggPSBpbmRleE9mVWludDhBcnJheShhLCBiKTtcbiAgICBpZiAodGFnSW5kZXggPT09IDApIHJldHVybiBhLnN1YmFycmF5KGIubGVuZ3RoKTtcbiAgICBpZiAodGFnSW5kZXggPiAtMSkge1xuICAgICAgICBjb25zdCByZW1vdmVkID0gbmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGggLSBiLmxlbmd0aCk7XG4gICAgICAgIHJlbW92ZWQuc2V0KGEuc2xpY2UoMCwgdGFnSW5kZXgpKTtcbiAgICAgICAgcmVtb3ZlZC5zZXQoYS5zbGljZSh0YWdJbmRleCArIGIubGVuZ3RoKSwgdGFnSW5kZXgpO1xuICAgICAgICByZXR1cm4gcmVtb3ZlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVpbnQ4YXJyYXktaGVscGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/utils.js":
|
||
/*!************************************************!*\
|
||
!*** ./node_modules/next/dist/server/utils.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 cleanAmpPath: function() {\n return cleanAmpPath;\n },\n debounce: function() {\n return debounce;\n },\n isBlockedPage: function() {\n return isBlockedPage;\n }\n});\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js\");\nfunction isBlockedPage(page) {\n return _constants.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(/&=(y|yes|true|1)/)) {\n pathname = pathname.replace(/&=(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}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3V0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsa0dBQXlCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY2xlYW5BbXBQYXRoOiBudWxsLFxuICAgIGRlYm91bmNlOiBudWxsLFxuICAgIGlzQmxvY2tlZFBhZ2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY2xlYW5BbXBQYXRoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNsZWFuQW1wUGF0aDtcbiAgICB9LFxuICAgIGRlYm91bmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRlYm91bmNlO1xuICAgIH0sXG4gICAgaXNCbG9ja2VkUGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0Jsb2NrZWRQYWdlO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIGlzQmxvY2tlZFBhZ2UocGFnZSkge1xuICAgIHJldHVybiBfY29uc3RhbnRzLkJMT0NLRURfUEFHRVMuaW5jbHVkZXMocGFnZSk7XG59XG5mdW5jdGlvbiBjbGVhbkFtcFBhdGgocGF0aG5hbWUpIHtcbiAgICBpZiAocGF0aG5hbWUubWF0Y2goL1xcP2FtcD0oeXx5ZXN8dHJ1ZXwxKS8pKSB7XG4gICAgICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvXFw/YW1wPSh5fHllc3x0cnVlfDEpJj8vLCAnPycpO1xuICAgIH1cbiAgICBpZiAocGF0aG5hbWUubWF0Y2goLyZhbXA9KHl8eWVzfHRydWV8MSkvKSkge1xuICAgICAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoLyZhbXA9KHl8eWVzfHRydWV8MSkvLCAnJyk7XG4gICAgfVxuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvXFw/JC8sICcnKTtcbiAgICByZXR1cm4gcGF0aG5hbWU7XG59XG5mdW5jdGlvbiBkZWJvdW5jZShmbiwgbXMsIG1heFdhaXQgPSBJbmZpbml0eSkge1xuICAgIGxldCB0aW1lb3V0SWQ7XG4gICAgLy8gVGhlIHRpbWUgdGhlIGRlYm91bmNpbmcgZnVuY3Rpb24gd2FzIGZpcnN0IGNhbGxlZCBkdXJpbmcgdGhpcyBkZWJvdW5jZSBxdWV1ZS5cbiAgICBsZXQgc3RhcnRUaW1lID0gMDtcbiAgICAvLyBUaGUgdGltZSB0aGUgZGVib3VuY2luZyBmdW5jdGlvbiB3YXMgbGFzdCBjYWxsZWQuXG4gICAgbGV0IGxhc3RDYWxsID0gMDtcbiAgICAvLyBUaGUgYXJndW1lbnRzIGFuZCB0aGlzIGNvbnRleHQgb2YgdGhlIGxhc3QgY2FsbCB0byB0aGUgZGVib3VuY2luZyBmdW5jdGlvbi5cbiAgICBsZXQgYXJncywgY29udGV4dDtcbiAgICAvLyBBIGhlbHBlciB1c2VkIHRvIHRoYXQgZWl0aGVyIGludm9rZXMgdGhlIGRlYm91bmNlZCBmdW5jdGlvbiwgb3JcbiAgICAvLyByZXNjaGVkdWxlcyB0aGUgdGltZXIgaWYgYSBtb3JlIHJlY2VudCBjYWxsIHdhcyBtYWRlLlxuICAgIGZ1bmN0aW9uIHJ1bigpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgY29uc3QgZGlmZiA9IGxhc3RDYWxsICsgbXMgLSBub3c7XG4gICAgICAgIC8vIElmIHRoZSBkaWZmIGlzIG5vbi1wb3NpdGl2ZSwgdGhlbiB3ZSd2ZSB3YWl0ZWQgYXQgbGVhc3QgYG1zYFxuICAgICAgICAvLyBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGxhc3QgY2FsbC4gT3IgaWYgd2UndmUgd2FpdGVkIGZvciBsb25nZXIgdGhhbiB0aGVcbiAgICAgICAgLy8gbWF4IHdhaXQgdGltZSwgd2UgbXVzdCBjYWxsIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24uXG4gICAgICAgIGlmIChkaWZmIDw9IDAgfHwgc3RhcnRUaW1lICsgbWF4V2FpdCA+PSBub3cpIHtcbiAgICAgICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGNsZWFyIHRoZSB0aW1lb3V0IGlkIGJlZm9yZSBpbnZva2luZyB0aGUgZGVib3VuY2VkXG4gICAgICAgICAgICAvLyBmdW5jdGlvbiwgaW4gY2FzZSB0aGUgZnVuY3Rpb24gY2FsbHMgdGhlIGRlYm91bmNpbmcgZnVuY3Rpb24gYWdhaW4uXG4gICAgICAgICAgICB0aW1lb3V0SWQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBmbi5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEVsc2UsIGEgbmV3IGNhbGwgd2FzIG1hZGUgYWZ0ZXIgdGhlIG9yaWdpbmFsIHRpbWVyIHdhcyBzY2hlZHVsZWQuIFdlXG4gICAgICAgICAgICAvLyBkaWRuJ3QgY2xlYXIgdGhlIHRpbWVvdXQgKGRvaW5nIHNvIGlzIHZlcnkgc2xvdyksIHNvIG5vdyB3ZSBuZWVkIHRvXG4gICAgICAgICAgICAvLyByZXNjaGVkdWxlIHRoZSB0aW1lciBmb3IgdGhlIHRpbWUgZGlmZmVyZW5jZS5cbiAgICAgICAgICAgIHRpbWVvdXRJZCA9IHNldFRpbWVvdXQocnVuLCBkaWZmKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24oLi4ucGFzc2VkQXJncykge1xuICAgICAgICAvLyBUaGUgYXJndW1lbnRzIGFuZCB0aGlzIGNvbnRleHQgb2YgdGhlIG1vc3QgcmVjZW50IGNhbGwgYXJlIHNhdmVkIHNvIHRoZVxuICAgICAgICAvLyBkZWJvdW5jZWQgZnVuY3Rpb24gY2FuIGJlIGludm9rZWQgd2l0aCB0aGVtIGxhdGVyLlxuICAgICAgICBhcmdzID0gcGFzc2VkQXJncztcbiAgICAgICAgY29udGV4dCA9IHRoaXM7XG4gICAgICAgIC8vIEluc3RlYWQgb2YgY29uc3RhbnRseSBjbGVhcmluZyBhbmQgc2NoZWR1bGluZyBhIHRpbWVyLCB3ZSByZWNvcmQgdGhlXG4gICAgICAgIC8vIHRpbWUgb2YgdGhlIGxhc3QgY2FsbC4gSWYgYSBzZWNvbmQgY2FsbCBjb21lcyBpbiBiZWZvcmUgdGhlIHRpbWVyIGZpcmVzLFxuICAgICAgICAvLyB0aGVuIHdlJ2xsIHJlc2NoZWR1bGUgaW4gdGhlIHJ1biBmdW5jdGlvbi4gRG9pbmcgdGhpcyBpcyBjb25zaWRlcmFibHlcbiAgICAgICAgLy8gZmFzdGVyLlxuICAgICAgICBsYXN0Q2FsbCA9IERhdGUubm93KCk7XG4gICAgICAgIC8vIE9ubHkgc2NoZWR1bGUgYSBuZXcgdGltZXIgaWYgd2UncmUgbm90IGN1cnJlbnRseSB3YWl0aW5nLlxuICAgICAgICBpZiAodGltZW91dElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHN0YXJ0VGltZSA9IGxhc3RDYWxsO1xuICAgICAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dChydW4sIG1zKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/error.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/error.js ***!
|
||
\****************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 PageSignatureError: function() {\n return PageSignatureError;\n },\n RemovedPageError: function() {\n return RemovedPageError;\n },\n RemovedUAError: function() {\n return RemovedUAError;\n }\n});\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}\n\n//# sourceMappingURL=error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0Esa0JBQWtCLE1BQU07QUFDeEIsaUNBQWlDLEtBQUs7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL2Vycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUGFnZVNpZ25hdHVyZUVycm9yOiBudWxsLFxuICAgIFJlbW92ZWRQYWdlRXJyb3I6IG51bGwsXG4gICAgUmVtb3ZlZFVBRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgUGFnZVNpZ25hdHVyZUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBhZ2VTaWduYXR1cmVFcnJvcjtcbiAgICB9LFxuICAgIFJlbW92ZWRQYWdlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVtb3ZlZFBhZ2VFcnJvcjtcbiAgICB9LFxuICAgIFJlbW92ZWRVQUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbW92ZWRVQUVycm9yO1xuICAgIH1cbn0pO1xuY2xhc3MgUGFnZVNpZ25hdHVyZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHsgcGFnZSB9KXtcbiAgICAgICAgc3VwZXIoYFRoZSBtaWRkbGV3YXJlIFwiJHtwYWdlfVwiIGFjY2VwdHMgYW4gYXN5bmMgQVBJIGRpcmVjdGx5IHdpdGggdGhlIGZvcm06XG4gIFxuICBleHBvcnQgZnVuY3Rpb24gbWlkZGxld2FyZShyZXF1ZXN0LCBldmVudCkge1xuICAgIHJldHVybiBOZXh0UmVzcG9uc2UucmVkaXJlY3QoJy9uZXctbG9jYXRpb24nKVxuICB9XG4gIFxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtbmV3LXNpZ25hdHVyZVxuICBgKTtcbiAgICB9XG59XG5jbGFzcyBSZW1vdmVkUGFnZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKGBUaGUgcmVxdWVzdC5wYWdlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIFxcYFVSTFBhdHRlcm5cXGAuXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZXF1ZXN0LXBhZ2VcbiAgYCk7XG4gICAgfVxufVxuY2xhc3MgUmVtb3ZlZFVBRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgc3VwZXIoYFRoZSByZXF1ZXN0LnVhIGhhcyBiZWVuIHJlbW92ZWQgaW4gZmF2b3VyIG9mIFxcYHVzZXJBZ2VudFxcYCBmdW5jdGlvbi5cbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXBhcnNlLXVzZXItYWdlbnRcbiAgYCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/next-url.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/next-url.js ***!
|
||
\*******************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextURL\", ({\n enumerable: true,\n get: function() {\n return NextURL;\n }\n}));\nconst _detectdomainlocale = __webpack_require__(/*! ../../shared/lib/i18n/detect-domain-locale */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\");\nconst _formatnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/format-next-pathname-info */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\");\nconst _gethostname = __webpack_require__(/*! ../../shared/lib/get-hostname */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/get-hostname.js\");\nconst _getnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/get-next-pathname-info */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\");\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, _getnextpathnameinfo.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, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.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, _formatnextpathnameinfo.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 Object.defineProperty(new TypeError(`The NextURL configuration includes no locale \"${locale}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E597\",\n enumerable: false,\n configurable: true\n });\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}\n\n//# sourceMappingURL=next-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9uZXh0LXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLDRCQUE0QixtQkFBTyxDQUFDLHFJQUE0QztBQUNoRixnQ0FBZ0MsbUJBQU8sQ0FBQywrSkFBeUQ7QUFDakcscUJBQXFCLG1CQUFPLENBQUMsMkdBQStCO0FBQzVELDZCQUE2QixtQkFBTyxDQUFDLHlKQUFzRDtBQUMzRixxR0FBcUcsRUFBRTtBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFNBQThDO0FBQ3RFO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVHQUF1RyxPQUFPO0FBQzlHO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsY0FBYyxJQUFJLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVU7QUFDOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0VBQXNFLE1BQU07QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvbmV4dC11cmwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOZXh0VVJMXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0VVJMO1xuICAgIH1cbn0pO1xuY29uc3QgX2RldGVjdGRvbWFpbmxvY2FsZSA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2kxOG4vZGV0ZWN0LWRvbWFpbi1sb2NhbGVcIik7XG5jb25zdCBfZm9ybWF0bmV4dHBhdGhuYW1laW5mbyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvXCIpO1xuY29uc3QgX2dldGhvc3RuYW1lID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lXCIpO1xuY29uc3QgX2dldG5leHRwYXRobmFtZWluZm8gPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mb1wiKTtcbmNvbnN0IFJFR0VYX0xPQ0FMSE9TVF9IT1NUTkFNRSA9IC8oPyFeaHR0cHM/OlxcL1xcLykoMTI3KD86XFwuKD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KSl7M318XFxbOjoxXFxdfGxvY2FsaG9zdCkvO1xuZnVuY3Rpb24gcGFyc2VVUkwodXJsLCBiYXNlKSB7XG4gICAgcmV0dXJuIG5ldyBVUkwoU3RyaW5nKHVybCkucmVwbGFjZShSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUsICdsb2NhbGhvc3QnKSwgYmFzZSAmJiBTdHJpbmcoYmFzZSkucmVwbGFjZShSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUsICdsb2NhbGhvc3QnKSk7XG59XG5jb25zdCBJbnRlcm5hbCA9IFN5bWJvbCgnTmV4dFVSTEludGVybmFsJyk7XG5jbGFzcyBOZXh0VVJMIHtcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCwgYmFzZU9yT3B0cywgb3B0cyl7XG4gICAgICAgIGxldCBiYXNlO1xuICAgICAgICBsZXQgb3B0aW9ucztcbiAgICAgICAgaWYgKHR5cGVvZiBiYXNlT3JPcHRzID09PSAnb2JqZWN0JyAmJiAncGF0aG5hbWUnIGluIGJhc2VPck9wdHMgfHwgdHlwZW9mIGJhc2VPck9wdHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBiYXNlID0gYmFzZU9yT3B0cztcbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRzIHx8IHt9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdHMgfHwgYmFzZU9yT3B0cyB8fCB7fTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzW0ludGVybmFsXSA9IHtcbiAgICAgICAgICAgIHVybDogcGFyc2VVUkwoaW5wdXQsIGJhc2UgPz8gb3B0aW9ucy5iYXNlKSxcbiAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgICAgICBiYXNlUGF0aDogJydcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5hbmFseXplKCk7XG4gICAgfVxuICAgIGFuYWx5emUoKSB7XG4gICAgICAgIHZhciBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLCBfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUsIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuMSwgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMTtcbiAgICAgICAgY29uc3QgaW5mbyA9ICgwLCBfZ2V0bmV4dHBhdGhuYW1laW5mby5nZXROZXh0UGF0aG5hbWVJbmZvKSh0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUsIHtcbiAgICAgICAgICAgIG5leHRDb25maWc6IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZyxcbiAgICAgICAgICAgIHBhcnNlRGF0YTogIXByb2Nlc3MuZW52Ll9fTkVYVF9OT19NSURETEVXQVJFX1VSTF9OT1JNQUxJWkUsXG4gICAgICAgICAgICBpMThuUHJvdmlkZXI6IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBob3N0bmFtZSA9ICgwLCBfZ2V0aG9zdG5hbWUuZ2V0SG9zdG5hbWUpKHRoaXNbSW50ZXJuYWxdLnVybCwgdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5oZWFkZXJzKTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uZG9tYWluTG9jYWxlID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5pMThuUHJvdmlkZXIgPyB0aGlzW0ludGVybmFsXS5vcHRpb25zLmkxOG5Qcm92aWRlci5kZXRlY3REb21haW5Mb2NhbGUoaG9zdG5hbWUpIDogKDAsIF9kZXRlY3Rkb21haW5sb2NhbGUuZGV0ZWN0RG9tYWluTG9jYWxlKSgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bi5kb21haW5zLCBob3N0bmFtZSk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRMb2NhbGUgPSAoKF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZSA9IHRoaXNbSW50ZXJuYWxdLmRvbWFpbkxvY2FsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX2RvbWFpbkxvY2FsZS5kZWZhdWx0TG9jYWxlKSB8fCAoKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZzEgPSB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcpID09IG51bGwgPyB2b2lkIDAgOiAoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnMS5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4xLmRlZmF1bHRMb2NhbGUpO1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucGF0aG5hbWUgPSBpbmZvLnBhdGhuYW1lO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlID0gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGggPSBpbmZvLmJhc2VQYXRoID8/ICcnO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5idWlsZElkID0gaW5mby5idWlsZElkO1xuICAgICAgICB0aGlzW0ludGVybmFsXS5sb2NhbGUgPSBpbmZvLmxvY2FsZSA/PyBkZWZhdWx0TG9jYWxlO1xuICAgICAgICB0aGlzW0ludGVybmFsXS50cmFpbGluZ1NsYXNoID0gaW5mby50cmFpbGluZ1NsYXNoO1xuICAgIH1cbiAgICBmb3JtYXRQYXRobmFtZSgpIHtcbiAgICAgICAgcmV0dXJuICgwLCBfZm9ybWF0bmV4dHBhdGhuYW1laW5mby5mb3JtYXROZXh0UGF0aG5hbWVJbmZvKSh7XG4gICAgICAgICAgICBiYXNlUGF0aDogdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGgsXG4gICAgICAgICAgICBidWlsZElkOiB0aGlzW0ludGVybmFsXS5idWlsZElkLFxuICAgICAgICAgICAgZGVmYXVsdExvY2FsZTogIXRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuZm9yY2VMb2NhbGUgPyB0aGlzW0ludGVybmFsXS5kZWZhdWx0TG9jYWxlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzW0ludGVybmFsXS5sb2NhbGUsXG4gICAgICAgICAgICBwYXRobmFtZTogdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lLFxuICAgICAgICAgICAgdHJhaWxpbmdTbGFzaDogdGhpc1tJbnRlcm5hbF0udHJhaWxpbmdTbGFzaFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZm9ybWF0U2VhcmNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaDtcbiAgICB9XG4gICAgZ2V0IGJ1aWxkSWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5idWlsZElkO1xuICAgIH1cbiAgICBzZXQgYnVpbGRJZChidWlsZElkKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJ1aWxkSWQgPSBidWlsZElkO1xuICAgIH1cbiAgICBnZXQgbG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0ubG9jYWxlID8/ICcnO1xuICAgIH1cbiAgICBzZXQgbG9jYWxlKGxvY2FsZSkge1xuICAgICAgICB2YXIgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4sIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZztcbiAgICAgICAgaWYgKCF0aGlzW0ludGVybmFsXS5sb2NhbGUgfHwgISgoX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuID0gX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnLmkxOG4pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bi5sb2NhbGVzLmluY2x1ZGVzKGxvY2FsZSkpKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IFR5cGVFcnJvcihgVGhlIE5leHRVUkwgY29uZmlndXJhdGlvbiBpbmNsdWRlcyBubyBsb2NhbGUgXCIke2xvY2FsZX1cImApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTk3XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzW0ludGVybmFsXS5sb2NhbGUgPSBsb2NhbGU7XG4gICAgfVxuICAgIGdldCBkZWZhdWx0TG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uZGVmYXVsdExvY2FsZTtcbiAgICB9XG4gICAgZ2V0IGRvbWFpbkxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmRvbWFpbkxvY2FsZTtcbiAgICB9XG4gICAgZ2V0IHNlYXJjaFBhcmFtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGdldCBob3N0KCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLmhvc3Q7XG4gICAgfVxuICAgIHNldCBob3N0KHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBob3N0bmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0bmFtZTtcbiAgICB9XG4gICAgc2V0IGhvc3RuYW1lKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0bmFtZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcG9ydCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wb3J0O1xuICAgIH1cbiAgICBzZXQgcG9ydCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucG9ydCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcHJvdG9jb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucHJvdG9jb2w7XG4gICAgfVxuICAgIHNldCBwcm90b2NvbCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwucHJvdG9jb2wgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhyZWYoKSB7XG4gICAgICAgIGNvbnN0IHBhdGhuYW1lID0gdGhpcy5mb3JtYXRQYXRobmFtZSgpO1xuICAgICAgICBjb25zdCBzZWFyY2ggPSB0aGlzLmZvcm1hdFNlYXJjaCgpO1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5wcm90b2NvbH0vLyR7dGhpcy5ob3N0fSR7cGF0aG5hbWV9JHtzZWFyY2h9JHt0aGlzLmhhc2h9YDtcbiAgICB9XG4gICAgc2V0IGhyZWYodXJsKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybCA9IHBhcnNlVVJMKHVybCk7XG4gICAgICAgIHRoaXMuYW5hbHl6ZSgpO1xuICAgIH1cbiAgICBnZXQgb3JpZ2luKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLm9yaWdpbjtcbiAgICB9XG4gICAgZ2V0IHBhdGhuYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lO1xuICAgIH1cbiAgICBzZXQgcGF0aG5hbWUodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBoYXNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLmhhc2g7XG4gICAgfVxuICAgIHNldCBoYXNoKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5oYXNoID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBzZWFyY2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoO1xuICAgIH1cbiAgICBzZXQgc2VhcmNoKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2ggPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHBhc3N3b3JkKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnBhc3N3b3JkO1xuICAgIH1cbiAgICBzZXQgcGFzc3dvcmQodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBhc3N3b3JkID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCB1c2VybmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC51c2VybmFtZTtcbiAgICB9XG4gICAgc2V0IHVzZXJuYW1lKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC51c2VybmFtZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgYmFzZVBhdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5iYXNlUGF0aDtcbiAgICB9XG4gICAgc2V0IGJhc2VQYXRoKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoID0gdmFsdWUuc3RhcnRzV2l0aCgnLycpID8gdmFsdWUgOiBgLyR7dmFsdWV9YDtcbiAgICB9XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhyZWY7XG4gICAgfVxuICAgIHRvSlNPTigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHJlZjtcbiAgICB9XG4gICAgW1N5bWJvbC5mb3IoJ2VkZ2UtcnVudGltZS5pbnNwZWN0LmN1c3RvbScpXSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhyZWY6IHRoaXMuaHJlZixcbiAgICAgICAgICAgIG9yaWdpbjogdGhpcy5vcmlnaW4sXG4gICAgICAgICAgICBwcm90b2NvbDogdGhpcy5wcm90b2NvbCxcbiAgICAgICAgICAgIHVzZXJuYW1lOiB0aGlzLnVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXG4gICAgICAgICAgICBob3N0OiB0aGlzLmhvc3QsXG4gICAgICAgICAgICBob3N0bmFtZTogdGhpcy5ob3N0bmFtZSxcbiAgICAgICAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgICAgICAgIHBhdGhuYW1lOiB0aGlzLnBhdGhuYW1lLFxuICAgICAgICAgICAgc2VhcmNoOiB0aGlzLnNlYXJjaCxcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtczogdGhpcy5zZWFyY2hQYXJhbXMsXG4gICAgICAgICAgICBoYXNoOiB0aGlzLmhhc2hcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFVSTChTdHJpbmcodGhpcyksIHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmV4dC11cmwuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/next-url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/spec-extension/adapters/next-request.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 NextRequestAdapter: function() {\n return NextRequestAdapter;\n },\n ResponseAborted: function() {\n return ResponseAborted;\n },\n ResponseAbortedName: function() {\n return ResponseAbortedName;\n },\n createAbortController: function() {\n return createAbortController;\n },\n signalFromNodeResponse: function() {\n return signalFromNodeResponse;\n }\n});\nconst _requestmeta = __webpack_require__(/*! ../../../request-meta */ \"(pages-dir-node)/./node_modules/next/dist/server/request-meta.js\");\nconst _utils = __webpack_require__(/*! ../../utils */ \"(pages-dir-node)/./node_modules/next/dist/server/web/utils.js\");\nconst _request = __webpack_require__(/*! ../request */ \"(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _helpers = __webpack_require__(/*! ../../../base-http/helpers */ \"(pages-dir-node)/./node_modules/next/dist/server/base-http/helpers.js\");\nconst ResponseAbortedName = 'ResponseAborted';\nclass ResponseAborted extends Error {\n constructor(...args){\n super(...args), this.name = ResponseAbortedName;\n }\n}\nfunction 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}\nfunction 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 if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n false) {} else if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n true && (0, _helpers.isNodeNextRequest)(request)) {\n return NextRequestAdapter.fromNodeNextRequest(request, signal);\n } else {\n throw Object.defineProperty(new Error('Invariant: Unsupported NextRequest type'), \"__NEXT_ERROR_CODE\", {\n value: \"E345\",\n enumerable: false,\n configurable: true\n });\n }\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, _requestmeta.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.NextRequest(url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...signal.aborted ? {} : {\n body\n }\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.NextRequest(request.url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal: request.request.signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...request.request.signal.aborted ? {} : {\n body\n }\n });\n }\n}\n\n//# sourceMappingURL=next-request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9uZXh0LXJlcXVlc3QuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscUJBQXFCLG1CQUFPLENBQUMsK0ZBQXVCO0FBQ3BELGVBQWUsbUJBQU8sQ0FBQyxrRkFBYTtBQUNwQyxpQkFBaUIsbUJBQU8sQ0FBQyxrR0FBWTtBQUNyQyxpQkFBaUIsbUJBQU8sQ0FBQyx5R0FBNEI7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQztBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUE4RSxFQUFFLEVBRS9FLENBQUM7QUFDVjtBQUNBLFFBQVEsS0FBbUM7QUFDM0M7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1EQUFtRDtBQUNuRDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9uZXh0LXJlcXVlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBOZXh0UmVxdWVzdEFkYXB0ZXI6IG51bGwsXG4gICAgUmVzcG9uc2VBYm9ydGVkOiBudWxsLFxuICAgIFJlc3BvbnNlQWJvcnRlZE5hbWU6IG51bGwsXG4gICAgY3JlYXRlQWJvcnRDb250cm9sbGVyOiBudWxsLFxuICAgIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTmV4dFJlcXVlc3RBZGFwdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0QWRhcHRlcjtcbiAgICB9LFxuICAgIFJlc3BvbnNlQWJvcnRlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZUFib3J0ZWQ7XG4gICAgfSxcbiAgICBSZXNwb25zZUFib3J0ZWROYW1lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlc3BvbnNlQWJvcnRlZE5hbWU7XG4gICAgfSxcbiAgICBjcmVhdGVBYm9ydENvbnRyb2xsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlQWJvcnRDb250cm9sbGVyO1xuICAgIH0sXG4gICAgc2lnbmFsRnJvbU5vZGVSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzaWduYWxGcm9tTm9kZVJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlcXVlc3RtZXRhID0gcmVxdWlyZShcIi4uLy4uLy4uL3JlcXVlc3QtbWV0YVwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi8uLi91dGlsc1wiKTtcbmNvbnN0IF9yZXF1ZXN0ID0gcmVxdWlyZShcIi4uL3JlcXVlc3RcIik7XG5jb25zdCBfaGVscGVycyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9iYXNlLWh0dHAvaGVscGVyc1wiKTtcbmNvbnN0IFJlc3BvbnNlQWJvcnRlZE5hbWUgPSAnUmVzcG9uc2VBYm9ydGVkJztcbmNsYXNzIFJlc3BvbnNlQWJvcnRlZCBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzKXtcbiAgICAgICAgc3VwZXIoLi4uYXJncyksIHRoaXMubmFtZSA9IFJlc3BvbnNlQWJvcnRlZE5hbWU7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlQWJvcnRDb250cm9sbGVyKHJlc3BvbnNlKSB7XG4gICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAvLyBJZiBgZmluaXNoYCBmaXJlcyBmaXJzdCwgdGhlbiBgcmVzLmVuZCgpYCBoYXMgYmVlbiBjYWxsZWQgYW5kIHRoZSBjbG9zZSBpc1xuICAgIC8vIGp1c3QgdXMgZmluaXNoaW5nIHRoZSBzdHJlYW0gb24gb3VyIHNpZGUuIElmIGBjbG9zZWAgZmlyZXMgZmlyc3QsIHRoZW4gd2VcbiAgICAvLyBrbm93IHRoZSBjbGllbnQgZGlzY29ubmVjdGVkIGJlZm9yZSB3ZSBmaW5pc2hlZC5cbiAgICByZXNwb25zZS5vbmNlKCdjbG9zZScsICgpPT57XG4gICAgICAgIGlmIChyZXNwb25zZS53cml0YWJsZUZpbmlzaGVkKSByZXR1cm47XG4gICAgICAgIGNvbnRyb2xsZXIuYWJvcnQobmV3IFJlc3BvbnNlQWJvcnRlZCgpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY29udHJvbGxlcjtcbn1cbmZ1bmN0aW9uIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2UocmVzcG9uc2UpIHtcbiAgICBjb25zdCB7IGVycm9yZWQsIGRlc3Ryb3llZCB9ID0gcmVzcG9uc2U7XG4gICAgaWYgKGVycm9yZWQgfHwgZGVzdHJveWVkKSB7XG4gICAgICAgIHJldHVybiBBYm9ydFNpZ25hbC5hYm9ydChlcnJvcmVkID8/IG5ldyBSZXNwb25zZUFib3J0ZWQoKSk7XG4gICAgfVxuICAgIGNvbnN0IHsgc2lnbmFsIH0gPSBjcmVhdGVBYm9ydENvbnRyb2xsZXIocmVzcG9uc2UpO1xuICAgIHJldHVybiBzaWduYWw7XG59XG5jbGFzcyBOZXh0UmVxdWVzdEFkYXB0ZXIge1xuICAgIHN0YXRpYyBmcm9tQmFzZU5leHRSZXF1ZXN0KHJlcXVlc3QsIHNpZ25hbCkge1xuICAgICAgICBpZiAoLy8gVGhlIHR5cGUgY2hlY2sgaGVyZSBlbnN1cmVzIHRoYXQgYHJlcWAgaXMgY29ycmVjdGx5IHR5cGVkLCBhbmQgdGhlXG4gICAgICAgIC8vIGVudmlyb25tZW50IHZhcmlhYmxlIGNoZWNrIHByb3ZpZGVzIGRlYWQgY29kZSBlbGltaW5hdGlvbi5cbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScgJiYgKDAsIF9oZWxwZXJzLmlzV2ViTmV4dFJlcXVlc3QpKHJlcXVlc3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3RBZGFwdGVyLmZyb21XZWJOZXh0UmVxdWVzdChyZXF1ZXN0KTtcbiAgICAgICAgfSBlbHNlIGlmICgvLyBUaGUgdHlwZSBjaGVjayBoZXJlIGVuc3VyZXMgdGhhdCBgcmVxYCBpcyBjb3JyZWN0bHkgdHlwZWQsIGFuZCB0aGVcbiAgICAgICAgLy8gZW52aXJvbm1lbnQgdmFyaWFibGUgY2hlY2sgcHJvdmlkZXMgZGVhZCBjb2RlIGVsaW1pbmF0aW9uLlxuICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiAoMCwgX2hlbHBlcnMuaXNOb2RlTmV4dFJlcXVlc3QpKHJlcXVlc3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3RBZGFwdGVyLmZyb21Ob2RlTmV4dFJlcXVlc3QocmVxdWVzdCwgc2lnbmFsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogVW5zdXBwb3J0ZWQgTmV4dFJlcXVlc3QgdHlwZScpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMzQ1XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgZnJvbU5vZGVOZXh0UmVxdWVzdChyZXF1ZXN0LCBzaWduYWwpIHtcbiAgICAgICAgLy8gSEVBRCBhbmQgR0VUIHJlcXVlc3RzIGNhbiBub3QgaGF2ZSBhIGJvZHkuXG4gICAgICAgIGxldCBib2R5ID0gbnVsbDtcbiAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnICYmIHJlcXVlc3QuYm9keSkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIHRoaXMgaXMgaGFuZGxlZCBieSB1bmRpY2ksIHdoZW4gc3RyZWFtcy93ZWIgbGFuZCB1c2UgaXQgaW5zdGVhZFxuICAgICAgICAgICAgYm9keSA9IHJlcXVlc3QuYm9keTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdXJsO1xuICAgICAgICBpZiAocmVxdWVzdC51cmwuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEdyYWIgdGhlIGZ1bGwgVVJMIGZyb20gdGhlIHJlcXVlc3QgbWV0YWRhdGEuXG4gICAgICAgICAgICBjb25zdCBiYXNlID0gKDAsIF9yZXF1ZXN0bWV0YS5nZXRSZXF1ZXN0TWV0YSkocmVxdWVzdCwgJ2luaXRVUkwnKTtcbiAgICAgICAgICAgIGlmICghYmFzZSB8fCAhYmFzZS5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBVUkwgY29uc3RydWN0aW9uIHJlbGllcyBvbiB0aGUgZmFjdCB0aGF0IHRoZSBVUkwgcHJvdmlkZWRcbiAgICAgICAgICAgICAgICAvLyBpcyBhYnNvbHV0ZSwgd2UgbmVlZCB0byBwcm92aWRlIGEgYmFzZSBVUkwuIFdlIGNhbid0IHVzZSB0aGUgcmVxdWVzdFxuICAgICAgICAgICAgICAgIC8vIFVSTCBiZWNhdXNlIGl0J3MgcmVsYXRpdmUsIHNvIHdlIHVzZSBhIGR1bW15IFVSTCBpbnN0ZWFkLlxuICAgICAgICAgICAgICAgIHVybCA9IG5ldyBVUkwocmVxdWVzdC51cmwsICdodHRwOi8vbicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsLCBiYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IF9yZXF1ZXN0Lk5leHRSZXF1ZXN0KHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgICAgICAgIGhlYWRlcnM6ICgwLCBfdXRpbHMuZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKShyZXF1ZXN0LmhlYWRlcnMpLFxuICAgICAgICAgICAgZHVwbGV4OiAnaGFsZicsXG4gICAgICAgICAgICBzaWduYWwsXG4gICAgICAgICAgICAvLyBnZW9cbiAgICAgICAgICAgIC8vIGlwXG4gICAgICAgICAgICAvLyBuZXh0Q29uZmlnXG4gICAgICAgICAgICAvLyBib2R5IGNhbiBub3QgYmUgcGFzc2VkIGlmIHJlcXVlc3Qgd2FzIGFib3J0ZWRcbiAgICAgICAgICAgIC8vIG9yIHdlIGdldCBhIFJlcXVlc3QgYm9keSB3YXMgZGlzdHVyYmVkIGVycm9yXG4gICAgICAgICAgICAuLi5zaWduYWwuYWJvcnRlZCA/IHt9IDoge1xuICAgICAgICAgICAgICAgIGJvZHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyBmcm9tV2ViTmV4dFJlcXVlc3QocmVxdWVzdCkge1xuICAgICAgICAvLyBIRUFEIGFuZCBHRVQgcmVxdWVzdHMgY2FuIG5vdCBoYXZlIGEgYm9keS5cbiAgICAgICAgbGV0IGJvZHkgPSBudWxsO1xuICAgICAgICBpZiAocmVxdWVzdC5tZXRob2QgIT09ICdHRVQnICYmIHJlcXVlc3QubWV0aG9kICE9PSAnSEVBRCcpIHtcbiAgICAgICAgICAgIGJvZHkgPSByZXF1ZXN0LmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBfcmVxdWVzdC5OZXh0UmVxdWVzdChyZXF1ZXN0LnVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgICAgICAgIGhlYWRlcnM6ICgwLCBfdXRpbHMuZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKShyZXF1ZXN0LmhlYWRlcnMpLFxuICAgICAgICAgICAgZHVwbGV4OiAnaGFsZicsXG4gICAgICAgICAgICBzaWduYWw6IHJlcXVlc3QucmVxdWVzdC5zaWduYWwsXG4gICAgICAgICAgICAvLyBnZW9cbiAgICAgICAgICAgIC8vIGlwXG4gICAgICAgICAgICAvLyBuZXh0Q29uZmlnXG4gICAgICAgICAgICAvLyBib2R5IGNhbiBub3QgYmUgcGFzc2VkIGlmIHJlcXVlc3Qgd2FzIGFib3J0ZWRcbiAgICAgICAgICAgIC8vIG9yIHdlIGdldCBhIFJlcXVlc3QgYm9keSB3YXMgZGlzdHVyYmVkIGVycm9yXG4gICAgICAgICAgICAuLi5yZXF1ZXN0LnJlcXVlc3Quc2lnbmFsLmFib3J0ZWQgPyB7fSA6IHtcbiAgICAgICAgICAgICAgICBib2R5XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmV4dC1yZXF1ZXN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/cookies.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/spec-extension/cookies.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 RequestCookies: function() {\n return _cookies.RequestCookies;\n },\n ResponseCookies: function() {\n return _cookies.ResponseCookies;\n },\n stringifyCookie: function() {\n return _cookies.stringifyCookie;\n }\n});\nconst _cookies = __webpack_require__(/*! next/dist/compiled/@edge-runtime/cookies */ \"(pages-dir-node)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\");\n\n//# sourceMappingURL=cookies.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9jb29raWVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsbUlBQTBDOztBQUVuRSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2Nvb2tpZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBSZXF1ZXN0Q29va2llczogbnVsbCxcbiAgICBSZXNwb25zZUNvb2tpZXM6IG51bGwsXG4gICAgc3RyaW5naWZ5Q29va2llOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFJlcXVlc3RDb29raWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb29raWVzLlJlcXVlc3RDb29raWVzO1xuICAgIH0sXG4gICAgUmVzcG9uc2VDb29raWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9jb29raWVzLlJlc3BvbnNlQ29va2llcztcbiAgICB9LFxuICAgIHN0cmluZ2lmeUNvb2tpZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29va2llcy5zdHJpbmdpZnlDb29raWU7XG4gICAgfVxufSk7XG5jb25zdCBfY29va2llcyA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvQGVkZ2UtcnVudGltZS9jb29raWVzXCIpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb29raWVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/cookies.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/request.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/spec-extension/request.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 INTERNALS: function() {\n return INTERNALS;\n },\n NextRequest: function() {\n return NextRequest;\n }\n});\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"(pages-dir-node)/./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"(pages-dir-node)/./node_modules/next/dist/server/web/utils.js\");\nconst _error = __webpack_require__(/*! ../error */ \"(pages-dir-node)/./node_modules/next/dist/server/web/error.js\");\nconst _cookies = __webpack_require__(/*! ./cookies */ \"(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\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.validateURL)(url);\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (true) {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half';\n }\n }\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _nexturl.NextURL(url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies.RequestCookies(this.headers),\n nextUrl,\n url: false ? 0 : nextUrl.toString()\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\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 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.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.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLHFGQUFhO0FBQ3RDLGVBQWUsbUJBQU8sQ0FBQywrRUFBVTtBQUNqQyxlQUFlLG1CQUFPLENBQUMsK0VBQVU7QUFDakMsaUJBQWlCLG1CQUFPLENBQUMsaUdBQVc7QUFDcEM7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQW1DO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsTUFBOEMsR0FBRyxDQUFHO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgSU5URVJOQUxTOiBudWxsLFxuICAgIE5leHRSZXF1ZXN0OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIElOVEVSTkFMUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTlRFUk5BTFM7XG4gICAgfSxcbiAgICBOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0UmVxdWVzdDtcbiAgICB9XG59KTtcbmNvbnN0IF9uZXh0dXJsID0gcmVxdWlyZShcIi4uL25leHQtdXJsXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xuY29uc3QgX2Vycm9yID0gcmVxdWlyZShcIi4uL2Vycm9yXCIpO1xuY29uc3QgX2Nvb2tpZXMgPSByZXF1aXJlKFwiLi9jb29raWVzXCIpO1xuY29uc3QgSU5URVJOQUxTID0gU3ltYm9sKCdpbnRlcm5hbCByZXF1ZXN0Jyk7XG5jbGFzcyBOZXh0UmVxdWVzdCBleHRlbmRzIFJlcXVlc3Qge1xuICAgIGNvbnN0cnVjdG9yKGlucHV0LCBpbml0ID0ge30pe1xuICAgICAgICBjb25zdCB1cmwgPSB0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnICYmICd1cmwnIGluIGlucHV0ID8gaW5wdXQudXJsIDogU3RyaW5nKGlucHV0KTtcbiAgICAgICAgKDAsIF91dGlscy52YWxpZGF0ZVVSTCkodXJsKTtcbiAgICAgICAgLy8gbm9kZSBSZXF1ZXN0IGluc3RhbmNlIHJlcXVpcmVzIGR1cGxleCBvcHRpb24gd2hlbiBhIGJvZHlcbiAgICAgICAgLy8gaXMgcHJlc2VudCBvciBpdCBlcnJvcnMsIHdlIGRvbid0IGhhbmRsZSB0aGlzIGZvclxuICAgICAgICAvLyBSZXF1ZXN0IGJlaW5nIHBhc3NlZCBpbiBzaW5jZSBpdCB3b3VsZCBoYXZlIGFscmVhZHlcbiAgICAgICAgLy8gZXJyb3JlZCBpZiB0aGlzIHdhc24ndCBjb25maWd1cmVkXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJykge1xuICAgICAgICAgICAgaWYgKGluaXQuYm9keSAmJiBpbml0LmR1cGxleCAhPT0gJ2hhbGYnKSB7XG4gICAgICAgICAgICAgICAgaW5pdC5kdXBsZXggPSAnaGFsZic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0IGluc3RhbmNlb2YgUmVxdWVzdCkgc3VwZXIoaW5wdXQsIGluaXQpO1xuICAgICAgICBlbHNlIHN1cGVyKHVybCwgaW5pdCk7XG4gICAgICAgIGNvbnN0IG5leHRVcmwgPSBuZXcgX25leHR1cmwuTmV4dFVSTCh1cmwsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6ICgwLCBfdXRpbHMudG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykodGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIG5leHRDb25maWc6IGluaXQubmV4dENvbmZpZ1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpc1tJTlRFUk5BTFNdID0ge1xuICAgICAgICAgICAgY29va2llczogbmV3IF9jb29raWVzLlJlcXVlc3RDb29raWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBuZXh0VXJsLFxuICAgICAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5fX05FWFRfTk9fTUlERExFV0FSRV9VUkxfTk9STUFMSVpFID8gdXJsIDogbmV4dFVybC50b1N0cmluZygpXG4gICAgICAgIH07XG4gICAgfVxuICAgIFtTeW1ib2wuZm9yKCdlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b20nKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb29raWVzOiB0aGlzLmNvb2tpZXMsXG4gICAgICAgICAgICBuZXh0VXJsOiB0aGlzLm5leHRVcmwsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgLy8gcmVzdCBvZiBwcm9wcyBjb21lIGZyb20gUmVxdWVzdFxuICAgICAgICAgICAgYm9keVVzZWQ6IHRoaXMuYm9keVVzZWQsXG4gICAgICAgICAgICBjYWNoZTogdGhpcy5jYWNoZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiB0aGlzLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgZGVzdGluYXRpb246IHRoaXMuZGVzdGluYXRpb24sXG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuZnJvbUVudHJpZXModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIGludGVncml0eTogdGhpcy5pbnRlZ3JpdHksXG4gICAgICAgICAgICBrZWVwYWxpdmU6IHRoaXMua2VlcGFsaXZlLFxuICAgICAgICAgICAgbWV0aG9kOiB0aGlzLm1ldGhvZCxcbiAgICAgICAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgICAgICAgIHJlZGlyZWN0OiB0aGlzLnJlZGlyZWN0LFxuICAgICAgICAgICAgcmVmZXJyZXI6IHRoaXMucmVmZXJyZXIsXG4gICAgICAgICAgICByZWZlcnJlclBvbGljeTogdGhpcy5yZWZlcnJlclBvbGljeSxcbiAgICAgICAgICAgIHNpZ25hbDogdGhpcy5zaWduYWxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uY29va2llcztcbiAgICB9XG4gICAgZ2V0IG5leHRVcmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10ubmV4dFVybDtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIGBwYWdlYCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBgVVJMUGF0dGVybmAuXG4gICAqIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1yZXF1ZXN0LXBhZ2VcbiAgICovIGdldCBwYWdlKCkge1xuICAgICAgICB0aHJvdyBuZXcgX2Vycm9yLlJlbW92ZWRQYWdlRXJyb3IoKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIGB1YWAgaGFzIGJlZW4gcmVtb3ZlZCBpbiBmYXZvdXIgb2YgXFxgdXNlckFnZW50XFxgIGZ1bmN0aW9uLlxuICAgKiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcGFyc2UtdXNlci1hZ2VudFxuICAgKi8gZ2V0IHVhKCkge1xuICAgICAgICB0aHJvdyBuZXcgX2Vycm9yLlJlbW92ZWRVQUVycm9yKCk7XG4gICAgfVxuICAgIGdldCB1cmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10udXJsO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/spec-extension/request.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/server/web/utils.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/utils.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 fromNodeOutgoingHttpHeaders: function() {\n return fromNodeOutgoingHttpHeaders;\n },\n normalizeNextQueryParam: function() {\n return normalizeNextQueryParam;\n },\n splitCookiesString: function() {\n return splitCookiesString;\n },\n toNodeOutgoingHttpHeaders: function() {\n return toNodeOutgoingHttpHeaders;\n },\n validateURL: function() {\n return validateURL;\n }\n});\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(pages-dir-node)/./node_modules/next/dist/lib/constants.js\");\nfunction 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}\nfunction 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}\nfunction 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}\nfunction validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw Object.defineProperty(new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E61\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction normalizeNextQueryParam(key) {\n const prefixes = [\n _constants.NEXT_QUERY_PARAM_PREFIX,\n _constants.NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length);\n }\n }\n return null;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxtQkFBbUIsbUJBQU8sQ0FBQyx1RkFBcUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtFQUErRTtBQUMvRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIseURBQXlEO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixtRUFBbUUsWUFBWTtBQUMvRTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBudWxsLFxuICAgIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtOiBudWxsLFxuICAgIHNwbGl0Q29va2llc1N0cmluZzogbnVsbCxcbiAgICB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBudWxsLFxuICAgIHZhbGlkYXRlVVJMOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVyczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM7XG4gICAgfSxcbiAgICBub3JtYWxpemVOZXh0UXVlcnlQYXJhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVOZXh0UXVlcnlQYXJhbTtcbiAgICB9LFxuICAgIHNwbGl0Q29va2llc1N0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzcGxpdENvb2tpZXNTdHJpbmc7XG4gICAgfSxcbiAgICB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM7XG4gICAgfSxcbiAgICB2YWxpZGF0ZVVSTDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZVVSTDtcbiAgICB9XG59KTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyhub2RlSGVhZGVycykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycygpO1xuICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhub2RlSGVhZGVycykpe1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW1xuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgXTtcbiAgICAgICAgZm9yIChsZXQgdiBvZiB2YWx1ZXMpe1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSAndW5kZWZpbmVkJykgY29udGludWU7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdiA9IHYudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKGtleSwgdik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlcnM7XG59XG5mdW5jdGlvbiBzcGxpdENvb2tpZXNTdHJpbmcoY29va2llc1N0cmluZykge1xuICAgIHZhciBjb29raWVzU3RyaW5ncyA9IFtdO1xuICAgIHZhciBwb3MgPSAwO1xuICAgIHZhciBzdGFydDtcbiAgICB2YXIgY2g7XG4gICAgdmFyIGxhc3RDb21tYTtcbiAgICB2YXIgbmV4dFN0YXJ0O1xuICAgIHZhciBjb29raWVzU2VwYXJhdG9yRm91bmQ7XG4gICAgZnVuY3Rpb24gc2tpcFdoaXRlc3BhY2UoKSB7XG4gICAgICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIC9cXHMvLnRlc3QoY29va2llc1N0cmluZy5jaGFyQXQocG9zKSkpe1xuICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3RTcGVjaWFsQ2hhcigpIHtcbiAgICAgICAgY2ggPSBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpO1xuICAgICAgICByZXR1cm4gY2ggIT09ICc9JyAmJiBjaCAhPT0gJzsnICYmIGNoICE9PSAnLCc7XG4gICAgfVxuICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoKXtcbiAgICAgICAgc3RhcnQgPSBwb3M7XG4gICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IGZhbHNlO1xuICAgICAgICB3aGlsZShza2lwV2hpdGVzcGFjZSgpKXtcbiAgICAgICAgICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJywnKSB7XG4gICAgICAgICAgICAgICAgLy8gJywnIGlzIGEgY29va2llIHNlcGFyYXRvciBpZiB3ZSBoYXZlIGxhdGVyIGZpcnN0ICc9Jywgbm90ICc7JyBvciAnLCdcbiAgICAgICAgICAgICAgICBsYXN0Q29tbWEgPSBwb3M7XG4gICAgICAgICAgICAgICAgcG9zICs9IDE7XG4gICAgICAgICAgICAgICAgc2tpcFdoaXRlc3BhY2UoKTtcbiAgICAgICAgICAgICAgICBuZXh0U3RhcnQgPSBwb3M7XG4gICAgICAgICAgICAgICAgd2hpbGUocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgbm90U3BlY2lhbENoYXIoKSl7XG4gICAgICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBjdXJyZW50bHkgc3BlY2lhbCBjaGFyYWN0ZXJcbiAgICAgICAgICAgICAgICBpZiAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgY29va2llc1N0cmluZy5jaGFyQXQocG9zKSA9PT0gJz0nKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGZvdW5kIGNvb2tpZXMgc2VwYXJhdG9yXG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIC8vIHBvcyBpcyBpbnNpZGUgdGhlIG5leHQgY29va2llLCBzbyBiYWNrIHVwIGFuZCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IG5leHRTdGFydDtcbiAgICAgICAgICAgICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGFzdENvbW1hKSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gcG9zO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGluIHBhcmFtICcsJyBvciBwYXJhbSBzZXBhcmF0b3IgJzsnLFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjb250aW51ZSBmcm9tIHRoYXQgY29tbWFcbiAgICAgICAgICAgICAgICAgICAgcG9zID0gbGFzdENvbW1hICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghY29va2llc1NlcGFyYXRvckZvdW5kIHx8IHBvcyA+PSBjb29raWVzU3RyaW5nLmxlbmd0aCkge1xuICAgICAgICAgICAgY29va2llc1N0cmluZ3MucHVzaChjb29raWVzU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgY29va2llc1N0cmluZy5sZW5ndGgpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29va2llc1N0cmluZ3M7XG59XG5mdW5jdGlvbiB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBjb25zdCBub2RlSGVhZGVycyA9IHt9O1xuICAgIGNvbnN0IGNvb2tpZXMgPSBbXTtcbiAgICBpZiAoaGVhZGVycykge1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBoZWFkZXJzLmVudHJpZXMoKSl7XG4gICAgICAgICAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09ICdzZXQtY29va2llJykge1xuICAgICAgICAgICAgICAgIC8vIFdlIG1heSBoYXZlIGdvdHRlbiBhIGNvbW1hIGpvaW5lZCBzdHJpbmcgb2YgY29va2llcywgb3IgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAvLyBzZXQtY29va2llIGhlYWRlcnMuIFdlIG5lZWQgdG8gbWVyZ2UgdGhlbSBpbnRvIG9uZSBoZWFkZXIgYXJyYXlcbiAgICAgICAgICAgICAgICAvLyB0byByZXByZXNlbnQgYWxsIHRoZSBjb29raWVzLlxuICAgICAgICAgICAgICAgIGNvb2tpZXMucHVzaCguLi5zcGxpdENvb2tpZXNTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgICAgICAgICBub2RlSGVhZGVyc1trZXldID0gY29va2llcy5sZW5ndGggPT09IDEgPyBjb29raWVzWzBdIDogY29va2llcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZUhlYWRlcnNba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBub2RlSGVhZGVycztcbn1cbmZ1bmN0aW9uIHZhbGlkYXRlVVJMKHVybCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcobmV3IFVSTChTdHJpbmcodXJsKSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYFVSTCBpcyBtYWxmb3JtZWQgXCIke1N0cmluZyh1cmwpfVwiLiBQbGVhc2UgdXNlIG9ubHkgYWJzb2x1dGUgVVJMcyAtIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVsYXRpdmUtdXJsc2AsIHtcbiAgICAgICAgICAgIGNhdXNlOiBlcnJvclxuICAgICAgICB9KSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFNjFcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtKGtleSkge1xuICAgIGNvbnN0IHByZWZpeGVzID0gW1xuICAgICAgICBfY29uc3RhbnRzLk5FWFRfUVVFUllfUEFSQU1fUFJFRklYLFxuICAgICAgICBfY29uc3RhbnRzLk5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVhcbiAgICBdO1xuICAgIGZvciAoY29uc3QgcHJlZml4IG9mIHByZWZpeGVzKXtcbiAgICAgICAgaWYgKGtleSAhPT0gcHJlZml4ICYmIGtleS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICAgICAgICAgIHJldHVybiBrZXkuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/server/web/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/amp-mode.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/amp-mode.js ***!
|
||
\*******************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isInAmpMode\", ({\n enumerable: true,\n get: function() {\n return isInAmpMode;\n }\n}));\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9hbXAtbW9kZS5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsWUFBWTtJQUFBLE1BQzFCQyxXQUFXLEtBQUssRUFDaEJDLFNBQVMsS0FBSyxFQUNkQyxXQUFXLEtBQUssRUFDakIsR0FKMkIsbUJBSXhCLENBQUMsSUFKdUI7SUFLMUIsT0FBT0YsWUFBYUMsVUFBVUM7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9zaGFyZWQvbGliL2FtcC1tb2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc0luQW1wTW9kZSh7XG4gIGFtcEZpcnN0ID0gZmFsc2UsXG4gIGh5YnJpZCA9IGZhbHNlLFxuICBoYXNRdWVyeSA9IGZhbHNlLFxufSA9IHt9KTogYm9vbGVhbiB7XG4gIHJldHVybiBhbXBGaXJzdCB8fCAoaHlicmlkICYmIGhhc1F1ZXJ5KVxufVxuIl0sIm5hbWVzIjpbImlzSW5BbXBNb2RlIiwiYW1wRmlyc3QiLCJoeWJyaWQiLCJoYXNRdWVyeSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/amp-mode.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/constants.js ***!
|
||
\********************************************************/
|
||
/***/ ((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 APP_BUILD_MANIFEST: function() {\n return APP_BUILD_MANIFEST;\n },\n APP_CLIENT_INTERNALS: function() {\n return APP_CLIENT_INTERNALS;\n },\n APP_PATHS_MANIFEST: function() {\n return APP_PATHS_MANIFEST;\n },\n APP_PATH_ROUTES_MANIFEST: function() {\n return APP_PATH_ROUTES_MANIFEST;\n },\n AdapterOutputType: function() {\n return AdapterOutputType;\n },\n BARREL_OPTIMIZATION_PREFIX: function() {\n return BARREL_OPTIMIZATION_PREFIX;\n },\n BLOCKED_PAGES: function() {\n return BLOCKED_PAGES;\n },\n BUILD_ID_FILE: function() {\n return BUILD_ID_FILE;\n },\n BUILD_MANIFEST: function() {\n return BUILD_MANIFEST;\n },\n CLIENT_PUBLIC_FILES_PATH: function() {\n return CLIENT_PUBLIC_FILES_PATH;\n },\n CLIENT_REFERENCE_MANIFEST: function() {\n return CLIENT_REFERENCE_MANIFEST;\n },\n CLIENT_STATIC_FILES_PATH: function() {\n return CLIENT_STATIC_FILES_PATH;\n },\n CLIENT_STATIC_FILES_RUNTIME_AMP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_AMP;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\n },\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() {\n return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH;\n },\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() {\n return CLIENT_STATIC_FILES_RUNTIME_WEBPACK;\n },\n COMPILER_INDEXES: function() {\n return COMPILER_INDEXES;\n },\n COMPILER_NAMES: function() {\n return COMPILER_NAMES;\n },\n CONFIG_FILES: function() {\n return CONFIG_FILES;\n },\n DEFAULT_RUNTIME_WEBPACK: function() {\n return DEFAULT_RUNTIME_WEBPACK;\n },\n DEFAULT_SANS_SERIF_FONT: function() {\n return DEFAULT_SANS_SERIF_FONT;\n },\n DEFAULT_SERIF_FONT: function() {\n return DEFAULT_SERIF_FONT;\n },\n DEV_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return DEV_CLIENT_MIDDLEWARE_MANIFEST;\n },\n DEV_CLIENT_PAGES_MANIFEST: function() {\n return DEV_CLIENT_PAGES_MANIFEST;\n },\n DYNAMIC_CSS_MANIFEST: function() {\n return DYNAMIC_CSS_MANIFEST;\n },\n EDGE_RUNTIME_WEBPACK: function() {\n return EDGE_RUNTIME_WEBPACK;\n },\n EDGE_UNSUPPORTED_NODE_APIS: function() {\n return EDGE_UNSUPPORTED_NODE_APIS;\n },\n EXPORT_DETAIL: function() {\n return EXPORT_DETAIL;\n },\n EXPORT_MARKER: function() {\n return EXPORT_MARKER;\n },\n FUNCTIONS_CONFIG_MANIFEST: function() {\n return FUNCTIONS_CONFIG_MANIFEST;\n },\n IMAGES_MANIFEST: function() {\n return IMAGES_MANIFEST;\n },\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() {\n return INTERCEPTION_ROUTE_REWRITE_MANIFEST;\n },\n MIDDLEWARE_BUILD_MANIFEST: function() {\n return MIDDLEWARE_BUILD_MANIFEST;\n },\n MIDDLEWARE_MANIFEST: function() {\n return MIDDLEWARE_MANIFEST;\n },\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() {\n return MIDDLEWARE_REACT_LOADABLE_MANIFEST;\n },\n MODERN_BROWSERSLIST_TARGET: function() {\n return _modernbrowserslisttarget.default;\n },\n NEXT_BUILTIN_DOCUMENT: function() {\n return NEXT_BUILTIN_DOCUMENT;\n },\n NEXT_FONT_MANIFEST: function() {\n return NEXT_FONT_MANIFEST;\n },\n PAGES_MANIFEST: function() {\n return PAGES_MANIFEST;\n },\n PHASE_DEVELOPMENT_SERVER: function() {\n return PHASE_DEVELOPMENT_SERVER;\n },\n PHASE_EXPORT: function() {\n return PHASE_EXPORT;\n },\n PHASE_INFO: function() {\n return PHASE_INFO;\n },\n PHASE_PRODUCTION_BUILD: function() {\n return PHASE_PRODUCTION_BUILD;\n },\n PHASE_PRODUCTION_SERVER: function() {\n return PHASE_PRODUCTION_SERVER;\n },\n PHASE_TEST: function() {\n return PHASE_TEST;\n },\n PRERENDER_MANIFEST: function() {\n return PRERENDER_MANIFEST;\n },\n REACT_LOADABLE_MANIFEST: function() {\n return REACT_LOADABLE_MANIFEST;\n },\n ROUTES_MANIFEST: function() {\n return ROUTES_MANIFEST;\n },\n RSC_MODULE_TYPES: function() {\n return RSC_MODULE_TYPES;\n },\n SERVER_DIRECTORY: function() {\n return SERVER_DIRECTORY;\n },\n SERVER_FILES_MANIFEST: function() {\n return SERVER_FILES_MANIFEST;\n },\n SERVER_PROPS_ID: function() {\n return SERVER_PROPS_ID;\n },\n SERVER_REFERENCE_MANIFEST: function() {\n return SERVER_REFERENCE_MANIFEST;\n },\n STATIC_PROPS_ID: function() {\n return STATIC_PROPS_ID;\n },\n STATIC_STATUS_PAGES: function() {\n return STATIC_STATUS_PAGES;\n },\n STRING_LITERAL_DROP_BUNDLE: function() {\n return STRING_LITERAL_DROP_BUNDLE;\n },\n SUBRESOURCE_INTEGRITY_MANIFEST: function() {\n return SUBRESOURCE_INTEGRITY_MANIFEST;\n },\n SYSTEM_ENTRYPOINTS: function() {\n return SYSTEM_ENTRYPOINTS;\n },\n TRACE_OUTPUT_VERSION: function() {\n return TRACE_OUTPUT_VERSION;\n },\n TURBOPACK_CLIENT_BUILD_MANIFEST: function() {\n return TURBOPACK_CLIENT_BUILD_MANIFEST;\n },\n TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST;\n },\n TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() {\n return TURBO_TRACE_DEFAULT_MEMORY_LIMIT;\n },\n UNDERSCORE_NOT_FOUND_ROUTE: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE;\n },\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY;\n },\n WEBPACK_STATS: function() {\n return WEBPACK_STATS;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\n};\nvar AdapterOutputType = /*#__PURE__*/ function(AdapterOutputType) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ AdapterOutputType[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ AdapterOutputType[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ AdapterOutputType[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\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 */ AdapterOutputType[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `PRERENDER` represents an ISR enabled route that might\n * have a seeded cache entry or fallback generated during build\n */ AdapterOutputType[\"PRERENDER\"] = \"PRERENDER\";\n /**\n * `STATIC_FILE` represents a static file (ie /_next/static)\n */ AdapterOutputType[\"STATIC_FILE\"] = \"STATIC_FILE\";\n /**\n * `MIDDLEWARE` represents the middleware output if present\n */ AdapterOutputType[\"MIDDLEWARE\"] = \"MIDDLEWARE\";\n return AdapterOutputType;\n}({});\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found';\nconst UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = \"\" + UNDERSCORE_NOT_FOUND_ROUTE + \"/page\";\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 WEBPACK_STATS = 'webpack-stats.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 TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.json';\nconst TURBOPACK_CLIENT_BUILD_MANIFEST = 'client-build-manifest.json';\nconst DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json';\nconst REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json';\nconst SERVER_DIRECTORY = 'server';\nconst CONFIG_FILES = [\n 'next.config.js',\n 'next.config.mjs',\n 'next.config.ts'\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__';\nconst CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest';\nconst SERVER_REFERENCE_MANIFEST = 'server-reference-manifest';\nconst MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest';\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest';\nconst INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest';\nconst DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest';\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\nconst APP_CLIENT_INTERNALS = 'app-pages-internals';\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills';\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\nconst DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime';\nconst EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack';\nconst STATIC_PROPS_ID = '__N_SSG';\nconst SERVER_PROPS_ID = '__N_SSP';\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;\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: 'client',\n server: 'server'\n};\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]);\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBMEVhQSxrQkFBa0I7ZUFBbEJBOztJQWtEQUMsb0JBQW9CO2VBQXBCQTs7SUFyREFDLGtCQUFrQjtlQUFsQkE7O0lBQ0FDLHdCQUF3QjtlQUF4QkE7O0lBMUREQyxpQkFBaUI7ZUFBakJBOztJQXlGQ0MsMEJBQTBCO2VBQTFCQTs7SUFMQUMsYUFBYTtlQUFiQTs7SUFEQUMsYUFBYTtlQUFiQTs7SUF4QkFDLGNBQWM7ZUFBZEE7O0lBMEJBQyx3QkFBd0I7ZUFBeEJBOztJQU9BQyx5QkFBeUI7ZUFBekJBOztJQU5BQyx3QkFBd0I7ZUFBeEJBOztJQTRCQUMsK0JBQStCO2VBQS9CQTs7SUFQQUMsZ0NBQWdDO2VBQWhDQTs7SUFDQUMsb0NBQW9DO2VBQXBDQTs7SUFVQUMscUNBQXFDO2VBQXJDQTs7SUFDQUMsNENBQTRDO2VBQTVDQTs7SUFQQUMseUNBQXlDO2VBQXpDQTs7SUFJQUMsbUNBQW1DO2VBQW5DQTs7SUE3RUFDLGdCQUFnQjtlQUFoQkE7O0lBL0NBQyxjQUFjO2VBQWRBOztJQXNGQUMsWUFBWTtlQUFaQTs7SUE0Q0FDLHVCQUF1QjtlQUF2QkE7O0lBVUFDLHVCQUF1QjtlQUF2QkE7O0lBTkFDLGtCQUFrQjtlQUFsQkE7O0lBbkRBQyw4QkFBOEI7ZUFBOUJBOztJQUxBQyx5QkFBeUI7ZUFBekJBOztJQWtDQUMsb0JBQW9CO2VBQXBCQTs7SUFtQkFDLG9CQUFvQjtlQUFwQkE7O0lBNkJBQywwQkFBMEI7ZUFBMUJBOztJQXZGQUMsYUFBYTtlQUFiQTs7SUFEQUMsYUFBYTtlQUFiQTs7SUFIQUMseUJBQXlCO2VBQXpCQTs7SUFPQUMsZUFBZTtlQUFmQTs7SUFpQ0FDLG1DQUFtQztlQUFuQ0E7O0lBTEFDLHlCQUF5QjtlQUF6QkE7O0lBekJBQyxtQkFBbUI7ZUFBbkJBOztJQTJCQUMsa0NBQWtDO2VB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cEIsNEJBQTRCO0FBRWxDLE1BQU1FLHFDQUNYO0FBRUssTUFBTUgsc0NBQ1g7QUFFSyxNQUFNUCx1QkFBdUI7QUFHN0IsTUFBTWQsbUNBQW9DO0FBQzFDLE1BQU1DLHVDQUF3QyxLQUFFRCxtQ0FBaUM7QUFFakYsTUFBTVosdUJBQXVCO0FBRTdCLE1BQU1nQiw0Q0FBNkM7QUFFbkQsTUFBTUwsa0NBQW1DO0FBRXpDLE1BQU1NLHNDQUF1QztBQUU3QyxNQUFNSCx3Q0FBd0M7QUFDOUMsTUFBTUMsK0NBQStDdUQsT0FDMUR4RDtBQUVLLE1BQU1PLDBCQUEwQjtBQUNoQyxNQUFNTSx1QkFBdUI7QUFDN0IsTUFBTTRCLGtCQUFrQjtBQUN4QixNQUFNRixrQkFBa0I7QUFDeEIsTUFBTTlCLHFCQUFxQjtJQUNoQ2dELE1BQU07SUFDTkMsZUFBZTtJQUNmQyxZQUFZO0lBQ1pDLFlBQVk7QUFDZDtBQUNPLE1BQU1wRCwwQkFBMEI7SUFDckNpRCxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2Q7QUFDTyxNQUFNbEIsc0JBQXNCO0lBQUM7Q0FBTztBQUNwQyxNQUFNSSx1QkFBdUI7QUFFN0IsTUFBTUcsbUNBQW1DO0FBRXpDLE1BQU1iLG1CQUFtQjtJQUM5QmlCLFFBQVE7SUFDUkMsUUFBUTtBQUNWO0FBTU8sTUFBTXhDLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sTUFBTStCLHFCQUFxQixJQUFJZ0IsSUFBWTtJQUNoRC9EO0lBQ0FJO0lBQ0FMO0lBQ0FFO0NBQ0QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9zaGFyZWQvbGliL2NvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgZnJvbSAnLi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldCdcblxuZXhwb3J0IHsgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgfVxuXG5leHBvcnQgdHlwZSBWYWx1ZU9mPFQ+ID0gUmVxdWlyZWQ8VD5ba2V5b2YgVF1cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX05BTUVTID0ge1xuICBjbGllbnQ6ICdjbGllbnQnLFxuICBzZXJ2ZXI6ICdzZXJ2ZXInLFxuICBlZGdlU2VydmVyOiAnZWRnZS1zZXJ2ZXInLFxufSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBDb21waWxlck5hbWVWYWx1ZXMgPSBWYWx1ZU9mPHR5cGVvZiBDT01QSUxFUl9OQU1FUz5cblxuZXhwb3J0IGVudW0gQWRhcHRlck91dHB1dFR5cGUge1xuICAvKipcbiAgICogYFBBR0VTYCByZXByZXNlbnRzIGFsbCB0aGUgUmVhY3QgcGFnZXMgdGhhdCBhcmUgdW5kZXIgYHBhZ2VzL2AuXG4gICAqL1xuICBQQUdFUyA9ICdQQUdFUycsXG5cbiAgLyoqXG4gICAqIGBQQUdFU19BUElgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIHVuZGVyIGBwYWdlcy9hcGkvYC5cbiAgICovXG4gIFBBR0VTX0FQSSA9ICdQQUdFU19BUEknLFxuICAvKipcbiAgICogYEFQUF9QQUdFYCByZXByZXNlbnRzIGFsbCB0aGUgUmVhY3QgcGFnZXMgdGhhdCBhcmUgdW5kZXIgYGFwcC9gIHdpdGggdGhlXG4gICAqIGZpbGVuYW1lIG9mIGBwYWdlLntqLHR9c3sseH1gLlxuICAgKi9cbiAgQVBQX1BBR0UgPSAnQVBQX1BBR0UnLFxuXG4gIC8qKlxuICAgKiBgQVBQX1JPVVRFYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcm91dGUue2osdH1zeyx4fWAuXG4gICAqL1xuICBBUFBfUk9VVEUgPSAnQVBQX1JPVVRFJyxcblxuICAvKipcbiAgICogYFBSRVJFTkRFUmAgcmVwcmVzZW50cyBhbiBJU1IgZW5hYmxlZCByb3V0ZSB0aGF0IG1pZ2h0XG4gICAqIGhhdmUgYSBzZWVkZWQgY2FjaGUgZW50cnkgb3IgZmFsbGJhY2sgZ2VuZXJhdGVkIGR1cmluZyBidWlsZFxuICAgKi9cbiAgUFJFUkVOREVSID0gJ1BSRVJFTkRFUicsXG5cbiAgLyoqXG4gICAqIGBTVEFUSUNfRklMRWAgcmVwcmVzZW50cyBhIHN0YXRpYyBmaWxlIChpZSAvX25leHQvc3RhdGljKVxuICAgKi9cbiAgU1RBVElDX0ZJTEUgPSAnU1RBVElDX0ZJTEUnLFxuXG4gIC8qKlxuICAgKiBgTUlERExFV0FSRWAgcmVwcmVzZW50cyB0aGUgbWlkZGxld2FyZSBvdXRwdXQgaWYgcHJlc2VudFxuICAgKi9cbiAgTUlERExFV0FSRSA9ICdNSURETEVXQVJFJyxcbn1cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX0lOREVYRVM6IHtcbiAgW2NvbXBpbGVyS2V5IGluIENvbXBpbGVyTmFtZVZhbHVlc106IG51bWJlclxufSA9IHtcbiAgW0NPTVBJTEVSX05BTUVTLmNsaWVudF06IDAsXG4gIFtDT01QSUxFUl9OQU1FUy5zZXJ2ZXJdOiAxLFxuICBbQ09NUElMRVJfTkFNRVMuZWRnZVNlcnZlcl06IDIsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURSA9ICcvX25vdC1mb3VuZCdcbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSA9IGAke1VOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFfS9wYWdlYFxuZXhwb3J0IGNvbnN0IFBIQVNFX0VYUE9SVCA9ICdwaGFzZS1leHBvcnQnXG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9CVUlMRCA9ICdwaGFzZS1wcm9kdWN0aW9uLWJ1aWxkJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX1BST0RVQ1RJT05fU0VSVkVSID0gJ3BoYXNlLXByb2R1Y3Rpb24tc2VydmVyJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiA9ICdwaGFzZS1kZXZlbG9wbWVudC1zZXJ2ZXInXG5leHBvcnQgY29uc3QgUEhBU0VfVEVTVCA9ICdwaGFzZS10ZXN0J1xuZXhwb3J0IGNvbnN0IFBIQVNFX0lORk8gPSAncGhhc2UtaW5mbydcbmV4cG9ydCBjb25zdCBQQUdFU19NQU5JRkVTVCA9ICdwYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFdFQlBBQ0tfU1RBVFMgPSAnd2VicGFjay1zdGF0cy5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIU19NQU5JRkVTVCA9ICdhcHAtcGF0aHMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfUEFUSF9ST1VURVNfTUFOSUZFU1QgPSAnYXBwLXBhdGgtcm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgQlVJTERfTUFOSUZFU1QgPSAnYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfQlVJTERfTUFOSUZFU1QgPSAnYXBwLWJ1aWxkLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCA9ICdmdW5jdGlvbnMtY29uZmlnLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUID0gJ3N1YnJlc291cmNlLWludGVncml0eS1tYW5pZmVzdCdcbmV4cG9ydCBjb25zdCBORVhUX0ZPTlRfTUFOSUZFU1QgPSAnbmV4dC1mb250LW1hbmlmZXN0J1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVJLRVIgPSAnZXhwb3J0LW1hcmtlci5qc29uJ1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9ERVRBSUwgPSAnZXhwb3J0LWRldGFpbC5qc29uJ1xuZXhwb3J0IGNvbnN0IFBSRVJFTkRFUl9NQU5JRkVTVCA9ICdwcmVyZW5kZXItbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBST1VURVNfTUFOSUZFU1QgPSAncm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgSU1BR0VTX01BTklGRVNUID0gJ2ltYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9GSUxFU19NQU5JRkVTVCA9ICdyZXF1aXJlZC1zZXJ2ZXItZmlsZXMuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUID0gJ19kZXZQYWdlc01hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgVFVSQk9QQUNLX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUID1cbiAgJ19jbGllbnRNaWRkbGV3YXJlTWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBUVVJCT1BBQ0tfQ0xJRU5UX0JVSUxEX01BTklGRVNUID0gJ2NsaWVudC1idWlsZC1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCA9ICdfZGV2TWlkZGxld2FyZU1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QgPSAncmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTRVJWRVJfRElSRUNUT1JZID0gJ3NlcnZlcidcbmV4cG9ydCBjb25zdCBDT05GSUdfRklMRVMgPSBbXG4gICduZXh0LmNvbmZpZy5qcycsXG4gICduZXh0LmNvbmZpZy5tanMnLFxuICAnbmV4dC5jb25maWcudHMnLFxuXVxuZXhwb3J0IGNvbnN0IEJVSUxEX0lEX0ZJTEUgPSAnQlVJTERfSUQnXG5leHBvcnQgY29uc3QgQkxPQ0tFRF9QQUdFUyA9IFsnL19kb2N1bWVudCcsICcvX2FwcCcsICcvX2Vycm9yJ11cbmV4cG9ydCBjb25zdCBDTElFTlRfUFVCTElDX0ZJTEVTX1BBVEggPSAncHVibGljJ1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCA9ICdzdGF0aWMnXG5leHBvcnQgY29uc3QgU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUgPSAnX19ORVhUX0RST1BfQ0xJRU5UX0ZJTEVfXydcbmV4cG9ydCBjb25zdCBORVhUX0JVSUxUSU5fRE9DVU1FTlQgPSAnX19ORVhUX0JVSUxUSU5fRE9DVU1FTlRfXydcbmV4cG9ydCBjb25zdCBCQVJSRUxfT1BUSU1JWkFUSU9OX1BSRUZJWCA9ICdfX2JhcnJlbF9vcHRpbWl6ZV9fJ1xuXG4vLyBzZXJ2ZXIvW2VudHJ5XS9wYWdlX2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfUkVGRVJFTkNFX01BTklGRVNUID0gJ2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdFxuZXhwb3J0IGNvbnN0IFNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QgPSAnc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0J1xuLy8gc2VydmVyL21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUID1cbiAgJ21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVCA9XG4gICdpbnRlcmNlcHRpb24tcm91dGUtcmV3cml0ZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9keW5hbWljLWNzcy1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IERZTkFNSUNfQ1NTX01BTklGRVNUID0gJ2R5bmFtaWMtY3NzLW1hbmlmZXN0J1xuXG4vLyBzdGF0aWMvcnVudGltZS9tYWluLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4gPSBgbWFpbmBcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAgPSBgJHtDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTn0tYXBwYFxuLy8gbmV4dCBpbnRlcm5hbCBjbGllbnQgY29tcG9uZW50cyBjaHVuayBmb3IgbGF5b3V0c1xuZXhwb3J0IGNvbnN0IEFQUF9DTElFTlRfSU5URVJOQUxTID0gJ2FwcC1wYWdlcy1pbnRlcm5hbHMnXG4vLyBzdGF0aWMvcnVudGltZS9yZWFjdC1yZWZyZXNoLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0ggPSBgcmVhY3QtcmVmcmVzaGBcbi8vIHN0YXRpYy9ydW50aW1lL2FtcC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAgPSBgYW1wYFxuLy8gc3RhdGljL3J1bnRpbWUvd2VicGFjay5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLID0gYHdlYnBhY2tgXG4vLyBzdGF0aWMvcnVudGltZS9wb2x5ZmlsbHMuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTID0gJ3BvbHlmaWxscydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCA9IFN5bWJvbChcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU1xuKVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUlVOVElNRV9XRUJQQUNLID0gJ3dlYnBhY2stcnVudGltZSdcbmV4cG9ydCBjb25zdCBFREdFX1JVTlRJTUVfV0VCUEFDSyA9ICdlZGdlLXJ1bnRpbWUtd2VicGFjaydcbmV4cG9ydCBjb25zdCBTVEFUSUNfUFJPUFNfSUQgPSAnX19OX1NTRydcbmV4cG9ydCBjb25zdCBTRVJWRVJfUFJPUFNfSUQgPSAnX19OX1NTUCdcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFUklGX0ZPTlQgPSB7XG4gIG5hbWU6ICdUaW1lcyBOZXcgUm9tYW4nLFxuICB4QXZnQ2hhcldpZHRoOiA4MjEsXG4gIGF6QXZnV2lkdGg6IDg1NC4zOTUzNDg4MzcyMDkzLFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0FOU19TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnQXJpYWwnLFxuICB4QXZnQ2hhcldpZHRoOiA5MDQsXG4gIGF6QXZnV2lkdGg6IDkzNC41MTE2Mjc5MDY5NzY3LFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IFNUQVRJQ19TVEFUVVNfUEFHRVMgPSBbJy81MDAnXVxuZXhwb3J0IGNvbnN0IFRSQUNFX09VVFBVVF9WRVJTSU9OID0gMVxuLy8gaW4gYE1CYFxuZXhwb3J0IGNvbnN0IFRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUID0gNjAwMFxuXG5leHBvcnQgY29uc3QgUlNDX01PRFVMRV9UWVBFUyA9IHtcbiAgY2xpZW50OiAnY2xpZW50JyxcbiAgc2VydmVyOiAnc2VydmVyJyxcbn0gYXMgY29uc3RcblxuLy8gY29tcGFyaW5nXG4vLyBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL2VkZ2UtcnVudGltZVxuLy8gd2l0aFxuLy8gaHR0cHM6Ly9ub2RlanMub3JnL2RvY3MvbGF0ZXN0L2FwaS9nbG9iYWxzLmh0bWxcbmV4cG9ydCBjb25zdCBFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyA9IFtcbiAgJ2NsZWFySW1tZWRpYXRlJyxcbiAgJ3NldEltbWVkaWF0ZScsXG4gICdCcm9hZGNhc3RDaGFubmVsJyxcbiAgJ0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3knLFxuICAnQ29tcHJlc3Npb25TdHJlYW0nLFxuICAnQ291bnRRdWV1aW5nU3RyYXRlZ3knLFxuICAnRGVjb21wcmVzc2lvblN0cmVhbScsXG4gICdEb21FeGNlcHRpb24nLFxuICAnTWVzc2FnZUNoYW5uZWwnLFxuICAnTWVzc2FnZUV2ZW50JyxcbiAgJ01lc3NhZ2VQb3J0JyxcbiAgJ1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXInLFxuICAnUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdCcsXG4gICdSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1RyYW5zZm9ybVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1dyaXRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXInLFxuXVxuXG5leHBvcnQgY29uc3QgU1lTVEVNX0VOVFJZUE9JTlRTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4sXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNILFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAsXG5dKVxuIl0sIm5hbWVzIjpbIkFQUF9CVUlMRF9NQU5JRkVTVCIsIkFQUF9DTElFTlRfSU5URVJOQUxTIiwiQVBQX1BBVEhTX01BTklGRVNUIiwiQVBQX1BBVEhfUk9VVEVTX01BTklGRVNUIiwiQWRhcHRlck91dHB1dFR5cGUiLCJCQVJSRUxfT1BUSU1JWkFUSU9OX1BSRUZJWCIsIkJMT0NLRURfUEFHRVMiLCJCVUlMRF9JRF9GSUxFIiwiQlVJTERfTUFOSUZFU1QiLCJDTElFTlRfUFVCTElDX0ZJTEVTX1BBVEgiLCJDTElFTlRfUkVGRVJFTkNFX01BTklGRVNUIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19QQVRIIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX0FNUCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMUyIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFNfU1lNQk9MIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0giLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfV0VCUEFDSyIsIkNPTVBJTEVSX0lOREVYRVMiLCJDT01QSUxFUl9OQU1FUyIsIkNPTkZJR19GSUxFUyIsIkRFRkFVTFRfUlVOVElNRV9XRUJQQUNLIiwiREVGQVVMVF9TQU5TX1NFUklGX0ZPTlQiLCJERUZBVUxUX1NFUklGX0ZPTlQiLCJERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUIiwiRFlOQU1JQ19DU1NfTUFOSUZFU1QiLCJFREdFX1JVTlRJTUVfV0VCUEFDSyIsIkVER0VfVU5TVVBQT1JURURfTk9ERV9BUElTIiwiRVhQT1JUX0RFVEFJTCIsIkVYUE9SVF9NQVJLRVIiLCJGVU5DVElPTlNfQ09ORklHX01BTklGRVNUIiwiSU1BR0VTX01BTklGRVNUIiwiSU5URVJDRVBUSU9OX1JPVVRFX1JFV1JJVEVfTUFOSUZFU1QiLCJNSURETEVXQVJFX0JVSUxEX01BTklGRVNUIiwiTUlERExFV0FSRV9NQU5JRkVTVCIsIk1JRERMRVdBUkVfUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QiLCJNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCIsIk5FWFRfQlVJTFRJTl9ET0NVTUVOVCIsIk5FWFRfRk9OVF9NQU5JRkVTVCIsIlBBR0VTX01BTklGRVNUIiwiUEhBU0VfREVWRUxPUE1FTlRfU0VSVkVSIiwiUEhBU0VfRVhQT1JUIiwiUEhBU0VfSU5GTyIsIlBIQVNFX1BST0RVQ1RJT05fQlVJTEQiLCJQSEFTRV9QUk9EVUNUSU9OX1NFUlZFUiIsIlBIQVNFX1RFU1QiLCJQUkVSRU5ERVJfTUFOSUZFU1QiLCJSRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCIsIlJPVVRFU19NQU5JRkVTVCIsIlJTQ19NT0RVTEVfVFlQRVMiLCJTRVJWRVJfRElSRUNUT1JZIiwiU0VSVkVSX0ZJTEVTX01BTklGRVNUIiwiU0VSVkVSX1BST1BTX0lEIiwiU0VSVkVSX1JFRkVSRU5DRV9NQU5JRkVTVCIsIlNUQVRJQ19QUk9QU19JRCIsIlNUQVRJQ19TVEFUVVNfUEFHRVMiLCJTVFJJTkdfTElURVJBTF9EUk9QX0JVTkRMRSIsIlNVQlJFU09VUkNFX0lOVEVHUklUWV9NQU5JRkVTVCIsIlNZU1RFTV9FTlRSWVBPSU5UUyIsIlRSQUNFX09VVFBVVF9WRVJTSU9OIiwiVFVSQk9QQUNLX0NMSUVOVF9CVUlMRF9NQU5JRkVTVCIsIlRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIlRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEUiLCJVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSIsIldFQlBBQ0tfU1RBVFMiLCJjbGllbnQiLCJzZXJ2ZXIiLCJlZGdlU2VydmVyIiwiU3ltYm9sIiwibmFtZSIsInhBdmdDaGFyV2lkdGgiLCJhekF2Z1dpZHRoIiwidW5pdHNQZXJFbSIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/encode-uri-path.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/encode-uri-path.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"encodeURIPath\", ({\n enumerable: true,\n get: function() {\n return encodeURIPath;\n }\n}));\nfunction encodeURIPath(file) {\n return file.split('/').map((p)=>encodeURIComponent(p)).join('/');\n} //# sourceMappingURL=encode-uri-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lbmNvZGUtdXJpLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OztpREFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLGNBQWNDLElBQVk7SUFDeEMsT0FBT0EsS0FDSkMsS0FBSyxDQUFDLEtBQ05DLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQyxtQkFBbUJELElBQzlCRSxJQUFJLENBQUM7QUFDViIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL3NoYXJlZC9saWIvZW5jb2RlLXVyaS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBlbmNvZGVVUklQYXRoKGZpbGU6IHN0cmluZykge1xuICByZXR1cm4gZmlsZVxuICAgIC5zcGxpdCgnLycpXG4gICAgLm1hcCgocCkgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHApKVxuICAgIC5qb2luKCcvJylcbn1cbiJdLCJuYW1lcyI6WyJlbmNvZGVVUklQYXRoIiwiZmlsZSIsInNwbGl0IiwibWFwIiwicCIsImVuY29kZVVSSUNvbXBvbmVudCIsImpvaW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/encode-uri-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/errors/constants.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/errors/constants.js ***!
|
||
\***************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"MISSING_ROOT_TAGS_ERROR\", ({\n enumerable: true,\n get: function() {\n return MISSING_ROOT_TAGS_ERROR;\n }\n}));\nconst MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lcnJvcnMvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkRBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLDBCQUEwQiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9zaGFyZWQvbGliL2Vycm9ycy9jb25zdGFudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SID0gJ05FWFRfTUlTU0lOR19ST09UX1RBR1MnXG4iXSwibmFtZXMiOlsiTUlTU0lOR19ST09UX1RBR1NfRVJST1IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/errors/constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/get-hostname.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/get-hostname.js ***!
|
||
\***********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getHostname\", ({\n enumerable: true,\n get: function() {\n return getHostname;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9nZXQtaG9zdG5hbWUuanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FRZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFlBQ2RDLE1BQW9DLEVBQ3BDQyxPQUE2QjtJQUU3QiwyRUFBMkU7SUFDM0UsWUFBWTtJQUNaLElBQUlDO0lBQ0osSUFBSUQsQ0FBQUEsV0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsUUFBU0UsSUFBQUEsS0FBUSxDQUFDQyxNQUFNQyxPQUFPLENBQUNKLFFBQVFFLElBQUksR0FBRztRQUNqREQsV0FBV0QsUUFBUUUsSUFBSSxDQUFDRyxRQUFRLEdBQUdDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0lBQ3JELE9BQU8sSUFBSVAsT0FBT0UsUUFBUSxFQUFFO1FBQzFCQSxXQUFXRixPQUFPRSxRQUFRO0lBQzVCLE9BQU87SUFFUCxPQUFPQSxTQUFTTSxXQUFXO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9nZXQtaG9zdG5hbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPdXRnb2luZ0h0dHBIZWFkZXJzIH0gZnJvbSAnaHR0cCdcblxuLyoqXG4gKiBUYWtlcyBhbiBvYmplY3Qgd2l0aCBhIGhvc3RuYW1lIHByb3BlcnR5IChsaWtlIGEgcGFyc2VkIFVSTCkgYW5kIHNvbWVcbiAqIGhlYWRlcnMgdGhhdCBtYXkgY29udGFpbiBIb3N0IGFuZCByZXR1cm5zIHRoZSBwcmVmZXJyZWQgaG9zdG5hbWUuXG4gKiBAcGFyYW0gcGFyc2VkIEFuIG9iamVjdCBjb250YWluaW5nIGEgaG9zdG5hbWUgcHJvcGVydHkuXG4gKiBAcGFyYW0gaGVhZGVycyBBIGRpY3Rpb25hcnkgd2l0aCBoZWFkZXJzIGNvbnRhaW5pbmcgYSBgaG9zdGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRIb3N0bmFtZShcbiAgcGFyc2VkOiB7IGhvc3RuYW1lPzogc3RyaW5nIHwgbnVsbCB9LFxuICBoZWFkZXJzPzogT3V0Z29pbmdIdHRwSGVhZGVyc1xuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgLy8gR2V0IHRoZSBob3N0bmFtZSBmcm9tIHRoZSBoZWFkZXJzIGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIHVzZSB0aGUgcGFyc2VkXG4gIC8vIGhvc3RuYW1lLlxuICBsZXQgaG9zdG5hbWU6IHN0cmluZ1xuICBpZiAoaGVhZGVycz8uaG9zdCAmJiAhQXJyYXkuaXNBcnJheShoZWFkZXJzLmhvc3QpKSB7XG4gICAgaG9zdG5hbWUgPSBoZWFkZXJzLmhvc3QudG9TdHJpbmcoKS5zcGxpdCgnOicsIDEpWzBdXG4gIH0gZWxzZSBpZiAocGFyc2VkLmhvc3RuYW1lKSB7XG4gICAgaG9zdG5hbWUgPSBwYXJzZWQuaG9zdG5hbWVcbiAgfSBlbHNlIHJldHVyblxuXG4gIHJldHVybiBob3N0bmFtZS50b0xvd2VyQ2FzZSgpXG59XG4iXSwibmFtZXMiOlsiZ2V0SG9zdG5hbWUiLCJwYXJzZWQiLCJoZWFkZXJzIiwiaG9zdG5hbWUiLCJob3N0IiwiQXJyYXkiLCJpc0FycmF5IiwidG9TdHJpbmciLCJzcGxpdCIsInRvTG93ZXJDYXNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/get-hostname.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/head.js":
|
||
/*!***************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/head.js ***!
|
||
\***************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \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 default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"react\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"(pages-dir-node)/./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\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.default.Fragment) {\n return list.concat(_react.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 (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, _warnonce.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, _warnonce.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.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.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9oZWFkLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdMQSxPQUFtQjtlQUFuQjs7SUFuS2dCQSxXQUFXO2VBQVhBOzs7Ozs7NkVBWDRCO2lGQUN6QjtxREFDYTs2REFDRztxQ0FDUDtzQ0FDSDtBQU1sQixTQUFTQSxZQUFZQyxTQUFpQjtJQUFqQkEsSUFBQUEsY0FBQUEsS0FBQUEsR0FBQUEsWUFBWTtJQUN0QyxNQUFNQyxPQUFPO3NCQUFDLHFCQUFDQyxRQUFBQTtZQUFLQyxTQUFRO1dBQVk7S0FBYTtJQUNyRCxJQUFJLENBQUNILFdBQVc7UUFDZEMsS0FBS0csSUFBSSxlQUNQLHFCQUFDRixRQUFBQTtZQUFLRyxNQUFLO1lBQVdDLFNBQVE7V0FBeUI7SUFFM0Q7SUFDQSxPQUFPTDtBQUNUO0FBRUEsU0FBU00saUJBQ1BDLElBQW9DLEVBQ3BDQyxLQUEyQztJQUUzQyw4RkFBOEY7SUFDOUYsSUFBSSxPQUFPQSxVQUFVLFlBQVksT0FBT0EsVUFBVSxVQUFVO1FBQzFELE9BQU9EO0lBQ1Q7SUFDQSxrQ0FBa0M7SUFDbEMsSUFBSUMsTUFBTUMsSUFBSSxLQUFLQyxPQUFBQSxPQUFLLENBQUNDLFFBQVEsRUFBRTtRQUNqQyxPQUFPSixLQUFLSyxNQUFNLENBQ2hCLE9BQ0FGLE9BQUssQ0FBQ0csUUFBUSxDQUFDQyxPQUFPLENBQUNOLE1BQU1PLEtBQUssQ0FBQ0MsUUFBUSxFQUFFQyxNQUFNLENBQ2pELENBRUVDLGNBQ0FDO1lBRUEsSUFDRSxPQUFPQSxrQkFBa0IsWUFDekIsT0FBT0Esa0JBQWtCLFVBQ3pCO2dCQUNBLE9BQU9EO1lBQ1Q7WUFDQSxPQUFPQSxhQUFhTixNQUFNLENBQUNPO1FBQzdCLEdBQ0EsRUFBRTtJQUdSO0lBQ0EsT0FBT1osS0FBS0ssTUFBTSxDQUFDSjtBQUNyQjtBQUVBLE1BQU1ZLFlBQVk7SUFBQztJQUFRO0lBQWE7SUFBVztDQUFXO0FB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QUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyx3RkFBcUZMLEVBQUVoQyxLQUFLLENBQUMsT0FBTyxHQUFDO1lBRTFHO1FBQ0Y7UUFDQSxxQkFBT0wsT0FBQUEsT0FBSyxDQUFDMkMsWUFBWSxDQUFDTixHQUFHO1lBQUVqQjtRQUFJO0lBQ3JDO0FBQ0o7QUFFQTs7O0NBR0MsR0FDRCxTQUFTd0IsS0FBSyxLQUEyQztJQUEzQyxNQUFFdEMsUUFBUSxFQUFpQyxHQUEzQztJQUNaLE1BQU11QyxXQUFXQyxDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXQyx5QkFBQUEsZUFBZTtJQUMzQyxNQUFNQyxjQUFjRixDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXRyxpQ0FBQUEsa0JBQWtCO0lBQ2pELHFCQUNFLHFCQUFDQyxZQUFBQSxPQUFNO1FBQ0xDLHlCQUF5Qm5CO1FBQ3pCZ0IsYUFBYUE7UUFDYjNELFdBQVcrRCxDQUFBQSxHQUFBQSxTQUFBQSxXQUFBQSxFQUFZUDtrQkFFdEJ2Qzs7QUFHUDtNQUVBLFdBQWVzQyIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL3NoYXJlZC9saWIvaGVhZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IEVmZmVjdCBmcm9tICcuL3NpZGUtZWZmZWN0J1xuaW1wb3J0IHsgQW1wU3RhdGVDb250ZXh0IH0gZnJvbSAnLi9hbXAtY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IEhlYWRNYW5hZ2VyQ29udGV4dCB9IGZyb20gJy4vaGVhZC1tYW5hZ2VyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBpc0luQW1wTW9kZSB9IGZyb20gJy4vYW1wLW1vZGUnXG5pbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gJy4vdXRpbHMvd2Fybi1vbmNlJ1xuXG50eXBlIFdpdGhJbkFtcE1vZGUgPSB7XG4gIGluQW1wTW9kZT86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRIZWFkKGluQW1wTW9kZSA9IGZhbHNlKTogSlNYLkVsZW1lbnRbXSB7XG4gIGNvbnN0IGhlYWQgPSBbPG1ldGEgY2hhclNldD1cInV0Zi04XCIga2V5PVwiY2hhcnNldFwiIC8+XVxuICBpZiAoIWluQW1wTW9kZSkge1xuICAgIGhlYWQucHVzaChcbiAgICAgIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGhcIiBrZXk9XCJ2aWV3cG9ydFwiIC8+XG4gICAgKVxuICB9XG4gIHJldHVybiBoZWFkXG59XG5cbmZ1bmN0aW9uIG9ubHlSZWFjdEVsZW1lbnQoXG4gIGxpc3Q6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgY2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCB8IG51bWJlciB8IHN0cmluZ1xuKTogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+IHtcbiAgLy8gUmVhY3QgY2hpbGRyZW4gY2FuIGJlIFwic3RyaW5nXCIgb3IgXCJudW1iZXJcIiBpbiB0aGlzIGNhc2Ugd2UgaWdub3JlIHRoZW0gZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAgaWYgKHR5cGVvZiBjaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGNoaWxkID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBsaXN0XG4gIH1cbiAgLy8gQWRkcyBzdXBwb3J0IGZvciBSZWFjdC5GcmFnbWVudFxuICBpZiAoY2hpbGQudHlwZSA9PT0gUmVhY3QuRnJhZ21lbnQpIHtcbiAgICByZXR1cm4gbGlzdC5jb25jYXQoXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEB0eXBlcy9yZWFjdCBkb2VzIG5vdCByZW1vdmUgZnJhZ21lbnRzIGJ1dCB0aGlzIGNvdWxkIGFsc28gcmV0dXJuIFJlYWN0UG9ydGFsW11cbiAgICAgIFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoY2hpbGQucHJvcHMuY2hpbGRyZW4pLnJlZHVjZShcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBAdHlwZXMvcmVhY3QgZG9lcyBub3QgcmVtb3ZlIGZyYWdtZW50cyBidXQgdGhpcyBjb3VsZCBhbHNvIHJldHVybiBSZWFjdFBvcnRhbFtdXG4gICAgICAgIChcbiAgICAgICAgICBmcmFnbWVudExpc3Q6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgICAgICAgICBmcmFnbWVudENoaWxkOiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBudW1iZXIgfCBzdHJpbmdcbiAgICAgICAgKTogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+ID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ3N0cmluZycgfHxcbiAgICAgICAgICAgIHR5cGVvZiBmcmFnbWVudENoaWxkID09PSAnbnVtYmVyJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZnJhZ21lbnRMaXN0LmNvbmNhdChmcmFnbWVudENoaWxkKVxuICAgICAgICB9LFxuICAgICAgICBbXVxuICAgICAgKVxuICAgIClcbiAgfVxuICByZXR1cm4gbGlzdC5jb25jYXQoY2hpbGQpXG59XG5cbmNvbnN0IE1FVEFUWVBFUyA9IFsnbmFtZScsICdodHRwRXF1aXYnLCAnY2hhclNldCcsICdpdGVtUHJvcCddXG5cbi8qXG4gcmV0dXJucyBhIGZ1bmN0aW9uIGZvciBmaWx0ZXJpbmcgaGVhZCBjaGlsZCBlbGVtZW50c1xuIHdoaWNoIHNob3VsZG4ndCBiZSBkdXBsaWNhdGVkLCBsaWtlIDx0aXRsZS8+XG4gQWxzbyBhZGRzIHN1cHBvcnQgZm9yIGRlZHVwbGljYXRlZCBga2V5YCBwcm9wZXJ0aWVzXG4qL1xuZnVuY3Rpb24gdW5pcXVlKCkge1xuICBjb25zdCBrZXlzID0gbmV3IFNldCgpXG4gIGNvbnN0IHRhZ3MgPSBuZXcgU2V0KClcbiAgY29uc3QgbWV0YVR5cGVzID0gbmV3IFNldCgpXG4gIGNvbnN0IG1ldGFDYXRlZ29yaWVzOiB7IFttZXRhdHlwZTogc3RyaW5nXTogU2V0PHN0cmluZz4gfSA9IHt9XG5cbiAgcmV0dXJuIChoOiBSZWFjdC5SZWFjdEVsZW1lbnQ8YW55PikgPT4ge1xuICAgIGxldCBpc1VuaXF1ZSA9IHRydWVcbiAgICBsZXQgaGFzS2V5ID0gZmFsc2VcblxuICAgIGlmIChoLmtleSAmJiB0eXBlb2YgaC5rZXkgIT09ICdudW1iZXInICYmIGgua2V5LmluZGV4T2YoJyQnKSA+IDApIHtcbiAgICAgIGhhc0tleSA9IHRydWVcbiAgICAgIGNvbnN0IGtleSA9IGgua2V5LnNsaWNlKGgua2V5LmluZGV4T2YoJyQnKSArIDEpXG4gICAgICBpZiAoa2V5cy5oYXMoa2V5KSkge1xuICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBrZXlzLmFkZChrZXkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgIHN3aXRjaCAoaC50eXBlKSB7XG4gICAgICBjYXNlICd0aXRsZSc6XG4gICAgICBjYXNlICdiYXNlJzpcbiAgICAgICAgaWYgKHRhZ3MuaGFzKGgudHlwZSkpIHtcbiAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFncy5hZGQoaC50eXBlKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdtZXRhJzpcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IE1FVEFUWVBFUy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgIGNvbnN0IG1ldGF0eXBlID0gTUVUQVRZUEVTW2ldXG4gICAgICAgICAgaWYgKCFoLnByb3BzLmhhc093blByb3BlcnR5KG1ldGF0eXBlKSkgY29udGludWVcblxuICAgICAgICAgIGlmIChtZXRhdHlwZSA9PT0gJ2NoYXJTZXQnKSB7XG4gICAgICAgICAgICBpZiAobWV0YVR5cGVzLmhhcyhtZXRhdHlwZSkpIHtcbiAgICAgICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbWV0YVR5cGVzLmFkZChtZXRhdHlwZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBoLnByb3BzW21ldGF0eXBlXVxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IG1ldGFDYXRlZ29yaWVzW21ldGF0eXBlXSB8fCBuZXcgU2V0KClcbiAgICAgICAgICAgIGlmICgobWV0YXR5cGUgIT09ICduYW1lJyB8fCAhaGFzS2V5KSAmJiBjYXRlZ29yaWVzLmhhcyhjYXRlZ29yeSkpIHtcbiAgICAgICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY2F0ZWdvcmllcy5hZGQoY2F0ZWdvcnkpXG4gICAgICAgICAgICAgIG1ldGFDYXRlZ29yaWVzW21ldGF0eXBlXSA9IGNhdGVnb3JpZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNVbmlxdWVcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gaGVhZENoaWxkcmVuRWxlbWVudHMgTGlzdCBvZiBjaGlsZHJlbiBvZiA8SGVhZD5cbiAqL1xuZnVuY3Rpb24gcmVkdWNlQ29tcG9uZW50czxUIGV4dGVuZHMge30gJiBXaXRoSW5BbXBNb2RlPihcbiAgaGVhZENoaWxkcmVuRWxlbWVudHM6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgcHJvcHM6IFRcbikge1xuICBjb25zdCB7IGluQW1wTW9kZSB9ID0gcHJvcHNcbiAgcmV0dXJuIGhlYWRDaGlsZHJlbkVsZW1lbnRzXG4gICAgLnJlZHVjZShvbmx5UmVhY3RFbGVtZW50LCBbXSlcbiAgICAucmV2ZXJzZSgpXG4gICAgLmNvbmNhdChkZWZhdWx0SGVhZChpbkFtcE1vZGUpLnJldmVyc2UoKSlcbiAgICAuZmlsdGVyKHVuaXF1ZSgpKVxuICAgIC5yZXZlcnNlKClcbiAgICAubWFwKChjOiBSZWFjdC5SZWFjdEVsZW1lbnQ8YW55PiwgaTogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBrZXkgPSBjLmtleSB8fCBpXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgLy8gb21pdCBKU09OLUxEIHN0cnVjdHVyZWQgZGF0YSBzbmlwcGV0cyBmcm9tIHRoZSB3YXJuaW5nXG4gICAgICAgIGlmIChjLnR5cGUgPT09ICdzY3JpcHQnICYmIGMucHJvcHNbJ3R5cGUnXSAhPT0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nKSB7XG4gICAgICAgICAgY29uc3Qgc3JjTWVzc2FnZSA9IGMucHJvcHNbJ3NyYyddXG4gICAgICAgICAgICA/IGA8c2NyaXB0PiB0YWcgd2l0aCBzcmM9XCIke2MucHJvcHNbJ3NyYyddfVwiYFxuICAgICAgICAgICAgOiBgaW5saW5lIDxzY3JpcHQ+YFxuICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgYERvIG5vdCBhZGQgPHNjcmlwdD4gdGFncyB1c2luZyBuZXh0L2hlYWQgKHNlZSAke3NyY01lc3NhZ2V9KS4gVXNlIG5leHQvc2NyaXB0IGluc3RlYWQuIFxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tc2NyaXB0LXRhZ3MtaW4taGVhZC1jb21wb25lbnRgXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2UgaWYgKGMudHlwZSA9PT0gJ2xpbmsnICYmIGMucHJvcHNbJ3JlbCddID09PSAnc3R5bGVzaGVldCcpIHtcbiAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgIGBEbyBub3QgYWRkIHN0eWxlc2hlZXRzIHVzaW5nIG5leHQvaGVhZCAoc2VlIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIj4gdGFnIHdpdGggaHJlZj1cIiR7Yy5wcm9wc1snaHJlZiddfVwiKS4gVXNlIERvY3VtZW50IGluc3RlYWQuIFxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tc3R5bGVzaGVldHMtaW4taGVhZC1jb21wb25lbnRgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGMsIHsga2V5IH0pXG4gICAgfSlcbn1cblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpbmplY3RzIGVsZW1lbnRzIHRvIGA8aGVhZD5gIG9mIHlvdXIgcGFnZS5cbiAqIFRvIGF2b2lkIGR1cGxpY2F0ZWQgYHRhZ3NgIGluIGA8aGVhZD5gIHlvdSBjYW4gdXNlIHRoZSBga2V5YCBwcm9wZXJ0eSwgd2hpY2ggd2lsbCBtYWtlIHN1cmUgZXZlcnkgdGFnIGlzIG9ubHkgcmVuZGVyZWQgb25jZS5cbiAqL1xuZnVuY3Rpb24gSGVhZCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IGFtcFN0YXRlID0gdXNlQ29udGV4dChBbXBTdGF0ZUNvbnRleHQpXG4gIGNvbnN0IGhlYWRNYW5hZ2VyID0gdXNlQ29udGV4dChIZWFkTWFuYWdlckNvbnRleHQpXG4gIHJldHVybiAoXG4gICAgPEVmZmVjdFxuICAgICAgcmVkdWNlQ29tcG9uZW50c1RvU3RhdGU9e3JlZHVjZUNvbXBvbmVudHN9XG4gICAgICBoZWFkTWFuYWdlcj17aGVhZE1hbmFnZXJ9XG4gICAgICBpbkFtcE1vZGU9e2lzSW5BbXBNb2RlKGFtcFN0YXRlKX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9FZmZlY3Q+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgSGVhZFxuIl0sIm5hbWVzIjpbImRlZmF1bHRIZWFkIiwiaW5BbXBNb2RlIiwiaGVhZCIsIm1ldGEiLCJjaGFyU2V0IiwicHVzaCIsIm5hbWUiLCJjb250ZW50Iiwib25seVJlYWN0RWxlbWVudCIsImxpc3QiLCJjaGlsZCIsInR5cGUiLCJSZWFjdCIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5Iiwia2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYXRlZ29yeSIsImNhdGVnb3JpZXMiLCJyZWR1Y2VDb21wb25lbnRzIiwiaGVhZENoaWxkcmVuRWxlbWVudHMiLCJyZXZlcnNlIiwiZmlsdGVyIiwibWFwIiwiYyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInNyY01lc3NhZ2UiLCJ3YXJuT25jZSIsImNsb25lRWxlbWVudCIsIkhlYWQiLCJhbXBTdGF0ZSIsInVzZUNvbnRleHQiLCJBbXBTdGF0ZUNvbnRleHQiLCJoZWFkTWFuYWdlciIsIkhlYWRNYW5hZ2VyQ29udGV4dCIsIkVmZmVjdCIsInJlZHVjZUNvbXBvbmVudHNUb1N0YXRlIiwiaXNJbkFtcE1vZGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/head.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js ***!
|
||
\************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"detectDomainLocale\", ({\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n}));\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxtQkFDZEMsV0FBcUMsRUFDckNDLFFBQWlCLEVBQ2pCQyxjQUF1QjtJQUV2QixJQUFJLENBQUNGLGFBQWE7SUFFbEIsSUFBSUUsZ0JBQWdCO1FBQ2xCQSxpQkFBaUJBLGVBQWVDLFdBQVc7SUFDN0M7SUFFQSxLQUFLLE1BQU1DLFFBQVFKLFlBQWE7WUFFUEksY0FJckJBO1FBTEYseUJBQXlCO1FBQ3pCLE1BQU1DLGlCQUFBQSxDQUFpQkQsZUFBQUEsS0FBS0UsTUFBQUEsS0FBTSxnQkFBWEYsYUFBYUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQ0osV0FBVztRQUNoRSxJQUNFRixhQUFhSSxrQkFDYkgsbUJBQW1CRSxLQUFLSSxhQUFhLENBQUNMLFdBQVcsUUFDakRDLGdCQUFBQSxLQUFLSyxPQUFBQSxLQUFPLGdCQUFaTCxjQUFjTSxJQUFJLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT1IsV0FBVyxPQUFPRCxlQUFBQSxHQUN4RDtZQUNBLE9BQU9FO1FBQ1Q7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERvbWFpbkxvY2FsZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9jb25maWctc2hhcmVkJ1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0RG9tYWluTG9jYWxlKFxuICBkb21haW5JdGVtcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdLFxuICBob3N0bmFtZT86IHN0cmluZyxcbiAgZGV0ZWN0ZWRMb2NhbGU/OiBzdHJpbmdcbikge1xuICBpZiAoIWRvbWFpbkl0ZW1zKSByZXR1cm5cblxuICBpZiAoZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICBkZXRlY3RlZExvY2FsZSA9IGRldGVjdGVkTG9jYWxlLnRvTG93ZXJDYXNlKClcbiAgfVxuXG4gIGZvciAoY29uc3QgaXRlbSBvZiBkb21haW5JdGVtcykge1xuICAgIC8vIHJlbW92ZSBwb3J0IGlmIHByZXNlbnRcbiAgICBjb25zdCBkb21haW5Ib3N0bmFtZSA9IGl0ZW0uZG9tYWluPy5zcGxpdCgnOicsIDEpWzBdLnRvTG93ZXJDYXNlKClcbiAgICBpZiAoXG4gICAgICBob3N0bmFtZSA9PT0gZG9tYWluSG9zdG5hbWUgfHxcbiAgICAgIGRldGVjdGVkTG9jYWxlID09PSBpdGVtLmRlZmF1bHRMb2NhbGUudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgaXRlbS5sb2NhbGVzPy5zb21lKChsb2NhbGUpID0+IGxvY2FsZS50b0xvd2VyQ2FzZSgpID09PSBkZXRlY3RlZExvY2FsZSlcbiAgICApIHtcbiAgICAgIHJldHVybiBpdGVtXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZGV0ZWN0RG9tYWluTG9jYWxlIiwiZG9tYWluSXRlbXMiLCJob3N0bmFtZSIsImRldGVjdGVkTG9jYWxlIiwidG9Mb3dlckNhc2UiLCJpdGVtIiwiZG9tYWluSG9zdG5hbWUiLCJkb21haW4iLCJzcGxpdCIsImRlZmF1bHRMb2NhbGUiLCJsb2NhbGVzIiwic29tZSIsImxvY2FsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***!
|
||
\*************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeLocalePath\", ({\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n}));\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */ const cache = new WeakMap();\nfunction normalizeLocalePath(pathname, locales) {\n // If locales is undefined, return the pathname as is.\n if (!locales) return {\n pathname\n };\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales);\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale)=>locale.toLowerCase());\n cache.set(locales, lowercasedLocales);\n }\n let detectedLocale;\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 there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return {\n pathname\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 = lowercasedLocales.indexOf(segment);\n if (index < 0) return {\n pathname\n };\n // Return the case-sensitive locale.\n detectedLocale = locales[index];\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/';\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQXFCZ0JBOzs7ZUFBQUE7OztBQWhCaEI7Ozs7Q0FJQyxHQUNELE1BQU1DLFFBQVEsSUFBSUM7QUFXWCxTQUFTRixvQkFDZEcsUUFBZ0IsRUFDaEJDLE9BQTJCO0lBRTNCLHNEQUFzRDtJQUN0RCxJQUFJLENBQUNBLFNBQVMsT0FBTztRQUFFRDtJQUFTO0lBRWhDLGlFQUFpRTtJQUNqRSxJQUFJRSxvQkFBb0JKLE1BQU1LLEdBQUcsQ0FBQ0Y7SUFDbEMsSUFBSSxDQUFDQyxtQkFBbUI7UUFDdEJBLG9CQUFvQkQsUUFBUUcsR0FBRyxDQUFDLENBQUNDLFNBQVdBLE9BQU9DLFdBQVc7UUFDOURSLE1BQU1TLEdBQUcsQ0FBQ04sU0FBU0M7SUFDckI7SUFFQSxJQUFJTTtJQUVKLG9FQUFvRTtJQUNwRSx5RUFBeUU7SUFDekUsTUFBTUMsV0FBV1QsU0FBU1UsS0FBSyxDQUFDLEtBQUs7SUFFckMsMEVBQTBFO0lBQzFFLFVBQVU7SUFDVixJQUFJLENBQUNELFFBQVEsQ0FBQyxFQUFFLEVBQUUsT0FBTztRQUFFVDtJQUFTO0lBRXBDLDBEQUEwRDtJQUMxRCxNQUFNVyxVQUFVRixRQUFRLENBQUMsRUFBRSxDQUFDSCxXQUFXO0lBRXZDLHlFQUF5RTtJQUN6RSxtQ0FBbUM7SUFDbkMsTUFBTU0sUUFBUVYsa0JBQWtCVyxPQUFPLENBQUNGO0lBQ3hDLElBQUlDLFFBQVEsR0FBRyxPQUFPO1FBQUVaO0lBQVM7SUFFakMsb0NBQW9DO0lBQ3BDUSxpQkFBaUJQLE9BQU8sQ0FBQ1csTUFBTTtJQUUvQixnREFBZ0Q7SUFDaERaLFdBQVdBLFNBQVNjLEtBQUssQ0FBQ04sZUFBZU8sTUFBTSxHQUFHLE1BQU07SUFFeEQsT0FBTztRQUFFZjtRQUFVUTtJQUFlO0FBQ3BDIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQYXRoTG9jYWxlIHtcbiAgZGV0ZWN0ZWRMb2NhbGU/OiBzdHJpbmdcbiAgcGF0aG5hbWU6IHN0cmluZ1xufVxuXG4vKipcbiAqIEEgY2FjaGUgb2YgbG93ZXJjYXNlZCBsb2NhbGVzIGZvciBlYWNoIGxpc3Qgb2YgbG9jYWxlcy4gVGhpcyBpcyBzdG9yZWQgYXMgYVxuICogV2Vha01hcCBzbyBpZiB0aGUgbG9jYWxlcyBhcmUgZ2FyYmFnZSBjb2xsZWN0ZWQsIHRoZSBjYWNoZSBlbnRyeSB3aWxsIGJlXG4gKiByZW1vdmVkIGFzIHdlbGwuXG4gKi9cbmNvbnN0IGNhY2hlID0gbmV3IFdlYWtNYXA8cmVhZG9ubHkgc3RyaW5nW10sIHJlYWRvbmx5IHN0cmluZ1tdPigpXG5cbi8qKlxuICogRm9yIGEgcGF0aG5hbWUgdGhhdCBtYXkgaW5jbHVkZSBhIGxvY2FsZSBmcm9tIGEgbGlzdCBvZiBsb2NhbGVzLCBpdFxuICogcmVtb3ZlcyB0aGUgbG9jYWxlIGZyb20gdGhlIHBhdGhuYW1lIHJldHVybmluZyBpdCBhbG9uZ3NpZGUgd2l0aCB0aGVcbiAqIGRldGVjdGVkIGxvY2FsZS5cbiAqXG4gKiBAcGFyYW0gcGF0aG5hbWUgQSBwYXRobmFtZSB0aGF0IG1heSBpbmNsdWRlIGEgbG9jYWxlLlxuICogQHBhcmFtIGxvY2FsZXMgQSBsaXN0IG9mIGxvY2FsZXMuXG4gKiBAcmV0dXJucyBUaGUgZGV0ZWN0ZWQgbG9jYWxlIGFuZCBwYXRobmFtZSB3aXRob3V0IGxvY2FsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlUGF0aChcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4pOiBQYXRoTG9jYWxlIHtcbiAgLy8gSWYgbG9jYWxlcyBpcyB1bmRlZmluZWQsIHJldHVybiB0aGUgcGF0aG5hbWUgYXMgaXMuXG4gIGlmICghbG9jYWxlcykgcmV0dXJuIHsgcGF0aG5hbWUgfVxuXG4gIC8vIEdldCB0aGUgY2FjaGVkIGxvd2VyY2FzZWQgbG9jYWxlcyBvciBjcmVhdGUgYSBuZXcgY2FjaGUgZW50cnkuXG4gIGxldCBsb3dlcmNhc2VkTG9jYWxlcyA9IGNhY2hlLmdldChsb2NhbGVzKVxuICBpZiAoIWxvd2VyY2FzZWRMb2NhbGVzKSB7XG4gICAgbG93ZXJjYXNlZExvY2FsZXMgPSBsb2NhbGVzLm1hcCgobG9jYWxlKSA9PiBsb2NhbGUudG9Mb3dlckNhc2UoKSlcbiAgICBjYWNoZS5zZXQobG9jYWxlcywgbG93ZXJjYXNlZExvY2FsZXMpXG4gIH1cblxuICBsZXQgZGV0ZWN0ZWRMb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIC8vIFRoZSBmaXJzdCBzZWdtZW50IHdpbGwgYmUgZW1wdHksIGJlY2F1c2UgaXQgaGFzIGEgbGVhZGluZyBgL2AuIElmXG4gIC8vIHRoZXJlIGlzIG5vIGZ1cnRoZXIgc2VnbWVudCwgdGhlcmUgaXMgbm8gbG9jYWxlIChvciBpdCdzIHRoZSBkZWZhdWx0KS5cbiAgY29uc3Qgc2VnbWVudHMgPSBwYXRobmFtZS5zcGxpdCgnLycsIDIpXG5cbiAgLy8gSWYgdGhlcmUncyBubyBzZWNvbmQgc2VnbWVudCAoaWUsIHRoZSBwYXRobmFtZSBpcyBqdXN0IGAvYCksIHRoZXJlJ3Mgbm9cbiAgLy8gbG9jYWxlLlxuICBpZiAoIXNlZ21lbnRzWzFdKSByZXR1cm4geyBwYXRobmFtZSB9XG5cbiAgLy8gVGhlIHNlY29uZCBzZWdtZW50IHdpbGwgY29udGFpbiB0aGUgbG9jYWxlIHBhcnQgaWYgYW55LlxuICBjb25zdCBzZWdtZW50ID0gc2VnbWVudHNbMV0udG9Mb3dlckNhc2UoKVxuXG4gIC8vIFNlZSBpZiB0aGUgc2VnbWVudCBtYXRjaGVzIG9uZSBvZiB0aGUgbG9jYWxlcy4gSWYgaXQgZG9lc24ndCwgdGhlcmUgaXNcbiAgLy8gbm8gbG9jYWxlIChvciBpdCdzIHRoZSBkZWZhdWx0KS5cbiAgY29uc3QgaW5kZXggPSBsb3dlcmNhc2VkTG9jYWxlcy5pbmRleE9mKHNlZ21lbnQpXG4gIGlmIChpbmRleCA8IDApIHJldHVybiB7IHBhdGhuYW1lIH1cblxuICAvLyBSZXR1cm4gdGhlIGNhc2Utc2Vuc2l0aXZlIGxvY2FsZS5cbiAgZGV0ZWN0ZWRMb2NhbGUgPSBsb2NhbGVzW2luZGV4XVxuXG4gIC8vIFJlbW92ZSB0aGUgYC8ke2xvY2FsZX1gIHBhcnQgb2YgdGhlIHBhdGhuYW1lLlxuICBwYXRobmFtZSA9IHBhdGhuYW1lLnNsaWNlKGRldGVjdGVkTG9jYWxlLmxlbmd0aCArIDEpIHx8ICcvJ1xuXG4gIHJldHVybiB7IHBhdGhuYW1lLCBkZXRlY3RlZExvY2FsZSB9XG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplTG9jYWxlUGF0aCIsImNhY2hlIiwiV2Vha01hcCIsInBhdGhuYW1lIiwibG9jYWxlcyIsImxvd2VyY2FzZWRMb2NhbGVzIiwiZ2V0IiwibWFwIiwibG9jYWxlIiwidG9Mb3dlckNhc2UiLCJzZXQiLCJkZXRlY3RlZExvY2FsZSIsInNlZ21lbnRzIiwic3BsaXQiLCJzZWdtZW50IiwiaW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/invariant-error.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/invariant-error.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"InvariantError\", ({\n enumerable: true,\n get: function() {\n return InvariantError;\n }\n}));\nclass InvariantError extends Error {\n constructor(message, options){\n super(\"Invariant: \" + (message.endsWith('.') ? message : message + '.') + \" This is a bug in Next.js.\", options);\n this.name = 'InvariantError';\n }\n} //# sourceMappingURL=invariant-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFBYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsdUJBQXVCQztJQUNsQ0MsWUFBWUMsT0FBZSxFQUFFQyxPQUFzQixDQUFFO1FBQ25ELEtBQUssQ0FDRixnQkFBYUQsQ0FBQUEsUUFBUUUsUUFBUSxDQUFDLE9BQU9GLFVBQVVBLFVBQVUsSUFBRSxHQUFFLDhCQUM5REM7UUFFRixJQUFJLENBQUNFLElBQUksR0FBRztJQUNkO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSW52YXJpYW50RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgb3B0aW9ucz86IEVycm9yT3B0aW9ucykge1xuICAgIHN1cGVyKFxuICAgICAgYEludmFyaWFudDogJHttZXNzYWdlLmVuZHNXaXRoKCcuJykgPyBtZXNzYWdlIDogbWVzc2FnZSArICcuJ30gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzLmAsXG4gICAgICBvcHRpb25zXG4gICAgKVxuICAgIHRoaXMubmFtZSA9ICdJbnZhcmlhbnRFcnJvcidcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkludmFyaWFudEVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJvcHRpb25zIiwiZW5kc1dpdGgiLCJuYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/invariant-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/is-plain-object.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQWdCQSxtQkFBbUI7ZUFBbkJBOztJQUlBQyxhQUFhO2VBQWJBOzs7QUFKVCxTQUFTRCxvQkFBb0JFLEtBQVU7SUFDNUMsT0FBT0MsT0FBT0MsU0FBUyxDQUFDQyxRQUFRLENBQUNDLElBQUksQ0FBQ0o7QUFDeEM7QUFFTyxTQUFTRCxjQUFjQyxLQUFVO0lBQ3RDLElBQUlGLG9CQUFvQkUsV0FBVyxtQkFBbUI7UUFDcEQsT0FBTztJQUNUO0lBRUEsTUFBTUUsWUFBWUQsT0FBT0ksY0FBYyxDQUFDTDtJQUV4Qzs7Ozs7Ozs7R0FRQyxHQUNELE9BQU9FLGNBQWMsUUFBUUEsVUFBVUksY0FBYyxDQUFDO0FBQ3hEIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdENsYXNzTGFiZWwodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKGdldE9iamVjdENsYXNzTGFiZWwodmFsdWUpICE9PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgcHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKVxuXG4gIC8qKlxuICAgKiB0aGlzIHVzZWQgdG8gYmUgcHJldmlvdXNseTpcbiAgICpcbiAgICogYHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlID09PSBPYmplY3QucHJvdG90eXBlYFxuICAgKlxuICAgKiBidXQgRWRnZSBSdW50aW1lIGV4cG9zZSBPYmplY3QgZnJvbSB2bSwgYmVpbmcgdGhhdCBraW5kIG9mIHR5cGUtY2hlY2tpbmcgd3JvbmdseSBmYWlsLlxuICAgKlxuICAgKiBJdCB3YXMgY2hhbmdlZCB0byB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBzaW5jZSBpdCdzIHJlc2lsaWVudCB0byBzZXJpYWxpemF0aW9uLlxuICAgKi9cbiAgcmV0dXJuIHByb3RvdHlwZSA9PT0gbnVsbCB8fCBwcm90b3R5cGUuaGFzT3duUHJvcGVydHkoJ2lzUHJvdG90eXBlT2YnKVxufVxuIl0sIm5hbWVzIjpbImdldE9iamVjdENsYXNzTGFiZWwiLCJpc1BsYWluT2JqZWN0IiwidmFsdWUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJnZXRQcm90b3R5cGVPZiIsImhhc093blByb3BlcnR5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/is-plain-object.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/is-thenable.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/is-thenable.js ***!
|
||
\**********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Q0FLQzs7Ozs4Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsV0FDZEMsT0FBdUI7SUFFdkIsT0FDRUEsWUFBWSxRQUNaLE9BQU9BLFlBQVksWUFDbkIsVUFBVUEsV0FDVixPQUFPQSxRQUFRQyxJQUFJLEtBQUs7QUFFNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9zaGFyZWQvbGliL2lzLXRoZW5hYmxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hlY2sgdG8gc2VlIGlmIGEgdmFsdWUgaXMgVGhlbmFibGUuXG4gKlxuICogQHBhcmFtIHByb21pc2UgdGhlIG1heWJlLXRoZW5hYmxlIHZhbHVlXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyB0aGVuYWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUaGVuYWJsZTxUID0gdW5rbm93bj4oXG4gIHByb21pc2U6IFByb21pc2U8VD4gfCBUXG4pOiBwcm9taXNlIGlzIFByb21pc2U8VD4ge1xuICByZXR1cm4gKFxuICAgIHByb21pc2UgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgcHJvbWlzZSA9PT0gJ29iamVjdCcgJiZcbiAgICAndGhlbicgaW4gcHJvbWlzZSAmJlxuICAgIHR5cGVvZiBwcm9taXNlLnRoZW4gPT09ICdmdW5jdGlvbidcbiAgKVxufVxuIl0sIm5hbWVzIjpbImlzVGhlbmFibGUiLCJwcm9taXNlIiwidGhlbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/is-thenable.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxvRkFBb0Y7QUFDcEYsa0VBQWtFO0FBQ2xFOzs7OztDQUtDO0FBQ0QsTUFBTUEsNkJBQTZCO0lBQ2pDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVEQyxPQUFPQyxPQUFPLEdBQUdGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOb3RlOiBUaGlzIGZpbGUgaXMgSlMgYmVjYXVzZSBpdCdzIHVzZWQgYnkgdGhlIHRhc2tmaWxlLXN3Yy5qcyBmaWxlLCB3aGljaCBpcyBKUy5cbi8vIEtlZXAgZmlsZSBjaGFuZ2VzIGluIHN5bmMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBgLmQudHNgIGZpbGVzLlxuLyoqXG4gKiBUaGVzZSBhcmUgdGhlIGJyb3dzZXIgdmVyc2lvbnMgdGhhdCBzdXBwb3J0IGFsbCBvZiB0aGUgZm9sbG93aW5nOlxuICogc3RhdGljIGltcG9ydDogaHR0cHM6Ly9jYW5pdXNlLmNvbS9lczYtbW9kdWxlXG4gKiBkeW5hbWljIGltcG9ydDogaHR0cHM6Ly9jYW5pdXNlLmNvbS9lczYtbW9kdWxlLWR5bmFtaWMtaW1wb3J0XG4gKiBpbXBvcnQubWV0YTogaHR0cHM6Ly9jYW5pdXNlLmNvbS9tZG4tamF2YXNjcmlwdF9vcGVyYXRvcnNfaW1wb3J0X21ldGFcbiAqL1xuY29uc3QgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgPSBbXG4gICdjaHJvbWUgNjQnLFxuICAnZWRnZSA3OScsXG4gICdmaXJlZm94IDY3JyxcbiAgJ29wZXJhIDUxJyxcbiAgJ3NhZmFyaSAxMicsXG5dXG5cbm1vZHVsZS5leHBvcnRzID0gTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVRcbiJdLCJuYW1lcyI6WyJNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCIsIm1vZHVsZSIsImV4cG9ydHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js ***!
|
||
\******************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"denormalizePagePath\", ({\n enumerable: true,\n get: function() {\n return denormalizePagePath;\n }\n}));\nconst _utils = __webpack_require__(/*! ../router/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _normalizepathsep = __webpack_require__(/*! ./normalize-path-sep */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nfunction denormalizePagePath(page) {\n let _page = (0, _normalizepathsep.normalizePathSep)(page);\n return _page.startsWith('/index/') && !(0, _utils.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBV2dCQTs7O2VBQUFBOzs7bUNBWGU7OENBQ0U7QUFVMUIsU0FBU0Esb0JBQW9CQyxJQUFZO0lBQzlDLElBQUlDLFFBQVFDLENBQUFBLEdBQUFBLGtCQUFBQSxnQkFBQUEsRUFBaUJGO0lBQzdCLE9BQU9DLE1BQU1FLFVBQVUsQ0FBQyxjQUFjLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLGNBQUFBLEVBQWVILFNBQ2xEQSxNQUFNSSxLQUFLLENBQUMsS0FDWkosVUFBVSxXQUNSQSxRQUNBO0FBQ1IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vcm91dGVyL3V0aWxzJ1xuaW1wb3J0IHsgbm9ybWFsaXplUGF0aFNlcCB9IGZyb20gJy4vbm9ybWFsaXplLXBhdGgtc2VwJ1xuXG4vKipcbiAqIFBlcmZvcm1zIHRoZSBvcHBvc2l0ZSB0cmFuc2Zvcm1hdGlvbiBvZiBgbm9ybWFsaXplUGFnZVBhdGhgLiBOb3RlIHRoYXRcbiAqIHRoaXMgZnVuY3Rpb24gaXMgbm90IGlkZW1wb3RlbnQgZWl0aGVyIGluIGNhc2VzIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZVxuICogbGVhZGluZyBgL2luZGV4YCBmb3IgdGhlIHBhZ2UuIEV4YW1wbGVzOlxuICogIC0gYC9pbmRleGAgLT4gYC9gXG4gKiAgLSBgL2luZGV4L2Zvb2AgLT4gYC9mb29gXG4gKiAgLSBgL2luZGV4L2luZGV4YCAtPiBgL2luZGV4YFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVub3JtYWxpemVQYWdlUGF0aChwYWdlOiBzdHJpbmcpIHtcbiAgbGV0IF9wYWdlID0gbm9ybWFsaXplUGF0aFNlcChwYWdlKVxuICByZXR1cm4gX3BhZ2Uuc3RhcnRzV2l0aCgnL2luZGV4LycpICYmICFpc0R5bmFtaWNSb3V0ZShfcGFnZSlcbiAgICA/IF9wYWdlLnNsaWNlKDYpXG4gICAgOiBfcGFnZSAhPT0gJy9pbmRleCdcbiAgICAgID8gX3BhZ2VcbiAgICAgIDogJy8nXG59XG4iXSwibmFtZXMiOlsiZGVub3JtYWxpemVQYWdlUGF0aCIsInBhZ2UiLCJfcGFnZSIsIm5vcm1hbGl6ZVBhdGhTZXAiLCJzdGFydHNXaXRoIiwiaXNEeW5hbWljUm91dGUiLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDOzs7O3NEQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxtQkFBbUJDLElBQVk7SUFDN0MsT0FBT0EsS0FBS0MsVUFBVSxDQUFDLE9BQU9ELE9BQVEsTUFBR0E7QUFDM0MiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgbGVhZGluZyBzbGFzaC5cbiAqIElmIHRoZXJlIGlzIG5vdCBhIGxlYWRpbmcgc2xhc2gsIG9uZSBpcyBhZGRlZCwgb3RoZXJ3aXNlIGl0IGlzIG5vb3AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMZWFkaW5nU2xhc2gocGF0aDogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IHBhdGggOiBgLyR7cGF0aH1gXG59XG4iXSwibmFtZXMiOlsiZW5zdXJlTGVhZGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js ***!
|
||
\****************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeDataPath\", ({\n enumerable: true,\n get: function() {\n return normalizeDataPath;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ../router/utils/path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction normalizeDataPath(pathname) {\n if (!(0, _pathhasprefix.pathHasPrefix)(pathname || '/', '/_next/data')) {\n return pathname;\n }\n pathname = pathname.replace(/\\/_next\\/data\\/[^/]{1,}/, '').replace(/\\.json$/, '');\n if (pathname === '/index') {\n return '/';\n }\n return pathname;\n} //# sourceMappingURL=normalize-data-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLWRhdGEtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3FEQUtnQkE7OztlQUFBQTs7OzJDQUxjO0FBS3ZCLFNBQVNBLGtCQUFrQkMsUUFBZ0I7SUFDaEQsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRCxZQUFZLEtBQUssZ0JBQWdCO1FBQ2xELE9BQU9BO0lBQ1Q7SUFDQUEsV0FBV0EsU0FDUkUsT0FBTyxDQUFDLDJCQUEyQixJQUNuQ0EsT0FBTyxDQUFDLFdBQVc7SUFFdEIsSUFBSUYsYUFBYSxVQUFVO1FBQ3pCLE9BQU87SUFDVDtJQUNBLE9BQU9BO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLWRhdGEtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi4vcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeCdcblxuLyoqXG4gKiBzdHJpcCBfbmV4dC9kYXRhLzxidWlsZC1pZD4vIHByZWZpeCBhbmQgLmpzb24gc3VmZml4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVEYXRhUGF0aChwYXRobmFtZTogc3RyaW5nKSB7XG4gIGlmICghcGF0aEhhc1ByZWZpeChwYXRobmFtZSB8fCAnLycsICcvX25leHQvZGF0YScpKSB7XG4gICAgcmV0dXJuIHBhdGhuYW1lXG4gIH1cbiAgcGF0aG5hbWUgPSBwYXRobmFtZVxuICAgIC5yZXBsYWNlKC9cXC9fbmV4dFxcL2RhdGFcXC9bXi9dezEsfS8sICcnKVxuICAgIC5yZXBsYWNlKC9cXC5qc29uJC8sICcnKVxuXG4gIGlmIChwYXRobmFtZSA9PT0gJy9pbmRleCcpIHtcbiAgICByZXR1cm4gJy8nXG4gIH1cbiAgcmV0dXJuIHBhdGhuYW1lXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplRGF0YVBhdGgiLCJwYXRobmFtZSIsInBhdGhIYXNQcmVmaXgiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-data-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js ***!
|
||
\****************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePagePath\", ({\n enumerable: true,\n get: function() {\n return normalizePagePath;\n }\n}));\nconst _ensureleadingslash = __webpack_require__(/*! ./ensure-leading-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _utils = __webpack_require__(/*! ../router/utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _utils1 = __webpack_require__(/*! ../utils */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\");\nfunction normalizePagePath(page) {\n const normalized = /^\\/index(\\/|$)/.test(page) && !(0, _utils.isDynamicRoute)(page) ? \"/index\" + page : page === '/' ? '/index' : (0, _ensureleadingslash.ensureLeadingSlash)(page);\n if (true) {\n const { posix } = __webpack_require__(/*! path */ \"path\");\n const resolvedPage = posix.normalize(normalized);\n if (resolvedPage !== normalized) {\n throw new _utils1.NormalizeError(\"Requested and resolved page mismatch: \" + normalized + \" \" + resolvedPage);\n }\n }\n return normalized;\n} //# sourceMappingURL=normalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhZ2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3FEQWFnQkE7OztlQUFBQTs7O2dEQWJtQjttQ0FDSjtvQ0FDQTtBQVd4QixTQUFTQSxrQkFBa0JDLElBQVk7SUFDNUMsTUFBTUMsYUFDSixpQkFBaUJDLElBQUksQ0FBQ0YsU0FBUyxDQUFDRyxDQUFBQSxHQUFBQSxPQUFBQSxjQUFBQSxFQUFlSCxRQUMxQyxXQUFRQSxPQUNUQSxTQUFTLE1BQ1AsV0FDQUksQ0FBQUEsR0FBQUEsb0JBQUFBLGtCQUFBQSxFQUFtQko7SUFFM0IsSUFBSUssSUFBbUMsRUFBRTtRQUN2QyxNQUFNLEVBQUVHLEtBQUssRUFBRSxHQUFHQyxtQkFBT0EsQ0FBQyxrQkFBTTtRQUNoQyxNQUFNQyxlQUFlRixNQUFNRyxTQUFTLENBQUNWO1FBQ3JDLElBQUlTLGlCQUFpQlQsWUFBWTtZQUMvQixNQUFNLElBQUlXLFFBQUFBLGNBQWMsQ0FDckIsMkNBQXdDWCxhQUFXLE1BQUdTO1FBRTNEO0lBQ0Y7SUFFQSxPQUFPVDtBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYWdlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlTGVhZGluZ1NsYXNoIH0gZnJvbSAnLi9lbnN1cmUtbGVhZGluZy1zbGFzaCdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vcm91dGVyL3V0aWxzJ1xuaW1wb3J0IHsgTm9ybWFsaXplRXJyb3IgfSBmcm9tICcuLi91dGlscydcblxuLyoqXG4gKiBUYWtlcyBhIHBhZ2UgYW5kIHRyYW5zZm9ybXMgaXQgaW50byBpdHMgZmlsZSBjb3VudGVycGFydCBlbnN1cmluZyB0aGF0IHRoZVxuICogb3V0cHV0IGlzIG5vcm1hbGl6ZWQuIE5vdGUgdGhpcyBmdW5jdGlvbiBpcyBub3QgaWRlbXBvdGVudCBiZWNhdXNlIGEgcGFnZVxuICogYC9pbmRleGAgY2FuIGJlIHJlZmVyZW5jaW5nIGAvaW5kZXgvaW5kZXguanNgIGFuZCBgL2luZGV4L2luZGV4YCBjb3VsZCBiZVxuICogcmVmZXJlbmNpbmcgYC9pbmRleC9pbmRleC9pbmRleC5qc2AuIEV4YW1wbGVzOlxuICogIC0gYC9gIC0+IGAvaW5kZXhgXG4gKiAgLSBgL2luZGV4L2Zvb2AgLT4gYC9pbmRleC9pbmRleC9mb29gXG4gKiAgLSBgL2luZGV4YCAtPiBgL2luZGV4L2luZGV4YFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGFnZVBhdGgocGFnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9XG4gICAgL15cXC9pbmRleChcXC98JCkvLnRlc3QocGFnZSkgJiYgIWlzRHluYW1pY1JvdXRlKHBhZ2UpXG4gICAgICA/IGAvaW5kZXgke3BhZ2V9YFxuICAgICAgOiBwYWdlID09PSAnLydcbiAgICAgICAgPyAnL2luZGV4J1xuICAgICAgICA6IGVuc3VyZUxlYWRpbmdTbGFzaChwYWdlKVxuXG4gIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJykge1xuICAgIGNvbnN0IHsgcG9zaXggfSA9IHJlcXVpcmUoJ3BhdGgnKSBhcyB0eXBlb2YgaW1wb3J0KCdwYXRoJylcbiAgICBjb25zdCByZXNvbHZlZFBhZ2UgPSBwb3NpeC5ub3JtYWxpemUobm9ybWFsaXplZClcbiAgICBpZiAocmVzb2x2ZWRQYWdlICE9PSBub3JtYWxpemVkKSB7XG4gICAgICB0aHJvdyBuZXcgTm9ybWFsaXplRXJyb3IoXG4gICAgICAgIGBSZXF1ZXN0ZWQgYW5kIHJlc29sdmVkIHBhZ2UgbWlzbWF0Y2g6ICR7bm9ybWFsaXplZH0gJHtyZXNvbHZlZFBhZ2V9YFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub3JtYWxpemVkXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplUGFnZVBhdGgiLCJwYWdlIiwibm9ybWFsaXplZCIsInRlc3QiLCJpc0R5bmFtaWNSb3V0ZSIsImVuc3VyZUxlYWRpbmdTbGFzaCIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1JVTlRJTUUiLCJwb3NpeCIsInJlcXVpcmUiLCJyZXNvbHZlZFBhZ2UiLCJub3JtYWxpemUiLCJOb3JtYWxpemVFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathSep\", ({\n enumerable: true,\n get: function() {\n return normalizePathSep;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhdGgtc2VwLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7O0NBSUM7Ozs7b0RBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLGlCQUFpQkMsSUFBWTtJQUMzQyxPQUFPQSxLQUFLQyxPQUFPLENBQUMsT0FBTztBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIG5vIGJhY2tzbGFzaFxuICogZXNjYXBpbmcgc2xhc2hlcyBpbiB0aGUgcGF0aC4gRXhhbXBsZTpcbiAqICAtIGBmb29cXC9iYXJcXC9iYXpgIC0+IGBmb28vYmFyL2JhemBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGhTZXAocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplUGF0aFNlcCIsInBhdGgiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/add-locale.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction 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, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQVFnQkE7OztlQUFBQTs7OzJDQVJjOzJDQUNBO0FBT3ZCLFNBQVNBLFVBQ2RDLElBQVksRUFDWkMsTUFBdUIsRUFDdkJDLGFBQXNCLEVBQ3RCQyxZQUFzQjtJQUV0Qiw0RUFBNEU7SUFDNUUsc0JBQXNCO0lBQ3RCLElBQUksQ0FBQ0YsVUFBVUEsV0FBV0MsZUFBZSxPQUFPRjtJQUVoRCxNQUFNSSxRQUFRSixLQUFLSyxXQUFXO0lBRTlCLDJFQUEyRTtJQUMzRSxpQ0FBaUM7SUFDakMsSUFBSSxDQUFDRixjQUFjO1FBQ2pCLElBQUlHLENBQUFBLEdBQUFBLGVBQUFBLGFBQWEsRUFBQ0YsT0FBTyxTQUFTLE9BQU9KO1FBQ3pDLElBQUlNLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNGLE9BQVEsTUFBR0gsT0FBT0ksV0FBVyxLQUFPLE9BQU9MO0lBQy9EO0lBRUEscUNBQXFDO0lBQ3JDLE9BQU9PLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNQLE1BQU8sTUFBR0M7QUFDakMiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRQYXRoUHJlZml4IH0gZnJvbSAnLi9hZGQtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi9wYXRoLWhhcy1wcmVmaXgnXG5cbi8qKlxuICogRm9yIGEgZ2l2ZW4gcGF0aCBhbmQgYSBsb2NhbGUsIGlmIHRoZSBsb2NhbGUgaXMgZ2l2ZW4sIGl0IHdpbGwgcHJlZml4IHRoZVxuICogbG9jYWxlLiBUaGUgcGF0aCBzaG91bGRuJ3QgYmUgYW4gQVBJIHBhdGguIElmIGEgZGVmYXVsdCBsb2NhbGUgaXMgZ2l2ZW4gdGhlXG4gKiBwcmVmaXggd2lsbCBiZSBvbWl0dGVkIGlmIHRoZSBsb2NhbGUgaXMgYWxyZWFkeSB0aGUgZGVmYXVsdCBsb2NhbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRMb2NhbGUoXG4gIHBhdGg6IHN0cmluZyxcbiAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2UsXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmcsXG4gIGlnbm9yZVByZWZpeD86IGJvb2xlYW5cbikge1xuICAvLyBJZiBubyBsb2NhbGUgd2FzIGdpdmVuIG9yIHRoZSBsb2NhbGUgaXMgdGhlIGRlZmF1bHQgbG9jYWxlLCB3ZSBkb24ndCBuZWVkXG4gIC8vIHRvIHByZWZpeCB0aGUgcGF0aC5cbiAgaWYgKCFsb2NhbGUgfHwgbG9jYWxlID09PSBkZWZhdWx0TG9jYWxlKSByZXR1cm4gcGF0aFxuXG4gIGNvbnN0IGxvd2VyID0gcGF0aC50b0xvd2VyQ2FzZSgpXG5cbiAgLy8gSWYgdGhlIHBhdGggaXMgYW4gQVBJIHBhdGggb3IgdGhlIHBhdGggYWxyZWFkeSBoYXMgdGhlIGxvY2FsZSBwcmVmaXgsIHdlXG4gIC8vIGRvbid0IG5lZWQgdG8gcHJlZml4IHRoZSBwYXRoLlxuICBpZiAoIWlnbm9yZVByZWZpeCkge1xuICAgIGlmIChwYXRoSGFzUHJlZml4KGxvd2VyLCAnL2FwaScpKSByZXR1cm4gcGF0aFxuICAgIGlmIChwYXRoSGFzUHJlZml4KGxvd2VyLCBgLyR7bG9jYWxlLnRvTG93ZXJDYXNlKCl9YCkpIHJldHVybiBwYXRoXG4gIH1cblxuICAvLyBBZGQgdGhlIGxvY2FsZSBwcmVmaXggdG8gdGhlIHBhdGguXG4gIHJldHVybiBhZGRQYXRoUHJlZml4KHBhdGgsIGAvJHtsb2NhbGV9YClcbn1cbiJdLCJuYW1lcyI6WyJhZGRMb2NhbGUiLCJwYXRoIiwibG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsImlnbm9yZVByZWZpeCIsImxvd2VyIiwidG9Mb3dlckNhc2UiLCJwYXRoSGFzUHJlZml4IiwiYWRkUGF0aFByZWZpeCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBTWdCQTs7O2VBQUFBOzs7dUNBTlU7QUFNbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFlO0lBQ3pELElBQUksQ0FBQ0QsS0FBS0UsVUFBVSxDQUFDLFFBQVEsQ0FBQ0QsUUFBUTtRQUNwQyxPQUFPRDtJQUNUO0lBRUEsTUFBTSxFQUFFRyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVOO0lBQzVDLE9BQVEsS0FBRUMsU0FBU0UsV0FBV0MsUUFBUUM7QUFDeEMiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBBZGRzIHRoZSBwcm92aWRlZCBwcmVmaXggdG8gdGhlIGdpdmVuIHBhdGguIEl0IGZpcnN0IGVuc3VyZXMgdGhhdCB0aGUgcGF0aFxuICogaXMgaW5kZWVkIHN0YXJ0aW5nIHdpdGggYSBzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhdGhQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg/OiBzdHJpbmcpIHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhcHJlZml4KSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIGAke3ByZWZpeH0ke3BhdGhuYW1lfSR7cXVlcnl9JHtoYXNofWBcbn1cbiJdLCJuYW1lcyI6WyJhZGRQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathSuffix\", ({\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith('/') || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtc3VmZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBT2dCQTs7O2VBQUFBOzs7dUNBUFU7QUFPbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFlO0lBQ3pELElBQUksQ0FBQ0QsS0FBS0UsVUFBVSxDQUFDLFFBQVEsQ0FBQ0QsUUFBUTtRQUNwQyxPQUFPRDtJQUNUO0lBRUEsTUFBTSxFQUFFRyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVOO0lBQzVDLE9BQVEsS0FBRUcsV0FBV0YsU0FBU0csUUFBUUM7QUFDeEMiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtc3VmZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBTaW1pbGFybHkgdG8gYGFkZFBhdGhQcmVmaXhgLCB0aGlzIGZ1bmN0aW9uIGFkZHMgYSBzdWZmaXggYXQgdGhlIGVuZCBvbiB0aGVcbiAqIHByb3ZpZGVkIHBhdGguIEl0IGFsc28gd29ya3Mgb25seSBmb3IgcGF0aHMgZW5zdXJpbmcgdGhlIGFyZ3VtZW50IHN0YXJ0c1xuICogd2l0aCBhIHNsYXNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkUGF0aFN1ZmZpeChwYXRoOiBzdHJpbmcsIHN1ZmZpeD86IHN0cmluZykge1xuICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8ICFzdWZmaXgpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnksIGhhc2ggfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gYCR7cGF0aG5hbWV9JHtzdWZmaXh9JHtxdWVyeX0ke2hhc2h9YFxufVxuIl0sIm5hbWVzIjpbImFkZFBhdGhTdWZmaXgiLCJwYXRoIiwic3VmZml4Iiwic3RhcnRzV2l0aCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.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 normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.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.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}\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXNCZ0JBLGdCQUFnQjtlQUFoQkE7O0lBbUNBQyxlQUFlO2VBQWZBOzs7Z0RBekRtQjtxQ0FDSjtBQXFCeEIsU0FBU0QsaUJBQWlCRSxLQUFhO0lBQzVDLE9BQU9DLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFDTEQsTUFBTUUsS0FBSyxDQUFDLEtBQUtDLE1BQU0sQ0FBQyxDQUFDQyxVQUFVQyxTQUFTQyxPQUFPQztRQUNqRCw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDRixTQUFTO1lBQ1osT0FBT0Q7UUFDVDtRQUVBLHNCQUFzQjtRQUN0QixJQUFJSSxDQUFBQSxHQUFBQSxTQUFBQSxjQUFBQSxFQUFlSCxVQUFVO1lBQzNCLE9BQU9EO1FBQ1Q7UUFFQSxpQ0FBaUM7UUFDakMsSUFBSUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLO1lBQ3RCLE9BQU9EO1FBQ1Q7UUFFQSx1REFBdUQ7UUFDdkQsSUFDR0MsQ0FBQUEsWUFBWSxVQUFVQSxZQUFZLFFBQU0sSUFDekNDLFVBQVVDLFNBQVNFLE1BQU0sR0FBRyxHQUM1QjtZQUNBLE9BQU9MO1FBQ1Q7UUFFQSxPQUFVQSxXQUFTLE1BQUdDO0lBQ3hCLEdBQUc7QUFFUDtBQU1PLFNBQVNOLGdCQUFnQlcsR0FBVztJQUN6QyxPQUFPQSxJQUFJQyxPQUFPLENBQ2hCLGVBQ0E7QUFHSiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hcHAtcGF0aHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlTGVhZGluZ1NsYXNoIH0gZnJvbSAnLi4vLi4vcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoJ1xuaW1wb3J0IHsgaXNHcm91cFNlZ21lbnQgfSBmcm9tICcuLi8uLi9zZWdtZW50J1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYW4gYXBwIHJvdXRlIHNvIGl0IHJlcHJlc2VudHMgdGhlIGFjdHVhbCByZXF1ZXN0IHBhdGguIEVzc2VudGlhbGx5XG4gKiBwZXJmb3JtaW5nIHRoZSBmb2xsb3dpbmcgdHJhbnNmb3JtYXRpb25zOlxuICpcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcGFnZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvKGRhc2hib2FyZCkvYWNjb3VudC9wYWdlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3BhZ2VgIHRvIGAvYFxuICogLSBgLyhkYXNoYm9hcmQpL3VzZXIvW2lkXS9yb3V0ZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvKGRhc2hib2FyZCkvYWNjb3VudC9yb3V0ZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9yb3V0ZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvYWNjb3VudC9yb3V0ZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3JvdXRlYCB0byBgL2BcbiAqIC0gYC9gIHRvIGAvYFxuICpcbiAqIEBwYXJhbSByb3V0ZSB0aGUgYXBwIHJvdXRlIHRvIG5vcm1hbGl6ZVxuICogQHJldHVybnMgdGhlIG5vcm1hbGl6ZWQgcGF0aG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUFwcFBhdGgocm91dGU6IHN0cmluZykge1xuICByZXR1cm4gZW5zdXJlTGVhZGluZ1NsYXNoKFxuICAgIHJvdXRlLnNwbGl0KCcvJykucmVkdWNlKChwYXRobmFtZSwgc2VnbWVudCwgaW5kZXgsIHNlZ21lbnRzKSA9PiB7XG4gICAgICAvLyBFbXB0eSBzZWdtZW50cyBhcmUgaWdub3JlZC5cbiAgICAgIGlmICghc2VnbWVudCkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gR3JvdXBzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKGlzR3JvdXBTZWdtZW50KHNlZ21lbnQpKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBQYXJhbGxlbCBzZWdtZW50cyBhcmUgaWdub3JlZC5cbiAgICAgIGlmIChzZWdtZW50WzBdID09PSAnQCcpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIFRoZSBsYXN0IHNlZ21lbnQgKGlmIGl0J3MgYSBsZWFmKSBzaG91bGQgYmUgaWdub3JlZC5cbiAgICAgIGlmIChcbiAgICAgICAgKHNlZ21lbnQgPT09ICdwYWdlJyB8fCBzZWdtZW50ID09PSAncm91dGUnKSAmJlxuICAgICAgICBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9LyR7c2VnbWVudH1gXG4gICAgfSwgJycpXG4gIClcbn1cblxuLyoqXG4gKiBTdHJpcHMgdGhlIGAucnNjYCBleHRlbnNpb24gaWYgaXQncyBpbiB0aGUgcGF0aG5hbWUuXG4gKiBTaW5jZSB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgb24gZnVsbCB1cmxzIGl0IGNoZWNrcyBgP2AgZm9yIHNlYXJjaFBhcmFtcyBoYW5kbGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJzY1VSTCh1cmw6IHN0cmluZykge1xuICByZXR1cm4gdXJsLnJlcGxhY2UoXG4gICAgL1xcLnJzYygkfFxcPykvLFxuICAgIC8vICQxIGVuc3VyZXMgYD9gIGlzIHByZXNlcnZlZFxuICAgICckMSdcbiAgKVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZUFwcFBhdGgiLCJub3JtYWxpemVSc2NVUkwiLCJyb3V0ZSIsImVuc3VyZUxlYWRpbmdTbGFzaCIsInNwbGl0IiwicmVkdWNlIiwicGF0aG5hbWUiLCJzZWdtZW50IiwiaW5kZXgiLCJzZWdtZW50cyIsImlzR3JvdXBTZWdtZW50IiwibGVuZ3RoIiwidXJsIiwicmVwbGFjZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js ***!
|
||
\*************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"formatNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _addpathsuffix = __webpack_require__(/*! ./add-path-suffix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === '/' ? 'index.json' : '.json');\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7OzBEQVdnQkE7OztlQUFBQTs7O2lEQVZvQjsyQ0FDTjsyQ0FDQTt1Q0FDSjtBQU9uQixTQUFTQSx1QkFBdUJDLElBQWtCO0lBQ3ZELElBQUlDLFdBQVdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQ2JGLEtBQUtDLFFBQVEsRUFDYkQsS0FBS0csTUFBTSxFQUNYSCxLQUFLSSxPQUFPLEdBQUdDLFlBQVlMLEtBQUtNLGFBQWEsRUFDN0NOLEtBQUtPLFlBQVk7SUFHbkIsSUFBSVAsS0FBS0ksT0FBTyxJQUFJLENBQUNKLEtBQUtRLGFBQWEsRUFBRTtRQUN2Q1AsV0FBV1EsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQlI7SUFDakM7SUFFQSxJQUFJRCxLQUFLSSxPQUFPLEVBQUU7UUFDaEJILFdBQVdTLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQ1RDLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNWLFVBQVcsaUJBQWNELEtBQUtJLE9BQU8sR0FDbkRKLEtBQUtDLFFBQVEsS0FBSyxNQUFNLGVBQWU7SUFFM0M7SUFFQUEsV0FBV1UsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY1YsVUFBVUQsS0FBS1ksUUFBUTtJQUNoRCxPQUFPLENBQUNaLEtBQUtJLE9BQU8sSUFBSUosS0FBS1EsYUFBYSxHQUN0QyxDQUFDUCxTQUFTWSxRQUFRLENBQUMsT0FDakJILENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNULFVBQVUsT0FDeEJBLFdBQ0ZRLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JSO0FBQzFCIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBOZXh0UGF0aG5hbWVJbmZvIH0gZnJvbSAnLi9nZXQtbmV4dC1wYXRobmFtZS1pbmZvJ1xuaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vcmVtb3ZlLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4vYWRkLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgYWRkUGF0aFN1ZmZpeCB9IGZyb20gJy4vYWRkLXBhdGgtc3VmZml4J1xuaW1wb3J0IHsgYWRkTG9jYWxlIH0gZnJvbSAnLi9hZGQtbG9jYWxlJ1xuXG5pbnRlcmZhY2UgRXh0ZW5kZWRJbmZvIGV4dGVuZHMgTmV4dFBhdGhuYW1lSW5mbyB7XG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgaWdub3JlUHJlZml4PzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyhpbmZvOiBFeHRlbmRlZEluZm8pIHtcbiAgbGV0IHBhdGhuYW1lID0gYWRkTG9jYWxlKFxuICAgIGluZm8ucGF0aG5hbWUsXG4gICAgaW5mby5sb2NhbGUsXG4gICAgaW5mby5idWlsZElkID8gdW5kZWZpbmVkIDogaW5mby5kZWZhdWx0TG9jYWxlLFxuICAgIGluZm8uaWdub3JlUHJlZml4XG4gIClcblxuICBpZiAoaW5mby5idWlsZElkIHx8ICFpbmZvLnRyYWlsaW5nU2xhc2gpIHtcbiAgICBwYXRobmFtZSA9IHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpXG4gIH1cblxuICBpZiAoaW5mby5idWlsZElkKSB7XG4gICAgcGF0aG5hbWUgPSBhZGRQYXRoU3VmZml4KFxuICAgICAgYWRkUGF0aFByZWZpeChwYXRobmFtZSwgYC9fbmV4dC9kYXRhLyR7aW5mby5idWlsZElkfWApLFxuICAgICAgaW5mby5wYXRobmFtZSA9PT0gJy8nID8gJ2luZGV4Lmpzb24nIDogJy5qc29uJ1xuICAgIClcbiAgfVxuXG4gIHBhdGhuYW1lID0gYWRkUGF0aFByZWZpeChwYXRobmFtZSwgaW5mby5iYXNlUGF0aClcbiAgcmV0dXJuICFpbmZvLmJ1aWxkSWQgJiYgaW5mby50cmFpbGluZ1NsYXNoXG4gICAgPyAhcGF0aG5hbWUuZW5kc1dpdGgoJy8nKVxuICAgICAgPyBhZGRQYXRoU3VmZml4KHBhdGhuYW1lLCAnLycpXG4gICAgICA6IHBhdGhuYW1lXG4gICAgOiByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxufVxuIl0sIm5hbWVzIjpbImZvcm1hdE5leHRQYXRobmFtZUluZm8iLCJpbmZvIiwicGF0aG5hbWUiLCJhZGRMb2NhbGUiLCJsb2NhbGUiLCJidWlsZElkIiwidW5kZWZpbmVkIiwiZGVmYXVsdExvY2FsZSIsImlnbm9yZVByZWZpeCIsInRyYWlsaW5nU2xhc2giLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwiYWRkUGF0aFN1ZmZpeCIsImFkZFBhdGhQcmVmaXgiLCJiYXNlUGF0aCIsImVuZHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-url.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("// Format function modified from nodejs\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.\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 formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(pages-dir-node)/./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || '';\n let pathname = urlObj.pathname || '';\n let hash = urlObj.hash || '';\n let query = urlObj.query || '';\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n if (query && typeof query === 'object') {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || '';\n if (protocol && !protocol.endsWith(':')) protocol += ':';\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes'\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7QUFDdkMsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsZ0VBQWdFO0FBQ2hFLHNFQUFzRTtBQUN0RSxzRUFBc0U7QUFDdEUsNEVBQTRFO0FBQzVFLHFFQUFxRTtBQUNyRSx3QkFBd0I7QUFDeEIsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSw2REFBNkQ7QUFDN0QsNEVBQTRFO0FBQzVFLDJFQUEyRTtBQUMzRSx3RUFBd0U7QUFDeEUsNEVBQTRFO0FBQzVFLHlDQUF5Qzs7Ozs7Ozs7Ozs7OztJQVF6QkEsU0FBUztlQUFUQTs7SUE2REFDLG9CQUFvQjtlQUFwQkE7O0lBZkhDLGFBQWE7ZUFBYkE7Ozs7bUZBbERnQjtBQUU3QixNQUFNQyxtQkFBbUI7QUFFbEIsU0FBU0gsVUFBVUksTUFBaUI7SUFDekMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsRUFBRSxHQUFHRjtJQUN6QixJQUFJRyxXQUFXSCxPQUFPRyxRQUFRLElBQUk7SUFDbEMsSUFBSUMsV0FBV0osT0FBT0ksUUFBUSxJQUFJO0lBQ2xDLElBQUlDLE9BQU9MLE9BQU9LLElBQUksSUFBSTtJQUMxQixJQUFJQyxRQUFRTixPQUFPTSxLQUFLLElBQUk7SUFDNUIsSUFBSUMsT0FBdUI7SUFFM0JOLE9BQU9BLE9BQU9PLG1CQUFtQlAsTUFBTVEsT0FBTyxDQUFDLFFBQVEsT0FBTyxNQUFNO0lBRXBFLElBQUlULE9BQU9PLElBQUksRUFBRTtRQUNmQSxPQUFPTixPQUFPRCxPQUFPTyxJQUFJO0lBQzNCLE9BQU8sSUFBSUwsVUFBVTtRQUNuQkssT0FBT04sT0FBUSxFQUFDQyxTQUFTUSxPQUFPLENBQUMsT0FBUSxNQUFHUixXQUFTLE1BQUtBLFFBQUFBLENBQU87UUFDakUsSUFBSUYsT0FBT1csSUFBSSxFQUFFO1lBQ2ZKLFFBQVEsTUFBTVAsT0FBT1csSUFBSTtRQUMzQjtJQUNGO0lBRUEsSUFBSUwsU0FBUyxPQUFPQSxVQUFVLFVBQVU7UUFDdENBLFFBQVFNLE9BQU9DLGFBQVlDLHNCQUFzQixDQUFDUjtJQUNwRDtJQUVBLElBQUlTLFNBQVNmLE9BQU9lLE1BQU0sSUFBS1QsU0FBVSxNQUFHQSxTQUFZO0lBRXhELElBQUlILFlBQVksQ0FBQ0EsU0FBU2EsUUFBUSxDQUFDLE1BQU1iLFlBQVk7SUFFckQsSUFDRUgsT0FBT2lCLE9BQU8sSUFDWixFQUFDZCxZQUFZSixpQkFBaUJtQixJQUFJLENBQUNmLFNBQUFBLENBQVEsSUFBTUksU0FBUyxPQUM1RDtRQUNBQSxPQUFPLE9BQVFBLENBQUFBLFFBQVEsR0FBQztRQUN4QixJQUFJSCxZQUFZQSxRQUFRLENBQUMsRUFBRSxLQUFLLEtBQUtBLFdBQVcsTUFBTUE7SUFDeEQsT0FBTyxJQUFJLENBQUNHLE1BQU07UUFDaEJBLE9BQU87SUFDVDtJQUVBLElBQUlGLFFBQVFBLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBS0EsT0FBTyxNQUFNQTtJQUMxQyxJQUFJVSxVQUFVQSxNQUFNLENBQUMsRUFBRSxLQUFLLEtBQUtBLFNBQVMsTUFBTUE7SUFFaERYLFdBQVdBLFNBQVNLLE9BQU8sQ0FBQyxTQUFTRDtJQUNyQ08sU0FBU0EsT0FBT04sT0FBTyxDQUFDLEtBQUs7SUFFN0IsT0FBUSxLQUFFTixXQUFXSSxPQUFPSCxXQUFXVyxTQUFTVjtBQUNsRDtBQUVPLE1BQU1QLGdCQUFnQjtJQUMzQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVNLFNBQVNELHFCQUFxQnNCLEdBQWM7SUFDakQsSUFBSUMsSUFBb0IsRUFBb0I7UUFDMUMsSUFBSUQsUUFBUSxRQUFRLE9BQU9BLFFBQVEsVUFBVTtZQUMzQ0ksT0FBT0MsSUFBSSxDQUFDTCxLQUFLTSxPQUFPLENBQUMsQ0FBQ0M7Z0JBQ3hCLElBQUksQ0FBQzVCLGNBQWM2QixRQUFRLENBQUNELE1BQU07b0JBQ2hDRSxRQUFRQyxJQUFJLENBQ1QsdURBQW9ESDtnQkFFekQ7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFPOUIsVUFBVXVCO0FBQ25CIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRm9ybWF0IGZ1bmN0aW9uIG1vZGlmaWVkIGZyb20gbm9kZWpzXG4vLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHR5cGUgeyBVcmxPYmplY3QgfSBmcm9tICd1cmwnXG5pbXBvcnQgdHlwZSB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5pbXBvcnQgKiBhcyBxdWVyeXN0cmluZyBmcm9tICcuL3F1ZXJ5c3RyaW5nJ1xuXG5jb25zdCBzbGFzaGVkUHJvdG9jb2xzID0gL2h0dHBzP3xmdHB8Z29waGVyfGZpbGUvXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRVcmwodXJsT2JqOiBVcmxPYmplY3QpIHtcbiAgbGV0IHsgYXV0aCwgaG9zdG5hbWUgfSA9IHVybE9ialxuICBsZXQgcHJvdG9jb2wgPSB1cmxPYmoucHJvdG9jb2wgfHwgJydcbiAgbGV0IHBhdGhuYW1lID0gdXJsT2JqLnBhdGhuYW1lIHx8ICcnXG4gIGxldCBoYXNoID0gdXJsT2JqLmhhc2ggfHwgJydcbiAgbGV0IHF1ZXJ5ID0gdXJsT2JqLnF1ZXJ5IHx8ICcnXG4gIGxldCBob3N0OiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlXG5cbiAgYXV0aCA9IGF1dGggPyBlbmNvZGVVUklDb21wb25lbnQoYXV0aCkucmVwbGFjZSgvJTNBL2ksICc6JykgKyAnQCcgOiAnJ1xuXG4gIGlmICh1cmxPYmouaG9zdCkge1xuICAgIGhvc3QgPSBhdXRoICsgdXJsT2JqLmhvc3RcbiAgfSBlbHNlIGlmIChob3N0bmFtZSkge1xuICAgIGhvc3QgPSBhdXRoICsgKH5ob3N0bmFtZS5pbmRleE9mKCc6JykgPyBgWyR7aG9zdG5hbWV9XWAgOiBob3N0bmFtZSlcbiAgICBpZiAodXJsT2JqLnBvcnQpIHtcbiAgICAgIGhvc3QgKz0gJzonICsgdXJsT2JqLnBvcnRcbiAgICB9XG4gIH1cblxuICBpZiAocXVlcnkgJiYgdHlwZW9mIHF1ZXJ5ID09PSAnb2JqZWN0Jykge1xuICAgIHF1ZXJ5ID0gU3RyaW5nKHF1ZXJ5c3RyaW5nLnVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMocXVlcnkgYXMgUGFyc2VkVXJsUXVlcnkpKVxuICB9XG5cbiAgbGV0IHNlYXJjaCA9IHVybE9iai5zZWFyY2ggfHwgKHF1ZXJ5ICYmIGA/JHtxdWVyeX1gKSB8fCAnJ1xuXG4gIGlmIChwcm90b2NvbCAmJiAhcHJvdG9jb2wuZW5kc1dpdGgoJzonKSkgcHJvdG9jb2wgKz0gJzonXG5cbiAgaWYgKFxuICAgIHVybE9iai5zbGFzaGVzIHx8XG4gICAgKCghcHJvdG9jb2wgfHwgc2xhc2hlZFByb3RvY29scy50ZXN0KHByb3RvY29sKSkgJiYgaG9zdCAhPT0gZmFsc2UpXG4gICkge1xuICAgIGhvc3QgPSAnLy8nICsgKGhvc3QgfHwgJycpXG4gICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lWzBdICE9PSAnLycpIHBhdGhuYW1lID0gJy8nICsgcGF0aG5hbWVcbiAgfSBlbHNlIGlmICghaG9zdCkge1xuICAgIGhvc3QgPSAnJ1xuICB9XG5cbiAgaWYgKGhhc2ggJiYgaGFzaFswXSAhPT0gJyMnKSBoYXNoID0gJyMnICsgaGFzaFxuICBpZiAoc2VhcmNoICYmIHNlYXJjaFswXSAhPT0gJz8nKSBzZWFyY2ggPSAnPycgKyBzZWFyY2hcblxuICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoL1s/I10vZywgZW5jb2RlVVJJQ29tcG9uZW50KVxuICBzZWFyY2ggPSBzZWFyY2gucmVwbGFjZSgnIycsICclMjMnKVxuXG4gIHJldHVybiBgJHtwcm90b2NvbH0ke2hvc3R9JHtwYXRobmFtZX0ke3NlYXJjaH0ke2hhc2h9YFxufVxuXG5leHBvcnQgY29uc3QgdXJsT2JqZWN0S2V5cyA9IFtcbiAgJ2F1dGgnLFxuICAnaGFzaCcsXG4gICdob3N0JyxcbiAgJ2hvc3RuYW1lJyxcbiAgJ2hyZWYnLFxuICAncGF0aCcsXG4gICdwYXRobmFtZScsXG4gICdwb3J0JyxcbiAgJ3Byb3RvY29sJyxcbiAgJ3F1ZXJ5JyxcbiAgJ3NlYXJjaCcsXG4gICdzbGFzaGVzJyxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHVybDogVXJsT2JqZWN0KTogc3RyaW5nIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgaWYgKHVybCAhPT0gbnVsbCAmJiB0eXBlb2YgdXJsID09PSAnb2JqZWN0Jykge1xuICAgICAgT2JqZWN0LmtleXModXJsKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKCF1cmxPYmplY3RLZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgVW5rbm93biBrZXkgcGFzc2VkIHZpYSB1cmxPYmplY3QgaW50byB1cmwuZm9ybWF0OiAke2tleX1gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmb3JtYXRVcmwodXJsKVxufVxuIl0sIm5hbWVzIjpbImZvcm1hdFVybCIsImZvcm1hdFdpdGhWYWxpZGF0aW9uIiwidXJsT2JqZWN0S2V5cyIsInNsYXNoZWRQcm90b2NvbHMiLCJ1cmxPYmoiLCJhdXRoIiwiaG9zdG5hbWUiLCJwcm90b2NvbCIsInBhdGhuYW1lIiwiaGFzaCIsInF1ZXJ5IiwiaG9zdCIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlcGxhY2UiLCJpbmRleE9mIiwicG9ydCIsIlN0cmluZyIsInF1ZXJ5c3RyaW5nIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaCIsImVuZHNXaXRoIiwic2xhc2hlcyIsInRlc3QiLCJ1cmwiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIiwiY29uc29sZSIsIndhcm4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js ***!
|
||
\**********************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n}));\nconst _normalizelocalepath = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _removepathprefix = __webpack_require__(/*! ./remove-path-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\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, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.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, _normalizelocalepath.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, _normalizelocalepath.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mby5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQW9EZ0JBOzs7ZUFBQUE7OztpREFwRG9COzhDQUNIOzJDQUNIO0FBa0R2QixTQUFTQSxvQkFDZEMsUUFBZ0IsRUFDaEJDLE9BQWdCO1FBRTBCQTtJQUExQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxhQUFhLEVBQUUsR0FBR0gsQ0FBQUEsc0JBQUFBLFFBQVFJLFVBQUFBLEtBQVUsT0FBbEJKLHNCQUFzQixDQUFDO0lBQ2pFLE1BQU1LLE9BQXlCO1FBQzdCTjtRQUNBSSxlQUFlSixhQUFhLE1BQU1BLFNBQVNPLFFBQVEsQ0FBQyxPQUFPSDtJQUM3RDtJQUVBLElBQUlGLFlBQVlNLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNGLEtBQUtOLFFBQVEsRUFBRUUsV0FBVztRQUN0REksS0FBS04sUUFBUSxHQUFHUyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCSCxLQUFLTixRQUFRLEVBQUVFO1FBQ2hESSxLQUFLSixRQUFRLEdBQUdBO0lBQ2xCO0lBQ0EsSUFBSVEsdUJBQXVCSixLQUFLTixRQUFRO0lBRXhDLElBQ0VNLEtBQUtOLFFBQVEsQ0FBQ1csVUFBVSxDQUFDLG1CQUN6QkwsS0FBS04sUUFBUSxDQUFDTyxRQUFRLENBQUMsVUFDdkI7UUFDQSxNQUFNSyxRQUFRTixLQUFLTixRQUFRLENBQ3hCYSxPQUFPLENBQUMsb0JBQW9CLElBQzVCQSxPQUFPLENBQUMsV0FBVyxJQUNuQkMsS0FBSyxDQUFDO1FBRVQsTUFBTUMsVUFBVUgsS0FBSyxDQUFDLEVBQUU7UUFDeEJOLEtBQUtTLE9BQU8sR0FBR0E7UUFDZkwsdUJBQ0VFLEtBQUssQ0FBQyxFQUFFLEtBQUssVUFBVyxNQUFHQSxNQUFNSSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDLE9BQVM7UUFFMUQsc0RBQXNEO1FBQ3RELGtEQUFrRDtRQUNsRCxJQUFJaEIsUUFBUWlCLFNBQVMsS0FBSyxNQUFNO1lBQzlCWixLQUFLTixRQUFRLEdBQUdVO1FBQ2xCO0lBQ0Y7SUFFQSw0RUFBNEU7SUFDNUUseUJBQXlCO0lBQ3pCLElBQUlQLE1BQU07UUFDUixJQUFJZ0IsU0FBU2xCLFFBQVFtQixZQUFZLEdBQzdCbkIsUUFBUW1CLFlBQVksQ0FBQ0MsT0FBTyxDQUFDZixLQUFLTixRQUFRLElBQzFDc0IsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQmhCLEtBQUtOLFFBQVEsRUFBRUcsS0FBS29CLE9BQU87UUFFbkRqQixLQUFLa0IsTUFBTSxHQUFHTCxPQUFPTSxjQUFjO1lBQ25CTjtRQUFoQmIsS0FBS04sUUFBUSxHQUFHbUIsQ0FBQUEsbUJBQUFBLE9BQU9uQixRQUFBQSxLQUFRLE9BQWZtQixtQkFBbUJiLEtBQUtOLFFBQVE7UUFFaEQsSUFBSSxDQUFDbUIsT0FBT00sY0FBYyxJQUFJbkIsS0FBS1MsT0FBTyxFQUFFO1lBQzFDSSxTQUFTbEIsUUFBUW1CLFlBQVksR0FDekJuQixRQUFRbUIsWUFBWSxDQUFDQyxPQUFPLENBQUNYLHdCQUM3QlksQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQlosc0JBQXNCUCxLQUFLb0IsT0FBTztZQUUxRCxJQUFJSixPQUFPTSxjQUFjLEVBQUU7Z0JBQ3pCbkIsS0FBS2tCLE1BQU0sR0FBR0wsT0FBT00sY0FBYztZQUNyQztRQUNGO0lBQ0Y7SUFDQSxPQUFPbkI7QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtbmV4dC1wYXRobmFtZS1pbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZUxvY2FsZVBhdGggfSBmcm9tICcuLi8uLi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aCdcbmltcG9ydCB7IHJlbW92ZVBhdGhQcmVmaXggfSBmcm9tICcuL3JlbW92ZS1wYXRoLXByZWZpeCdcbmltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuL3BhdGgtaGFzLXByZWZpeCdcbmltcG9ydCB0eXBlIHsgSTE4TlByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2xpYi9pMThuLXByb3ZpZGVyJ1xuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRQYXRobmFtZUluZm8ge1xuICAvKipcbiAgICogVGhlIGJhc2UgcGF0aCBpbiBjYXNlIHRoZSBwYXRobmFtZSBpbmNsdWRlZCBpdC5cbiAgICovXG4gIGJhc2VQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgYnVpbGRJZCBmb3Igd2hlbiB0aGUgcGFyc2VkIFVSTCBpcyBhIGRhdGEgVVJMLiBQYXJzaW5nIGl0IGNhbiBiZVxuICAgKiBkaXNhYmxlZCB3aXRoIHRoZSBgcGFyc2VEYXRhYCBvcHRpb24uXG4gICAqL1xuICBidWlsZElkPzogc3RyaW5nXG4gIC8qKlxuICAgKiBJZiB0aGVyZSB3YXMgYSBsb2NhbGUgaW4gdGhlIHBhdGhuYW1lLCB0aGlzIHdpbGwgaG9sZCBpdHMgdmFsdWUuXG4gICAqL1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBwcm9jZXNzZWQgcGF0aG5hbWUgd2l0aG91dCBhIGJhc2UgcGF0aCwgbG9jYWxlLCBvciBkYXRhIFVSTCBlbGVtZW50c1xuICAgKiB3aGVuIHBhcnNpbmcgaXQgaXMgZW5hYmxlZC5cbiAgICovXG4gIHBhdGhuYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIEEgYm9vbGVhbiB0ZWxsaW5nIGlmIHRoZSBwYXRobmFtZSBoYWQgYSB0cmFpbGluZ1NsYXNoLiBUaGlzIGNhbiBiZSBvbmx5XG4gICAqIHRydWUgaWYgdHJhaWxpbmdTbGFzaCBpcyBlbmFibGVkLlxuICAgKi9cbiAgdHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cbn1cblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICAvKipcbiAgICogV2hlbiBwYXNzZWQgdG8gdHJ1ZSwgdGhpcyBmdW5jdGlvbiB3aWxsIGFsc28gcGFyc2UgTmV4dGpzIGRhdGEgVVJMcy5cbiAgICovXG4gIHBhcnNlRGF0YT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEEgcGFydGlhbCBvZiB0aGUgTmV4dC5qcyBjb25maWd1cmF0aW9uIHRvIHBhcnNlIHRoZSBVUkwuXG4gICAqL1xuICBuZXh0Q29uZmlnPzoge1xuICAgIGJhc2VQYXRoPzogc3RyaW5nXG4gICAgaTE4bj86IHsgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdIH0gfCBudWxsXG4gICAgdHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwcm92aWRlZCwgdGhpcyBub3JtYWxpemVyIHdpbGwgYmUgdXNlZCB0byBkZXRlY3QgdGhlIGxvY2FsZSBpbnN0ZWFkIG9mXG4gICAqIHRoZSBkZWZhdWx0IGxvY2FsZSBkZXRlY3Rpb24uXG4gICAqL1xuICBpMThuUHJvdmlkZXI/OiBJMThOUHJvdmlkZXJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5leHRQYXRobmFtZUluZm8oXG4gIHBhdGhuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IE9wdGlvbnNcbik6IE5leHRQYXRobmFtZUluZm8ge1xuICBjb25zdCB7IGJhc2VQYXRoLCBpMThuLCB0cmFpbGluZ1NsYXNoIH0gPSBvcHRpb25zLm5leHRDb25maWcgPz8ge31cbiAgY29uc3QgaW5mbzogTmV4dFBhdGhuYW1lSW5mbyA9IHtcbiAgICBwYXRobmFtZSxcbiAgICB0cmFpbGluZ1NsYXNoOiBwYXRobmFtZSAhPT0gJy8nID8gcGF0aG5hbWUuZW5kc1dpdGgoJy8nKSA6IHRyYWlsaW5nU2xhc2gsXG4gIH1cblxuICBpZiAoYmFzZVBhdGggJiYgcGF0aEhhc1ByZWZpeChpbmZvLnBhdGhuYW1lLCBiYXNlUGF0aCkpIHtcbiAgICBpbmZvLnBhdGhuYW1lID0gcmVtb3ZlUGF0aFByZWZpeChpbmZvLnBhdGhuYW1lLCBiYXNlUGF0aClcbiAgICBpbmZvLmJhc2VQYXRoID0gYmFzZVBhdGhcbiAgfVxuICBsZXQgcGF0aG5hbWVOb0RhdGFQcmVmaXggPSBpbmZvLnBhdGhuYW1lXG5cbiAgaWYgKFxuICAgIGluZm8ucGF0aG5hbWUuc3RhcnRzV2l0aCgnL19uZXh0L2RhdGEvJykgJiZcbiAgICBpbmZvLnBhdGhuYW1lLmVuZHNXaXRoKCcuanNvbicpXG4gICkge1xuICAgIGNvbnN0IHBhdGhzID0gaW5mby5wYXRobmFtZVxuICAgICAgLnJlcGxhY2UoL15cXC9fbmV4dFxcL2RhdGFcXC8vLCAnJylcbiAgICAgIC5yZXBsYWNlKC9cXC5qc29uJC8sICcnKVxuICAgICAgLnNwbGl0KCcvJylcblxuICAgIGNvbnN0IGJ1aWxkSWQgPSBwYXRoc1swXVxuICAgIGluZm8uYnVpbGRJZCA9IGJ1aWxkSWRcbiAgICBwYXRobmFtZU5vRGF0YVByZWZpeCA9XG4gICAgICBwYXRoc1sxXSAhPT0gJ2luZGV4JyA/IGAvJHtwYXRocy5zbGljZSgxKS5qb2luKCcvJyl9YCA6ICcvJ1xuXG4gICAgLy8gdXBkYXRlIHBhdGhuYW1lIHdpdGggbm9ybWFsaXplZCBpZiBlbmFibGVkIGFsdGhvdWdoXG4gICAgLy8gd2UgdXNlIG5vcm1hbGl6ZWQgdG8gcG9wdWxhdGUgbG9jYWxlIGluZm8gc3RpbGxcbiAgICBpZiAob3B0aW9ucy5wYXJzZURhdGEgPT09IHRydWUpIHtcbiAgICAgIGluZm8ucGF0aG5hbWUgPSBwYXRobmFtZU5vRGF0YVByZWZpeFxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHByb3ZpZGVkLCB1c2UgdGhlIGxvY2FsZSByb3V0ZSBub3JtYWxpemVyIHRvIGRldGVjdCB0aGUgbG9jYWxlIGluc3RlYWRcbiAgLy8gb2YgdGhlIGZ1bmN0aW9uIGJlbG93LlxuICBpZiAoaTE4bikge1xuICAgIGxldCByZXN1bHQgPSBvcHRpb25zLmkxOG5Qcm92aWRlclxuICAgICAgPyBvcHRpb25zLmkxOG5Qcm92aWRlci5hbmFseXplKGluZm8ucGF0aG5hbWUpXG4gICAgICA6IG5vcm1hbGl6ZUxvY2FsZVBhdGgoaW5mby5wYXRobmFtZSwgaTE4bi5sb2NhbGVzKVxuXG4gICAgaW5mby5sb2NhbGUgPSByZXN1bHQuZGV0ZWN0ZWRMb2NhbGVcbiAgICBpbmZvLnBhdGhuYW1lID0gcmVzdWx0LnBhdGhuYW1lID8/IGluZm8ucGF0aG5hbWVcblxuICAgIGlmICghcmVzdWx0LmRldGVjdGVkTG9jYWxlICYmIGluZm8uYnVpbGRJZCkge1xuICAgICAgcmVzdWx0ID0gb3B0aW9ucy5pMThuUHJvdmlkZXJcbiAgICAgICAgPyBvcHRpb25zLmkxOG5Qcm92aWRlci5hbmFseXplKHBhdGhuYW1lTm9EYXRhUHJlZml4KVxuICAgICAgICA6IG5vcm1hbGl6ZUxvY2FsZVBhdGgocGF0aG5hbWVOb0RhdGFQcmVmaXgsIGkxOG4ubG9jYWxlcylcblxuICAgICAgaWYgKHJlc3VsdC5kZXRlY3RlZExvY2FsZSkge1xuICAgICAgICBpbmZvLmxvY2FsZSA9IHJlc3VsdC5kZXRlY3RlZExvY2FsZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gaW5mb1xufVxuIl0sIm5hbWVzIjpbImdldE5leHRQYXRobmFtZUluZm8iLCJwYXRobmFtZSIsIm9wdGlvbnMiLCJiYXNlUGF0aCIsImkxOG4iLCJ0cmFpbGluZ1NsYXNoIiwibmV4dENvbmZpZyIsImluZm8iLCJlbmRzV2l0aCIsInBhdGhIYXNQcmVmaXgiLCJyZW1vdmVQYXRoUHJlZml4IiwicGF0aG5hbWVOb0RhdGFQcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aHMiLCJyZXBsYWNlIiwic3BsaXQiLCJidWlsZElkIiwic2xpY2UiLCJqb2luIiwicGFyc2VEYXRhIiwicmVzdWx0IiwiaTE4blByb3ZpZGVyIiwiYW5hbHl6ZSIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJsb2NhbGVzIiwibG9jYWxlIiwiZGV0ZWN0ZWRMb2NhbGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/html-bots.js ***!
|
||
\*********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n// Note: The pattern [\\w-]+-Google captures all Google crawlers with \"-Google\" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google)\n// as well as crawlers starting with \"Google-\" (e.g., Google-PageRenderer, Google-InspectionTool)\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTML_LIMITED_BOT_UA_RE\", ({\n enumerable: true,\n get: function() {\n return HTML_LIMITED_BOT_UA_RE;\n }\n}));\nconst HTML_LIMITED_BOT_UA_RE = /[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaHRtbC1ib3RzLmpzIiwibWFwcGluZ3MiOiJBQUFBLDZHQUE2RztBQUM3RyxzS0FBc0s7QUFDdEssa0pBQWtKO0FBQ2xKLGlHQUFpRzs7Ozs7MERBQ3BGQTs7O2VBQUFBOzs7QUFBTixNQUFNQSx5QkFDWCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9odG1sLWJvdHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyByZWdleCBjb250YWlucyB0aGUgYm90cyB0aGF0IHdlIG5lZWQgdG8gZG8gYSBibG9ja2luZyByZW5kZXIgZm9yIGFuZCBjYW4ndCBzYWZlbHkgc3RyZWFtIHRoZSByZXNwb25zZVxuLy8gZHVlIHRvIGhvdyB0aGV5IHBhcnNlIHRoZSBET00uIEZvciBleGFtcGxlLCB0aGV5IG1pZ2h0IGV4cGxpY2l0bHkgY2hlY2sgZm9yIG1ldGFkYXRhIGluIHRoZSBgaGVhZGAgdGFnLCBzbyB3ZSBjYW4ndCBzdHJlYW0gbWV0YWRhdGEgdGFncyBhZnRlciB0aGUgYGhlYWRgIHdhcyBzZW50LlxuLy8gTm90ZTogVGhlIHBhdHRlcm4gW1xcdy1dKy1Hb29nbGUgY2FwdHVyZXMgYWxsIEdvb2dsZSBjcmF3bGVycyB3aXRoIFwiLUdvb2dsZVwiIHN1ZmZpeCAoZS5nLiwgTWVkaWFwYXJ0bmVycy1Hb29nbGUsIEFkc0JvdC1Hb29nbGUsIFN0b3JlYm90LUdvb2dsZSlcbi8vIGFzIHdlbGwgYXMgY3Jhd2xlcnMgc3RhcnRpbmcgd2l0aCBcIkdvb2dsZS1cIiAoZS5nLiwgR29vZ2xlLVBhZ2VSZW5kZXJlciwgR29vZ2xlLUluc3BlY3Rpb25Ub29sKVxuZXhwb3J0IGNvbnN0IEhUTUxfTElNSVRFRF9CT1RfVUFfUkUgPVxuICAvW1xcdy1dKy1Hb29nbGV8R29vZ2xlLVtcXHctXSt8Q2hyb21lLUxpZ2h0aG91c2V8U2x1cnB8RHVja0R1Y2tCb3R8YmFpZHVzcGlkZXJ8eWFuZGV4fHNvZ291fGJpdGx5Ym90fHR1bWJscnx2a1NoYXJlfHF1b3JhIGxpbmsgcHJldmlld3xyZWRkaXRib3R8aWFfYXJjaGl2ZXJ8QmluZ2JvdHxCaW5nUHJldmlld3xhcHBsZWJvdHxmYWNlYm9va2V4dGVybmFsaGl0fGZhY2Vib29rY2F0YWxvZ3xUd2l0dGVyYm90fExpbmtlZEluQm90fFNsYWNrYm90fERpc2NvcmRib3R8V2hhdHNBcHB8U2t5cGVVcmlQcmV2aWV3fFlldGl8Z29vZ2xld2VibGlnaHQvaVxuIl0sIm5hbWVzIjpbIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/index.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 getSortedRouteObjects: function() {\n return _sortedroutes.getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return _sortedroutes.getSortedRoutes;\n },\n isDynamicRoute: function() {\n return _isdynamic.isDynamicRoute;\n }\n});\nconst _sortedroutes = __webpack_require__(/*! ./sorted-routes */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\");\nconst _isdynamic = __webpack_require__(/*! ./is-dynamic */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\"); //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQTBCQSxxQkFBcUI7ZUFBckJBLGNBQUFBLHFCQUFxQjs7SUFBdENDLGVBQWU7ZUFBZkEsY0FBQUEsZUFBZTs7SUFDZkMsY0FBYztlQUFkQSxXQUFBQSxjQUFjOzs7MENBRGdDO3VDQUN4QiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBnZXRTb3J0ZWRSb3V0ZXMsIGdldFNvcnRlZFJvdXRlT2JqZWN0cyB9IGZyb20gJy4vc29ydGVkLXJvdXRlcydcbmV4cG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi9pcy1keW5hbWljJ1xuIl0sIm5hbWVzIjpbImdldFNvcnRlZFJvdXRlT2JqZWN0cyIsImdldFNvcnRlZFJvdXRlcyIsImlzRHluYW1pY1JvdXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.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 INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\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 ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.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 Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJjZXB0aW9uLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFHYUEsMEJBQTBCO2VBQTFCQTs7SUFrQkdDLG1DQUFtQztlQUFuQ0E7O0lBWEFDLDBCQUEwQjtlQUExQkE7OztzQ0FWaUI7QUFHMUIsTUFBTUYsNkJBQTZCO0lBQ3hDO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRSwyQkFBMkJDLElBQVk7SUFDckQsd0NBQXdDO0lBQ3hDLE9BQ0VBLEtBQ0dDLEtBQUssQ0FBQyxLQUNOQyxJQUFJLENBQUMsQ0FBQ0MsVUFDTE4sMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRCxTQUN0REU7QUFFWjtBQUVPLFNBQVNSLG9DQUFvQ0UsSUFBWTtJQUM5RCxJQUFJTyxtQkFDRkMsUUFDQUM7SUFFRixLQUFLLE1BQU1OLFdBQVdILEtBQUtDLEtBQUssQ0FBQyxLQUFNO1FBQ3JDTyxTQUFTWCwyQkFBMkJLLElBQUksQ0FBQyxDQUFDRSxJQUFNRCxRQUFRRSxVQUFVLENBQUNEO1FBQ25FLElBQUlJLFFBQVE7O1lBQ1QsQ0FBQ0QsbUJBQW1CRSxpQkFBaUIsR0FBR1QsS0FBS0MsS0FBSyxDQUFDTyxRQUFRO1lBQzVEO1FBQ0Y7SUFDRjtJQUVBLElBQUksQ0FBQ0QscUJBQXFCLENBQUNDLFVBQVUsQ0FBQ0Msa0JBQWtCO1FBQ3RELE1BQU0scUJBRUwsQ0FGSyxJQUFJQyxNQUNQLGlDQUE4QlYsT0FBSyxzRkFEaEM7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUFPLG9CQUFvQkksQ0FBQUEsR0FBQUEsVUFBQUEsZ0JBQUFBLEVBQWlCSixtQkFBbUIsaURBQWlEOztJQUV6RyxPQUFRQztRQUNOLEtBQUs7WUFDSCxvSUFBb0k7WUFDcEksSUFBSUQsc0JBQXNCLEtBQUs7Z0JBQzdCRSxtQkFBb0IsTUFBR0E7WUFDekIsT0FBTztnQkFDTEEsbUJBQW1CRixvQkFBb0IsTUFBTUU7WUFDL0M7WUFDQTtRQUNGLEtBQUs7WUFDSCx1SEFBdUg7WUFDdkgsSUFBSUYsc0JBQXNCLEtBQUs7Z0JBQzdCLE1BQU0scUJBRUwsQ0FGSyxJQUFJRyxNQUNQLGlDQUE4QlYsT0FBSyxpRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUNBUyxtQkFBbUJGLGtCQUNoQk4sS0FBSyxDQUFDLEtBQ05XLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FDVkMsTUFBTSxDQUFDSixrQkFDUEssSUFBSSxDQUFDO1lBQ1I7UUFDRixLQUFLO1lBQ0gsa0lBQWtJO1lBQ2xJTCxtQkFBbUIsTUFBTUE7WUFDekI7UUFDRixLQUFLO1lBQ0gsaUlBQWlJO1lBRWpJLE1BQU1NLHlCQUF5QlIsa0JBQWtCTixLQUFLLENBQUM7WUFDdkQsSUFBSWMsdUJBQXVCQyxNQUFNLElBQUksR0FBRztnQkFDdEMsTUFBTSxxQkFFTCxDQUZLLElBQUlOLE1BQ1AsaUNBQThCVixPQUFLLG9FQURoQzsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGO1lBRUFTLG1CQUFtQk0sdUJBQ2hCSCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0Y7WUFDRSxNQUFNLHFCQUF5QyxDQUF6QyxJQUFJSixNQUFNLGlDQUFWO3VCQUFBOzRCQUFBOzhCQUFBO1lBQXdDO0lBQ2xEO0lBRUEsT0FBTztRQUFFSDtRQUFtQkU7SUFBaUI7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJjZXB0aW9uLXJvdXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVBcHBQYXRoIH0gZnJvbSAnLi9hcHAtcGF0aHMnXG5cbi8vIG9yZGVyIG1hdHRlcnMgaGVyZSwgdGhlIGZpcnN0IG1hdGNoIHdpbGwgYmUgdXNlZFxuZXhwb3J0IGNvbnN0IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTID0gW1xuICAnKC4uKSguLiknLFxuICAnKC4pJyxcbiAgJyguLiknLFxuICAnKC4uLiknLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgZnVuY3Rpb24gaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIC8vIFRPRE8tQVBQOiBhZGQgbW9yZSBzZXJpb3VzIHZhbGlkYXRpb25cbiAgcmV0dXJuIChcbiAgICBwYXRoXG4gICAgICAuc3BsaXQoJy8nKVxuICAgICAgLmZpbmQoKHNlZ21lbnQpID0+XG4gICAgICAgIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pID0+IHNlZ21lbnQuc3RhcnRzV2l0aChtKSlcbiAgICAgICkgIT09IHVuZGVmaW5lZFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbihwYXRoOiBzdHJpbmcpIHtcbiAgbGV0IGludGVyY2VwdGluZ1JvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgbWFya2VyOiAodHlwZW9mIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTKVtudW1iZXJdIHwgdW5kZWZpbmVkLFxuICAgIGludGVyY2VwdGVkUm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIGZvciAoY29uc3Qgc2VnbWVudCBvZiBwYXRoLnNwbGl0KCcvJykpIHtcbiAgICBtYXJrZXIgPSBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgobSkpXG4gICAgaWYgKG1hcmtlcikge1xuICAgICAgO1tpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZV0gPSBwYXRoLnNwbGl0KG1hcmtlciwgMilcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKCFpbnRlcmNlcHRpbmdSb3V0ZSB8fCAhbWFya2VyIHx8ICFpbnRlcmNlcHRlZFJvdXRlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgaW50ZXJjZXB0aW9uIHJvdXRlOiAke3BhdGh9LiBNdXN0IGJlIGluIHRoZSBmb3JtYXQgLzxpbnRlcmNlcHRpbmcgcm91dGU+LyguLnwuLi58Li4pKC4uKS88aW50ZXJjZXB0ZWQgcm91dGU+YFxuICAgIClcbiAgfVxuXG4gIGludGVyY2VwdGluZ1JvdXRlID0gbm9ybWFsaXplQXBwUGF0aChpbnRlcmNlcHRpbmdSb3V0ZSkgLy8gbm9ybWFsaXplIHRoZSBwYXRoLCBlLmcuIC8oYmxvZykvZmVlZCAtPiAvZmVlZFxuXG4gIHN3aXRjaCAobWFya2VyKSB7XG4gICAgY2FzZSAnKC4pJzpcbiAgICAgIC8vICguKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggd2l0aCBzaWJsaW5nIHJvdXRlcywgc28gd2UganVzdCBuZWVkIHRvIGFwcGVuZCB0aGUgaW50ZXJjZXB0ZWQgcm91dGUgdG8gdGhlIGludGVyY2VwdGluZyByb3V0ZVxuICAgICAgaWYgKGludGVyY2VwdGluZ1JvdXRlID09PSAnLycpIHtcbiAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGAvJHtpbnRlcmNlcHRlZFJvdXRlfWBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZSArICcvJyArIGludGVyY2VwdGVkUm91dGVcbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnKC4uKSc6XG4gICAgICAvLyAoLi4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCBhdCBvbmUgbGV2ZWwgdXAsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBsYXN0IHNlZ21lbnQgb2YgdGhlIGludGVyY2VwdGluZyByb3V0ZVxuICAgICAgaWYgKGludGVyY2VwdGluZ1JvdXRlID09PSAnLycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pIG1hcmtlciBhdCB0aGUgcm9vdCBsZXZlbCwgdXNlICguKSBpbnN0ZWFkLmBcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlXG4gICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgIC5zbGljZSgwLCAtMSlcbiAgICAgICAgLmNvbmNhdChpbnRlcmNlcHRlZFJvdXRlKVxuICAgICAgICAuam9pbignLycpXG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLi4pJzpcbiAgICAgIC8vICguLi4pIHdpbGwgbWF0Y2ggdGhlIHJvdXRlIHNlZ21lbnQgaW4gdGhlIHJvb3QgZGlyZWN0b3J5LCBzbyB3ZSBuZWVkIHRvIHVzZSB0aGUgcm9vdCBkaXJlY3RvcnkgdG8gcHJlcGVuZCB0aGUgaW50ZXJjZXB0ZWQgcm91dGVcbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSAnLycgKyBpbnRlcmNlcHRlZFJvdXRlXG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLikoLi4pJzpcbiAgICAgIC8vICguLikoLi4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCBhdCB0d28gbGV2ZWxzIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCB0d28gc2VnbWVudHMgb2YgdGhlIGludGVyY2VwdGluZyByb3V0ZVxuXG4gICAgICBjb25zdCBzcGxpdEludGVyY2VwdGluZ1JvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUuc3BsaXQoJy8nKVxuICAgICAgaWYgKHNwbGl0SW50ZXJjZXB0aW5nUm91dGUubGVuZ3RoIDw9IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwgb3Igb25lIGxldmVsIHVwLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZVxuICAgICAgICAuc2xpY2UoMCwgLTIpXG4gICAgICAgIC5jb25jYXQoaW50ZXJjZXB0ZWRSb3V0ZSlcbiAgICAgICAgLmpvaW4oJy8nKVxuICAgICAgYnJlYWtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhcmlhbnQ6IHVuZXhwZWN0ZWQgbWFya2VyJylcbiAgfVxuXG4gIHJldHVybiB7IGludGVyY2VwdGluZ1JvdXRlLCBpbnRlcmNlcHRlZFJvdXRlIH1cbn1cbiJdLCJuYW1lcyI6WyJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsImV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uIiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJwYXRoIiwic3BsaXQiLCJmaW5kIiwic2VnbWVudCIsIm0iLCJzdGFydHNXaXRoIiwidW5kZWZpbmVkIiwiaW50ZXJjZXB0aW5nUm91dGUiLCJtYXJrZXIiLCJpbnRlcmNlcHRlZFJvdXRlIiwiRXJyb3IiLCJub3JtYWxpemVBcHBQYXRoIiwic2xpY2UiLCJjb25jYXQiLCJqb2luIiwic3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSIsImxlbmd0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.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 HTML_LIMITED_BOT_UA_RE: function() {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE;\n },\n HTML_LIMITED_BOT_UA_RE_STRING: function() {\n return HTML_LIMITED_BOT_UA_RE_STRING;\n },\n getBotType: function() {\n return getBotType;\n },\n isBot: function() {\n return isBot;\n }\n});\nconst _htmlbots = __webpack_require__(/*! ./html-bots */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\");\n// Bot crawler that will spin up a headless browser and execute JS.\n// Only the main Googlebot search crawler executes JavaScript, not other Google crawlers.\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\n// This regex specifically matches \"Googlebot\" but NOT \"Mediapartners-Google\", \"AdsBot-Google\", etc.\nconst HEADLESS_BROWSER_BOT_UA_RE = /Googlebot(?!-)|Googlebot$/i;\nconst HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source;\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nfunction isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nfunction getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n} //# sourceMappingURL=is-bot.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtYm90LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVVTQSxzQkFBc0I7ZUFBdEJBLFVBQUFBLHNCQUFzQjs7SUFGbEJDLDZCQUE2QjtlQUE3QkE7O0lBZ0JHQyxVQUFVO2VBQVZBOztJQUpBQyxLQUFLO2VBQUxBOzs7c0NBcEJ1QjtBQUV2QyxtRUFBbUU7QUFDbkUseUZBQXlGO0FBQ3pGLDRGQUE0RjtBQUM1RixvR0FBb0c7QUFDcEcsTUFBTUMsNkJBQTZCO0FBRTVCLE1BQU1ILGdDQUFnQ0QsVUFBQUEsc0JBQXNCLENBQUNLLE1BQU07QUFJMUUsU0FBU0MsV0FBV0MsU0FBaUI7SUFDbkMsT0FBT0gsMkJBQTJCSSxJQUFJLENBQUNEO0FBQ3pDO0FBRUEsU0FBU0UsbUJBQW1CRixTQUFpQjtJQUMzQyxPQUFPUCxVQUFBQSxzQkFBc0IsQ0FBQ1EsSUFBSSxDQUFDRDtBQUNyQztBQUVPLFNBQVNKLE1BQU1JLFNBQWlCO0lBQ3JDLE9BQU9ELFdBQVdDLGNBQWNFLG1CQUFtQkY7QUFDckQ7QUFFTyxTQUFTTCxXQUFXSyxTQUFpQjtJQUMxQyxJQUFJRCxXQUFXQyxZQUFZO1FBQ3pCLE9BQU87SUFDVDtJQUNBLElBQUlFLG1CQUFtQkYsWUFBWTtRQUNqQyxPQUFPO0lBQ1Q7SUFDQSxPQUFPRztBQUNUIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH0gZnJvbSAnLi9odG1sLWJvdHMnXG5cbi8vIEJvdCBjcmF3bGVyIHRoYXQgd2lsbCBzcGluIHVwIGEgaGVhZGxlc3MgYnJvd3NlciBhbmQgZXhlY3V0ZSBKUy5cbi8vIE9ubHkgdGhlIG1haW4gR29vZ2xlYm90IHNlYXJjaCBjcmF3bGVyIGV4ZWN1dGVzIEphdmFTY3JpcHQsIG5vdCBvdGhlciBHb29nbGUgY3Jhd2xlcnMuXG4vLyB4LXJlZjogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vc2VhcmNoL2RvY3MvY3Jhd2xpbmctaW5kZXhpbmcvZ29vZ2xlLWNvbW1vbi1jcmF3bGVyc1xuLy8gVGhpcyByZWdleCBzcGVjaWZpY2FsbHkgbWF0Y2hlcyBcIkdvb2dsZWJvdFwiIGJ1dCBOT1QgXCJNZWRpYXBhcnRuZXJzLUdvb2dsZVwiLCBcIkFkc0JvdC1Hb29nbGVcIiwgZXRjLlxuY29uc3QgSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUgPSAvR29vZ2xlYm90KD8hLSl8R29vZ2xlYm90JC9pXG5cbmV4cG9ydCBjb25zdCBIVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORyA9IEhUTUxfTElNSVRFRF9CT1RfVUFfUkUuc291cmNlXG5cbmV4cG9ydCB7IEhUTUxfTElNSVRFRF9CT1RfVUFfUkUgfVxuXG5mdW5jdGlvbiBpc0RvbUJvdFVBKHVzZXJBZ2VudDogc3RyaW5nKSB7XG4gIHJldHVybiBIRUFETEVTU19CUk9XU0VSX0JPVF9VQV9SRS50ZXN0KHVzZXJBZ2VudClcbn1cblxuZnVuY3Rpb24gaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudDogc3RyaW5nKSB7XG4gIHJldHVybiBIVE1MX0xJTUlURURfQk9UX1VBX1JFLnRlc3QodXNlckFnZW50KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCb3QodXNlckFnZW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzRG9tQm90VUEodXNlckFnZW50KSB8fCBpc0h0bWxMaW1pdGVkQm90VUEodXNlckFnZW50KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm90VHlwZSh1c2VyQWdlbnQ6IHN0cmluZyk6ICdkb20nIHwgJ2h0bWwnIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGlzRG9tQm90VUEodXNlckFnZW50KSkge1xuICAgIHJldHVybiAnZG9tJ1xuICB9XG4gIGlmIChpc0h0bWxMaW1pdGVkQm90VUEodXNlckFnZW50KSkge1xuICAgIHJldHVybiAnaHRtbCdcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG4iXSwibmFtZXMiOlsiSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSIsIkhUTUxfTElNSVRFRF9CT1RfVUFfUkVfU1RSSU5HIiwiZ2V0Qm90VHlwZSIsImlzQm90IiwiSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUiLCJzb3VyY2UiLCJpc0RvbUJvdFVBIiwidXNlckFnZW50IiwidGVzdCIsImlzSHRtbExpbWl0ZWRCb3RVQSIsInVuZGVmaW5lZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicRoute\", ({\n enumerable: true,\n get: function() {\n return isDynamicRoute;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\n// Identify /.*[param].*/ in route string\nconst TEST_ROUTE = /\\/[^/]*\\[[^/]+\\][^/]*(?=\\/|$)/;\n// Identify /[param]/ in route string\nconst TEST_STRICT_ROUTE = /\\/\\[[^/]+\\](?=\\/|$)/;\nfunction isDynamicRoute(route, strict) {\n if (strict === void 0) strict = true;\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(route)) {\n route = (0, _interceptionroutes.extractInterceptionRouteInformation)(route).interceptedRoute;\n }\n if (strict) {\n return TEST_STRICT_ROUTE.test(route);\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcyIsIm1hcHBpbmdzIjoiOzs7O2tEQWtCZ0JBOzs7ZUFBQUE7OztnREFmVDtBQUVQLHlDQUF5QztBQUN6QyxNQUFNQyxhQUFhO0FBRW5CLHFDQUFxQztBQUNyQyxNQUFNQyxvQkFBb0I7QUFTbkIsU0FBU0YsZUFBZUcsS0FBYSxFQUFFQyxNQUFzQjtJQUF0QkEsSUFBQUEsV0FBQUEsS0FBQUEsR0FBQUEsU0FBa0I7SUFDOUQsSUFBSUMsQ0FBQUEsR0FBQUEsb0JBQUFBLDBCQUFBQSxFQUEyQkYsUUFBUTtRQUNyQ0EsUUFBUUcsQ0FBQUEsR0FBQUEsb0JBQUFBLG1DQUFBQSxFQUFvQ0gsT0FBT0ksZ0JBQWdCO0lBQ3JFO0lBRUEsSUFBSUgsUUFBUTtRQUNWLE9BQU9GLGtCQUFrQk0sSUFBSSxDQUFDTDtJQUNoQztJQUVBLE9BQU9GLFdBQVdPLElBQUksQ0FBQ0w7QUFDekIiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbixcbiAgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgsXG59IGZyb20gJy4vaW50ZXJjZXB0aW9uLXJvdXRlcydcblxuLy8gSWRlbnRpZnkgLy4qW3BhcmFtXS4qLyBpbiByb3V0ZSBzdHJpbmdcbmNvbnN0IFRFU1RfUk9VVEUgPSAvXFwvW14vXSpcXFtbXi9dK1xcXVteL10qKD89XFwvfCQpL1xuXG4vLyBJZGVudGlmeSAvW3BhcmFtXS8gaW4gcm91dGUgc3RyaW5nXG5jb25zdCBURVNUX1NUUklDVF9ST1VURSA9IC9cXC9cXFtbXi9dK1xcXSg/PVxcL3wkKS9cblxuLyoqXG4gKiBDaGVjayBpZiBhIHJvdXRlIGlzIGR5bmFtaWMuXG4gKlxuICogQHBhcmFtIHJvdXRlIC0gVGhlIHJvdXRlIHRvIGNoZWNrLlxuICogQHBhcmFtIHN0cmljdCAtIFdoZXRoZXIgdG8gdXNlIHN0cmljdCBtb2RlIHdoaWNoIHByb2hpYml0cyBzZWdtZW50cyB3aXRoIHByZWZpeGVzL3N1ZmZpeGVzIChkZWZhdWx0OiB0cnVlKS5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJvdXRlIGlzIGR5bmFtaWMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNSb3V0ZShyb3V0ZTogc3RyaW5nLCBzdHJpY3Q6IGJvb2xlYW4gPSB0cnVlKTogYm9vbGVhbiB7XG4gIGlmIChpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aChyb3V0ZSkpIHtcbiAgICByb3V0ZSA9IGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uKHJvdXRlKS5pbnRlcmNlcHRlZFJvdXRlXG4gIH1cblxuICBpZiAoc3RyaWN0KSB7XG4gICAgcmV0dXJuIFRFU1RfU1RSSUNUX1JPVVRFLnRlc3Qocm91dGUpXG4gIH1cblxuICByZXR1cm4gVEVTVF9ST1VURS50ZXN0KHJvdXRlKVxufVxuIl0sIm5hbWVzIjpbImlzRHluYW1pY1JvdXRlIiwiVEVTVF9ST1VURSIsIlRFU1RfU1RSSUNUX1JPVVRFIiwicm91dGUiLCJzdHJpY3QiLCJpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCIsImV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsInRlc3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7OztDQUlDOzs7OzZDQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxVQUFVQyxJQUFZO0lBQ3BDLE1BQU1DLFlBQVlELEtBQUtFLE9BQU8sQ0FBQztJQUMvQixNQUFNQyxhQUFhSCxLQUFLRSxPQUFPLENBQUM7SUFDaEMsTUFBTUUsV0FBV0QsYUFBYSxDQUFDLEtBQU1GLENBQUFBLFlBQVksS0FBS0UsYUFBYUYsU0FBQUEsQ0FBUTtJQUUzRSxJQUFJRyxZQUFZSCxZQUFZLENBQUMsR0FBRztRQUM5QixPQUFPO1lBQ0xJLFVBQVVMLEtBQUtNLFNBQVMsQ0FBQyxHQUFHRixXQUFXRCxhQUFhRjtZQUNwRE0sT0FBT0gsV0FDSEosS0FBS00sU0FBUyxDQUFDSCxZQUFZRixZQUFZLENBQUMsSUFBSUEsWUFBWU8sYUFDeEQ7WUFDSkMsTUFBTVIsWUFBWSxDQUFDLElBQUlELEtBQUtVLEtBQUssQ0FBQ1QsYUFBYTtRQUNqRDtJQUNGO0lBRUEsT0FBTztRQUFFSSxVQUFVTDtRQUFNTyxPQUFPO1FBQUlFLE1BQU07SUFBRztBQUMvQyIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2l2ZW4gYSBwYXRoIHRoaXMgZnVuY3Rpb24gd2lsbCBmaW5kIHRoZSBwYXRobmFtZSwgcXVlcnkgYW5kIGhhc2ggYW5kIHJldHVyblxuICogdGhlbS4gVGhpcyBpcyB1c2VmdWwgdG8gcGFyc2UgZnVsbCBwYXRocyBvbiB0aGUgY2xpZW50IHNpZGUuXG4gKiBAcGFyYW0gcGF0aCBBIHBhdGggdG8gcGFyc2UgZS5nLiAvZm9vL2Jhcj9pZD0xI2hhc2hcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgaGFzaEluZGV4ID0gcGF0aC5pbmRleE9mKCcjJylcbiAgY29uc3QgcXVlcnlJbmRleCA9IHBhdGguaW5kZXhPZignPycpXG4gIGNvbnN0IGhhc1F1ZXJ5ID0gcXVlcnlJbmRleCA+IC0xICYmIChoYXNoSW5kZXggPCAwIHx8IHF1ZXJ5SW5kZXggPCBoYXNoSW5kZXgpXG5cbiAgaWYgKGhhc1F1ZXJ5IHx8IGhhc2hJbmRleCA+IC0xKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGhuYW1lOiBwYXRoLnN1YnN0cmluZygwLCBoYXNRdWVyeSA/IHF1ZXJ5SW5kZXggOiBoYXNoSW5kZXgpLFxuICAgICAgcXVlcnk6IGhhc1F1ZXJ5XG4gICAgICAgID8gcGF0aC5zdWJzdHJpbmcocXVlcnlJbmRleCwgaGFzaEluZGV4ID4gLTEgPyBoYXNoSW5kZXggOiB1bmRlZmluZWQpXG4gICAgICAgIDogJycsXG4gICAgICBoYXNoOiBoYXNoSW5kZXggPiAtMSA/IHBhdGguc2xpY2UoaGFzaEluZGV4KSA6ICcnLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHBhdGhuYW1lOiBwYXRoLCBxdWVyeTogJycsIGhhc2g6ICcnIH1cbn1cbiJdLCJuYW1lcyI6WyJwYXJzZVBhdGgiLCJwYXRoIiwiaGFzaEluZGV4IiwiaW5kZXhPZiIsInF1ZXJ5SW5kZXgiLCJoYXNRdWVyeSIsInBhdGhuYW1lIiwic3Vic3RyaW5nIiwicXVlcnkiLCJ1bmRlZmluZWQiLCJoYXNoIiwic2xpY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBU2dCQTs7O2VBQUFBOzs7dUNBVFU7QUFTbkIsU0FBU0EsY0FBY0MsSUFBWSxFQUFFQyxNQUFjO0lBQ3hELElBQUksT0FBT0QsU0FBUyxVQUFVO1FBQzVCLE9BQU87SUFDVDtJQUVBLE1BQU0sRUFBRUUsUUFBUSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVIO0lBQy9CLE9BQU9FLGFBQWFELFVBQVVDLFNBQVNFLFVBQVUsQ0FBQ0gsU0FBUztBQUM3RCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXRoLWhhcy1wcmVmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIHBhdGggc3RhcnRzIHdpdGggYSBnaXZlbiBwcmVmaXguIEl0IGVuc3VyZXMgaXQgbWF0Y2hlc1xuICogZXhhY3RseSB3aXRob3V0IGNvbnRhaW5pbmcgZXh0cmEgY2hhcnMuIGUuZy4gcHJlZml4IC9kb2NzIHNob3VsZCByZXBsYWNlXG4gKiBmb3IgL2RvY3MsIC9kb2NzLywgL2RvY3MvYSBidXQgbm90IC9kb2Nzc3NcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIGNoZWNrLlxuICogQHBhcmFtIHByZWZpeCBUaGUgcHJlZml4IHRvIGNoZWNrIGFnYWluc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRoSGFzUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4OiBzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3QgeyBwYXRobmFtZSB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBwYXRobmFtZSA9PT0gcHJlZml4IHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgocHJlZml4ICsgJy8nKVxufVxuIl0sIm5hbWVzIjpbInBhdGhIYXNQcmVmaXgiLCJwYXRoIiwicHJlZml4IiwicGF0aG5hbWUiLCJwYXJzZVBhdGgiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/querystring.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***!
|
||
\***********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n for (const [key, value] of searchParams.entries()){\n const existing = query[key];\n if (typeof existing === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n query[key] = [\n existing,\n value\n ];\n }\n }\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string') {\n return param;\n }\n if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)){\n if (Array.isArray(value)) {\n for (const item of value){\n searchParams.append(key, stringifyUrlQueryParam(item));\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value));\n }\n }\n return searchParams;\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 for (const searchParams of searchParamsList){\n for (const key of searchParams.keys()){\n target.delete(key);\n }\n for (const [key, value] of searchParams.entries()){\n target.append(key, value);\n }\n }\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBZ0RnQkEsTUFBTTtlQUFOQTs7SUE5Q0FDLHNCQUFzQjtlQUF0QkE7O0lBZ0NBQyxzQkFBc0I7ZUFBdEJBOzs7QUFoQ1QsU0FBU0QsdUJBQ2RFLFlBQTZCO0lBRTdCLE1BQU1DLFFBQXdCLENBQUM7SUFDL0IsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUgsYUFBYUksT0FBTyxHQUFJO1FBQ2pELE1BQU1DLFdBQVdKLEtBQUssQ0FBQ0MsSUFBSTtRQUMzQixJQUFJLE9BQU9HLGFBQWEsYUFBYTtZQUNuQ0osS0FBSyxDQUFDQyxJQUFJLEdBQUdDO1FBQ2YsT0FBTyxJQUFJRyxNQUFNQyxPQUFPLENBQUNGLFdBQVc7WUFDbENBLFNBQVNHLElBQUksQ0FBQ0w7UUFDaEIsT0FBTztZQUNMRixLQUFLLENBQUNDLElBQUksR0FBRztnQkFBQ0c7Z0JBQVVGO2FBQU07UUFDaEM7SUFDRjtJQUNBLE9BQU9GO0FBQ1Q7QUFFQSxTQUFTUSx1QkFBdUJDLEtBQWM7SUFDNUMsSUFBSSxPQUFPQSxVQUFVLFVBQVU7UUFDN0IsT0FBT0E7SUFDVDtJQUVBLElBQ0csT0FBT0EsVUFBVSxZQUFZLENBQUNDLE1BQU1ELFVBQ3JDLE9BQU9BLFVBQVUsV0FDakI7UUFDQSxPQUFPRSxPQUFPRjtJQUNoQixPQUFPO1FBQ0wsT0FBTztJQUNUO0FBQ0Y7QUFFTyxTQUFTWCx1QkFBdUJFLEtBQXFCO0lBQzFELE1BQU1ELGVBQWUsSUFBSWE7SUFDekIsS0FBSyxNQUFNLENBQUNYLEtBQUtDLE1BQU0sSUFBSVcsT0FBT1YsT0FBTyxDQUFDSCxPQUFRO1FBQ2hELElBQUlLLE1BQU1DLE9BQU8sQ0FBQ0osUUFBUTtZQUN4QixLQUFLLE1BQU1ZLFFBQVFaLE1BQU87Z0JBQ3hCSCxhQUFhZ0IsTUFBTSxDQUFDZCxLQUFLTyx1QkFBdUJNO1lBQ2xEO1FBQ0YsT0FBTztZQUNMZixhQUFhaUIsR0FBRyxDQUFDZixLQUFLTyx1QkFBdUJOO1FBQy9DO0lBQ0Y7SUFDQSxPQUFPSDtBQUNUO0FBRU8sU0FBU0gsT0FDZHFCLE1BQXVCO0lBQ3ZCLGlDQUFHQyxtQkFBSDtRQUFHQSxnQkFBQUEsQ0FBSCwyQkFBc0M7O0lBRXRDLEtBQUssTUFBTW5CLGdCQUFnQm1CLGlCQUFrQjtRQUMzQyxLQUFLLE1BQU1qQixPQUFPRixhQUFhb0IsSUFBSSxHQUFJO1lBQ3JDRixPQUFPRyxNQUFNLENBQUNuQjtRQUNoQjtRQUVBLEtBQUssTUFBTSxDQUFDQSxLQUFLQyxNQUFNLElBQUlILGFBQWFJLE9BQU8sR0FBSTtZQUNqRGMsT0FBT0YsTUFBTSxDQUFDZCxLQUFLQztRQUNyQjtJQUNGO0lBRUEsT0FBT2U7QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9xdWVyeXN0cmluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KFxuICBzZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtc1xuKTogUGFyc2VkVXJsUXVlcnkge1xuICBjb25zdCBxdWVyeTogUGFyc2VkVXJsUXVlcnkgPSB7fVxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzZWFyY2hQYXJhbXMuZW50cmllcygpKSB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBxdWVyeVtrZXldXG4gICAgaWYgKHR5cGVvZiBleGlzdGluZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHF1ZXJ5W2tleV0gPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZykpIHtcbiAgICAgIGV4aXN0aW5nLnB1c2godmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHF1ZXJ5W2tleV0gPSBbZXhpc3RpbmcsIHZhbHVlXVxuICAgIH1cbiAgfVxuICByZXR1cm4gcXVlcnlcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5VXJsUXVlcnlQYXJhbShwYXJhbTogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhcmFtXG4gIH1cblxuICBpZiAoXG4gICAgKHR5cGVvZiBwYXJhbSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHBhcmFtKSkgfHxcbiAgICB0eXBlb2YgcGFyYW0gPT09ICdib29sZWFuJ1xuICApIHtcbiAgICByZXR1cm4gU3RyaW5nKHBhcmFtKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiAnJ1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeSk6IFVSTFNlYXJjaFBhcmFtcyB7XG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhxdWVyeSkpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xuICAgICAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgc3RyaW5naWZ5VXJsUXVlcnlQYXJhbShpdGVtKSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2VhcmNoUGFyYW1zLnNldChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0odmFsdWUpKVxuICAgIH1cbiAgfVxuICByZXR1cm4gc2VhcmNoUGFyYW1zXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NpZ24oXG4gIHRhcmdldDogVVJMU2VhcmNoUGFyYW1zLFxuICAuLi5zZWFyY2hQYXJhbXNMaXN0OiBVUkxTZWFyY2hQYXJhbXNbXVxuKTogVVJMU2VhcmNoUGFyYW1zIHtcbiAgZm9yIChjb25zdCBzZWFyY2hQYXJhbXMgb2Ygc2VhcmNoUGFyYW1zTGlzdCkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHNlYXJjaFBhcmFtcy5rZXlzKCkpIHtcbiAgICAgIHRhcmdldC5kZWxldGUoa2V5KVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHNlYXJjaFBhcmFtcy5lbnRyaWVzKCkpIHtcbiAgICAgIHRhcmdldC5hcHBlbmQoa2V5LCB2YWx1ZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0XG59XG4iXSwibmFtZXMiOlsiYXNzaWduIiwic2VhcmNoUGFyYW1zVG9VcmxRdWVyeSIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJxdWVyeSIsImtleSIsInZhbHVlIiwiZW50cmllcyIsImV4aXN0aW5nIiwiQXJyYXkiLCJpc0FycmF5IiwicHVzaCIsInN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0iLCJwYXJhbSIsImlzTmFOIiwiU3RyaW5nIiwiVVJMU2VhcmNoUGFyYW1zIiwiT2JqZWN0IiwiaXRlbSIsImFwcGVuZCIsInNldCIsInRhcmdldCIsInNlYXJjaFBhcmFtc0xpc3QiLCJrZXlzIiwiZGVsZXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js ***!
|
||
\******************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removePathPrefix\", ({\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction 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, _pathhasprefix.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LmpzIiwibWFwcGluZ3MiOiI7Ozs7b0RBVWdCQTs7O2VBQUFBOzs7MkNBVmM7QUFVdkIsU0FBU0EsaUJBQWlCQyxJQUFZLEVBQUVDLE1BQWM7SUFDM0QseUVBQXlFO0lBQ3pFLDBFQUEwRTtJQUMxRSxrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLG9CQUFvQjtJQUNwQixFQUFFO0lBQ0Ysa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4Qix5QkFBeUI7SUFDekIsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixNQUFNQyxTQUFTO1FBQ2hDLE9BQU9EO0lBQ1Q7SUFFQSwrQ0FBK0M7SUFDL0MsTUFBTUcsZ0JBQWdCSCxLQUFLSSxLQUFLLENBQUNILE9BQU9JLE1BQU07SUFFOUMsMkVBQTJFO0lBQzNFLElBQUlGLGNBQWNHLFVBQVUsQ0FBQyxNQUFNO1FBQ2pDLE9BQU9IO0lBQ1Q7SUFFQSw0RUFBNEU7SUFDNUUsbURBQW1EO0lBQ25ELE9BQVEsTUFBR0E7QUFDYiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtcGF0aC1wcmVmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4vcGF0aC1oYXMtcHJlZml4J1xuXG4vKipcbiAqIEdpdmVuIGEgcGF0aCBhbmQgYSBwcmVmaXggaXQgd2lsbCByZW1vdmUgdGhlIHByZWZpeCB3aGVuIGl0IGV4aXN0cyBpbiB0aGVcbiAqIGdpdmVuIHBhdGguIEl0IGVuc3VyZXMgaXQgbWF0Y2hlcyBleGFjdGx5IHdpdGhvdXQgY29udGFpbmluZyBleHRyYSBjaGFyc1xuICogYW5kIGlmIHRoZSBwcmVmaXggaXMgbm90IHRoZXJlIGl0IHdpbGwgYmUgbm9vcC5cbiAqXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byByZW1vdmUgdGhlIHByZWZpeCBmcm9tLlxuICogQHBhcmFtIHByZWZpeCBUaGUgcHJlZml4IHRvIGJlIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQYXRoUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBJZiB0aGUgcGF0aCBkb2Vzbid0IHN0YXJ0IHdpdGggdGhlIHByZWZpeCB3ZSBjYW4gcmV0dXJuIGl0IGFzIGlzLiBUaGlzXG4gIC8vIHByb3RlY3RzIHVzIGZyb20gc2l0dWF0aW9ucyB3aGVyZSB0aGUgcHJlZml4IGlzIGEgc3Vic3RyaW5nIG9mIHRoZSBwYXRoXG4gIC8vIHByZWZpeCBzdWNoIGFzOlxuICAvL1xuICAvLyBGb3IgcHJlZml4OiAvYmxvZ1xuICAvL1xuICAvLyAgIC9ibG9nIC0+IHRydWVcbiAgLy8gICAvYmxvZy8gLT4gdHJ1ZVxuICAvLyAgIC9ibG9nLzEgLT4gdHJ1ZVxuICAvLyAgIC9ibG9nZ2luZyAtPiBmYWxzZVxuICAvLyAgIC9ibG9nZ2luZy8gLT4gZmFsc2VcbiAgLy8gICAvYmxvZ2dpbmcvMSAtPiBmYWxzZVxuICBpZiAoIXBhdGhIYXNQcmVmaXgocGF0aCwgcHJlZml4KSkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIHByZWZpeCBmcm9tIHRoZSBwYXRoIHZpYSBzbGljaW5nLlxuICBjb25zdCB3aXRob3V0UHJlZml4ID0gcGF0aC5zbGljZShwcmVmaXgubGVuZ3RoKVxuXG4gIC8vIElmIHRoZSBwYXRoIHdpdGhvdXQgdGhlIHByZWZpeCBzdGFydHMgd2l0aCBhIGAvYCB3ZSBjYW4gcmV0dXJuIGl0IGFzIGlzLlxuICBpZiAod2l0aG91dFByZWZpeC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gd2l0aG91dFByZWZpeFxuICB9XG5cbiAgLy8gSWYgdGhlIHBhdGggd2l0aG91dCB0aGUgcHJlZml4IGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIGAvYCB3ZSBuZWVkIHRvIGFkZCBpdFxuICAvLyBiYWNrIHRvIHRoZSBwYXRoIHRvIG1ha2Ugc3VyZSBpdCdzIGEgdmFsaWQgcGF0aC5cbiAgcmV0dXJuIGAvJHt3aXRob3V0UHJlZml4fWBcbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVQYXRoUHJlZml4IiwicGF0aCIsInByZWZpeCIsInBhdGhIYXNQcmVmaXgiLCJ3aXRob3V0UHJlZml4Iiwic2xpY2UiLCJsZW5ndGgiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***!
|
||
\*********************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Q0FNQzs7Ozt1REFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0Esb0JBQW9CQyxLQUFhO0lBQy9DLE9BQU9BLE1BQU1DLE9BQU8sQ0FBQyxPQUFPLE9BQU87QUFDckMiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVtb3ZlcyB0aGUgdHJhaWxpbmcgc2xhc2ggZm9yIGEgZ2l2ZW4gcm91dGUgb3IgcGFnZSBwYXRoLiBQcmVzZXJ2ZXMgdGhlXG4gKiByb290IHBhZ2UuIEV4YW1wbGVzOlxuICogICAtIGAvZm9vL2Jhci9gIC0+IGAvZm9vL2JhcmBcbiAqICAgLSBgL2Zvby9iYXJgIC0+IGAvZm9vL2JhcmBcbiAqICAgLSBgL2AgLT4gYC9gXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUcmFpbGluZ1NsYXNoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHJvdXRlLnJlcGxhY2UoL1xcLyQvLCAnJykgfHwgJy8nXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlVHJhaWxpbmdTbGFzaCIsInJvdXRlIiwicmVwbGFjZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js ***!
|
||
\*************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 getSortedRouteObjects: function() {\n return getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return getSortedRoutes;\n }\n});\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 Object.defineProperty(new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E458\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error(\"Catch-all must be the last part of the URL.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E392\",\n enumerable: false,\n configurable: true\n });\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 throw Object.defineProperty(new Error(\"Detected a three-dot character ('…') at ('\" + segmentName + \"'). Did you mean ('...')?\"), \"__NEXT_ERROR_CODE\", {\n value: \"E147\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E421\",\n enumerable: false,\n configurable: true\n });\n }\n if (segmentName.startsWith('.')) {\n throw Object.defineProperty(new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E288\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\"), \"__NEXT_ERROR_CODE\", {\n value: \"E337\",\n enumerable: false,\n configurable: true\n });\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw Object.defineProperty(new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path'), \"__NEXT_ERROR_CODE\", {\n value: \"E247\",\n enumerable: false,\n configurable: true\n });\n }\n if (slug.replace(/\\W/g, '') === nextSegment.replace(/\\W/g, '')) {\n throw Object.defineProperty(new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path'), \"__NEXT_ERROR_CODE\", {\n value: \"E499\",\n enumerable: false,\n configurable: true\n });\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw Object.defineProperty(new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).'), \"__NEXT_ERROR_CODE\", {\n value: \"E299\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E300\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").'), \"__NEXT_ERROR_CODE\", {\n value: \"E435\",\n enumerable: false,\n configurable: true\n });\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}\nfunction getSortedRouteObjects(objects, getter) {\n // We're assuming here that all the pathnames are unique, that way we can\n // sort the list and use the index as the key.\n const indexes = {};\n const pathnames = [];\n for(let i = 0; i < objects.length; i++){\n const pathname = getter(objects[i]);\n indexes[pathname] = i;\n pathnames[i] = pathname;\n }\n // Sort the pathnames.\n const sorted = getSortedRoutes(pathnames);\n // Map the sorted pathnames back to the original objects using the new sorted\n // index.\n return sorted.map((pathname)=>objects[indexes[pathname]]);\n} //# sourceMappingURL=sorted-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvc29ydGVkLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUF1T2dCQSxxQkFBcUI7ZUFBckJBOztJQXpCQUMsZUFBZTtlQUFmQTs7O0FBOU1oQixNQUFNQztJQU9KQyxPQUFPQyxPQUFlLEVBQVE7UUFDNUIsSUFBSSxDQUFDQyxPQUFPLENBQUNELFFBQVFFLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUNDLFVBQVUsRUFBRSxFQUFFO0lBQ3ZEO0lBRUFDLFNBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDQyxPQUFPO0lBQ3JCO0lBRVFBLFFBQVFDLE1BQW9CLEVBQVk7UUFBaENBLElBQUFBLFdBQUFBLEtBQUFBLEdBQUFBLFNBQWlCO1FBQy9CLE1BQU1DLGdCQUFnQjtlQUFJLElBQUksQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJO1NBQUcsQ0FBQ0MsSUFBSTtRQUNwRCxJQUFJLElBQUksQ0FBQ0MsUUFBUSxLQUFLLE1BQU07WUFDMUJKLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLE9BQU87UUFDcEQ7UUFDQSxJQUFJLElBQUksQ0FBQ0MsWUFBWSxLQUFLLE1BQU07WUFDOUJQLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFVBQVU7UUFDdkQ7UUFDQSxJQUFJLElBQUksQ0FBQ0Usb0JBQW9CLEtBQUssTUFBTTtZQUN0Q1IsY0FBY0ssTUFBTSxDQUFDTCxjQUFjTSxPQUFPLENBQUMsWUFBWTtRQUN6RDtRQUVBLE1BQU1HLFNBQVNULGNBQ1pVLEdBQUcsQ0FBQyxDQUFDQyxJQUFNLElBQUksQ0FBQ1YsUUFBUSxDQUFDVyxHQUFHLENBQUNELEdBQUliLE9BQU8sQ0FBRSxLQUFFQyxTQUFTWSxJQUFFLE1BQ3ZERSxNQUFNLENBQUMsQ0FBQ0MsTUFBTUMsT0FBUzttQkFBSUQ7bUJBQVNDO2FBQUssRUFBRSxFQUFFO1FB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Q0FBb0M7SUFDcEMsOEVBQThFO0lBQzlFLHdFQUF3RTtJQUN4RSxnSEFBZ0g7SUFDaEgsNEVBQTRFO0lBQzVFLE1BQU1DLE9BQU8sSUFBSXBEO0lBRWpCLDZGQUE2RjtJQUM3Rm1ELGdCQUFnQk4sT0FBTyxDQUFDLENBQUNRLFdBQWFELEtBQUtuRCxNQUFNLENBQUNvRDtJQUNsRCw0R0FBNEc7SUFDNUcsT0FBT0QsS0FBSzdDLE1BQU07QUFDcEI7QUFLTyxTQUFTVCxzQkFDZHdELE9BQVksRUFDWkMsTUFBMEI7SUFFMUIseUVBQXlFO0lBQ3pFLDhDQUE4QztJQUM5QyxNQUFNQyxVQUFrQyxDQUFDO0lBQ3pDLE1BQU1DLFlBQXNCLEVBQUU7SUFDOUIsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlKLFFBQVFuQixNQUFNLEVBQUV1QixJQUFLO1FBQ3ZDLE1BQU1DLFdBQVdKLE9BQU9ELE9BQU8sQ0FBQ0ksRUFBRTtRQUNsQ0YsT0FBTyxDQUFDRyxTQUFTLEdBQUdEO1FBQ3BCRCxTQUFTLENBQUNDLEVBQUUsR0FBR0M7SUFDakI7SUFFQSxzQkFBc0I7SUFDdEIsTUFBTUMsU0FBUzdELGdCQUFnQjBEO0lBRS9CLDZFQUE2RTtJQUM3RSxTQUFTO0lBQ1QsT0FBT0csT0FBT3hDLEdBQUcsQ0FBQyxDQUFDdUMsV0FBYUwsT0FBTyxDQUFDRSxPQUFPLENBQUNHLFNBQVMsQ0FBQztBQUM1RCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9zb3J0ZWQtcm91dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFVybE5vZGUge1xuICBwbGFjZWhvbGRlcjogYm9vbGVhbiA9IHRydWVcbiAgY2hpbGRyZW46IE1hcDxzdHJpbmcsIFVybE5vZGU+ID0gbmV3IE1hcCgpXG4gIHNsdWdOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuICByZXN0U2x1Z05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIG9wdGlvbmFsUmVzdFNsdWdOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuXG4gIGluc2VydCh1cmxQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnNlcnQodXJsUGF0aC5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKSwgW10sIGZhbHNlKVxuICB9XG5cbiAgc21vb3NoKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc21vb3NoKClcbiAgfVxuXG4gIHByaXZhdGUgX3Ntb29zaChwcmVmaXg6IHN0cmluZyA9ICcvJyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjaGlsZHJlblBhdGhzID0gWy4uLnRoaXMuY2hpbGRyZW4ua2V5cygpXS5zb3J0KClcbiAgICBpZiAodGhpcy5zbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKCdbXScpLCAxKVxuICAgIH1cbiAgICBpZiAodGhpcy5yZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZignWy4uLl0nKSwgMSlcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZignW1suLi5dXScpLCAxKVxuICAgIH1cblxuICAgIGNvbnN0IHJvdXRlcyA9IGNoaWxkcmVuUGF0aHNcbiAgICAgIC5tYXAoKGMpID0+IHRoaXMuY2hpbGRyZW4uZ2V0KGMpIS5fc21vb3NoKGAke3ByZWZpeH0ke2N9L2ApKVxuICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSlcblxuICAgIGlmICh0aGlzLnNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICByb3V0ZXMucHVzaChcbiAgICAgICAgLi4udGhpcy5jaGlsZHJlbi5nZXQoJ1tdJykhLl9zbW9vc2goYCR7cHJlZml4fVske3RoaXMuc2x1Z05hbWV9XS9gKVxuICAgICAgKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgY29uc3QgciA9IHByZWZpeCA9PT0gJy8nID8gJy8nIDogcHJlZml4LnNsaWNlKDAsIC0xKVxuICAgICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFlvdSBjYW5ub3QgZGVmaW5lIGEgcm91dGUgd2l0aCB0aGUgc2FtZSBzcGVjaWZpY2l0eSBhcyBhIG9wdGlvbmFsIGNhdGNoLWFsbCByb3V0ZSAoXCIke3J9XCIgYW5kIFwiJHtyfVtbLi4uJHt0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lfV1dXCIpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICByb3V0ZXMudW5zaGlmdChyKVxuICAgIH1cblxuICAgIGlmICh0aGlzLnJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgcm91dGVzLnB1c2goXG4gICAgICAgIC4uLnRoaXMuY2hpbGRyZW5cbiAgICAgICAgICAuZ2V0KCdbLi4uXScpIVxuICAgICAgICAgIC5fc21vb3NoKGAke3ByZWZpeH1bLi4uJHt0aGlzLnJlc3RTbHVnTmFtZX1dL2ApXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIHJvdXRlcy5wdXNoKFxuICAgICAgICAuLi50aGlzLmNoaWxkcmVuXG4gICAgICAgICAgLmdldCgnW1suLi5dXScpIVxuICAgICAgICAgIC5fc21vb3NoKGAke3ByZWZpeH1bWy4uLiR7dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZX1dXS9gKVxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiByb3V0ZXNcbiAgfVxuXG4gIHByaXZhdGUgX2luc2VydChcbiAgICB1cmxQYXRoczogc3RyaW5nW10sXG4gICAgc2x1Z05hbWVzOiBzdHJpbmdbXSxcbiAgICBpc0NhdGNoQWxsOiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGlmICh1cmxQYXRocy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBmYWxzZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzQ2F0Y2hBbGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2F0Y2gtYWxsIG11c3QgYmUgdGhlIGxhc3QgcGFydCBvZiB0aGUgVVJMLmApXG4gICAgfVxuXG4gICAgLy8gVGhlIG5leHQgc2VnbWVudCBpbiB0aGUgdXJsUGF0aHMgbGlzdFxuICAgIGxldCBuZXh0U2VnbWVudCA9IHVybFBhdGhzWzBdXG5cbiAgICAvLyBDaGVjayBpZiB0aGUgc2VnbWVudCBtYXRjaGVzIGBbc29tZXRoaW5nXWBcbiAgICBpZiAobmV4dFNlZ21lbnQuc3RhcnRzV2l0aCgnWycpICYmIG5leHRTZWdtZW50LmVuZHNXaXRoKCddJykpIHtcbiAgICAgIC8vIFN0cmlwIGBbYCBhbmQgYF1gLCBsZWF2aW5nIG9ubHkgYHNvbWV0aGluZ2BcbiAgICAgIGxldCBzZWdtZW50TmFtZSA9IG5leHRTZWdtZW50LnNsaWNlKDEsIC0xKVxuXG4gICAgICBsZXQgaXNPcHRpb25hbCA9IGZhbHNlXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnWycpICYmIHNlZ21lbnROYW1lLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgLy8gU3RyaXAgb3B0aW9uYWwgYFtgIGFuZCBgXWAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnNsaWNlKDEsIC0xKVxuICAgICAgICBpc09wdGlvbmFsID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgn4oCmJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBEZXRlY3RlZCBhIHRocmVlLWRvdCBjaGFyYWN0ZXIgKCfigKYnKSBhdCAoJyR7c2VnbWVudE5hbWV9JykuIERpZCB5b3UgbWVhbiAoJy4uLicpP2BcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnLi4uJykpIHtcbiAgICAgICAgLy8gU3RyaXAgYC4uLmAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnN1YnN0cmluZygzKVxuICAgICAgICBpc0NhdGNoQWxsID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnWycpIHx8IHNlZ21lbnROYW1lLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBTZWdtZW50IG5hbWVzIG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggZXh0cmEgYnJhY2tldHMgKCcke3NlZ21lbnROYW1lfScpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgU2VnbWVudCBuYW1lcyBtYXkgbm90IHN0YXJ0IHdpdGggZXJyb25lb3VzIHBlcmlvZHMgKCcke3NlZ21lbnROYW1lfScpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVTbHVnKHByZXZpb3VzU2x1Zzogc3RyaW5nIHwgbnVsbCwgbmV4dFNsdWc6IHN0cmluZykge1xuICAgICAgICBpZiAocHJldmlvdXNTbHVnICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIHNwZWNpZmljIHNlZ21lbnQgYWxyZWFkeSBoYXMgYSBzbHVnIGJ1dCB0aGUgc2x1ZyBpcyBub3QgYHNvbWV0aGluZ2BcbiAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIGNvbGxpc2lvbnMgbGlrZTpcbiAgICAgICAgICAvLyBwYWdlcy9bcG9zdF0vaW5kZXguanNcbiAgICAgICAgICAvLyBwYWdlcy9baWRdL2luZGV4LmpzXG4gICAgICAgICAgLy8gQmVjYXVzZSBjdXJyZW50bHkgbXVsdGlwbGUgZHluYW1pYyBwYXJhbXMgb24gdGhlIHNhbWUgc2VnbWVudCBsZXZlbCBhcmUgbm90IHN1cHBvcnRlZFxuICAgICAgICAgIGlmIChwcmV2aW91c1NsdWcgIT09IG5leHRTbHVnKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIHNlZW1zIHRvIGJlIGNvbmZ1c2luZyBmb3IgdXNlcnMsIG5lZWRzIGFuIGVycm9yIGxpbmssIHRoZSBkZXNjcmlwdGlvbiBjYW4gYmUgYmFzZWQgb24gYWJvdmUgY29tbWVudC5cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGRpZmZlcmVudCBzbHVnIG5hbWVzIGZvciB0aGUgc2FtZSBkeW5hbWljIHBhdGggKCcke3ByZXZpb3VzU2x1Z30nICE9PSAnJHtuZXh0U2x1Z30nKS5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2x1Z05hbWVzLmZvckVhY2goKHNsdWcpID0+IHtcbiAgICAgICAgICBpZiAoc2x1ZyA9PT0gbmV4dFNsdWcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgaGF2ZSB0aGUgc2FtZSBzbHVnIG5hbWUgXCIke25leHRTbHVnfVwiIHJlcGVhdCB3aXRoaW4gYSBzaW5nbGUgZHluYW1pYyBwYXRoYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzbHVnLnJlcGxhY2UoL1xcVy9nLCAnJykgPT09IG5leHRTZWdtZW50LnJlcGxhY2UoL1xcVy9nLCAnJykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgaGF2ZSB0aGUgc2x1ZyBuYW1lcyBcIiR7c2x1Z31cIiBhbmQgXCIke25leHRTbHVnfVwiIGRpZmZlciBvbmx5IGJ5IG5vbi13b3JkIHN5bWJvbHMgd2l0aGluIGEgc2luZ2xlIGR5bmFtaWMgcGF0aGBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgc2x1Z05hbWVzLnB1c2gobmV4dFNsdWcpXG4gICAgICB9XG5cbiAgICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICAgIGlmIChpc09wdGlvbmFsKSB7XG4gICAgICAgICAgaWYgKHRoaXMucmVzdFNsdWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGJvdGggYW4gcmVxdWlyZWQgYW5kIG9wdGlvbmFsIGNhdGNoLWFsbCByb3V0ZSBhdCB0aGUgc2FtZSBsZXZlbCAoXCJbLi4uJHt0aGlzLnJlc3RTbHVnTmFtZX1dXCIgYW5kIFwiJHt1cmxQYXRoc1swXX1cIiApLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVTbHVnKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUsIHNlZ21lbnROYW1lKVxuICAgICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcbiAgICAgICAgICB0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lID0gc2VnbWVudE5hbWVcbiAgICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbWy4uLl1dIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICBuZXh0U2VnbWVudCA9ICdbWy4uLl1dJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGJvdGggYW4gb3B0aW9uYWwgYW5kIHJlcXVpcmVkIGNhdGNoLWFsbCByb3V0ZSBhdCB0aGUgc2FtZSBsZXZlbCAoXCJbWy4uLiR7dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZX1dXVwiIGFuZCBcIiR7dXJsUGF0aHNbMF19XCIpLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVTbHVnKHRoaXMucmVzdFNsdWdOYW1lLCBzZWdtZW50TmFtZSlcbiAgICAgICAgICAvLyBzbHVnTmFtZSBpcyBrZXB0IGFzIGl0IGNhbiBvbmx5IGJlIG9uZSBwYXJ0aWN1bGFyIHNsdWdOYW1lXG4gICAgICAgICAgdGhpcy5yZXN0U2x1Z05hbWUgPSBzZWdtZW50TmFtZVxuICAgICAgICAgIC8vIG5leHRTZWdtZW50IGlzIG92ZXJ3cml0dGVuIHRvIFsuLi5dIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICBuZXh0U2VnbWVudCA9ICdbLi4uXSdcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzT3B0aW9uYWwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgT3B0aW9uYWwgcm91dGUgcGFyYW1ldGVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgKFwiJHt1cmxQYXRoc1swXX1cIikuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBoYW5kbGVTbHVnKHRoaXMuc2x1Z05hbWUsIHNlZ21lbnROYW1lKVxuICAgICAgICAvLyBzbHVnTmFtZSBpcyBrZXB0IGFzIGl0IGNhbiBvbmx5IGJlIG9uZSBwYXJ0aWN1bGFyIHNsdWdOYW1lXG4gICAgICAgIHRoaXMuc2x1Z05hbWUgPSBzZWdtZW50TmFtZVxuICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbXSBzbyB0aGF0IGl0IGNhbiBsYXRlciBiZSBzb3J0ZWQgc3BlY2lmaWNhbGx5XG4gICAgICAgIG5leHRTZWdtZW50ID0gJ1tdJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoaXMgVXJsTm9kZSBkb2Vzbid0IGhhdmUgdGhlIG5leHRTZWdtZW50IHlldCB3ZSBjcmVhdGUgYSBuZXcgY2hpbGQgVXJsTm9kZVxuICAgIGlmICghdGhpcy5jaGlsZHJlbi5oYXMobmV4dFNlZ21lbnQpKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuLnNldChuZXh0U2VnbWVudCwgbmV3IFVybE5vZGUoKSlcbiAgICB9XG5cbiAgICB0aGlzLmNoaWxkcmVuXG4gICAgICAuZ2V0KG5leHRTZWdtZW50KSFcbiAgICAgIC5faW5zZXJ0KHVybFBhdGhzLnNsaWNlKDEpLCBzbHVnTmFtZXMsIGlzQ2F0Y2hBbGwpXG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYHNvcnRTb3J0YWJsZVJvdXRlc2Agb3IgYHNvcnRQYWdlc2AgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNvcnRlZFJvdXRlcyhcbiAgbm9ybWFsaXplZFBhZ2VzOiBSZWFkb25seUFycmF5PHN0cmluZz5cbik6IHN0cmluZ1tdIHtcbiAgLy8gRmlyc3QgdGhlIFVybE5vZGUgaXMgY3JlYXRlZCwgYW5kIGV2ZXJ5IFVybE5vZGUgY2FuIGhhdmUgb25seSAxIGR5bmFtaWMgc2VnbWVudFxuICAvLyBFZyB5b3UgY2FuJ3QgaGF2ZSBwYWdlcy9bcG9zdF0vYWJjLmpzIGFuZCBwYWdlcy9baGVsbG9dL3NvbWV0aGluZy1lbHNlLmpzXG4gIC8vIE9ubHkgMSBkeW5hbWljIHNlZ21lbnQgcGVyIG5lc3RpbmcgbGV2ZWxcblxuICAvLyBTbyBpbiB0aGUgY2FzZSB0aGF0IGlzIHRlc3QvaW50ZWdyYXRpb24vZHluYW1pYy1yb3V0aW5nIGl0J2xsIGJlIHRoaXM6XG4gIC8vIHBhZ2VzL1twb3N0XS9jb21tZW50cy5qc1xuICAvLyBwYWdlcy9ibG9nL1twb3N0XS9jb21tZW50L1tpZF0uanNcbiAgLy8gQm90aCBhcmUgZmluZSBiZWNhdXNlIGBwYWdlcy9bcG9zdF1gIGFuZCBgcGFnZXMvYmxvZ2AgYXJlIG9uIHRoZSBzYW1lIGxldmVsXG4gIC8vIFNvIGluIHRoaXMgY2FzZSBgVXJsTm9kZWAgY3JlYXRlZCBoZXJlIGhhcyBgdGhpcy5zbHVnTmFtZSA9PT0gJ3Bvc3QnYFxuICAvLyBBbmQgc2luY2UgeW91ciBQUiBwYXNzZWQgdGhyb3VnaCBgc2x1Z05hbWVgIGFzIGFuIGFycmF5IGJhc2ljYWxseSBpdCdkIGluY2x1ZGluZyBpdCBpbiB0b28gbWFueSBwb3NzaWJpbGl0aWVzXG4gIC8vIEluc3RlYWQgd2hhdCBoYXMgdG8gYmUgcGFzc2VkIHRocm91Z2ggaXMgdGhlIHVwd2FyZHMgcGF0aCdzIGR5bmFtaWMgbmFtZXNcbiAgY29uc3Qgcm9vdCA9IG5ldyBVcmxOb2RlKClcblxuICAvLyBIZXJlIHRoZSBgcm9vdGAgZ2V0cyBpbmplY3RlZCBtdWx0aXBsZSBwYXRocywgYW5kIGluc2VydCB3aWxsIGJyZWFrIHRoZW0gdXAgaW50byBzdWJsZXZlbHNcbiAgbm9ybWFsaXplZFBhZ2VzLmZvckVhY2goKHBhZ2VQYXRoKSA9PiByb290Lmluc2VydChwYWdlUGF0aCkpXG4gIC8vIFNtb29zaCB3aWxsIHRoZW4gc29ydCB0aG9zZSBzdWJsZXZlbHMgdXAgdG8gdGhlIHBvaW50IHdoZXJlIHlvdSBnZXQgdGhlIGNvcnJlY3Qgcm91dGUgZGVmaW5pdGlvbiBwcmlvcml0eVxuICByZXR1cm4gcm9vdC5zbW9vc2goKVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgc29ydFNvcnRhYmxlUm91dGVPYmplY3RzYCBvciBgc29ydFBhZ2VPYmplY3RzYCBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ydGVkUm91dGVPYmplY3RzPFQ+KFxuICBvYmplY3RzOiBUW10sXG4gIGdldHRlcjogKG9iajogVCkgPT4gc3RyaW5nXG4pOiBUW10ge1xuICAvLyBXZSdyZSBhc3N1bWluZyBoZXJlIHRoYXQgYWxsIHRoZSBwYXRobmFtZXMgYXJlIHVuaXF1ZSwgdGhhdCB3YXkgd2UgY2FuXG4gIC8vIHNvcnQgdGhlIGxpc3QgYW5kIHVzZSB0aGUgaW5kZXggYXMgdGhlIGtleS5cbiAgY29uc3QgaW5kZXhlczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gIGNvbnN0IHBhdGhuYW1lczogc3RyaW5nW10gPSBbXVxuICBmb3IgKGxldCBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBwYXRobmFtZSA9IGdldHRlcihvYmplY3RzW2ldKVxuICAgIGluZGV4ZXNbcGF0aG5hbWVdID0gaVxuICAgIHBhdGhuYW1lc1tpXSA9IHBhdGhuYW1lXG4gIH1cblxuICAvLyBTb3J0IHRoZSBwYXRobmFtZXMuXG4gIGNvbnN0IHNvcnRlZCA9IGdldFNvcnRlZFJvdXRlcyhwYXRobmFtZXMpXG5cbiAgLy8gTWFwIHRoZSBzb3J0ZWQgcGF0aG5hbWVzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIG9iamVjdHMgdXNpbmcgdGhlIG5ldyBzb3J0ZWRcbiAgLy8gaW5kZXguXG4gIHJldHVybiBzb3J0ZWQubWFwKChwYXRobmFtZSkgPT4gb2JqZWN0c1tpbmRleGVzW3BhdGhuYW1lXV0pXG59XG4iXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVPYmplY3RzIiwiZ2V0U29ydGVkUm91dGVzIiwiVXJsTm9kZSIsImluc2VydCIsInVybFBhdGgiLCJfaW5zZXJ0Iiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwic21vb3NoIiwiX3Ntb29zaCIsInByZWZpeCIsImNoaWxkcmVuUGF0aHMiLCJjaGlsZHJlbiIsImtleXMiLCJzb3J0Iiwic2x1Z05hbWUiLCJzcGxpY2UiLCJpbmRleE9mIiwicmVzdFNsdWdOYW1lIiwib3B0aW9uYWxSZXN0U2x1Z05hbWUiLCJyb3V0ZXMiLCJtYXAiLCJjIiwiZ2V0IiwicmVkdWNlIiwicHJldiIsImN1cnIiLCJwdXNoIiwicGxhY2Vob2xkZXIiLCJyIiwic2xpY2UiLCJFcnJvciIsInVuc2hpZnQiLCJ1cmxQYXRocyIsInNsdWdOYW1lcyIsImlzQ2F0Y2hBbGwiLCJsZW5ndGgiLCJuZXh0U2VnbWVudCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNlZ21lbnROYW1lIiwiaXNPcHRpb25hbCIsInN1YnN0cmluZyIsImhhbmRsZVNsdWciLCJwcmV2aW91c1NsdWciLCJuZXh0U2x1ZyIsImZvckVhY2giLCJzbHVnIiwicmVwbGFjZSIsImhhcyIsInNldCIsIk1hcCIsIm5vcm1hbGl6ZWRQYWdlcyIsInJvb3QiLCJwYWdlUGF0aCIsIm9iamVjdHMiLCJnZXR0ZXIiLCJpbmRleGVzIiwicGF0aG5hbWVzIiwiaSIsInBhdGhuYW1lIiwic29ydGVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js":
|
||
/*!********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js ***!
|
||
\********************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// In output: export mode, the build id is added to the start of the HTML\n// document, directly after the doctype declaration. During a prefetch, the\n// client performs a range request to get the build id, so it can check whether\n// the target page belongs to the same build.\n//\n// The first 64 bytes of the document are requested. The exact number isn't\n// too important; it must be larger than the build id + doctype + closing and\n// ending comment markers, but it doesn't need to match the end of the\n// comment exactly.\n//\n// Build ids are 21 bytes long in the default implementation, though this\n// can be overridden in the Next.js config. For the purposes of this check,\n// it's OK to only match the start of the id, so we'll truncate it if exceeds\n// a certain length.\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 DOC_PREFETCH_RANGE_HEADER_VALUE: function() {\n return DOC_PREFETCH_RANGE_HEADER_VALUE;\n },\n doesExportedHtmlMatchBuildId: function() {\n return doesExportedHtmlMatchBuildId;\n },\n insertBuildIdComment: function() {\n return insertBuildIdComment;\n }\n});\nconst DOCTYPE_PREFIX = '<!DOCTYPE html>' // 15 bytes\n;\nconst MAX_BUILD_ID_LENGTH = 24;\nconst DOC_PREFETCH_RANGE_HEADER_VALUE = 'bytes=0-63';\nfunction escapeBuildId(buildId) {\n // If the build id is longer than the given limit, it's OK for our purposes\n // to only match the beginning.\n const truncated = buildId.slice(0, MAX_BUILD_ID_LENGTH);\n // Replace hyphens with underscores so it doesn't break the HTML comment.\n // (Unlikely, but if this did happen it would break the whole document.)\n return truncated.replace(/-/g, '_');\n}\nfunction insertBuildIdComment(originalHtml, buildId) {\n if (buildId.includes('-->') || // React always inserts a doctype at the start of the document. Skip if it\n // isn't present. Shouldn't happen; suggests an issue elsewhere.\n !originalHtml.startsWith(DOCTYPE_PREFIX)) {\n // Return the original HTML unchanged. This means the document will not\n // be prefetched.\n // TODO: The build id comment is currently only used during prefetches, but\n // if we eventually use this mechanism for regular navigations, we may need\n // to error during build if we fail to insert it for some reason.\n return originalHtml;\n }\n // The comment must be inserted after the doctype.\n return originalHtml.replace(DOCTYPE_PREFIX, DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n}\nfunction doesExportedHtmlMatchBuildId(partialHtmlDocument, buildId) {\n // Check whether the document starts with the expected buildId.\n return partialHtmlDocument.startsWith(DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n} //# sourceMappingURL=output-export-prefetch-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zZWdtZW50LWNhY2hlL291dHB1dC1leHBvcnQtcHJlZmV0Y2gtZW5jb2RpbmcuanMiLCJtYXBwaW5ncyI6IkFBQUEseUVBQXlFO0FBQ3pFLDJFQUEyRTtBQUMzRSwrRUFBK0U7QUFDL0UsNkNBQTZDO0FBQzdDLEVBQUU7QUFDRiwyRUFBMkU7QUFDM0UsNkVBQTZFO0FBQzdFLHNFQUFzRTtBQUN0RSxtQkFBbUI7QUFDbkIsRUFBRTtBQUNGLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0UsNkVBQTZFO0FBQzdFLG9CQUFvQjs7Ozs7Ozs7Ozs7OztJQU1QQSwrQkFBK0I7ZUFBL0JBOztJQWlDR0MsNEJBQTRCO2VBQTVCQTs7SUF0QkFDLG9CQUFvQjtlQUFwQkE7OztBQWZoQixNQUFNQyxpQkFBaUIsa0JBQWtCLFdBQVc7O0FBQ3BELE1BQU1DLHNCQUFzQjtBQUdyQixNQUFNSixrQ0FBa0M7QUFFL0MsU0FBU0ssY0FBY0MsT0FBZTtJQUNwQywyRUFBMkU7SUFDM0UsK0JBQStCO0lBQy9CLE1BQU1DLFlBQVlELFFBQVFFLEtBQUssQ0FBQyxHQUFHSjtJQUNuQyx5RUFBeUU7SUFDekUsd0VBQXdFO0lBQ3hFLE9BQU9HLFVBQVVFLE9BQU8sQ0FBQyxNQUFNO0FBQ2pDO0FBRU8sU0FBU1AscUJBQXFCUSxZQUFvQixFQUFFSixPQUFlO0lBQ3hFLElBQ0UsUUFDUUssUUFBUSxDQUFDLFVBQ2pCLCtCQUYwRCwyQ0FFZ0I7SUFDMUUsZ0VBQWdFO0lBQ2hFLENBQUNELGFBQWFFLFVBQVUsQ0FBQ1QsaUJBQ3pCO1FBQ0EsdUVBQXVFO1FBQ3ZFLGlCQUFpQjtRQUNqQiwyRUFBMkU7UUFDM0UsMkVBQTJFO1FBQzNFLGlFQUFpRTtRQUNqRSxPQUFPTztJQUNUO0lBQ0Esa0RBQWtEO0lBQ2xELE9BQU9BLGFBQWFELE9BQU8sQ0FDekJOLGdCQUNBQSxpQkFBaUIsU0FBU0UsY0FBY0MsV0FBVztBQUV2RDtBQUVPLFNBQVNMLDZCQUNkWSxtQkFBMkIsRUFDM0JQLE9BQWU7SUFFZiwrREFBK0Q7SUFDL0QsT0FBT08sb0JBQW9CRCxVQUFVLENBQ25DVCxpQkFBaUIsU0FBU0UsY0FBY0MsV0FBVztBQUV2RCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9zaGFyZWQvbGliL3NlZ21lbnQtY2FjaGUvb3V0cHV0LWV4cG9ydC1wcmVmZXRjaC1lbmNvZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbiBvdXRwdXQ6IGV4cG9ydCBtb2RlLCB0aGUgYnVpbGQgaWQgaXMgYWRkZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBIVE1MXG4vLyBkb2N1bWVudCwgZGlyZWN0bHkgYWZ0ZXIgdGhlIGRvY3R5cGUgZGVjbGFyYXRpb24uIER1cmluZyBhIHByZWZldGNoLCB0aGVcbi8vIGNsaWVudCBwZXJmb3JtcyBhIHJhbmdlIHJlcXVlc3QgdG8gZ2V0IHRoZSBidWlsZCBpZCwgc28gaXQgY2FuIGNoZWNrIHdoZXRoZXJcbi8vIHRoZSB0YXJnZXQgcGFnZSBiZWxvbmdzIHRvIHRoZSBzYW1lIGJ1aWxkLlxuLy9cbi8vIFRoZSBmaXJzdCA2NCBieXRlcyBvZiB0aGUgZG9jdW1lbnQgYXJlIHJlcXVlc3RlZC4gVGhlIGV4YWN0IG51bWJlciBpc24ndFxuLy8gdG9vIGltcG9ydGFudDsgaXQgbXVzdCBiZSBsYXJnZXIgdGhhbiB0aGUgYnVpbGQgaWQgKyBkb2N0eXBlICsgY2xvc2luZyBhbmRcbi8vIGVuZGluZyBjb21tZW50IG1hcmtlcnMsIGJ1dCBpdCBkb2Vzbid0IG5lZWQgdG8gbWF0Y2ggdGhlIGVuZCBvZiB0aGVcbi8vIGNvbW1lbnQgZXhhY3RseS5cbi8vXG4vLyBCdWlsZCBpZHMgYXJlIDIxIGJ5dGVzIGxvbmcgaW4gdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIHRob3VnaCB0aGlzXG4vLyBjYW4gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgTmV4dC5qcyBjb25maWcuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBjaGVjayxcbi8vIGl0J3MgT0sgdG8gb25seSBtYXRjaCB0aGUgc3RhcnQgb2YgdGhlIGlkLCBzbyB3ZSdsbCB0cnVuY2F0ZSBpdCBpZiBleGNlZWRzXG4vLyBhIGNlcnRhaW4gbGVuZ3RoLlxuXG5jb25zdCBET0NUWVBFX1BSRUZJWCA9ICc8IURPQ1RZUEUgaHRtbD4nIC8vIDE1IGJ5dGVzXG5jb25zdCBNQVhfQlVJTERfSURfTEVOR1RIID0gMjRcblxuLy8gUmVxdWVzdCB0aGUgZmlyc3QgNjQgYnl0ZXMuIFRoZSBSYW5nZSBoZWFkZXIgaXMgaW5jbHVzaXZlIG9mIHRoZSBlbmQgdmFsdWUuXG5leHBvcnQgY29uc3QgRE9DX1BSRUZFVENIX1JBTkdFX0hFQURFUl9WQUxVRSA9ICdieXRlcz0wLTYzJ1xuXG5mdW5jdGlvbiBlc2NhcGVCdWlsZElkKGJ1aWxkSWQ6IHN0cmluZykge1xuICAvLyBJZiB0aGUgYnVpbGQgaWQgaXMgbG9uZ2VyIHRoYW4gdGhlIGdpdmVuIGxpbWl0LCBpdCdzIE9LIGZvciBvdXIgcHVycG9zZXNcbiAgLy8gdG8gb25seSBtYXRjaCB0aGUgYmVnaW5uaW5nLlxuICBjb25zdCB0cnVuY2F0ZWQgPSBidWlsZElkLnNsaWNlKDAsIE1BWF9CVUlMRF9JRF9MRU5HVEgpXG4gIC8vIFJlcGxhY2UgaHlwaGVucyB3aXRoIHVuZGVyc2NvcmVzIHNvIGl0IGRvZXNuJ3QgYnJlYWsgdGhlIEhUTUwgY29tbWVudC5cbiAgLy8gKFVubGlrZWx5LCBidXQgaWYgdGhpcyBkaWQgaGFwcGVuIGl0IHdvdWxkIGJyZWFrIHRoZSB3aG9sZSBkb2N1bWVudC4pXG4gIHJldHVybiB0cnVuY2F0ZWQucmVwbGFjZSgvLS9nLCAnXycpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRCdWlsZElkQ29tbWVudChvcmlnaW5hbEh0bWw6IHN0cmluZywgYnVpbGRJZDogc3RyaW5nKSB7XG4gIGlmIChcbiAgICAvLyBTa2lwIGlmIHRoZSBidWlsZCBpZCBjb250YWlucyBhIGNsb3NpbmcgY29tbWVudCBtYXJrZXIuXG4gICAgYnVpbGRJZC5pbmNsdWRlcygnLS0+JykgfHxcbiAgICAvLyBSZWFjdCBhbHdheXMgaW5zZXJ0cyBhIGRvY3R5cGUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBkb2N1bWVudC4gU2tpcCBpZiBpdFxuICAgIC8vIGlzbid0IHByZXNlbnQuIFNob3VsZG4ndCBoYXBwZW47IHN1Z2dlc3RzIGFuIGlzc3VlIGVsc2V3aGVyZS5cbiAgICAhb3JpZ2luYWxIdG1sLnN0YXJ0c1dpdGgoRE9DVFlQRV9QUkVGSVgpXG4gICkge1xuICAgIC8vIFJldHVybiB0aGUgb3JpZ2luYWwgSFRNTCB1bmNoYW5nZWQuIFRoaXMgbWVhbnMgdGhlIGRvY3VtZW50IHdpbGwgbm90XG4gICAgLy8gYmUgcHJlZmV0Y2hlZC5cbiAgICAvLyBUT0RPOiBUaGUgYnVpbGQgaWQgY29tbWVudCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGR1cmluZyBwcmVmZXRjaGVzLCBidXRcbiAgICAvLyBpZiB3ZSBldmVudHVhbGx5IHVzZSB0aGlzIG1lY2hhbmlzbSBmb3IgcmVndWxhciBuYXZpZ2F0aW9ucywgd2UgbWF5IG5lZWRcbiAgICAvLyB0byBlcnJvciBkdXJpbmcgYnVpbGQgaWYgd2UgZmFpbCB0byBpbnNlcnQgaXQgZm9yIHNvbWUgcmVhc29uLlxuICAgIHJldHVybiBvcmlnaW5hbEh0bWxcbiAgfVxuICAvLyBUaGUgY29tbWVudCBtdXN0IGJlIGluc2VydGVkIGFmdGVyIHRoZSBkb2N0eXBlLlxuICByZXR1cm4gb3JpZ2luYWxIdG1sLnJlcGxhY2UoXG4gICAgRE9DVFlQRV9QUkVGSVgsXG4gICAgRE9DVFlQRV9QUkVGSVggKyAnPCEtLScgKyBlc2NhcGVCdWlsZElkKGJ1aWxkSWQpICsgJy0tPidcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9lc0V4cG9ydGVkSHRtbE1hdGNoQnVpbGRJZChcbiAgcGFydGlhbEh0bWxEb2N1bWVudDogc3RyaW5nLFxuICBidWlsZElkOiBzdHJpbmdcbikge1xuICAvLyBDaGVjayB3aGV0aGVyIHRoZSBkb2N1bWVudCBzdGFydHMgd2l0aCB0aGUgZXhwZWN0ZWQgYnVpbGRJZC5cbiAgcmV0dXJuIHBhcnRpYWxIdG1sRG9jdW1lbnQuc3RhcnRzV2l0aChcbiAgICBET0NUWVBFX1BSRUZJWCArICc8IS0tJyArIGVzY2FwZUJ1aWxkSWQoYnVpbGRJZCkgKyAnLS0+J1xuICApXG59XG4iXSwibmFtZXMiOlsiRE9DX1BSRUZFVENIX1JBTkdFX0hFQURFUl9WQUxVRSIsImRvZXNFeHBvcnRlZEh0bWxNYXRjaEJ1aWxkSWQiLCJpbnNlcnRCdWlsZElkQ29tbWVudCIsIkRPQ1RZUEVfUFJFRklYIiwiTUFYX0JVSUxEX0lEX0xFTkdUSCIsImVzY2FwZUJ1aWxkSWQiLCJidWlsZElkIiwidHJ1bmNhdGVkIiwic2xpY2UiLCJyZXBsYWNlIiwib3JpZ2luYWxIdG1sIiwiaW5jbHVkZXMiLCJzdGFydHNXaXRoIiwicGFydGlhbEh0bWxEb2N1bWVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/segment.js":
|
||
/*!******************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/segment.js ***!
|
||
\******************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTRCYUEsbUJBQW1CO2VBQW5CQTs7SUFEQUMsZ0JBQWdCO2VBQWhCQTs7SUFoQkdDLDRCQUE0QjtlQUE1QkE7O0lBVEFDLGNBQWM7ZUFBZEE7O0lBS0FDLHNCQUFzQjtlQUF0QkE7OztBQUxULFNBQVNELGVBQWVFLE9BQWU7SUFDNUMsc0NBQXNDO0lBQ3RDLE9BQU9BLE9BQU8sQ0FBQyxFQUFFLEtBQUssT0FBT0EsUUFBUUMsUUFBUSxDQUFDO0FBQ2hEO0FBRU8sU0FBU0YsdUJBQXVCQyxPQUFlO0lBQ3BELE9BQU9BLFFBQVFFLFVBQVUsQ0FBQyxRQUFRRixZQUFZO0FBQ2hEO0FBRU8sU0FBU0gsNkJBQ2RHLE9BQWdCLEVBQ2hCRyxZQUEyRDtJQUUzRCxNQUFNQyxnQkFBZ0JKLFFBQVFLLFFBQVEsQ0FBQ1Q7SUFFdkMsSUFBSVEsZUFBZTtRQUNqQixNQUFNRSxtQkFBbUJDLEtBQUtDLFNBQVMsQ0FBQ0w7UUFDeEMsT0FBT0cscUJBQXFCLE9BQ3hCVixtQkFBbUIsTUFBTVUsbUJBQ3pCVjtJQUNOO0lBRUEsT0FBT0k7QUFDVDtBQUVPLE1BQU1KLG1CQUFtQjtBQUN6QixNQUFNRCxzQkFBc0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9zaGFyZWQvbGliL3NlZ21lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZWdtZW50IH0gZnJvbSAnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dyb3VwU2VnbWVudChzZWdtZW50OiBzdHJpbmcpIHtcbiAgLy8gVXNlIGFycmF5WzBdIGZvciBwZXJmb3JtYW50IHB1cnBvc2VcbiAgcmV0dXJuIHNlZ21lbnRbMF0gPT09ICcoJyAmJiBzZWdtZW50LmVuZHNXaXRoKCcpJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIHJldHVybiBzZWdtZW50LnN0YXJ0c1dpdGgoJ0AnKSAmJiBzZWdtZW50ICE9PSAnQGNoaWxkcmVuJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudChcbiAgc2VnbWVudDogU2VnbWVudCxcbiAgc2VhcmNoUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD5cbikge1xuICBjb25zdCBpc1BhZ2VTZWdtZW50ID0gc2VnbWVudC5pbmNsdWRlcyhQQUdFX1NFR01FTlRfS0VZKVxuXG4gIGlmIChpc1BhZ2VTZWdtZW50KSB7XG4gICAgY29uc3Qgc3RyaW5naWZpZWRRdWVyeSA9IEpTT04uc3RyaW5naWZ5KHNlYXJjaFBhcmFtcylcbiAgICByZXR1cm4gc3RyaW5naWZpZWRRdWVyeSAhPT0gJ3t9J1xuICAgICAgPyBQQUdFX1NFR01FTlRfS0VZICsgJz8nICsgc3RyaW5naWZpZWRRdWVyeVxuICAgICAgOiBQQUdFX1NFR01FTlRfS0VZXG4gIH1cblxuICByZXR1cm4gc2VnbWVudFxufVxuXG5leHBvcnQgY29uc3QgUEFHRV9TRUdNRU5UX0tFWSA9ICdfX1BBR0VfXydcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFR01FTlRfS0VZID0gJ19fREVGQVVMVF9fJ1xuIl0sIm5hbWVzIjpbIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJQQUdFX1NFR01FTlRfS0VZIiwiYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudCIsImlzR3JvdXBTZWdtZW50IiwiaXNQYXJhbGxlbFJvdXRlU2VnbWVudCIsInNlZ21lbnQiLCJlbmRzV2l0aCIsInN0YXJ0c1dpdGgiLCJzZWFyY2hQYXJhbXMiLCJpc1BhZ2VTZWdtZW50IiwiaW5jbHVkZXMiLCJzdHJpbmdpZmllZFF1ZXJ5IiwiSlNPTiIsInN0cmluZ2lmeSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/segment.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/side-effect.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/side-effect.js ***!
|
||
\**********************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return SideEffect;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"react\");\nconst isServer = \"undefined\" === 'undefined';\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect;\nfunction SideEffect(props) {\n const { headManager, reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = _react.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 \"SideEffect.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 \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.delete(props.children);\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\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 \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n useClientOnlyEffect({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n }\n })[\"SideEffect.useClientOnlyEffect\"];\n }\n }[\"SideEffect.useClientOnlyEffect\"]);\n return null;\n} //# sourceMappingURL=side-effect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9zaWRlLWVmZmVjdC5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQW9CQTs7O2VBQXdCQTs7O21DQW5CdUM7QUFlL0QsTUFBTUMsV0FBVyxPQUFPQyxTQUFXO0FBQ25DLE1BQU1DLDRCQUE0QkYsV0FBVyxLQUFPLElBQUlHLE9BQUFBLGVBQWU7QUFDdkUsTUFBTUMsc0JBQXNCSixXQUFXLEtBQU8sSUFBSUssT0FBQUEsU0FBUztBQUU1QyxTQUFTTixXQUFXTyxLQUFzQjtJQUN2RCxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsdUJBQXVCLEVBQUUsR0FBR0Y7SUFFakQsU0FBU0c7UUFDUCxJQUFJRixlQUFlQSxZQUFZRyxnQkFBZ0IsRUFBRTtZQUMvQyxNQUFNQyxlQUFlQyxPQUFBQSxRQUFRLENBQUNDLE9BQU8sQ0FDbkNDLE1BQU1DLElBQUksQ0FBQ1IsWUFBWUcsZ0JBQWdCLEVBQTBCTSxNQUFNLENBQ3JFQztZQUdKVixZQUFZVyxVQUFVLENBQUNWLHdCQUF3QkcsY0FBY0w7UUFDL0Q7SUFDRjtJQUVBLElBQUlOLFVBQVU7WUFDWk87UUFBQUEsZUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsaUNBQUFBLFlBQWFHLGdCQUFBQSxLQUFnQixnQkFBN0JILDhCQUErQlksR0FBRyxDQUFDYixNQUFNYyxRQUFRO1FBQ2pEWDtJQUNGO0lBRUFQO2dEQUEwQjtnQkFDeEJLO1lBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JZLEdBQUcsQ0FBQ2IsTUFBTWMsUUFBUTtZQUNqRDt3REFBTzt3QkFDTGI7b0JBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JjLE1BQU0sQ0FBQ2YsTUFBTWMsUUFBUTtnQkFDdEQ7O1FBQ0Y7O0lBRUEsa0ZBQWtGO0lBQ2xGLG9GQUFvRjtJQUNwRixnRUFBZ0U7SUFDaEUscUZBQXFGO0lBQ3JGLG1GQUFtRjtJQUNuRmxCO2dEQUEwQjtZQUN4QixJQUFJSyxhQUFhO2dCQUNmQSxZQUFZZSxjQUFjLEdBQUdiO1lBQy9CO1lBQ0E7d0RBQU87b0JBQ0wsSUFBSUYsYUFBYTt3QkFDZkEsWUFBWWUsY0FBYyxHQUFHYjtvQkFDL0I7Z0JBQ0Y7O1FBQ0Y7O0lBRUFMOzBDQUFvQjtZQUNsQixJQUFJRyxlQUFlQSxZQUFZZSxjQUFjLEVBQUU7Z0JBQzdDZixZQUFZZSxjQUFjO2dCQUMxQmYsWUFBWWUsY0FBYyxHQUFHO1lBQy9CO1lBQ0E7a0RBQU87b0JBQ0wsSUFBSWYsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO3dCQUM3Q2YsWUFBWWUsY0FBYzt3QkFDMUJmLFlBQVllLGNBQWMsR0FBRztvQkFDL0I7Z0JBQ0Y7O1FBQ0Y7O0lBRUEsT0FBTztBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9zaWRlLWVmZmVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5cbnR5cGUgU3RhdGUgPSBKU1guRWxlbWVudFtdIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCB0eXBlIFNpZGVFZmZlY3RQcm9wcyA9IHtcbiAgcmVkdWNlQ29tcG9uZW50c1RvU3RhdGU6IDxUIGV4dGVuZHMge30+KFxuICAgIGNvbXBvbmVudHM6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgICBwcm9wczogVFxuICApID0+IFN0YXRlXG4gIGhhbmRsZVN0YXRlQ2hhbmdlPzogKHN0YXRlOiBTdGF0ZSkgPT4gdm9pZFxuICBoZWFkTWFuYWdlcjogYW55XG4gIGluQW1wTW9kZT86IGJvb2xlYW5cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufVxuXG5jb25zdCBpc1NlcnZlciA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnXG5jb25zdCB1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0ID0gaXNTZXJ2ZXIgPyAoKSA9PiB7fSA6IHVzZUxheW91dEVmZmVjdFxuY29uc3QgdXNlQ2xpZW50T25seUVmZmVjdCA9IGlzU2VydmVyID8gKCkgPT4ge30gOiB1c2VFZmZlY3RcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lkZUVmZmVjdChwcm9wczogU2lkZUVmZmVjdFByb3BzKSB7XG4gIGNvbnN0IHsgaGVhZE1hbmFnZXIsIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlIH0gPSBwcm9wc1xuXG4gIGZ1bmN0aW9uIGVtaXRDaGFuZ2UoKSB7XG4gICAgaWYgKGhlYWRNYW5hZ2VyICYmIGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpIHtcbiAgICAgIGNvbnN0IGhlYWRFbGVtZW50cyA9IENoaWxkcmVuLnRvQXJyYXkoXG4gICAgICAgIEFycmF5LmZyb20oaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcyBhcyBTZXQ8UmVhY3QuUmVhY3ROb2RlPikuZmlsdGVyKFxuICAgICAgICAgIEJvb2xlYW5cbiAgICAgICAgKVxuICAgICAgKSBhcyBSZWFjdC5SZWFjdEVsZW1lbnRbXVxuICAgICAgaGVhZE1hbmFnZXIudXBkYXRlSGVhZChyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZShoZWFkRWxlbWVudHMsIHByb3BzKSlcbiAgICB9XG4gIH1cblxuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICBoZWFkTWFuYWdlcj8ubW91bnRlZEluc3RhbmNlcz8uYWRkKHByb3BzLmNoaWxkcmVuKVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9XG5cbiAgdXNlQ2xpZW50T25seUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmFkZChwcm9wcy5jaGlsZHJlbilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmRlbGV0ZShwcm9wcy5jaGlsZHJlbilcbiAgICB9XG4gIH0pXG5cbiAgLy8gV2UgbmVlZCB0byBjYWxsIGB1cGRhdGVIZWFkYCBtZXRob2Qgd2hlbmV2ZXIgdGhlIGBTaWRlRWZmZWN0YCBpcyB0cmlnZ2VyIGluIGFsbFxuICAvLyBsaWZlLWN5Y2xlczogbW91bnQsIHVwZGF0ZSwgdW5tb3VudC4gSG93ZXZlciwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGBTaWRlRWZmZWN0YHNcbiAgLy8gYmVpbmcgcmVuZGVyZWQsIHdlIG9ubHkgdHJpZ2dlciB0aGUgbWV0aG9kIGZyb20gdGhlIGxhc3Qgb25lLlxuICAvLyBUaGlzIGlzIGVuc3VyZWQgYnkga2VlcGluZyB0aGUgbGFzdCB1bmZsdXNoZWQgYHVwZGF0ZUhlYWRgIGluIHRoZSBgX3BlbmRpbmdVcGRhdGVgXG4gIC8vIHNpbmdsZXRvbiBpbiB0aGUgbGF5b3V0IGVmZmVjdCBwYXNzLCBhbmQgYWN0dWFsbHkgdHJpZ2dlciBpdCBpbiB0aGUgZWZmZWN0IHBhc3MuXG4gIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChoZWFkTWFuYWdlcikge1xuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBlbWl0Q2hhbmdlXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoaGVhZE1hbmFnZXIpIHtcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBlbWl0Q2hhbmdlXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHVzZUNsaWVudE9ubHlFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSkge1xuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKVxuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBudWxsXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoaGVhZE1hbmFnZXIgJiYgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUpIHtcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKVxuICAgICAgICBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJuYW1lcyI6WyJTaWRlRWZmZWN0IiwiaXNTZXJ2ZXIiLCJ3aW5kb3ciLCJ1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwidXNlQ2xpZW50T25seUVmZmVjdCIsInVzZUVmZmVjdCIsInByb3BzIiwiaGVhZE1hbmFnZXIiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImVtaXRDaGFuZ2UiLCJtb3VudGVkSW5zdGFuY2VzIiwiaGVhZEVsZW1lbnRzIiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwiQXJyYXkiLCJmcm9tIiwiZmlsdGVyIiwiQm9vbGVhbiIsInVwZGF0ZUhlYWQiLCJhZGQiLCJjaGlsZHJlbiIsImRlbGV0ZSIsIl9wZW5kaW5nVXBkYXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/side-effect.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/utils.js ***!
|
||
\****************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction 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 Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFvYWFBLFdBQVc7ZUFBWEE7O0lBb0JBQyx1QkFBdUI7ZUFBdkJBOztJQVBBQyxpQkFBaUI7ZUFBakJBOztJQVpBQyxjQUFjO2VBQWRBOztJQUNBQyxpQkFBaUI7ZUFBakJBOztJQVRBQyxFQUFFO2VBQUZBOztJQUNBQyxFQUFFO2VBQUZBOztJQWxYQUMsVUFBVTtlQUFWQTs7SUFzUUdDLFFBQVE7ZUFBUkE7O0lBK0JBQyxjQUFjO2VBQWRBOztJQVhBQyxpQkFBaUI7ZUFBakJBOztJQUtBQyxNQUFNO2VBQU5BOztJQVBIQyxhQUFhO2VBQWJBOztJQW1CR0MsU0FBUztlQUFUQTs7SUFrQk1DLG1CQUFtQjtlQUFuQkE7O0lBZE5DLHdCQUF3QjtlQUF4QkE7O0lBK0dBQyxjQUFjO2VBQWRBOzs7QUE5WlQsTUFBTVQsYUFBYTtJQUFDO0lBQU87SUFBTztJQUFPO0lBQU87SUFBTztDQUFPO0FBc1E5RCxTQUFTQyxTQUNkUyxFQUFLO0lBRUwsSUFBSUMsT0FBTztJQUNYLElBQUlDO0lBRUosT0FBUTt5Q0FBSUMsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7WUFBQUEsSUFBQUEsQ0FBQUEsS0FBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O1FBQ1YsSUFBSSxDQUFDRixNQUFNO1lBQ1RBLE9BQU87WUFDUEMsU0FBU0YsTUFBTUc7UUFDakI7UUFDQSxPQUFPRDtJQUNUO0FBQ0Y7QUFFQSwwREFBMEQ7QUFDMUQsZ0VBQWdFO0FBQ2hFLE1BQU1FLHFCQUFxQjtBQUNwQixNQUFNVCxnQkFBZ0IsQ0FBQ1UsTUFBZ0JELG1CQUFtQkUsSUFBSSxDQUFDRDtBQUUvRCxTQUFTWjtJQUNkLE1BQU0sRUFBRWMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRSxHQUFH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R0FBRztRQUNaLElBQUksQ0FBQzlCLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ2lCLE9BQU8sR0FBSSxrQ0FBK0JZO0lBQ2pEO0FBQ0Y7QUFFTyxNQUFNOUQsMEJBQTBCbUQ7SUFDckNVLFlBQVlDLElBQVksRUFBRVosT0FBZSxDQUFFO1FBQ3pDLEtBQUs7UUFDTCxJQUFJLENBQUNBLE9BQU8sR0FBSSwwQ0FBdUNZLE9BQUssTUFBR1o7SUFDakU7QUFDRjtBQUVPLE1BQU1uRCxnQ0FBZ0NvRDtJQUUzQ1UsYUFBYztRQUNaLEtBQUs7UUFDTCxJQUFJLENBQUNFLElBQUksR0FBRztRQUNaLElBQUksQ0FBQ2IsT0FBTyxHQUFJO0lBQ2xCO0FBQ0Y7QUFXTyxTQUFTcEMsZUFBZWtELEtBQVk7SUFDekMsT0FBT0MsS0FBS0MsU0FBUyxDQUFDO1FBQUVoQixTQUFTYyxNQUFNZCxPQUFPO1FBQUVpQixPQUFPSCxNQUFNRyxLQUFLO0lBQUM7QUFDckUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9zaGFyZWQvbGliL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSHRtbFByb3BzIH0gZnJvbSAnLi9odG1sLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFR5cGUsIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBEb21haW5Mb2NhbGUgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBFbnYgfSBmcm9tICdAbmV4dC9lbnYnXG5pbXBvcnQgdHlwZSB7IEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJ1xuaW1wb3J0IHR5cGUgeyBOZXh0Um91dGVyIH0gZnJvbSAnLi9yb3V0ZXIvcm91dGVyJ1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHR5cGUgeyBQcmV2aWV3RGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDT01QSUxFUl9OQU1FUyB9IGZyb20gJy4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgZnMgZnJvbSAnZnMnXG5cbmV4cG9ydCB0eXBlIE5leHRDb21wb25lbnRUeXBlPFxuICBDb250ZXh0IGV4dGVuZHMgQmFzZUNvbnRleHQgPSBOZXh0UGFnZUNvbnRleHQsXG4gIEluaXRpYWxQcm9wcyA9IHt9LFxuICBQcm9wcyA9IHt9LFxuPiA9IENvbXBvbmVudFR5cGU8UHJvcHM+ICYge1xuICAvKipcbiAgICogVXNlZCBmb3IgaW5pdGlhbCBwYWdlIGxvYWQgZGF0YSBwb3B1bGF0aW9uLiBEYXRhIHJldHVybmVkIGZyb20gYGdldEluaXRpYWxQcm9wc2AgaXMgc2VyaWFsaXplZCB3aGVuIHNlcnZlciByZW5kZXJlZC5cbiAgICogTWFrZSBzdXJlIHRvIHJldHVybiBwbGFpbiBgT2JqZWN0YCB3aXRob3V0IHVzaW5nIGBEYXRlYCwgYE1hcGAsIGBTZXRgLlxuICAgKiBAcGFyYW0gY29udGV4dCBDb250ZXh0IG9mIGBwYWdlYFxuICAgKi9cbiAgZ2V0SW5pdGlhbFByb3BzPyhjb250ZXh0OiBDb250ZXh0KTogSW5pdGlhbFByb3BzIHwgUHJvbWlzZTxJbml0aWFsUHJvcHM+XG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50VHlwZSA9IE5leHRDb21wb25lbnRUeXBlPFxuICBEb2N1bWVudENvbnRleHQsXG4gIERvY3VtZW50SW5pdGlhbFByb3BzLFxuICBEb2N1bWVudFByb3BzXG4+XG5cbmV4cG9ydCB0eXBlIEFwcFR5cGU8UCA9IHt9PiA9IE5leHRDb21wb25lbnRUeXBlPFxuICBBcHBDb250ZXh0VHlwZSxcbiAgUCxcbiAgQXBwUHJvcHNUeXBlPGFueSwgUD5cbj5cblxuZXhwb3J0IHR5cGUgQXBwVHJlZVR5cGUgPSBDb21wb25lbnRUeXBlPFxuICBBcHBJbml0aWFsUHJvcHMgJiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfVxuPlxuXG4vKipcbiAqIFdlYiB2aXRhbHMgcHJvdmlkZWQgdG8gX2FwcC5yZXBvcnRXZWJWaXRhbHMgYnkgQ29yZSBXZWIgVml0YWxzIHBsdWdpbiBkZXZlbG9wZWQgYnkgR29vZ2xlIENocm9tZSB0ZWFtLlxuICogaHR0cHM6Ly9uZXh0anMub3JnL2Jsb2cvbmV4dC05LTQjaW50ZWdyYXRlZC13ZWItdml0YWxzLXJlcG9ydGluZ1xuICovXG5leHBvcnQgY29uc3QgV0VCX1ZJVEFMUyA9IFsnQ0xTJywgJ0ZDUCcsICdGSUQnLCAnSU5QJywgJ0xDUCcsICdUVEZCJ10gYXMgY29uc3RcbmV4cG9ydCB0eXBlIE5leHRXZWJWaXRhbHNNZXRyaWMgPSB7XG4gIGlkOiBzdHJpbmdcbiAgc3RhcnRUaW1lOiBudW1iZXJcbiAgdmFsdWU6IG51bWJlclxuICBhdHRyaWJ1dGlvbj86IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9XG59ICYgKFxuICB8IHtcbiAgICAgIGxhYmVsOiAnd2ViLXZpdGFsJ1xuICAgICAgbmFtZTogKHR5cGVvZiBXRUJfVklUQUxTKVtudW1iZXJdXG4gICAgfVxuICB8IHtcbiAgICAgIGxhYmVsOiAnY3VzdG9tJ1xuICAgICAgbmFtZTpcbiAgICAgICAgfCAnTmV4dC5qcy1oeWRyYXRpb24nXG4gICAgICAgIHwgJ05leHQuanMtcm91dGUtY2hhbmdlLXRvLXJlbmRlcidcbiAgICAgICAgfCAnTmV4dC5qcy1yZW5kZXInXG4gICAgfVxuKVxuXG5leHBvcnQgdHlwZSBFbmhhbmNlcjxDPiA9IChDb21wb25lbnQ6IEMpID0+IENcblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50c0VuaGFuY2VyID1cbiAgfCB7XG4gICAgICBlbmhhbmNlQXBwPzogRW5oYW5jZXI8QXBwVHlwZT5cbiAgICAgIGVuaGFuY2VDb21wb25lbnQ/OiBFbmhhbmNlcjxOZXh0Q29tcG9uZW50VHlwZT5cbiAgICB9XG4gIHwgRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG5cbmV4cG9ydCB0eXBlIFJlbmRlclBhZ2VSZXN1bHQgPSB7XG4gIGh0bWw6IHN0cmluZ1xuICBoZWFkPzogQXJyYXk8SlNYLkVsZW1lbnQgfCBudWxsPlxufVxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlID0gKFxuICBvcHRpb25zPzogQ29tcG9uZW50c0VuaGFuY2VyXG4pID0+IERvY3VtZW50SW5pdGlhbFByb3BzIHwgUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cblxuZXhwb3J0IHR5cGUgQmFzZUNvbnRleHQgPSB7XG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIFtrOiBzdHJpbmddOiBhbnlcbn1cblxuZXhwb3J0IHR5cGUgTkVYVF9EQVRBID0ge1xuICBwcm9wczogUmVjb3JkPHN0cmluZywgYW55PlxuICBwYWdlOiBzdHJpbmdcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIGJ1aWxkSWQ6IHN0cmluZ1xuICBhc3NldFByZWZpeD86IHN0cmluZ1xuICBydW50aW1lQ29uZmlnPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICBuZXh0RXhwb3J0PzogYm9vbGVhblxuICBhdXRvRXhwb3J0PzogYm9vbGVhblxuICBpc0ZhbGxiYWNrPzogYm9vbGVhblxuICBpc0V4cGVyaW1lbnRhbENvbXBpbGU/OiBib29sZWFuXG4gIGR5bmFtaWNJZHM/OiAoc3RyaW5nIHwgbnVtYmVyKVtdXG4gIGVycj86IEVycm9yICYge1xuICAgIHN0YXR1c0NvZGU/OiBudW1iZXJcbiAgICBzb3VyY2U/OiB0eXBlb2YgQ09NUElMRVJfTkFNRVMuc2VydmVyIHwgdHlwZW9mIENPTVBJTEVSX05BTUVTLmVkZ2VTZXJ2ZXJcbiAgfVxuICBnc3A/OiBib29sZWFuXG4gIGdzc3A/OiBib29sZWFuXG4gIGN1c3RvbVNlcnZlcj86IGJvb2xlYW5cbiAgZ2lwPzogYm9vbGVhblxuICBhcHBHaXA/OiBib29sZWFuXG4gIGxvY2FsZT86IHN0cmluZ1xuICBsb2NhbGVzPzogcmVhZG9ubHkgc3RyaW5nW11cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICBkb21haW5Mb2NhbGVzPzogcmVhZG9ubHkgRG9tYWluTG9jYWxlW11cbiAgc2NyaXB0TG9hZGVyPzogYW55W11cbiAgaXNQcmV2aWV3PzogYm9vbGVhblxuICBub3RGb3VuZFNyY1BhZ2U/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBgTmV4dGAgY29udGV4dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRQYWdlQ29udGV4dCB7XG4gIC8qKlxuICAgKiBFcnJvciBvYmplY3QgaWYgZW5jb3VudGVyZWQgZHVyaW5nIHJlbmRlcmluZ1xuICAgKi9cbiAgZXJyPzogKEVycm9yICYgeyBzdGF0dXNDb2RlPzogbnVtYmVyIH0pIHwgbnVsbFxuICAvKipcbiAgICogYEhUVFBgIHJlcXVlc3Qgb2JqZWN0LlxuICAgKi9cbiAgcmVxPzogSW5jb21pbmdNZXNzYWdlXG4gIC8qKlxuICAgKiBgSFRUUGAgcmVzcG9uc2Ugb2JqZWN0LlxuICAgKi9cbiAgcmVzPzogU2VydmVyUmVzcG9uc2VcbiAgLyoqXG4gICAqIFBhdGggc2VjdGlvbiBvZiBgVVJMYC5cbiAgICovXG4gIHBhdGhuYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFF1ZXJ5IHN0cmluZyBzZWN0aW9uIG9mIGBVUkxgIHBhcnNlZCBhcyBhbiBvYmplY3QuXG4gICAqL1xuICBxdWVyeTogUGFyc2VkVXJsUXVlcnlcbiAgLyoqXG4gICAqIGBTdHJpbmdgIG9mIHRoZSBhY3R1YWwgcGF0aCBpbmNsdWRpbmcgcXVlcnkuXG4gICAqL1xuICBhc1BhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgYWN0aXZlIGxvY2FsZVxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBBbGwgY29uZmlndXJlZCBsb2NhbGVzXG4gICAqL1xuICBsb2NhbGVzPzogcmVhZG9ubHkgc3RyaW5nW11cbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmVkIGRlZmF1bHQgbG9jYWxlXG4gICAqL1xuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBgQ29tcG9uZW50YCB0aGUgdHJlZSBvZiB0aGUgQXBwIHRvIHVzZSBpZiBuZWVkaW5nIHRvIHJlbmRlciBzZXBhcmF0ZWx5XG4gICAqL1xuICBBcHBUcmVlOiBBcHBUcmVlVHlwZVxufVxuXG5leHBvcnQgdHlwZSBBcHBDb250ZXh0VHlwZTxSb3V0ZXIgZXh0ZW5kcyBOZXh0Um91dGVyID0gTmV4dFJvdXRlcj4gPSB7XG4gIENvbXBvbmVudDogTmV4dENvbXBvbmVudFR5cGU8TmV4dFBhZ2VDb250ZXh0PlxuICBBcHBUcmVlOiBBcHBUcmVlVHlwZVxuICBjdHg6IE5leHRQYWdlQ29udGV4dFxuICByb3V0ZXI6IFJvdXRlclxufVxuXG5leHBvcnQgdHlwZSBBcHBJbml0aWFsUHJvcHM8UGFnZVByb3BzID0gYW55PiA9IHtcbiAgcGFnZVByb3BzOiBQYWdlUHJvcHNcbn1cblxuZXhwb3J0IHR5cGUgQXBwUHJvcHNUeXBlPFxuICBSb3V0ZXIgZXh0ZW5kcyBOZXh0Um91dGVyID0gTmV4dFJvdXRlcixcbiAgUGFnZVByb3BzID0ge30sXG4+ID0gQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcz4gJiB7XG4gIENvbXBvbmVudDogTmV4dENvbXBvbmVudFR5cGU8TmV4dFBhZ2VDb250ZXh0LCBhbnksIGFueT5cbiAgcm91dGVyOiBSb3V0ZXJcbiAgX19OX1NTRz86IGJvb2xlYW5cbiAgX19OX1NTUD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0ICYge1xuICByZW5kZXJQYWdlOiBSZW5kZXJQYWdlXG4gIGRlZmF1bHRHZXRJbml0aWFsUHJvcHMoXG4gICAgY3R4OiBEb2N1bWVudENvbnRleHQsXG4gICAgb3B0aW9ucz86IHsgbm9uY2U/OiBzdHJpbmcgfVxuICApOiBQcm9taXNlPERvY3VtZW50SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudEluaXRpYWxQcm9wcyA9IFJlbmRlclBhZ2VSZXN1bHQgJiB7XG4gIHN0eWxlcz86IFJlYWN0LlJlYWN0RWxlbWVudFtdIHwgSXRlcmFibGU8UmVhY3QuUmVhY3ROb2RlPiB8IEpTWC5FbGVtZW50XG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50UHJvcHMgPSBEb2N1bWVudEluaXRpYWxQcm9wcyAmIEh0bWxQcm9wc1xuXG4vKipcbiAqIE5leHQgYEFQSWAgcm91dGUgcmVxdWVzdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5leHRBcGlSZXF1ZXN0IGV4dGVuZHMgSW5jb21pbmdNZXNzYWdlIHtcbiAgLyoqXG4gICAqIE9iamVjdCBvZiBgcXVlcnlgIHZhbHVlcyBmcm9tIHVybFxuICAgKi9cbiAgcXVlcnk6IFBhcnRpYWw8e1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdXG4gIH0+XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYGNvb2tpZXNgIGZyb20gaGVhZGVyXG4gICAqL1xuICBjb29raWVzOiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdcbiAgfT5cblxuICBib2R5OiBhbnlcblxuICBlbnY6IEVudlxuXG4gIGRyYWZ0TW9kZT86IGJvb2xlYW5cblxuICBwcmV2aWV3PzogYm9vbGVhblxuICAvKipcbiAgICogUHJldmlldyBkYXRhIHNldCBvbiB0aGUgcmVxdWVzdCwgaWYgYW55XG4gICAqICovXG4gIHByZXZpZXdEYXRhPzogUHJldmlld0RhdGFcbn1cblxuLyoqXG4gKiBTZW5kIGJvZHkgb2YgcmVzcG9uc2VcbiAqL1xudHlwZSBTZW5kPFQ+ID0gKGJvZHk6IFQpID0+IHZvaWRcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlc3BvbnNlXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlSZXNwb25zZTxEYXRhID0gYW55PiA9IFNlcnZlclJlc3BvbnNlICYge1xuICAvKipcbiAgICogU2VuZCBkYXRhIGBhbnlgIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIHNlbmQ6IFNlbmQ8RGF0YT5cbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBganNvbmAgZGF0YSBpbiByZXNwb25zZVxuICAgKi9cbiAganNvbjogU2VuZDxEYXRhPlxuICBzdGF0dXM6IChzdGF0dXNDb2RlOiBudW1iZXIpID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuICByZWRpcmVjdCh1cmw6IHN0cmluZyk6IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuICByZWRpcmVjdChzdGF0dXM6IG51bWJlciwgdXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IGRyYWZ0IG1vZGVcbiAgICovXG4gIHNldERyYWZ0TW9kZTogKG9wdGlvbnM6IHsgZW5hYmxlOiBib29sZWFuIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBTZXQgcHJldmlldyBkYXRhIGZvciBOZXh0LmpzJyBwcmVyZW5kZXIgbW9kZVxuICAgKi9cbiAgc2V0UHJldmlld0RhdGE6IChcbiAgICBkYXRhOiBvYmplY3QgfCBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBudW1iZXIgKGluIHNlY29uZHMpIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIGxhc3QgZm9yLlxuICAgICAgICogVGhlIGdpdmVuIG51bWJlciB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBpbnRlZ2VyIGJ5IHJvdW5kaW5nIGRvd24uXG4gICAgICAgKiBCeSBkZWZhdWx0LCBubyBtYXhpbXVtIGFnZSBpcyBzZXQgYW5kIHRoZSBwcmV2aWV3IHNlc3Npb24gZmluaXNoZXNcbiAgICAgICAqIHdoZW4gdGhlIGNsaWVudCBzaHV0cyBkb3duIChicm93c2VyIGlzIGNsb3NlZCkuXG4gICAgICAgKi9cbiAgICAgIG1heEFnZT86IG51bWJlclxuICAgICAgLyoqXG4gICAgICAgKiBTcGVjaWZpZXMgdGhlIHBhdGggZm9yIHRoZSBwcmV2aWV3IHNlc3Npb24gdG8gd29yayB1bmRlci4gQnkgZGVmYXVsdCxcbiAgICAgICAqIHRoZSBwYXRoIGlzIGNvbnNpZGVyZWQgdGhlIFwiZGVmYXVsdCBwYXRoXCIsIGkuZS4sIGFueSBwYWdlcyB1bmRlciBcIi9cIi5cbiAgICAgICAqL1xuICAgICAgcGF0aD86IHN0cmluZ1xuICAgIH1cbiAgKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogQ2xlYXIgcHJldmlldyBkYXRhIGZvciBOZXh0LmpzJyBwcmVyZW5kZXIgbW9kZVxuICAgKi9cbiAgY2xlYXJQcmV2aWV3RGF0YTogKG9wdGlvbnM/OiB7IHBhdGg/OiBzdHJpbmcgfSkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFJldmFsaWRhdGUgYSBzcGVjaWZpYyBwYWdlIGFuZCByZWdlbmVyYXRlIGl0IHVzaW5nIE9uLURlbWFuZCBJbmNyZW1lbnRhbFxuICAgKiBTdGF0aWMgUmVnZW5lcmF0aW9uLlxuICAgKiBUaGUgcGF0aCBzaG91bGQgYmUgYW4gYWN0dWFsIHBhdGgsIG5vdCBhIHJld3JpdHRlbiBwYXRoLiBFLmcuIGZvclxuICAgKiBcIi9ibG9nL1tzbHVnXVwiIHRoaXMgc2hvdWxkIGJlIFwiL2Jsb2cvcG9zdC0xXCIuXG4gICAqIEBsaW5rIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvaW5jcmVtZW50YWwtc3RhdGljLXJlZ2VuZXJhdGlvbiNvbi1kZW1hbmQtcmV2YWxpZGF0aW9uLXdpdGgtcmV2YWxpZGF0ZXBhdGhcbiAgICovXG4gIHJldmFsaWRhdGU6IChcbiAgICB1cmxQYXRoOiBzdHJpbmcsXG4gICAgb3B0cz86IHtcbiAgICAgIHVuc3RhYmxlX29ubHlHZW5lcmF0ZWQ/OiBib29sZWFuXG4gICAgfVxuICApID0+IFByb21pc2U8dm9pZD5cbn1cblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIGhhbmRsZXJcbiAqL1xuZXhwb3J0IHR5cGUgTmV4dEFwaUhhbmRsZXI8VCA9IGFueT4gPSAoXG4gIHJlcTogTmV4dEFwaVJlcXVlc3QsXG4gIHJlczogTmV4dEFwaVJlc3BvbnNlPFQ+XG4pID0+IHVua25vd24gfCBQcm9taXNlPHVua25vd24+XG5cbi8qKlxuICogVXRpbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNPbmNlPFQgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IFJldHVyblR5cGU8VD4+KFxuICBmbjogVFxuKTogVCB7XG4gIGxldCB1c2VkID0gZmFsc2VcbiAgbGV0IHJlc3VsdDogUmV0dXJuVHlwZTxUPlxuXG4gIHJldHVybiAoKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgaWYgKCF1c2VkKSB7XG4gICAgICB1c2VkID0gdHJ1ZVxuICAgICAgcmVzdWx0ID0gZm4oLi4uYXJncylcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KSBhcyBUXG59XG5cbi8vIFNjaGVtZTogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYjc2VjdGlvbi0zLjFcbi8vIEFic29sdXRlIFVSTDogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM5ODYjc2VjdGlvbi00LjNcbmNvbnN0IEFCU09MVVRFX1VSTF9SRUdFWCA9IC9eW2EtekEtWl1bYS16QS1aXFxkK1xcLS5dKj86L1xuZXhwb3J0IGNvbnN0IGlzQWJzb2x1dGVVcmwgPSAodXJsOiBzdHJpbmcpID0+IEFCU09MVVRFX1VSTF9SRUdFWC50ZXN0KHVybClcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2F0aW9uT3JpZ2luKCkge1xuICBjb25zdCB7IHByb3RvY29sLCBob3N0bmFtZSwgcG9ydCB9ID0gd2luZG93LmxvY2F0aW9uXG4gIHJldHVybiBgJHtwcm90b2NvbH0vLyR7aG9zdG5hbWV9JHtwb3J0ID8gJzonICsgcG9ydCA6ICcnfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVSTCgpIHtcbiAgY29uc3QgeyBocmVmIH0gPSB3aW5kb3cubG9jYXRpb25cbiAgY29uc3Qgb3JpZ2luID0gZ2V0TG9jYXRpb25PcmlnaW4oKVxuICByZXR1cm4gaHJlZi5zdWJzdHJpbmcob3JpZ2luLmxlbmd0aClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3BsYXlOYW1lPFA+KENvbXBvbmVudDogQ29tcG9uZW50VHlwZTxQPikge1xuICByZXR1cm4gdHlwZW9mIENvbXBvbmVudCA9PT0gJ3N0cmluZydcbiAgICA/IENvbXBvbmVudFxuICAgIDogQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdVbmtub3duJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXNTZW50KHJlczogU2VydmVyUmVzcG9uc2UpIHtcbiAgcmV0dXJuIHJlcy5maW5pc2hlZCB8fCByZXMuaGVhZGVyc1NlbnRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmw6IHN0cmluZykge1xuICBjb25zdCB1cmxQYXJ0cyA9IHVybC5zcGxpdCgnPycpXG4gIGNvbnN0IHVybE5vUXVlcnkgPSB1cmxQYXJ0c1swXVxuXG4gIHJldHVybiAoXG4gICAgdXJsTm9RdWVyeVxuICAgICAgLy8gZmlyc3Qgd2UgcmVwbGFjZSBhbnkgbm9uLWVuY29kZWQgYmFja3NsYXNoZXMgd2l0aCBmb3J3YXJkXG4gICAgICAvLyB0aGVuIG5vcm1hbGl6ZSByZXBlYXRlZCBmb3J3YXJkIHNsYXNoZXNcbiAgICAgIC5yZXBsYWNlKC9cXFxcL2csICcvJylcbiAgICAgIC5yZXBsYWNlKC9cXC9cXC8rL2csICcvJykgK1xuICAgICh1cmxQYXJ0c1sxXSA/IGA/JHt1cmxQYXJ0cy5zbGljZSgxKS5qb2luKCc/Jyl9YCA6ICcnKVxuICApXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkR2V0SW5pdGlhbFByb3BzPFxuICBDIGV4dGVuZHMgQmFzZUNvbnRleHQsXG4gIElQID0ge30sXG4gIFAgPSB7fSxcbj4oQXBwOiBOZXh0Q29tcG9uZW50VHlwZTxDLCBJUCwgUD4sIGN0eDogQyk6IFByb21pc2U8SVA+IHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoQXBwLnByb3RvdHlwZT8uZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgQXBwXG4gICAgICApfS5nZXRJbml0aWFsUHJvcHMoKVwiIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kIC0gdmlzaXQgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZ2V0LWluaXRpYWwtcHJvcHMtYXMtYW4taW5zdGFuY2UtbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uLmBcbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICAgIH1cbiAgfVxuICAvLyB3aGVuIGNhbGxlZCBmcm9tIF9hcHAgYGN0eGAgaXMgbmVzdGVkIGluIGBjdHhgXG4gIGNvbnN0IHJlcyA9IGN0eC5yZXMgfHwgKGN0eC5jdHggJiYgY3R4LmN0eC5yZXMpXG5cbiAgaWYgKCFBcHAuZ2V0SW5pdGlhbFByb3BzKSB7XG4gICAgaWYgKGN0eC5jdHggJiYgY3R4LkNvbXBvbmVudCkge1xuICAgICAgLy8gQHRzLWlnbm9yZSBwYWdlUHJvcHMgZGVmYXVsdFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGFnZVByb3BzOiBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKGN0eC5Db21wb25lbnQsIGN0eC5jdHgpLFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge30gYXMgSVBcbiAgfVxuXG4gIGNvbnN0IHByb3BzID0gYXdhaXQgQXBwLmdldEluaXRpYWxQcm9wcyhjdHgpXG5cbiAgaWYgKHJlcyAmJiBpc1Jlc1NlbnQocmVzKSkge1xuICAgIHJldHVybiBwcm9wc1xuICB9XG5cbiAgaWYgKCFwcm9wcykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBgXCIke2dldERpc3BsYXlOYW1lKFxuICAgICAgQXBwXG4gICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBzaG91bGQgcmVzb2x2ZSB0byBhbiBvYmplY3QuIEJ1dCBmb3VuZCBcIiR7cHJvcHN9XCIgaW5zdGVhZC5gXG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpXG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoID09PSAwICYmICFjdHguY3R4KSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGAke2dldERpc3BsYXlOYW1lKFxuICAgICAgICAgIEFwcFxuICAgICAgICApfSByZXR1cm5lZCBhbiBlbXB0eSBvYmplY3QgZnJvbSBcXGBnZXRJbml0aWFsUHJvcHNcXGAuIFRoaXMgZGUtb3B0aW1pemVzIGFuZCBwcmV2ZW50cyBhdXRvbWF0aWMgc3RhdGljIG9wdGltaXphdGlvbi4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZW1wdHktb2JqZWN0LWdldEluaXRpYWxQcm9wc2BcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJvcHNcbn1cblxuZXhwb3J0IGNvbnN0IFNQID0gdHlwZW9mIHBlcmZvcm1hbmNlICE9PSAndW5kZWZpbmVkJ1xuZXhwb3J0IGNvbnN0IFNUID1cbiAgU1AgJiZcbiAgKFsnbWFyaycsICdtZWFzdXJlJywgJ2dldEVudHJpZXNCeU5hbWUnXSBhcyBjb25zdCkuZXZlcnkoXG4gICAgKG1ldGhvZCkgPT4gdHlwZW9mIHBlcmZvcm1hbmNlW21ldGhvZF0gPT09ICdmdW5jdGlvbidcbiAgKVxuXG5leHBvcnQgY2xhc3MgRGVjb2RlRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuZXhwb3J0IGNsYXNzIE5vcm1hbGl6ZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBQYWdlTm90Rm91bmRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29kZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5uYW1lID0gJ1BhZ2VOb3RGb3VuZEVycm9yJ1xuICAgIHRoaXMubWVzc2FnZSA9IGBDYW5ub3QgZmluZCBtb2R1bGUgZm9yIHBhZ2U6ICR7cGFnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pc3NpbmdTdGF0aWNQYWdlIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwYWdlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLm1lc3NhZ2UgPSBgRmFpbGVkIHRvIGxvYWQgc3RhdGljIGZpbGUgZm9yIHBhZ2U6ICR7cGFnZX0gJHttZXNzYWdlfWBcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5jb2RlID0gJ0VOT0VOVCdcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgdGhlIG1pZGRsZXdhcmUgbW9kdWxlYFxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGVGcyB7XG4gIGV4aXN0c1N5bmM6IHR5cGVvZiBmcy5leGlzdHNTeW5jXG4gIHJlYWRGaWxlOiB0eXBlb2YgZnMucHJvbWlzZXMucmVhZEZpbGVcbiAgcmVhZEZpbGVTeW5jOiB0eXBlb2YgZnMucmVhZEZpbGVTeW5jXG4gIHdyaXRlRmlsZShmOiBzdHJpbmcsIGQ6IGFueSk6IFByb21pc2U8dm9pZD5cbiAgbWtkaXIoZGlyOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQgfCBzdHJpbmc+XG4gIHN0YXQoZjogc3RyaW5nKTogUHJvbWlzZTx7IG10aW1lOiBEYXRlIH0+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnlFcnJvcihlcnJvcjogRXJyb3IpIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgbWVzc2FnZTogZXJyb3IubWVzc2FnZSwgc3RhY2s6IGVycm9yLnN0YWNrIH0pXG59XG4iXSwibmFtZXMiOlsiRGVjb2RlRXJyb3IiLCJNaWRkbGV3YXJlTm90Rm91bmRFcnJvciIsIk1pc3NpbmdTdGF0aWNQYWdlIiwiTm9ybWFsaXplRXJyb3IiLCJQYWdlTm90Rm91bmRFcnJvciIsIlNQIiwiU1QiLCJXRUJfVklUQUxTIiwiZXhlY09uY2UiLCJnZXREaXNwbGF5TmFtZSIsImdldExvY2F0aW9uT3JpZ2luIiwiZ2V0VVJMIiwiaXNBYnNvbHV0ZVVybCIsImlzUmVzU2VudCIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJzdHJpbmdpZnlFcnJvciIsImZuIiwidXNlZCIsInJlc3VsdCIsImFyZ3MiLCJBQlNPTFVURV9VUkxfUkVHRVgiLCJ1cmwiLCJ0ZXN0IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsInBvcnQiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJvcmlnaW4iLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsIm5hbWUiLCJyZXMiLCJmaW5pc2hlZCIsImhlYWRlcnNTZW50IiwidXJsUGFydHMiLCJzcGxpdCIsInVybE5vUXVlcnkiLCJyZXBsYWNlIiwic2xpY2UiLCJqb2luIiwiQXBwIiwiY3R4IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwicHJvdG90eXBlIiwiZ2V0SW5pdGlhbFByb3BzIiwibWVzc2FnZSIsIkVycm9yIiwicGFnZVByb3BzIiwicHJvcHMiLCJPYmplY3QiLCJrZXlzIiwiY29uc29sZSIsIndhcm4iLCJwZXJmb3JtYW5jZSIsImV2ZXJ5IiwibWV0aG9kIiwiY29uc3RydWN0b3IiLCJwYWdlIiwiY29kZSIsImVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/warn-once.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/utils/warn-once.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"warnOnce\", ({\n enumerable: true,\n get: function() {\n return warnOnce;\n }\n}));\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} //# sourceMappingURL=warn-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHBhZ2VzLWRpci1ub2RlKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy93YXJuLW9uY2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs0Q0FXU0E7OztlQUFBQTs7O0FBWFQsSUFBSUEsV0FBVyxDQUFDQyxLQUFlO0FBQy9CLElBQUlDLElBQW9CLEVBQW1CO0lBQ3pDLE1BQU1HLFdBQVcsSUFBSUM7SUFDckJOLFdBQVcsQ0FBQ087UUFDVixJQUFJLENBQUNGLFNBQVNHLEdBQUcsQ0FBQ0QsTUFBTTtZQUN0QkUsUUFBUUMsSUFBSSxDQUFDSDtRQUNmO1FBQ0FGLFNBQVNNLEdBQUcsQ0FBQ0o7SUFDZjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCB3YXJuT25jZSA9IChfOiBzdHJpbmcpID0+IHt9XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBjb25zdCB3YXJuaW5ncyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIHdhcm5PbmNlID0gKG1zZzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCF3YXJuaW5ncy5oYXMobXNnKSkge1xuICAgICAgY29uc29sZS53YXJuKG1zZylcbiAgICB9XG4gICAgd2FybmluZ3MuYWRkKG1zZylcbiAgfVxufVxuXG5leHBvcnQgeyB3YXJuT25jZSB9XG4iXSwibmFtZXMiOlsid2Fybk9uY2UiLCJfIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2FybmluZ3MiLCJTZXQiLCJtc2ciLCJoYXMiLCJjb25zb2xlIiwid2FybiIsImFkZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(pages-dir-node)/./node_modules/next/dist/shared/lib/utils/warn-once.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/build/output/log.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/build/output/log.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 bootstrap: function() {\n return bootstrap;\n },\n error: function() {\n return error;\n },\n event: function() {\n return event;\n },\n info: function() {\n return info;\n },\n prefixes: function() {\n return prefixes;\n },\n ready: function() {\n return ready;\n },\n trace: function() {\n return trace;\n },\n wait: function() {\n return wait;\n },\n warn: function() {\n return warn;\n },\n warnOnce: function() {\n return warnOnce;\n }\n});\nconst _picocolors = __webpack_require__(/*! ../../lib/picocolors */ \"(rsc)/./node_modules/next/dist/lib/picocolors.js\");\nconst _lrucache = __webpack_require__(/*! ../../server/lib/lru-cache */ \"(rsc)/./node_modules/next/dist/server/lib/lru-cache.js\");\nconst prefixes = {\n wait: (0, _picocolors.white)((0, _picocolors.bold)('○')),\n error: (0, _picocolors.red)((0, _picocolors.bold)('⨯')),\n warn: (0, _picocolors.yellow)((0, _picocolors.bold)('⚠')),\n ready: '▲',\n info: (0, _picocolors.white)((0, _picocolors.bold)(' ')),\n event: (0, _picocolors.green)((0, _picocolors.bold)('✓')),\n trace: (0, _picocolors.magenta)((0, _picocolors.bold)('»'))\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 // Ensure if there's ANSI escape codes it's concatenated into one string.\n // Chrome DevTool can only handle color if it's in one string.\n if (message.length === 1 && typeof message[0] === 'string') {\n console[consoleMethod](' ' + prefix + ' ' + message[0]);\n } else {\n console[consoleMethod](' ' + prefix, ...message);\n }\n }\n}\nfunction bootstrap(...message) {\n // logging format: ' <prefix> <message>'\n // e.g. ' ✓ Compiled successfully'\n // Add spaces to align with the indent of other logs\n console.log(' ' + message.join(' '));\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 warnOnceCache = new _lrucache.LRUCache(10000, (value)=>value.length);\nfunction warnOnce(...message) {\n const key = message.join(' ');\n if (!warnOnceCache.has(key)) {\n warnOnceCache.set(key, key);\n warn(...message);\n }\n}\n\n//# sourceMappingURL=log.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL291dHB1dC9sb2cuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBV0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG9CQUFvQixtQkFBTyxDQUFDLDhFQUFzQjtBQUNsRCxrQkFBa0IsbUJBQU8sQ0FBQywwRkFBNEI7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvb3V0cHV0L2xvZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGJvb3RzdHJhcDogbnVsbCxcbiAgICBlcnJvcjogbnVsbCxcbiAgICBldmVudDogbnVsbCxcbiAgICBpbmZvOiBudWxsLFxuICAgIHByZWZpeGVzOiBudWxsLFxuICAgIHJlYWR5OiBudWxsLFxuICAgIHRyYWNlOiBudWxsLFxuICAgIHdhaXQ6IG51bGwsXG4gICAgd2FybjogbnVsbCxcbiAgICB3YXJuT25jZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBib290c3RyYXA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYm9vdHN0cmFwO1xuICAgIH0sXG4gICAgZXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfSxcbiAgICBldmVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBldmVudDtcbiAgICB9LFxuICAgIGluZm86IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW5mbztcbiAgICB9LFxuICAgIHByZWZpeGVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeGVzO1xuICAgIH0sXG4gICAgcmVhZHk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVhZHk7XG4gICAgfSxcbiAgICB0cmFjZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0cmFjZTtcbiAgICB9LFxuICAgIHdhaXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FpdDtcbiAgICB9LFxuICAgIHdhcm46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FybjtcbiAgICB9LFxuICAgIHdhcm5PbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdhcm5PbmNlO1xuICAgIH1cbn0pO1xuY29uc3QgX3BpY29jb2xvcnMgPSByZXF1aXJlKFwiLi4vLi4vbGliL3BpY29jb2xvcnNcIik7XG5jb25zdCBfbHJ1Y2FjaGUgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL2xpYi9scnUtY2FjaGVcIik7XG5jb25zdCBwcmVmaXhlcyA9IHtcbiAgICB3YWl0OiAoMCwgX3BpY29jb2xvcnMud2hpdGUpKCgwLCBfcGljb2NvbG9ycy5ib2xkKSgn4peLJykpLFxuICAgIGVycm9yOiAoMCwgX3BpY29jb2xvcnMucmVkKSgoMCwgX3BpY29jb2xvcnMuYm9sZCkoJ+KorycpKSxcbiAgICB3YXJuOiAoMCwgX3BpY29jb2xvcnMueWVsbG93KSgoMCwgX3BpY29jb2xvcnMuYm9sZCkoJ+KaoCcpKSxcbiAgICByZWFkeTogJ+KWsicsXG4gICAgaW5mbzogKDAsIF9waWNvY29sb3JzLndoaXRlKSgoMCwgX3BpY29jb2xvcnMuYm9sZCkoJyAnKSksXG4gICAgZXZlbnQ6ICgwLCBfcGljb2NvbG9ycy5ncmVlbikoKDAsIF9waWNvY29sb3JzLmJvbGQpKCfinJMnKSksXG4gICAgdHJhY2U6ICgwLCBfcGljb2NvbG9ycy5tYWdlbnRhKSgoMCwgX3BpY29jb2xvcnMuYm9sZCkoJ8K7JykpXG59O1xuY29uc3QgTE9HR0lOR19NRVRIT0QgPSB7XG4gICAgbG9nOiAnbG9nJyxcbiAgICB3YXJuOiAnd2FybicsXG4gICAgZXJyb3I6ICdlcnJvcidcbn07XG5mdW5jdGlvbiBwcmVmaXhlZExvZyhwcmVmaXhUeXBlLCAuLi5tZXNzYWdlKSB7XG4gICAgaWYgKChtZXNzYWdlWzBdID09PSAnJyB8fCBtZXNzYWdlWzBdID09PSB1bmRlZmluZWQpICYmIG1lc3NhZ2UubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIG1lc3NhZ2Uuc2hpZnQoKTtcbiAgICB9XG4gICAgY29uc3QgY29uc29sZU1ldGhvZCA9IHByZWZpeFR5cGUgaW4gTE9HR0lOR19NRVRIT0QgPyBMT0dHSU5HX01FVEhPRFtwcmVmaXhUeXBlXSA6ICdsb2cnO1xuICAgIGNvbnN0IHByZWZpeCA9IHByZWZpeGVzW3ByZWZpeFR5cGVdO1xuICAgIC8vIElmIHRoZXJlJ3Mgbm8gbWVzc2FnZSwgZG9uJ3QgcHJpbnQgdGhlIHByZWZpeCBidXQgYSBuZXcgbGluZVxuICAgIGlmIChtZXNzYWdlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlW2NvbnNvbGVNZXRob2RdKCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBFbnN1cmUgaWYgdGhlcmUncyBBTlNJIGVzY2FwZSBjb2RlcyBpdCdzIGNvbmNhdGVuYXRlZCBpbnRvIG9uZSBzdHJpbmcuXG4gICAgICAgIC8vIENocm9tZSBEZXZUb29sIGNhbiBvbmx5IGhhbmRsZSBjb2xvciBpZiBpdCdzIGluIG9uZSBzdHJpbmcuXG4gICAgICAgIGlmIChtZXNzYWdlLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgbWVzc2FnZVswXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnNvbGVbY29uc29sZU1ldGhvZF0oJyAnICsgcHJlZml4ICsgJyAnICsgbWVzc2FnZVswXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlW2NvbnNvbGVNZXRob2RdKCcgJyArIHByZWZpeCwgLi4ubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBib290c3RyYXAoLi4ubWVzc2FnZSkge1xuICAgIC8vIGxvZ2dpbmcgZm9ybWF0OiAnIDxwcmVmaXg+IDxtZXNzYWdlPidcbiAgICAvLyBlLmcuICcg4pyTIENvbXBpbGVkIHN1Y2Nlc3NmdWxseSdcbiAgICAvLyBBZGQgc3BhY2VzIHRvIGFsaWduIHdpdGggdGhlIGluZGVudCBvZiBvdGhlciBsb2dzXG4gICAgY29uc29sZS5sb2coJyAgICcgKyBtZXNzYWdlLmpvaW4oJyAnKSk7XG59XG5mdW5jdGlvbiB3YWl0KC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZygnd2FpdCcsIC4uLm1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gZXJyb3IoLi4ubWVzc2FnZSkge1xuICAgIHByZWZpeGVkTG9nKCdlcnJvcicsIC4uLm1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gd2FybiguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coJ3dhcm4nLCAuLi5tZXNzYWdlKTtcbn1cbmZ1bmN0aW9uIHJlYWR5KC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZygncmVhZHknLCAuLi5tZXNzYWdlKTtcbn1cbmZ1bmN0aW9uIGluZm8oLi4ubWVzc2FnZSkge1xuICAgIHByZWZpeGVkTG9nKCdpbmZvJywgLi4ubWVzc2FnZSk7XG59XG5mdW5jdGlvbiBldmVudCguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coJ2V2ZW50JywgLi4ubWVzc2FnZSk7XG59XG5mdW5jdGlvbiB0cmFjZSguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coJ3RyYWNlJywgLi4ubWVzc2FnZSk7XG59XG5jb25zdCB3YXJuT25jZUNhY2hlID0gbmV3IF9scnVjYWNoZS5MUlVDYWNoZSgxMDAwMCwgKHZhbHVlKT0+dmFsdWUubGVuZ3RoKTtcbmZ1bmN0aW9uIHdhcm5PbmNlKC4uLm1lc3NhZ2UpIHtcbiAgICBjb25zdCBrZXkgPSBtZXNzYWdlLmpvaW4oJyAnKTtcbiAgICBpZiAoIXdhcm5PbmNlQ2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgd2Fybk9uY2VDYWNoZS5zZXQoa2V5LCBrZXkpO1xuICAgICAgICB3YXJuKC4uLm1lc3NhZ2UpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG9nLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/output/log.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* eslint-disable import/no-extraneous-dependencies */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createProxy\", ({\n enumerable: true,\n get: function() {\n return createProxy;\n }\n}));\nconst _server = __webpack_require__(/*! react-server-dom-webpack/server */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\");\nconst createProxy = _server.createClientModuleProxy;\n\n//# sourceMappingURL=module-proxy.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5LmpzIiwibWFwcGluZ3MiOiJBQUFBLHVEQUFvRTtBQUNwRSw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwrQ0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixnQkFBZ0IsbUJBQU8sQ0FBQyxxSkFBaUM7QUFDekQ7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWxvYWRlci9tb2R1bGUtcHJveHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY3JlYXRlUHJveHlcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVByb3h5O1xuICAgIH1cbn0pO1xuY29uc3QgX3NlcnZlciA9IHJlcXVpcmUoXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svc2VydmVyXCIpO1xuY29uc3QgY3JlYXRlUHJveHkgPSBfc2VydmVyLmNyZWF0ZUNsaWVudE1vZHVsZVByb3h5O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUtcHJveHkuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/app-router-headers.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/app-router-headers.js ***!
|
||
\************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 ACTION_HEADER: function() {\n return ACTION_HEADER;\n },\n FLIGHT_HEADERS: function() {\n return FLIGHT_HEADERS;\n },\n NEXT_ACTION_NOT_FOUND_HEADER: function() {\n return NEXT_ACTION_NOT_FOUND_HEADER;\n },\n NEXT_DID_POSTPONE_HEADER: function() {\n return NEXT_DID_POSTPONE_HEADER;\n },\n NEXT_HMR_REFRESH_HASH_COOKIE: function() {\n return NEXT_HMR_REFRESH_HASH_COOKIE;\n },\n NEXT_HMR_REFRESH_HEADER: function() {\n return NEXT_HMR_REFRESH_HEADER;\n },\n NEXT_IS_PRERENDER_HEADER: function() {\n return NEXT_IS_PRERENDER_HEADER;\n },\n NEXT_REWRITTEN_PATH_HEADER: function() {\n return NEXT_REWRITTEN_PATH_HEADER;\n },\n NEXT_REWRITTEN_QUERY_HEADER: function() {\n return NEXT_REWRITTEN_QUERY_HEADER;\n },\n NEXT_ROUTER_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_PREFETCH_HEADER;\n },\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_SEGMENT_PREFETCH_HEADER;\n },\n NEXT_ROUTER_STALE_TIME_HEADER: function() {\n return NEXT_ROUTER_STALE_TIME_HEADER;\n },\n NEXT_ROUTER_STATE_TREE_HEADER: function() {\n return NEXT_ROUTER_STATE_TREE_HEADER;\n },\n NEXT_RSC_UNION_QUERY: function() {\n return NEXT_RSC_UNION_QUERY;\n },\n NEXT_URL: function() {\n return NEXT_URL;\n },\n RSC_CONTENT_TYPE_HEADER: function() {\n return RSC_CONTENT_TYPE_HEADER;\n },\n RSC_HEADER: function() {\n return RSC_HEADER;\n }\n});\nconst RSC_HEADER = 'rsc';\nconst ACTION_HEADER = 'next-action';\nconst NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree';\nconst NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch';\nconst NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'next-router-segment-prefetch';\nconst NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh';\nconst NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__';\nconst NEXT_URL = 'next-url';\nconst RSC_CONTENT_TYPE_HEADER = 'text/x-component';\nconst FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER\n];\nconst NEXT_RSC_UNION_QUERY = '_rsc';\nconst NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time';\nconst NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed';\nconst NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path';\nconst NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query';\nconst NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender';\nconst NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDYUEsYUFBYTtlQUFiQTs7SUFpQkFDLGNBQWM7ZUFBZEE7O0lBZUFDLDRCQUE0QjtlQUE1QkE7O0lBSkFDLHdCQUF3QjtlQUF4QkE7O0lBZkFDLDRCQUE0QjtlQUE1QkE7O0lBREFDLHVCQUF1QjtlQUF2QkE7O0lBbUJBQyx3QkFBd0I7ZUFBeEJBOztJQUZBQywwQkFBMEI7ZUFBMUJBOztJQUNBQywyQkFBMkI7ZUFBM0JBOztJQXpCQUMsMkJBQTJCO2VBQTNCQTs7SUFLQUMsbUNBQW1DO2VBQW5DQTs7SUFpQkFDLDZCQUE2QjtlQUE3QkE7O0lBdkJBQyw2QkFBNkI7ZUFBN0JBOztJQXFCQUMsb0JBQW9CO2VBQXBCQTs7SUFYQUMsUUFBUTtlQUFSQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFoQkFDLFVBQVU7ZUFBVkE7OztBQUFOLE1BQU1BLGFBQWE7QUFDbkIsTUFBTWhCLGdCQUFnQjtBQUl0QixNQUFNWSxnQ0FBZ0M7QUFDdEMsTUFBTUgsOEJBQThCO0FBS3BDLE1BQU1DLHNDQUNYO0FBQ0ssTUFBTUwsMEJBQTBCO0FBQ2hDLE1BQU1ELCtCQUErQjtBQUNyQyxNQUFNVSxXQUFXO0FBQ2pCLE1BQU1DLDBCQUEwQjtBQUVoQyxNQUFNZCxpQkFBaUI7SUFDNUJlO0lBQ0FKO0lBQ0FIO0lBQ0FKO0lBQ0FLO0NBQ0Q7QUFFTSxNQUFNRyx1QkFBdUI7QUFFN0IsTUFBTUYsZ0NBQWdDO0FBQ3RDLE1BQU1SLDJCQUEyQjtBQUNqQyxNQUFNSSw2QkFBNkI7QUFDbkMsTUFBTUMsOEJBQThCO0FBQ3BDLE1BQU1GLDJCQUEyQjtBQUNqQyxNQUFNSiwrQkFBK0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJTQ19IRUFERVIgPSAncnNjJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IEFDVElPTl9IRUFERVIgPSAnbmV4dC1hY3Rpb24nIGFzIGNvbnN0XG4vLyBUT0RPOiBJbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIGZ1bGwgcm91dGVyIHN0YXRlLCB3ZSBvbmx5IG5lZWQgdG8gc2VuZCB0aGVcbi8vIHNlZ21lbnQgcGF0aC4gU2F2ZXMgYnl0ZXMuIFRoZW4gd2UgY291bGQgYWxzbyB1c2UgdGhpcyBmaWVsZCBmb3Igc2VnbWVudFxuLy8gcHJlZmV0Y2hlcywgd2hpY2ggYWxzbyBuZWVkIHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIHNlZ21lbnQuXG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIgPSAnbmV4dC1yb3V0ZXItc3RhdGUtdHJlZScgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIgPSAnbmV4dC1yb3V0ZXItcHJlZmV0Y2gnIGFzIGNvbnN0XG4vLyBUaGlzIGNvbnRhaW5zIHRoZSBwYXRoIHRvIHRoZSBzZWdtZW50IGJlaW5nIHByZWZldGNoZWQuXG4vLyBUT0RPOiBJZiB3ZSBjaGFuZ2UgbmV4dC1yb3V0ZXItc3RhdGUtdHJlZSB0byBiZSBhIHNlZ21lbnQgcGF0aCwgd2UgY2FuIHVzZVxuLy8gdGhhdCBpbnN0ZWFkLiBUaGVuIG5leHQtcm91dGVyLXByZWZldGNoIGFuZCBuZXh0LXJvdXRlci1zZWdtZW50LXByZWZldGNoIGNhblxuLy8gYmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgZW51bS5cbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUiA9XG4gICduZXh0LXJvdXRlci1zZWdtZW50LXByZWZldGNoJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSE1SX1JFRlJFU0hfSEVBREVSID0gJ25leHQtaG1yLXJlZnJlc2gnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRSA9ICdfX25leHRfaG1yX3JlZnJlc2hfaGFzaF9fJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfVVJMID0gJ25leHQtdXJsJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IFJTQ19DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQveC1jb21wb25lbnQnIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBGTElHSFRfSEVBREVSUyA9IFtcbiAgUlNDX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTkVYVF9SU0NfVU5JT05fUVVFUlkgPSAnX3JzYycgYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSID0gJ3gtbmV4dGpzLXN0YWxlLXRpbWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSID0gJ3gtbmV4dGpzLXBvc3Rwb25lZCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiA9ICd4LW5leHRqcy1yZXdyaXR0ZW4tcGF0aCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9RVUVSWV9IRUFERVIgPSAneC1uZXh0anMtcmV3cml0dGVuLXF1ZXJ5JyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSVNfUFJFUkVOREVSX0hFQURFUiA9ICd4LW5leHRqcy1wcmVyZW5kZXInIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUiA9ICd4LW5leHRqcy1hY3Rpb24tbm90LWZvdW5kJyBhcyBjb25zdFxuIl0sIm5hbWVzIjpbIkFDVElPTl9IRUFERVIiLCJGTElHSFRfSEVBREVSUyIsIk5FWFRfQUNUSU9OX05PVF9GT1VORF9IRUFERVIiLCJORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIiLCJORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIiwiTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIiLCJORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIiLCJORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiIsIk5FWFRfUkVXUklUVEVOX1FVRVJZX0hFQURFUiIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUiIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiTkVYVF9VUkwiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsIlJTQ19IRUFERVIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/builtin/forbidden.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/builtin/forbidden.js ***!
|
||
\***********************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Forbidden;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _errorfallback = __webpack_require__(/*! ../http-access-fallback/error-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\");\nfunction Forbidden() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, {\n status: 403,\n message: \"This page could not be accessed.\"\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=forbidden.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZm9yYmlkZGVuLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBRUE7OztlQUF3QkE7Ozs7MkNBRmdCO0FBRXpCLFNBQVNBO0lBQ3RCLHFCQUNFLHFCQUFDQyxlQUFBQSx1QkFBdUI7UUFDdEJDLFFBQVE7UUFDUkMsU0FBUTs7QUFHZCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL2ZvcmJpZGRlbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2sgfSBmcm9tICcuLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1mYWxsYmFjaydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRm9yYmlkZGVuKCkge1xuICByZXR1cm4gKFxuICAgIDxIVFRQQWNjZXNzRXJyb3JGYWxsYmFja1xuICAgICAgc3RhdHVzPXs0MDN9XG4gICAgICBtZXNzYWdlPVwiVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBhY2Nlc3NlZC5cIlxuICAgIC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJGb3JiaWRkZW4iLCJIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayIsInN0YXR1cyIsIm1lc3NhZ2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/forbidden.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/builtin/global-error.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/builtin/global-error.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/node_modules/next/dist/client/components/builtin/global-error.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJfTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL2dsb2JhbC1lcnJvci5qcy9fX25leHRqcy1pbnRlcm5hbC1wcm94eS5janMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgV2VicGFjayBuZXh0LWZsaWdodC1sb2FkZXIuXG5jb25zdCB7IGNyZWF0ZVByb3h5IH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5XCIpXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUHJveHkoXCIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLmpzXCIpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/global-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/builtin/not-found.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/builtin/not-found.js ***!
|
||
\***********************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return NotFound;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _errorfallback = __webpack_require__(/*! ../http-access-fallback/error-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\");\nfunction NotFound() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, {\n status: 404,\n message: \"This page could not be found.\"\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=not-found.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vbm90LWZvdW5kLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBRUE7OztlQUF3QkE7Ozs7MkNBRmdCO0FBRXpCLFNBQVNBO0lBQ3RCLHFCQUNFLHFCQUFDQyxlQUFBQSx1QkFBdUI7UUFDdEJDLFFBQVE7UUFDUkMsU0FBUTs7QUFHZCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL25vdC1mb3VuZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2sgfSBmcm9tICcuLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1mYWxsYmFjaydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTm90Rm91bmQoKSB7XG4gIHJldHVybiAoXG4gICAgPEhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrXG4gICAgICBzdGF0dXM9ezQwNH1cbiAgICAgIG1lc3NhZ2U9XCJUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kLlwiXG4gICAgLz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIk5vdEZvdW5kIiwiSFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2siLCJzdGF0dXMiLCJtZXNzYWdlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/not-found.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/builtin/unauthorized.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/builtin/unauthorized.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Unauthorized;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _errorfallback = __webpack_require__(/*! ../http-access-fallback/error-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\");\nfunction Unauthorized() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, {\n status: 401,\n message: \"You're not authorized to access this page.\"\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unauthorized.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vdW5hdXRob3JpemVkLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBRUE7OztlQUF3QkE7Ozs7MkNBRmdCO0FBRXpCLFNBQVNBO0lBQ3RCLHFCQUNFLHFCQUFDQyxlQUFBQSx1QkFBdUI7UUFDdEJDLFFBQVE7UUFDUkMsU0FBUTs7QUFHZCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL3VuYXV0aG9yaXplZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2sgfSBmcm9tICcuLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1mYWxsYmFjaydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gVW5hdXRob3JpemVkKCkge1xuICByZXR1cm4gKFxuICAgIDxIVFRQQWNjZXNzRXJyb3JGYWxsYmFja1xuICAgICAgc3RhdHVzPXs0MDF9XG4gICAgICBtZXNzYWdlPVwiWW91J3JlIG5vdCBhdXRob3JpemVkIHRvIGFjY2VzcyB0aGlzIHBhZ2UuXCJcbiAgICAvPlxuICApXG59XG4iXSwibmFtZXMiOlsiVW5hdXRob3JpemVkIiwiSFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2siLCJzdGF0dXMiLCJtZXNzYWdlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/unauthorized.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/client-page.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/client-page.js ***!
|
||
\*****************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/node_modules/next/dist/client/components/client-page.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJfTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZS5qcy9fX25leHRqcy1pbnRlcm5hbC1wcm94eS5janMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgV2VicGFjayBuZXh0LWZsaWdodC1sb2FkZXIuXG5jb25zdCB7IGNyZWF0ZVByb3h5IH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5XCIpXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUHJveHkoXCIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzXCIpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/client-page.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/client-segment.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/client-segment.js ***!
|
||
\********************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/node_modules/next/dist/client/components/client-segment.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1zZWdtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJfTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtc2VnbWVudC5qcy9fX25leHRqcy1pbnRlcm5hbC1wcm94eS5janMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgV2VicGFjayBuZXh0LWZsaWdodC1sb2FkZXIuXG5jb25zdCB7IGNyZWF0ZVByb3h5IH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5XCIpXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUHJveHkoXCIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1zZWdtZW50LmpzXCIpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/client-segment.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/hooks-server-context.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 DynamicServerError: function() {\n return DynamicServerError;\n },\n isDynamicServerError: function() {\n return isDynamicServerError;\n }\n});\nconst DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE';\nclass DynamicServerError extends Error {\n constructor(description){\n super(\"Dynamic server usage: \" + description), this.description = description, 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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hooks-server-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxrQkFBa0I7ZUFBbEJBOztJQVFHQyxvQkFBb0I7ZUFBcEJBOzs7QUFWaEIsTUFBTUMscUJBQXFCO0FBRXBCLE1BQU1GLDJCQUEyQkc7SUFHdENDLFlBQTRCQyxXQUFtQixDQUFFO1FBQy9DLEtBQUssQ0FBRSwyQkFBd0JBLGNBQUFBLElBQUFBLENBRExBLFdBQUFBLEdBQUFBLGFBQUFBLElBQUFBLENBRjVCQyxNQUFBQSxHQUFvQ0o7SUFJcEM7QUFDRjtBQUVPLFNBQVNELHFCQUFxQk0sR0FBWTtJQUMvQyxJQUNFLE9BQU9BLFFBQVEsWUFDZkEsUUFBUSxRQUNSLENBQUUsYUFBWUEsR0FBQUEsQ0FBRSxJQUNoQixPQUFPQSxJQUFJRCxNQUFNLEtBQUssVUFDdEI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxJQUFJRCxNQUFNLEtBQUtKO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFlOQU1JQ19FUlJPUl9DT0RFID0gJ0RZTkFNSUNfU0VSVkVSX1VTQUdFJ1xuXG5leHBvcnQgY2xhc3MgRHluYW1pY1NlcnZlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBkaWdlc3Q6IHR5cGVvZiBEWU5BTUlDX0VSUk9SX0NPREUgPSBEWU5BTUlDX0VSUk9SX0NPREVcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZykge1xuICAgIHN1cGVyKGBEeW5hbWljIHNlcnZlciB1c2FnZTogJHtkZXNjcmlwdGlvbn1gKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNTZXJ2ZXJFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgRHluYW1pY1NlcnZlckVycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8XG4gICAgZXJyID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnIpIHx8XG4gICAgdHlwZW9mIGVyci5kaWdlc3QgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGVyci5kaWdlc3QgPT09IERZTkFNSUNfRVJST1JfQ09ERVxufVxuIl0sIm5hbWVzIjpbIkR5bmFtaWNTZXJ2ZXJFcnJvciIsImlzRHluYW1pY1NlcnZlckVycm9yIiwiRFlOQU1JQ19FUlJPUl9DT0RFIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImRlc2NyaXB0aW9uIiwiZGlnZXN0IiwiZXJyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJfTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1ib3VuZGFyeS5qcy9fX25leHRqcy1pbnRlcm5hbC1wcm94eS5janMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgV2VicGFjayBuZXh0LWZsaWdodC1sb2FkZXIuXG5jb25zdCB7IGNyZWF0ZVByb3h5IH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5XCIpXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUHJveHkoXCIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzXCIpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTTPAccessErrorFallback\", ({\n enumerable: true,\n get: function() {\n return HTTPAccessErrorFallback;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _accesserrorstyles = __webpack_require__(/*! ../styles/access-error-styles */ \"(rsc)/./node_modules/next/dist/client/components/styles/access-error-styles.js\");\nfunction HTTPAccessErrorFallback(param) {\n let { status, message } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: status + \": \" + message\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: _accesserrorstyles.styles.error,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* Minified CSS from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n @media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }\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 }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: _accesserrorstyles.styles.h1,\n children: status\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: _accesserrorstyles.styles.desc,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h2\", {\n style: _accesserrorstyles.styles.h2,\n children: message\n })\n })\n ]\n })\n })\n ]\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=error-fallback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkRBRWdCQTs7O2VBQUFBOzs7OytDQUZPO0FBRWhCLFNBQVNBLHdCQUF3QixLQU12QztJQU51QyxNQUN0Q0MsTUFBTSxFQUNOQyxPQUFPLEVBSVIsR0FOdUM7SUFPdEMscUJBQ0U7OzBCQUVFLHFCQUFDQyxTQUFBQTswQkFBVUYsU0FBTyxPQUFJQzs7MEJBRXRCLHFCQUFDRSxPQUFBQTtnQkFBSUMsT0FBT0MsbUJBQUFBLE1BQU0sQ0FBQ0MsS0FBSzswQkFDdEIsb0NBQUNILE9BQUFBOztzQ0FDQyxxQkFBQ0MsU0FBQUE7NEJBQ0NHLHlCQUF5QjtnQ0FDdkI7Ozs7Ozs7Ozs7OztjQVlBLEdBQ0FDLFFBQVM7NEJBQ1g7O3NDQUVGLHFCQUFDQyxNQUFBQTs0QkFBR0MsV0FBVTs0QkFBZ0JOLE9BQU9DLG1CQUFBQSxNQUFNLENBQUNJLEVBQUU7c0NBQzNDVDs7c0NBRUgscUJBQUNHLE9BQUFBOzRCQUFJQyxPQUFPQyxtQkFBQUEsTUFBTSxDQUFDTSxJQUFJO3NDQUNyQixtQ0FBQ0MsTUFBQUE7Z0NBQUdSLE9BQU9DLG1CQUFBQSxNQUFNLENBQUNPLEVBQUU7MENBQUdYOzs7Ozs7OztBQU1uQyIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1mYWxsYmFjay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3R5bGVzIH0gZnJvbSAnLi4vc3R5bGVzL2FjY2Vzcy1lcnJvci1zdHlsZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayh7XG4gIHN0YXR1cyxcbiAgbWVzc2FnZSxcbn06IHtcbiAgc3RhdHVzOiBudW1iZXJcbiAgbWVzc2FnZTogc3RyaW5nXG59KSB7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHsvKiA8aGVhZD4gKi99XG4gICAgICA8dGl0bGU+e2Ake3N0YXR1c306ICR7bWVzc2FnZX1gfTwvdGl0bGU+XG4gICAgICB7LyogPC9oZWFkPiAqL31cbiAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5lcnJvcn0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAvKiBNaW5pZmllZCBDU1MgZnJvbVxuICAgICAgICAgICAgICAgIGJvZHkgeyBtYXJnaW46IDA7IGNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgICAgICAgICAgLm5leHQtZXJyb3ItaDEge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAgICAgICAgICAgYm9keSB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kOiAjMDAwOyB9XG4gICAgICAgICAgICAgICAgICAubmV4dC1lcnJvci1oMSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjMpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgX19odG1sOiBgYm9keXtjb2xvcjojMDAwO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpfUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Ym9keXtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzAwMH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjMpfX1gLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJuZXh0LWVycm9yLWgxXCIgc3R5bGU9e3N0eWxlcy5oMX0+XG4gICAgICAgICAgICB7c3RhdHVzfVxuICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmRlc2N9PlxuICAgICAgICAgICAgPGgyIHN0eWxlPXtzdHlsZXMuaDJ9PnttZXNzYWdlfTwvaDI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayIsInN0YXR1cyIsIm1lc3NhZ2UiLCJ0aXRsZSIsImRpdiIsInN0eWxlIiwic3R5bGVzIiwiZXJyb3IiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImgxIiwiY2xhc3NOYW1lIiwiZGVzYyIsImgyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js":
|
||
/*!***********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js ***!
|
||
\***********************************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 HTTPAccessErrorStatus: function() {\n return HTTPAccessErrorStatus;\n },\n HTTP_ERROR_FALLBACK_ERROR_CODE: function() {\n return HTTP_ERROR_FALLBACK_ERROR_CODE;\n },\n getAccessFallbackErrorTypeByStatus: function() {\n return getAccessFallbackErrorTypeByStatus;\n },\n getAccessFallbackHTTPStatus: function() {\n return getAccessFallbackHTTPStatus;\n },\n isHTTPAccessFallbackError: function() {\n return isHTTPAccessFallbackError;\n }\n});\nconst HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401\n};\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));\nconst HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';\nfunction isHTTPAccessFallbackError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const [prefix, httpStatus] = error.digest.split(';');\n return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));\n}\nfunction getAccessFallbackHTTPStatus(error) {\n const httpStatus = error.digest.split(';')[1];\n return Number(httpStatus);\n}\nfunction getAccessFallbackErrorTypeByStatus(status) {\n switch(status){\n case 401:\n return 'unauthorized';\n case 403:\n return 'forbidden';\n case 404:\n return 'not-found';\n default:\n return;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=http-access-fallback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxxQkFBcUI7ZUFBckJBOztJQVFBQyw4QkFBOEI7ZUFBOUJBOztJQXVDR0Msa0NBQWtDO2VBQWxDQTs7SUFQQUMsMkJBQTJCO2VBQTNCQTs7SUFuQkFDLHlCQUF5QjtlQUF6QkE7OztBQXJCVCxNQUFNSix3QkFBd0I7SUFDbkNLLFdBQVc7SUFDWEMsV0FBVztJQUNYQyxjQUFjO0FBQ2hCO0FBRUEsTUFBTUMsZ0JBQWdCLElBQUlDLElBQUlDLE9BQU9DLE1BQU0sQ0FBQ1g7QUFFckMsTUFBTUMsaUNBQWlDO0FBYXZDLFNBQVNHLDBCQUNkUSxLQUFjO0lBRWQsSUFDRSxPQUFPQSxVQUFVLFlBQ2pCQSxVQUFVLFFBQ1YsQ0FBRSxhQUFZQSxLQUFBQSxDQUFJLElBQ2xCLE9BQU9BLE1BQU1DLE1BQU0sS0FBSyxVQUN4QjtRQUNBLE9BQU87SUFDVDtJQUNBLE1BQU0sQ0FBQ0MsUUFBUUMsV0FBVyxHQUFHSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUVoRCxPQUNFRixXQUFXYixrQ0FDWE8sY0FBY1MsR0FBRyxDQUFDQyxPQUFPSDtBQUU3QjtBQUVPLFNBQVNaLDRCQUNkUyxLQUE4QjtJQUU5QixNQUFNRyxhQUFhSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUM3QyxPQUFPRSxPQUFPSDtBQUNoQjtBQUVPLFNBQVNiLG1DQUNkaUIsTUFBYztJQUVkLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1Q7WUFDRTtJQUNKO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEhUVFBBY2Nlc3NFcnJvclN0YXR1cyA9IHtcbiAgTk9UX0ZPVU5EOiA0MDQsXG4gIEZPUkJJRERFTjogNDAzLFxuICBVTkFVVEhPUklaRUQ6IDQwMSxcbn1cblxuY29uc3QgQUxMT1dFRF9DT0RFUyA9IG5ldyBTZXQoT2JqZWN0LnZhbHVlcyhIVFRQQWNjZXNzRXJyb3JTdGF0dXMpKVxuXG5leHBvcnQgY29uc3QgSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFID0gJ05FWFRfSFRUUF9FUlJPUl9GQUxMQkFDSydcblxuZXhwb3J0IHR5cGUgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFfTske3N0cmluZ31gXG59XG5cbi8qKlxuICogQ2hlY2tzIGFuIGVycm9yIHRvIGRldGVybWluZSBpZiBpdCdzIGFuIGVycm9yIGdlbmVyYXRlZCBieVxuICogdGhlIEhUVFAgbmF2aWdhdGlvbiBBUElzIGBub3RGb3VuZCgpYCwgYGZvcmJpZGRlbigpYCBvciBgdW5hdXRob3JpemVkKClgLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgSFRUUCBhY2Nlc3MgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgSFRUUCBhY2Nlc3MgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciB7XG4gIGlmIChcbiAgICB0eXBlb2YgZXJyb3IgIT09ICdvYmplY3QnIHx8XG4gICAgZXJyb3IgPT09IG51bGwgfHxcbiAgICAhKCdkaWdlc3QnIGluIGVycm9yKSB8fFxuICAgIHR5cGVvZiBlcnJvci5kaWdlc3QgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IFtwcmVmaXgsIGh0dHBTdGF0dXNdID0gZXJyb3IuZGlnZXN0LnNwbGl0KCc7JylcblxuICByZXR1cm4gKFxuICAgIHByZWZpeCA9PT0gSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFICYmXG4gICAgQUxMT1dFRF9DT0RFUy5oYXMoTnVtYmVyKGh0dHBTdGF0dXMpKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXMoXG4gIGVycm9yOiBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvclxuKTogbnVtYmVyIHtcbiAgY29uc3QgaHR0cFN0YXR1cyA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpWzFdXG4gIHJldHVybiBOdW1iZXIoaHR0cFN0YXR1cylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc0ZhbGxiYWNrRXJyb3JUeXBlQnlTdGF0dXMoXG4gIHN0YXR1czogbnVtYmVyXG4pOiAnbm90LWZvdW5kJyB8ICdmb3JiaWRkZW4nIHwgJ3VuYXV0aG9yaXplZCcgfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKHN0YXR1cykge1xuICAgIGNhc2UgNDAxOlxuICAgICAgcmV0dXJuICd1bmF1dGhvcml6ZWQnXG4gICAgY2FzZSA0MDM6XG4gICAgICByZXR1cm4gJ2ZvcmJpZGRlbidcbiAgICBjYXNlIDQwNDpcbiAgICAgIHJldHVybiAnbm90LWZvdW5kJ1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm5cbiAgfVxufVxuIl0sIm5hbWVzIjpbIkhUVFBBY2Nlc3NFcnJvclN0YXR1cyIsIkhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSIsImdldEFjY2Vzc0ZhbGxiYWNrRXJyb3JUeXBlQnlTdGF0dXMiLCJnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXMiLCJpc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIiwiTk9UX0ZPVU5EIiwiRk9SQklEREVOIiwiVU5BVVRIT1JJWkVEIiwiQUxMT1dFRF9DT0RFUyIsIlNldCIsIk9iamVjdCIsInZhbHVlcyIsImVycm9yIiwiZGlnZXN0IiwicHJlZml4IiwiaHR0cFN0YXR1cyIsInNwbGl0IiwiaGFzIiwiTnVtYmVyIiwic3RhdHVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/is-next-router-error.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/is-next-router-error.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNextRouterError\", ({\n enumerable: true,\n get: function() {\n return isNextRouterError;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(rsc)/./node_modules/next/dist/client/components/redirect-error.js\");\nfunction isNextRouterError(error) {\n return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-next-router-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBV2dCQTs7O2VBQUFBOzs7Z0RBUlQ7MkNBQzZDO0FBTzdDLFNBQVNBLGtCQUNkQyxLQUFjO0lBRWQsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsZUFBQUEsRUFBZ0JELFVBQVVFLENBQUFBLEdBQUFBLG9CQUFBQSx5QkFBQUEsRUFBMEJGO0FBQzdEIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IGlzUmVkaXJlY3RFcnJvciwgdHlwZSBSZWRpcmVjdEVycm9yIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgbmF2aWdhdGlvbiBzaWduYWwgZXJyb3IuIFRoZXNlIGVycm9ycyBhcmVcbiAqIHRocm93biBieSB1c2VyIGNvZGUgdG8gcGVyZm9ybSBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMgYW5kIGludGVycnVwdCB0aGUgUmVhY3RcbiAqIHJlbmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dFJvdXRlckVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgUmVkaXJlY3RFcnJvciB8IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgcmV0dXJuIGlzUmVkaXJlY3RFcnJvcihlcnJvcikgfHwgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihlcnJvcilcbn1cbiJdLCJuYW1lcyI6WyJpc05leHRSb3V0ZXJFcnJvciIsImVycm9yIiwiaXNSZWRpcmVjdEVycm9yIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/is-next-router-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/layout-router.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/layout-router.js ***!
|
||
\*******************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/node_modules/next/dist/client/components/layout-router.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanMiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIl9OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanMvX19uZXh0anMtaW50ZXJuYWwtcHJveHkuY2pzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIFdlYnBhY2sgbmV4dC1mbGlnaHQtbG9hZGVyLlxuY29uc3QgeyBjcmVhdGVQcm94eSB9ID0gcmVxdWlyZShcIm5leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eVwiKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVByb3h5KFwiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/layout-router.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/metadata/async-metadata.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/node_modules/next/dist/client/components/metadata/async-metadata.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL2FzeW5jLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFBIiwic291cmNlcyI6WyJfTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9tZXRhZGF0YS9hc3luYy1tZXRhZGF0YS5qcy9fX25leHRqcy1pbnRlcm5hbC1wcm94eS5janMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB0aGUgV2VicGFjayBuZXh0LWZsaWdodC1sb2FkZXIuXG5jb25zdCB7IGNyZWF0ZVByb3h5IH0gPSByZXF1aXJlKFwibmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5XCIpXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUHJveHkoXCIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL2FzeW5jLW1ldGFkYXRhLmpzXCIpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/redirect-error.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/redirect-error.js ***!
|
||
\********************************************************************/
|
||
/***/ ((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 REDIRECT_ERROR_CODE: function() {\n return REDIRECT_ERROR_CODE;\n },\n RedirectType: function() {\n return RedirectType;\n },\n isRedirectError: function() {\n return isRedirectError;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';\nvar RedirectType = /*#__PURE__*/ function(RedirectType) {\n RedirectType[\"push\"] = \"push\";\n RedirectType[\"replace\"] = \"replace\";\n return RedirectType;\n}({});\nfunction isRedirectError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const digest = error.digest.split(';');\n const [errorCode, type] = digest;\n const destination = digest.slice(2, -2).join(';');\n const status = digest.at(-2);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxtQkFBbUI7ZUFBbkJBOztJQUVEQyxZQUFZO2VBQVpBOztJQWdCSUMsZUFBZTtlQUFmQTs7O2dEQXBCbUI7QUFFNUIsTUFBTUYsc0JBQXNCO0FBRTVCLElBQUtDLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7V0FBQUE7O0FBZ0JMLFNBQVNDLGdCQUFnQkMsS0FBYztJQUM1QyxJQUNFLE9BQU9BLFVBQVUsWUFDakJBLFVBQVUsUUFDVixDQUFFLGFBQVlBLEtBQUFBLENBQUksSUFDbEIsT0FBT0EsTUFBTUMsTUFBTSxLQUFLLFVBQ3hCO1FBQ0EsT0FBTztJQUNUO0lBRUEsTUFBTUEsU0FBU0QsTUFBTUMsTUFBTSxDQUFDQyxLQUFLLENBQUM7SUFDbEMsTUFBTSxDQUFDQyxXQUFXQyxLQUFLLEdBQUdIO0lBQzFCLE1BQU1JLGNBQWNKLE9BQU9LLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBQzdDLE1BQU1DLFNBQVNQLE9BQU9RLEVBQUUsQ0FBQyxDQUFDO0lBRTFCLE1BQU1DLGFBQWFDLE9BQU9IO0lBRTFCLE9BQ0VMLGNBQWNOLHVCQUNiTyxDQUFBQSxTQUFTLGFBQWFBLFNBQVMsT0FBSyxJQUNyQyxPQUFPQyxnQkFBZ0IsWUFDdkIsQ0FBQ08sTUFBTUYsZUFDUEEsY0FBY0csb0JBQUFBLGtCQUFrQjtBQUVwQyIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZGlyZWN0U3RhdHVzQ29kZSB9IGZyb20gJy4vcmVkaXJlY3Qtc3RhdHVzLWNvZGUnXG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9FUlJPUl9DT0RFID0gJ05FWFRfUkVESVJFQ1QnXG5cbmV4cG9ydCBlbnVtIFJlZGlyZWN0VHlwZSB7XG4gIHB1c2ggPSAncHVzaCcsXG4gIHJlcGxhY2UgPSAncmVwbGFjZScsXG59XG5cbmV4cG9ydCB0eXBlIFJlZGlyZWN0RXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgUkVESVJFQ1RfRVJST1JfQ09ERX07JHtSZWRpcmVjdFR5cGV9OyR7c3RyaW5nfTske1JlZGlyZWN0U3RhdHVzQ29kZX07YFxufVxuXG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlXG4gKiBgcmVkaXJlY3QodXJsKWAgaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3RFcnJvcihlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIFJlZGlyZWN0RXJyb3Ige1xuICBpZiAoXG4gICAgdHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fFxuICAgIGVycm9yID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnJvcikgfHxcbiAgICB0eXBlb2YgZXJyb3IuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGRpZ2VzdCA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpXG4gIGNvbnN0IFtlcnJvckNvZGUsIHR5cGVdID0gZGlnZXN0XG4gIGNvbnN0IGRlc3RpbmF0aW9uID0gZGlnZXN0LnNsaWNlKDIsIC0yKS5qb2luKCc7JylcbiAgY29uc3Qgc3RhdHVzID0gZGlnZXN0LmF0KC0yKVxuXG4gIGNvbnN0IHN0YXR1c0NvZGUgPSBOdW1iZXIoc3RhdHVzKVxuXG4gIHJldHVybiAoXG4gICAgZXJyb3JDb2RlID09PSBSRURJUkVDVF9FUlJPUl9DT0RFICYmXG4gICAgKHR5cGUgPT09ICdyZXBsYWNlJyB8fCB0eXBlID09PSAncHVzaCcpICYmXG4gICAgdHlwZW9mIGRlc3RpbmF0aW9uID09PSAnc3RyaW5nJyAmJlxuICAgICFpc05hTihzdGF0dXNDb2RlKSAmJlxuICAgIHN0YXR1c0NvZGUgaW4gUmVkaXJlY3RTdGF0dXNDb2RlXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSRURJUkVDVF9FUlJPUl9DT0RFIiwiUmVkaXJlY3RUeXBlIiwiaXNSZWRpcmVjdEVycm9yIiwiZXJyb3IiLCJkaWdlc3QiLCJzcGxpdCIsImVycm9yQ29kZSIsInR5cGUiLCJkZXN0aW5hdGlvbiIsInNsaWNlIiwiam9pbiIsInN0YXR1cyIsImF0Iiwic3RhdHVzQ29kZSIsIk51bWJlciIsImlzTmFOIiwiUmVkaXJlY3RTdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/redirect-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/redirect-status-code.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBQVlBOzs7ZUFBQUE7OztBQUFMLElBQUtBLHFCQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxrQkFBQUE7Ozs7V0FBQUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZWRpcmVjdFN0YXR1c0NvZGUge1xuICBTZWVPdGhlciA9IDMwMyxcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/render-from-template-context.js ***!
|
||
\**********************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/node_modules/next/dist/client/components/render-from-template-context.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIl9OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMvX19uZXh0anMtaW50ZXJuYWwtcHJveHkuY2pzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIFdlYnBhY2sgbmV4dC1mbGlnaHQtbG9hZGVyLlxuY29uc3QgeyBjcmVhdGVQcm94eSB9ID0gcmVxdWlyZShcIm5leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eVwiKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVByb3h5KFwiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/static-generation-bailout.js ***!
|
||
\*******************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 StaticGenBailoutError: function() {\n return StaticGenBailoutError;\n },\n isStaticGenBailoutError: function() {\n return isStaticGenBailoutError;\n }\n});\nconst NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT';\nclass StaticGenBailoutError extends Error {\n constructor(...args){\n super(...args), 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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=static-generation-bailout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWFBLHFCQUFxQjtlQUFyQkE7O0lBSUdDLHVCQUF1QjtlQUF2QkE7OztBQU5oQixNQUFNQywwQkFBMEI7QUFFekIsTUFBTUYsOEJBQThCRzs7UUFBcEMscUJBQ1dDLElBQUFBLEdBQU9GOztBQUN6QjtBQUVPLFNBQVNELHdCQUNkSSxLQUFjO0lBRWQsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxDQUFFLFdBQVVBLEtBQUFBLENBQUksRUFBSTtRQUNyRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQSxNQUFNRCxJQUFJLEtBQUtGO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCA9ICdORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCdcblxuZXhwb3J0IGNsYXNzIFN0YXRpY0dlbkJhaWxvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGNvZGUgPSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBTdGF0aWNHZW5CYWlsb3V0RXJyb3Ige1xuICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCB8fCAhKCdjb2RlJyBpbiBlcnJvcikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnJvci5jb2RlID09PSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuIl0sIm5hbWVzIjpbIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsImlzU3RhdGljR2VuQmFpbG91dEVycm9yIiwiTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQiLCJFcnJvciIsImNvZGUiLCJlcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/client/components/styles/access-error-styles.js":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/styles/access-error-styles.js ***!
|
||
\********************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\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 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};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=access-error-styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0eWxlcy9hY2Nlc3MtZXJyb3Itc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MENBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLFNBQThDO0lBQ3pEQyxPQUFPO1FBQ0wsMEZBQTBGO1FBQzFGQyxZQUNFO1FBQ0ZDLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLGVBQWU7UUFDZkMsWUFBWTtRQUNaQyxnQkFBZ0I7SUFDbEI7SUFFQUMsTUFBTTtRQUNKSixTQUFTO0lBQ1g7SUFFQUssSUFBSTtRQUNGTCxTQUFTO1FBQ1RNLFFBQVE7UUFDUkMsU0FBUztRQUNUQyxVQUFVO1FBQ1ZDLFlBQVk7UUFDWkMsZUFBZTtRQUNmQyxZQUFZO0lBQ2Q7SUFFQUMsSUFBSTtRQUNGSixVQUFVO1FBQ1ZDLFlBQVk7UUFDWkUsWUFBWTtRQUNaTCxRQUFRO0lBQ1Y7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9zdHlsZXMvYWNjZXNzLWVycm9yLXN0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCBSZWFjdC5DU1NQcm9wZXJ0aWVzPiA9IHtcbiAgZXJyb3I6IHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvYmxvYi9tYWluL21vZGVybi1ub3JtYWxpemUuY3NzI0wzOC1MNTJcbiAgICBmb250RmFtaWx5OlxuICAgICAgJ3N5c3RlbS11aSxcIlNlZ29lIFVJXCIsUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmLFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCInLFxuICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIH0sXG5cbiAgZGVzYzoge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICB9LFxuXG4gIGgxOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgbWFyZ2luOiAnMCAyMHB4IDAgMCcsXG4gICAgcGFkZGluZzogJzAgMjNweCAwIDAnLFxuICAgIGZvbnRTaXplOiAyNCxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgbGluZUhlaWdodDogJzQ5cHgnLFxuICB9LFxuXG4gIGgyOiB7XG4gICAgZm9udFNpemU6IDE0LFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBsaW5lSGVpZ2h0OiAnNDlweCcsXG4gICAgbWFyZ2luOiAwLFxuICB9LFxufVxuIl0sIm5hbWVzIjpbInN0eWxlcyIsImVycm9yIiwiZm9udEZhbWlseSIsImhlaWdodCIsInRleHRBbGlnbiIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZGVzYyIsImgxIiwibWFyZ2luIiwicGFkZGluZyIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsInZlcnRpY2FsQWxpZ24iLCJsaW5lSGVpZ2h0IiwiaDIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/styles/access-error-styles.js\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)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\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\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 \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\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 {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\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 = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n 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\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n 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, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\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 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\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(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\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 */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n 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)\n 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 */\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 */\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 */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\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 */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].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 = { name: \"\", value: \"\" }) {\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixrQ0FBa0M7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qiw0RkFBNEY7QUFDekg7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELGtCQUFrQixhQUFhOztBQUVuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE9BQU87QUFDNUMsbUVBQW1FLGdGQUFnRjtBQUNuSixnRUFBZ0UsU0FBUztBQUN6RSwyQ0FBMkMsU0FBUztBQUNwRDtBQUNBO0FBQ0EsaURBQWlELFdBQVc7QUFDNUQ7QUFDQSxpREFBaUQsV0FBVztBQUM1RDtBQUNBLHlCQUF5QixPQUFPLEdBQUcscURBQXFEO0FBQ3hGLCtDQUErQyxjQUFjLEVBQUUsY0FBYyxHQUFHO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNEJBQTRCO0FBQ2hELHFCQUFxQixnQkFBZ0I7QUFDckMsdUNBQXVDLHdCQUF3QjtBQUMvRDtBQUNBLHFCQUFxQixtQ0FBbUM7QUFDeEQsbUJBQW1CLGNBQWM7QUFDakMscUJBQXFCLG1DQUFtQztBQUN4RCx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsYUFBYTtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixhQUFhO0FBQ2pDO0FBQ0E7QUFDQSw0RUFBNEU7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBFQUEwRTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGlEQUFpRDtBQUM5RTtBQUNBO0FBQ0Esb0RBQW9ELE9BQU8sR0FBRyw0QkFBNEIsV0FBVztBQUNyRztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw0RUFBNEU7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrRkFBa0Y7QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sNEVBQTRFO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLHdCQUF3QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sa0ZBQWtGO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtRUFBbUU7QUFDekY7QUFDQTtBQUNBLDhCQUE4QixpREFBaUQ7QUFDL0U7QUFDQTtBQUNBLG1FQUFtRTtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MscUJBQXFCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sQ0FNTCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9AZWRnZS1ydW50aW1lL2Nvb2tpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvQ29tbW9uSlMgPSAobW9kKSA9PiBfX2NvcHlQcm9wcyhfX2RlZlByb3Aoe30sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pLCBtb2QpO1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBzcmNfZXhwb3J0cyA9IHt9O1xuX19leHBvcnQoc3JjX2V4cG9ydHMsIHtcbiAgUmVxdWVzdENvb2tpZXM6ICgpID0+IFJlcXVlc3RDb29raWVzLFxuICBSZXNwb25zZUNvb2tpZXM6ICgpID0+IFJlc3BvbnNlQ29va2llcyxcbiAgcGFyc2VDb29raWU6ICgpID0+IHBhcnNlQ29va2llLFxuICBwYXJzZVNldENvb2tpZTogKCkgPT4gcGFyc2VTZXRDb29raWUsXG4gIHN0cmluZ2lmeUNvb2tpZTogKCkgPT4gc3RyaW5naWZ5Q29va2llXG59KTtcbm1vZHVsZS5leHBvcnRzID0gX190b0NvbW1vbkpTKHNyY19leHBvcnRzKTtcblxuLy8gc3JjL3NlcmlhbGl6ZS50c1xuZnVuY3Rpb24gc3RyaW5naWZ5Q29va2llKGMpIHtcbiAgdmFyIF9hO1xuICBjb25zdCBhdHRycyA9IFtcbiAgICBcInBhdGhcIiBpbiBjICYmIGMucGF0aCAmJiBgUGF0aD0ke2MucGF0aH1gLFxuICAgIFwiZXhwaXJlc1wiIGluIGMgJiYgKGMuZXhwaXJlcyB8fCBjLmV4cGlyZXMgPT09IDApICYmIGBFeHBpcmVzPSR7KHR5cGVvZiBjLmV4cGlyZXMgPT09IFwibnVtYmVyXCIgPyBuZXcgRGF0ZShjLmV4cGlyZXMpIDogYy5leHBpcmVzKS50b1VUQ1N0cmluZygpfWAsXG4gICAgXCJtYXhBZ2VcIiBpbiBjICYmIHR5cGVvZiBjLm1heEFnZSA9PT0gXCJudW1iZXJcIiAmJiBgTWF4LUFnZT0ke2MubWF4QWdlfWAsXG4gICAgXCJkb21haW5cIiBpbiBjICYmIGMuZG9tYWluICYmIGBEb21haW49JHtjLmRvbWFpbn1gLFxuICAgIFwic2VjdXJlXCIgaW4gYyAmJiBjLnNlY3VyZSAmJiBcIlNlY3VyZVwiLFxuICAgIFwiaHR0cE9ubHlcIiBpbiBjICYmIGMuaHR0cE9ubHkgJiYgXCJIdHRwT25seVwiLFxuICAgIFwic2FtZVNpdGVcIiBpbiBjICYmIGMuc2FtZVNpdGUgJiYgYFNhbWVTaXRlPSR7Yy5zYW1lU2l0ZX1gLFxuICAgIFwicGFydGl0aW9uZWRcIiBpbiBjICYmIGMucGFydGl0aW9uZWQgJiYgXCJQYXJ0aXRpb25lZFwiLFxuICAgIFwicHJpb3JpdHlcIiBpbiBjICYmIGMucHJpb3JpdHkgJiYgYFByaW9yaXR5PSR7Yy5wcmlvcml0eX1gXG4gIF0uZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBzdHJpbmdpZmllZCA9IGAke2MubmFtZX09JHtlbmNvZGVVUklDb21wb25lbnQoKF9hID0gYy52YWx1ZSkgIT0gbnVsbCA/IF9hIDogXCJcIil9YDtcbiAgcmV0dXJuIGF0dHJzLmxlbmd0aCA9PT0gMCA/IHN0cmluZ2lmaWVkIDogYCR7c3RyaW5naWZpZWR9OyAke2F0dHJzLmpvaW4oXCI7IFwiKX1gO1xufVxuZnVuY3Rpb24gcGFyc2VDb29raWUoY29va2llKSB7XG4gIGNvbnN0IG1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gIGZvciAoY29uc3QgcGFpciBvZiBjb29raWUuc3BsaXQoLzsgKi8pKSB7XG4gICAgaWYgKCFwYWlyKVxuICAgICAgY29udGludWU7XG4gICAgY29uc3Qgc3BsaXRBdCA9IHBhaXIuaW5kZXhPZihcIj1cIik7XG4gICAgaWYgKHNwbGl0QXQgPT09IC0xKSB7XG4gICAgICBtYXAuc2V0KHBhaXIsIFwidHJ1ZVwiKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBbcGFpci5zbGljZSgwLCBzcGxpdEF0KSwgcGFpci5zbGljZShzcGxpdEF0ICsgMSldO1xuICAgIHRyeSB7XG4gICAgICBtYXAuc2V0KGtleSwgZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IFwidHJ1ZVwiKSk7XG4gICAgfSBjYXRjaCB7XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXA7XG59XG5mdW5jdGlvbiBwYXJzZVNldENvb2tpZShzZXRDb29raWUpIHtcbiAgaWYgKCFzZXRDb29raWUpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIGNvbnN0IFtbbmFtZSwgdmFsdWVdLCAuLi5hdHRyaWJ1dGVzXSA9IHBhcnNlQ29va2llKHNldENvb2tpZSk7XG4gIGNvbnN0IHtcbiAgICBkb21haW4sXG4gICAgZXhwaXJlcyxcbiAgICBodHRwb25seSxcbiAgICBtYXhhZ2UsXG4gICAgcGF0aCxcbiAgICBzYW1lc2l0ZSxcbiAgICBzZWN1cmUsXG4gICAgcGFydGl0aW9uZWQsXG4gICAgcHJpb3JpdHlcbiAgfSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBhdHRyaWJ1dGVzLm1hcCgoW2tleSwgdmFsdWUyXSkgPT4gW1xuICAgICAga2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvLS9nLCBcIlwiKSxcbiAgICAgIHZhbHVlMlxuICAgIF0pXG4gICk7XG4gIGNvbnN0IGNvb2tpZSA9IHtcbiAgICBuYW1lLFxuICAgIHZhbHVlOiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpLFxuICAgIGRvbWFpbixcbiAgICAuLi5leHBpcmVzICYmIHsgZXhwaXJlczogbmV3IERhdGUoZXhwaXJlcykgfSxcbiAgICAuLi5odHRwb25seSAmJiB7IGh0dHBPbmx5OiB0cnVlIH0sXG4gICAgLi4udHlwZW9mIG1heGFnZSA9PT0gXCJzdHJpbmdcIiAmJiB7IG1heEFnZTogTnVtYmVyKG1heGFnZSkgfSxcbiAgICBwYXRoLFxuICAgIC4uLnNhbWVzaXRlICYmIHsgc2FtZVNpdGU6IHBhcnNlU2FtZVNpdGUoc2FtZXNpdGUpIH0sXG4gICAgLi4uc2VjdXJlICYmIHsgc2VjdXJlOiB0cnVlIH0sXG4gICAgLi4ucHJpb3JpdHkgJiYgeyBwcmlvcml0eTogcGFyc2VQcmlvcml0eShwcmlvcml0eSkgfSxcbiAgICAuLi5wYXJ0aXRpb25lZCAmJiB7IHBhcnRpdGlvbmVkOiB0cnVlIH1cbiAgfTtcbiAgcmV0dXJuIGNvbXBhY3QoY29va2llKTtcbn1cbmZ1bmN0aW9uIGNvbXBhY3QodCkge1xuICBjb25zdCBuZXdUID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHQpIHtcbiAgICBpZiAodFtrZXldKSB7XG4gICAgICBuZXdUW2tleV0gPSB0W2tleV07XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdUO1xufVxudmFyIFNBTUVfU0lURSA9IFtcInN0cmljdFwiLCBcImxheFwiLCBcIm5vbmVcIl07XG5mdW5jdGlvbiBwYXJzZVNhbWVTaXRlKHN0cmluZykge1xuICBzdHJpbmcgPSBzdHJpbmcudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIFNBTUVfU0lURS5pbmNsdWRlcyhzdHJpbmcpID8gc3RyaW5nIDogdm9pZCAwO1xufVxudmFyIFBSSU9SSVRZID0gW1wibG93XCIsIFwibWVkaXVtXCIsIFwiaGlnaFwiXTtcbmZ1bmN0aW9uIHBhcnNlUHJpb3JpdHkoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gUFJJT1JJVFkuaW5jbHVkZXMoc3RyaW5nKSA/IHN0cmluZyA6IHZvaWQgMDtcbn1cbmZ1bmN0aW9uIHNwbGl0Q29va2llc1N0cmluZyhjb29raWVzU3RyaW5nKSB7XG4gIGlmICghY29va2llc1N0cmluZylcbiAgICByZXR1cm4gW107XG4gIHZhciBjb29raWVzU3RyaW5ncyA9IFtdO1xuICB2YXIgcG9zID0gMDtcbiAgdmFyIHN0YXJ0O1xuICB2YXIgY2g7XG4gIHZhciBsYXN0Q29tbWE7XG4gIHZhciBuZXh0U3RhcnQ7XG4gIHZhciBjb29raWVzU2VwYXJhdG9yRm91bmQ7XG4gIGZ1bmN0aW9uIHNraXBXaGl0ZXNwYWNlKCkge1xuICAgIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiAvXFxzLy50ZXN0KGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykpKSB7XG4gICAgICBwb3MgKz0gMTtcbiAgICB9XG4gICAgcmV0dXJuIHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoO1xuICB9XG4gIGZ1bmN0aW9uIG5vdFNwZWNpYWxDaGFyKCkge1xuICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICByZXR1cm4gY2ggIT09IFwiPVwiICYmIGNoICE9PSBcIjtcIiAmJiBjaCAhPT0gXCIsXCI7XG4gIH1cbiAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoKSB7XG4gICAgc3RhcnQgPSBwb3M7XG4gICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gZmFsc2U7XG4gICAgd2hpbGUgKHNraXBXaGl0ZXNwYWNlKCkpIHtcbiAgICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICAgIGlmIChjaCA9PT0gXCIsXCIpIHtcbiAgICAgICAgbGFzdENvbW1hID0gcG9zO1xuICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgc2tpcFdoaXRlc3BhY2UoKTtcbiAgICAgICAgbmV4dFN0YXJ0ID0gcG9zO1xuICAgICAgICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgbm90U3BlY2lhbENoYXIoKSkge1xuICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpID09PSBcIj1cIikge1xuICAgICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IHRydWU7XG4gICAgICAgICAgcG9zID0gbmV4dFN0YXJ0O1xuICAgICAgICAgIGNvb2tpZXNTdHJpbmdzLnB1c2goY29va2llc1N0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGxhc3RDb21tYSkpO1xuICAgICAgICAgIHN0YXJ0ID0gcG9zO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBvcyA9IGxhc3RDb21tYSArIDE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvcyArPSAxO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWNvb2tpZXNTZXBhcmF0b3JGb3VuZCB8fCBwb3MgPj0gY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICAgIGNvb2tpZXNTdHJpbmdzLnB1c2goY29va2llc1N0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGNvb2tpZXNTdHJpbmcubGVuZ3RoKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjb29raWVzU3RyaW5ncztcbn1cblxuLy8gc3JjL3JlcXVlc3QtY29va2llcy50c1xudmFyIFJlcXVlc3RDb29raWVzID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcihyZXF1ZXN0SGVhZGVycykge1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLl9wYXJzZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHRoaXMuX2hlYWRlcnMgPSByZXF1ZXN0SGVhZGVycztcbiAgICBjb25zdCBoZWFkZXIgPSByZXF1ZXN0SGVhZGVycy5nZXQoXCJjb29raWVcIik7XG4gICAgaWYgKGhlYWRlcikge1xuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VDb29raWUoaGVhZGVyKTtcbiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBwYXJzZWQpIHtcbiAgICAgICAgdGhpcy5fcGFyc2VkLnNldChuYW1lLCB7IG5hbWUsIHZhbHVlIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBjb29raWVzIHJlY2VpdmVkIGZyb20gdGhlIGNsaWVudFxuICAgKi9cbiAgZ2V0IHNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5zaXplO1xuICB9XG4gIGdldCguLi5hcmdzKSB7XG4gICAgY29uc3QgbmFtZSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gYXJnc1swXSA6IGFyZ3NbMF0ubmFtZTtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmdldChuYW1lKTtcbiAgfVxuICBnZXRBbGwoLi4uYXJncykge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBhbGwgPSBBcnJheS5mcm9tKHRoaXMuX3BhcnNlZCk7XG4gICAgaWYgKCFhcmdzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGFsbC5tYXAoKFtfLCB2YWx1ZV0pID0+IHZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gYXJnc1swXSA6IChfYSA9IGFyZ3NbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfYS5uYW1lO1xuICAgIHJldHVybiBhbGwuZmlsdGVyKChbbl0pID0+IG4gPT09IG5hbWUpLm1hcCgoW18sIHZhbHVlXSkgPT4gdmFsdWUpO1xuICB9XG4gIGhhcyhuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5oYXMobmFtZSk7XG4gIH1cbiAgc2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbbmFtZSwgdmFsdWVdID0gYXJncy5sZW5ndGggPT09IDEgPyBbYXJnc1swXS5uYW1lLCBhcmdzWzBdLnZhbHVlXSA6IGFyZ3M7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIG1hcC5zZXQobmFtZSwgeyBuYW1lLCB2YWx1ZSB9KTtcbiAgICB0aGlzLl9oZWFkZXJzLnNldChcbiAgICAgIFwiY29va2llXCIsXG4gICAgICBBcnJheS5mcm9tKG1hcCkubWFwKChbXywgdmFsdWUyXSkgPT4gc3RyaW5naWZ5Q29va2llKHZhbHVlMikpLmpvaW4oXCI7IFwiKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIERlbGV0ZSB0aGUgY29va2llcyBtYXRjaGluZyB0aGUgcGFzc2VkIG5hbWUgb3IgbmFtZXMgaW4gdGhlIHJlcXVlc3QuXG4gICAqL1xuICBkZWxldGUobmFtZXMpIHtcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgY29uc3QgcmVzdWx0ID0gIUFycmF5LmlzQXJyYXkobmFtZXMpID8gbWFwLmRlbGV0ZShuYW1lcykgOiBuYW1lcy5tYXAoKG5hbWUpID0+IG1hcC5kZWxldGUobmFtZSkpO1xuICAgIHRoaXMuX2hlYWRlcnMuc2V0KFxuICAgICAgXCJjb29raWVcIixcbiAgICAgIEFycmF5LmZyb20obWFwKS5tYXAoKFtfLCB2YWx1ZV0pID0+IHN0cmluZ2lmeUNvb2tpZSh2YWx1ZSkpLmpvaW4oXCI7IFwiKVxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICAvKipcbiAgICogRGVsZXRlIGFsbCB0aGUgY29va2llcyBpbiB0aGUgY29va2llcyBpbiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuZGVsZXRlKEFycmF5LmZyb20odGhpcy5fcGFyc2VkLmtleXMoKSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBGb3JtYXQgdGhlIGNvb2tpZXMgaW4gdGhlIHJlcXVlc3QgYXMgYSBzdHJpbmcgZm9yIGxvZ2dpbmdcbiAgICovXG4gIFtTeW1ib2wuZm9yKFwiZWRnZS1ydW50aW1lLmluc3BlY3QuY3VzdG9tXCIpXSgpIHtcbiAgICByZXR1cm4gYFJlcXVlc3RDb29raWVzICR7SlNPTi5zdHJpbmdpZnkoT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuX3BhcnNlZCkpfWA7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9wYXJzZWQudmFsdWVzKCldLm1hcCgodikgPT4gYCR7di5uYW1lfT0ke2VuY29kZVVSSUNvbXBvbmVudCh2LnZhbHVlKX1gKS5qb2luKFwiOyBcIik7XG4gIH1cbn07XG5cbi8vIHNyYy9yZXNwb25zZS1jb29raWVzLnRzXG52YXIgUmVzcG9uc2VDb29raWVzID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcihyZXNwb25zZUhlYWRlcnMpIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5fcGFyc2VkID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICB0aGlzLl9oZWFkZXJzID0gcmVzcG9uc2VIZWFkZXJzO1xuICAgIGNvbnN0IHNldENvb2tpZSA9IChfYyA9IChfYiA9IChfYSA9IHJlc3BvbnNlSGVhZGVycy5nZXRTZXRDb29raWUpID09IG51bGwgPyB2b2lkIDAgOiBfYS5jYWxsKHJlc3BvbnNlSGVhZGVycykpICE9IG51bGwgPyBfYiA6IHJlc3BvbnNlSGVhZGVycy5nZXQoXCJzZXQtY29va2llXCIpKSAhPSBudWxsID8gX2MgOiBbXTtcbiAgICBjb25zdCBjb29raWVTdHJpbmdzID0gQXJyYXkuaXNBcnJheShzZXRDb29raWUpID8gc2V0Q29va2llIDogc3BsaXRDb29raWVzU3RyaW5nKHNldENvb2tpZSk7XG4gICAgZm9yIChjb25zdCBjb29raWVTdHJpbmcgb2YgY29va2llU3RyaW5ncykge1xuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VTZXRDb29raWUoY29va2llU3RyaW5nKTtcbiAgICAgIGlmIChwYXJzZWQpXG4gICAgICAgIHRoaXMuX3BhcnNlZC5zZXQocGFyc2VkLm5hbWUsIHBhcnNlZCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLWdldCBDb29raWVTdG9yZSNnZXR9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBnZXQoLi4uYXJncykge1xuICAgIGNvbnN0IGtleSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gYXJnc1swXSA6IGFyZ3NbMF0ubmFtZTtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmdldChrZXkpO1xuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLWdldEFsbCBDb29raWVTdG9yZSNnZXRBbGx9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBnZXRBbGwoLi4uYXJncykge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBhbGwgPSBBcnJheS5mcm9tKHRoaXMuX3BhcnNlZC52YWx1ZXMoKSk7XG4gICAgaWYgKCFhcmdzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGFsbDtcbiAgICB9XG4gICAgY29uc3Qga2V5ID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogKF9hID0gYXJnc1swXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLm5hbWU7XG4gICAgcmV0dXJuIGFsbC5maWx0ZXIoKGMpID0+IGMubmFtZSA9PT0ga2V5KTtcbiAgfVxuICBoYXMobmFtZSkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuaGFzKG5hbWUpO1xuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLXNldCBDb29raWVTdG9yZSNzZXR9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBzZXQoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZSwgY29va2llXSA9IGFyZ3MubGVuZ3RoID09PSAxID8gW2FyZ3NbMF0ubmFtZSwgYXJnc1swXS52YWx1ZSwgYXJnc1swXV0gOiBhcmdzO1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBtYXAuc2V0KG5hbWUsIG5vcm1hbGl6ZUNvb2tpZSh7IG5hbWUsIHZhbHVlLCAuLi5jb29raWUgfSkpO1xuICAgIHJlcGxhY2UobWFwLCB0aGlzLl9oZWFkZXJzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1kZWxldGUgQ29va2llU3RvcmUjZGVsZXRlfSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgZGVsZXRlKC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbbmFtZSwgb3B0aW9uc10gPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IFthcmdzWzBdXSA6IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF1dO1xuICAgIHJldHVybiB0aGlzLnNldCh7IC4uLm9wdGlvbnMsIG5hbWUsIHZhbHVlOiBcIlwiLCBleHBpcmVzOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoMCkgfSk7XG4gIH1cbiAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgIHJldHVybiBgUmVzcG9uc2VDb29raWVzICR7SlNPTi5zdHJpbmdpZnkoT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuX3BhcnNlZCkpfWA7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9wYXJzZWQudmFsdWVzKCldLm1hcChzdHJpbmdpZnlDb29raWUpLmpvaW4oXCI7IFwiKTtcbiAgfVxufTtcbmZ1bmN0aW9uIHJlcGxhY2UoYmFnLCBoZWFkZXJzKSB7XG4gIGhlYWRlcnMuZGVsZXRlKFwic2V0LWNvb2tpZVwiKTtcbiAgZm9yIChjb25zdCBbLCB2YWx1ZV0gb2YgYmFnKSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IHN0cmluZ2lmeUNvb2tpZSh2YWx1ZSk7XG4gICAgaGVhZGVycy5hcHBlbmQoXCJzZXQtY29va2llXCIsIHNlcmlhbGl6ZWQpO1xuICB9XG59XG5mdW5jdGlvbiBub3JtYWxpemVDb29raWUoY29va2llID0geyBuYW1lOiBcIlwiLCB2YWx1ZTogXCJcIiB9KSB7XG4gIGlmICh0eXBlb2YgY29va2llLmV4cGlyZXMgPT09IFwibnVtYmVyXCIpIHtcbiAgICBjb29raWUuZXhwaXJlcyA9IG5ldyBEYXRlKGNvb2tpZS5leHBpcmVzKTtcbiAgfVxuICBpZiAoY29va2llLm1heEFnZSkge1xuICAgIGNvb2tpZS5leHBpcmVzID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIGNvb2tpZS5tYXhBZ2UgKiAxZTMpO1xuICB9XG4gIGlmIChjb29raWUucGF0aCA9PT0gbnVsbCB8fCBjb29raWUucGF0aCA9PT0gdm9pZCAwKSB7XG4gICAgY29va2llLnBhdGggPSBcIi9cIjtcbiAgfVxuICByZXR1cm4gY29va2llO1xufVxuLy8gQW5ub3RhdGUgdGhlIENvbW1vbkpTIGV4cG9ydCBuYW1lcyBmb3IgRVNNIGltcG9ydCBpbiBub2RlOlxuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gIFJlcXVlc3RDb29raWVzLFxuICBSZXNwb25zZUNvb2tpZXMsXG4gIHBhcnNlQ29va2llLFxuICBwYXJzZVNldENvb2tpZSxcbiAgc3RyaW5naWZ5Q29va2llXG59KTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\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) => {
|
||
|
||
eval("(()=>{\"use strict\";var e={491:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(223);const a=r(172);const o=r(930);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},930:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(56);const a=r(912);const o=r(957);const i=r(172);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"<failed to generate stacktrace>\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},653:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(660);const a=r(172);const o=r(930);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},181:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(172);const a=r(874);const o=r(194);const i=r(277);const c=r(369);const s=r(930);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},997:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(172);const a=r(846);const o=r(139);const i=r(607);const c=r(930);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},277:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(491);const a=r(780);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},993:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},830:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},369:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(930);const a=r(993);const o=r(830);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},67:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(780);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},780:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},506:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(172);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},972:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e<r.length;e++){this[r[e].n]=_consoleFunc(r[e].c)}}}t.DiagConsoleLogger=DiagConsoleLogger},912:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(957);function createLogLevelDiagLogger(e,t){if(e<n.DiagLogLevel.NONE){e=n.DiagLogLevel.NONE}else if(e>n.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},957:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(200);const a=r(521);const o=r(130);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},130:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(521);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});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;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},660:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(102);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},194:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},845:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(476);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},614:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(491);const a=r(607);const o=r(403);const i=r(139);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},124:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(614);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},125:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(614);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},846:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(125);const a=r(124);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},996:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(780);const a=r(403);const o=r(491);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},325:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(564);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},564:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},98:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(325);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},476:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(475);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(476);const a=r(403);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},847:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});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;var t=__nccwpck_require__(369);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(780);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(972);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(957);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(102);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(901);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(194);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(125);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(846);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(996);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(357);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(847);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(475);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(98);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(139);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(476);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(67);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(506);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(886);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(939);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(845);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsT0FBTyxjQUFjLHNDQUFzQyxXQUFXLEVBQUUsb0JBQW9CLGVBQWUsZUFBZSxlQUFlLGtCQUFrQixpQ0FBaUMsaUJBQWlCLGVBQWUscUJBQXFCLG9CQUFvQiw4QkFBOEIsc0JBQXNCLDJCQUEyQixxREFBcUQsU0FBUywwQ0FBMEMsaUJBQWlCLGtEQUFrRCxVQUFVLDJDQUEyQyxxQkFBcUIsNEJBQTRCLFVBQVUsb0NBQW9DLGdEQUFnRCx3QkFBd0IsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLGlCQUFpQixjQUFjLGVBQWUsZUFBZSxlQUFlLGVBQWUsY0FBYyxjQUFjLHNCQUFzQixzQkFBc0IsZ0NBQWdDLGFBQWEsbUJBQW1CLGFBQWEsc0JBQXNCLDZCQUE2QixJQUFJLFVBQVUsVUFBVSx3SkFBd0osb0RBQW9ELGFBQWEsd0JBQXdCLEdBQUcsWUFBWSxnQ0FBZ0Msa0dBQWtHLGtDQUFrQyxxRkFBcUYsa0RBQWtELEVBQUUsR0FBRyxvRUFBb0UsRUFBRSxHQUFHLDZDQUE2QyxzQkFBc0IsZUFBZSw2QkFBNkIsd0RBQXdELCtCQUErQiwyQkFBMkIseUJBQXlCLHlCQUF5QiwyQkFBMkIsa0JBQWtCLG9CQUFvQiwyQkFBMkIsdUJBQXVCLGtCQUFrQixlQUFlLHNDQUFzQyxXQUFXLEVBQUUsb0JBQW9CLGVBQWUsZUFBZSxlQUFlLGtCQUFrQixpQkFBaUIsZUFBZSxxQkFBcUIsb0JBQW9CLDhCQUE4QixzQkFBc0IsMEJBQTBCLHFEQUFxRCxtQkFBbUIsZ0RBQWdELGdCQUFnQiwrQ0FBK0MsVUFBVSxnREFBZ0Qsd0JBQXdCLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSx3QkFBd0IsZUFBZSxlQUFlLGVBQWUsZUFBZSxlQUFlLGVBQWUsc0JBQXNCLG9DQUFvQyxxQkFBcUIsY0FBYyxtQ0FBbUMsNkJBQTZCLHlDQUF5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RSxnQ0FBZ0MsbUNBQW1DLCtCQUErQixrQkFBa0IsRUFBRSxpQ0FBaUMsZ0NBQWdDLCtCQUErQixlQUFlLEVBQUUsaUNBQWlDLG1DQUFtQywrQkFBK0Isa0JBQWtCLEVBQUUsaUNBQWlDLHVDQUF1QywrQkFBK0Isc0JBQXNCLEVBQUUsaUNBQWlDLGlDQUFpQywrQkFBK0IsZ0JBQWdCLEVBQUUsY0FBYyx5RkFBeUYsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXs0OTE6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Db250ZXh0QVBJPXZvaWQgMDtjb25zdCBuPXIoMjIzKTtjb25zdCBhPXIoMTcyKTtjb25zdCBvPXIoOTMwKTtjb25zdCBpPVwiY29udGV4dFwiO2NvbnN0IGM9bmV3IG4uTm9vcENvbnRleHRNYW5hZ2VyO2NsYXNzIENvbnRleHRBUEl7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgQ29udGV4dEFQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsQ29udGV4dE1hbmFnZXIoZSl7cmV0dXJuKDAsYS5yZWdpc3Rlckdsb2JhbCkoaSxlLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX1hY3RpdmUoKXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5hY3RpdmUoKX13aXRoKGUsdCxyLC4uLm4pe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLndpdGgoZSx0LHIsLi4ubil9YmluZChlLHQpe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmJpbmQoZSx0KX1fZ2V0Q29udGV4dE1hbmFnZXIoKXtyZXR1cm4oMCxhLmdldEdsb2JhbCkoaSl8fGN9ZGlzYWJsZSgpe3RoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuZGlzYWJsZSgpOygwLGEudW5yZWdpc3Rlckdsb2JhbCkoaSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9fXQuQ29udGV4dEFQST1Db250ZXh0QVBJfSw5MzA6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQVBJPXZvaWQgMDtjb25zdCBuPXIoNTYpO2NvbnN0IGE9cig5MTIpO2NvbnN0IG89cig5NTcpO2NvbnN0IGk9cigxNzIpO2NvbnN0IGM9XCJkaWFnXCI7Y2xhc3MgRGlhZ0FQSXtjb25zdHJ1Y3Rvcigpe2Z1bmN0aW9uIF9sb2dQcm94eShlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7Y29uc3Qgcj0oMCxpLmdldEdsb2JhbCkoXCJkaWFnXCIpO2lmKCFyKXJldHVybjtyZXR1cm4gcltlXSguLi50KX19Y29uc3QgZT10aGlzO2NvbnN0IHNldExvZ2dlcj0odCxyPXtsb2dMZXZlbDpvLkRpYWdMb2dMZXZlbC5JTkZPfSk9Pnt2YXIgbixjLHM7aWYodD09PWUpe2NvbnN0IHQ9bmV3IEVycm9yKFwiQ2Fubm90IHVzZSBkaWFnIGFzIHRoZSBsb2dnZXIgZm9yIGl0c2VsZi4gUGxlYXNlIHVzZSBhIERpYWdMb2dnZXIgaW1wbGVtZW50YXRpb24gbGlrZSBDb25zb2xlRGlhZ0xvZ2dlciBvciBhIGN1c3RvbSBpbXBsZW1lbnRhdGlvblwiKTtlLmVycm9yKChuPXQuc3RhY2spIT09bnVsbCYmbiE9PXZvaWQgMD9uOnQubWVzc2FnZSk7cmV0dXJuIGZhbHNlfWlmKHR5cGVvZiByPT09XCJudW1iZXJcIil7cj17bG9nTGV2ZWw6cn19Y29uc3QgdT0oMCxpLmdldEdsb2JhbCkoXCJkaWFnXCIpO2NvbnN0IGw9KDAsYS5jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXIpKChjPXIubG9nTGV2ZWwpIT09bnVsbCYmYyE9PXZvaWQgMD9jOm8uRGlhZ0xvZ0xldmVsLklORk8sdCk7aWYodSYmIXIuc3VwcHJlc3NPdmVycmlkZU1lc3NhZ2Upe2NvbnN0IGU9KHM9KG5ldyBFcnJvcikuc3RhY2spIT09bnVsbCYmcyE9PXZvaWQgMD9zOlwiPGZhaWxlZCB0byBnZW5lcmF0ZSBzdGFja3RyYWNlPlwiO3Uud2FybihgQ3VycmVudCBsb2dnZXIgd2lsbCBiZSBvdmVyd3JpdHRlbiBmcm9tICR7ZX1gKTtsLndhcm4oYEN1cnJlbnQgbG9nZ2VyIHdpbGwgb3ZlcndyaXRlIG9uZSBhbHJlYWR5IHJlZ2lzdGVyZWQgZnJvbSAke2V9YCl9cmV0dXJuKDAsaS5yZWdpc3Rlckdsb2JhbCkoXCJkaWFnXCIsbCxlLHRydWUpfTtlLnNldExvZ2dlcj1zZXRMb2dnZXI7ZS5kaXNhYmxlPSgpPT57KDAsaS51bnJlZ2lzdGVyR2xvYmFsKShjLGUpfTtlLmNyZWF0ZUNvbXBvbmVudExvZ2dlcj1lPT5uZXcgbi5EaWFnQ29tcG9uZW50TG9nZ2VyKGUpO2UudmVyYm9zZT1fbG9nUHJveHkoXCJ2ZXJib3NlXCIpO2UuZGVidWc9X2xvZ1Byb3h5KFwiZGVidWdcIik7ZS5pbmZvPV9sb2dQcm94eShcImluZm9cIik7ZS53YXJuPV9sb2dQcm94eShcIndhcm5cIik7ZS5lcnJvcj1fbG9nUHJveHkoXCJlcnJvclwiKX1zdGF0aWMgaW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBEaWFnQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX19dC5EaWFnQVBJPURpYWdBUEl9LDY1MzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk1ldHJpY3NBUEk9dm9pZCAwO2NvbnN0IG49cig2NjApO2NvbnN0IGE9cigxNzIpO2NvbnN0IG89cig5MzApO2NvbnN0IGk9XCJtZXRyaWNzXCI7Y2xhc3MgTWV0cmljc0FQSXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBNZXRyaWNzQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxNZXRlclByb3ZpZGVyKGUpe3JldHVybigwLGEucmVnaXN0ZXJHbG9iYWwpKGksZSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9Z2V0TWV0ZXJQcm92aWRlcigpe3JldHVybigwLGEuZ2V0R2xvYmFsKShpKXx8bi5OT09QX01FVEVSX1BST1ZJREVSfWdldE1ldGVyKGUsdCxyKXtyZXR1cm4gdGhpcy5nZXRNZXRlclByb3ZpZGVyKCkuZ2V0TWV0ZXIoZSx0LHIpfWRpc2FibGUoKXsoMCxhLnVucmVnaXN0ZXJHbG9iYWwpKGksby5EaWFnQVBJLmluc3RhbmNlKCkpfX10Lk1ldHJpY3NBUEk9TWV0cmljc0FQSX0sMTgxOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuUHJvcGFnYXRpb25BUEk9dm9pZCAwO2NvbnN0IG49cigxNzIpO2NvbnN0IGE9cig4NzQpO2NvbnN0IG89cigxOTQpO2NvbnN0IGk9cigyNzcpO2NvbnN0IGM9cigzNjkpO2NvbnN0IHM9cig5MzApO2NvbnN0IHU9XCJwcm9wYWdhdGlvblwiO2NvbnN0IGw9bmV3IGEuTm9vcFRleHRNYXBQcm9wYWdhdG9yO2NsYXNzIFByb3BhZ2F0aW9uQVBJe2NvbnN0cnVjdG9yKCl7dGhpcy5jcmVhdGVCYWdnYWdlPWMuY3JlYXRlQmFnZ2FnZTt0aGlzLmdldEJhZ2dhZ2U9aS5nZXRCYWdnYWdlO3RoaXMuZ2V0QWN0aXZlQmFnZ2FnZT1pLmdldEFjdGl2ZUJhZ2dhZ2U7dGhpcy5zZXRCYWdnYWdlPWkuc2V0QmFnZ2FnZTt0aGlzLmRlbGV0ZUJhZ2dhZ2U9aS5kZWxldGVCYWdnYWdlfXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IFByb3BhZ2F0aW9uQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxQcm9wYWdhdG9yKGUpe3JldHVybigwLG4ucmVnaXN0ZXJHbG9iYWwpKHUsZSxzLkRpYWdBUEkuaW5zdGFuY2UoKSl9aW5qZWN0KGUsdCxyPW8uZGVmYXVsdFRleHRNYXBTZXR0ZXIpe3JldHVybiB0aGlzLl9nZXRHbG9iYWxQcm9wYWdhdG9yKCkuaW5qZWN0KGUsdCxyKX1leHRyYWN0KGUsdCxyPW8uZGVmYXVsdFRleHRNYXBHZXR0ZXIpe3JldHVybiB0aGlzLl9nZXRHbG9iYWxQcm9wYWdhdG9yKCkuZXh0cmFjdChlLHQscil9ZmllbGRzKCl7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5maWVsZHMoKX1kaXNhYmxlKCl7KDAsbi51bnJlZ2lzdGVyR2xvYmFsKSh1LHMuRGlhZ0FQSS5pbnN0YW5jZSgpKX1fZ2V0R2xvYmFsUHJvcGFnYXRvcigpe3JldHVybigwLG4uZ2V0R2xvYmFsKSh1KXx8bH19dC5Qcm9wYWdhdGlvbkFQST1Qcm9wYWdhdGlvbkFQSX0sOTk3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VBUEk9dm9pZCAwO2NvbnN0IG49cigxNzIpO2NvbnN0IGE9cig4NDYpO2NvbnN0IG89cigxMzkpO2NvbnN0IGk9cig2MDcpO2NvbnN0IGM9cig5MzApO2NvbnN0IHM9XCJ0cmFjZVwiO2NsYXNzIFRyYWNlQVBJe2NvbnN0cnVjdG9yKCl7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcj1uZXcgYS5Qcm94eVRyYWNlclByb3ZpZGVyO3RoaXMud3JhcFNwYW5Db250ZXh0PW8ud3JhcFNwYW5Db250ZXh0O3RoaXMuaXNTcGFuQ29udGV4dFZhbGlkPW8uaXNTcGFuQ29udGV4dFZhbGlkO3RoaXMuZGVsZXRlU3Bhbj1pLmRlbGV0ZVNwYW47dGhpcy5nZXRTcGFuPWkuZ2V0U3Bhbjt0aGlzLmdldEFjdGl2ZVNwYW49aS5nZXRBY3RpdmVTcGFuO3RoaXMuZ2V0U3BhbkNvbnRleHQ9aS5nZXRTcGFuQ29udGV4dDt0aGlzLnNldFNwYW49aS5zZXRTcGFuO3RoaXMuc2V0U3BhbkNvbnRleHQ9aS5zZXRTcGFuQ29udGV4dH1zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBUcmFjZUFQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsVHJhY2VyUHJvdmlkZXIoZSl7Y29uc3QgdD0oMCxuLnJlZ2lzdGVyR2xvYmFsKShzLHRoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXIsYy5EaWFnQVBJLmluc3RhbmNlKCkpO2lmKHQpe3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXIuc2V0RGVsZWdhdGUoZSl9cmV0dXJuIHR9Z2V0VHJhY2VyUHJvdmlkZXIoKXtyZXR1cm4oMCxuLmdldEdsb2JhbCkocyl8fHRoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXJ9Z2V0VHJhY2VyKGUsdCl7cmV0dXJuIHRoaXMuZ2V0VHJhY2VyUHJvdmlkZXIoKS5nZXRUcmFjZXIoZSx0KX1kaXNhYmxlKCl7KDAsbi51bnJlZ2lzdGVyR2xvYmFsKShzLGMuRGlhZ0FQSS5pbnN0YW5jZSgpKTt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyPW5ldyBhLlByb3h5VHJhY2VyUHJvdmlkZXJ9fXQuVHJhY2VBUEk9VHJhY2VBUEl9LDI3NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRlbGV0ZUJhZ2dhZ2U9dC5zZXRCYWdnYWdlPXQuZ2V0QWN0aXZlQmFnZ2FnZT10LmdldEJhZ2dhZ2U9dm9pZCAwO2NvbnN0IG49cig0OTEpO2NvbnN0IGE9cig3ODApO2NvbnN0IG89KDAsYS5jcmVhdGVDb250ZXh0S2V5KShcIk9wZW5UZWxlbWV0cnkgQmFnZ2FnZSBLZXlcIik7ZnVuY3Rpb24gZ2V0QmFnZ2FnZShlKXtyZXR1cm4gZS5nZXRWYWx1ZShvKXx8dW5kZWZpbmVkfXQuZ2V0QmFnZ2FnZT1nZXRCYWdnYWdlO2Z1bmN0aW9uIGdldEFjdGl2ZUJhZ2dhZ2UoKXtyZXR1cm4gZ2V0QmFnZ2FnZShuLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKS5hY3RpdmUoKSl9dC5nZXRBY3RpdmVCYWdnYWdlPWdldEFjdGl2ZUJhZ2dhZ2U7ZnVuY3Rpb24gc2V0QmFnZ2FnZShlLHQpe3JldHVybiBlLnNldFZhbHVlKG8sdCl9dC5zZXRCYWdnYWdlPXNldEJhZ2dhZ2U7ZnVuY3Rpb24gZGVsZXRlQmFnZ2FnZShlKXtyZXR1cm4gZS5kZWxldGVWYWx1ZShvKX10LmRlbGV0ZUJhZ2dhZ2U9ZGVsZXRlQmFnZ2FnZX0sOTkzOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkJhZ2dhZ2VJbXBsPXZvaWQgMDtjbGFzcyBCYWdnYWdlSW1wbHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9lbnRyaWVzPWU/bmV3IE1hcChlKTpuZXcgTWFwfWdldEVudHJ5KGUpe2NvbnN0IHQ9dGhpcy5fZW50cmllcy5nZXQoZSk7aWYoIXQpe3JldHVybiB1bmRlZmluZWR9cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sdCl9Z2V0QWxsRW50cmllcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2VudHJpZXMuZW50cmllcygpKS5tYXAoKChbZSx0XSk9PltlLHRdKSl9c2V0RW50cnkoZSx0KXtjb25zdCByPW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTtyLl9lbnRyaWVzLnNldChlLHQpO3JldHVybiByfXJlbW92ZUVudHJ5KGUpe2NvbnN0IHQ9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO3QuX2VudHJpZXMuZGVsZXRlKGUpO3JldHVybiB0fXJlbW92ZUVudHJpZXMoLi4uZSl7Y29uc3QgdD1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7Zm9yKGNvbnN0IHIgb2YgZSl7dC5fZW50cmllcy5kZWxldGUocil9cmV0dXJuIHR9Y2xlYXIoKXtyZXR1cm4gbmV3IEJhZ2dhZ2VJbXBsfX10LkJhZ2dhZ2VJbXBsPUJhZ2dhZ2VJbXBsfSw4MzA6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuYmFnZ2FnZUVudHJ5TWV0YWRhdGFTeW1ib2w9dm9pZCAwO3QuYmFnZ2FnZUVudHJ5TWV0YWRhdGFTeW1ib2w9U3ltYm9sKFwiQmFnZ2FnZUVudHJ5TWV0YWRhdGFcIil9LDM2OTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZz10LmNyZWF0ZUJhZ2dhZ2U9dm9pZCAwO2NvbnN0IG49cig5MzApO2NvbnN0IGE9cig5OTMpO2NvbnN0IG89cig4MzApO2NvbnN0IGk9bi5EaWFnQVBJLmluc3RhbmNlKCk7ZnVuY3Rpb24gY3JlYXRlQmFnZ2FnZShlPXt9KXtyZXR1cm4gbmV3IGEuQmFnZ2FnZUltcGwobmV3IE1hcChPYmplY3QuZW50cmllcyhlKSkpfXQuY3JlYXRlQmFnZ2FnZT1jcmVhdGVCYWdnYWdlO2Z1bmN0aW9uIGJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZyhlKXtpZih0eXBlb2YgZSE9PVwic3RyaW5nXCIpe2kuZXJyb3IoYENhbm5vdCBjcmVhdGUgYmFnZ2FnZSBtZXRhZGF0YSBmcm9tIHVua25vd24gdHlwZTogJHt0eXBlb2YgZX1gKTtlPVwiXCJ9cmV0dXJue19fVFlQRV9fOm8uYmFnZ2FnZUVudHJ5TWV0YWRhdGFTeW1ib2wsdG9TdHJpbmcoKXtyZXR1cm4gZX19fXQuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPWJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ30sNjc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jb250ZXh0PXZvaWQgMDtjb25zdCBuPXIoNDkxKTt0LmNvbnRleHQ9bi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCl9LDIyMzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BDb250ZXh0TWFuYWdlcj12b2lkIDA7Y29uc3Qgbj1yKDc4MCk7Y2xhc3MgTm9vcENvbnRleHRNYW5hZ2Vye2FjdGl2ZSgpe3JldHVybiBuLlJPT1RfQ09OVEVYVH13aXRoKGUsdCxyLC4uLm4pe3JldHVybiB0LmNhbGwociwuLi5uKX1iaW5kKGUsdCl7cmV0dXJuIHR9ZW5hYmxlKCl7cmV0dXJuIHRoaXN9ZGlzYWJsZSgpe3JldHVybiB0aGlzfX10Lk5vb3BDb250ZXh0TWFuYWdlcj1Ob29wQ29udGV4dE1hbmFnZXJ9LDc4MDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5ST09UX0NPTlRFWFQ9dC5jcmVhdGVDb250ZXh0S2V5PXZvaWQgMDtmdW5jdGlvbiBjcmVhdGVDb250ZXh0S2V5KGUpe3JldHVybiBTeW1ib2wuZm9yKGUpfXQuY3JlYXRlQ29udGV4dEtleT1jcmVhdGVDb250ZXh0S2V5O2NsYXNzIEJhc2VDb250ZXh0e2NvbnN0cnVjdG9yKGUpe2NvbnN0IHQ9dGhpczt0Ll9jdXJyZW50Q29udGV4dD1lP25ldyBNYXAoZSk6bmV3IE1hcDt0LmdldFZhbHVlPWU9PnQuX2N1cnJlbnRDb250ZXh0LmdldChlKTt0LnNldFZhbHVlPShlLHIpPT57Y29uc3Qgbj1uZXcgQmFzZUNvbnRleHQodC5fY3VycmVudENvbnRleHQpO24uX2N1cnJlbnRDb250ZXh0LnNldChlLHIpO3JldHVybiBufTt0LmRlbGV0ZVZhbHVlPWU9Pntjb25zdCByPW5ldyBCYXNlQ29udGV4dCh0Ll9jdXJyZW50Q29udGV4dCk7ci5fY3VycmVudENvbnRleHQuZGVsZXRlKGUpO3JldHVybiByfX19dC5ST09UX0NPTlRFWFQ9bmV3IEJhc2VDb250ZXh0fSw1MDY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kaWFnPXZvaWQgMDtjb25zdCBuPXIoOTMwKTt0LmRpYWc9bi5EaWFnQVBJLmluc3RhbmNlKCl9LDU2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0NvbXBvbmVudExvZ2dlcj12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y2xhc3MgRGlhZ0NvbXBvbmVudExvZ2dlcntjb25zdHJ1Y3RvcihlKXt0aGlzLl9uYW1lc3BhY2U9ZS5uYW1lc3BhY2V8fFwiRGlhZ0NvbXBvbmVudExvZ2dlclwifWRlYnVnKC4uLmUpe3JldHVybiBsb2dQcm94eShcImRlYnVnXCIsdGhpcy5fbmFtZXNwYWNlLGUpfWVycm9yKC4uLmUpe3JldHVybiBsb2dQcm94eShcImVycm9yXCIsdGhpcy5fbmFtZXNwYWNlLGUpfWluZm8oLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiaW5mb1wiLHRoaXMuX25hbWVzcGFjZSxlKX13YXJuKC4uLmUpe3JldHVybiBsb2dQcm94eShcIndhcm5cIix0aGlzLl9uYW1lc3BhY2UsZSl9dmVyYm9zZSguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJ2ZXJib3NlXCIsdGhpcy5fbmFtZXNwYWNlLGUpfX10LkRpYWdDb21wb25lbnRMb2dnZXI9RGlhZ0NvbXBvbmVudExvZ2dlcjtmdW5jdGlvbiBsb2dQcm94eShlLHQscil7Y29uc3QgYT0oMCxuLmdldEdsb2JhbCkoXCJkaWFnXCIpO2lmKCFhKXtyZXR1cm59ci51bnNoaWZ0KHQpO3JldHVybiBhW2VdKC4uLnIpfX0sOTcyOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdDb25zb2xlTG9nZ2VyPXZvaWQgMDtjb25zdCByPVt7bjpcImVycm9yXCIsYzpcImVycm9yXCJ9LHtuOlwid2FyblwiLGM6XCJ3YXJuXCJ9LHtuOlwiaW5mb1wiLGM6XCJpbmZvXCJ9LHtuOlwiZGVidWdcIixjOlwiZGVidWdcIn0se246XCJ2ZXJib3NlXCIsYzpcInRyYWNlXCJ9XTtjbGFzcyBEaWFnQ29uc29sZUxvZ2dlcntjb25zdHJ1Y3Rvcigpe2Z1bmN0aW9uIF9jb25zb2xlRnVuYyhlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7aWYoY29uc29sZSl7bGV0IHI9Y29uc29sZVtlXTtpZih0eXBlb2YgciE9PVwiZnVuY3Rpb25cIil7cj1jb25zb2xlLmxvZ31pZih0eXBlb2Ygcj09PVwiZnVuY3Rpb25cIil7cmV0dXJuIHIuYXBwbHkoY29uc29sZSx0KX19fX1mb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKyl7dGhpc1tyW2VdLm5dPV9jb25zb2xlRnVuYyhyW2VdLmMpfX19dC5EaWFnQ29uc29sZUxvZ2dlcj1EaWFnQ29uc29sZUxvZ2dlcn0sOTEyOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyPXZvaWQgMDtjb25zdCBuPXIoOTU3KTtmdW5jdGlvbiBjcmVhdGVMb2dMZXZlbERpYWdMb2dnZXIoZSx0KXtpZihlPG4uRGlhZ0xvZ0xldmVsLk5PTkUpe2U9bi5EaWFnTG9nTGV2ZWwuTk9ORX1lbHNlIGlmKGU+bi5EaWFnTG9nTGV2ZWwuQUxMKXtlPW4uRGlhZ0xvZ0xldmVsLkFMTH10PXR8fHt9O2Z1bmN0aW9uIF9maWx0ZXJGdW5jKHIsbil7Y29uc3QgYT10W3JdO2lmKHR5cGVvZiBhPT09XCJmdW5jdGlvblwiJiZlPj1uKXtyZXR1cm4gYS5iaW5kKHQpfXJldHVybiBmdW5jdGlvbigpe319cmV0dXJue2Vycm9yOl9maWx0ZXJGdW5jKFwiZXJyb3JcIixuLkRpYWdMb2dMZXZlbC5FUlJPUiksd2FybjpfZmlsdGVyRnVuYyhcIndhcm5cIixuLkRpYWdMb2dMZXZlbC5XQVJOKSxpbmZvOl9maWx0ZXJGdW5jKFwiaW5mb1wiLG4uRGlhZ0xvZ0xldmVsLklORk8pLGRlYnVnOl9maWx0ZXJGdW5jKFwiZGVidWdcIixuLkRpYWdMb2dMZXZlbC5ERUJVRyksdmVyYm9zZTpfZmlsdGVyRnVuYyhcInZlcmJvc2VcIixuLkRpYWdMb2dMZXZlbC5WRVJCT1NFKX19dC5jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXI9Y3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyfSw5NTc6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0xvZ0xldmVsPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiTk9ORVwiXT0wXT1cIk5PTkVcIjtlW2VbXCJFUlJPUlwiXT0zMF09XCJFUlJPUlwiO2VbZVtcIldBUk5cIl09NTBdPVwiV0FSTlwiO2VbZVtcIklORk9cIl09NjBdPVwiSU5GT1wiO2VbZVtcIkRFQlVHXCJdPTcwXT1cIkRFQlVHXCI7ZVtlW1wiVkVSQk9TRVwiXT04MF09XCJWRVJCT1NFXCI7ZVtlW1wiQUxMXCJdPTk5OTldPVwiQUxMXCJ9KShyPXQuRGlhZ0xvZ0xldmVsfHwodC5EaWFnTG9nTGV2ZWw9e30pKX0sMTcyOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QudW5yZWdpc3Rlckdsb2JhbD10LmdldEdsb2JhbD10LnJlZ2lzdGVyR2xvYmFsPXZvaWQgMDtjb25zdCBuPXIoMjAwKTtjb25zdCBhPXIoNTIxKTtjb25zdCBvPXIoMTMwKTtjb25zdCBpPWEuVkVSU0lPTi5zcGxpdChcIi5cIilbMF07Y29uc3QgYz1TeW1ib2wuZm9yKGBvcGVudGVsZW1ldHJ5LmpzLmFwaS4ke2l9YCk7Y29uc3Qgcz1uLl9nbG9iYWxUaGlzO2Z1bmN0aW9uIHJlZ2lzdGVyR2xvYmFsKGUsdCxyLG49ZmFsc2Upe3ZhciBvO2NvbnN0IGk9c1tjXT0obz1zW2NdKSE9PW51bGwmJm8hPT12b2lkIDA/bzp7dmVyc2lvbjphLlZFUlNJT059O2lmKCFuJiZpW2VdKXtjb25zdCB0PW5ldyBFcnJvcihgQG9wZW50ZWxlbWV0cnkvYXBpOiBBdHRlbXB0ZWQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiBvZiBBUEk6ICR7ZX1gKTtyLmVycm9yKHQuc3RhY2t8fHQubWVzc2FnZSk7cmV0dXJuIGZhbHNlfWlmKGkudmVyc2lvbiE9PWEuVkVSU0lPTil7Y29uc3QgdD1uZXcgRXJyb3IoYEBvcGVudGVsZW1ldHJ5L2FwaTogUmVnaXN0cmF0aW9uIG9mIHZlcnNpb24gdiR7aS52ZXJzaW9ufSBmb3IgJHtlfSBkb2VzIG5vdCBtYXRjaCBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgQVBJIHYke2EuVkVSU0lPTn1gKTtyLmVycm9yKHQuc3RhY2t8fHQubWVzc2FnZSk7cmV0dXJuIGZhbHNlfWlbZV09dDtyLmRlYnVnKGBAb3BlbnRlbGVtZXRyeS9hcGk6IFJlZ2lzdGVyZWQgYSBnbG9iYWwgZm9yICR7ZX0gdiR7YS5WRVJTSU9OfS5gKTtyZXR1cm4gdHJ1ZX10LnJlZ2lzdGVyR2xvYmFsPXJlZ2lzdGVyR2xvYmFsO2Z1bmN0aW9uIGdldEdsb2JhbChlKXt2YXIgdCxyO2NvbnN0IG49KHQ9c1tjXSk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnZlcnNpb247aWYoIW58fCEoMCxvLmlzQ29tcGF0aWJsZSkobikpe3JldHVybn1yZXR1cm4ocj1zW2NdKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnJbZV19dC5nZXRHbG9iYWw9Z2V0R2xvYmFsO2Z1bmN0aW9uIHVucmVnaXN0ZXJHbG9iYWwoZSx0KXt0LmRlYnVnKGBAb3BlbnRlbGVtZXRyeS9hcGk6IFVucmVnaXN0ZXJpbmcgYSBnbG9iYWwgZm9yICR7ZX0gdiR7YS5WRVJTSU9OfS5gKTtjb25zdCByPXNbY107aWYocil7ZGVsZXRlIHJbZV19fXQudW5yZWdpc3Rlckdsb2JhbD11bnJlZ2lzdGVyR2xvYmFsfSwxMzA6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5pc0NvbXBhdGlibGU9dC5fbWFrZUNvbXBhdGliaWxpdHlDaGVjaz12b2lkIDA7Y29uc3Qgbj1yKDUyMSk7Y29uc3QgYT0vXihcXGQrKVxcLihcXGQrKVxcLihcXGQrKSgtKC4rKSk/JC87ZnVuY3Rpb24gX21ha2VDb21wYXRpYmlsaXR5Q2hlY2soZSl7Y29uc3QgdD1uZXcgU2V0KFtlXSk7Y29uc3Qgcj1uZXcgU2V0O2NvbnN0IG49ZS5tYXRjaChhKTtpZighbil7cmV0dXJuKCk9PmZhbHNlfWNvbnN0IG89e21ham9yOituWzFdLG1pbm9yOituWzJdLHBhdGNoOituWzNdLHByZXJlbGVhc2U6bls0XX07aWYoby5wcmVyZWxlYXNlIT1udWxsKXtyZXR1cm4gZnVuY3Rpb24gaXNFeGFjdG1hdGNoKHQpe3JldHVybiB0PT09ZX19ZnVuY3Rpb24gX3JlamVjdChlKXtyLmFkZChlKTtyZXR1cm4gZmFsc2V9ZnVuY3Rpb24gX2FjY2VwdChlKXt0LmFkZChlKTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZnVuY3Rpb24gaXNDb21wYXRpYmxlKGUpe2lmKHQuaGFzKGUpKXtyZXR1cm4gdHJ1ZX1pZihyLmhhcyhlKSl7cmV0dXJuIGZhbHNlfWNvbnN0IG49ZS5tYXRjaChhKTtpZighbil7cmV0dXJuIF9yZWplY3QoZSl9Y29uc3QgaT17bWFqb3I6K25bMV0sbWlub3I6K25bMl0scGF0Y2g6K25bM10scHJlcmVsZWFzZTpuWzRdfTtpZihpLnByZXJlbGVhc2UhPW51bGwpe3JldHVybiBfcmVqZWN0KGUpfWlmKG8ubWFqb3IhPT1pLm1ham9yKXtyZXR1cm4gX3JlamVjdChlKX1pZihvLm1ham9yPT09MCl7aWYoby5taW5vcj09PWkubWlub3ImJm8ucGF0Y2g8PWkucGF0Y2gpe3JldHVybiBfYWNjZXB0KGUpfXJldHVybiBfcmVqZWN0KGUpfWlmKG8ubWlub3I8PWkubWlub3Ipe3JldHVybiBfYWNjZXB0KGUpfXJldHVybiBfcmVqZWN0KGUpfX10Ll9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrPV9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrO3QuaXNDb21wYXRpYmxlPV9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrKG4uVkVSU0lPTil9LDg4NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lm1ldHJpY3M9dm9pZCAwO2NvbnN0IG49cig2NTMpO3QubWV0cmljcz1uLk1ldHJpY3NBUEkuZ2V0SW5zdGFuY2UoKX0sOTAxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlZhbHVlVHlwZT12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIklOVFwiXT0wXT1cIklOVFwiO2VbZVtcIkRPVUJMRVwiXT0xXT1cIkRPVUJMRVwifSkocj10LlZhbHVlVHlwZXx8KHQuVmFsdWVUeXBlPXt9KSl9LDEwMjooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jcmVhdGVOb29wTWV0ZXI9dC5OT09QX09CU0VSVkFCTEVfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz10Lk5PT1BfT0JTRVJWQUJMRV9HQVVHRV9NRVRSSUM9dC5OT09QX09CU0VSVkFCTEVfQ09VTlRFUl9NRVRSSUM9dC5OT09QX1VQX0RPV05fQ09VTlRFUl9NRVRSSUM9dC5OT09QX0hJU1RPR1JBTV9NRVRSSUM9dC5OT09QX0NPVU5URVJfTUVUUklDPXQuTk9PUF9NRVRFUj10Lk5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM9dC5Ob29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWM9dC5Ob29wT2JzZXJ2YWJsZU1ldHJpYz10Lk5vb3BIaXN0b2dyYW1NZXRyaWM9dC5Ob29wVXBEb3duQ291bnRlck1ldHJpYz10Lk5vb3BDb3VudGVyTWV0cmljPXQuTm9vcE1ldHJpYz10Lk5vb3BNZXRlcj12b2lkIDA7Y2xhc3MgTm9vcE1ldGVye2NvbnN0cnVjdG9yKCl7fWNyZWF0ZUhpc3RvZ3JhbShlLHIpe3JldHVybiB0Lk5PT1BfSElTVE9HUkFNX01FVFJJQ31jcmVhdGVDb3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9DT1VOVEVSX01FVFJJQ31jcmVhdGVVcERvd25Db3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDfWNyZWF0ZU9ic2VydmFibGVHYXVnZShlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9HQVVHRV9NRVRSSUN9Y3JlYXRlT2JzZXJ2YWJsZUNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX09CU0VSVkFCTEVfQ09VTlRFUl9NRVRSSUN9Y3JlYXRlT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX09CU0VSVkFCTEVfVVBfRE9XTl9DT1VOVEVSX01FVFJJQ31hZGRCYXRjaE9ic2VydmFibGVDYWxsYmFjayhlLHQpe31yZW1vdmVCYXRjaE9ic2VydmFibGVDYWxsYmFjayhlKXt9fXQuTm9vcE1ldGVyPU5vb3BNZXRlcjtjbGFzcyBOb29wTWV0cmlje310Lk5vb3BNZXRyaWM9Tm9vcE1ldHJpYztjbGFzcyBOb29wQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BNZXRyaWN7YWRkKGUsdCl7fX10Lk5vb3BDb3VudGVyTWV0cmljPU5vb3BDb3VudGVyTWV0cmljO2NsYXNzIE5vb3BVcERvd25Db3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3thZGQoZSx0KXt9fXQuTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM9Tm9vcFVwRG93bkNvdW50ZXJNZXRyaWM7Y2xhc3MgTm9vcEhpc3RvZ3JhbU1ldHJpYyBleHRlbmRzIE5vb3BNZXRyaWN7cmVjb3JkKGUsdCl7fX10Lk5vb3BIaXN0b2dyYW1NZXRyaWM9Tm9vcEhpc3RvZ3JhbU1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3thZGRDYWxsYmFjayhlKXt9cmVtb3ZlQ2FsbGJhY2soZSl7fX10Lk5vb3BPYnNlcnZhYmxlTWV0cmljPU5vb3BPYnNlcnZhYmxlTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BPYnNlcnZhYmxlTWV0cmlje310Lk5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYz1Ob29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYyBleHRlbmRzIE5vb3BPYnNlcnZhYmxlTWV0cmlje310Lk5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM9Tm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3t9dC5Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM9Tm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljO3QuTk9PUF9NRVRFUj1uZXcgTm9vcE1ldGVyO3QuTk9PUF9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcENvdW50ZXJNZXRyaWM7dC5OT09QX0hJU1RPR1JBTV9NRVRSSUM9bmV3IE5vb3BIaXN0b2dyYW1NZXRyaWM7dC5OT09QX1VQX0RPV05fQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BVcERvd25Db3VudGVyTWV0cmljO3QuTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDPW5ldyBOb29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDPW5ldyBOb29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljO3QuTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYztmdW5jdGlvbiBjcmVhdGVOb29wTWV0ZXIoKXtyZXR1cm4gdC5OT09QX01FVEVSfXQuY3JlYXRlTm9vcE1ldGVyPWNyZWF0ZU5vb3BNZXRlcn0sNjYwOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTk9PUF9NRVRFUl9QUk9WSURFUj10Lk5vb3BNZXRlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoMTAyKTtjbGFzcyBOb29wTWV0ZXJQcm92aWRlcntnZXRNZXRlcihlLHQscil7cmV0dXJuIG4uTk9PUF9NRVRFUn19dC5Ob29wTWV0ZXJQcm92aWRlcj1Ob29wTWV0ZXJQcm92aWRlcjt0Lk5PT1BfTUVURVJfUFJPVklERVI9bmV3IE5vb3BNZXRlclByb3ZpZGVyfSwyMDA6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSl9OmZ1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO2Vbbl09dFtyXX0pO3ZhciBhPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKWlmKHIhPT1cImRlZmF1bHRcIiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKW4odCxlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO2Eocig0NiksdCl9LDY1MTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5fZ2xvYmFsVGhpcz12b2lkIDA7dC5fZ2xvYmFsVGhpcz10eXBlb2YgZ2xvYmFsVGhpcz09PVwib2JqZWN0XCI/Z2xvYmFsVGhpczpnbG9iYWx9LDQ2OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pfTpmdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtlW25dPXRbcl19KTt2YXIgYT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gZSlpZihyIT09XCJkZWZhdWx0XCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSluKHQsZSxyKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTthKHIoNjUxKSx0KX0sOTM5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QucHJvcGFnYXRpb249dm9pZCAwO2NvbnN0IG49cigxODEpO3QucHJvcGFnYXRpb249bi5Qcm9wYWdhdGlvbkFQSS5nZXRJbnN0YW5jZSgpfSw4NzQ6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRleHRNYXBQcm9wYWdhdG9yPXZvaWQgMDtjbGFzcyBOb29wVGV4dE1hcFByb3BhZ2F0b3J7aW5qZWN0KGUsdCl7fWV4dHJhY3QoZSx0KXtyZXR1cm4gZX1maWVsZHMoKXtyZXR1cm5bXX19dC5Ob29wVGV4dE1hcFByb3BhZ2F0b3I9Tm9vcFRleHRNYXBQcm9wYWdhdG9yfSwxOTQ6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGVmYXVsdFRleHRNYXBTZXR0ZXI9dC5kZWZhdWx0VGV4dE1hcEdldHRlcj12b2lkIDA7dC5kZWZhdWx0VGV4dE1hcEdldHRlcj17Z2V0KGUsdCl7aWYoZT09bnVsbCl7cmV0dXJuIHVuZGVmaW5lZH1yZXR1cm4gZVt0XX0sa2V5cyhlKXtpZihlPT1udWxsKXtyZXR1cm5bXX1yZXR1cm4gT2JqZWN0LmtleXMoZSl9fTt0LmRlZmF1bHRUZXh0TWFwU2V0dGVyPXtzZXQoZSx0LHIpe2lmKGU9PW51bGwpe3JldHVybn1lW3RdPXJ9fX0sODQ1OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QudHJhY2U9dm9pZCAwO2NvbnN0IG49cig5OTcpO3QudHJhY2U9bi5UcmFjZUFQSS5nZXRJbnN0YW5jZSgpfSw0MDM6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob25SZWNvcmRpbmdTcGFuPXZvaWQgMDtjb25zdCBuPXIoNDc2KTtjbGFzcyBOb25SZWNvcmRpbmdTcGFue2NvbnN0cnVjdG9yKGU9bi5JTlZBTElEX1NQQU5fQ09OVEVYVCl7dGhpcy5fc3BhbkNvbnRleHQ9ZX1zcGFuQ29udGV4dCgpe3JldHVybiB0aGlzLl9zcGFuQ29udGV4dH1zZXRBdHRyaWJ1dGUoZSx0KXtyZXR1cm4gdGhpc31zZXRBdHRyaWJ1dGVzKGUpe3JldHVybiB0aGlzfWFkZEV2ZW50KGUsdCl7cmV0dXJuIHRoaXN9c2V0U3RhdHVzKGUpe3JldHVybiB0aGlzfXVwZGF0ZU5hbWUoZSl7cmV0dXJuIHRoaXN9ZW5kKGUpe31pc1JlY29yZGluZygpe3JldHVybiBmYWxzZX1yZWNvcmRFeGNlcHRpb24oZSx0KXt9fXQuTm9uUmVjb3JkaW5nU3Bhbj1Ob25SZWNvcmRpbmdTcGFufSw2MTQ6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVHJhY2VyPXZvaWQgMDtjb25zdCBuPXIoNDkxKTtjb25zdCBhPXIoNjA3KTtjb25zdCBvPXIoNDAzKTtjb25zdCBpPXIoMTM5KTtjb25zdCBjPW4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpO2NsYXNzIE5vb3BUcmFjZXJ7c3RhcnRTcGFuKGUsdCxyPWMuYWN0aXZlKCkpe2NvbnN0IG49Qm9vbGVhbih0PT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5yb290KTtpZihuKXtyZXR1cm4gbmV3IG8uTm9uUmVjb3JkaW5nU3Bhbn1jb25zdCBzPXImJigwLGEuZ2V0U3BhbkNvbnRleHQpKHIpO2lmKGlzU3BhbkNvbnRleHQocykmJigwLGkuaXNTcGFuQ29udGV4dFZhbGlkKShzKSl7cmV0dXJuIG5ldyBvLk5vblJlY29yZGluZ1NwYW4ocyl9ZWxzZXtyZXR1cm4gbmV3IG8uTm9uUmVjb3JkaW5nU3Bhbn19c3RhcnRBY3RpdmVTcGFuKGUsdCxyLG4pe2xldCBvO2xldCBpO2xldCBzO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7cmV0dXJufWVsc2UgaWYoYXJndW1lbnRzLmxlbmd0aD09PTIpe3M9dH1lbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGg9PT0zKXtvPXQ7cz1yfWVsc2V7bz10O2k9cjtzPW59Y29uc3QgdT1pIT09bnVsbCYmaSE9PXZvaWQgMD9pOmMuYWN0aXZlKCk7Y29uc3QgbD10aGlzLnN0YXJ0U3BhbihlLG8sdSk7Y29uc3QgZz0oMCxhLnNldFNwYW4pKHUsbCk7cmV0dXJuIGMud2l0aChnLHMsdW5kZWZpbmVkLGwpfX10Lk5vb3BUcmFjZXI9Tm9vcFRyYWNlcjtmdW5jdGlvbiBpc1NwYW5Db250ZXh0KGUpe3JldHVybiB0eXBlb2YgZT09PVwib2JqZWN0XCImJnR5cGVvZiBlW1wic3BhbklkXCJdPT09XCJzdHJpbmdcIiYmdHlwZW9mIGVbXCJ0cmFjZUlkXCJdPT09XCJzdHJpbmdcIiYmdHlwZW9mIGVbXCJ0cmFjZUZsYWdzXCJdPT09XCJudW1iZXJcIn19LDEyNDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUcmFjZXJQcm92aWRlcj12b2lkIDA7Y29uc3Qgbj1yKDYxNCk7Y2xhc3MgTm9vcFRyYWNlclByb3ZpZGVye2dldFRyYWNlcihlLHQscil7cmV0dXJuIG5ldyBuLk5vb3BUcmFjZXJ9fXQuTm9vcFRyYWNlclByb3ZpZGVyPU5vb3BUcmFjZXJQcm92aWRlcn0sMTI1OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuUHJveHlUcmFjZXI9dm9pZCAwO2NvbnN0IG49cig2MTQpO2NvbnN0IGE9bmV3IG4uTm9vcFRyYWNlcjtjbGFzcyBQcm94eVRyYWNlcntjb25zdHJ1Y3RvcihlLHQscixuKXt0aGlzLl9wcm92aWRlcj1lO3RoaXMubmFtZT10O3RoaXMudmVyc2lvbj1yO3RoaXMub3B0aW9ucz1ufXN0YXJ0U3BhbihlLHQscil7cmV0dXJuIHRoaXMuX2dldFRyYWNlcigpLnN0YXJ0U3BhbihlLHQscil9c3RhcnRBY3RpdmVTcGFuKGUsdCxyLG4pe2NvbnN0IGE9dGhpcy5fZ2V0VHJhY2VyKCk7cmV0dXJuIFJlZmxlY3QuYXBwbHkoYS5zdGFydEFjdGl2ZVNwYW4sYSxhcmd1bWVudHMpfV9nZXRUcmFjZXIoKXtpZih0aGlzLl9kZWxlZ2F0ZSl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlfWNvbnN0IGU9dGhpcy5fcHJvdmlkZXIuZ2V0RGVsZWdhdGVUcmFjZXIodGhpcy5uYW1lLHRoaXMudmVyc2lvbix0aGlzLm9wdGlvbnMpO2lmKCFlKXtyZXR1cm4gYX10aGlzLl9kZWxlZ2F0ZT1lO3JldHVybiB0aGlzLl9kZWxlZ2F0ZX19dC5Qcm94eVRyYWNlcj1Qcm94eVRyYWNlcn0sODQ2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuUHJveHlUcmFjZXJQcm92aWRlcj12b2lkIDA7Y29uc3Qgbj1yKDEyNSk7Y29uc3QgYT1yKDEyNCk7Y29uc3Qgbz1uZXcgYS5Ob29wVHJhY2VyUHJvdmlkZXI7Y2xhc3MgUHJveHlUcmFjZXJQcm92aWRlcntnZXRUcmFjZXIoZSx0LHIpe3ZhciBhO3JldHVybihhPXRoaXMuZ2V0RGVsZWdhdGVUcmFjZXIoZSx0LHIpKSE9PW51bGwmJmEhPT12b2lkIDA/YTpuZXcgbi5Qcm94eVRyYWNlcih0aGlzLGUsdCxyKX1nZXREZWxlZ2F0ZSgpe3ZhciBlO3JldHVybihlPXRoaXMuX2RlbGVnYXRlKSE9PW51bGwmJmUhPT12b2lkIDA/ZTpvfXNldERlbGVnYXRlKGUpe3RoaXMuX2RlbGVnYXRlPWV9Z2V0RGVsZWdhdGVUcmFjZXIoZSx0LHIpe3ZhciBuO3JldHVybihuPXRoaXMuX2RlbGVnYXRlKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uZ2V0VHJhY2VyKGUsdCxyKX19dC5Qcm94eVRyYWNlclByb3ZpZGVyPVByb3h5VHJhY2VyUHJvdmlkZXJ9LDk5NjooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TYW1wbGluZ0RlY2lzaW9uPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiTk9UX1JFQ09SRFwiXT0wXT1cIk5PVF9SRUNPUkRcIjtlW2VbXCJSRUNPUkRcIl09MV09XCJSRUNPUkRcIjtlW2VbXCJSRUNPUkRfQU5EX1NBTVBMRURcIl09Ml09XCJSRUNPUkRfQU5EX1NBTVBMRURcIn0pKHI9dC5TYW1wbGluZ0RlY2lzaW9ufHwodC5TYW1wbGluZ0RlY2lzaW9uPXt9KSl9LDYwNzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmdldFNwYW5Db250ZXh0PXQuc2V0U3BhbkNvbnRleHQ9dC5kZWxldGVTcGFuPXQuc2V0U3Bhbj10LmdldEFjdGl2ZVNwYW49dC5nZXRTcGFuPXZvaWQgMDtjb25zdCBuPXIoNzgwKTtjb25zdCBhPXIoNDAzKTtjb25zdCBvPXIoNDkxKTtjb25zdCBpPSgwLG4uY3JlYXRlQ29udGV4dEtleSkoXCJPcGVuVGVsZW1ldHJ5IENvbnRleHQgS2V5IFNQQU5cIik7ZnVuY3Rpb24gZ2V0U3BhbihlKXtyZXR1cm4gZS5nZXRWYWx1ZShpKXx8dW5kZWZpbmVkfXQuZ2V0U3Bhbj1nZXRTcGFuO2Z1bmN0aW9uIGdldEFjdGl2ZVNwYW4oKXtyZXR1cm4gZ2V0U3BhbihvLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKS5hY3RpdmUoKSl9dC5nZXRBY3RpdmVTcGFuPWdldEFjdGl2ZVNwYW47ZnVuY3Rpb24gc2V0U3BhbihlLHQpe3JldHVybiBlLnNldFZhbHVlKGksdCl9dC5zZXRTcGFuPXNldFNwYW47ZnVuY3Rpb24gZGVsZXRlU3BhbihlKXtyZXR1cm4gZS5kZWxldGVWYWx1ZShpKX10LmRlbGV0ZVNwYW49ZGVsZXRlU3BhbjtmdW5jdGlvbiBzZXRTcGFuQ29udGV4dChlLHQpe3JldHVybiBzZXRTcGFuKGUsbmV3IGEuTm9uUmVjb3JkaW5nU3Bhbih0KSl9dC5zZXRTcGFuQ29udGV4dD1zZXRTcGFuQ29udGV4dDtmdW5jdGlvbiBnZXRTcGFuQ29udGV4dChlKXt2YXIgdDtyZXR1cm4odD1nZXRTcGFuKGUpKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuc3BhbkNvbnRleHQoKX10LmdldFNwYW5Db250ZXh0PWdldFNwYW5Db250ZXh0fSwzMjU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZVN0YXRlSW1wbD12b2lkIDA7Y29uc3Qgbj1yKDU2NCk7Y29uc3QgYT0zMjtjb25zdCBvPTUxMjtjb25zdCBpPVwiLFwiO2NvbnN0IGM9XCI9XCI7Y2xhc3MgVHJhY2VTdGF0ZUltcGx7Y29uc3RydWN0b3IoZSl7dGhpcy5faW50ZXJuYWxTdGF0ZT1uZXcgTWFwO2lmKGUpdGhpcy5fcGFyc2UoZSl9c2V0KGUsdCl7Y29uc3Qgcj10aGlzLl9jbG9uZSgpO2lmKHIuX2ludGVybmFsU3RhdGUuaGFzKGUpKXtyLl9pbnRlcm5hbFN0YXRlLmRlbGV0ZShlKX1yLl9pbnRlcm5hbFN0YXRlLnNldChlLHQpO3JldHVybiByfXVuc2V0KGUpe2NvbnN0IHQ9dGhpcy5fY2xvbmUoKTt0Ll9pbnRlcm5hbFN0YXRlLmRlbGV0ZShlKTtyZXR1cm4gdH1nZXQoZSl7cmV0dXJuIHRoaXMuX2ludGVybmFsU3RhdGUuZ2V0KGUpfXNlcmlhbGl6ZSgpe3JldHVybiB0aGlzLl9rZXlzKCkucmVkdWNlKCgoZSx0KT0+e2UucHVzaCh0K2MrdGhpcy5nZXQodCkpO3JldHVybiBlfSksW10pLmpvaW4oaSl9X3BhcnNlKGUpe2lmKGUubGVuZ3RoPm8pcmV0dXJuO3RoaXMuX2ludGVybmFsU3RhdGU9ZS5zcGxpdChpKS5yZXZlcnNlKCkucmVkdWNlKCgoZSx0KT0+e2NvbnN0IHI9dC50cmltKCk7Y29uc3QgYT1yLmluZGV4T2YoYyk7aWYoYSE9PS0xKXtjb25zdCBvPXIuc2xpY2UoMCxhKTtjb25zdCBpPXIuc2xpY2UoYSsxLHQubGVuZ3RoKTtpZigoMCxuLnZhbGlkYXRlS2V5KShvKSYmKDAsbi52YWxpZGF0ZVZhbHVlKShpKSl7ZS5zZXQobyxpKX1lbHNle319cmV0dXJuIGV9KSxuZXcgTWFwKTtpZih0aGlzLl9pbnRlcm5hbFN0YXRlLnNpemU+YSl7dGhpcy5faW50ZXJuYWxTdGF0ZT1uZXcgTWFwKEFycmF5LmZyb20odGhpcy5faW50ZXJuYWxTdGF0ZS5lbnRyaWVzKCkpLnJldmVyc2UoKS5zbGljZSgwLGEpKX19X2tleXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9pbnRlcm5hbFN0YXRlLmtleXMoKSkucmV2ZXJzZSgpfV9jbG9uZSgpe2NvbnN0IGU9bmV3IFRyYWNlU3RhdGVJbXBsO2UuX2ludGVybmFsU3RhdGU9bmV3IE1hcCh0aGlzLl9pbnRlcm5hbFN0YXRlKTtyZXR1cm4gZX19dC5UcmFjZVN0YXRlSW1wbD1UcmFjZVN0YXRlSW1wbH0sNTY0OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnZhbGlkYXRlVmFsdWU9dC52YWxpZGF0ZUtleT12b2lkIDA7Y29uc3Qgcj1cIltfMC05YS16LSovXVwiO2NvbnN0IG49YFthLXpdJHtyfXswLDI1NX1gO2NvbnN0IGE9YFthLXowLTldJHtyfXswLDI0MH1AW2Etel0ke3J9ezAsMTN9YDtjb25zdCBvPW5ldyBSZWdFeHAoYF4oPzoke259fCR7YX0pJGApO2NvbnN0IGk9L15bIC1+XXswLDI1NX1bIS1+XSQvO2NvbnN0IGM9Lyx8PS87ZnVuY3Rpb24gdmFsaWRhdGVLZXkoZSl7cmV0dXJuIG8udGVzdChlKX10LnZhbGlkYXRlS2V5PXZhbGlkYXRlS2V5O2Z1bmN0aW9uIHZhbGlkYXRlVmFsdWUoZSl7cmV0dXJuIGkudGVzdChlKSYmIWMudGVzdChlKX10LnZhbGlkYXRlVmFsdWU9dmFsaWRhdGVWYWx1ZX0sOTg6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jcmVhdGVUcmFjZVN0YXRlPXZvaWQgMDtjb25zdCBuPXIoMzI1KTtmdW5jdGlvbiBjcmVhdGVUcmFjZVN0YXRlKGUpe3JldHVybiBuZXcgbi5UcmFjZVN0YXRlSW1wbChlKX10LmNyZWF0ZVRyYWNlU3RhdGU9Y3JlYXRlVHJhY2VTdGF0ZX0sNDc2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9dC5JTlZBTElEX1RSQUNFSUQ9dC5JTlZBTElEX1NQQU5JRD12b2lkIDA7Y29uc3Qgbj1yKDQ3NSk7dC5JTlZBTElEX1NQQU5JRD1cIjAwMDAwMDAwMDAwMDAwMDBcIjt0LklOVkFMSURfVFJBQ0VJRD1cIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCI7dC5JTlZBTElEX1NQQU5fQ09OVEVYVD17dHJhY2VJZDp0LklOVkFMSURfVFJBQ0VJRCxzcGFuSWQ6dC5JTlZBTElEX1NQQU5JRCx0cmFjZUZsYWdzOm4uVHJhY2VGbGFncy5OT05FfX0sMzU3OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNwYW5LaW5kPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiSU5URVJOQUxcIl09MF09XCJJTlRFUk5BTFwiO2VbZVtcIlNFUlZFUlwiXT0xXT1cIlNFUlZFUlwiO2VbZVtcIkNMSUVOVFwiXT0yXT1cIkNMSUVOVFwiO2VbZVtcIlBST0RVQ0VSXCJdPTNdPVwiUFJPRFVDRVJcIjtlW2VbXCJDT05TVU1FUlwiXT00XT1cIkNPTlNVTUVSXCJ9KShyPXQuU3BhbktpbmR8fCh0LlNwYW5LaW5kPXt9KSl9LDEzOTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LndyYXBTcGFuQ29udGV4dD10LmlzU3BhbkNvbnRleHRWYWxpZD10LmlzVmFsaWRTcGFuSWQ9dC5pc1ZhbGlkVHJhY2VJZD12b2lkIDA7Y29uc3Qgbj1yKDQ3Nik7Y29uc3QgYT1yKDQwMyk7Y29uc3Qgbz0vXihbMC05YS1mXXszMn0pJC9pO2NvbnN0IGk9L15bMC05YS1mXXsxNn0kL2k7ZnVuY3Rpb24gaXNWYWxpZFRyYWNlSWQoZSl7cmV0dXJuIG8udGVzdChlKSYmZSE9PW4uSU5WQUxJRF9UUkFDRUlEfXQuaXNWYWxpZFRyYWNlSWQ9aXNWYWxpZFRyYWNlSWQ7ZnVuY3Rpb24gaXNWYWxpZFNwYW5JZChlKXtyZXR1cm4gaS50ZXN0KGUpJiZlIT09bi5JTlZBTElEX1NQQU5JRH10LmlzVmFsaWRTcGFuSWQ9aXNWYWxpZFNwYW5JZDtmdW5jdGlvbiBpc1NwYW5Db250ZXh0VmFsaWQoZSl7cmV0dXJuIGlzVmFsaWRUcmFjZUlkKGUudHJhY2VJZCkmJmlzVmFsaWRTcGFuSWQoZS5zcGFuSWQpfXQuaXNTcGFuQ29udGV4dFZhbGlkPWlzU3BhbkNvbnRleHRWYWxpZDtmdW5jdGlvbiB3cmFwU3BhbkNvbnRleHQoZSl7cmV0dXJuIG5ldyBhLk5vblJlY29yZGluZ1NwYW4oZSl9dC53cmFwU3BhbkNvbnRleHQ9d3JhcFNwYW5Db250ZXh0fSw4NDc6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU3BhblN0YXR1c0NvZGU9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJVTlNFVFwiXT0wXT1cIlVOU0VUXCI7ZVtlW1wiT0tcIl09MV09XCJPS1wiO2VbZVtcIkVSUk9SXCJdPTJdPVwiRVJST1JcIn0pKHI9dC5TcGFuU3RhdHVzQ29kZXx8KHQuU3BhblN0YXR1c0NvZGU9e30pKX0sNDc1OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlRmxhZ3M9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT05FXCJdPTBdPVwiTk9ORVwiO2VbZVtcIlNBTVBMRURcIl09MV09XCJTQU1QTEVEXCJ9KShyPXQuVHJhY2VGbGFnc3x8KHQuVHJhY2VGbGFncz17fSkpfSw1MjE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVkVSU0lPTj12b2lkIDA7dC5WRVJTSU9OPVwiMS42LjBcIn19O3ZhciB0PXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18ocil7dmFyIG49dFtyXTtpZihuIT09dW5kZWZpbmVkKXtyZXR1cm4gbi5leHBvcnRzfXZhciBhPXRbcl09e2V4cG9ydHM6e319O3ZhciBvPXRydWU7dHJ5e2Vbcl0uY2FsbChhLmV4cG9ydHMsYSxhLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7bz1mYWxzZX1maW5hbGx5e2lmKG8pZGVsZXRlIHRbcl19cmV0dXJuIGEuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIHI9e307KCgpPT57dmFyIGU9cjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO2UudHJhY2U9ZS5wcm9wYWdhdGlvbj1lLm1ldHJpY3M9ZS5kaWFnPWUuY29udGV4dD1lLklOVkFMSURfU1BBTl9DT05URVhUPWUuSU5WQUxJRF9UUkFDRUlEPWUuSU5WQUxJRF9TUEFOSUQ9ZS5pc1ZhbGlkU3BhbklkPWUuaXNWYWxpZFRyYWNlSWQ9ZS5pc1NwYW5Db250ZXh0VmFsaWQ9ZS5jcmVhdGVUcmFjZVN0YXRlPWUuVHJhY2VGbGFncz1lLlNwYW5TdGF0dXNDb2RlPWUuU3BhbktpbmQ9ZS5TYW1wbGluZ0RlY2lzaW9uPWUuUHJveHlUcmFjZXJQcm92aWRlcj1lLlByb3h5VHJhY2VyPWUuZGVmYXVsdFRleHRNYXBTZXR0ZXI9ZS5kZWZhdWx0VGV4dE1hcEdldHRlcj1lLlZhbHVlVHlwZT1lLmNyZWF0ZU5vb3BNZXRlcj1lLkRpYWdMb2dMZXZlbD1lLkRpYWdDb25zb2xlTG9nZ2VyPWUuUk9PVF9DT05URVhUPWUuY3JlYXRlQ29udGV4dEtleT1lLmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZz12b2lkIDA7dmFyIHQ9X19uY2N3cGNrX3JlcXVpcmVfXygzNjkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmd9fSk7dmFyIG49X19uY2N3cGNrX3JlcXVpcmVfXyg3ODApO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY3JlYXRlQ29udGV4dEtleVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uY3JlYXRlQ29udGV4dEtleX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlJPT1RfQ09OVEVYVFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uUk9PVF9DT05URVhUfX0pO3ZhciBhPV9fbmNjd3Bja19yZXF1aXJlX18oOTcyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIkRpYWdDb25zb2xlTG9nZ2VyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5EaWFnQ29uc29sZUxvZ2dlcn19KTt2YXIgbz1fX25jY3dwY2tfcmVxdWlyZV9fKDk1Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJEaWFnTG9nTGV2ZWxcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBvLkRpYWdMb2dMZXZlbH19KTt2YXIgaT1fX25jY3dwY2tfcmVxdWlyZV9fKDEwMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjcmVhdGVOb29wTWV0ZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBpLmNyZWF0ZU5vb3BNZXRlcn19KTt2YXIgYz1fX25jY3dwY2tfcmVxdWlyZV9fKDkwMSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJWYWx1ZVR5cGVcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBjLlZhbHVlVHlwZX19KTt2YXIgcz1fX25jY3dwY2tfcmVxdWlyZV9fKDE5NCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkZWZhdWx0VGV4dE1hcEdldHRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHMuZGVmYXVsdFRleHRNYXBHZXR0ZXJ9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkZWZhdWx0VGV4dE1hcFNldHRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHMuZGVmYXVsdFRleHRNYXBTZXR0ZXJ9fSk7dmFyIHU9X19uY2N3cGNrX3JlcXVpcmVfXygxMjUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUHJveHlUcmFjZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB1LlByb3h5VHJhY2VyfX0pO3ZhciBsPV9fbmNjd3Bja19yZXF1aXJlX18oODQ2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlByb3h5VHJhY2VyUHJvdmlkZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBsLlByb3h5VHJhY2VyUHJvdmlkZXJ9fSk7dmFyIGc9X19uY2N3cGNrX3JlcXVpcmVfXyg5OTYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiU2FtcGxpbmdEZWNpc2lvblwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGcuU2FtcGxpbmdEZWNpc2lvbn19KTt2YXIgcD1fX25jY3dwY2tfcmVxdWlyZV9fKDM1Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTcGFuS2luZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuU3BhbktpbmR9fSk7dmFyIGQ9X19uY2N3cGNrX3JlcXVpcmVfXyg4NDcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiU3BhblN0YXR1c0NvZGVcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBkLlNwYW5TdGF0dXNDb2RlfX0pO3ZhciBfPV9fbmNjd3Bja19yZXF1aXJlX18oNDc1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlRyYWNlRmxhZ3NcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBfLlRyYWNlRmxhZ3N9fSk7dmFyIGY9X19uY2N3cGNrX3JlcXVpcmVfXyg5OCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjcmVhdGVUcmFjZVN0YXRlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZi5jcmVhdGVUcmFjZVN0YXRlfX0pO3ZhciBiPV9fbmNjd3Bja19yZXF1aXJlX18oMTM5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImlzU3BhbkNvbnRleHRWYWxpZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuaXNTcGFuQ29udGV4dFZhbGlkfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaXNWYWxpZFRyYWNlSWRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmlzVmFsaWRUcmFjZUlkfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaXNWYWxpZFNwYW5JZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuaXNWYWxpZFNwYW5JZH19KTt2YXIgdj1fX25jY3dwY2tfcmVxdWlyZV9fKDQ3Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJJTlZBTElEX1NQQU5JRFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9TUEFOSUR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJJTlZBTElEX1RSQUNFSURcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfVFJBQ0VJRH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfU1BBTl9DT05URVhUXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1NQQU5fQ09OVEVYVH19KTtjb25zdCBPPV9fbmNjd3Bja19yZXF1aXJlX18oNjcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY29udGV4dFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE8uY29udGV4dH19KTtjb25zdCBQPV9fbmNjd3Bja19yZXF1aXJlX18oNTA2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRpYWdcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBQLmRpYWd9fSk7Y29uc3QgTj1fX25jY3dwY2tfcmVxdWlyZV9fKDg4Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJtZXRyaWNzXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTi5tZXRyaWNzfX0pO2NvbnN0IFM9X19uY2N3cGNrX3JlcXVpcmVfXyg5MzkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvcGFnYXRpb25cIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBTLnByb3BhZ2F0aW9ufX0pO2NvbnN0IEM9X19uY2N3cGNrX3JlcXVpcmVfXyg4NDUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwidHJhY2VcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBDLnRyYWNlfX0pO2VbXCJkZWZhdWx0XCJdPXtjb250ZXh0Ok8uY29udGV4dCxkaWFnOlAuZGlhZyxtZXRyaWNzOk4ubWV0cmljcyxwcm9wYWdhdGlvbjpTLnByb3BhZ2F0aW9uLHRyYWNlOkMudHJhY2V9fSkoKTttb2R1bGUuZXhwb3J0cz1yfSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\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) => {
|
||
|
||
eval("(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{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;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p<o.length;p++){var f=o[p];var u=f.indexOf(\"=\");if(u<0){continue}var v=f.substr(0,u).trim();var c=f.substr(++u,f.length).trim();if('\"'==c[0]){c=c.slice(1,-1)}if(undefined==t[v]){t[v]=tryDecode(c,s)}}return t}function serialize(e,r,i){var a=i||{};var o=a.encode||t;if(typeof o!==\"function\"){throw new TypeError(\"option encode is invalid\")}if(!n.test(e)){throw new TypeError(\"argument name is invalid\")}var s=o(r);if(s&&!n.test(s)){throw new TypeError(\"argument val is invalid\")}var p=e+\"=\"+s;if(null!=a.maxAge){var f=a.maxAge-0;if(isNaN(f)||!isFinite(f)){throw new TypeError(\"option maxAge is invalid\")}p+=\"; Max-Age=\"+Math.floor(f)}if(a.domain){if(!n.test(a.domain)){throw new TypeError(\"option domain is invalid\")}p+=\"; Domain=\"+a.domain}if(a.path){if(!n.test(a.path)){throw new TypeError(\"option path is invalid\")}p+=\"; Path=\"+a.path}if(a.expires){if(typeof a.expires.toUTCString!==\"function\"){throw new TypeError(\"option expires is invalid\")}p+=\"; Expires=\"+a.expires.toUTCString()}if(a.httpOnly){p+=\"; HttpOnly\"}if(a.secure){p+=\"; Secure\"}if(a.sameSite){var u=typeof a.sameSite===\"string\"?a.sameSite.toLowerCase():a.sameSite;switch(u){case true:p+=\"; SameSite=Strict\";break;case\"lax\":p+=\"; SameSite=Lax\";break;case\"strict\":p+=\"; SameSite=Strict\";break;case\"none\":p+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return p}function tryDecode(e,r){try{return r(e)}catch(r){return e}}})();module.exports=e})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2Nvb2tpZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsaUZBQWlGLFNBQVMsTUFBTTtBQUNuSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHNCQUFzQix5QkFBeUIseUJBQXlCLFNBQVMsR0FBRyw4Q0FBOEMsb0JBQW9CLHdCQUF3QixxREFBcUQsU0FBUyxZQUFZLGlCQUFpQixrQkFBa0IsWUFBWSxXQUFXLEtBQUssV0FBVyxxQkFBcUIsUUFBUSxTQUFTLDJCQUEyQixvQ0FBb0MsY0FBYyxnQkFBZ0Isb0JBQW9CLHFCQUFxQixTQUFTLDBCQUEwQixZQUFZLGtCQUFrQiwwQkFBMEIsZ0RBQWdELGVBQWUsZ0RBQWdELFdBQVcsa0JBQWtCLCtDQUErQyxjQUFjLG1CQUFtQixpQkFBaUIsMkJBQTJCLGdEQUFnRCxNQUFNLHdCQUF3QixhQUFhLHNCQUFzQixnREFBZ0QsTUFBTSxrQkFBa0IsV0FBVyxvQkFBb0IsOENBQThDLE1BQU0sY0FBYyxjQUFjLDhDQUE4QyxpREFBaUQsTUFBTSxrQ0FBa0MsZUFBZSxNQUFNLFVBQVUsYUFBYSxNQUFNLFFBQVEsZUFBZSx1RUFBdUUsVUFBVSxnQkFBZ0IsaUJBQWlCLE1BQU0sZ0JBQWdCLGNBQWMsTUFBTSxtQkFBbUIsaUJBQWlCLE1BQU0saUJBQWlCLGVBQWUsTUFBTSwyREFBMkQsU0FBUyx3QkFBd0IsSUFBSSxZQUFZLFNBQVMsV0FBVyxJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9jb29raWUvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBlPXt9OygoKT0+e3ZhciByPWU7XG4vKiFcbiAqIGNvb2tpZVxuICogQ29weXJpZ2h0KGMpIDIwMTItMjAxNCBSb21hbiBTaHR5bG1hblxuICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovci5wYXJzZT1wYXJzZTtyLnNlcmlhbGl6ZT1zZXJpYWxpemU7dmFyIGk9ZGVjb2RlVVJJQ29tcG9uZW50O3ZhciB0PWVuY29kZVVSSUNvbXBvbmVudDt2YXIgYT0vOyAqLzt2YXIgbj0vXltcXHUwMDA5XFx1MDAyMC1cXHUwMDdlXFx1MDA4MC1cXHUwMGZmXSskLztmdW5jdGlvbiBwYXJzZShlLHIpe2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0ciBtdXN0IGJlIGEgc3RyaW5nXCIpfXZhciB0PXt9O3ZhciBuPXJ8fHt9O3ZhciBvPWUuc3BsaXQoYSk7dmFyIHM9bi5kZWNvZGV8fGk7Zm9yKHZhciBwPTA7cDxvLmxlbmd0aDtwKyspe3ZhciBmPW9bcF07dmFyIHU9Zi5pbmRleE9mKFwiPVwiKTtpZih1PDApe2NvbnRpbnVlfXZhciB2PWYuc3Vic3RyKDAsdSkudHJpbSgpO3ZhciBjPWYuc3Vic3RyKCsrdSxmLmxlbmd0aCkudHJpbSgpO2lmKCdcIic9PWNbMF0pe2M9Yy5zbGljZSgxLC0xKX1pZih1bmRlZmluZWQ9PXRbdl0pe3Rbdl09dHJ5RGVjb2RlKGMscyl9fXJldHVybiB0fWZ1bmN0aW9uIHNlcmlhbGl6ZShlLHIsaSl7dmFyIGE9aXx8e307dmFyIG89YS5lbmNvZGV8fHQ7aWYodHlwZW9mIG8hPT1cImZ1bmN0aW9uXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZW5jb2RlIGlzIGludmFsaWRcIil9aWYoIW4udGVzdChlKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IG5hbWUgaXMgaW52YWxpZFwiKX12YXIgcz1vKHIpO2lmKHMmJiFuLnRlc3Qocykpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCB2YWwgaXMgaW52YWxpZFwiKX12YXIgcD1lK1wiPVwiK3M7aWYobnVsbCE9YS5tYXhBZ2Upe3ZhciBmPWEubWF4QWdlLTA7aWYoaXNOYU4oZil8fCFpc0Zpbml0ZShmKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBtYXhBZ2UgaXMgaW52YWxpZFwiKX1wKz1cIjsgTWF4LUFnZT1cIitNYXRoLmZsb29yKGYpfWlmKGEuZG9tYWluKXtpZighbi50ZXN0KGEuZG9tYWluKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBkb21haW4gaXMgaW52YWxpZFwiKX1wKz1cIjsgRG9tYWluPVwiK2EuZG9tYWlufWlmKGEucGF0aCl7aWYoIW4udGVzdChhLnBhdGgpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHBhdGggaXMgaW52YWxpZFwiKX1wKz1cIjsgUGF0aD1cIithLnBhdGh9aWYoYS5leHBpcmVzKXtpZih0eXBlb2YgYS5leHBpcmVzLnRvVVRDU3RyaW5nIT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGV4cGlyZXMgaXMgaW52YWxpZFwiKX1wKz1cIjsgRXhwaXJlcz1cIithLmV4cGlyZXMudG9VVENTdHJpbmcoKX1pZihhLmh0dHBPbmx5KXtwKz1cIjsgSHR0cE9ubHlcIn1pZihhLnNlY3VyZSl7cCs9XCI7IFNlY3VyZVwifWlmKGEuc2FtZVNpdGUpe3ZhciB1PXR5cGVvZiBhLnNhbWVTaXRlPT09XCJzdHJpbmdcIj9hLnNhbWVTaXRlLnRvTG93ZXJDYXNlKCk6YS5zYW1lU2l0ZTtzd2l0Y2godSl7Y2FzZSB0cnVlOnArPVwiOyBTYW1lU2l0ZT1TdHJpY3RcIjticmVhaztjYXNlXCJsYXhcIjpwKz1cIjsgU2FtZVNpdGU9TGF4XCI7YnJlYWs7Y2FzZVwic3RyaWN0XCI6cCs9XCI7IFNhbWVTaXRlPVN0cmljdFwiO2JyZWFrO2Nhc2VcIm5vbmVcIjpwKz1cIjsgU2FtZVNpdGU9Tm9uZVwiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBzYW1lU2l0ZSBpcyBpbnZhbGlkXCIpfX1yZXR1cm4gcH1mdW5jdGlvbiB0cnlEZWNvZGUoZSxyKXt0cnl7cmV0dXJuIHIoZSl9Y2F0Y2gocil7cmV0dXJuIGV9fX0pKCk7bW9kdWxlLmV4cG9ydHM9ZX0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/cookie/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/compiled/fresh/index.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/fresh/index.js ***!
|
||
\********************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("(()=>{\"use strict\";var e={695:e=>{\n/*!\n * fresh\n * Copyright(c) 2012 TJ Holowaychuk\n * Copyright(c) 2016-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar r=/(?:^|,)\\s*?no-cache\\s*?(?:,|$)/;e.exports=fresh;function fresh(e,a){var t=e[\"if-modified-since\"];var s=e[\"if-none-match\"];if(!t&&!s){return false}var i=e[\"cache-control\"];if(i&&r.test(i)){return false}if(s&&s!==\"*\"){var f=a[\"etag\"];if(!f){return false}var n=true;var u=parseTokenList(s);for(var _=0;_<u.length;_++){var o=u[_];if(o===f||o===\"W/\"+f||\"W/\"+o===f){n=false;break}}if(n){return false}}if(t){var p=a[\"last-modified\"];var v=!p||!(parseHttpDate(p)<=parseHttpDate(t));if(v){return false}}return true}function parseHttpDate(e){var r=e&&Date.parse(e);return typeof r===\"number\"?r:NaN}function parseTokenList(e){var r=0;var a=[];var t=0;for(var s=0,i=e.length;s<i;s++){switch(e.charCodeAt(s)){case 32:if(t===r){t=r=s+1}break;case 44:a.push(e.substring(t,r));t=r=s+1;break;default:r=s+1;break}}a.push(e.substring(t,r));return a}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var s=r[a]={exports:{}};var i=true;try{e[a](s,s.exports,__nccwpck_require__);i=false}finally{if(i)delete r[a]}return s.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(695);module.exports=a})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxnQkFBZ0Isb0JBQW9CLDZCQUE2Qix5QkFBeUIsV0FBVyxhQUFhLHlCQUF5QixpQkFBaUIsYUFBYSxlQUFlLGdCQUFnQixPQUFPLGFBQWEsV0FBVyx3QkFBd0IsWUFBWSxXQUFXLEtBQUssV0FBVyxrQ0FBa0MsUUFBUSxPQUFPLE1BQU0sY0FBYyxNQUFNLHlCQUF5QixnREFBZ0QsTUFBTSxjQUFjLFlBQVksMEJBQTBCLHVCQUF1QixpQ0FBaUMsMkJBQTJCLFFBQVEsU0FBUyxRQUFRLHVCQUF1QixJQUFJLEtBQUssd0JBQXdCLGtCQUFrQixRQUFRLE1BQU0saUNBQWlDLFFBQVEsTUFBTSxjQUFjLE9BQU8seUJBQXlCLFlBQVksU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXs2OTU6ZT0+e1xuLyohXG4gKiBmcmVzaFxuICogQ29weXJpZ2h0KGMpIDIwMTIgVEogSG9sb3dheWNodWtcbiAqIENvcHlyaWdodChjKSAyMDE2LTIwMTcgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG52YXIgcj0vKD86XnwsKVxccyo/bm8tY2FjaGVcXHMqPyg/Oix8JCkvO2UuZXhwb3J0cz1mcmVzaDtmdW5jdGlvbiBmcmVzaChlLGEpe3ZhciB0PWVbXCJpZi1tb2RpZmllZC1zaW5jZVwiXTt2YXIgcz1lW1wiaWYtbm9uZS1tYXRjaFwiXTtpZighdCYmIXMpe3JldHVybiBmYWxzZX12YXIgaT1lW1wiY2FjaGUtY29udHJvbFwiXTtpZihpJiZyLnRlc3QoaSkpe3JldHVybiBmYWxzZX1pZihzJiZzIT09XCIqXCIpe3ZhciBmPWFbXCJldGFnXCJdO2lmKCFmKXtyZXR1cm4gZmFsc2V9dmFyIG49dHJ1ZTt2YXIgdT1wYXJzZVRva2VuTGlzdChzKTtmb3IodmFyIF89MDtfPHUubGVuZ3RoO18rKyl7dmFyIG89dVtfXTtpZihvPT09Znx8bz09PVwiVy9cIitmfHxcIlcvXCIrbz09PWYpe249ZmFsc2U7YnJlYWt9fWlmKG4pe3JldHVybiBmYWxzZX19aWYodCl7dmFyIHA9YVtcImxhc3QtbW9kaWZpZWRcIl07dmFyIHY9IXB8fCEocGFyc2VIdHRwRGF0ZShwKTw9cGFyc2VIdHRwRGF0ZSh0KSk7aWYodil7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX1mdW5jdGlvbiBwYXJzZUh0dHBEYXRlKGUpe3ZhciByPWUmJkRhdGUucGFyc2UoZSk7cmV0dXJuIHR5cGVvZiByPT09XCJudW1iZXJcIj9yOk5hTn1mdW5jdGlvbiBwYXJzZVRva2VuTGlzdChlKXt2YXIgcj0wO3ZhciBhPVtdO3ZhciB0PTA7Zm9yKHZhciBzPTAsaT1lLmxlbmd0aDtzPGk7cysrKXtzd2l0Y2goZS5jaGFyQ29kZUF0KHMpKXtjYXNlIDMyOmlmKHQ9PT1yKXt0PXI9cysxfWJyZWFrO2Nhc2UgNDQ6YS5wdXNoKGUuc3Vic3RyaW5nKHQscikpO3Q9cj1zKzE7YnJlYWs7ZGVmYXVsdDpyPXMrMTticmVha319YS5wdXNoKGUuc3Vic3RyaW5nKHQscikpO3JldHVybiBhfX19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18oYSl7dmFyIHQ9clthXTtpZih0IT09dW5kZWZpbmVkKXtyZXR1cm4gdC5leHBvcnRzfXZhciBzPXJbYV09e2V4cG9ydHM6e319O3ZhciBpPXRydWU7dHJ5e2VbYV0ocyxzLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7aT1mYWxzZX1maW5hbGx5e2lmKGkpZGVsZXRlIHJbYV19cmV0dXJuIHMuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIGE9X19uY2N3cGNrX3JlcXVpcmVfXyg2OTUpO21vZHVsZS5leHBvcnRzPWF9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/fresh/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/path-to-regexp/index.js ***!
|
||
\*****************************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var n=e;Object.defineProperty(n,\"__esModule\",{value:true});n.pathToRegexp=n.tokensToRegexp=n.regexpToFunction=n.match=n.tokensToFunction=n.compile=n.parse=void 0;function lexer(e){var n=[];var r=0;while(r<e.length){var t=e[r];if(t===\"*\"||t===\"+\"||t===\"?\"){n.push({type:\"MODIFIER\",index:r,value:e[r++]});continue}if(t===\"\\\\\"){n.push({type:\"ESCAPED_CHAR\",index:r++,value:e[r++]});continue}if(t===\"{\"){n.push({type:\"OPEN\",index:r,value:e[r++]});continue}if(t===\"}\"){n.push({type:\"CLOSE\",index:r,value:e[r++]});continue}if(t===\":\"){var a=\"\";var i=r+1;while(i<e.length){var o=e.charCodeAt(i);if(o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122||o===95){a+=e[i++];continue}break}if(!a)throw new TypeError(\"Missing parameter name at \".concat(r));n.push({type:\"NAME\",index:r,value:a});r=i;continue}if(t===\"(\"){var c=1;var f=\"\";var i=r+1;if(e[i]===\"?\"){throw new TypeError('Pattern cannot start with \"?\" at '.concat(i))}while(i<e.length){if(e[i]===\"\\\\\"){f+=e[i++]+e[i++];continue}if(e[i]===\")\"){c--;if(c===0){i++;break}}else if(e[i]===\"(\"){c++;if(e[i+1]!==\"?\"){throw new TypeError(\"Capturing groups are not allowed at \".concat(i))}}f+=e[i++]}if(c)throw new TypeError(\"Unbalanced pattern at \".concat(r));if(!f)throw new TypeError(\"Missing pattern at \".concat(r));n.push({type:\"PATTERN\",index:r,value:f});r=i;continue}n.push({type:\"CHAR\",index:r,value:e[r++]})}n.push({type:\"END\",index:r,value:\"\"});return n}function parse(e,n){if(n===void 0){n={}}var r=lexer(e);var t=n.prefixes,a=t===void 0?\"./\":t,i=n.delimiter,o=i===void 0?\"/#?\":i;var c=[];var f=0;var u=0;var p=\"\";var tryConsume=function(e){if(u<r.length&&r[u].type===e)return r[u++].value};var mustConsume=function(e){var n=tryConsume(e);if(n!==undefined)return n;var t=r[u],a=t.type,i=t.index;throw new TypeError(\"Unexpected \".concat(a,\" at \").concat(i,\", expected \").concat(e))};var consumeText=function(){var e=\"\";var n;while(n=tryConsume(\"CHAR\")||tryConsume(\"ESCAPED_CHAR\")){e+=n}return e};var isSafe=function(e){for(var n=0,r=o;n<r.length;n++){var t=r[n];if(e.indexOf(t)>-1)return true}return false};var safePattern=function(e){var n=c[c.length-1];var r=e||(n&&typeof n===\"string\"?n:\"\");if(n&&!r){throw new TypeError('Must have text between two parameters, missing text after \"'.concat(n.name,'\"'))}if(!r||isSafe(r))return\"[^\".concat(escapeString(o),\"]+?\");return\"(?:(?!\".concat(escapeString(r),\")[^\").concat(escapeString(o),\"])+?\")};while(u<r.length){var v=tryConsume(\"CHAR\");var s=tryConsume(\"NAME\");var d=tryConsume(\"PATTERN\");if(s||d){var g=v||\"\";if(a.indexOf(g)===-1){p+=g;g=\"\"}if(p){c.push(p);p=\"\"}c.push({name:s||f++,prefix:g,suffix:\"\",pattern:d||safePattern(g),modifier:tryConsume(\"MODIFIER\")||\"\"});continue}var x=v||tryConsume(\"ESCAPED_CHAR\");if(x){p+=x;continue}if(p){c.push(p);p=\"\"}var h=tryConsume(\"OPEN\");if(h){var g=consumeText();var l=tryConsume(\"NAME\")||\"\";var m=tryConsume(\"PATTERN\")||\"\";var T=consumeText();mustConsume(\"CLOSE\");c.push({name:l||(m?f++:\"\"),pattern:l&&!m?safePattern(g):m,prefix:g,suffix:T,modifier:tryConsume(\"MODIFIER\")||\"\"});continue}mustConsume(\"END\")}return c}n.parse=parse;function compile(e,n){return tokensToFunction(parse(e,n),n)}n.compile=compile;function tokensToFunction(e,n){if(n===void 0){n={}}var r=flags(n);var t=n.encode,a=t===void 0?function(e){return e}:t,i=n.validate,o=i===void 0?true:i;var c=e.map((function(e){if(typeof e===\"object\"){return new RegExp(\"^(?:\".concat(e.pattern,\")$\"),r)}}));return function(n){var r=\"\";for(var t=0;t<e.length;t++){var i=e[t];if(typeof i===\"string\"){r+=i;continue}var f=n?n[i.name]:undefined;var u=i.modifier===\"?\"||i.modifier===\"*\";var p=i.modifier===\"*\"||i.modifier===\"+\";if(Array.isArray(f)){if(!p){throw new TypeError('Expected \"'.concat(i.name,'\" to not repeat, but got an array'))}if(f.length===0){if(u)continue;throw new TypeError('Expected \"'.concat(i.name,'\" to not be empty'))}for(var v=0;v<f.length;v++){var s=a(f[v],i);if(o&&!c[t].test(s)){throw new TypeError('Expected all \"'.concat(i.name,'\" to match \"').concat(i.pattern,'\", but got \"').concat(s,'\"'))}r+=i.prefix+s+i.suffix}continue}if(typeof f===\"string\"||typeof f===\"number\"){var s=a(String(f),i);if(o&&!c[t].test(s)){throw new TypeError('Expected \"'.concat(i.name,'\" to match \"').concat(i.pattern,'\", but got \"').concat(s,'\"'))}r+=i.prefix+s+i.suffix;continue}if(u)continue;var d=p?\"an array\":\"a string\";throw new TypeError('Expected \"'.concat(i.name,'\" to be ').concat(d))}return r}}n.tokensToFunction=tokensToFunction;function match(e,n){var r=[];var t=pathToRegexp(e,r,n);return regexpToFunction(t,r,n)}n.match=match;function regexpToFunction(e,n,r){if(r===void 0){r={}}var t=r.decode,a=t===void 0?function(e){return e}:t;return function(r){var t=e.exec(r);if(!t)return false;var i=t[0],o=t.index;var c=Object.create(null);var _loop_1=function(e){if(t[e]===undefined)return\"continue\";var r=n[e-1];if(r.modifier===\"*\"||r.modifier===\"+\"){c[r.name]=t[e].split(r.prefix+r.suffix).map((function(e){return a(e,r)}))}else{c[r.name]=a(t[e],r)}};for(var f=1;f<t.length;f++){_loop_1(f)}return{path:i,index:o,params:c}}}n.regexpToFunction=regexpToFunction;function escapeString(e){return e.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g,\"\\\\$1\")}function flags(e){return e&&e.sensitive?\"\":\"i\"}function regexpToRegexp(e,n){if(!n)return e;var r=/\\((?:\\?<(.*?)>)?(?!\\?)/g;var t=0;var a=r.exec(e.source);while(a){n.push({name:a[1]||t++,prefix:\"\",suffix:\"\",modifier:\"\",pattern:\"\"});a=r.exec(e.source)}return e}function arrayToRegexp(e,n,r){var t=e.map((function(e){return pathToRegexp(e,n,r).source}));return new RegExp(\"(?:\".concat(t.join(\"|\"),\")\"),flags(r))}function stringToRegexp(e,n,r){return tokensToRegexp(parse(e,r),n,r)}function tokensToRegexp(e,n,r){if(r===void 0){r={}}var t=r.strict,a=t===void 0?false:t,i=r.start,o=i===void 0?true:i,c=r.end,f=c===void 0?true:c,u=r.encode,p=u===void 0?function(e){return e}:u,v=r.delimiter,s=v===void 0?\"/#?\":v,d=r.endsWith,g=d===void 0?\"\":d;var x=\"[\".concat(escapeString(g),\"]|$\");var h=\"[\".concat(escapeString(s),\"]\");var l=o?\"^\":\"\";for(var m=0,T=e;m<T.length;m++){var E=T[m];if(typeof E===\"string\"){l+=escapeString(p(E))}else{var w=escapeString(p(E.prefix));var y=escapeString(p(E.suffix));if(E.pattern){if(n)n.push(E);if(w||y){if(E.modifier===\"+\"||E.modifier===\"*\"){var R=E.modifier===\"*\"?\"?\":\"\";l+=\"(?:\".concat(w,\"((?:\").concat(E.pattern,\")(?:\").concat(y).concat(w,\"(?:\").concat(E.pattern,\"))*)\").concat(y,\")\").concat(R)}else{l+=\"(?:\".concat(w,\"(\").concat(E.pattern,\")\").concat(y,\")\").concat(E.modifier)}}else{if(E.modifier===\"+\"||E.modifier===\"*\"){throw new TypeError('Can not repeat \"'.concat(E.name,'\" without a prefix and suffix'))}l+=\"(\".concat(E.pattern,\")\").concat(E.modifier)}}else{l+=\"(?:\".concat(w).concat(y,\")\").concat(E.modifier)}}}if(f){if(!a)l+=\"\".concat(h,\"?\");l+=!r.endsWith?\"$\":\"(?=\".concat(x,\")\")}else{var A=e[e.length-1];var _=typeof A===\"string\"?h.indexOf(A[A.length-1])>-1:A===undefined;if(!a){l+=\"(?:\".concat(h,\"(?=\").concat(x,\"))?\")}if(!_){l+=\"(?=\".concat(h,\"|\").concat(x,\")\")}}return new RegExp(l,flags(r))}n.tokensToRegexp=tokensToRegexp;function pathToRegexp(e,n,r){if(e instanceof RegExp)return regexpToRegexp(e,n);if(Array.isArray(e))return arrayToRegexp(e,n,r);return stringToRegexp(e,n,r)}n.pathToRegexp=pathToRegexp})();module.exports=e})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtdG8tcmVnZXhwL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxpRkFBaUYsU0FBUyxNQUFNLFFBQVEsc0NBQXNDLFdBQVcsRUFBRSx1R0FBdUcsa0JBQWtCLFNBQVMsUUFBUSxrQkFBa0IsV0FBVyw4QkFBOEIsUUFBUSxxQ0FBcUMsRUFBRSxTQUFTLGFBQWEsUUFBUSwyQ0FBMkMsRUFBRSxTQUFTLFNBQVMsR0FBRyxRQUFRLGlDQUFpQyxFQUFFLFNBQVMsU0FBUyxHQUFHLFFBQVEsa0NBQWtDLEVBQUUsU0FBUyxZQUFZLFNBQVMsVUFBVSxrQkFBa0Isc0JBQXNCLHNEQUFzRCxVQUFVLFNBQVMsTUFBTSxrRUFBa0UsUUFBUSw0QkFBNEIsRUFBRSxJQUFJLFNBQVMsWUFBWSxRQUFRLFNBQVMsVUFBVSxlQUFlLG1FQUFtRSxrQkFBa0IsZ0JBQWdCLGlCQUFpQixTQUFTLGVBQWUsSUFBSSxVQUFVLElBQUksT0FBTyxvQkFBb0IsSUFBSSxpQkFBaUIsdUVBQXVFLFVBQVUsNkRBQTZELDJEQUEyRCxRQUFRLCtCQUErQixFQUFFLElBQUksU0FBUyxRQUFRLGlDQUFpQyxFQUFFLFFBQVEsNEJBQTRCLEVBQUUsU0FBUyxvQkFBb0IsZUFBZSxLQUFLLGVBQWUsd0VBQXdFLFNBQVMsUUFBUSxRQUFRLFNBQVMsMkJBQTJCLGtEQUFrRCw0QkFBNEIsb0JBQW9CLDBCQUEwQiw4QkFBOEIsdUZBQXVGLDJCQUEyQixTQUFTLE1BQU0sd0RBQXdELEtBQUssVUFBVSx1QkFBdUIsZ0JBQWdCLFdBQVcsS0FBSyxXQUFXLCtCQUErQixjQUFjLDRCQUE0QixvQkFBb0IsdUNBQXVDLFVBQVUsc0dBQXNHLDBEQUEwRCw2RUFBNkUsa0JBQWtCLHlCQUF5Qix5QkFBeUIsNEJBQTRCLFNBQVMsWUFBWSxzQkFBc0IsS0FBSyxLQUFLLE1BQU0sVUFBVSxLQUFLLFFBQVEsNkZBQTZGLEVBQUUsU0FBUyxvQ0FBb0MsTUFBTSxLQUFLLFNBQVMsTUFBTSxVQUFVLEtBQUsseUJBQXlCLE1BQU0sb0JBQW9CLDZCQUE2QixnQ0FBZ0Msb0JBQW9CLHFCQUFxQixRQUFRLHdHQUF3RyxFQUFFLFNBQVMsbUJBQW1CLFNBQVMsY0FBYyxzQkFBc0Isc0NBQXNDLGtCQUFrQiwrQkFBK0IsZUFBZSxLQUFLLGVBQWUsd0NBQXdDLFNBQVMsb0NBQW9DLHlCQUF5Qix3QkFBd0Isb0RBQW9ELEdBQUcsbUJBQW1CLFNBQVMsWUFBWSxXQUFXLEtBQUssV0FBVyx3QkFBd0IsS0FBSyxTQUFTLDRCQUE0Qix5Q0FBeUMseUNBQXlDLHFCQUFxQixPQUFPLHFGQUFxRixpQkFBaUIsY0FBYyxxRUFBcUUsWUFBWSxXQUFXLEtBQUssZ0JBQWdCLHFCQUFxQixtSEFBbUgsdUJBQXVCLFNBQVMsNkNBQTZDLHFCQUFxQixxQkFBcUIsK0dBQStHLHVCQUF1QixTQUFTLGNBQWMsOEJBQThCLHNFQUFzRSxVQUFVLG9DQUFvQyxvQkFBb0IsU0FBUywwQkFBMEIsK0JBQStCLGNBQWMsaUNBQWlDLGVBQWUsS0FBSyx3Q0FBd0MsU0FBUyxHQUFHLG1CQUFtQixnQkFBZ0IsbUJBQW1CLHFCQUFxQiwwQkFBMEIsd0JBQXdCLHFDQUFxQyxhQUFhLHVDQUF1Qyx5REFBeUQsY0FBYyxHQUFHLEtBQUssc0JBQXNCLFlBQVksV0FBVyxLQUFLLFdBQVcsT0FBTywwQkFBMEIsb0NBQW9DLHlCQUF5QiwrQkFBK0Isc0JBQXNCLGtCQUFrQiw2QkFBNkIsNkJBQTZCLGVBQWUsZ0NBQWdDLFFBQVEsdUJBQXVCLFNBQVMsUUFBUSwwREFBMEQsRUFBRSxtQkFBbUIsU0FBUyw4QkFBOEIseUJBQXlCLGtDQUFrQyxHQUFHLDBEQUEwRCwrQkFBK0Isc0NBQXNDLCtCQUErQixlQUFlLEtBQUssa0lBQWtJLFNBQVMscUVBQXFFLHdDQUF3QyxzQ0FBc0MsZUFBZSxnQkFBZ0IsV0FBVyxLQUFLLFdBQVcsd0JBQXdCLHNCQUFzQixLQUFLLGdDQUFnQyxnQ0FBZ0MsY0FBYyxlQUFlLFNBQVMsdUNBQXVDLDhCQUE4Qiw4SEFBOEgsS0FBSywrRUFBK0UsS0FBSyx1Q0FBdUMsdUZBQXVGLGlEQUFpRCxLQUFLLHNEQUFzRCxNQUFNLDBCQUEwQix1Q0FBdUMsS0FBSyxvQkFBb0Isb0VBQW9FLE9BQU8seUNBQXlDLE9BQU8sc0NBQXNDLDhCQUE4QixnQ0FBZ0MsNkJBQTZCLGtEQUFrRCxnREFBZ0QsNkJBQTZCLDRCQUE0QixJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjtpZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIGU9e307KCgpPT57dmFyIG49ZTtPYmplY3QuZGVmaW5lUHJvcGVydHkobixcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO24ucGF0aFRvUmVnZXhwPW4udG9rZW5zVG9SZWdleHA9bi5yZWdleHBUb0Z1bmN0aW9uPW4ubWF0Y2g9bi50b2tlbnNUb0Z1bmN0aW9uPW4uY29tcGlsZT1uLnBhcnNlPXZvaWQgMDtmdW5jdGlvbiBsZXhlcihlKXt2YXIgbj1bXTt2YXIgcj0wO3doaWxlKHI8ZS5sZW5ndGgpe3ZhciB0PWVbcl07aWYodD09PVwiKlwifHx0PT09XCIrXCJ8fHQ9PT1cIj9cIil7bi5wdXNoKHt0eXBlOlwiTU9ESUZJRVJcIixpbmRleDpyLHZhbHVlOmVbcisrXX0pO2NvbnRpbnVlfWlmKHQ9PT1cIlxcXFxcIil7bi5wdXNoKHt0eXBlOlwiRVNDQVBFRF9DSEFSXCIsaW5kZXg6cisrLHZhbHVlOmVbcisrXX0pO2NvbnRpbnVlfWlmKHQ9PT1cIntcIil7bi5wdXNoKHt0eXBlOlwiT1BFTlwiLGluZGV4OnIsdmFsdWU6ZVtyKytdfSk7Y29udGludWV9aWYodD09PVwifVwiKXtuLnB1c2goe3R5cGU6XCJDTE9TRVwiLGluZGV4OnIsdmFsdWU6ZVtyKytdfSk7Y29udGludWV9aWYodD09PVwiOlwiKXt2YXIgYT1cIlwiO3ZhciBpPXIrMTt3aGlsZShpPGUubGVuZ3RoKXt2YXIgbz1lLmNoYXJDb2RlQXQoaSk7aWYobz49NDgmJm88PTU3fHxvPj02NSYmbzw9OTB8fG8+PTk3JiZvPD0xMjJ8fG89PT05NSl7YSs9ZVtpKytdO2NvbnRpbnVlfWJyZWFrfWlmKCFhKXRocm93IG5ldyBUeXBlRXJyb3IoXCJNaXNzaW5nIHBhcmFtZXRlciBuYW1lIGF0IFwiLmNvbmNhdChyKSk7bi5wdXNoKHt0eXBlOlwiTkFNRVwiLGluZGV4OnIsdmFsdWU6YX0pO3I9aTtjb250aW51ZX1pZih0PT09XCIoXCIpe3ZhciBjPTE7dmFyIGY9XCJcIjt2YXIgaT1yKzE7aWYoZVtpXT09PVwiP1wiKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdQYXR0ZXJuIGNhbm5vdCBzdGFydCB3aXRoIFwiP1wiIGF0ICcuY29uY2F0KGkpKX13aGlsZShpPGUubGVuZ3RoKXtpZihlW2ldPT09XCJcXFxcXCIpe2YrPWVbaSsrXStlW2krK107Y29udGludWV9aWYoZVtpXT09PVwiKVwiKXtjLS07aWYoYz09PTApe2krKzticmVha319ZWxzZSBpZihlW2ldPT09XCIoXCIpe2MrKztpZihlW2krMV0hPT1cIj9cIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhcHR1cmluZyBncm91cHMgYXJlIG5vdCBhbGxvd2VkIGF0IFwiLmNvbmNhdChpKSl9fWYrPWVbaSsrXX1pZihjKXRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmJhbGFuY2VkIHBhdHRlcm4gYXQgXCIuY29uY2F0KHIpKTtpZighZil0aHJvdyBuZXcgVHlwZUVycm9yKFwiTWlzc2luZyBwYXR0ZXJuIGF0IFwiLmNvbmNhdChyKSk7bi5wdXNoKHt0eXBlOlwiUEFUVEVSTlwiLGluZGV4OnIsdmFsdWU6Zn0pO3I9aTtjb250aW51ZX1uLnB1c2goe3R5cGU6XCJDSEFSXCIsaW5kZXg6cix2YWx1ZTplW3IrK119KX1uLnB1c2goe3R5cGU6XCJFTkRcIixpbmRleDpyLHZhbHVlOlwiXCJ9KTtyZXR1cm4gbn1mdW5jdGlvbiBwYXJzZShlLG4pe2lmKG49PT12b2lkIDApe249e319dmFyIHI9bGV4ZXIoZSk7dmFyIHQ9bi5wcmVmaXhlcyxhPXQ9PT12b2lkIDA/XCIuL1wiOnQsaT1uLmRlbGltaXRlcixvPWk9PT12b2lkIDA/XCIvIz9cIjppO3ZhciBjPVtdO3ZhciBmPTA7dmFyIHU9MDt2YXIgcD1cIlwiO3ZhciB0cnlDb25zdW1lPWZ1bmN0aW9uKGUpe2lmKHU8ci5sZW5ndGgmJnJbdV0udHlwZT09PWUpcmV0dXJuIHJbdSsrXS52YWx1ZX07dmFyIG11c3RDb25zdW1lPWZ1bmN0aW9uKGUpe3ZhciBuPXRyeUNvbnN1bWUoZSk7aWYobiE9PXVuZGVmaW5lZClyZXR1cm4gbjt2YXIgdD1yW3VdLGE9dC50eXBlLGk9dC5pbmRleDt0aHJvdyBuZXcgVHlwZUVycm9yKFwiVW5leHBlY3RlZCBcIi5jb25jYXQoYSxcIiBhdCBcIikuY29uY2F0KGksXCIsIGV4cGVjdGVkIFwiKS5jb25jYXQoZSkpfTt2YXIgY29uc3VtZVRleHQ9ZnVuY3Rpb24oKXt2YXIgZT1cIlwiO3ZhciBuO3doaWxlKG49dHJ5Q29uc3VtZShcIkNIQVJcIil8fHRyeUNvbnN1bWUoXCJFU0NBUEVEX0NIQVJcIikpe2UrPW59cmV0dXJuIGV9O3ZhciBpc1NhZmU9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTAscj1vO248ci5sZW5ndGg7bisrKXt2YXIgdD1yW25dO2lmKGUuaW5kZXhPZih0KT4tMSlyZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9O3ZhciBzYWZlUGF0dGVybj1mdW5jdGlvbihlKXt2YXIgbj1jW2MubGVuZ3RoLTFdO3ZhciByPWV8fChuJiZ0eXBlb2Ygbj09PVwic3RyaW5nXCI/bjpcIlwiKTtpZihuJiYhcil7dGhyb3cgbmV3IFR5cGVFcnJvcignTXVzdCBoYXZlIHRleHQgYmV0d2VlbiB0d28gcGFyYW1ldGVycywgbWlzc2luZyB0ZXh0IGFmdGVyIFwiJy5jb25jYXQobi5uYW1lLCdcIicpKX1pZighcnx8aXNTYWZlKHIpKXJldHVyblwiW15cIi5jb25jYXQoZXNjYXBlU3RyaW5nKG8pLFwiXSs/XCIpO3JldHVyblwiKD86KD8hXCIuY29uY2F0KGVzY2FwZVN0cmluZyhyKSxcIilbXlwiKS5jb25jYXQoZXNjYXBlU3RyaW5nKG8pLFwiXSkrP1wiKX07d2hpbGUodTxyLmxlbmd0aCl7dmFyIHY9dHJ5Q29uc3VtZShcIkNIQVJcIik7dmFyIHM9dHJ5Q29uc3VtZShcIk5BTUVcIik7dmFyIGQ9dHJ5Q29uc3VtZShcIlBBVFRFUk5cIik7aWYoc3x8ZCl7dmFyIGc9dnx8XCJcIjtpZihhLmluZGV4T2YoZyk9PT0tMSl7cCs9ZztnPVwiXCJ9aWYocCl7Yy5wdXNoKHApO3A9XCJcIn1jLnB1c2goe25hbWU6c3x8ZisrLHByZWZpeDpnLHN1ZmZpeDpcIlwiLHBhdHRlcm46ZHx8c2FmZVBhdHRlcm4oZyksbW9kaWZpZXI6dHJ5Q29uc3VtZShcIk1PRElGSUVSXCIpfHxcIlwifSk7Y29udGludWV9dmFyIHg9dnx8dHJ5Q29uc3VtZShcIkVTQ0FQRURfQ0hBUlwiKTtpZih4KXtwKz14O2NvbnRpbnVlfWlmKHApe2MucHVzaChwKTtwPVwiXCJ9dmFyIGg9dHJ5Q29uc3VtZShcIk9QRU5cIik7aWYoaCl7dmFyIGc9Y29uc3VtZVRleHQoKTt2YXIgbD10cnlDb25zdW1lKFwiTkFNRVwiKXx8XCJcIjt2YXIgbT10cnlDb25zdW1lKFwiUEFUVEVSTlwiKXx8XCJcIjt2YXIgVD1jb25zdW1lVGV4dCgpO211c3RDb25zdW1lKFwiQ0xPU0VcIik7Yy5wdXNoKHtuYW1lOmx8fChtP2YrKzpcIlwiKSxwYXR0ZXJuOmwmJiFtP3NhZmVQYXR0ZXJuKGcpOm0scHJlZml4Omcsc3VmZml4OlQsbW9kaWZpZXI6dHJ5Q29uc3VtZShcIk1PRElGSUVSXCIpfHxcIlwifSk7Y29udGludWV9bXVzdENvbnN1bWUoXCJFTkRcIil9cmV0dXJuIGN9bi5wYXJzZT1wYXJzZTtmdW5jdGlvbiBjb21waWxlKGUsbil7cmV0dXJuIHRva2Vuc1RvRnVuY3Rpb24ocGFyc2UoZSxuKSxuKX1uLmNvbXBpbGU9Y29tcGlsZTtmdW5jdGlvbiB0b2tlbnNUb0Z1bmN0aW9uKGUsbil7aWYobj09PXZvaWQgMCl7bj17fX12YXIgcj1mbGFncyhuKTt2YXIgdD1uLmVuY29kZSxhPXQ9PT12b2lkIDA/ZnVuY3Rpb24oZSl7cmV0dXJuIGV9OnQsaT1uLnZhbGlkYXRlLG89aT09PXZvaWQgMD90cnVlOmk7dmFyIGM9ZS5tYXAoKGZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBlPT09XCJvYmplY3RcIil7cmV0dXJuIG5ldyBSZWdFeHAoXCJeKD86XCIuY29uY2F0KGUucGF0dGVybixcIikkXCIpLHIpfX0pKTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIHI9XCJcIjtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIGk9ZVt0XTtpZih0eXBlb2YgaT09PVwic3RyaW5nXCIpe3IrPWk7Y29udGludWV9dmFyIGY9bj9uW2kubmFtZV06dW5kZWZpbmVkO3ZhciB1PWkubW9kaWZpZXI9PT1cIj9cInx8aS5tb2RpZmllcj09PVwiKlwiO3ZhciBwPWkubW9kaWZpZXI9PT1cIipcInx8aS5tb2RpZmllcj09PVwiK1wiO2lmKEFycmF5LmlzQXJyYXkoZikpe2lmKCFwKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBcIicuY29uY2F0KGkubmFtZSwnXCIgdG8gbm90IHJlcGVhdCwgYnV0IGdvdCBhbiBhcnJheScpKX1pZihmLmxlbmd0aD09PTApe2lmKHUpY29udGludWU7dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgXCInLmNvbmNhdChpLm5hbWUsJ1wiIHRvIG5vdCBiZSBlbXB0eScpKX1mb3IodmFyIHY9MDt2PGYubGVuZ3RoO3YrKyl7dmFyIHM9YShmW3ZdLGkpO2lmKG8mJiFjW3RdLnRlc3Qocykpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGFsbCBcIicuY29uY2F0KGkubmFtZSwnXCIgdG8gbWF0Y2ggXCInKS5jb25jYXQoaS5wYXR0ZXJuLCdcIiwgYnV0IGdvdCBcIicpLmNvbmNhdChzLCdcIicpKX1yKz1pLnByZWZpeCtzK2kuc3VmZml4fWNvbnRpbnVlfWlmKHR5cGVvZiBmPT09XCJzdHJpbmdcInx8dHlwZW9mIGY9PT1cIm51bWJlclwiKXt2YXIgcz1hKFN0cmluZyhmKSxpKTtpZihvJiYhY1t0XS50ZXN0KHMpKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBcIicuY29uY2F0KGkubmFtZSwnXCIgdG8gbWF0Y2ggXCInKS5jb25jYXQoaS5wYXR0ZXJuLCdcIiwgYnV0IGdvdCBcIicpLmNvbmNhdChzLCdcIicpKX1yKz1pLnByZWZpeCtzK2kuc3VmZml4O2NvbnRpbnVlfWlmKHUpY29udGludWU7dmFyIGQ9cD9cImFuIGFycmF5XCI6XCJhIHN0cmluZ1wiO3Rocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIFwiJy5jb25jYXQoaS5uYW1lLCdcIiB0byBiZSAnKS5jb25jYXQoZCkpfXJldHVybiByfX1uLnRva2Vuc1RvRnVuY3Rpb249dG9rZW5zVG9GdW5jdGlvbjtmdW5jdGlvbiBtYXRjaChlLG4pe3ZhciByPVtdO3ZhciB0PXBhdGhUb1JlZ2V4cChlLHIsbik7cmV0dXJuIHJlZ2V4cFRvRnVuY3Rpb24odCxyLG4pfW4ubWF0Y2g9bWF0Y2g7ZnVuY3Rpb24gcmVnZXhwVG9GdW5jdGlvbihlLG4scil7aWYocj09PXZvaWQgMCl7cj17fX12YXIgdD1yLmRlY29kZSxhPXQ9PT12b2lkIDA/ZnVuY3Rpb24oZSl7cmV0dXJuIGV9OnQ7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciB0PWUuZXhlYyhyKTtpZighdClyZXR1cm4gZmFsc2U7dmFyIGk9dFswXSxvPXQuaW5kZXg7dmFyIGM9T2JqZWN0LmNyZWF0ZShudWxsKTt2YXIgX2xvb3BfMT1mdW5jdGlvbihlKXtpZih0W2VdPT09dW5kZWZpbmVkKXJldHVyblwiY29udGludWVcIjt2YXIgcj1uW2UtMV07aWYoci5tb2RpZmllcj09PVwiKlwifHxyLm1vZGlmaWVyPT09XCIrXCIpe2Nbci5uYW1lXT10W2VdLnNwbGl0KHIucHJlZml4K3Iuc3VmZml4KS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBhKGUscil9KSl9ZWxzZXtjW3IubmFtZV09YSh0W2VdLHIpfX07Zm9yKHZhciBmPTE7Zjx0Lmxlbmd0aDtmKyspe19sb29wXzEoZil9cmV0dXJue3BhdGg6aSxpbmRleDpvLHBhcmFtczpjfX19bi5yZWdleHBUb0Z1bmN0aW9uPXJlZ2V4cFRvRnVuY3Rpb247ZnVuY3Rpb24gZXNjYXBlU3RyaW5nKGUpe3JldHVybiBlLnJlcGxhY2UoLyhbLisqPz1eIToke30oKVtcXF18L1xcXFxdKS9nLFwiXFxcXCQxXCIpfWZ1bmN0aW9uIGZsYWdzKGUpe3JldHVybiBlJiZlLnNlbnNpdGl2ZT9cIlwiOlwiaVwifWZ1bmN0aW9uIHJlZ2V4cFRvUmVnZXhwKGUsbil7aWYoIW4pcmV0dXJuIGU7dmFyIHI9L1xcKCg/OlxcPzwoLio/KT4pPyg/IVxcPykvZzt2YXIgdD0wO3ZhciBhPXIuZXhlYyhlLnNvdXJjZSk7d2hpbGUoYSl7bi5wdXNoKHtuYW1lOmFbMV18fHQrKyxwcmVmaXg6XCJcIixzdWZmaXg6XCJcIixtb2RpZmllcjpcIlwiLHBhdHRlcm46XCJcIn0pO2E9ci5leGVjKGUuc291cmNlKX1yZXR1cm4gZX1mdW5jdGlvbiBhcnJheVRvUmVnZXhwKGUsbixyKXt2YXIgdD1lLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhdGhUb1JlZ2V4cChlLG4scikuc291cmNlfSkpO3JldHVybiBuZXcgUmVnRXhwKFwiKD86XCIuY29uY2F0KHQuam9pbihcInxcIiksXCIpXCIpLGZsYWdzKHIpKX1mdW5jdGlvbiBzdHJpbmdUb1JlZ2V4cChlLG4scil7cmV0dXJuIHRva2Vuc1RvUmVnZXhwKHBhcnNlKGUsciksbixyKX1mdW5jdGlvbiB0b2tlbnNUb1JlZ2V4cChlLG4scil7aWYocj09PXZvaWQgMCl7cj17fX12YXIgdD1yLnN0cmljdCxhPXQ9PT12b2lkIDA/ZmFsc2U6dCxpPXIuc3RhcnQsbz1pPT09dm9pZCAwP3RydWU6aSxjPXIuZW5kLGY9Yz09PXZvaWQgMD90cnVlOmMsdT1yLmVuY29kZSxwPXU9PT12b2lkIDA/ZnVuY3Rpb24oZSl7cmV0dXJuIGV9OnUsdj1yLmRlbGltaXRlcixzPXY9PT12b2lkIDA/XCIvIz9cIjp2LGQ9ci5lbmRzV2l0aCxnPWQ9PT12b2lkIDA/XCJcIjpkO3ZhciB4PVwiW1wiLmNvbmNhdChlc2NhcGVTdHJpbmcoZyksXCJdfCRcIik7dmFyIGg9XCJbXCIuY29uY2F0KGVzY2FwZVN0cmluZyhzKSxcIl1cIik7dmFyIGw9bz9cIl5cIjpcIlwiO2Zvcih2YXIgbT0wLFQ9ZTttPFQubGVuZ3RoO20rKyl7dmFyIEU9VFttXTtpZih0eXBlb2YgRT09PVwic3RyaW5nXCIpe2wrPWVzY2FwZVN0cmluZyhwKEUpKX1lbHNle3ZhciB3PWVzY2FwZVN0cmluZyhwKEUucHJlZml4KSk7dmFyIHk9ZXNjYXBlU3RyaW5nKHAoRS5zdWZmaXgpKTtpZihFLnBhdHRlcm4pe2lmKG4pbi5wdXNoKEUpO2lmKHd8fHkpe2lmKEUubW9kaWZpZXI9PT1cIitcInx8RS5tb2RpZmllcj09PVwiKlwiKXt2YXIgUj1FLm1vZGlmaWVyPT09XCIqXCI/XCI/XCI6XCJcIjtsKz1cIig/OlwiLmNvbmNhdCh3LFwiKCg/OlwiKS5jb25jYXQoRS5wYXR0ZXJuLFwiKSg/OlwiKS5jb25jYXQoeSkuY29uY2F0KHcsXCIoPzpcIikuY29uY2F0KEUucGF0dGVybixcIikpKilcIikuY29uY2F0KHksXCIpXCIpLmNvbmNhdChSKX1lbHNle2wrPVwiKD86XCIuY29uY2F0KHcsXCIoXCIpLmNvbmNhdChFLnBhdHRlcm4sXCIpXCIpLmNvbmNhdCh5LFwiKVwiKS5jb25jYXQoRS5tb2RpZmllcil9fWVsc2V7aWYoRS5tb2RpZmllcj09PVwiK1wifHxFLm1vZGlmaWVyPT09XCIqXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ0NhbiBub3QgcmVwZWF0IFwiJy5jb25jYXQoRS5uYW1lLCdcIiB3aXRob3V0IGEgcHJlZml4IGFuZCBzdWZmaXgnKSl9bCs9XCIoXCIuY29uY2F0KEUucGF0dGVybixcIilcIikuY29uY2F0KEUubW9kaWZpZXIpfX1lbHNle2wrPVwiKD86XCIuY29uY2F0KHcpLmNvbmNhdCh5LFwiKVwiKS5jb25jYXQoRS5tb2RpZmllcil9fX1pZihmKXtpZighYSlsKz1cIlwiLmNvbmNhdChoLFwiP1wiKTtsKz0hci5lbmRzV2l0aD9cIiRcIjpcIig/PVwiLmNvbmNhdCh4LFwiKVwiKX1lbHNle3ZhciBBPWVbZS5sZW5ndGgtMV07dmFyIF89dHlwZW9mIEE9PT1cInN0cmluZ1wiP2guaW5kZXhPZihBW0EubGVuZ3RoLTFdKT4tMTpBPT09dW5kZWZpbmVkO2lmKCFhKXtsKz1cIig/OlwiLmNvbmNhdChoLFwiKD89XCIpLmNvbmNhdCh4LFwiKSk/XCIpfWlmKCFfKXtsKz1cIig/PVwiLmNvbmNhdChoLFwifFwiKS5jb25jYXQoeCxcIilcIil9fXJldHVybiBuZXcgUmVnRXhwKGwsZmxhZ3MocikpfW4udG9rZW5zVG9SZWdleHA9dG9rZW5zVG9SZWdleHA7ZnVuY3Rpb24gcGF0aFRvUmVnZXhwKGUsbixyKXtpZihlIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiByZWdleHBUb1JlZ2V4cChlLG4pO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGFycmF5VG9SZWdleHAoZSxuLHIpO3JldHVybiBzdHJpbmdUb1JlZ2V4cChlLG4scil9bi5wYXRoVG9SZWdleHA9cGF0aFRvUmVnZXhwfSkoKTttb2R1bGUuZXhwb3J0cz1lfSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js":
|
||
/*!**************************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js ***!
|
||
\**************************************************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * @license React\n * react-server-dom-webpack-client.node.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 */ \n true && function() {\n function resolveClientReference(bundlerConfig, metadata) {\n if (bundlerConfig) {\n var moduleExports = bundlerConfig[metadata[0]];\n if (bundlerConfig = moduleExports && moduleExports[metadata[2]]) moduleExports = bundlerConfig.name;\n else {\n bundlerConfig = moduleExports && moduleExports[\"*\"];\n if (!bundlerConfig) throw Error('Could not find the module \"' + metadata[0] + '\" in the React Server Consumer Manifest. This is probably a bug in the React Server Components bundler.');\n moduleExports = metadata[2];\n }\n return 4 === metadata.length ? [\n bundlerConfig.id,\n bundlerConfig.chunks,\n moduleExports,\n 1\n ] : [\n bundlerConfig.id,\n bundlerConfig.chunks,\n moduleExports\n ];\n }\n return metadata;\n }\n function resolveServerReference(bundlerConfig, id) {\n var name = \"\", resolvedModuleData = bundlerConfig[id];\n if (resolvedModuleData) name = resolvedModuleData.name;\n else {\n var idx = id.lastIndexOf(\"#\");\n -1 !== idx && (name = id.slice(idx + 1), resolvedModuleData = bundlerConfig[id.slice(0, idx)]);\n if (!resolvedModuleData) throw 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 return resolvedModuleData.async ? [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name,\n 1\n ] : [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name\n ];\n }\n function requireAsyncModule(id) {\n var promise = globalThis.__next_require__(id);\n if (\"function\" !== typeof promise.then || \"fulfilled\" === promise.status) return null;\n promise.then(function(value) {\n promise.status = \"fulfilled\";\n promise.value = value;\n }, function(reason) {\n promise.status = \"rejected\";\n promise.reason = reason;\n });\n return promise;\n }\n function ignoreReject() {}\n function preloadModule(metadata) {\n for(var chunks = metadata[1], promises = [], i = 0; i < chunks.length;){\n var chunkId = chunks[i++];\n chunks[i++];\n var entry = chunkCache.get(chunkId);\n if (void 0 === entry) {\n entry = __webpack_require__.e(chunkId);\n promises.push(entry);\n var resolve = chunkCache.set.bind(chunkCache, chunkId, null);\n entry.then(resolve, ignoreReject);\n chunkCache.set(chunkId, entry);\n } else null !== entry && promises.push(entry);\n }\n return 4 === metadata.length ? 0 === promises.length ? requireAsyncModule(metadata[0]) : Promise.all(promises).then(function() {\n return requireAsyncModule(metadata[0]);\n }) : 0 < promises.length ? Promise.all(promises) : null;\n }\n function requireModule(metadata) {\n var moduleExports = globalThis.__next_require__(metadata[0]);\n if (4 === metadata.length && \"function\" === typeof moduleExports.then) if (\"fulfilled\" === moduleExports.status) moduleExports = moduleExports.value;\n else throw moduleExports.reason;\n return \"*\" === metadata[2] ? moduleExports : \"\" === metadata[2] ? moduleExports.__esModule ? moduleExports.default : moduleExports : moduleExports[metadata[2]];\n }\n function prepareDestinationWithChunks(moduleLoading, chunks, nonce$jscomp$0) {\n if (null !== moduleLoading) for(var i = 1; i < chunks.length; i += 2){\n var nonce = nonce$jscomp$0, JSCompiler_temp_const = ReactDOMSharedInternals.d, JSCompiler_temp_const$jscomp$0 = JSCompiler_temp_const.X, JSCompiler_temp_const$jscomp$1 = moduleLoading.prefix + chunks[i];\n var JSCompiler_inline_result = moduleLoading.crossOrigin;\n JSCompiler_inline_result = \"string\" === typeof JSCompiler_inline_result ? \"use-credentials\" === JSCompiler_inline_result ? JSCompiler_inline_result : \"\" : void 0;\n JSCompiler_temp_const$jscomp$0.call(JSCompiler_temp_const, JSCompiler_temp_const$jscomp$1, {\n crossOrigin: JSCompiler_inline_result,\n nonce: nonce\n });\n }\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function isObjectPrototype(object) {\n if (!object) return !1;\n var ObjectPrototype = Object.prototype;\n if (object === ObjectPrototype) return !0;\n if (getPrototypeOf(object)) return !1;\n object = Object.getOwnPropertyNames(object);\n for(var i = 0; i < object.length; i++)if (!(object[i] in ObjectPrototype)) return !1;\n return !0;\n }\n function isSimpleObject(object) {\n if (!isObjectPrototype(getPrototypeOf(object))) return !1;\n for(var names = Object.getOwnPropertyNames(object), i = 0; i < names.length; i++){\n var descriptor = Object.getOwnPropertyDescriptor(object, names[i]);\n if (!descriptor || !descriptor.enumerable && (\"key\" !== names[i] && \"ref\" !== names[i] || \"function\" !== typeof descriptor.get)) return !1;\n }\n return !0;\n }\n function objectName(object) {\n object = Object.prototype.toString.call(object);\n return object.slice(8, object.length - 1);\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 return JSON.stringify(10 >= value.length ? value : value.slice(0, 10) + \"...\");\n case \"object\":\n if (isArrayImpl(value)) return \"[...]\";\n if (null !== value && value.$$typeof === CLIENT_REFERENCE_TAG) return \"client\";\n value = objectName(value);\n return \"Object\" === value ? \"{...}\" : value;\n case \"function\":\n return value.$$typeof === CLIENT_REFERENCE_TAG ? \"client\" : (value = value.displayName || value.name) ? \"function \" + value : \"function\";\n default:\n return String(value);\n }\n }\n function describeElementType(type) {\n if (\"string\" === typeof type) return type;\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type) 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 var payload = type._payload;\n type = type._init;\n try {\n return describeElementType(type(payload));\n } catch (x) {}\n }\n return \"\";\n }\n function describeObjectForErrorMessage(objectOrArray, expandedName) {\n var objKind = objectName(objectOrArray);\n if (\"Object\" !== objKind && \"Array\" !== objKind) return objKind;\n var start = -1, length = 0;\n if (isArrayImpl(objectOrArray)) if (jsxChildrenParents.has(objectOrArray)) {\n var type = jsxChildrenParents.get(objectOrArray);\n objKind = \"<\" + describeElementType(type) + \">\";\n for(var i = 0; i < objectOrArray.length; i++){\n var value = objectOrArray[i];\n value = \"string\" === typeof value ? value : \"object\" === typeof value && null !== value ? \"{\" + describeObjectForErrorMessage(value) + \"}\" : \"{\" + describeValueForErrorMessage(value) + \"}\";\n \"\" + i === expandedName ? (start = objKind.length, length = value.length, objKind += value) : objKind = 15 > value.length && 40 > objKind.length + value.length ? objKind + value : objKind + \"{...}\";\n }\n objKind += \"</\" + describeElementType(type) + \">\";\n } else {\n objKind = \"[\";\n for(type = 0; type < objectOrArray.length; type++)0 < type && (objKind += \", \"), i = objectOrArray[type], i = \"object\" === typeof i && null !== i ? describeObjectForErrorMessage(i) : describeValueForErrorMessage(i), \"\" + type === expandedName ? (start = objKind.length, length = i.length, objKind += i) : objKind = 10 > i.length && 40 > objKind.length + i.length ? objKind + i : objKind + \"...\";\n objKind += \"]\";\n }\n else if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE) objKind = \"<\" + describeElementType(objectOrArray.type) + \"/>\";\n else {\n if (objectOrArray.$$typeof === CLIENT_REFERENCE_TAG) return \"client\";\n if (jsxPropsParents.has(objectOrArray)) {\n objKind = jsxPropsParents.get(objectOrArray);\n objKind = \"<\" + (describeElementType(objKind) || \"...\");\n type = Object.keys(objectOrArray);\n for(i = 0; i < type.length; i++){\n objKind += \" \";\n value = type[i];\n objKind += describeKeyForErrorMessage(value) + \"=\";\n var _value2 = objectOrArray[value];\n var _substr2 = value === expandedName && \"object\" === typeof _value2 && null !== _value2 ? describeObjectForErrorMessage(_value2) : describeValueForErrorMessage(_value2);\n \"string\" !== typeof _value2 && (_substr2 = \"{\" + _substr2 + \"}\");\n value === expandedName ? (start = objKind.length, length = _substr2.length, objKind += _substr2) : objKind = 10 > _substr2.length && 40 > objKind.length + _substr2.length ? objKind + _substr2 : objKind + \"...\";\n }\n objKind += \">\";\n } else {\n objKind = \"{\";\n type = Object.keys(objectOrArray);\n for(i = 0; i < type.length; i++)0 < i && (objKind += \", \"), value = type[i], objKind += describeKeyForErrorMessage(value) + \": \", _value2 = objectOrArray[value], _value2 = \"object\" === typeof _value2 && null !== _value2 ? describeObjectForErrorMessage(_value2) : describeValueForErrorMessage(_value2), value === expandedName ? (start = objKind.length, length = _value2.length, objKind += _value2) : objKind = 10 > _value2.length && 40 > objKind.length + _value2.length ? objKind + _value2 : objKind + \"...\";\n objKind += \"}\";\n }\n }\n return void 0 === expandedName ? objKind : -1 < start && 0 < length ? (objectOrArray = \" \".repeat(start) + \"^\".repeat(length), \"\\n \" + objKind + \"\\n \" + objectOrArray) : \"\\n \" + objKind;\n }\n function serializeNumber(number) {\n return Number.isFinite(number) ? 0 === number && -Infinity === 1 / number ? \"$-0\" : number : Infinity === number ? \"$Infinity\" : -Infinity === number ? \"$-Infinity\" : \"$NaN\";\n }\n function processReply(root, formFieldPrefix, temporaryReferences, resolve, reject) {\n function serializeTypedArray(tag, typedArray) {\n typedArray = new Blob([\n new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength)\n ]);\n var blobId = nextPartId++;\n null === formData && (formData = new FormData());\n formData.append(formFieldPrefix + blobId, typedArray);\n return \"$\" + tag + blobId.toString(16);\n }\n function serializeBinaryReader(reader) {\n function progress(entry) {\n entry.done ? (entry = nextPartId++, data.append(formFieldPrefix + entry, new Blob(buffer)), data.append(formFieldPrefix + streamId, '\"$o' + entry.toString(16) + '\"'), data.append(formFieldPrefix + streamId, \"C\"), pendingParts--, 0 === pendingParts && resolve(data)) : (buffer.push(entry.value), reader.read(new Uint8Array(1024)).then(progress, reject));\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++, buffer = [];\n reader.read(new Uint8Array(1024)).then(progress, reject);\n return \"$r\" + streamId.toString(16);\n }\n function serializeReader(reader) {\n function progress(entry) {\n if (entry.done) data.append(formFieldPrefix + streamId, \"C\"), pendingParts--, 0 === pendingParts && resolve(data);\n else try {\n var partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, partJSON);\n reader.read().then(progress, reject);\n } catch (x) {\n reject(x);\n }\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++;\n reader.read().then(progress, reject);\n return \"$R\" + streamId.toString(16);\n }\n function serializeReadableStream(stream) {\n try {\n var binaryReader = stream.getReader({\n mode: \"byob\"\n });\n } catch (x) {\n return serializeReader(stream.getReader());\n }\n return serializeBinaryReader(binaryReader);\n }\n function serializeAsyncIterable(iterable, iterator) {\n function progress(entry) {\n if (entry.done) {\n if (void 0 === entry.value) data.append(formFieldPrefix + streamId, \"C\");\n else try {\n var partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, \"C\" + partJSON);\n } catch (x) {\n reject(x);\n return;\n }\n pendingParts--;\n 0 === pendingParts && resolve(data);\n } else try {\n var _partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, _partJSON);\n iterator.next().then(progress, reject);\n } catch (x$0) {\n reject(x$0);\n }\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++;\n iterable = iterable === iterator;\n iterator.next().then(progress, reject);\n return \"$\" + (iterable ? \"x\" : \"X\") + streamId.toString(16);\n }\n function resolveToJSON(key, value) {\n var originalValue = this[key];\n \"object\" !== typeof originalValue || originalValue === value || originalValue instanceof Date || (\"Object\" !== objectName(originalValue) ? console.error(\"Only plain objects can be passed to Server Functions from the Client. %s objects are not supported.%s\", objectName(originalValue), describeObjectForErrorMessage(this, key)) : console.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(this, key)));\n if (null === value) return null;\n if (\"object\" === typeof value) {\n switch(value.$$typeof){\n case REACT_ELEMENT_TYPE:\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\")) {\n var parentReference = writtenObjects.get(this);\n if (void 0 !== parentReference) return temporaryReferences.set(parentReference + \":\" + key, value), \"$T\";\n }\n throw Error(\"React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options.\" + describeObjectForErrorMessage(this, key));\n case REACT_LAZY_TYPE:\n originalValue = value._payload;\n var init = value._init;\n null === formData && (formData = new FormData());\n pendingParts++;\n try {\n parentReference = init(originalValue);\n var lazyId = nextPartId++, partJSON = serializeModel(parentReference, lazyId);\n formData.append(formFieldPrefix + lazyId, partJSON);\n return \"$\" + lazyId.toString(16);\n } catch (x) {\n if (\"object\" === typeof x && null !== x && \"function\" === typeof x.then) {\n pendingParts++;\n var _lazyId = nextPartId++;\n parentReference = function() {\n try {\n var _partJSON2 = serializeModel(value, _lazyId), _data = formData;\n _data.append(formFieldPrefix + _lazyId, _partJSON2);\n pendingParts--;\n 0 === pendingParts && resolve(_data);\n } catch (reason) {\n reject(reason);\n }\n };\n x.then(parentReference, parentReference);\n return \"$\" + _lazyId.toString(16);\n }\n reject(x);\n return null;\n } finally{\n pendingParts--;\n }\n }\n if (\"function\" === typeof value.then) {\n null === formData && (formData = new FormData());\n pendingParts++;\n var promiseId = nextPartId++;\n value.then(function(partValue) {\n try {\n var _partJSON3 = serializeModel(partValue, promiseId);\n partValue = formData;\n partValue.append(formFieldPrefix + promiseId, _partJSON3);\n pendingParts--;\n 0 === pendingParts && resolve(partValue);\n } catch (reason) {\n reject(reason);\n }\n }, reject);\n return \"$@\" + promiseId.toString(16);\n }\n parentReference = writtenObjects.get(value);\n if (void 0 !== parentReference) if (modelRoot === value) modelRoot = null;\n else return parentReference;\n else -1 === key.indexOf(\":\") && (parentReference = writtenObjects.get(this), void 0 !== parentReference && (parentReference = parentReference + \":\" + key, writtenObjects.set(value, parentReference), void 0 !== temporaryReferences && temporaryReferences.set(parentReference, value)));\n if (isArrayImpl(value)) return value;\n if (value instanceof FormData) {\n null === formData && (formData = new FormData());\n var _data3 = formData;\n key = nextPartId++;\n var prefix = formFieldPrefix + key + \"_\";\n value.forEach(function(originalValue, originalKey) {\n _data3.append(prefix + originalKey, originalValue);\n });\n return \"$K\" + key.toString(16);\n }\n if (value instanceof Map) return key = nextPartId++, parentReference = serializeModel(Array.from(value), key), null === formData && (formData = new FormData()), formData.append(formFieldPrefix + key, parentReference), \"$Q\" + key.toString(16);\n if (value instanceof Set) return key = nextPartId++, parentReference = serializeModel(Array.from(value), key), null === formData && (formData = new FormData()), formData.append(formFieldPrefix + key, parentReference), \"$W\" + key.toString(16);\n if (value instanceof ArrayBuffer) return key = new Blob([\n value\n ]), parentReference = nextPartId++, null === formData && (formData = new FormData()), formData.append(formFieldPrefix + parentReference, key), \"$A\" + parentReference.toString(16);\n if (value instanceof Int8Array) return serializeTypedArray(\"O\", value);\n if (value instanceof Uint8Array) return serializeTypedArray(\"o\", value);\n if (value instanceof Uint8ClampedArray) return serializeTypedArray(\"U\", value);\n if (value instanceof Int16Array) return serializeTypedArray(\"S\", value);\n if (value instanceof Uint16Array) return serializeTypedArray(\"s\", value);\n if (value instanceof Int32Array) return serializeTypedArray(\"L\", value);\n if (value instanceof Uint32Array) return serializeTypedArray(\"l\", value);\n if (value instanceof Float32Array) return serializeTypedArray(\"G\", value);\n if (value instanceof Float64Array) return serializeTypedArray(\"g\", value);\n if (value instanceof BigInt64Array) return serializeTypedArray(\"M\", value);\n if (value instanceof BigUint64Array) return serializeTypedArray(\"m\", value);\n if (value instanceof DataView) return serializeTypedArray(\"V\", value);\n if (\"function\" === typeof Blob && value instanceof Blob) return null === formData && (formData = new FormData()), key = nextPartId++, formData.append(formFieldPrefix + key, value), \"$B\" + key.toString(16);\n if (parentReference = getIteratorFn(value)) return parentReference = parentReference.call(value), parentReference === value ? (key = nextPartId++, parentReference = serializeModel(Array.from(parentReference), key), null === formData && (formData = new FormData()), formData.append(formFieldPrefix + key, parentReference), \"$i\" + key.toString(16)) : Array.from(parentReference);\n if (\"function\" === typeof ReadableStream && value instanceof ReadableStream) return serializeReadableStream(value);\n parentReference = value[ASYNC_ITERATOR];\n if (\"function\" === typeof parentReference) return serializeAsyncIterable(value, parentReference.call(value));\n parentReference = getPrototypeOf(value);\n if (parentReference !== ObjectPrototype && (null === parentReference || null !== getPrototypeOf(parentReference))) {\n if (void 0 === temporaryReferences) throw Error(\"Only plain objects, and a few built-ins, can be passed to Server Functions. Classes or null prototypes are not supported.\" + describeObjectForErrorMessage(this, key));\n return \"$T\";\n }\n value.$$typeof === REACT_CONTEXT_TYPE ? console.error(\"React Context Providers cannot be passed to Server Functions from the Client.%s\", describeObjectForErrorMessage(this, key)) : \"Object\" !== objectName(value) ? console.error(\"Only plain objects can be passed to Server Functions from the Client. %s objects are not supported.%s\", objectName(value), describeObjectForErrorMessage(this, key)) : isSimpleObject(value) ? Object.getOwnPropertySymbols && (parentReference = Object.getOwnPropertySymbols(value), 0 < parentReference.length && console.error(\"Only plain objects can be passed to Server Functions from the Client. Objects with symbol properties like %s are not supported.%s\", parentReference[0].description, describeObjectForErrorMessage(this, key))) : console.error(\"Only plain objects can be passed to Server Functions from the Client. Classes or other objects with methods are not supported.%s\", describeObjectForErrorMessage(this, key));\n return value;\n }\n if (\"string\" === typeof value) {\n if (\"Z\" === value[value.length - 1] && this[key] instanceof Date) return \"$D\" + value;\n key = \"$\" === value[0] ? \"$\" + value : value;\n return key;\n }\n if (\"boolean\" === typeof value) return value;\n if (\"number\" === typeof value) return serializeNumber(value);\n if (\"undefined\" === typeof value) return \"$undefined\";\n if (\"function\" === typeof value) {\n parentReference = knownServerReferences.get(value);\n if (void 0 !== parentReference) return key = JSON.stringify({\n id: parentReference.id,\n bound: parentReference.bound\n }, resolveToJSON), null === formData && (formData = new FormData()), parentReference = nextPartId++, formData.set(formFieldPrefix + parentReference, key), \"$F\" + parentReference.toString(16);\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\") && (parentReference = writtenObjects.get(this), void 0 !== parentReference)) return temporaryReferences.set(parentReference + \":\" + key, value), \"$T\";\n throw Error(\"Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again.\");\n }\n if (\"symbol\" === typeof value) {\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\") && (parentReference = writtenObjects.get(this), void 0 !== parentReference)) return temporaryReferences.set(parentReference + \":\" + key, value), \"$T\";\n throw Error(\"Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options.\" + describeObjectForErrorMessage(this, key));\n }\n if (\"bigint\" === typeof value) return \"$n\" + value.toString(10);\n throw Error(\"Type \" + typeof value + \" is not supported as an argument to a Server Function.\");\n }\n function serializeModel(model, id) {\n \"object\" === typeof model && null !== model && (id = \"$\" + id.toString(16), writtenObjects.set(model, id), void 0 !== temporaryReferences && temporaryReferences.set(id, model));\n modelRoot = model;\n return JSON.stringify(model, resolveToJSON);\n }\n var nextPartId = 1, pendingParts = 0, formData = null, writtenObjects = new WeakMap(), modelRoot = root, json = serializeModel(root, 0);\n null === formData ? resolve(json) : (formData.set(formFieldPrefix + \"0\", json), 0 === pendingParts && resolve(formData));\n return function() {\n 0 < pendingParts && (pendingParts = 0, null === formData ? resolve(json) : resolve(formData));\n };\n }\n function encodeFormData(reference) {\n var resolve, reject, thenable = new Promise(function(res, rej) {\n resolve = res;\n reject = rej;\n });\n processReply(reference, \"\", void 0, function(body) {\n if (\"string\" === typeof body) {\n var data = new FormData();\n data.append(\"0\", body);\n body = data;\n }\n thenable.status = \"fulfilled\";\n thenable.value = body;\n resolve(body);\n }, function(e) {\n thenable.status = \"rejected\";\n thenable.reason = e;\n reject(e);\n });\n return thenable;\n }\n function defaultEncodeFormAction(identifierPrefix) {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) throw Error(\"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\");\n var data = null;\n if (null !== referenceClosure.bound) {\n data = boundCache.get(referenceClosure);\n data || (data = encodeFormData({\n id: referenceClosure.id,\n bound: referenceClosure.bound\n }), boundCache.set(referenceClosure, data));\n if (\"rejected\" === data.status) throw data.reason;\n if (\"fulfilled\" !== data.status) throw data;\n referenceClosure = data.value;\n var prefixedData = new FormData();\n referenceClosure.forEach(function(value, key) {\n prefixedData.append(\"$ACTION_\" + identifierPrefix + \":\" + key, value);\n });\n data = prefixedData;\n referenceClosure = \"$ACTION_REF_\" + identifierPrefix;\n } else referenceClosure = \"$ACTION_ID_\" + referenceClosure.id;\n return {\n name: referenceClosure,\n method: \"POST\",\n encType: \"multipart/form-data\",\n data: data\n };\n }\n function isSignatureEqual(referenceId, numberOfBoundArgs) {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) throw Error(\"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\");\n if (referenceClosure.id !== referenceId) return !1;\n var boundPromise = referenceClosure.bound;\n if (null === boundPromise) return 0 === numberOfBoundArgs;\n switch(boundPromise.status){\n case \"fulfilled\":\n return boundPromise.value.length === numberOfBoundArgs;\n case \"pending\":\n throw boundPromise;\n case \"rejected\":\n throw boundPromise.reason;\n default:\n throw \"string\" !== typeof boundPromise.status && (boundPromise.status = \"pending\", boundPromise.then(function(boundArgs) {\n boundPromise.status = \"fulfilled\";\n boundPromise.value = boundArgs;\n }, function(error) {\n boundPromise.status = \"rejected\";\n boundPromise.reason = error;\n })), boundPromise;\n }\n }\n function createFakeServerFunction(name, filename, sourceMap, line, col, environmentName, innerFunction) {\n name || (name = \"<anonymous>\");\n var encodedName = JSON.stringify(name);\n 1 >= line ? (line = encodedName.length + 7, col = \"s=>({\" + encodedName + \" \".repeat(col < line ? 0 : col - line) + \":(...args) => s(...args)})\\n/* This module is a proxy to a Server Action. Turn on Source Maps to see the server source. */\") : col = \"/* This module is a proxy to a Server Action. Turn on Source Maps to see the server source. */\" + \"\\n\".repeat(line - 2) + \"server=>({\" + encodedName + \":\\n\" + \" \".repeat(1 > col ? 0 : col - 1) + \"(...args) => server(...args)})\";\n filename.startsWith(\"/\") && (filename = \"file://\" + filename);\n sourceMap ? (col += \"\\n//# sourceURL=about://React/\" + encodeURIComponent(environmentName) + \"/\" + encodeURI(filename) + \"?s\" + fakeServerFunctionIdx++, col += \"\\n//# sourceMappingURL=\" + sourceMap) : filename && (col += \"\\n//# sourceURL=\" + filename);\n try {\n return (0, eval)(col)(innerFunction)[name];\n } catch (x) {\n return innerFunction;\n }\n }\n function registerBoundServerReference(reference, id, bound, encodeFormAction) {\n knownServerReferences.has(reference) || (knownServerReferences.set(reference, {\n id: id,\n originalBind: reference.bind,\n bound: bound\n }), Object.defineProperties(reference, {\n $$FORM_ACTION: {\n value: void 0 === encodeFormAction ? defaultEncodeFormAction : function() {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) throw Error(\"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\");\n var boundPromise = referenceClosure.bound;\n null === boundPromise && (boundPromise = Promise.resolve([]));\n return encodeFormAction(referenceClosure.id, boundPromise);\n }\n },\n $$IS_SIGNATURE_EQUAL: {\n value: isSignatureEqual\n },\n bind: {\n value: bind\n }\n }));\n }\n function bind() {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) return FunctionBind.apply(this, arguments);\n var newFn = referenceClosure.originalBind.apply(this, arguments);\n null != arguments[0] && console.error('Cannot bind \"this\" of a Server Action. Pass null or undefined as the first argument to .bind().');\n var args = ArraySlice.call(arguments, 1), boundPromise = null;\n boundPromise = null !== referenceClosure.bound ? Promise.resolve(referenceClosure.bound).then(function(boundArgs) {\n return boundArgs.concat(args);\n }) : Promise.resolve(args);\n knownServerReferences.set(newFn, {\n id: referenceClosure.id,\n originalBind: newFn.bind,\n bound: boundPromise\n });\n Object.defineProperties(newFn, {\n $$FORM_ACTION: {\n value: this.$$FORM_ACTION\n },\n $$IS_SIGNATURE_EQUAL: {\n value: isSignatureEqual\n },\n bind: {\n value: bind\n }\n });\n return newFn;\n }\n function createBoundServerReference(metaData, callServer, encodeFormAction, findSourceMapURL) {\n function action() {\n var args = Array.prototype.slice.call(arguments);\n return bound ? \"fulfilled\" === bound.status ? callServer(id, bound.value.concat(args)) : Promise.resolve(bound).then(function(boundArgs) {\n return callServer(id, boundArgs.concat(args));\n }) : callServer(id, args);\n }\n var id = metaData.id, bound = metaData.bound, location = metaData.location;\n if (location) {\n var functionName = metaData.name || \"\", filename = location[1], line = location[2];\n location = location[3];\n metaData = metaData.env || \"Server\";\n findSourceMapURL = null == findSourceMapURL ? null : findSourceMapURL(filename, metaData);\n action = createFakeServerFunction(functionName, filename, findSourceMapURL, line, location, metaData, action);\n }\n registerBoundServerReference(action, id, bound, encodeFormAction);\n return action;\n }\n function parseStackLocation(error) {\n error = error.stack;\n error.startsWith(\"Error: react-stack-top-frame\\n\") && (error = error.slice(29));\n var endOfFirst = error.indexOf(\"\\n\");\n if (-1 !== endOfFirst) {\n var endOfSecond = error.indexOf(\"\\n\", endOfFirst + 1);\n endOfFirst = -1 === endOfSecond ? error.slice(endOfFirst + 1) : error.slice(endOfFirst + 1, endOfSecond);\n } else endOfFirst = error;\n error = v8FrameRegExp.exec(endOfFirst);\n if (!error && (error = jscSpiderMonkeyFrameRegExp.exec(endOfFirst), !error)) return null;\n endOfFirst = error[1] || \"\";\n \"<anonymous>\" === endOfFirst && (endOfFirst = \"\");\n endOfSecond = error[2] || error[5] || \"\";\n \"<anonymous>\" === endOfSecond && (endOfSecond = \"\");\n return [\n endOfFirst,\n endOfSecond,\n +(error[3] || error[6]),\n +(error[4] || error[7])\n ];\n }\n function createServerReference$1(id, callServer, encodeFormAction, findSourceMapURL, functionName) {\n function action() {\n var args = Array.prototype.slice.call(arguments);\n return callServer(id, args);\n }\n var location = parseStackLocation(Error(\"react-stack-top-frame\"));\n if (null !== location) {\n var filename = location[1], line = location[2];\n location = location[3];\n findSourceMapURL = null == findSourceMapURL ? null : findSourceMapURL(filename, \"Client\");\n action = createFakeServerFunction(functionName || \"\", filename, findSourceMapURL, line, location, \"Client\", action);\n }\n registerBoundServerReference(action, id, null, encodeFormAction);\n return action;\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch(type){\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\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_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type) switch(\"number\" === typeof type.tag && console.error(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"), type.$$typeof){\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type || (type = innerType.displayName || innerType.name || \"\", type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\");\n return type;\n case REACT_MEMO_TYPE:\n return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function prepareStackTrace(error, structuredStackTrace) {\n error = (error.name || \"Error\") + \": \" + (error.message || \"\");\n for(var i = 0; i < structuredStackTrace.length; i++)error += \"\\n at \" + structuredStackTrace[i].toString();\n return error;\n }\n function ReactPromise(status, value, reason) {\n this.status = status;\n this.value = value;\n this.reason = reason;\n this._debugInfo = this._debugChunk = null;\n }\n function unwrapWeakResponse(weakResponse) {\n weakResponse = weakResponse.weak.deref();\n if (void 0 === weakResponse) throw Error(\"We did not expect to receive new data after GC:ing the response.\");\n return weakResponse;\n }\n function cleanupDebugChannel(debugChannel) {\n debugChannel(\"\");\n }\n function readChunk(chunk) {\n switch(chunk.status){\n case \"resolved_model\":\n initializeModelChunk(chunk);\n break;\n case \"resolved_module\":\n initializeModuleChunk(chunk);\n }\n switch(chunk.status){\n case \"fulfilled\":\n return chunk.value;\n case \"pending\":\n case \"blocked\":\n case \"halted\":\n throw chunk;\n default:\n throw chunk.reason;\n }\n }\n function getRoot(weakResponse) {\n weakResponse = unwrapWeakResponse(weakResponse);\n return getChunk(weakResponse, 0);\n }\n function createPendingChunk(response) {\n 0 === response._pendingChunks++ && (response._weakResponse.response = response, null !== response._pendingInitialRender && (clearTimeout(response._pendingInitialRender), response._pendingInitialRender = null));\n return new ReactPromise(\"pending\", null, null);\n }\n function releasePendingChunk(response, chunk) {\n \"pending\" === chunk.status && 0 === --response._pendingChunks && (response._weakResponse.response = null, response._pendingInitialRender = setTimeout(flushInitialRenderPerformance.bind(null, response), 100));\n }\n function wakeChunk(listeners, value) {\n for(var i = 0; i < listeners.length; i++){\n var listener = listeners[i];\n \"function\" === typeof listener ? listener(value) : fulfillReference(listener, value);\n }\n }\n function rejectChunk(listeners, error) {\n for(var i = 0; i < listeners.length; i++){\n var listener = listeners[i];\n \"function\" === typeof listener ? listener(error) : rejectReference(listener, error);\n }\n }\n function resolveBlockedCycle(resolvedChunk, reference) {\n var referencedChunk = reference.handler.chunk;\n if (null === referencedChunk) return null;\n if (referencedChunk === resolvedChunk) return reference.handler;\n reference = referencedChunk.value;\n if (null !== reference) for(referencedChunk = 0; referencedChunk < reference.length; referencedChunk++){\n var listener = reference[referencedChunk];\n if (\"function\" !== typeof listener && (listener = resolveBlockedCycle(resolvedChunk, listener), null !== listener)) return listener;\n }\n return null;\n }\n function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {\n switch(chunk.status){\n case \"fulfilled\":\n wakeChunk(resolveListeners, chunk.value);\n break;\n case \"blocked\":\n for(var i = 0; i < resolveListeners.length; i++){\n var listener = resolveListeners[i];\n if (\"function\" !== typeof listener) {\n var cyclicHandler = resolveBlockedCycle(chunk, listener);\n null !== cyclicHandler && (fulfillReference(listener, cyclicHandler.value), resolveListeners.splice(i, 1), i--, null !== rejectListeners && (listener = rejectListeners.indexOf(listener), -1 !== listener && rejectListeners.splice(listener, 1)));\n }\n }\n case \"pending\":\n if (chunk.value) for(i = 0; i < resolveListeners.length; i++)chunk.value.push(resolveListeners[i]);\n else chunk.value = resolveListeners;\n if (chunk.reason) {\n if (rejectListeners) for(resolveListeners = 0; resolveListeners < rejectListeners.length; resolveListeners++)chunk.reason.push(rejectListeners[resolveListeners]);\n } else chunk.reason = rejectListeners;\n break;\n case \"rejected\":\n rejectListeners && rejectChunk(rejectListeners, chunk.reason);\n }\n }\n function triggerErrorOnChunk(response, chunk, error) {\n if (\"pending\" !== chunk.status && \"blocked\" !== chunk.status) chunk.reason.error(error);\n else {\n releasePendingChunk(response, chunk);\n var listeners = chunk.reason;\n if (\"pending\" === chunk.status && null != chunk._debugChunk) {\n var prevHandler = initializingHandler;\n initializingHandler = null;\n chunk.status = \"blocked\";\n chunk.value = null;\n chunk.reason = null;\n try {\n initializeDebugChunk(response, chunk), chunk._debugChunk = null;\n } finally{\n initializingHandler = prevHandler;\n }\n }\n chunk.status = \"rejected\";\n chunk.reason = error;\n null !== listeners && rejectChunk(listeners, error);\n }\n }\n function createResolvedModelChunk(response, value) {\n return new ReactPromise(\"resolved_model\", value, response);\n }\n function createResolvedIteratorResultChunk(response, value, done) {\n return new ReactPromise(\"resolved_model\", (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\", response);\n }\n function resolveIteratorResultChunk(response, chunk, value, done) {\n resolveModelChunk(response, chunk, (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\");\n }\n function resolveModelChunk(response, chunk, value) {\n if (\"pending\" !== chunk.status) chunk.reason.enqueueModel(value);\n else {\n releasePendingChunk(response, chunk);\n var resolveListeners = chunk.value, rejectListeners = chunk.reason;\n chunk.status = \"resolved_model\";\n chunk.value = value;\n chunk.reason = response;\n null !== resolveListeners && (initializeModelChunk(chunk), wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));\n }\n }\n function resolveModuleChunk(response, chunk, value) {\n if (\"pending\" === chunk.status || \"blocked\" === chunk.status) {\n releasePendingChunk(response, chunk);\n response = chunk.value;\n var rejectListeners = chunk.reason;\n chunk.status = \"resolved_module\";\n chunk.value = value;\n value = [];\n null !== value && null != chunk._debugInfo ? chunk._debugInfo.push.apply(chunk._debugInfo, value) : chunk._debugInfo = value;\n null !== response && (initializeModuleChunk(chunk), wakeChunkIfInitialized(chunk, response, rejectListeners));\n }\n }\n function initializeDebugChunk(response, chunk) {\n var debugChunk = chunk._debugChunk;\n if (null !== debugChunk) {\n var debugInfo = chunk._debugInfo || (chunk._debugInfo = []);\n try {\n if (\"resolved_model\" === debugChunk.status) {\n for(var idx = debugInfo.length, c = debugChunk._debugChunk; null !== c;)\"fulfilled\" !== c.status && idx++, c = c._debugChunk;\n initializeModelChunk(debugChunk);\n switch(debugChunk.status){\n case \"fulfilled\":\n debugInfo[idx] = initializeDebugInfo(response, debugChunk.value);\n break;\n case \"blocked\":\n case \"pending\":\n waitForReference(debugChunk, debugInfo, \"\" + idx, response, initializeDebugInfo, [\n \"\"\n ]);\n break;\n default:\n throw debugChunk.reason;\n }\n } else switch(debugChunk.status){\n case \"fulfilled\":\n break;\n case \"blocked\":\n case \"pending\":\n waitForReference(debugChunk, {}, \"debug\", response, initializeDebugInfo, [\n \"\"\n ]);\n break;\n default:\n throw debugChunk.reason;\n }\n } catch (error) {\n triggerErrorOnChunk(response, chunk, error);\n }\n }\n }\n function initializeModelChunk(chunk) {\n var prevHandler = initializingHandler;\n initializingHandler = null;\n var resolvedModel = chunk.value, response = chunk.reason;\n chunk.status = \"blocked\";\n chunk.value = null;\n chunk.reason = null;\n initializeDebugChunk(response, chunk);\n chunk._debugChunk = null;\n try {\n var value = JSON.parse(resolvedModel, response._fromJSON), resolveListeners = chunk.value;\n null !== resolveListeners && (chunk.value = null, chunk.reason = null, wakeChunk(resolveListeners, value));\n if (null !== initializingHandler) {\n if (initializingHandler.errored) throw initializingHandler.reason;\n if (0 < initializingHandler.deps) {\n initializingHandler.value = value;\n initializingHandler.chunk = chunk;\n return;\n }\n }\n chunk.status = \"fulfilled\";\n chunk.value = value;\n } catch (error) {\n chunk.status = \"rejected\", chunk.reason = error;\n } finally{\n initializingHandler = prevHandler;\n }\n }\n function initializeModuleChunk(chunk) {\n try {\n var value = requireModule(chunk.value);\n chunk.status = \"fulfilled\";\n chunk.value = value;\n } catch (error) {\n chunk.status = \"rejected\", chunk.reason = error;\n }\n }\n function reportGlobalError(weakResponse, error) {\n if (void 0 !== weakResponse.weak.deref()) {\n var response = unwrapWeakResponse(weakResponse);\n response._closed = !0;\n response._closedReason = error;\n response._chunks.forEach(function(chunk) {\n \"pending\" === chunk.status && triggerErrorOnChunk(response, chunk, error);\n });\n weakResponse = response._debugChannel;\n void 0 !== weakResponse && (weakResponse(\"\"), response._debugChannel = void 0);\n }\n }\n function nullRefGetter() {\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\"function\" === typeof type) return '\"use client\"';\n if (\"object\" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE) return type._init === readChunk ? '\"use client\"' : \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function initializeElement(response, element) {\n var stack = element._debugStack, owner = element._owner;\n null === owner && (element._owner = response._debugRootOwner);\n var env = response._rootEnvironmentName;\n null !== owner && null != owner.env && (env = owner.env);\n var normalizedStackTrace = null;\n null === owner && null != response._debugRootStack ? normalizedStackTrace = response._debugRootStack : null !== stack && (normalizedStackTrace = createFakeJSXCallStackInDEV(response, stack, env));\n element._debugStack = normalizedStackTrace;\n normalizedStackTrace = null;\n supportsCreateTask && null !== stack && (normalizedStackTrace = console.createTask.bind(console, getTaskName(element.type)), stack = buildFakeCallStack(response, stack, env, !1, normalizedStackTrace), env = null === owner ? null : initializeFakeTask(response, owner), null === env ? (env = response._debugRootTask, normalizedStackTrace = null != env ? env.run(stack) : stack()) : normalizedStackTrace = env.run(stack));\n element._debugTask = normalizedStackTrace;\n null !== owner && initializeFakeStack(response, owner);\n Object.freeze(element.props);\n }\n function createLazyChunkWrapper(chunk) {\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: chunk,\n _init: readChunk\n };\n chunk = chunk._debugInfo || (chunk._debugInfo = []);\n lazyType._debugInfo = chunk;\n return lazyType;\n }\n function getChunk(response, id) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk || (chunk = response._closed ? new ReactPromise(\"rejected\", null, response._closedReason) : createPendingChunk(response), chunks.set(id, chunk));\n return chunk;\n }\n function fulfillReference(reference, value) {\n for(var response = reference.response, handler = reference.handler, parentObject = reference.parentObject, key = reference.key, map = reference.map, path = reference.path, i = 1; i < path.length; i++){\n for(; value.$$typeof === REACT_LAZY_TYPE;)if (value = value._payload, value === handler.chunk) value = handler.value;\n else {\n switch(value.status){\n case \"resolved_model\":\n initializeModelChunk(value);\n break;\n case \"resolved_module\":\n initializeModuleChunk(value);\n }\n switch(value.status){\n case \"fulfilled\":\n value = value.value;\n continue;\n case \"blocked\":\n var cyclicHandler = resolveBlockedCycle(value, reference);\n if (null !== cyclicHandler) {\n value = cyclicHandler.value;\n continue;\n }\n case \"pending\":\n path.splice(0, i - 1);\n null === value.value ? value.value = [\n reference\n ] : value.value.push(reference);\n null === value.reason ? value.reason = [\n reference\n ] : value.reason.push(reference);\n return;\n case \"halted\":\n return;\n default:\n rejectReference(reference, value.reason);\n return;\n }\n }\n value = value[path[i]];\n }\n reference = map(response, value, parentObject, key);\n parentObject[key] = reference;\n \"\" === key && null === handler.value && (handler.value = reference);\n if (parentObject[0] === REACT_ELEMENT_TYPE && \"object\" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE) switch(parentObject = handler.value, key){\n case \"3\":\n parentObject.props = reference;\n break;\n case \"4\":\n parentObject._owner = reference;\n break;\n case \"5\":\n parentObject._debugStack = reference;\n }\n handler.deps--;\n 0 === handler.deps && (key = handler.chunk, null !== key && \"blocked\" === key.status && (parentObject = key.value, key.status = \"fulfilled\", key.value = handler.value, key.reason = handler.reason, null !== parentObject && wakeChunk(parentObject, handler.value)));\n }\n function rejectReference(reference, error) {\n var handler = reference.handler;\n reference = reference.response;\n if (!handler.errored) {\n var blockedValue = handler.value;\n handler.errored = !0;\n handler.value = null;\n handler.reason = error;\n handler = handler.chunk;\n if (null !== handler && \"blocked\" === handler.status) {\n if (\"object\" === typeof blockedValue && null !== blockedValue && blockedValue.$$typeof === REACT_ELEMENT_TYPE) {\n var erroredComponent = {\n name: getComponentNameFromType(blockedValue.type) || \"\",\n owner: blockedValue._owner\n };\n erroredComponent.debugStack = blockedValue._debugStack;\n supportsCreateTask && (erroredComponent.debugTask = blockedValue._debugTask);\n (handler._debugInfo || (handler._debugInfo = [])).push(erroredComponent);\n }\n triggerErrorOnChunk(reference, handler, error);\n }\n }\n }\n function waitForReference(referencedChunk, parentObject, key, response, map, path) {\n if (void 0 === response._debugChannel && \"pending\" === referencedChunk.status && parentObject[0] === REACT_ELEMENT_TYPE && (\"4\" === key || \"5\" === key)) return null;\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n };\n parentObject = {\n response: response,\n handler: handler,\n parentObject: parentObject,\n key: key,\n map: map,\n path: path\n };\n null === referencedChunk.value ? referencedChunk.value = [\n parentObject\n ] : referencedChunk.value.push(parentObject);\n null === referencedChunk.reason ? referencedChunk.reason = [\n parentObject\n ] : referencedChunk.reason.push(parentObject);\n return null;\n }\n function loadServerReference(response, metaData, parentObject, key) {\n if (!response._serverReferenceConfig) return createBoundServerReference(metaData, response._callServer, response._encodeFormAction, response._debugFindSourceMapURL);\n var serverReference = resolveServerReference(response._serverReferenceConfig, metaData.id), promise = preloadModule(serverReference);\n if (promise) metaData.bound && (promise = Promise.all([\n promise,\n metaData.bound\n ]));\n else if (metaData.bound) promise = Promise.resolve(metaData.bound);\n else return promise = requireModule(serverReference), registerBoundServerReference(promise, metaData.id, metaData.bound, response._encodeFormAction), promise;\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n };\n promise.then(function() {\n var resolvedValue = requireModule(serverReference);\n if (metaData.bound) {\n var boundArgs = metaData.bound.value.slice(0);\n boundArgs.unshift(null);\n resolvedValue = resolvedValue.bind.apply(resolvedValue, boundArgs);\n }\n registerBoundServerReference(resolvedValue, metaData.id, metaData.bound, response._encodeFormAction);\n parentObject[key] = resolvedValue;\n \"\" === key && null === handler.value && (handler.value = resolvedValue);\n if (parentObject[0] === REACT_ELEMENT_TYPE && \"object\" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE) switch(boundArgs = handler.value, key){\n case \"3\":\n boundArgs.props = resolvedValue;\n break;\n case \"4\":\n boundArgs._owner = resolvedValue;\n }\n handler.deps--;\n 0 === handler.deps && (resolvedValue = handler.chunk, null !== resolvedValue && \"blocked\" === resolvedValue.status && (boundArgs = resolvedValue.value, resolvedValue.status = \"fulfilled\", resolvedValue.value = handler.value, null !== boundArgs && wakeChunk(boundArgs, handler.value)));\n }, function(error) {\n if (!handler.errored) {\n var blockedValue = handler.value;\n handler.errored = !0;\n handler.value = null;\n handler.reason = error;\n var chunk = handler.chunk;\n if (null !== chunk && \"blocked\" === chunk.status) {\n if (\"object\" === typeof blockedValue && null !== blockedValue && blockedValue.$$typeof === REACT_ELEMENT_TYPE) {\n var erroredComponent = {\n name: getComponentNameFromType(blockedValue.type) || \"\",\n owner: blockedValue._owner\n };\n erroredComponent.debugStack = blockedValue._debugStack;\n supportsCreateTask && (erroredComponent.debugTask = blockedValue._debugTask);\n (chunk._debugInfo || (chunk._debugInfo = [])).push(erroredComponent);\n }\n triggerErrorOnChunk(response, chunk, error);\n }\n }\n });\n return null;\n }\n function getOutlinedModel(response, reference, parentObject, key, map) {\n reference = reference.split(\":\");\n var id = parseInt(reference[0], 16);\n id = getChunk(response, id);\n switch(id.status){\n case \"resolved_model\":\n initializeModelChunk(id);\n break;\n case \"resolved_module\":\n initializeModuleChunk(id);\n }\n switch(id.status){\n case \"fulfilled\":\n for(var value = id.value, i = 1; i < reference.length; i++){\n for(; value.$$typeof === REACT_LAZY_TYPE;){\n value = value._payload;\n switch(value.status){\n case \"resolved_model\":\n initializeModelChunk(value);\n break;\n case \"resolved_module\":\n initializeModuleChunk(value);\n }\n switch(value.status){\n case \"fulfilled\":\n value = value.value;\n break;\n case \"blocked\":\n case \"pending\":\n return waitForReference(value, parentObject, key, response, map, reference.slice(i - 1));\n case \"halted\":\n return initializingHandler ? (response = initializingHandler, response.deps++) : initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n }, null;\n default:\n return initializingHandler ? (initializingHandler.errored = !0, initializingHandler.value = null, initializingHandler.reason = value.reason) : initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: value.reason,\n deps: 0,\n errored: !0\n }, null;\n }\n }\n value = value[reference[i]];\n }\n response = map(response, value, parentObject, key);\n id._debugInfo && (\"object\" !== typeof response || null === response || !isArrayImpl(response) && \"function\" !== typeof response[ASYNC_ITERATOR] && response.$$typeof !== REACT_ELEMENT_TYPE || response._debugInfo || Object.defineProperty(response, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: id._debugInfo\n }));\n return response;\n case \"pending\":\n case \"blocked\":\n return waitForReference(id, parentObject, key, response, map, reference);\n case \"halted\":\n return initializingHandler ? (response = initializingHandler, response.deps++) : initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n }, null;\n default:\n return initializingHandler ? (initializingHandler.errored = !0, initializingHandler.value = null, initializingHandler.reason = id.reason) : initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: id.reason,\n deps: 0,\n errored: !0\n }, null;\n }\n }\n function createMap(response, model) {\n return new Map(model);\n }\n function createSet(response, model) {\n return new Set(model);\n }\n function createBlob(response, model) {\n return new Blob(model.slice(1), {\n type: model[0]\n });\n }\n function createFormData(response, model) {\n response = new FormData();\n for(var i = 0; i < model.length; i++)response.append(model[i][0], model[i][1]);\n return response;\n }\n function applyConstructor(response, model, parentObject) {\n Object.setPrototypeOf(parentObject, model.prototype);\n }\n function defineLazyGetter(response, chunk, parentObject, key) {\n Object.defineProperty(parentObject, key, {\n get: function() {\n \"resolved_model\" === chunk.status && initializeModelChunk(chunk);\n switch(chunk.status){\n case \"fulfilled\":\n return chunk.value;\n case \"rejected\":\n throw chunk.reason;\n }\n return \"This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.\";\n },\n enumerable: !0,\n configurable: !1\n });\n return null;\n }\n function extractIterator(response, model) {\n return model[Symbol.iterator]();\n }\n function createModel(response, model) {\n return model;\n }\n function getInferredFunctionApproximate(code) {\n code = code.startsWith(\"Object.defineProperty(\") ? code.slice(22) : code.startsWith(\"(\") ? code.slice(1) : code;\n if (code.startsWith(\"async function\")) {\n var idx = code.indexOf(\"(\", 14);\n if (-1 !== idx) return code = code.slice(14, idx).trim(), (0, eval)(\"({\" + JSON.stringify(code) + \":async function(){}})\")[code];\n } else if (code.startsWith(\"function\")) {\n if (idx = code.indexOf(\"(\", 8), -1 !== idx) return code = code.slice(8, idx).trim(), (0, eval)(\"({\" + JSON.stringify(code) + \":function(){}})\")[code];\n } else if (code.startsWith(\"class\") && (idx = code.indexOf(\"{\", 5), -1 !== idx)) return code = code.slice(5, idx).trim(), (0, eval)(\"({\" + JSON.stringify(code) + \":class{}})\")[code];\n return function() {};\n }\n function parseModelString(response, parentObject, key, value) {\n if (\"$\" === value[0]) {\n if (\"$\" === value) return null !== initializingHandler && \"0\" === key && (initializingHandler = {\n parent: initializingHandler,\n chunk: null,\n value: null,\n reason: null,\n deps: 0,\n errored: !1\n }), REACT_ELEMENT_TYPE;\n switch(value[1]){\n case \"$\":\n return value.slice(1);\n case \"L\":\n return parentObject = parseInt(value.slice(2), 16), response = getChunk(response, parentObject), createLazyChunkWrapper(response);\n case \"@\":\n return parentObject = parseInt(value.slice(2), 16), getChunk(response, parentObject);\n case \"S\":\n return Symbol.for(value.slice(2));\n case \"F\":\n var ref = value.slice(2);\n return getOutlinedModel(response, ref, parentObject, key, loadServerReference);\n case \"T\":\n parentObject = \"$\" + value.slice(2);\n response = response._tempRefs;\n if (null == response) throw Error(\"Missing a temporary reference set but the RSC response returned a temporary reference. Pass a temporaryReference option with the set that was used with the reply.\");\n return response.get(parentObject);\n case \"Q\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createMap);\n case \"W\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createSet);\n case \"B\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createBlob);\n case \"K\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createFormData);\n case \"Z\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, resolveErrorDev);\n case \"i\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, extractIterator);\n case \"I\":\n return Infinity;\n case \"-\":\n return \"$-0\" === value ? -0 : -Infinity;\n case \"N\":\n return NaN;\n case \"u\":\n return;\n case \"D\":\n return new Date(Date.parse(value.slice(2)));\n case \"n\":\n return BigInt(value.slice(2));\n case \"P\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, applyConstructor);\n case \"E\":\n response = value.slice(2);\n try {\n if (!mightHaveStaticConstructor.test(response)) return (0, eval)(response);\n } catch (x) {}\n try {\n if (ref = getInferredFunctionApproximate(response), response.startsWith(\"Object.defineProperty(\")) {\n var idx = response.lastIndexOf(',\"name\",{value:\"');\n if (-1 !== idx) {\n var name = JSON.parse(response.slice(idx + 16 - 1, response.length - 2));\n Object.defineProperty(ref, \"name\", {\n value: name\n });\n }\n }\n } catch (_) {\n ref = function() {};\n }\n return ref;\n case \"Y\":\n if (2 < value.length && (ref = response._debugChannel)) {\n if (\"@\" === value[2]) return parentObject = value.slice(3), key = parseInt(parentObject, 16), response._chunks.has(key) || ref(\"P:\" + parentObject), getChunk(response, key);\n value = value.slice(2);\n idx = parseInt(value, 16);\n response._chunks.has(idx) || ref(\"Q:\" + value);\n ref = getChunk(response, idx);\n return \"fulfilled\" === ref.status ? ref.value : defineLazyGetter(response, ref, parentObject, key);\n }\n Object.defineProperty(parentObject, key, {\n get: function() {\n return \"This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.\";\n },\n enumerable: !0,\n configurable: !1\n });\n return null;\n default:\n return ref = value.slice(1), getOutlinedModel(response, ref, parentObject, key, createModel);\n }\n }\n return value;\n }\n function missingCall() {\n throw Error('Trying to call a function from \"use server\" but the callServer option was not implemented in your router runtime.');\n }\n function ResponseInstance(bundlerConfig, serverReferenceConfig, moduleLoading, callServer, encodeFormAction, nonce, temporaryReferences, findSourceMapURL, replayConsole, environmentName, debugChannel) {\n var chunks = new Map();\n this._bundlerConfig = bundlerConfig;\n this._serverReferenceConfig = serverReferenceConfig;\n this._moduleLoading = moduleLoading;\n this._callServer = void 0 !== callServer ? callServer : missingCall;\n this._encodeFormAction = encodeFormAction;\n this._nonce = nonce;\n this._chunks = chunks;\n this._stringDecoder = new util.TextDecoder();\n this._fromJSON = null;\n this._closed = !1;\n this._closedReason = null;\n this._tempRefs = temporaryReferences;\n this._pendingChunks = 0;\n this._weakResponse = {\n weak: new WeakRef(this),\n response: this\n };\n this._debugRootOwner = bundlerConfig = void 0 === ReactSharedInteralsServer || null === ReactSharedInteralsServer.A ? null : ReactSharedInteralsServer.A.getOwner();\n this._debugRootStack = null !== bundlerConfig ? Error(\"react-stack-top-frame\") : null;\n environmentName = void 0 === environmentName ? \"Server\" : environmentName;\n supportsCreateTask && (this._debugRootTask = console.createTask('\"use ' + environmentName.toLowerCase() + '\"'));\n this._debugFindSourceMapURL = findSourceMapURL;\n this._debugChannel = debugChannel;\n this._blockedConsole = null;\n this._replayConsole = replayConsole;\n this._rootEnvironmentName = environmentName;\n debugChannel && (null === debugChannelRegistry ? (debugChannel(\"\"), this._debugChannel = void 0) : debugChannelRegistry.register(this, debugChannel));\n this._fromJSON = createFromJSONCallback(this);\n }\n function createStreamState() {\n return {\n _rowState: 0,\n _rowID: 0,\n _rowTag: 0,\n _rowLength: 0,\n _buffer: []\n };\n }\n function resolveBuffer(response, id, buffer) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk && \"pending\" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), chunks.set(id, new ReactPromise(\"fulfilled\", buffer, null)));\n }\n function resolveModule(response, id, model) {\n var chunks = response._chunks, chunk = chunks.get(id);\n model = JSON.parse(model, response._fromJSON);\n var clientReference = resolveClientReference(response._bundlerConfig, model);\n prepareDestinationWithChunks(response._moduleLoading, model[1], response._nonce);\n if (model = preloadModule(clientReference)) {\n if (chunk) {\n releasePendingChunk(response, chunk);\n var blockedChunk = chunk;\n blockedChunk.status = \"blocked\";\n } else blockedChunk = new ReactPromise(\"blocked\", null, null), chunks.set(id, blockedChunk);\n model.then(function() {\n return resolveModuleChunk(response, blockedChunk, clientReference);\n }, function(error) {\n return triggerErrorOnChunk(response, blockedChunk, error);\n });\n } else chunk ? resolveModuleChunk(response, chunk, clientReference) : chunks.set(id, new ReactPromise(\"resolved_module\", clientReference, null));\n }\n function resolveStream(response, id, stream, controller) {\n var chunks = response._chunks, chunk = chunks.get(id);\n if (!chunk) chunks.set(id, new ReactPromise(\"fulfilled\", stream, controller));\n else if (\"pending\" === chunk.status) {\n releasePendingChunk(response, chunk);\n id = chunk.value;\n if (null != chunk._debugChunk) {\n chunks = initializingHandler;\n initializingHandler = null;\n chunk.status = \"blocked\";\n chunk.value = null;\n chunk.reason = null;\n try {\n if (initializeDebugChunk(response, chunk), chunk._debugChunk = null, null !== initializingHandler && !initializingHandler.errored && 0 < initializingHandler.deps) {\n initializingHandler.value = stream;\n initializingHandler.reason = controller;\n initializingHandler.chunk = chunk;\n return;\n }\n } finally{\n initializingHandler = chunks;\n }\n }\n chunk.status = \"fulfilled\";\n chunk.value = stream;\n chunk.reason = controller;\n null !== id && wakeChunk(id, chunk.value);\n }\n }\n function startReadableStream(response, id, type) {\n var controller = null;\n type = new ReadableStream({\n type: type,\n start: function(c) {\n controller = c;\n }\n });\n var previousBlockedChunk = null;\n resolveStream(response, id, type, {\n enqueueValue: function(value) {\n null === previousBlockedChunk ? controller.enqueue(value) : previousBlockedChunk.then(function() {\n controller.enqueue(value);\n });\n },\n enqueueModel: function(json) {\n if (null === previousBlockedChunk) {\n var chunk = createResolvedModelChunk(response, json);\n initializeModelChunk(chunk);\n \"fulfilled\" === chunk.status ? controller.enqueue(chunk.value) : (chunk.then(function(v) {\n return controller.enqueue(v);\n }, function(e) {\n return controller.error(e);\n }), previousBlockedChunk = chunk);\n } else {\n chunk = previousBlockedChunk;\n var _chunk3 = createPendingChunk(response);\n _chunk3.then(function(v) {\n return controller.enqueue(v);\n }, function(e) {\n return controller.error(e);\n });\n previousBlockedChunk = _chunk3;\n chunk.then(function() {\n previousBlockedChunk === _chunk3 && (previousBlockedChunk = null);\n resolveModelChunk(response, _chunk3, json);\n });\n }\n },\n close: function() {\n if (null === previousBlockedChunk) controller.close();\n else {\n var blockedChunk = previousBlockedChunk;\n previousBlockedChunk = null;\n blockedChunk.then(function() {\n return controller.close();\n });\n }\n },\n error: function(error) {\n if (null === previousBlockedChunk) controller.error(error);\n else {\n var blockedChunk = previousBlockedChunk;\n previousBlockedChunk = null;\n blockedChunk.then(function() {\n return controller.error(error);\n });\n }\n }\n });\n }\n function asyncIterator() {\n return this;\n }\n function createIterator(next) {\n next = {\n next: next\n };\n next[ASYNC_ITERATOR] = asyncIterator;\n return next;\n }\n function startAsyncIterable(response, id, iterator) {\n var buffer = [], closed = !1, nextWriteIndex = 0, iterable = {};\n iterable[ASYNC_ITERATOR] = function() {\n var nextReadIndex = 0;\n return createIterator(function(arg) {\n if (void 0 !== arg) throw Error(\"Values cannot be passed to next() of AsyncIterables passed to Client Components.\");\n if (nextReadIndex === buffer.length) {\n if (closed) return new ReactPromise(\"fulfilled\", {\n done: !0,\n value: void 0\n }, null);\n buffer[nextReadIndex] = createPendingChunk(response);\n }\n return buffer[nextReadIndex++];\n });\n };\n resolveStream(response, id, iterator ? iterable[ASYNC_ITERATOR]() : iterable, {\n enqueueValue: function(value) {\n if (nextWriteIndex === buffer.length) buffer[nextWriteIndex] = new ReactPromise(\"fulfilled\", {\n done: !1,\n value: value\n }, null);\n else {\n var chunk = buffer[nextWriteIndex], resolveListeners = chunk.value, rejectListeners = chunk.reason;\n chunk.status = \"fulfilled\";\n chunk.value = {\n done: !1,\n value: value\n };\n null !== resolveListeners && wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);\n }\n nextWriteIndex++;\n },\n enqueueModel: function(value) {\n nextWriteIndex === buffer.length ? buffer[nextWriteIndex] = createResolvedIteratorResultChunk(response, value, !1) : resolveIteratorResultChunk(response, buffer[nextWriteIndex], value, !1);\n nextWriteIndex++;\n },\n close: function(value) {\n closed = !0;\n nextWriteIndex === buffer.length ? buffer[nextWriteIndex] = createResolvedIteratorResultChunk(response, value, !0) : resolveIteratorResultChunk(response, buffer[nextWriteIndex], value, !0);\n for(nextWriteIndex++; nextWriteIndex < buffer.length;)resolveIteratorResultChunk(response, buffer[nextWriteIndex++], '\"$undefined\"', !0);\n },\n error: function(error) {\n closed = !0;\n for(nextWriteIndex === buffer.length && (buffer[nextWriteIndex] = createPendingChunk(response)); nextWriteIndex < buffer.length;)triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);\n }\n });\n }\n function resolveErrorDev(response, errorInfo) {\n var name = errorInfo.name, env = errorInfo.env;\n errorInfo = buildFakeCallStack(response, errorInfo.stack, env, !1, Error.bind(null, errorInfo.message || \"An error occurred in the Server Components render but no message was provided\"));\n response = getRootTask(response, env);\n response = null != response ? response.run(errorInfo) : errorInfo();\n response.name = name;\n response.environmentName = env;\n return response;\n }\n function createFakeFunction(name, filename, sourceMap, line, col, enclosingLine, enclosingCol, environmentName) {\n name || (name = \"<anonymous>\");\n var encodedName = JSON.stringify(name);\n 1 > enclosingLine ? enclosingLine = 0 : enclosingLine--;\n 1 > enclosingCol ? enclosingCol = 0 : enclosingCol--;\n 1 > line ? line = 0 : line--;\n 1 > col ? col = 0 : col--;\n if (line < enclosingLine || line === enclosingLine && col < enclosingCol) enclosingCol = enclosingLine = 0;\n 1 > line ? (line = encodedName.length + 3, enclosingCol -= line, 0 > enclosingCol && (enclosingCol = 0), col = col - enclosingCol - line - 3, 0 > col && (col = 0), encodedName = \"({\" + encodedName + \":\" + \" \".repeat(enclosingCol) + \"_=>\" + \" \".repeat(col) + \"_()})\") : 1 > enclosingLine ? (enclosingCol -= encodedName.length + 3, 0 > enclosingCol && (enclosingCol = 0), encodedName = \"({\" + encodedName + \":\" + \" \".repeat(enclosingCol) + \"_=>\" + \"\\n\".repeat(line - enclosingLine) + \" \".repeat(col) + \"_()})\") : enclosingLine === line ? (col = col - enclosingCol - 3, 0 > col && (col = 0), encodedName = \"\\n\".repeat(enclosingLine - 1) + \"({\" + encodedName + \":\\n\" + \" \".repeat(enclosingCol) + \"_=>\" + \" \".repeat(col) + \"_()})\") : encodedName = \"\\n\".repeat(enclosingLine - 1) + \"({\" + encodedName + \":\\n\" + \" \".repeat(enclosingCol) + \"_=>\" + \"\\n\".repeat(line - enclosingLine) + \" \".repeat(col) + \"_()})\";\n encodedName = 1 > enclosingLine ? encodedName + \"\\n/* This module was rendered by a Server Component. Turn on Source Maps to see the server source. */\" : \"/* This module was rendered by a Server Component. Turn on Source Maps to see the server source. */\" + encodedName;\n filename.startsWith(\"/\") && (filename = \"file://\" + filename);\n sourceMap ? (encodedName += \"\\n//# sourceURL=about://React/\" + encodeURIComponent(environmentName) + \"/\" + encodeURI(filename) + \"?\" + fakeFunctionIdx++, encodedName += \"\\n//# sourceMappingURL=\" + sourceMap) : encodedName = filename ? encodedName + (\"\\n//# sourceURL=\" + encodeURI(filename)) : encodedName + \"\\n//# sourceURL=<anonymous>\";\n try {\n var fn = (0, eval)(encodedName)[name];\n } catch (x) {\n fn = function(_) {\n return _();\n };\n }\n return fn;\n }\n function buildFakeCallStack(response, stack, environmentName, useEnclosingLine, innerCall) {\n for(var i = 0; i < stack.length; i++){\n var frame = stack[i], frameKey = frame.join(\"-\") + \"-\" + environmentName + (useEnclosingLine ? \"-e\" : \"-n\"), fn = fakeFunctionCache.get(frameKey);\n if (void 0 === fn) {\n fn = frame[0];\n var filename = frame[1], line = frame[2], col = frame[3], enclosingLine = frame[4];\n frame = frame[5];\n var findSourceMapURL = response._debugFindSourceMapURL;\n findSourceMapURL = findSourceMapURL ? findSourceMapURL(filename, environmentName) : null;\n fn = createFakeFunction(fn, filename, findSourceMapURL, line, col, useEnclosingLine ? line : enclosingLine, useEnclosingLine ? col : frame, environmentName);\n fakeFunctionCache.set(frameKey, fn);\n }\n innerCall = fn.bind(null, innerCall);\n }\n return innerCall;\n }\n function getRootTask(response, childEnvironmentName) {\n var rootTask = response._debugRootTask;\n return rootTask ? response._rootEnvironmentName !== childEnvironmentName ? (response = console.createTask.bind(console, '\"use ' + childEnvironmentName.toLowerCase() + '\"'), rootTask.run(response)) : rootTask : null;\n }\n function initializeFakeTask(response, debugInfo) {\n if (!supportsCreateTask || null == debugInfo.stack) return null;\n var cachedEntry = debugInfo.debugTask;\n if (void 0 !== cachedEntry) return cachedEntry;\n var useEnclosingLine = void 0 === debugInfo.key, stack = debugInfo.stack, env = null == debugInfo.env ? response._rootEnvironmentName : debugInfo.env;\n cachedEntry = null == debugInfo.owner || null == debugInfo.owner.env ? response._rootEnvironmentName : debugInfo.owner.env;\n var ownerTask = null == debugInfo.owner ? null : initializeFakeTask(response, debugInfo.owner);\n env = env !== cachedEntry ? '\"use ' + env.toLowerCase() + '\"' : void 0 !== debugInfo.key ? \"<\" + (debugInfo.name || \"...\") + \">\" : void 0 !== debugInfo.name ? debugInfo.name || \"unknown\" : \"await \" + (debugInfo.awaited.name || \"unknown\");\n env = console.createTask.bind(console, env);\n useEnclosingLine = buildFakeCallStack(response, stack, cachedEntry, useEnclosingLine, env);\n null === ownerTask ? (response = getRootTask(response, cachedEntry), response = null != response ? response.run(useEnclosingLine) : useEnclosingLine()) : response = ownerTask.run(useEnclosingLine);\n return debugInfo.debugTask = response;\n }\n function fakeJSXCallSite() {\n return Error(\"react-stack-top-frame\");\n }\n function initializeFakeStack(response, debugInfo) {\n if (void 0 === debugInfo.debugStack) {\n null != debugInfo.stack && (debugInfo.debugStack = createFakeJSXCallStackInDEV(response, debugInfo.stack, null == debugInfo.env ? \"\" : debugInfo.env));\n var owner = debugInfo.owner;\n null != owner && (initializeFakeStack(response, owner), void 0 === owner.debugLocation && null != debugInfo.debugStack && (owner.debugLocation = debugInfo.debugStack));\n }\n }\n function initializeDebugInfo(response, debugInfo) {\n void 0 !== debugInfo.stack && initializeFakeTask(response, debugInfo);\n null == debugInfo.owner && null != response._debugRootOwner ? (debugInfo.owner = response._debugRootOwner, debugInfo.stack = null, debugInfo.debugStack = response._debugRootStack, debugInfo.debugTask = response._debugRootTask) : void 0 !== debugInfo.stack && initializeFakeStack(response, debugInfo);\n return debugInfo;\n }\n function getCurrentStackInDEV() {\n var owner = currentOwnerInDEV;\n if (null === owner) return \"\";\n try {\n var info = \"\";\n if (owner.owner || \"string\" !== typeof owner.name) {\n for(; owner;){\n var ownerStack = owner.debugStack;\n if (null != ownerStack) {\n if (owner = owner.owner) {\n var JSCompiler_temp_const = info;\n var error = ownerStack, prevPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = prepareStackTrace;\n var stack = error.stack;\n Error.prepareStackTrace = prevPrepareStackTrace;\n stack.startsWith(\"Error: react-stack-top-frame\\n\") && (stack = stack.slice(29));\n var idx = stack.indexOf(\"\\n\");\n -1 !== idx && (stack = stack.slice(idx + 1));\n idx = stack.indexOf(\"react_stack_bottom_frame\");\n -1 !== idx && (idx = stack.lastIndexOf(\"\\n\", idx));\n var JSCompiler_inline_result = -1 !== idx ? stack = stack.slice(0, idx) : \"\";\n info = JSCompiler_temp_const + (\"\\n\" + JSCompiler_inline_result);\n }\n } else break;\n }\n var JSCompiler_inline_result$jscomp$0 = info;\n } else {\n JSCompiler_temp_const = owner.name;\n if (void 0 === prefix) try {\n throw Error();\n } catch (x) {\n prefix = (error = x.stack.trim().match(/\\n( *(at )?)/)) && error[1] || \"\", suffix = -1 < x.stack.indexOf(\"\\n at\") ? \" (<anonymous>)\" : -1 < x.stack.indexOf(\"@\") ? \"@unknown:0:0\" : \"\";\n }\n JSCompiler_inline_result$jscomp$0 = \"\\n\" + prefix + JSCompiler_temp_const + suffix;\n }\n } catch (x) {\n JSCompiler_inline_result$jscomp$0 = \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n return JSCompiler_inline_result$jscomp$0;\n }\n function resolveConsoleEntry(response, json) {\n if (response._replayConsole) {\n var blockedChunk = response._blockedConsole;\n if (null == blockedChunk) blockedChunk = createResolvedModelChunk(response, json), initializeModelChunk(blockedChunk), \"fulfilled\" === blockedChunk.status ? replayConsoleWithCallStackInDEV(response, blockedChunk.value) : (blockedChunk.then(function(v) {\n return replayConsoleWithCallStackInDEV(response, v);\n }, function() {}), response._blockedConsole = blockedChunk);\n else {\n var _chunk4 = createPendingChunk(response);\n _chunk4.then(function(v) {\n return replayConsoleWithCallStackInDEV(response, v);\n }, function() {});\n response._blockedConsole = _chunk4;\n var unblock = function() {\n response._blockedConsole === _chunk4 && (response._blockedConsole = null);\n resolveModelChunk(response, _chunk4, json);\n };\n blockedChunk.then(unblock, unblock);\n }\n }\n }\n function initializeIOInfo(response, ioInfo) {\n void 0 !== ioInfo.stack && (initializeFakeTask(response, ioInfo), initializeFakeStack(response, ioInfo));\n ioInfo.start += response._timeOrigin;\n ioInfo.end += response._timeOrigin;\n }\n function resolveIOInfo(response, id, model) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk ? (resolveModelChunk(response, chunk, model), \"resolved_model\" === chunk.status && initializeModelChunk(chunk)) : (chunk = createResolvedModelChunk(response, model), chunks.set(id, chunk), initializeModelChunk(chunk));\n \"fulfilled\" === chunk.status ? initializeIOInfo(response, chunk.value) : chunk.then(function(v) {\n initializeIOInfo(response, v);\n }, function() {});\n }\n function mergeBuffer(buffer, lastChunk) {\n for(var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)byteLength += buffer[i].byteLength;\n byteLength = new Uint8Array(byteLength);\n for(var _i3 = i = 0; _i3 < l; _i3++){\n var chunk = buffer[_i3];\n byteLength.set(chunk, i);\n i += chunk.byteLength;\n }\n byteLength.set(lastChunk, i);\n return byteLength;\n }\n function resolveTypedArray(response, id, buffer, lastChunk, constructor, bytesPerElement) {\n buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement ? lastChunk : mergeBuffer(buffer, lastChunk);\n constructor = new constructor(buffer.buffer, buffer.byteOffset, buffer.byteLength / bytesPerElement);\n resolveBuffer(response, id, constructor);\n }\n function flushInitialRenderPerformance() {}\n function processFullBinaryRow(response, id, tag, buffer, chunk) {\n switch(tag){\n case 65:\n resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer);\n return;\n case 79:\n resolveTypedArray(response, id, buffer, chunk, Int8Array, 1);\n return;\n case 111:\n resolveBuffer(response, id, 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk));\n return;\n case 85:\n resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1);\n return;\n case 83:\n resolveTypedArray(response, id, buffer, chunk, Int16Array, 2);\n return;\n case 115:\n resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2);\n return;\n case 76:\n resolveTypedArray(response, id, buffer, chunk, Int32Array, 4);\n return;\n case 108:\n resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4);\n return;\n case 71:\n resolveTypedArray(response, id, buffer, chunk, Float32Array, 4);\n return;\n case 103:\n resolveTypedArray(response, id, buffer, chunk, Float64Array, 8);\n return;\n case 77:\n resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8);\n return;\n case 109:\n resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8);\n return;\n case 86:\n resolveTypedArray(response, id, buffer, chunk, DataView, 1);\n return;\n }\n for(var stringDecoder = response._stringDecoder, row = \"\", i = 0; i < buffer.length; i++)row += stringDecoder.decode(buffer[i], decoderOptions);\n row += stringDecoder.decode(chunk);\n processFullStringRow(response, id, tag, row);\n }\n function processFullStringRow(response, id, tag, row) {\n switch(tag){\n case 73:\n resolveModule(response, id, row);\n break;\n case 72:\n id = row[0];\n row = row.slice(1);\n response = JSON.parse(row, response._fromJSON);\n row = ReactDOMSharedInternals.d;\n switch(id){\n case \"D\":\n row.D(response);\n break;\n case \"C\":\n \"string\" === typeof response ? row.C(response) : row.C(response[0], response[1]);\n break;\n case \"L\":\n id = response[0];\n tag = response[1];\n 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag);\n break;\n case \"m\":\n \"string\" === typeof response ? row.m(response) : row.m(response[0], response[1]);\n break;\n case \"X\":\n \"string\" === typeof response ? row.X(response) : row.X(response[0], response[1]);\n break;\n case \"S\":\n \"string\" === typeof response ? row.S(response) : row.S(response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0);\n break;\n case \"M\":\n \"string\" === typeof response ? row.M(response) : row.M(response[0], response[1]);\n }\n break;\n case 69:\n tag = response._chunks;\n var chunk = tag.get(id);\n row = JSON.parse(row);\n var error = resolveErrorDev(response, row);\n error.digest = row.digest;\n chunk ? triggerErrorOnChunk(response, chunk, error) : tag.set(id, new ReactPromise(\"rejected\", null, error));\n break;\n case 84:\n tag = response._chunks;\n (chunk = tag.get(id)) && \"pending\" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), tag.set(id, new ReactPromise(\"fulfilled\", row, null)));\n break;\n case 78:\n response._timeOrigin = +row - performance.timeOrigin;\n break;\n case 68:\n id = getChunk(response, id);\n \"fulfilled\" !== id.status && \"rejected\" !== id.status && \"halted\" !== id.status && \"blocked\" !== id.status && \"resolved_module\" !== id.status && (tag = id._debugChunk, chunk = createResolvedModelChunk(response, row), chunk._debugChunk = tag, id._debugChunk = chunk, initializeDebugChunk(response, id), \"blocked\" === chunk.status && void 0 === response._debugChannel && '\"' === row[0] && \"$\" === row[1] && (row = row.slice(2, row.length - 1).split(\":\"), row = parseInt(row[0], 16), \"pending\" === getChunk(response, row).status && (id._debugChunk = null)));\n break;\n case 74:\n resolveIOInfo(response, id, row);\n break;\n case 87:\n resolveConsoleEntry(response, row);\n break;\n case 82:\n startReadableStream(response, id, void 0);\n break;\n case 114:\n startReadableStream(response, id, \"bytes\");\n break;\n case 88:\n startAsyncIterable(response, id, !1);\n break;\n case 120:\n startAsyncIterable(response, id, !0);\n break;\n case 67:\n (response = response._chunks.get(id)) && \"fulfilled\" === response.status && response.reason.close(\"\" === row ? '\"$undefined\"' : row);\n break;\n default:\n if (\"\" === row) {\n if (row = response._chunks, (tag = row.get(id)) || row.set(id, tag = createPendingChunk(response)), \"pending\" === tag.status || \"blocked\" === tag.status) releasePendingChunk(response, tag), response = tag, response.status = \"halted\", response.value = null, response.reason = null;\n } else tag = response._chunks, (chunk = tag.get(id)) ? resolveModelChunk(response, chunk, row) : tag.set(id, createResolvedModelChunk(response, row));\n }\n }\n function processBinaryChunk(weakResponse, streamState, chunk) {\n if (void 0 !== weakResponse.weak.deref()) {\n var response = unwrapWeakResponse(weakResponse), i = 0, rowState = streamState._rowState;\n weakResponse = streamState._rowID;\n for(var rowTag = streamState._rowTag, rowLength = streamState._rowLength, buffer = streamState._buffer, chunkLength = chunk.length; i < chunkLength;){\n var lastIdx = -1;\n switch(rowState){\n case 0:\n lastIdx = chunk[i++];\n 58 === lastIdx ? rowState = 1 : weakResponse = weakResponse << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 1:\n rowState = chunk[i];\n 84 === rowState || 65 === rowState || 79 === rowState || 111 === rowState || 85 === rowState || 83 === rowState || 115 === rowState || 76 === rowState || 108 === rowState || 71 === rowState || 103 === rowState || 77 === rowState || 109 === rowState || 86 === rowState ? (rowTag = rowState, rowState = 2, i++) : 64 < rowState && 91 > rowState || 35 === rowState || 114 === rowState || 120 === rowState ? (rowTag = rowState, rowState = 3, i++) : (rowTag = 0, rowState = 3);\n continue;\n case 2:\n lastIdx = chunk[i++];\n 44 === lastIdx ? rowState = 4 : rowLength = rowLength << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 3:\n lastIdx = chunk.indexOf(10, i);\n break;\n case 4:\n lastIdx = i + rowLength, lastIdx > chunk.length && (lastIdx = -1);\n }\n var offset = chunk.byteOffset + i;\n if (-1 < lastIdx) rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i), processFullBinaryRow(response, weakResponse, rowTag, buffer, rowLength), i = lastIdx, 3 === rowState && i++, rowLength = weakResponse = rowTag = rowState = 0, buffer.length = 0;\n else {\n chunk = new Uint8Array(chunk.buffer, offset, chunk.byteLength - i);\n buffer.push(chunk);\n rowLength -= chunk.byteLength;\n break;\n }\n }\n streamState._rowState = rowState;\n streamState._rowID = weakResponse;\n streamState._rowTag = rowTag;\n streamState._rowLength = rowLength;\n }\n }\n function createFromJSONCallback(response) {\n return function(key, value) {\n if (\"string\" === typeof value) return parseModelString(response, this, key, value);\n if (\"object\" === typeof value && null !== value) {\n if (value[0] === REACT_ELEMENT_TYPE) b: {\n var owner = value[4];\n key = value[5];\n var validated = value[6];\n value = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: value[1],\n key: value[2],\n props: value[3],\n _owner: void 0 === owner ? null : owner\n };\n Object.defineProperty(value, \"ref\", {\n enumerable: !1,\n get: nullRefGetter\n });\n value._store = {};\n Object.defineProperty(value._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: validated\n });\n Object.defineProperty(value, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(value, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: void 0 === key ? null : key\n });\n Object.defineProperty(value, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n if (null !== initializingHandler) {\n validated = initializingHandler;\n initializingHandler = validated.parent;\n if (validated.errored) {\n key = new ReactPromise(\"rejected\", null, validated.reason);\n initializeElement(response, value);\n validated = {\n name: getComponentNameFromType(value.type) || \"\",\n owner: value._owner\n };\n validated.debugStack = value._debugStack;\n supportsCreateTask && (validated.debugTask = value._debugTask);\n key._debugInfo = [\n validated\n ];\n value = createLazyChunkWrapper(key);\n break b;\n }\n if (0 < validated.deps) {\n key = new ReactPromise(\"blocked\", null, null);\n validated.value = value;\n validated.chunk = key;\n value = initializeElement.bind(null, response, value);\n key.then(value, value);\n value = createLazyChunkWrapper(key);\n break b;\n }\n }\n initializeElement(response, value);\n }\n return value;\n }\n return value;\n };\n }\n function close(weakResponse) {\n reportGlobalError(weakResponse, Error(\"Connection closed.\"));\n }\n function noServerCall$1() {\n throw 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 createResponseFromOptions(options) {\n return new ResponseInstance(options.serverConsumerManifest.moduleMap, options.serverConsumerManifest.serverModuleMap, options.serverConsumerManifest.moduleLoading, noServerCall$1, options.encodeFormAction, \"string\" === typeof options.nonce ? options.nonce : void 0, options && options.temporaryReferences ? options.temporaryReferences : void 0, options && options.findSourceMapURL ? options.findSourceMapURL : void 0, options ? !0 === options.replayConsoleLogs : !1, options && options.environmentName ? options.environmentName : void 0, void 0)._weakResponse;\n }\n function startReadingFromStream(response, stream) {\n function progress(_ref) {\n var value = _ref.value;\n if (_ref.done) close(response);\n else return processBinaryChunk(response, streamState, value), reader.read().then(progress).catch(error);\n }\n function error(e) {\n reportGlobalError(response, e);\n }\n var streamState = createStreamState(), reader = stream.getReader();\n reader.read().then(progress).catch(error);\n }\n function noServerCall() {\n throw 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 var util = __webpack_require__(/*! util */ \"util\"), ReactDOM = __webpack_require__(/*! react-dom */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js\"), React = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"), decoderOptions = {\n stream: !0\n }, bind$1 = Function.prototype.bind, chunkCache = new Map(), ReactDOMSharedInternals = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"), REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"), REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"), REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"), REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"), REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"), REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"), REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"), REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"), REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"), REACT_MEMO_TYPE = Symbol.for(\"react.memo\"), REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"), REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator, ASYNC_ITERATOR = Symbol.asyncIterator, isArrayImpl = Array.isArray, getPrototypeOf = Object.getPrototypeOf, jsxPropsParents = new WeakMap(), jsxChildrenParents = new WeakMap(), CLIENT_REFERENCE_TAG = Symbol.for(\"react.client.reference\"), ObjectPrototype = Object.prototype, knownServerReferences = new WeakMap(), boundCache = new WeakMap(), fakeServerFunctionIdx = 0, FunctionBind = Function.prototype.bind, ArraySlice = Array.prototype.slice, v8FrameRegExp = /^ {3} at (?:(.+) \\((.+):(\\d+):(\\d+)\\)|(?:async )?(.+):(\\d+):(\\d+))$/, jscSpiderMonkeyFrameRegExp = /(?:(.*)@)?(.*):(\\d+):(\\d+)/, REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"), prefix, suffix;\n new (\"function\" === typeof WeakMap ? WeakMap : Map)();\n var ReactSharedInteralsServer = React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE || ReactSharedInteralsServer;\n ReactPromise.prototype = Object.create(Promise.prototype);\n ReactPromise.prototype.then = function(resolve, reject) {\n var _this = this;\n switch(this.status){\n case \"resolved_model\":\n initializeModelChunk(this);\n break;\n case \"resolved_module\":\n initializeModuleChunk(this);\n }\n var resolveCallback = resolve, rejectCallback = reject, wrapperPromise = new Promise(function(res, rej) {\n resolve = function(value) {\n wrapperPromise._debugInfo = _this._debugInfo;\n res(value);\n };\n reject = function(reason) {\n wrapperPromise._debugInfo = _this._debugInfo;\n rej(reason);\n };\n });\n wrapperPromise.then(resolveCallback, rejectCallback);\n switch(this.status){\n case \"fulfilled\":\n \"function\" === typeof resolve && resolve(this.value);\n break;\n case \"pending\":\n case \"blocked\":\n \"function\" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve));\n \"function\" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject));\n break;\n case \"halted\":\n break;\n default:\n \"function\" === typeof reject && reject(this.reason);\n }\n };\n var debugChannelRegistry = \"function\" === typeof FinalizationRegistry ? new FinalizationRegistry(cleanupDebugChannel) : null, initializingHandler = null, mightHaveStaticConstructor = /\\bclass\\b.*\\bstatic\\b/, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, createFakeJSXCallStack = {\n react_stack_bottom_frame: function(response, stack, environmentName) {\n return buildFakeCallStack(response, stack, environmentName, !1, fakeJSXCallSite)();\n }\n }, createFakeJSXCallStackInDEV = createFakeJSXCallStack.react_stack_bottom_frame.bind(createFakeJSXCallStack), currentOwnerInDEV = null, replayConsoleWithCallStack = {\n react_stack_bottom_frame: function(response, payload) {\n var methodName = payload[0], stackTrace = payload[1], owner = payload[2], env = payload[3];\n payload = payload.slice(4);\n var prevStack = ReactSharedInternals.getCurrentStack;\n ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;\n currentOwnerInDEV = null === owner ? response._debugRootOwner : owner;\n try {\n a: {\n var offset = 0;\n switch(methodName){\n case \"dir\":\n case \"dirxml\":\n case \"groupEnd\":\n case \"table\":\n var JSCompiler_inline_result = bind$1.apply(console[methodName], [\n console\n ].concat(payload));\n break a;\n case \"assert\":\n offset = 1;\n }\n var newArgs = payload.slice(0);\n \"string\" === typeof newArgs[offset] ? newArgs.splice(offset, 1, \"\\u001b[0m\\u001b[7m%c%s\\u001b[0m%c \" + newArgs[offset], \"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\", \" \" + env + \" \", \"\") : newArgs.splice(offset, 0, \"\\u001b[0m\\u001b[7m%c%s\\u001b[0m%c\", \"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\", \" \" + env + \" \", \"\");\n newArgs.unshift(console);\n JSCompiler_inline_result = bind$1.apply(console[methodName], newArgs);\n }\n var callStack = buildFakeCallStack(response, stackTrace, env, !1, JSCompiler_inline_result);\n if (null != owner) {\n var task = initializeFakeTask(response, owner);\n initializeFakeStack(response, owner);\n if (null !== task) {\n task.run(callStack);\n return;\n }\n }\n var rootTask = getRootTask(response, env);\n null != rootTask ? rootTask.run(callStack) : callStack();\n } finally{\n currentOwnerInDEV = null, ReactSharedInternals.getCurrentStack = prevStack;\n }\n }\n }, replayConsoleWithCallStackInDEV = replayConsoleWithCallStack.react_stack_bottom_frame.bind(replayConsoleWithCallStack);\n exports.createFromFetch = function(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 exports.createFromNodeStream = function(stream, serverConsumerManifest, options) {\n var response$jscomp$0 = new ResponseInstance(serverConsumerManifest.moduleMap, serverConsumerManifest.serverModuleMap, serverConsumerManifest.moduleLoading, noServerCall, options ? options.encodeFormAction : void 0, options && \"string\" === typeof options.nonce ? options.nonce : void 0, void 0, options && options.findSourceMapURL ? options.findSourceMapURL : void 0, options ? !0 === options.replayConsoleLogs : !1, options && options.environmentName ? options.environmentName : void 0, void 0)._weakResponse, streamState = createStreamState();\n stream.on(\"data\", function(chunk) {\n if (\"string\" === typeof chunk) {\n if (void 0 !== response$jscomp$0.weak.deref()) {\n for(var response = unwrapWeakResponse(response$jscomp$0), i = 0, rowState = streamState._rowState, rowID = streamState._rowID, rowTag = streamState._rowTag, rowLength = streamState._rowLength, buffer = streamState._buffer, chunkLength = chunk.length; i < chunkLength;){\n var lastIdx = -1;\n switch(rowState){\n case 0:\n lastIdx = chunk.charCodeAt(i++);\n 58 === lastIdx ? rowState = 1 : rowID = rowID << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 1:\n rowState = chunk.charCodeAt(i);\n 84 === rowState || 65 === rowState || 79 === rowState || 111 === rowState || 85 === rowState || 83 === rowState || 115 === rowState || 76 === rowState || 108 === rowState || 71 === rowState || 103 === rowState || 77 === rowState || 109 === rowState || 86 === rowState ? (rowTag = rowState, rowState = 2, i++) : 64 < rowState && 91 > rowState || 114 === rowState || 120 === rowState ? (rowTag = rowState, rowState = 3, i++) : (rowTag = 0, rowState = 3);\n continue;\n case 2:\n lastIdx = chunk.charCodeAt(i++);\n 44 === lastIdx ? rowState = 4 : rowLength = rowLength << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 3:\n lastIdx = chunk.indexOf(\"\\n\", i);\n break;\n case 4:\n if (84 !== rowTag) throw Error(\"Binary RSC chunks cannot be encoded as strings. This is a bug in the wiring of the React streams.\");\n if (rowLength < chunk.length || chunk.length > 3 * rowLength) throw Error(\"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\");\n lastIdx = chunk.length;\n }\n if (-1 < lastIdx) {\n if (0 < buffer.length) throw Error(\"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\");\n i = chunk.slice(i, lastIdx);\n processFullStringRow(response, rowID, rowTag, i);\n i = lastIdx;\n 3 === rowState && i++;\n rowLength = rowID = rowTag = rowState = 0;\n buffer.length = 0;\n } else if (chunk.length !== i) throw Error(\"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\");\n }\n streamState._rowState = rowState;\n streamState._rowID = rowID;\n streamState._rowTag = rowTag;\n streamState._rowLength = rowLength;\n }\n } else processBinaryChunk(response$jscomp$0, streamState, chunk);\n });\n stream.on(\"error\", function(error) {\n reportGlobalError(response$jscomp$0, error);\n });\n stream.on(\"end\", function() {\n return close(response$jscomp$0);\n });\n return getRoot(response$jscomp$0);\n };\n exports.createFromReadableStream = function(stream, options) {\n options = createResponseFromOptions(options);\n startReadingFromStream(options, stream);\n return getRoot(options);\n };\n exports.createServerReference = function(id) {\n return createServerReference$1(id, noServerCall$1);\n };\n exports.createTemporaryReferenceSet = function() {\n return new Map();\n };\n exports.encodeReply = function(value, options) {\n return new Promise(function(resolve, reject) {\n var abort = processReply(value, \"\", options && options.temporaryReferences ? options.temporaryReferences : void 0, resolve, reject);\n if (options && options.signal) {\n var signal = options.signal;\n if (signal.aborted) abort(signal.reason);\n else {\n var listener = function() {\n abort(signal.reason);\n signal.removeEventListener(\"abort\", listener);\n };\n signal.addEventListener(\"abort\", listener);\n }\n }\n });\n };\n exports.registerServerReference = function(reference, id, encodeFormAction) {\n registerBoundServerReference(reference, id, null, encodeFormAction);\n return reference;\n };\n}();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5ub2RlLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztDQVFDLEdBRVk7QUFDYixLQVFvQixJQVBsQjtJQUNFLFNBQVNBLHVCQUF1QkMsYUFBYSxFQUFFQyxRQUFRO1FBQ3JELElBQUlELGVBQWU7WUFDakIsSUFBSUUsZ0JBQWdCRixhQUFhLENBQUNDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDOUMsSUFBS0QsZ0JBQWdCRSxpQkFBaUJBLGFBQWEsQ0FBQ0QsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUM5REMsZ0JBQWdCRixjQUFjRyxJQUFJO2lCQUMvQjtnQkFDSEgsZ0JBQWdCRSxpQkFBaUJBLGFBQWEsQ0FBQyxJQUFJO2dCQUNuRCxJQUFJLENBQUNGLGVBQ0gsTUFBTUksTUFDSixnQ0FDRUgsUUFBUSxDQUFDLEVBQUUsR0FDWDtnQkFFTkMsZ0JBQWdCRCxRQUFRLENBQUMsRUFBRTtZQUM3QjtZQUNBLE9BQU8sTUFBTUEsU0FBU0ksTUFBTSxHQUN4QjtnQkFBQ0wsY0FBY00sRUFBRTtnQkFBRU4sY0FBY08sTUFBTTtnQkFBRUw7Z0JBQWU7YUFBRSxHQUMxRDtnQkFBQ0YsY0FBY00sRUFBRTtnQkFBRU4sY0FBY08sTUFBTTtnQkFBRUw7YUFBYztRQUM3RDtRQUNBLE9BQU9EO0lBQ1Q7SUFDQSxTQUFTTyx1QkFBdUJSLGFBQWEsRUFBRU0sRUFBRTtRQUMvQyxJQUFJSCxPQUFPLElBQ1RNLHFCQUFxQlQsYUFBYSxDQUFDTSxHQUFHO1FBQ3hDLElBQUlHLG9CQUFvQk4sT0FBT00sbUJBQW1CTixJQUFJO2FBQ2pEO1lBQ0gsSUFBSU8sTUFBTUosR0FBR0ssV0FBVyxDQUFDO1lBQ3pCLENBQUMsTUFBTUQsT0FDSixRQUFRSixHQUFHTSxLQUFLLENBQUNGLE1BQU0sSUFD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cm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2pzL3JlYWN0LXNlcnZlci1kb20td2VicGFjay1jbGllbnQubm9kZS5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50Lm5vZGUuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXCJwcm9kdWN0aW9uXCIgIT09IHByb2Nlc3MuZW52Lk5PREVfRU5WICYmXG4gIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUNsaWVudFJlZmVyZW5jZShidW5kbGVyQ29uZmlnLCBtZXRhZGF0YSkge1xuICAgICAgaWYgKGJ1bmRsZXJDb25maWcpIHtcbiAgICAgICAgdmFyIG1vZHVsZUV4cG9ydHMgPSBidW5kbGVyQ29uZmlnW21ldGFkYXRhWzBdXTtcbiAgICAgICAgaWYgKChidW5kbGVyQ29uZmlnID0gbW9kdWxlRXhwb3J0cyAmJiBtb2R1bGVFeHBvcnRzW21ldGFkYXRhWzJdXSkpXG4gICAgICAgICAgbW9kdWxlRXhwb3J0cyA9IGJ1bmRsZXJDb25maWcubmFtZTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgYnVuZGxlckNvbmZpZyA9IG1vZHVsZUV4cG9ydHMgJiYgbW9kdWxlRXhwb3J0c1tcIipcIl07XG4gICAgICAgICAgaWYgKCFidW5kbGVyQ29uZmlnKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICdDb3VsZCBub3QgZmluZCB0aGUgbW9kdWxlIFwiJyArXG4gICAgICAgICAgICAgICAgbWV0YWRhdGFbMF0gK1xuICAgICAgICAgICAgICAgICdcIiBpbiB0aGUgUmVhY3QgU2VydmVyIENvbnN1bWVyIE1hbmlmZXN0LiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIHRoZSBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cyBidW5kbGVyLidcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgbW9kdWxlRXhwb3J0cyA9IG1ldGFkYXRhWzJdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiA0ID09PSBtZXRhZGF0YS5sZW5ndGhcbiAgICAgICAgICA/IFtidW5kbGVyQ29uZmlnLmlkLCBidW5kbGVyQ29uZmlnLmNodW5rcywgbW9kdWxlRXhwb3J0cywgMV1cbiAgICAgICAgICA6IFtidW5kbGVyQ29uZmlnLmlkLCBidW5kbGVyQ29uZmlnLmNodW5rcywgbW9kdWxlRXhwb3J0c107XG4gICAgICB9XG4gICAgICByZXR1cm4gbWV0YWRhdGE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVTZXJ2ZXJSZWZlcmVuY2UoYnVuZGxlckNvbmZpZywgaWQpIHtcbiAgICAgIHZhciBuYW1lID0gXCJcIixcbiAgICAgICAgcmVzb2x2ZWRNb2R1bGVEYXRhID0gYnVuZGxlckNvbmZpZ1tpZF07XG4gICAgICBpZiAocmVzb2x2ZWRNb2R1bGVEYXRhKSBuYW1lID0gcmVzb2x2ZWRNb2R1bGVEYXRhLm5hbWU7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIGlkeCA9IGlkLmxhc3RJbmRleE9mKFwiI1wiKTtcbiAgICAgICAgLTEgIT09IGlkeCAmJlxuICAgICAgICAgICgobmFtZSA9IGlkLnNsaWNlKGlkeCArIDEpKSxcbiAgICAgICAgICAocmVzb2x2ZWRNb2R1bGVEYXRhID0gYnVuZGxlckNvbmZpZ1tpZC5zbGljZSgwLCBpZHgpXSkpO1xuICAgICAgICBpZiAoIXJlc29sdmVkTW9kdWxlRGF0YSlcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICdDb3VsZCBub3QgZmluZCB0aGUgbW9kdWxlIFwiJyArXG4gICAgICAgICAgICAgIGlkICtcbiAgICAgICAgICAgICAgJ1wiIGluIHRoZSBSZWFjdCBTZXJ2ZXIgTWFuaWZlc3QuIFRoaXMgaXMgcHJvYmFibHkgYSBidWcgaW4gdGhlIFJlYWN0IFNlcnZlciBDb21wb25lbnRzIGJ1bmRsZXIuJ1xuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZWRNb2R1bGVEYXRhLmFzeW5jXG4gICAgICAgID8gW3Jlc29sdmVkTW9kdWxlRGF0YS5pZCwgcmVzb2x2ZWRNb2R1bGVEYXRhLmNodW5rcywgbmFtZSwgMV1cbiAgICAgICAgOiBbcmVzb2x2ZWRNb2R1bGVEYXRhLmlkLCByZXNvbHZlZE1vZHVsZURhdGEuY2h1bmtzLCBuYW1lXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVxdWlyZUFzeW5jTW9kdWxlKGlkKSB7XG4gICAgICB2YXIgcHJvbWlzZSA9IGdsb2JhbFRoaXMuX19uZXh0X3JlcXVpcmVfXyhpZCk7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgcHJvbWlzZS50aGVuIHx8IFwiZnVsZmlsbGVkXCIgPT09IHByb21pc2Uuc3RhdHVzKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIHByb21pc2UudGhlbihcbiAgICAgICAgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgcHJvbWlzZS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICAgIHByb21pc2UudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgICAgIHByb21pc2Uuc3RhdHVzID0gXCJyZWplY3RlZFwiO1xuICAgICAgICAgIHByb21pc2UucmVhc29uID0gcmVhc29uO1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlnbm9yZVJlamVjdCgpIHt9XG4gICAgZnVuY3Rpb24gcHJlbG9hZE1vZHVsZShtZXRhZGF0YSkge1xuICAgICAgZm9yIChcbiAgICAgICAgdmFyIGNodW5rcyA9IG1ldGFkYXRhWzFdLCBwcm9taXNlcyA9IFtdLCBpID0gMDtcbiAgICAgICAgaSA8IGNodW5rcy5sZW5ndGg7XG5cbiAgICAgICkge1xuICAgICAgICB2YXIgY2h1bmtJZCA9IGNodW5rc1tpKytdO1xuICAgICAgICBjaHVua3NbaSsrXTtcbiAgICAgICAgdmFyIGVudHJ5ID0gY2h1bmtDYWNoZS5nZXQoY2h1bmtJZCk7XG4gICAgICAgIGlmICh2b2lkIDAgPT09IGVudHJ5KSB7XG4gICAgICAgICAgZW50cnkgPSBfX3dlYnBhY2tfY2h1bmtfbG9hZF9fKGNodW5rSWQpO1xuICAgICAgICAgIHByb21pc2VzLnB1c2goZW50cnkpO1xuICAgICAgICAgIHZhciByZXNvbHZlID0gY2h1bmtDYWNoZS5zZXQuYmluZChjaHVua0NhY2hlLCBjaHVua0lkLCBudWxsKTtcbiAgICAgICAgICBlbnRyeS50aGVuKHJlc29sdmUsIGlnbm9yZVJlamVjdCk7XG4gICAgICAgICAgY2h1bmtDYWNoZS5zZXQoY2h1bmtJZCwgZW50cnkpO1xuICAgICAgICB9IGVsc2UgbnVsbCAhPT0gZW50cnkgJiYgcHJvbWlzZXMucHVzaChlbnRyeSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gNCA9PT0gbWV0YWRhdGEubGVuZ3RoXG4gICAgICAgID8gMCA9PT0gcHJvbWlzZXMubGVuZ3RoXG4gICAgICAgICAgPyByZXF1aXJlQXN5bmNNb2R1bGUobWV0YWRhdGFbMF0pXG4gICAgICAgICAgOiBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXF1aXJlQXN5bmNNb2R1bGUobWV0YWRhdGFbMF0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgOiAwIDwgcHJvbWlzZXMubGVuZ3RoXG4gICAgICAgICAgPyBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgICAgICA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcXVpcmVNb2R1bGUobWV0YWRhdGEpIHtcbiAgICAgIHZhciBtb2R1bGVFeHBvcnRzID0gZ2xvYmFsVGhpcy5fX25leHRfcmVxdWlyZV9fKG1ldGFkYXRhWzBdKTtcbiAgICAgIGlmICg0ID09PSBtZXRhZGF0YS5sZW5ndGggJiYgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbW9kdWxlRXhwb3J0cy50aGVuKVxuICAgICAgICBpZiAoXCJmdWxmaWxsZWRcIiA9PT0gbW9kdWxlRXhwb3J0cy5zdGF0dXMpXG4gICAgICAgICAgbW9kdWxlRXhwb3J0cyA9IG1vZHVsZUV4cG9ydHMudmFsdWU7XG4gICAgICAgIGVsc2UgdGhyb3cgbW9kdWxlRXhwb3J0cy5yZWFzb247XG4gICAgICByZXR1cm4gXCIqXCIgPT09IG1ldGFkYXRhWzJdXG4gICAgICAgID8gbW9kdWxlRXhwb3J0c1xuICAgICAgICA6IFwiXCIgPT09IG1ldGFkYXRhWzJdXG4gICAgICAgICAgPyBtb2R1bGVFeHBvcnRzLl9fZXNNb2R1bGVcbiAgICAgICAgICAgID8gbW9kdWxlRXhwb3J0cy5kZWZhdWx0XG4gICAgICAgICAgICA6IG1vZHVsZUV4cG9ydHNcbiAgICAgICAgICA6IG1vZHVsZUV4cG9ydHNbbWV0YWRhdGFbMl1dO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVwYXJlRGVzdGluYXRpb25XaXRoQ2h1bmtzKFxuICAgICAgbW9kdWxlTG9hZGluZyxcbiAgICAgIGNodW5rcyxcbiAgICAgIG5vbmNlJGpzY29tcCQwXG4gICAgKSB7XG4gICAgICBpZiAobnVsbCAhPT0gbW9kdWxlTG9hZGluZylcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBjaHVua3MubGVuZ3RoOyBpICs9IDIpIHtcbiAgICAgICAgICB2YXIgbm9uY2UgPSBub25jZSRqc2NvbXAkMCxcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdCA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLmQsXG4gICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QkanNjb21wJDAgPSBKU0NvbXBpbGVyX3RlbXBfY29uc3QuWCxcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdCRqc2NvbXAkMSA9IG1vZHVsZUxvYWRpbmcucHJlZml4ICsgY2h1bmtzW2ldO1xuICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBtb2R1bGVMb2FkaW5nLmNyb3NzT3JpZ2luO1xuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9XG4gICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0XG4gICAgICAgICAgICAgID8gXCJ1c2UtY3JlZGVudGlhbHNcIiA9PT0gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0XG4gICAgICAgICAgICAgICAgPyBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHRcbiAgICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICAgICAgOiB2b2lkIDA7XG4gICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0JGpzY29tcCQwLmNhbGwoXG4gICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QsXG4gICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QkanNjb21wJDEsXG4gICAgICAgICAgICB7IGNyb3NzT3JpZ2luOiBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQsIG5vbmNlOiBub25jZSB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgICAgIGlmIChudWxsID09PSBtYXliZUl0ZXJhYmxlIHx8IFwib2JqZWN0XCIgIT09IHR5cGVvZiBtYXliZUl0ZXJhYmxlKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIG1heWJlSXRlcmFibGUgPVxuICAgICAgICAoTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSkgfHxcbiAgICAgICAgbWF5YmVJdGVyYWJsZVtcIkBAaXRlcmF0b3JcIl07XG4gICAgICByZXR1cm4gXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbWF5YmVJdGVyYWJsZSA/IG1heWJlSXRlcmFibGUgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc09iamVjdFByb3RvdHlwZShvYmplY3QpIHtcbiAgICAgIGlmICghb2JqZWN0KSByZXR1cm4gITE7XG4gICAgICB2YXIgT2JqZWN0UHJvdG90eXBlID0gT2JqZWN0LnByb3RvdHlwZTtcbiAgICAgIGlmIChvYmplY3QgPT09IE9iamVjdFByb3RvdHlwZSkgcmV0dXJuICEwO1xuICAgICAgaWYgKGdldFByb3RvdHlwZU9mKG9iamVjdCkpIHJldHVybiAhMTtcbiAgICAgIG9iamVjdCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdC5sZW5ndGg7IGkrKylcbiAgICAgICAgaWYgKCEob2JqZWN0W2ldIGluIE9iamVjdFByb3RvdHlwZSkpIHJldHVybiAhMTtcbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTaW1wbGVPYmplY3Qob2JqZWN0KSB7XG4gICAgICBpZiAoIWlzT2JqZWN0UHJvdG90eXBlKGdldFByb3RvdHlwZU9mKG9iamVjdCkpKSByZXR1cm4gITE7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgbmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpLCBpID0gMDtcbiAgICAgICAgaSA8IG5hbWVzLmxlbmd0aDtcbiAgICAgICAgaSsrXG4gICAgICApIHtcbiAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgbmFtZXNbaV0pO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWRlc2NyaXB0b3IgfHxcbiAgICAgICAgICAoIWRlc2NyaXB0b3IuZW51bWVyYWJsZSAmJlxuICAgICAgICAgICAgKChcImtleVwiICE9PSBuYW1lc1tpXSAmJiBcInJlZlwiICE9PSBuYW1lc1tpXSkgfHxcbiAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgZGVzY3JpcHRvci5nZXQpKVxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuICExO1xuICAgICAgfVxuICAgICAgcmV0dXJuICEwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBvYmplY3ROYW1lKG9iamVjdCkge1xuICAgICAgb2JqZWN0ID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCk7XG4gICAgICByZXR1cm4gb2JqZWN0LnNsaWNlKDgsIG9iamVjdC5sZW5ndGggLSAxKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVLZXlGb3JFcnJvck1lc3NhZ2Uoa2V5KSB7XG4gICAgICB2YXIgZW5jb2RlZEtleSA9IEpTT04uc3RyaW5naWZ5KGtleSk7XG4gICAgICByZXR1cm4gJ1wiJyArIGtleSArICdcIicgPT09IGVuY29kZWRLZXkgPyBrZXkgOiBlbmNvZGVkS2V5O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlKHZhbHVlKSB7XG4gICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgMTAgPj0gdmFsdWUubGVuZ3RoID8gdmFsdWUgOiB2YWx1ZS5zbGljZSgwLCAxMCkgKyBcIi4uLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgIGlmIChpc0FycmF5SW1wbCh2YWx1ZSkpIHJldHVybiBcIlsuLi5dXCI7XG4gICAgICAgICAgaWYgKG51bGwgIT09IHZhbHVlICYmIHZhbHVlLiQkdHlwZW9mID09PSBDTElFTlRfUkVGRVJFTkNFX1RBRylcbiAgICAgICAgICAgIHJldHVybiBcImNsaWVudFwiO1xuICAgICAgICAgIHZhbHVlID0gb2JqZWN0TmFtZSh2YWx1ZSk7XG4gICAgICAgICAgcmV0dXJuIFwiT2JqZWN0XCIgPT09IHZhbHVlID8gXCJ7Li4ufVwiIDogdmFsdWU7XG4gICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgIHJldHVybiB2YWx1ZS4kJHR5cGVvZiA9PT0gQ0xJRU5UX1JFRkVSRU5DRV9UQUdcbiAgICAgICAgICAgID8gXCJjbGllbnRcIlxuICAgICAgICAgICAgOiAodmFsdWUgPSB2YWx1ZS5kaXNwbGF5TmFtZSB8fCB2YWx1ZS5uYW1lKVxuICAgICAgICAgICAgICA/IFwiZnVuY3Rpb24gXCIgKyB2YWx1ZVxuICAgICAgICAgICAgICA6IFwiZnVuY3Rpb25cIjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVFbGVtZW50VHlwZSh0eXBlKSB7XG4gICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiB0eXBlO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZUxpc3RcIjtcbiAgICAgIH1cbiAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZS5yZW5kZXIpO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZS50eXBlKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgIHZhciBwYXlsb2FkID0gdHlwZS5fcGF5bG9hZDtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLl9pbml0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZShwYXlsb2FkKSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2Uob2JqZWN0T3JBcnJheSwgZXhwYW5kZWROYW1lKSB7XG4gICAgICB2YXIgb2JqS2luZCA9IG9iamVjdE5hbWUob2JqZWN0T3JBcnJheSk7XG4gICAgICBpZiAoXCJPYmplY3RcIiAhPT0gb2JqS2luZCAmJiBcIkFycmF5XCIgIT09IG9iaktpbmQpIHJldHVybiBvYmpLaW5kO1xuICAgICAgdmFyIHN0YXJ0ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IDA7XG4gICAgICBpZiAoaXNBcnJheUltcGwob2JqZWN0T3JBcnJheSkpXG4gICAgICAgIGlmIChqc3hDaGlsZHJlblBhcmVudHMuaGFzKG9iamVjdE9yQXJyYXkpKSB7XG4gICAgICAgICAgdmFyIHR5cGUgPSBqc3hDaGlsZHJlblBhcmVudHMuZ2V0KG9iamVjdE9yQXJyYXkpO1xuICAgICAgICAgIG9iaktpbmQgPSBcIjxcIiArIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZSkgKyBcIj5cIjtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVjdE9yQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IG9iamVjdE9yQXJyYXlbaV07XG4gICAgICAgICAgICB2YWx1ZSA9XG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiB2YWx1ZVxuICAgICAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgICAgICA6IFwib2JqZWN0XCIgPT09IHR5cGVvZiB2YWx1ZSAmJiBudWxsICE9PSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgPyBcIntcIiArIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHZhbHVlKSArIFwifVwiXG4gICAgICAgICAgICAgICAgICA6IFwie1wiICsgZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZSh2YWx1ZSkgKyBcIn1cIjtcbiAgICAgICAgICAgIFwiXCIgKyBpID09PSBleHBhbmRlZE5hbWVcbiAgICAgICAgICAgICAgPyAoKHN0YXJ0ID0gb2JqS2luZC5sZW5ndGgpLFxuICAgICAgICAgICAgICAgIChsZW5ndGggPSB2YWx1ZS5sZW5ndGgpLFxuICAgICAgICAgICAgICAgIChvYmpLaW5kICs9IHZhbHVlKSlcbiAgICAgICAgICAgICAgOiAob2JqS2luZCA9XG4gICAgICAgICAgICAgICAgICAxNSA+IHZhbHVlLmxlbmd0aCAmJiA0MCA+IG9iaktpbmQubGVuZ3RoICsgdmFsdWUubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgID8gb2JqS2luZCArIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogb2JqS2luZCArIFwiey4uLn1cIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9iaktpbmQgKz0gXCI8L1wiICsgZGVzY3JpYmVFbGVtZW50VHlwZSh0eXBlKSArIFwiPlwiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9iaktpbmQgPSBcIltcIjtcbiAgICAgICAgICBmb3IgKHR5cGUgPSAwOyB0eXBlIDwgb2JqZWN0T3JBcnJheS5sZW5ndGg7IHR5cGUrKylcbiAgICAgICAgICAgIDAgPCB0eXBlICYmIChvYmpLaW5kICs9IFwiLCBcIiksXG4gICAgICAgICAgICAgIChpID0gb2JqZWN0T3JBcnJheVt0eXBlXSksXG4gICAgICAgICAgICAgIChpID1cbiAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgaSAmJiBudWxsICE9PSBpXG4gICAgICAgICAgICAgICAgICA/IGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKGkpXG4gICAgICAgICAgICAgICAgICA6IGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UoaSkpLFxuICAgICAgICAgICAgICBcIlwiICsgdHlwZSA9PT0gZXhwYW5kZWROYW1lXG4gICAgICAgICAgICAgICAgPyAoKHN0YXJ0ID0gb2JqS2luZC5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgKGxlbmd0aCA9IGkubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgIChvYmpLaW5kICs9IGkpKVxuICAgICAgICAgICAgICAgIDogKG9iaktpbmQgPVxuICAgICAgICAgICAgICAgICAgICAxMCA+IGkubGVuZ3RoICYmIDQwID4gb2JqS2luZC5sZW5ndGggKyBpLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgID8gb2JqS2luZCArIGlcbiAgICAgICAgICAgICAgICAgICAgICA6IG9iaktpbmQgKyBcIi4uLlwiKTtcbiAgICAgICAgICBvYmpLaW5kICs9IFwiXVwiO1xuICAgICAgICB9XG4gICAgICBlbHNlIGlmIChvYmplY3RPckFycmF5LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpXG4gICAgICAgIG9iaktpbmQgPSBcIjxcIiArIGRlc2NyaWJlRWxlbWVudFR5cGUob2JqZWN0T3JBcnJheS50eXBlKSArIFwiLz5cIjtcbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAob2JqZWN0T3JBcnJheS4kJHR5cGVvZiA9PT0gQ0xJRU5UX1JFRkVSRU5DRV9UQUcpIHJldHVybiBcImNsaWVudFwiO1xuICAgICAgICBpZiAoanN4UHJvcHNQYXJlbnRzLmhhcyhvYmplY3RPckFycmF5KSkge1xuICAgICAgICAgIG9iaktpbmQgPSBqc3hQcm9wc1BhcmVudHMuZ2V0KG9iamVjdE9yQXJyYXkpO1xuICAgICAgICAgIG9iaktpbmQgPSBcIjxcIiArIChkZXNjcmliZUVsZW1lbnRUeXBlKG9iaktpbmQpIHx8IFwiLi4uXCIpO1xuICAgICAgICAgIHR5cGUgPSBPYmplY3Qua2V5cyhvYmplY3RPckFycmF5KTtcbiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdHlwZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgb2JqS2luZCArPSBcIiBcIjtcbiAgICAgICAgICAgIHZhbHVlID0gdHlwZVtpXTtcbiAgICAgICAgICAgIG9iaktpbmQgKz0gZGVzY3JpYmVLZXlGb3JFcnJvck1lc3NhZ2UodmFsdWUpICsgXCI9XCI7XG4gICAgICAgICAgICB2YXIgX3ZhbHVlMiA9IG9iamVjdE9yQXJyYXlbdmFsdWVdO1xuICAgICAgICAgICAgdmFyIF9zdWJzdHIyID1cbiAgICAgICAgICAgICAgdmFsdWUgPT09IGV4cGFuZGVkTmFtZSAmJlxuICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgX3ZhbHVlMiAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBfdmFsdWUyXG4gICAgICAgICAgICAgICAgPyBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShfdmFsdWUyKVxuICAgICAgICAgICAgICAgIDogZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZShfdmFsdWUyKTtcbiAgICAgICAgICAgIFwic3RyaW5nXCIgIT09IHR5cGVvZiBfdmFsdWUyICYmIChfc3Vic3RyMiA9IFwie1wiICsgX3N1YnN0cjIgKyBcIn1cIik7XG4gICAgICAgICAgICB2YWx1ZSA9PT0gZXhwYW5kZWROYW1lXG4gICAgICAgICAgICAgID8gKChzdGFydCA9IG9iaktpbmQubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAobGVuZ3RoID0gX3N1YnN0cjIubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAob2JqS2luZCArPSBfc3Vic3RyMikpXG4gICAgICAgICAgICAgIDogKG9iaktpbmQgPVxuICAgICAgICAgICAgICAgICAgMTAgPiBfc3Vic3RyMi5sZW5ndGggJiYgNDAgPiBvYmpLaW5kLmxlbmd0aCArIF9zdWJzdHIyLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA/IG9iaktpbmQgKyBfc3Vic3RyMlxuICAgICAgICAgICAgICAgICAgICA6IG9iaktpbmQgKyBcIi4uLlwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JqS2luZCArPSBcIj5cIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYmpLaW5kID0gXCJ7XCI7XG4gICAgICAgICAgdHlwZSA9IE9iamVjdC5rZXlzKG9iamVjdE9yQXJyYXkpO1xuICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0eXBlLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgMCA8IGkgJiYgKG9iaktpbmQgKz0gXCIsIFwiKSxcbiAgICAgICAgICAgICAgKHZhbHVlID0gdHlwZVtpXSksXG4gICAgICAgICAgICAgIChvYmpLaW5kICs9IGRlc2NyaWJlS2V5Rm9yRXJyb3JNZXNzYWdlKHZhbHVlKSArIFwiOiBcIiksXG4gICAgICAgICAgICAgIChfdmFsdWUyID0gb2JqZWN0T3JBcnJheVt2YWx1ZV0pLFxuICAgICAgICAgICAgICAoX3ZhbHVlMiA9XG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIF92YWx1ZTIgJiYgbnVsbCAhPT0gX3ZhbHVlMlxuICAgICAgICAgICAgICAgICAgPyBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShfdmFsdWUyKVxuICAgICAgICAgICAgICAgICAgOiBkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlKF92YWx1ZTIpKSxcbiAgICAgICAgICAgICAgdmFsdWUgPT09IGV4cGFuZGVkTmFtZVxuICAgICAgICAgICAgICAgID8gKChzdGFydCA9IG9iaktpbmQubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgIChsZW5ndGggPSBfdmFsdWUyLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAob2JqS2luZCArPSBfdmFsdWUyKSlcbiAgICAgICAgICAgICAgICA6IChvYmpLaW5kID1cbiAgICAgICAgICAgICAgICAgICAgMTAgPiBfdmFsdWUyLmxlbmd0aCAmJiA0MCA+IG9iaktpbmQubGVuZ3RoICsgX3ZhbHVlMi5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICA/IG9iaktpbmQgKyBfdmFsdWUyXG4gICAgICAgICAgICAgICAgICAgICAgOiBvYmpLaW5kICsgXCIuLi5cIik7XG4gICAgICAgICAgb2JqS2luZCArPSBcIn1cIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gZXhwYW5kZWROYW1lXG4gICAgICAgID8gb2JqS2luZFxuICAgICAgICA6IC0xIDwgc3RhcnQgJiYgMCA8IGxlbmd0aFxuICAgICAgICAgID8gKChvYmplY3RPckFycmF5ID0gXCIgXCIucmVwZWF0KHN0YXJ0KSArIFwiXlwiLnJlcGVhdChsZW5ndGgpKSxcbiAgICAgICAgICAgIFwiXFxuICBcIiArIG9iaktpbmQgKyBcIlxcbiAgXCIgKyBvYmplY3RPckFycmF5KVxuICAgICAgICAgIDogXCJcXG4gIFwiICsgb2JqS2luZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2VyaWFsaXplTnVtYmVyKG51bWJlcikge1xuICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShudW1iZXIpXG4gICAgICAgID8gMCA9PT0gbnVtYmVyICYmIC1JbmZpbml0eSA9PT0gMSAvIG51bWJlclxuICAgICAgICAgID8gXCIkLTBcIlxuICAgICAgICAgIDogbnVtYmVyXG4gICAgICAgIDogSW5maW5pdHkgPT09IG51bWJlclxuICAgICAgICAgID8gXCIkSW5maW5pdHlcIlxuICAgICAgICAgIDogLUluZmluaXR5ID09PSBudW1iZXJcbiAgICAgICAgICAgID8gXCIkLUluZmluaXR5XCJcbiAgICAgICAgICAgIDogXCIkTmFOXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZXBseShcbiAgICAgIHJvb3QsXG4gICAgICBmb3JtRmllbGRQcmVmaXgsXG4gICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzLFxuICAgICAgcmVzb2x2ZSxcbiAgICAgIHJlamVjdFxuICAgICkge1xuICAgICAgZnVuY3Rpb24gc2VyaWFsaXplVHlwZWRBcnJheSh0YWcsIHR5cGVkQXJyYXkpIHtcbiAgICAgICAgdHlwZWRBcnJheSA9IG5ldyBCbG9iKFtcbiAgICAgICAgICBuZXcgVWludDhBcnJheShcbiAgICAgICAgICAgIHR5cGVkQXJyYXkuYnVmZmVyLFxuICAgICAgICAgICAgdHlwZWRBcnJheS5ieXRlT2Zmc2V0LFxuICAgICAgICAgICAgdHlwZWRBcnJheS5ieXRlTGVuZ3RoXG4gICAgICAgICAgKVxuICAgICAgICBdKTtcbiAgICAgICAgdmFyIGJsb2JJZCA9IG5leHRQYXJ0SWQrKztcbiAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgYmxvYklkLCB0eXBlZEFycmF5KTtcbiAgICAgICAgcmV0dXJuIFwiJFwiICsgdGFnICsgYmxvYklkLnRvU3RyaW5nKDE2KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZUJpbmFyeVJlYWRlcihyZWFkZXIpIHtcbiAgICAgICAgZnVuY3Rpb24gcHJvZ3Jlc3MoZW50cnkpIHtcbiAgICAgICAgICBlbnRyeS5kb25lXG4gICAgICAgICAgICA/ICgoZW50cnkgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBlbnRyeSwgbmV3IEJsb2IoYnVmZmVyKSksXG4gICAgICAgICAgICAgIGRhdGEuYXBwZW5kKFxuICAgICAgICAgICAgICAgIGZvcm1GaWVsZFByZWZpeCArIHN0cmVhbUlkLFxuICAgICAgICAgICAgICAgICdcIiRvJyArIGVudHJ5LnRvU3RyaW5nKDE2KSArICdcIidcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgZGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgc3RyZWFtSWQsIFwiQ1wiKSxcbiAgICAgICAgICAgICAgcGVuZGluZ1BhcnRzLS0sXG4gICAgICAgICAgICAgIDAgPT09IHBlbmRpbmdQYXJ0cyAmJiByZXNvbHZlKGRhdGEpKVxuICAgICAgICAgICAgOiAoYnVmZmVyLnB1c2goZW50cnkudmFsdWUpLFxuICAgICAgICAgICAgICByZWFkZXIucmVhZChuZXcgVWludDhBcnJheSgxMDI0KSkudGhlbihwcm9ncmVzcywgcmVqZWN0KSk7XG4gICAgICAgIH1cbiAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpO1xuICAgICAgICB2YXIgZGF0YSA9IGZvcm1EYXRhO1xuICAgICAgICBwZW5kaW5nUGFydHMrKztcbiAgICAgICAgdmFyIHN0cmVhbUlkID0gbmV4dFBhcnRJZCsrLFxuICAgICAgICAgIGJ1ZmZlciA9IFtdO1xuICAgICAgICByZWFkZXIucmVhZChuZXcgVWludDhBcnJheSgxMDI0KSkudGhlbihwcm9ncmVzcywgcmVqZWN0KTtcbiAgICAgICAgcmV0dXJuIFwiJHJcIiArIHN0cmVhbUlkLnRvU3RyaW5nKDE2KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZVJlYWRlcihyZWFkZXIpIHtcbiAgICAgICAgZnVuY3Rpb24gcHJvZ3Jlc3MoZW50cnkpIHtcbiAgICAgICAgICBpZiAoZW50cnkuZG9uZSlcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHN0cmVhbUlkLCBcIkNcIiksXG4gICAgICAgICAgICAgIHBlbmRpbmdQYXJ0cy0tLFxuICAgICAgICAgICAgICAwID09PSBwZW5kaW5nUGFydHMgJiYgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB2YXIgcGFydEpTT04gPSBKU09OLnN0cmluZ2lmeShlbnRyeS52YWx1ZSwgcmVzb2x2ZVRvSlNPTik7XG4gICAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHN0cmVhbUlkLCBwYXJ0SlNPTik7XG4gICAgICAgICAgICAgIHJlYWRlci5yZWFkKCkudGhlbihwcm9ncmVzcywgcmVqZWN0KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKTtcbiAgICAgICAgdmFyIGRhdGEgPSBmb3JtRGF0YTtcbiAgICAgICAgcGVuZGluZ1BhcnRzKys7XG4gICAgICAgIHZhciBzdHJlYW1JZCA9IG5leHRQYXJ0SWQrKztcbiAgICAgICAgcmVhZGVyLnJlYWQoKS50aGVuKHByb2dyZXNzLCByZWplY3QpO1xuICAgICAgICByZXR1cm4gXCIkUlwiICsgc3RyZWFtSWQudG9TdHJpbmcoMTYpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc2VyaWFsaXplUmVhZGFibGVTdHJlYW0oc3RyZWFtKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIGJpbmFyeVJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoeyBtb2RlOiBcImJ5b2JcIiB9KTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIHJldHVybiBzZXJpYWxpemVSZWFkZXIoc3RyZWFtLmdldFJlYWRlcigpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VyaWFsaXplQmluYXJ5UmVhZGVyKGJpbmFyeVJlYWRlcik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzZXJpYWxpemVBc3luY0l0ZXJhYmxlKGl0ZXJhYmxlLCBpdGVyYXRvcikge1xuICAgICAgICBmdW5jdGlvbiBwcm9ncmVzcyhlbnRyeSkge1xuICAgICAgICAgIGlmIChlbnRyeS5kb25lKSB7XG4gICAgICAgICAgICBpZiAodm9pZCAwID09PSBlbnRyeS52YWx1ZSlcbiAgICAgICAgICAgICAgZGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgc3RyZWFtSWQsIFwiQ1wiKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB2YXIgcGFydEpTT04gPSBKU09OLnN0cmluZ2lmeShlbnRyeS52YWx1ZSwgcmVzb2x2ZVRvSlNPTik7XG4gICAgICAgICAgICAgICAgZGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgc3RyZWFtSWQsIFwiQ1wiICsgcGFydEpTT04pO1xuICAgICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KHgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGVuZGluZ1BhcnRzLS07XG4gICAgICAgICAgICAwID09PSBwZW5kaW5nUGFydHMgJiYgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHZhciBfcGFydEpTT04gPSBKU09OLnN0cmluZ2lmeShlbnRyeS52YWx1ZSwgcmVzb2x2ZVRvSlNPTik7XG4gICAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHN0cmVhbUlkLCBfcGFydEpTT04pO1xuICAgICAgICAgICAgICBpdGVyYXRvci5uZXh0KCkudGhlbihwcm9ncmVzcywgcmVqZWN0KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgkMCkge1xuICAgICAgICAgICAgICByZWplY3QoeCQwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSk7XG4gICAgICAgIHZhciBkYXRhID0gZm9ybURhdGE7XG4gICAgICAgIHBlbmRpbmdQYXJ0cysrO1xuICAgICAgICB2YXIgc3RyZWFtSWQgPSBuZXh0UGFydElkKys7XG4gICAgICAgIGl0ZXJhYmxlID0gaXRlcmFibGUgPT09IGl0ZXJhdG9yO1xuICAgICAgICBpdGVyYXRvci5uZXh0KCkudGhlbihwcm9ncmVzcywgcmVqZWN0KTtcbiAgICAgICAgcmV0dXJuIFwiJFwiICsgKGl0ZXJhYmxlID8gXCJ4XCIgOiBcIlhcIikgKyBzdHJlYW1JZC50b1N0cmluZygxNik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiByZXNvbHZlVG9KU09OKGtleSwgdmFsdWUpIHtcbiAgICAgICAgdmFyIG9yaWdpbmFsVmFsdWUgPSB0aGlzW2tleV07XG4gICAgICAgIFwib2JqZWN0XCIgIT09IHR5cGVvZiBvcmlnaW5hbFZhbHVlIHx8XG4gICAgICAgICAgb3JpZ2luYWxWYWx1ZSA9PT0gdmFsdWUgfHxcbiAgICAgICAgICBvcmlnaW5hbFZhbHVlIGluc3RhbmNlb2YgRGF0ZSB8fFxuICAgICAgICAgIChcIk9iamVjdFwiICE9PSBvYmplY3ROYW1lKG9yaWdpbmFsVmFsdWUpXG4gICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJPbmx5IHBsYWluIG9iamVjdHMgY2FuIGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudC4gJXMgb2JqZWN0cyBhcmUgbm90IHN1cHBvcnRlZC4lc1wiLFxuICAgICAgICAgICAgICAgIG9iamVjdE5hbWUob3JpZ2luYWxWYWx1ZSksXG4gICAgICAgICAgICAgICAgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodGhpcywga2V5KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJPbmx5IHBsYWluIG9iamVjdHMgY2FuIGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudC4gT2JqZWN0cyB3aXRoIHRvSlNPTiBtZXRob2RzIGFyZSBub3Qgc3VwcG9ydGVkLiBDb252ZXJ0IGl0IG1hbnVhbGx5IHRvIGEgc2ltcGxlIHZhbHVlIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHByb3BzLiVzXCIsXG4gICAgICAgICAgICAgICAgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodGhpcywga2V5KVxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgaWYgKG51bGwgPT09IHZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIHN3aXRjaCAodmFsdWUuJCR0eXBlb2YpIHtcbiAgICAgICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgICAgICBpZiAodm9pZCAwICE9PSB0ZW1wb3JhcnlSZWZlcmVuY2VzICYmIC0xID09PSBrZXkuaW5kZXhPZihcIjpcIikpIHtcbiAgICAgICAgICAgICAgICB2YXIgcGFyZW50UmVmZXJlbmNlID0gd3JpdHRlbk9iamVjdHMuZ2V0KHRoaXMpO1xuICAgICAgICAgICAgICAgIGlmICh2b2lkIDAgIT09IHBhcmVudFJlZmVyZW5jZSlcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXMuc2V0KHBhcmVudFJlZmVyZW5jZSArIFwiOlwiICsga2V5LCB2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgIFwiJFRcIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICBcIlJlYWN0IEVsZW1lbnQgY2Fubm90IGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudCB3aXRob3V0IGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSBzZXQuIFBhc3MgYSBUZW1wb3JhcnlSZWZlcmVuY2VTZXQgdG8gdGhlIG9wdGlvbnMuXCIgK1xuICAgICAgICAgICAgICAgICAgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodGhpcywga2V5KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIG9yaWdpbmFsVmFsdWUgPSB2YWx1ZS5fcGF5bG9hZDtcbiAgICAgICAgICAgICAgdmFyIGluaXQgPSB2YWx1ZS5faW5pdDtcbiAgICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpO1xuICAgICAgICAgICAgICBwZW5kaW5nUGFydHMrKztcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXJlbnRSZWZlcmVuY2UgPSBpbml0KG9yaWdpbmFsVmFsdWUpO1xuICAgICAgICAgICAgICAgIHZhciBsYXp5SWQgPSBuZXh0UGFydElkKyssXG4gICAgICAgICAgICAgICAgICBwYXJ0SlNPTiA9IHNlcmlhbGl6ZU1vZGVsKHBhcmVudFJlZmVyZW5jZSwgbGF6eUlkKTtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgbGF6eUlkLCBwYXJ0SlNPTik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiJFwiICsgbGF6eUlkLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiB4ICYmXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSB4ICYmXG4gICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB4LnRoZW5cbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIHBlbmRpbmdQYXJ0cysrO1xuICAgICAgICAgICAgICAgICAgdmFyIF9sYXp5SWQgPSBuZXh0UGFydElkKys7XG4gICAgICAgICAgICAgICAgICBwYXJlbnRSZWZlcmVuY2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFyIF9wYXJ0SlNPTjIgPSBzZXJpYWxpemVNb2RlbCh2YWx1ZSwgX2xhenlJZCksXG4gICAgICAgICAgICAgICAgICAgICAgICBfZGF0YSA9IGZvcm1EYXRhO1xuICAgICAgICAgICAgICAgICAgICAgIF9kYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBfbGF6eUlkLCBfcGFydEpTT04yKTtcbiAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nUGFydHMtLTtcbiAgICAgICAgICAgICAgICAgICAgICAwID09PSBwZW5kaW5nUGFydHMgJiYgcmVzb2x2ZShfZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHJlYXNvbikge1xuICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZWFzb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgeC50aGVuKHBhcmVudFJlZmVyZW5jZSwgcGFyZW50UmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBcIiRcIiArIF9sYXp5SWQudG9TdHJpbmcoMTYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZWplY3QoeCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgcGVuZGluZ1BhcnRzLS07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHZhbHVlLnRoZW4pIHtcbiAgICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKTtcbiAgICAgICAgICAgIHBlbmRpbmdQYXJ0cysrO1xuICAgICAgICAgICAgdmFyIHByb21pc2VJZCA9IG5leHRQYXJ0SWQrKztcbiAgICAgICAgICAgIHZhbHVlLnRoZW4oZnVuY3Rpb24gKHBhcnRWYWx1ZSkge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHZhciBfcGFydEpTT04zID0gc2VyaWFsaXplTW9kZWwocGFydFZhbHVlLCBwcm9taXNlSWQpO1xuICAgICAgICAgICAgICAgIHBhcnRWYWx1ZSA9IGZvcm1EYXRhO1xuICAgICAgICAgICAgICAgIHBhcnRWYWx1ZS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgcHJvbWlzZUlkLCBfcGFydEpTT04zKTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nUGFydHMtLTtcbiAgICAgICAgICAgICAgICAwID09PSBwZW5kaW5nUGFydHMgJiYgcmVzb2x2ZShwYXJ0VmFsdWUpO1xuICAgICAgICAgICAgICB9IGNhdGNoIChyZWFzb24pIHtcbiAgICAgICAgICAgICAgICByZWplY3QocmVhc29uKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgcmVqZWN0KTtcbiAgICAgICAgICAgIHJldHVybiBcIiRAXCIgKyBwcm9taXNlSWQudG9TdHJpbmcoMTYpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwYXJlbnRSZWZlcmVuY2UgPSB3cml0dGVuT2JqZWN0cy5nZXQodmFsdWUpO1xuICAgICAgICAgIGlmICh2b2lkIDAgIT09IHBhcmVudFJlZmVyZW5jZSlcbiAgICAgICAgICAgIGlmIChtb2RlbFJvb3QgPT09IHZhbHVlKSBtb2RlbFJvb3QgPSBudWxsO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gcGFyZW50UmVmZXJlbmNlO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIC0xID09PSBrZXkuaW5kZXhPZihcIjpcIikgJiZcbiAgICAgICAgICAgICAgKChwYXJlbnRSZWZlcmVuY2UgPSB3cml0dGVuT2JqZWN0cy5nZXQodGhpcykpLFxuICAgICAgICAgICAgICB2b2lkIDAgIT09IHBhcmVudFJlZmVyZW5jZSAmJlxuICAgICAgICAgICAgICAgICgocGFyZW50UmVmZXJlbmNlID0gcGFyZW50UmVmZXJlbmNlICsgXCI6XCIgKyBrZXkpLFxuICAgICAgICAgICAgICAgIHdyaXR0ZW5PYmplY3RzLnNldCh2YWx1ZSwgcGFyZW50UmVmZXJlbmNlKSxcbiAgICAgICAgICAgICAgICB2b2lkIDAgIT09IHRlbXBvcmFyeVJlZmVyZW5jZXMgJiZcbiAgICAgICAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXMuc2V0KHBhcmVudFJlZmVyZW5jZSwgdmFsdWUpKSk7XG4gICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKHZhbHVlKSkgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSk7XG4gICAgICAgICAgICB2YXIgX2RhdGEzID0gZm9ybURhdGE7XG4gICAgICAgICAgICBrZXkgPSBuZXh0UGFydElkKys7XG4gICAgICAgICAgICB2YXIgcHJlZml4ID0gZm9ybUZpZWxkUHJlZml4ICsga2V5ICsgXCJfXCI7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uIChvcmlnaW5hbFZhbHVlLCBvcmlnaW5hbEtleSkge1xuICAgICAgICAgICAgICBfZGF0YTMuYXBwZW5kKHByZWZpeCArIG9yaWdpbmFsS2V5LCBvcmlnaW5hbFZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIFwiJEtcIiArIGtleS50b1N0cmluZygxNik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1hcClcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChrZXkgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICAocGFyZW50UmVmZXJlbmNlID0gc2VyaWFsaXplTW9kZWwoQXJyYXkuZnJvbSh2YWx1ZSksIGtleSkpLFxuICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSksXG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBrZXksIHBhcmVudFJlZmVyZW5jZSksXG4gICAgICAgICAgICAgIFwiJFFcIiArIGtleS50b1N0cmluZygxNilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgU2V0KVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGtleSA9IG5leHRQYXJ0SWQrKyksXG4gICAgICAgICAgICAgIChwYXJlbnRSZWZlcmVuY2UgPSBzZXJpYWxpemVNb2RlbChBcnJheS5mcm9tKHZhbHVlKSwga2V5KSksXG4gICAgICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKSxcbiAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIGtleSwgcGFyZW50UmVmZXJlbmNlKSxcbiAgICAgICAgICAgICAgXCIkV1wiICsga2V5LnRvU3RyaW5nKDE2KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChrZXkgPSBuZXcgQmxvYihbdmFsdWVdKSksXG4gICAgICAgICAgICAgIChwYXJlbnRSZWZlcmVuY2UgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSksXG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBwYXJlbnRSZWZlcmVuY2UsIGtleSksXG4gICAgICAgICAgICAgIFwiJEFcIiArIHBhcmVudFJlZmVyZW5jZS50b1N0cmluZygxNilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgSW50OEFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJPXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJvXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwiVVwiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgSW50MTZBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwiU1wiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDE2QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcInNcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEludDMyQXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIkxcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQzMkFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJsXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIkdcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwiZ1wiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwiTVwiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIm1cIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGFWaWV3KSByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIlZcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBCbG9iICYmIHZhbHVlIGluc3RhbmNlb2YgQmxvYilcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKSxcbiAgICAgICAgICAgICAgKGtleSA9IG5leHRQYXJ0SWQrKyksXG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBrZXksIHZhbHVlKSxcbiAgICAgICAgICAgICAgXCIkQlwiICsga2V5LnRvU3RyaW5nKDE2KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoKHBhcmVudFJlZmVyZW5jZSA9IGdldEl0ZXJhdG9yRm4odmFsdWUpKSlcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChwYXJlbnRSZWZlcmVuY2UgPSBwYXJlbnRSZWZlcmVuY2UuY2FsbCh2YWx1ZSkpLFxuICAgICAgICAgICAgICBwYXJlbnRSZWZlcmVuY2UgPT09IHZhbHVlXG4gICAgICAgICAgICAgICAgPyAoKGtleSA9IG5leHRQYXJ0SWQrKyksXG4gICAgICAgICAgICAgICAgICAocGFyZW50UmVmZXJlbmNlID0gc2VyaWFsaXplTW9kZWwoXG4gICAgICAgICAgICAgICAgICAgIEFycmF5LmZyb20ocGFyZW50UmVmZXJlbmNlKSxcbiAgICAgICAgICAgICAgICAgICAga2V5XG4gICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKSxcbiAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBrZXksIHBhcmVudFJlZmVyZW5jZSksXG4gICAgICAgICAgICAgICAgICBcIiRpXCIgKyBrZXkudG9TdHJpbmcoMTYpKVxuICAgICAgICAgICAgICAgIDogQXJyYXkuZnJvbShwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFJlYWRhYmxlU3RyZWFtICYmXG4gICAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVJlYWRhYmxlU3RyZWFtKHZhbHVlKTtcbiAgICAgICAgICBwYXJlbnRSZWZlcmVuY2UgPSB2YWx1ZVtBU1lOQ19JVEVSQVRPUl07XG4gICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHBhcmVudFJlZmVyZW5jZSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVBc3luY0l0ZXJhYmxlKHZhbHVlLCBwYXJlbnRSZWZlcmVuY2UuY2FsbCh2YWx1ZSkpO1xuICAgICAgICAgIHBhcmVudFJlZmVyZW5jZSA9IGdldFByb3RvdHlwZU9mKHZhbHVlKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBwYXJlbnRSZWZlcmVuY2UgIT09IE9iamVjdFByb3RvdHlwZSAmJlxuICAgICAgICAgICAgKG51bGwgPT09IHBhcmVudFJlZmVyZW5jZSB8fFxuICAgICAgICAgICAgICBudWxsICE9PSBnZXRQcm90b3R5cGVPZihwYXJlbnRSZWZlcmVuY2UpKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgaWYgKHZvaWQgMCA9PT0gdGVtcG9yYXJ5UmVmZXJlbmNlcylcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJPbmx5IHBsYWluIG9iamVjdHMsIGFuZCBhIGZldyBidWlsdC1pbnMsIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucy4gQ2xhc3NlcyBvciBudWxsIHByb3RvdHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQuXCIgK1xuICAgICAgICAgICAgICAgICAgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodGhpcywga2V5KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIFwiJFRcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRVxuICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiUmVhY3QgQ29udGV4dCBQcm92aWRlcnMgY2Fubm90IGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudC4lc1wiLFxuICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBcIk9iamVjdFwiICE9PSBvYmplY3ROYW1lKHZhbHVlKVxuICAgICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIk9ubHkgcGxhaW4gb2JqZWN0cyBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMgZnJvbSB0aGUgQ2xpZW50LiAlcyBvYmplY3RzIGFyZSBub3Qgc3VwcG9ydGVkLiVzXCIsXG4gICAgICAgICAgICAgICAgICBvYmplY3ROYW1lKHZhbHVlKSxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogaXNTaW1wbGVPYmplY3QodmFsdWUpXG4gICAgICAgICAgICAgICAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzICYmXG4gICAgICAgICAgICAgICAgICAoKHBhcmVudFJlZmVyZW5jZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModmFsdWUpKSxcbiAgICAgICAgICAgICAgICAgIDAgPCBwYXJlbnRSZWZlcmVuY2UubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJPbmx5IHBsYWluIG9iamVjdHMgY2FuIGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudC4gT2JqZWN0cyB3aXRoIHN5bWJvbCBwcm9wZXJ0aWVzIGxpa2UgJXMgYXJlIG5vdCBzdXBwb3J0ZWQuJXNcIixcbiAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRSZWZlcmVuY2VbMF0uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodGhpcywga2V5KVxuICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJPbmx5IHBsYWluIG9iamVjdHMgY2FuIGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudC4gQ2xhc3NlcyBvciBvdGhlciBvYmplY3RzIHdpdGggbWV0aG9kcyBhcmUgbm90IHN1cHBvcnRlZC4lc1wiLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgaWYgKFwiWlwiID09PSB2YWx1ZVt2YWx1ZS5sZW5ndGggLSAxXSAmJiB0aGlzW2tleV0gaW5zdGFuY2VvZiBEYXRlKVxuICAgICAgICAgICAgcmV0dXJuIFwiJERcIiArIHZhbHVlO1xuICAgICAgICAgIGtleSA9IFwiJFwiID09PSB2YWx1ZVswXSA/IFwiJFwiICsgdmFsdWUgOiB2YWx1ZTtcbiAgICAgICAgICByZXR1cm4ga2V5O1xuICAgICAgICB9XG4gICAgICAgIGlmIChcImJvb2xlYW5cIiA9PT0gdHlwZW9mIHZhbHVlKSByZXR1cm4gdmFsdWU7XG4gICAgICAgIGlmIChcIm51bWJlclwiID09PSB0eXBlb2YgdmFsdWUpIHJldHVybiBzZXJpYWxpemVOdW1iZXIodmFsdWUpO1xuICAgICAgICBpZiAoXCJ1bmRlZmluZWRcIiA9PT0gdHlwZW9mIHZhbHVlKSByZXR1cm4gXCIkdW5kZWZpbmVkXCI7XG4gICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIHBhcmVudFJlZmVyZW5jZSA9IGtub3duU2VydmVyUmVmZXJlbmNlcy5nZXQodmFsdWUpO1xuICAgICAgICAgIGlmICh2b2lkIDAgIT09IHBhcmVudFJlZmVyZW5jZSlcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChrZXkgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICB7IGlkOiBwYXJlbnRSZWZlcmVuY2UuaWQsIGJvdW5kOiBwYXJlbnRSZWZlcmVuY2UuYm91bmQgfSxcbiAgICAgICAgICAgICAgICByZXNvbHZlVG9KU09OXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSksXG4gICAgICAgICAgICAgIChwYXJlbnRSZWZlcmVuY2UgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICBmb3JtRGF0YS5zZXQoZm9ybUZpZWxkUHJlZml4ICsgcGFyZW50UmVmZXJlbmNlLCBrZXkpLFxuICAgICAgICAgICAgICBcIiRGXCIgKyBwYXJlbnRSZWZlcmVuY2UudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHZvaWQgMCAhPT0gdGVtcG9yYXJ5UmVmZXJlbmNlcyAmJlxuICAgICAgICAgICAgLTEgPT09IGtleS5pbmRleE9mKFwiOlwiKSAmJlxuICAgICAgICAgICAgKChwYXJlbnRSZWZlcmVuY2UgPSB3cml0dGVuT2JqZWN0cy5nZXQodGhpcykpLFxuICAgICAgICAgICAgdm9pZCAwICE9PSBwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcy5zZXQocGFyZW50UmVmZXJlbmNlICsgXCI6XCIgKyBrZXksIHZhbHVlKSwgXCIkVFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJDbGllbnQgRnVuY3Rpb25zIGNhbm5vdCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gU2VydmVyIEZ1bmN0aW9ucy4gT25seSBGdW5jdGlvbnMgcGFzc2VkIGZyb20gdGhlIFNlcnZlciBjYW4gYmUgcGFzc2VkIGJhY2sgYWdhaW4uXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcInN5bWJvbFwiID09PSB0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB2b2lkIDAgIT09IHRlbXBvcmFyeVJlZmVyZW5jZXMgJiZcbiAgICAgICAgICAgIC0xID09PSBrZXkuaW5kZXhPZihcIjpcIikgJiZcbiAgICAgICAgICAgICgocGFyZW50UmVmZXJlbmNlID0gd3JpdHRlbk9iamVjdHMuZ2V0KHRoaXMpKSxcbiAgICAgICAgICAgIHZvaWQgMCAhPT0gcGFyZW50UmVmZXJlbmNlKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXMuc2V0KHBhcmVudFJlZmVyZW5jZSArIFwiOlwiICsga2V5LCB2YWx1ZSksIFwiJFRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiU3ltYm9scyBjYW5ub3QgYmUgcGFzc2VkIHRvIGEgU2VydmVyIEZ1bmN0aW9uIHdpdGhvdXQgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlIHNldC4gUGFzcyBhIFRlbXBvcmFyeVJlZmVyZW5jZVNldCB0byB0aGUgb3B0aW9ucy5cIiArXG4gICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcImJpZ2ludFwiID09PSB0eXBlb2YgdmFsdWUpIHJldHVybiBcIiRuXCIgKyB2YWx1ZS50b1N0cmluZygxMCk7XG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiVHlwZSBcIiArXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUgK1xuICAgICAgICAgICAgXCIgaXMgbm90IHN1cHBvcnRlZCBhcyBhbiBhcmd1bWVudCB0byBhIFNlcnZlciBGdW5jdGlvbi5cIlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc2VyaWFsaXplTW9kZWwobW9kZWwsIGlkKSB7XG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBtb2RlbCAmJlxuICAgICAgICAgIG51bGwgIT09IG1vZGVsICYmXG4gICAgICAgICAgKChpZCA9IFwiJFwiICsgaWQudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgICB3cml0dGVuT2JqZWN0cy5zZXQobW9kZWwsIGlkKSxcbiAgICAgICAgICB2b2lkIDAgIT09IHRlbXBvcmFyeVJlZmVyZW5jZXMgJiYgdGVtcG9yYXJ5UmVmZXJlbmNlcy5zZXQoaWQsIG1vZGVsKSk7XG4gICAgICAgIG1vZGVsUm9vdCA9IG1vZGVsO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobW9kZWwsIHJlc29sdmVUb0pTT04pO1xuICAgICAgfVxuICAgICAgdmFyIG5leHRQYXJ0SWQgPSAxLFxuICAgICAgICBwZW5kaW5nUGFydHMgPSAwLFxuICAgICAgICBmb3JtRGF0YSA9IG51bGwsXG4gICAgICAgIHdyaXR0ZW5PYmplY3RzID0gbmV3IFdlYWtNYXAoKSxcbiAgICAgICAgbW9kZWxSb290ID0gcm9vdCxcbiAgICAgICAganNvbiA9IHNlcmlhbGl6ZU1vZGVsKHJvb3QsIDApO1xuICAgICAgbnVsbCA9PT0gZm9ybURhdGFcbiAgICAgICAgPyByZXNvbHZlKGpzb24pXG4gICAgICAgIDogKGZvcm1EYXRhLnNldChmb3JtRmllbGRQcmVmaXggKyBcIjBcIiwganNvbiksXG4gICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUoZm9ybURhdGEpKTtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIDAgPCBwZW5kaW5nUGFydHMgJiZcbiAgICAgICAgICAoKHBlbmRpbmdQYXJ0cyA9IDApLFxuICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhID8gcmVzb2x2ZShqc29uKSA6IHJlc29sdmUoZm9ybURhdGEpKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVuY29kZUZvcm1EYXRhKHJlZmVyZW5jZSkge1xuICAgICAgdmFyIHJlc29sdmUsXG4gICAgICAgIHJlamVjdCxcbiAgICAgICAgdGhlbmFibGUgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzLCByZWopIHtcbiAgICAgICAgICByZXNvbHZlID0gcmVzO1xuICAgICAgICAgIHJlamVjdCA9IHJlajtcbiAgICAgICAgfSk7XG4gICAgICBwcm9jZXNzUmVwbHkoXG4gICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgXCJcIixcbiAgICAgICAgdm9pZCAwLFxuICAgICAgICBmdW5jdGlvbiAoYm9keSkge1xuICAgICAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgYm9keSkge1xuICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKFwiMFwiLCBib2R5KTtcbiAgICAgICAgICAgIGJvZHkgPSBkYXRhO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGVuYWJsZS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICAgIHRoZW5hYmxlLnZhbHVlID0gYm9keTtcbiAgICAgICAgICByZXNvbHZlKGJvZHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIHRoZW5hYmxlLnN0YXR1cyA9IFwicmVqZWN0ZWRcIjtcbiAgICAgICAgICB0aGVuYWJsZS5yZWFzb24gPSBlO1xuICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiB0aGVuYWJsZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVmYXVsdEVuY29kZUZvcm1BY3Rpb24oaWRlbnRpZmllclByZWZpeCkge1xuICAgICAgdmFyIHJlZmVyZW5jZUNsb3N1cmUgPSBrbm93blNlcnZlclJlZmVyZW5jZXMuZ2V0KHRoaXMpO1xuICAgICAgaWYgKCFyZWZlcmVuY2VDbG9zdXJlKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIlRyaWVkIHRvIGVuY29kZSBhIFNlcnZlciBBY3Rpb24gZnJvbSBhIGRpZmZlcmVudCBpbnN0YW5jZSB0aGFuIHRoZSBlbmNvZGVyIGlzIGZyb20uIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgKTtcbiAgICAgIHZhciBkYXRhID0gbnVsbDtcbiAgICAgIGlmIChudWxsICE9PSByZWZlcmVuY2VDbG9zdXJlLmJvdW5kKSB7XG4gICAgICAgIGRhdGEgPSBib3VuZENhY2hlLmdldChyZWZlcmVuY2VDbG9zdXJlKTtcbiAgICAgICAgZGF0YSB8fFxuICAgICAgICAgICgoZGF0YSA9IGVuY29kZUZvcm1EYXRhKHtcbiAgICAgICAgICAgIGlkOiByZWZlcmVuY2VDbG9zdXJlLmlkLFxuICAgICAgICAgICAgYm91bmQ6IHJlZmVyZW5jZUNsb3N1cmUuYm91bmRcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgYm91bmRDYWNoZS5zZXQocmVmZXJlbmNlQ2xvc3VyZSwgZGF0YSkpO1xuICAgICAgICBpZiAoXCJyZWplY3RlZFwiID09PSBkYXRhLnN0YXR1cykgdGhyb3cgZGF0YS5yZWFzb247XG4gICAgICAgIGlmIChcImZ1bGZpbGxlZFwiICE9PSBkYXRhLnN0YXR1cykgdGhyb3cgZGF0YTtcbiAgICAgICAgcmVmZXJlbmNlQ2xvc3VyZSA9IGRhdGEudmFsdWU7XG4gICAgICAgIHZhciBwcmVmaXhlZERhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgcmVmZXJlbmNlQ2xvc3VyZS5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSwga2V5KSB7XG4gICAgICAgICAgcHJlZml4ZWREYXRhLmFwcGVuZChcIiRBQ1RJT05fXCIgKyBpZGVudGlmaWVyUHJlZml4ICsgXCI6XCIgKyBrZXksIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGRhdGEgPSBwcmVmaXhlZERhdGE7XG4gICAgICAgIHJlZmVyZW5jZUNsb3N1cmUgPSBcIiRBQ1RJT05fUkVGX1wiICsgaWRlbnRpZmllclByZWZpeDtcbiAgICAgIH0gZWxzZSByZWZlcmVuY2VDbG9zdXJlID0gXCIkQUNUSU9OX0lEX1wiICsgcmVmZXJlbmNlQ2xvc3VyZS5pZDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHJlZmVyZW5jZUNsb3N1cmUsXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgIGVuY1R5cGU6IFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiLFxuICAgICAgICBkYXRhOiBkYXRhXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1NpZ25hdHVyZUVxdWFsKHJlZmVyZW5jZUlkLCBudW1iZXJPZkJvdW5kQXJncykge1xuICAgICAgdmFyIHJlZmVyZW5jZUNsb3N1cmUgPSBrbm93blNlcnZlclJlZmVyZW5jZXMuZ2V0KHRoaXMpO1xuICAgICAgaWYgKCFyZWZlcmVuY2VDbG9zdXJlKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIlRyaWVkIHRvIGVuY29kZSBhIFNlcnZlciBBY3Rpb24gZnJvbSBhIGRpZmZlcmVudCBpbnN0YW5jZSB0aGFuIHRoZSBlbmNvZGVyIGlzIGZyb20uIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgKTtcbiAgICAgIGlmIChyZWZlcmVuY2VDbG9zdXJlLmlkICE9PSByZWZlcmVuY2VJZCkgcmV0dXJuICExO1xuICAgICAgdmFyIGJvdW5kUHJvbWlzZSA9IHJlZmVyZW5jZUNsb3N1cmUuYm91bmQ7XG4gICAgICBpZiAobnVsbCA9PT0gYm91bmRQcm9taXNlKSByZXR1cm4gMCA9PT0gbnVtYmVyT2ZCb3VuZEFyZ3M7XG4gICAgICBzd2l0Y2ggKGJvdW5kUHJvbWlzZS5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgIHJldHVybiBib3VuZFByb21pc2UudmFsdWUubGVuZ3RoID09PSBudW1iZXJPZkJvdW5kQXJncztcbiAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgICB0aHJvdyBib3VuZFByb21pc2U7XG4gICAgICAgIGNhc2UgXCJyZWplY3RlZFwiOlxuICAgICAgICAgIHRocm93IGJvdW5kUHJvbWlzZS5yZWFzb247XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgKFxuICAgICAgICAgICAgKFwic3RyaW5nXCIgIT09IHR5cGVvZiBib3VuZFByb21pc2Uuc3RhdHVzICYmXG4gICAgICAgICAgICAgICgoYm91bmRQcm9taXNlLnN0YXR1cyA9IFwicGVuZGluZ1wiKSxcbiAgICAgICAgICAgICAgYm91bmRQcm9taXNlLnRoZW4oXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gKGJvdW5kQXJncykge1xuICAgICAgICAgICAgICAgICAgYm91bmRQcm9taXNlLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCI7XG4gICAgICAgICAgICAgICAgICBib3VuZFByb21pc2UudmFsdWUgPSBib3VuZEFyZ3M7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIGJvdW5kUHJvbWlzZS5zdGF0dXMgPSBcInJlamVjdGVkXCI7XG4gICAgICAgICAgICAgICAgICBib3VuZFByb21pc2UucmVhc29uID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIGJvdW5kUHJvbWlzZSlcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGYWtlU2VydmVyRnVuY3Rpb24oXG4gICAgICBuYW1lLFxuICAgICAgZmlsZW5hbWUsXG4gICAgICBzb3VyY2VNYXAsXG4gICAgICBsaW5lLFxuICAgICAgY29sLFxuICAgICAgZW52aXJvbm1lbnROYW1lLFxuICAgICAgaW5uZXJGdW5jdGlvblxuICAgICkge1xuICAgICAgbmFtZSB8fCAobmFtZSA9IFwiPGFub255bW91cz5cIik7XG4gICAgICB2YXIgZW5jb2RlZE5hbWUgPSBKU09OLnN0cmluZ2lmeShuYW1lKTtcbiAgICAgIDEgPj0gbGluZVxuICAgICAgICA/ICgobGluZSA9IGVuY29kZWROYW1lLmxlbmd0aCArIDcpLFxuICAgICAgICAgIChjb2wgPVxuICAgICAgICAgICAgXCJzPT4oe1wiICtcbiAgICAgICAgICAgIGVuY29kZWROYW1lICtcbiAgICAgICAgICAgIFwiIFwiLnJlcGVhdChjb2wgPCBsaW5lID8gMCA6IGNvbCAtIGxpbmUpICtcbiAgICAgICAgICAgIFwiOiguLi5hcmdzKSA9PiBzKC4uLmFyZ3MpfSlcXG4vKiBUaGlzIG1vZHVsZSBpcyBhIHByb3h5IHRvIGEgU2VydmVyIEFjdGlvbi4gVHVybiBvbiBTb3VyY2UgTWFwcyB0byBzZWUgdGhlIHNlcnZlciBzb3VyY2UuICovXCIpKVxuICAgICAgICA6IChjb2wgPVxuICAgICAgICAgICAgXCIvKiBUaGlzIG1vZHVsZSBpcyBhIHByb3h5IHRvIGEgU2VydmVyIEFjdGlvbi4gVHVybiBvbiBTb3VyY2UgTWFwcyB0byBzZWUgdGhlIHNlcnZlciBzb3VyY2UuICovXCIgK1xuICAgICAgICAgICAgXCJcXG5cIi5yZXBlYXQobGluZSAtIDIpICtcbiAgICAgICAgICAgIFwic2VydmVyPT4oe1wiICtcbiAgICAgICAgICAgIGVuY29kZWROYW1lICtcbiAgICAgICAgICAgIFwiOlxcblwiICtcbiAgICAgICAgICAgIFwiIFwiLnJlcGVhdCgxID4gY29sID8gMCA6IGNvbCAtIDEpICtcbiAgICAgICAgICAgIFwiKC4uLmFyZ3MpID0+IHNlcnZlciguLi5hcmdzKX0pXCIpO1xuICAgICAgZmlsZW5hbWUuc3RhcnRzV2l0aChcIi9cIikgJiYgKGZpbGVuYW1lID0gXCJmaWxlOi8vXCIgKyBmaWxlbmFtZSk7XG4gICAgICBzb3VyY2VNYXBcbiAgICAgICAgPyAoKGNvbCArPVxuICAgICAgICAgICAgXCJcXG4vLyMgc291cmNlVVJMPWFib3V0Oi8vUmVhY3QvXCIgK1xuICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGVudmlyb25tZW50TmFtZSkgK1xuICAgICAgICAgICAgXCIvXCIgK1xuICAgICAgICAgICAgZW5jb2RlVVJJKGZpbGVuYW1lKSArXG4gICAgICAgICAgICBcIj9zXCIgK1xuICAgICAgICAgICAgZmFrZVNlcnZlckZ1bmN0aW9uSWR4KyspLFxuICAgICAgICAgIChjb2wgKz0gXCJcXG4vLyMgc291cmNlTWFwcGluZ1VSTD1cIiArIHNvdXJjZU1hcCkpXG4gICAgICAgIDogZmlsZW5hbWUgJiYgKGNvbCArPSBcIlxcbi8vIyBzb3VyY2VVUkw9XCIgKyBmaWxlbmFtZSk7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gKDAsIGV2YWwpKGNvbCkoaW5uZXJGdW5jdGlvbilbbmFtZV07XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHJldHVybiBpbm5lckZ1bmN0aW9uO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWdpc3RlckJvdW5kU2VydmVyUmVmZXJlbmNlKFxuICAgICAgcmVmZXJlbmNlLFxuICAgICAgaWQsXG4gICAgICBib3VuZCxcbiAgICAgIGVuY29kZUZvcm1BY3Rpb25cbiAgICApIHtcbiAgICAgIGtub3duU2VydmVyUmVmZXJlbmNlcy5oYXMocmVmZXJlbmNlKSB8fFxuICAgICAgICAoa25vd25TZXJ2ZXJSZWZlcmVuY2VzLnNldChyZWZlcmVuY2UsIHtcbiAgICAgICAgICBpZDogaWQsXG4gICAgICAgICAgb3JpZ2luYWxCaW5kOiByZWZlcmVuY2UuYmluZCxcbiAgICAgICAgICBib3VuZDogYm91bmRcbiAgICAgICAgfSksXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHJlZmVyZW5jZSwge1xuICAgICAgICAgICQkRk9STV9BQ1RJT046IHtcbiAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICB2b2lkIDAgPT09IGVuY29kZUZvcm1BY3Rpb25cbiAgICAgICAgICAgICAgICA/IGRlZmF1bHRFbmNvZGVGb3JtQWN0aW9uXG4gICAgICAgICAgICAgICAgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZWZlcmVuY2VDbG9zdXJlID0ga25vd25TZXJ2ZXJSZWZlcmVuY2VzLmdldCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWZlcmVuY2VDbG9zdXJlKVxuICAgICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJUcmllZCB0byBlbmNvZGUgYSBTZXJ2ZXIgQWN0aW9uIGZyb20gYSBkaWZmZXJlbnQgaW5zdGFuY2UgdGhhbiB0aGUgZW5jb2RlciBpcyBmcm9tLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJvdW5kUHJvbWlzZSA9IHJlZmVyZW5jZUNsb3N1cmUuYm91bmQ7XG4gICAgICAgICAgICAgICAgICAgIG51bGwgPT09IGJvdW5kUHJvbWlzZSAmJlxuICAgICAgICAgICAgICAgICAgICAgIChib3VuZFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoW10pKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZUZvcm1BY3Rpb24ocmVmZXJlbmNlQ2xvc3VyZS5pZCwgYm91bmRQcm9taXNlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgICQkSVNfU0lHTkFUVVJFX0VRVUFMOiB7IHZhbHVlOiBpc1NpZ25hdHVyZUVxdWFsIH0sXG4gICAgICAgICAgYmluZDogeyB2YWx1ZTogYmluZCB9XG4gICAgICAgIH0pKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYmluZCgpIHtcbiAgICAgIHZhciByZWZlcmVuY2VDbG9zdXJlID0ga25vd25TZXJ2ZXJSZWZlcmVuY2VzLmdldCh0aGlzKTtcbiAgICAgIGlmICghcmVmZXJlbmNlQ2xvc3VyZSkgcmV0dXJuIEZ1bmN0aW9uQmluZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgdmFyIG5ld0ZuID0gcmVmZXJlbmNlQ2xvc3VyZS5vcmlnaW5hbEJpbmQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIG51bGwgIT0gYXJndW1lbnRzWzBdICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ0Nhbm5vdCBiaW5kIFwidGhpc1wiIG9mIGEgU2VydmVyIEFjdGlvbi4gUGFzcyBudWxsIG9yIHVuZGVmaW5lZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gLmJpbmQoKS4nXG4gICAgICAgICk7XG4gICAgICB2YXIgYXJncyA9IEFycmF5U2xpY2UuY2FsbChhcmd1bWVudHMsIDEpLFxuICAgICAgICBib3VuZFByb21pc2UgPSBudWxsO1xuICAgICAgYm91bmRQcm9taXNlID1cbiAgICAgICAgbnVsbCAhPT0gcmVmZXJlbmNlQ2xvc3VyZS5ib3VuZFxuICAgICAgICAgID8gUHJvbWlzZS5yZXNvbHZlKHJlZmVyZW5jZUNsb3N1cmUuYm91bmQpLnRoZW4oZnVuY3Rpb24gKGJvdW5kQXJncykge1xuICAgICAgICAgICAgICByZXR1cm4gYm91bmRBcmdzLmNvbmNhdChhcmdzKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBQcm9taXNlLnJlc29sdmUoYXJncyk7XG4gICAgICBrbm93blNlcnZlclJlZmVyZW5jZXMuc2V0KG5ld0ZuLCB7XG4gICAgICAgIGlkOiByZWZlcmVuY2VDbG9zdXJlLmlkLFxuICAgICAgICBvcmlnaW5hbEJpbmQ6IG5ld0ZuLmJpbmQsXG4gICAgICAgIGJvdW5kOiBib3VuZFByb21pc2VcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobmV3Rm4sIHtcbiAgICAgICAgJCRGT1JNX0FDVElPTjogeyB2YWx1ZTogdGhpcy4kJEZPUk1fQUNUSU9OIH0sXG4gICAgICAgICQkSVNfU0lHTkFUVVJFX0VRVUFMOiB7IHZhbHVlOiBpc1NpZ25hdHVyZUVxdWFsIH0sXG4gICAgICAgIGJpbmQ6IHsgdmFsdWU6IGJpbmQgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV3Rm47XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUJvdW5kU2VydmVyUmVmZXJlbmNlKFxuICAgICAgbWV0YURhdGEsXG4gICAgICBjYWxsU2VydmVyLFxuICAgICAgZW5jb2RlRm9ybUFjdGlvbixcbiAgICAgIGZpbmRTb3VyY2VNYXBVUkxcbiAgICApIHtcbiAgICAgIGZ1bmN0aW9uIGFjdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICByZXR1cm4gYm91bmRcbiAgICAgICAgICA/IFwiZnVsZmlsbGVkXCIgPT09IGJvdW5kLnN0YXR1c1xuICAgICAgICAgICAgPyBjYWxsU2VydmVyKGlkLCBib3VuZC52YWx1ZS5jb25jYXQoYXJncykpXG4gICAgICAgICAgICA6IFByb21pc2UucmVzb2x2ZShib3VuZCkudGhlbihmdW5jdGlvbiAoYm91bmRBcmdzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxTZXJ2ZXIoaWQsIGJvdW5kQXJncy5jb25jYXQoYXJncykpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgIDogY2FsbFNlcnZlcihpZCwgYXJncyk7XG4gICAgICB9XG4gICAgICB2YXIgaWQgPSBtZXRhRGF0YS5pZCxcbiAgICAgICAgYm91bmQgPSBtZXRhRGF0YS5ib3VuZCxcbiAgICAgICAgbG9jYXRpb24gPSBtZXRhRGF0YS5sb2NhdGlvbjtcbiAgICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgICB2YXIgZnVuY3Rpb25OYW1lID0gbWV0YURhdGEubmFtZSB8fCBcIlwiLFxuICAgICAgICAgIGZpbGVuYW1lID0gbG9jYXRpb25bMV0sXG4gICAgICAgICAgbGluZSA9IGxvY2F0aW9uWzJdO1xuICAgICAgICBsb2NhdGlvbiA9IGxvY2F0aW9uWzNdO1xuICAgICAgICBtZXRhRGF0YSA9IG1ldGFEYXRhLmVudiB8fCBcIlNlcnZlclwiO1xuICAgICAgICBmaW5kU291cmNlTWFwVVJMID1cbiAgICAgICAgICBudWxsID09IGZpbmRTb3VyY2VNYXBVUkxcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiBmaW5kU291cmNlTWFwVVJMKGZpbGVuYW1lLCBtZXRhRGF0YSk7XG4gICAgICAgIGFjdGlvbiA9IGNyZWF0ZUZha2VTZXJ2ZXJGdW5jdGlvbihcbiAgICAgICAgICBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgZmluZFNvdXJjZU1hcFVSTCxcbiAgICAgICAgICBsaW5lLFxuICAgICAgICAgIGxvY2F0aW9uLFxuICAgICAgICAgIG1ldGFEYXRhLFxuICAgICAgICAgIGFjdGlvblxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmVnaXN0ZXJCb3VuZFNlcnZlclJlZmVyZW5jZShhY3Rpb24sIGlkLCBib3VuZCwgZW5jb2RlRm9ybUFjdGlvbik7XG4gICAgICByZXR1cm4gYWN0aW9uO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZVN0YWNrTG9jYXRpb24oZXJyb3IpIHtcbiAgICAgIGVycm9yID0gZXJyb3Iuc3RhY2s7XG4gICAgICBlcnJvci5zdGFydHNXaXRoKFwiRXJyb3I6IHJlYWN0LXN0YWNrLXRvcC1mcmFtZVxcblwiKSAmJlxuICAgICAgICAoZXJyb3IgPSBlcnJvci5zbGljZSgyOSkpO1xuICAgICAgdmFyIGVuZE9mRmlyc3QgPSBlcnJvci5pbmRleE9mKFwiXFxuXCIpO1xuICAgICAgaWYgKC0xICE9PSBlbmRPZkZpcnN0KSB7XG4gICAgICAgIHZhciBlbmRPZlNlY29uZCA9IGVycm9yLmluZGV4T2YoXCJcXG5cIiwgZW5kT2ZGaXJzdCArIDEpO1xuICAgICAgICBlbmRPZkZpcnN0ID1cbiAgICAgICAgICAtMSA9PT0gZW5kT2ZTZWNvbmRcbiAgICAgICAgICAgID8gZXJyb3Iuc2xpY2UoZW5kT2ZGaXJzdCArIDEpXG4gICAgICAgICAgICA6IGVycm9yLnNsaWNlKGVuZE9mRmlyc3QgKyAxLCBlbmRPZlNlY29uZCk7XG4gICAgICB9IGVsc2UgZW5kT2ZGaXJzdCA9IGVycm9yO1xuICAgICAgZXJyb3IgPSB2OEZyYW1lUmVnRXhwLmV4ZWMoZW5kT2ZGaXJzdCk7XG4gICAgICBpZiAoXG4gICAgICAgICFlcnJvciAmJlxuICAgICAgICAoKGVycm9yID0ganNjU3BpZGVyTW9ua2V5RnJhbWVSZWdFeHAuZXhlYyhlbmRPZkZpcnN0KSksICFlcnJvcilcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBlbmRPZkZpcnN0ID0gZXJyb3JbMV0gfHwgXCJcIjtcbiAgICAgIFwiPGFub255bW91cz5cIiA9PT0gZW5kT2ZGaXJzdCAmJiAoZW5kT2ZGaXJzdCA9IFwiXCIpO1xuICAgICAgZW5kT2ZTZWNvbmQgPSBlcnJvclsyXSB8fCBlcnJvcls1XSB8fCBcIlwiO1xuICAgICAgXCI8YW5vbnltb3VzPlwiID09PSBlbmRPZlNlY29uZCAmJiAoZW5kT2ZTZWNvbmQgPSBcIlwiKTtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIGVuZE9mRmlyc3QsXG4gICAgICAgIGVuZE9mU2Vjb25kLFxuICAgICAgICArKGVycm9yWzNdIHx8IGVycm9yWzZdKSxcbiAgICAgICAgKyhlcnJvcls0XSB8fCBlcnJvcls3XSlcbiAgICAgIF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVNlcnZlclJlZmVyZW5jZSQxKFxuICAgICAgaWQsXG4gICAgICBjYWxsU2VydmVyLFxuICAgICAgZW5jb2RlRm9ybUFjdGlvbixcbiAgICAgIGZpbmRTb3VyY2VNYXBVUkwsXG4gICAgICBmdW5jdGlvbk5hbWVcbiAgICApIHtcbiAgICAgIGZ1bmN0aW9uIGFjdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICByZXR1cm4gY2FsbFNlcnZlcihpZCwgYXJncyk7XG4gICAgICB9XG4gICAgICB2YXIgbG9jYXRpb24gPSBwYXJzZVN0YWNrTG9jYXRpb24oRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIikpO1xuICAgICAgaWYgKG51bGwgIT09IGxvY2F0aW9uKSB7XG4gICAgICAgIHZhciBmaWxlbmFtZSA9IGxvY2F0aW9uWzFdLFxuICAgICAgICAgIGxpbmUgPSBsb2NhdGlvblsyXTtcbiAgICAgICAgbG9jYXRpb24gPSBsb2NhdGlvblszXTtcbiAgICAgICAgZmluZFNvdXJjZU1hcFVSTCA9XG4gICAgICAgICAgbnVsbCA9PSBmaW5kU291cmNlTWFwVVJMXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogZmluZFNvdXJjZU1hcFVSTChmaWxlbmFtZSwgXCJDbGllbnRcIik7XG4gICAgICAgIGFjdGlvbiA9IGNyZWF0ZUZha2VTZXJ2ZXJGdW5jdGlvbihcbiAgICAgICAgICBmdW5jdGlvbk5hbWUgfHwgXCJcIixcbiAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICBmaW5kU291cmNlTWFwVVJMLFxuICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgbG9jYXRpb24sXG4gICAgICAgICAgXCJDbGllbnRcIixcbiAgICAgICAgICBhY3Rpb25cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJlZ2lzdGVyQm91bmRTZXJ2ZXJSZWZlcmVuY2UoYWN0aW9uLCBpZCwgbnVsbCwgZW5jb2RlRm9ybUFjdGlvbik7XG4gICAgICByZXR1cm4gYWN0aW9uO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkge1xuICAgICAgaWYgKG51bGwgPT0gdHlwZSkgcmV0dXJuIG51bGw7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgcmV0dXJuIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0VcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiB0eXBlO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJGcmFnbWVudFwiO1xuICAgICAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiUHJvZmlsZXJcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN0cmljdE1vZGVcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlTGlzdFwiO1xuICAgICAgICBjYXNlIFJFQUNUX0FDVElWSVRZX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiQWN0aXZpdHlcIjtcbiAgICAgIH1cbiAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgc3dpdGNoIChcbiAgICAgICAgICAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIHR5cGUudGFnICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgdHlwZS4kJHR5cGVvZilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiBcIlBvcnRhbFwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05TVU1FUl9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuICh0eXBlLl9jb250ZXh0LmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiKSArIFwiLkNvbnN1bWVyXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgdmFyIGlubmVyVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB0eXBlIHx8XG4gICAgICAgICAgICAgICgodHlwZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCBcIlwiKSxcbiAgICAgICAgICAgICAgKHR5cGUgPSBcIlwiICE9PSB0eXBlID8gXCJGb3J3YXJkUmVmKFwiICsgdHlwZSArIFwiKVwiIDogXCJGb3J3YXJkUmVmXCIpKTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGlubmVyVHlwZSA9IHR5cGUuZGlzcGxheU5hbWUgfHwgbnVsbCksXG4gICAgICAgICAgICAgIG51bGwgIT09IGlubmVyVHlwZVxuICAgICAgICAgICAgICAgID8gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgOiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCBcIk1lbW9cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgIGlubmVyVHlwZSA9IHR5cGUuX3BheWxvYWQ7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5faW5pdDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZShpbm5lclR5cGUpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVwYXJlU3RhY2tUcmFjZShlcnJvciwgc3RydWN0dXJlZFN0YWNrVHJhY2UpIHtcbiAgICAgIGVycm9yID0gKGVycm9yLm5hbWUgfHwgXCJFcnJvclwiKSArIFwiOiBcIiArIChlcnJvci5tZXNzYWdlIHx8IFwiXCIpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJ1Y3R1cmVkU3RhY2tUcmFjZS5sZW5ndGg7IGkrKylcbiAgICAgICAgZXJyb3IgKz0gXCJcXG4gICAgYXQgXCIgKyBzdHJ1Y3R1cmVkU3RhY2tUcmFjZVtpXS50b1N0cmluZygpO1xuICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cbiAgICBmdW5jdGlvbiBSZWFjdFByb21pc2Uoc3RhdHVzLCB2YWx1ZSwgcmVhc29uKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMucmVhc29uID0gcmVhc29uO1xuICAgICAgdGhpcy5fZGVidWdJbmZvID0gdGhpcy5fZGVidWdDaHVuayA9IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVud3JhcFdlYWtSZXNwb25zZSh3ZWFrUmVzcG9uc2UpIHtcbiAgICAgIHdlYWtSZXNwb25zZSA9IHdlYWtSZXNwb25zZS53ZWFrLmRlcmVmKCk7XG4gICAgICBpZiAodm9pZCAwID09PSB3ZWFrUmVzcG9uc2UpXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiV2UgZGlkIG5vdCBleHBlY3QgdG8gcmVjZWl2ZSBuZXcgZGF0YSBhZnRlciBHQzppbmcgdGhlIHJlc3BvbnNlLlwiXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gd2Vha1Jlc3BvbnNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjbGVhbnVwRGVidWdDaGFubmVsKGRlYnVnQ2hhbm5lbCkge1xuICAgICAgZGVidWdDaGFubmVsKFwiXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkQ2h1bmsoY2h1bmspIHtcbiAgICAgIHN3aXRjaCAoY2h1bmsuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2RlbFwiOlxuICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKGNodW5rKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZHVsZVwiOlxuICAgICAgICAgIGluaXRpYWxpemVNb2R1bGVDaHVuayhjaHVuayk7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGNodW5rLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgcmV0dXJuIGNodW5rLnZhbHVlO1xuICAgICAgICBjYXNlIFwicGVuZGluZ1wiOlxuICAgICAgICBjYXNlIFwiYmxvY2tlZFwiOlxuICAgICAgICBjYXNlIFwiaGFsdGVkXCI6XG4gICAgICAgICAgdGhyb3cgY2h1bms7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgY2h1bmsucmVhc29uO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRSb290KHdlYWtSZXNwb25zZSkge1xuICAgICAgd2Vha1Jlc3BvbnNlID0gdW53cmFwV2Vha1Jlc3BvbnNlKHdlYWtSZXNwb25zZSk7XG4gICAgICByZXR1cm4gZ2V0Q2h1bmsod2Vha1Jlc3BvbnNlLCAwKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlUGVuZGluZ0NodW5rKHJlc3BvbnNlKSB7XG4gICAgICAwID09PSByZXNwb25zZS5fcGVuZGluZ0NodW5rcysrICYmXG4gICAgICAgICgocmVzcG9uc2UuX3dlYWtSZXNwb25zZS5yZXNwb25zZSA9IHJlc3BvbnNlKSxcbiAgICAgICAgbnVsbCAhPT0gcmVzcG9uc2UuX3BlbmRpbmdJbml0aWFsUmVuZGVyICYmXG4gICAgICAgICAgKGNsZWFyVGltZW91dChyZXNwb25zZS5fcGVuZGluZ0luaXRpYWxSZW5kZXIpLFxuICAgICAgICAgIChyZXNwb25zZS5fcGVuZGluZ0luaXRpYWxSZW5kZXIgPSBudWxsKSkpO1xuICAgICAgcmV0dXJuIG5ldyBSZWFjdFByb21pc2UoXCJwZW5kaW5nXCIsIG51bGwsIG51bGwpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxlYXNlUGVuZGluZ0NodW5rKHJlc3BvbnNlLCBjaHVuaykge1xuICAgICAgXCJwZW5kaW5nXCIgPT09IGNodW5rLnN0YXR1cyAmJlxuICAgICAgICAwID09PSAtLXJlc3BvbnNlLl9wZW5kaW5nQ2h1bmtzICYmXG4gICAgICAgICgocmVzcG9uc2UuX3dlYWtSZXNwb25zZS5yZXNwb25zZSA9IG51bGwpLFxuICAgICAgICAocmVzcG9uc2UuX3BlbmRpbmdJbml0aWFsUmVuZGVyID0gc2V0VGltZW91dChcbiAgICAgICAgICBmbHVzaEluaXRpYWxSZW5kZXJQZXJmb3JtYW5jZS5iaW5kKG51bGwsIHJlc3BvbnNlKSxcbiAgICAgICAgICAxMDBcbiAgICAgICAgKSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3YWtlQ2h1bmsobGlzdGVuZXJzLCB2YWx1ZSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGxpc3RlbmVyID0gbGlzdGVuZXJzW2ldO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBsaXN0ZW5lclxuICAgICAgICAgID8gbGlzdGVuZXIodmFsdWUpXG4gICAgICAgICAgOiBmdWxmaWxsUmVmZXJlbmNlKGxpc3RlbmVyLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlamVjdENodW5rKGxpc3RlbmVycywgZXJyb3IpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBsaXN0ZW5lciA9IGxpc3RlbmVyc1tpXTtcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbGlzdGVuZXJcbiAgICAgICAgICA/IGxpc3RlbmVyKGVycm9yKVxuICAgICAgICAgIDogcmVqZWN0UmVmZXJlbmNlKGxpc3RlbmVyLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVCbG9ja2VkQ3ljbGUocmVzb2x2ZWRDaHVuaywgcmVmZXJlbmNlKSB7XG4gICAgICB2YXIgcmVmZXJlbmNlZENodW5rID0gcmVmZXJlbmNlLmhhbmRsZXIuY2h1bms7XG4gICAgICBpZiAobnVsbCA9PT0gcmVmZXJlbmNlZENodW5rKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChyZWZlcmVuY2VkQ2h1bmsgPT09IHJlc29sdmVkQ2h1bmspIHJldHVybiByZWZlcmVuY2UuaGFuZGxlcjtcbiAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZWRDaHVuay52YWx1ZTtcbiAgICAgIGlmIChudWxsICE9PSByZWZlcmVuY2UpXG4gICAgICAgIGZvciAoXG4gICAgICAgICAgcmVmZXJlbmNlZENodW5rID0gMDtcbiAgICAgICAgICByZWZlcmVuY2VkQ2h1bmsgPCByZWZlcmVuY2UubGVuZ3RoO1xuICAgICAgICAgIHJlZmVyZW5jZWRDaHVuaysrXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBsaXN0ZW5lciA9IHJlZmVyZW5jZVtyZWZlcmVuY2VkQ2h1bmtdO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGxpc3RlbmVyICYmXG4gICAgICAgICAgICAoKGxpc3RlbmVyID0gcmVzb2x2ZUJsb2NrZWRDeWNsZShyZXNvbHZlZENodW5rLCBsaXN0ZW5lcikpLFxuICAgICAgICAgICAgbnVsbCAhPT0gbGlzdGVuZXIpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIGxpc3RlbmVyO1xuICAgICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2FrZUNodW5rSWZJbml0aWFsaXplZChjaHVuaywgcmVzb2x2ZUxpc3RlbmVycywgcmVqZWN0TGlzdGVuZXJzKSB7XG4gICAgICBzd2l0Y2ggKGNodW5rLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgd2FrZUNodW5rKHJlc29sdmVMaXN0ZW5lcnMsIGNodW5rLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImJsb2NrZWRcIjpcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc29sdmVMaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBsaXN0ZW5lciA9IHJlc29sdmVMaXN0ZW5lcnNbaV07XG4gICAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgbGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgdmFyIGN5Y2xpY0hhbmRsZXIgPSByZXNvbHZlQmxvY2tlZEN5Y2xlKGNodW5rLCBsaXN0ZW5lcik7XG4gICAgICAgICAgICAgIG51bGwgIT09IGN5Y2xpY0hhbmRsZXIgJiZcbiAgICAgICAgICAgICAgICAoZnVsZmlsbFJlZmVyZW5jZShsaXN0ZW5lciwgY3ljbGljSGFuZGxlci52YWx1ZSksXG4gICAgICAgICAgICAgICAgcmVzb2x2ZUxpc3RlbmVycy5zcGxpY2UoaSwgMSksXG4gICAgICAgICAgICAgICAgaS0tLFxuICAgICAgICAgICAgICAgIG51bGwgIT09IHJlamVjdExpc3RlbmVycyAmJlxuICAgICAgICAgICAgICAgICAgKChsaXN0ZW5lciA9IHJlamVjdExpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKSksXG4gICAgICAgICAgICAgICAgICAtMSAhPT0gbGlzdGVuZXIgJiYgcmVqZWN0TGlzdGVuZXJzLnNwbGljZShsaXN0ZW5lciwgMSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgICAgaWYgKGNodW5rLnZhbHVlKVxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHJlc29sdmVMaXN0ZW5lcnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICAgIGNodW5rLnZhbHVlLnB1c2gocmVzb2x2ZUxpc3RlbmVyc1tpXSk7XG4gICAgICAgICAgZWxzZSBjaHVuay52YWx1ZSA9IHJlc29sdmVMaXN0ZW5lcnM7XG4gICAgICAgICAgaWYgKGNodW5rLnJlYXNvbikge1xuICAgICAgICAgICAgaWYgKHJlamVjdExpc3RlbmVycylcbiAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICByZXNvbHZlTGlzdGVuZXJzID0gMDtcbiAgICAgICAgICAgICAgICByZXNvbHZlTGlzdGVuZXJzIDwgcmVqZWN0TGlzdGVuZXJzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICByZXNvbHZlTGlzdGVuZXJzKytcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGNodW5rLnJlYXNvbi5wdXNoKHJlamVjdExpc3RlbmVyc1tyZXNvbHZlTGlzdGVuZXJzXSk7XG4gICAgICAgICAgfSBlbHNlIGNodW5rLnJlYXNvbiA9IHJlamVjdExpc3RlbmVycztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJlamVjdGVkXCI6XG4gICAgICAgICAgcmVqZWN0TGlzdGVuZXJzICYmIHJlamVjdENodW5rKHJlamVjdExpc3RlbmVycywgY2h1bmsucmVhc29uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdHJpZ2dlckVycm9yT25DaHVuayhyZXNwb25zZSwgY2h1bmssIGVycm9yKSB7XG4gICAgICBpZiAoXCJwZW5kaW5nXCIgIT09IGNodW5rLnN0YXR1cyAmJiBcImJsb2NrZWRcIiAhPT0gY2h1bmsuc3RhdHVzKVxuICAgICAgICBjaHVuay5yZWFzb24uZXJyb3IoZXJyb3IpO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHJlbGVhc2VQZW5kaW5nQ2h1bmsocmVzcG9uc2UsIGNodW5rKTtcbiAgICAgICAgdmFyIGxpc3RlbmVycyA9IGNodW5rLnJlYXNvbjtcbiAgICAgICAgaWYgKFwicGVuZGluZ1wiID09PSBjaHVuay5zdGF0dXMgJiYgbnVsbCAhPSBjaHVuay5fZGVidWdDaHVuaykge1xuICAgICAgICAgIHZhciBwcmV2SGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXI7XG4gICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlciA9IG51bGw7XG4gICAgICAgICAgY2h1bmsuc3RhdHVzID0gXCJibG9ja2VkXCI7XG4gICAgICAgICAgY2h1bmsudmFsdWUgPSBudWxsO1xuICAgICAgICAgIGNodW5rLnJlYXNvbiA9IG51bGw7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGluaXRpYWxpemVEZWJ1Z0NodW5rKHJlc3BvbnNlLCBjaHVuayksIChjaHVuay5fZGVidWdDaHVuayA9IG51bGwpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyID0gcHJldkhhbmRsZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNodW5rLnN0YXR1cyA9IFwicmVqZWN0ZWRcIjtcbiAgICAgICAgY2h1bmsucmVhc29uID0gZXJyb3I7XG4gICAgICAgIG51bGwgIT09IGxpc3RlbmVycyAmJiByZWplY3RDaHVuayhsaXN0ZW5lcnMsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rKHJlc3BvbnNlLCB2YWx1ZSkge1xuICAgICAgcmV0dXJuIG5ldyBSZWFjdFByb21pc2UoXCJyZXNvbHZlZF9tb2RlbFwiLCB2YWx1ZSwgcmVzcG9uc2UpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVSZXNvbHZlZEl0ZXJhdG9yUmVzdWx0Q2h1bmsocmVzcG9uc2UsIHZhbHVlLCBkb25lKSB7XG4gICAgICByZXR1cm4gbmV3IFJlYWN0UHJvbWlzZShcbiAgICAgICAgXCJyZXNvbHZlZF9tb2RlbFwiLFxuICAgICAgICAoZG9uZSA/ICd7XCJkb25lXCI6dHJ1ZSxcInZhbHVlXCI6JyA6ICd7XCJkb25lXCI6ZmFsc2UsXCJ2YWx1ZVwiOicpICtcbiAgICAgICAgICB2YWx1ZSArXG4gICAgICAgICAgXCJ9XCIsXG4gICAgICAgIHJlc3BvbnNlXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlSXRlcmF0b3JSZXN1bHRDaHVuayhyZXNwb25zZSwgY2h1bmssIHZhbHVlLCBkb25lKSB7XG4gICAgICByZXNvbHZlTW9kZWxDaHVuayhcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIGNodW5rLFxuICAgICAgICAoZG9uZSA/ICd7XCJkb25lXCI6dHJ1ZSxcInZhbHVlXCI6JyA6ICd7XCJkb25lXCI6ZmFsc2UsXCJ2YWx1ZVwiOicpICtcbiAgICAgICAgICB2YWx1ZSArXG4gICAgICAgICAgXCJ9XCJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVNb2RlbENodW5rKHJlc3BvbnNlLCBjaHVuaywgdmFsdWUpIHtcbiAgICAgIGlmIChcInBlbmRpbmdcIiAhPT0gY2h1bmsuc3RhdHVzKSBjaHVuay5yZWFzb24uZW5xdWV1ZU1vZGVsKHZhbHVlKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICByZWxlYXNlUGVuZGluZ0NodW5rKHJlc3BvbnNlLCBjaHVuayk7XG4gICAgICAgIHZhciByZXNvbHZlTGlzdGVuZXJzID0gY2h1bmsudmFsdWUsXG4gICAgICAgICAgcmVqZWN0TGlzdGVuZXJzID0gY2h1bmsucmVhc29uO1xuICAgICAgICBjaHVuay5zdGF0dXMgPSBcInJlc29sdmVkX21vZGVsXCI7XG4gICAgICAgIGNodW5rLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGNodW5rLnJlYXNvbiA9IHJlc3BvbnNlO1xuICAgICAgICBudWxsICE9PSByZXNvbHZlTGlzdGVuZXJzICYmXG4gICAgICAgICAgKGluaXRpYWxpemVNb2RlbENodW5rKGNodW5rKSxcbiAgICAgICAgICB3YWtlQ2h1bmtJZkluaXRpYWxpemVkKGNodW5rLCByZXNvbHZlTGlzdGVuZXJzLCByZWplY3RMaXN0ZW5lcnMpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU1vZHVsZUNodW5rKHJlc3BvbnNlLCBjaHVuaywgdmFsdWUpIHtcbiAgICAgIGlmIChcInBlbmRpbmdcIiA9PT0gY2h1bmsuc3RhdHVzIHx8IFwiYmxvY2tlZFwiID09PSBjaHVuay5zdGF0dXMpIHtcbiAgICAgICAgcmVsZWFzZVBlbmRpbmdDaHVuayhyZXNwb25zZSwgY2h1bmspO1xuICAgICAgICByZXNwb25zZSA9IGNodW5rLnZhbHVlO1xuICAgICAgICB2YXIgcmVqZWN0TGlzdGVuZXJzID0gY2h1bmsucmVhc29uO1xuICAgICAgICBjaHVuay5zdGF0dXMgPSBcInJlc29sdmVkX21vZHVsZVwiO1xuICAgICAgICBjaHVuay52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB2YWx1ZSA9IFtdO1xuICAgICAgICBudWxsICE9PSB2YWx1ZSAmJiBudWxsICE9IGNodW5rLl9kZWJ1Z0luZm9cbiAgICAgICAgICA/IGNodW5rLl9kZWJ1Z0luZm8ucHVzaC5hcHBseShjaHVuay5fZGVidWdJbmZvLCB2YWx1ZSlcbiAgICAgICAgICA6IChjaHVuay5fZGVidWdJbmZvID0gdmFsdWUpO1xuICAgICAgICBudWxsICE9PSByZXNwb25zZSAmJlxuICAgICAgICAgIChpbml0aWFsaXplTW9kdWxlQ2h1bmsoY2h1bmspLFxuICAgICAgICAgIHdha2VDaHVua0lmSW5pdGlhbGl6ZWQoY2h1bmssIHJlc3BvbnNlLCByZWplY3RMaXN0ZW5lcnMpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZURlYnVnQ2h1bmsocmVzcG9uc2UsIGNodW5rKSB7XG4gICAgICB2YXIgZGVidWdDaHVuayA9IGNodW5rLl9kZWJ1Z0NodW5rO1xuICAgICAgaWYgKG51bGwgIT09IGRlYnVnQ2h1bmspIHtcbiAgICAgICAgdmFyIGRlYnVnSW5mbyA9IGNodW5rLl9kZWJ1Z0luZm8gfHwgKGNodW5rLl9kZWJ1Z0luZm8gPSBbXSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKFwicmVzb2x2ZWRfbW9kZWxcIiA9PT0gZGVidWdDaHVuay5zdGF0dXMpIHtcbiAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgIHZhciBpZHggPSBkZWJ1Z0luZm8ubGVuZ3RoLCBjID0gZGVidWdDaHVuay5fZGVidWdDaHVuaztcbiAgICAgICAgICAgICAgbnVsbCAhPT0gYztcblxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBcImZ1bGZpbGxlZFwiICE9PSBjLnN0YXR1cyAmJiBpZHgrKywgKGMgPSBjLl9kZWJ1Z0NodW5rKTtcbiAgICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKGRlYnVnQ2h1bmspO1xuICAgICAgICAgICAgc3dpdGNoIChkZWJ1Z0NodW5rLnN0YXR1cykge1xuICAgICAgICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgICAgICAgZGVidWdJbmZvW2lkeF0gPSBpbml0aWFsaXplRGVidWdJbmZvKFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICBkZWJ1Z0NodW5rLnZhbHVlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcImJsb2NrZWRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgICAgICAgICB3YWl0Rm9yUmVmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgZGVidWdDaHVuayxcbiAgICAgICAgICAgICAgICAgIGRlYnVnSW5mbyxcbiAgICAgICAgICAgICAgICAgIFwiXCIgKyBpZHgsXG4gICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVEZWJ1Z0luZm8sXG4gICAgICAgICAgICAgICAgICBbXCJcIl1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IGRlYnVnQ2h1bmsucmVhc29uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgc3dpdGNoIChkZWJ1Z0NodW5rLnN0YXR1cykge1xuICAgICAgICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJibG9ja2VkXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgICAgICAgICAgd2FpdEZvclJlZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgIGRlYnVnQ2h1bmssXG4gICAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICAgIFwiZGVidWdcIixcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZURlYnVnSW5mbyxcbiAgICAgICAgICAgICAgICAgIFtcIlwiXVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgZGVidWdDaHVuay5yZWFzb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgdHJpZ2dlckVycm9yT25DaHVuayhyZXNwb25zZSwgY2h1bmssIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0aWFsaXplTW9kZWxDaHVuayhjaHVuaykge1xuICAgICAgdmFyIHByZXZIYW5kbGVyID0gaW5pdGlhbGl6aW5nSGFuZGxlcjtcbiAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIgPSBudWxsO1xuICAgICAgdmFyIHJlc29sdmVkTW9kZWwgPSBjaHVuay52YWx1ZSxcbiAgICAgICAgcmVzcG9uc2UgPSBjaHVuay5yZWFzb247XG4gICAgICBjaHVuay5zdGF0dXMgPSBcImJsb2NrZWRcIjtcbiAgICAgIGNodW5rLnZhbHVlID0gbnVsbDtcbiAgICAgIGNodW5rLnJlYXNvbiA9IG51bGw7XG4gICAgICBpbml0aWFsaXplRGVidWdDaHVuayhyZXNwb25zZSwgY2h1bmspO1xuICAgICAgY2h1bmsuX2RlYnVnQ2h1bmsgPSBudWxsO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShyZXNvbHZlZE1vZGVsLCByZXNwb25zZS5fZnJvbUpTT04pLFxuICAgICAgICAgIHJlc29sdmVMaXN0ZW5lcnMgPSBjaHVuay52YWx1ZTtcbiAgICAgICAgbnVsbCAhPT0gcmVzb2x2ZUxpc3RlbmVycyAmJlxuICAgICAgICAgICgoY2h1bmsudmFsdWUgPSBudWxsKSxcbiAgICAgICAgICAoY2h1bmsucmVhc29uID0gbnVsbCksXG4gICAgICAgICAgd2FrZUNodW5rKHJlc29sdmVMaXN0ZW5lcnMsIHZhbHVlKSk7XG4gICAgICAgIGlmIChudWxsICE9PSBpbml0aWFsaXppbmdIYW5kbGVyKSB7XG4gICAgICAgICAgaWYgKGluaXRpYWxpemluZ0hhbmRsZXIuZXJyb3JlZCkgdGhyb3cgaW5pdGlhbGl6aW5nSGFuZGxlci5yZWFzb247XG4gICAgICAgICAgaWYgKDAgPCBpbml0aWFsaXppbmdIYW5kbGVyLmRlcHMpIHtcbiAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIuY2h1bmsgPSBjaHVuaztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2h1bmsuc3RhdHVzID0gXCJmdWxmaWxsZWRcIjtcbiAgICAgICAgY2h1bmsudmFsdWUgPSB2YWx1ZTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIChjaHVuay5zdGF0dXMgPSBcInJlamVjdGVkXCIpLCAoY2h1bmsucmVhc29uID0gZXJyb3IpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlciA9IHByZXZIYW5kbGVyO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0aWFsaXplTW9kdWxlQ2h1bmsoY2h1bmspIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHJlcXVpcmVNb2R1bGUoY2h1bmsudmFsdWUpO1xuICAgICAgICBjaHVuay5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICBjaHVuay52YWx1ZSA9IHZhbHVlO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgKGNodW5rLnN0YXR1cyA9IFwicmVqZWN0ZWRcIiksIChjaHVuay5yZWFzb24gPSBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcG9ydEdsb2JhbEVycm9yKHdlYWtSZXNwb25zZSwgZXJyb3IpIHtcbiAgICAgIGlmICh2b2lkIDAgIT09IHdlYWtSZXNwb25zZS53ZWFrLmRlcmVmKCkpIHtcbiAgICAgICAgdmFyIHJlc3BvbnNlID0gdW53cmFwV2Vha1Jlc3BvbnNlKHdlYWtSZXNwb25zZSk7XG4gICAgICAgIHJlc3BvbnNlLl9jbG9zZWQgPSAhMDtcbiAgICAgICAgcmVzcG9uc2UuX2Nsb3NlZFJlYXNvbiA9IGVycm9yO1xuICAgICAgICByZXNwb25zZS5fY2h1bmtzLmZvckVhY2goZnVuY3Rpb24gKGNodW5rKSB7XG4gICAgICAgICAgXCJwZW5kaW5nXCIgPT09IGNodW5rLnN0YXR1cyAmJlxuICAgICAgICAgICAgdHJpZ2dlckVycm9yT25DaHVuayhyZXNwb25zZSwgY2h1bmssIGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHdlYWtSZXNwb25zZSA9IHJlc3BvbnNlLl9kZWJ1Z0NoYW5uZWw7XG4gICAgICAgIHZvaWQgMCAhPT0gd2Vha1Jlc3BvbnNlICYmXG4gICAgICAgICAgKHdlYWtSZXNwb25zZShcIlwiKSwgKHJlc3BvbnNlLl9kZWJ1Z0NoYW5uZWwgPSB2b2lkIDApKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbnVsbFJlZkdldHRlcigpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRUYXNrTmFtZSh0eXBlKSB7XG4gICAgICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkgcmV0dXJuIFwiPD5cIjtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gJ1widXNlIGNsaWVudFwiJztcbiAgICAgIGlmIChcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgbnVsbCAhPT0gdHlwZSAmJlxuICAgICAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEVcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIHR5cGUuX2luaXQgPT09IHJlYWRDaHVuayA/ICdcInVzZSBjbGllbnRcIicgOiBcIjwuLi4+XCI7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKTtcbiAgICAgICAgcmV0dXJuIG5hbWUgPyBcIjxcIiArIG5hbWUgKyBcIj5cIiA6IFwiPC4uLj5cIjtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgcmV0dXJuIFwiPC4uLj5cIjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZUVsZW1lbnQocmVzcG9uc2UsIGVsZW1lbnQpIHtcbiAgICAgIHZhciBzdGFjayA9IGVsZW1lbnQuX2RlYnVnU3RhY2ssXG4gICAgICAgIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICBudWxsID09PSBvd25lciAmJiAoZWxlbWVudC5fb3duZXIgPSByZXNwb25zZS5fZGVidWdSb290T3duZXIpO1xuICAgICAgdmFyIGVudiA9IHJlc3BvbnNlLl9yb290RW52aXJvbm1lbnROYW1lO1xuICAgICAgbnVsbCAhPT0gb3duZXIgJiYgbnVsbCAhPSBvd25lci5lbnYgJiYgKGVudiA9IG93bmVyLmVudik7XG4gICAgICB2YXIgbm9ybWFsaXplZFN0YWNrVHJhY2UgPSBudWxsO1xuICAgICAgbnVsbCA9PT0gb3duZXIgJiYgbnVsbCAhPSByZXNwb25zZS5fZGVidWdSb290U3RhY2tcbiAgICAgICAgPyAobm9ybWFsaXplZFN0YWNrVHJhY2UgPSByZXNwb25zZS5fZGVidWdSb290U3RhY2spXG4gICAgICAgIDogbnVsbCAhPT0gc3RhY2sgJiZcbiAgICAgICAgICAobm9ybWFsaXplZFN0YWNrVHJhY2UgPSBjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrSW5ERVYoXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgICAgZW52XG4gICAgICAgICAgKSk7XG4gICAgICBlbGVtZW50Ll9kZWJ1Z1N0YWNrID0gbm9ybWFsaXplZFN0YWNrVHJhY2U7XG4gICAgICBub3JtYWxpemVkU3RhY2tUcmFjZSA9IG51bGw7XG4gICAgICBzdXBwb3J0c0NyZWF0ZVRhc2sgJiZcbiAgICAgICAgbnVsbCAhPT0gc3RhY2sgJiZcbiAgICAgICAgKChub3JtYWxpemVkU3RhY2tUcmFjZSA9IGNvbnNvbGUuY3JlYXRlVGFzay5iaW5kKFxuICAgICAgICAgIGNvbnNvbGUsXG4gICAgICAgICAgZ2V0VGFza05hbWUoZWxlbWVudC50eXBlKVxuICAgICAgICApKSxcbiAgICAgICAgKHN0YWNrID0gYnVpbGRGYWtlQ2FsbFN0YWNrKFxuICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgIGVudixcbiAgICAgICAgICAhMSxcbiAgICAgICAgICBub3JtYWxpemVkU3RhY2tUcmFjZVxuICAgICAgICApKSxcbiAgICAgICAgKGVudiA9IG51bGwgPT09IG93bmVyID8gbnVsbCA6IGluaXRpYWxpemVGYWtlVGFzayhyZXNwb25zZSwgb3duZXIpKSxcbiAgICAgICAgbnVsbCA9PT0gZW52XG4gICAgICAgICAgPyAoKGVudiA9IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RUYXNrKSxcbiAgICAgICAgICAgIChub3JtYWxpemVkU3RhY2tUcmFjZSA9IG51bGwgIT0gZW52ID8gZW52LnJ1bihzdGFjaykgOiBzdGFjaygpKSlcbiAgICAgICAgICA6IChub3JtYWxpemVkU3RhY2tUcmFjZSA9IGVudi5ydW4oc3RhY2spKSk7XG4gICAgICBlbGVtZW50Ll9kZWJ1Z1Rhc2sgPSBub3JtYWxpemVkU3RhY2tUcmFjZTtcbiAgICAgIG51bGwgIT09IG93bmVyICYmIGluaXRpYWxpemVGYWtlU3RhY2socmVzcG9uc2UsIG93bmVyKTtcbiAgICAgIE9iamVjdC5mcmVlemUoZWxlbWVudC5wcm9wcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUxhenlDaHVua1dyYXBwZXIoY2h1bmspIHtcbiAgICAgIHZhciBsYXp5VHlwZSA9IHtcbiAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0xBWllfVFlQRSxcbiAgICAgICAgX3BheWxvYWQ6IGNodW5rLFxuICAgICAgICBfaW5pdDogcmVhZENodW5rXG4gICAgICB9O1xuICAgICAgY2h1bmsgPSBjaHVuay5fZGVidWdJbmZvIHx8IChjaHVuay5fZGVidWdJbmZvID0gW10pO1xuICAgICAgbGF6eVR5cGUuX2RlYnVnSW5mbyA9IGNodW5rO1xuICAgICAgcmV0dXJuIGxhenlUeXBlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDaHVuayhyZXNwb25zZSwgaWQpIHtcbiAgICAgIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzLFxuICAgICAgICBjaHVuayA9IGNodW5rcy5nZXQoaWQpO1xuICAgICAgY2h1bmsgfHxcbiAgICAgICAgKChjaHVuayA9IHJlc3BvbnNlLl9jbG9zZWRcbiAgICAgICAgICA/IG5ldyBSZWFjdFByb21pc2UoXCJyZWplY3RlZFwiLCBudWxsLCByZXNwb25zZS5fY2xvc2VkUmVhc29uKVxuICAgICAgICAgIDogY3JlYXRlUGVuZGluZ0NodW5rKHJlc3BvbnNlKSksXG4gICAgICAgIGNodW5rcy5zZXQoaWQsIGNodW5rKSk7XG4gICAgICByZXR1cm4gY2h1bms7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZ1bGZpbGxSZWZlcmVuY2UocmVmZXJlbmNlLCB2YWx1ZSkge1xuICAgICAgZm9yIChcbiAgICAgICAgdmFyIHJlc3BvbnNlID0gcmVmZXJlbmNlLnJlc3BvbnNlLFxuICAgICAgICAgIGhhbmRsZXIgPSByZWZlcmVuY2UuaGFuZGxlcixcbiAgICAgICAgICBwYXJlbnRPYmplY3QgPSByZWZlcmVuY2UucGFyZW50T2JqZWN0LFxuICAgICAgICAgIGtleSA9IHJlZmVyZW5jZS5rZXksXG4gICAgICAgICAgbWFwID0gcmVmZXJlbmNlLm1hcCxcbiAgICAgICAgICBwYXRoID0gcmVmZXJlbmNlLnBhdGgsXG4gICAgICAgICAgaSA9IDE7XG4gICAgICAgIGkgPCBwYXRoLmxlbmd0aDtcbiAgICAgICAgaSsrXG4gICAgICApIHtcbiAgICAgICAgZm9yICg7IHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEU7IClcbiAgICAgICAgICBpZiAoKCh2YWx1ZSA9IHZhbHVlLl9wYXlsb2FkKSwgdmFsdWUgPT09IGhhbmRsZXIuY2h1bmspKVxuICAgICAgICAgICAgdmFsdWUgPSBoYW5kbGVyLnZhbHVlO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZGVsXCI6XG4gICAgICAgICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsodmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kdWxlXCI6XG4gICAgICAgICAgICAgICAgaW5pdGlhbGl6ZU1vZHVsZUNodW5rKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWUuc3RhdHVzKSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICBjYXNlIFwiYmxvY2tlZFwiOlxuICAgICAgICAgICAgICAgIHZhciBjeWNsaWNIYW5kbGVyID0gcmVzb2x2ZUJsb2NrZWRDeWNsZSh2YWx1ZSwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gY3ljbGljSGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjeWNsaWNIYW5kbGVyLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjYXNlIFwicGVuZGluZ1wiOlxuICAgICAgICAgICAgICAgIHBhdGguc3BsaWNlKDAsIGkgLSAxKTtcbiAgICAgICAgICAgICAgICBudWxsID09PSB2YWx1ZS52YWx1ZVxuICAgICAgICAgICAgICAgICAgPyAodmFsdWUudmFsdWUgPSBbcmVmZXJlbmNlXSlcbiAgICAgICAgICAgICAgICAgIDogdmFsdWUudmFsdWUucHVzaChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgIG51bGwgPT09IHZhbHVlLnJlYXNvblxuICAgICAgICAgICAgICAgICAgPyAodmFsdWUucmVhc29uID0gW3JlZmVyZW5jZV0pXG4gICAgICAgICAgICAgICAgICA6IHZhbHVlLnJlYXNvbi5wdXNoKHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICBjYXNlIFwiaGFsdGVkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJlamVjdFJlZmVyZW5jZShyZWZlcmVuY2UsIHZhbHVlLnJlYXNvbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSB2YWx1ZVtwYXRoW2ldXTtcbiAgICAgIH1cbiAgICAgIHJlZmVyZW5jZSA9IG1hcChyZXNwb25zZSwgdmFsdWUsIHBhcmVudE9iamVjdCwga2V5KTtcbiAgICAgIHBhcmVudE9iamVjdFtrZXldID0gcmVmZXJlbmNlO1xuICAgICAgXCJcIiA9PT0ga2V5ICYmIG51bGwgPT09IGhhbmRsZXIudmFsdWUgJiYgKGhhbmRsZXIudmFsdWUgPSByZWZlcmVuY2UpO1xuICAgICAgaWYgKFxuICAgICAgICBwYXJlbnRPYmplY3RbMF0gPT09IFJFQUNUX0VMRU1FTlRfVFlQRSAmJlxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgaGFuZGxlci52YWx1ZSAmJlxuICAgICAgICBudWxsICE9PSBoYW5kbGVyLnZhbHVlICYmXG4gICAgICAgIGhhbmRsZXIudmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgKVxuICAgICAgICBzd2l0Y2ggKCgocGFyZW50T2JqZWN0ID0gaGFuZGxlci52YWx1ZSksIGtleSkpIHtcbiAgICAgICAgICBjYXNlIFwiM1wiOlxuICAgICAgICAgICAgcGFyZW50T2JqZWN0LnByb3BzID0gcmVmZXJlbmNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIjRcIjpcbiAgICAgICAgICAgIHBhcmVudE9iamVjdC5fb3duZXIgPSByZWZlcmVuY2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiNVwiOlxuICAgICAgICAgICAgcGFyZW50T2JqZWN0Ll9kZWJ1Z1N0YWNrID0gcmVmZXJlbmNlO1xuICAgICAgICB9XG4gICAgICBoYW5kbGVyLmRlcHMtLTtcbiAgICAgIDAgPT09IGhhbmRsZXIuZGVwcyAmJlxuICAgICAgICAoKGtleSA9IGhhbmRsZXIuY2h1bmspLFxuICAgICAgICBudWxsICE9PSBrZXkgJiZcbiAgICAgICAgICBcImJsb2NrZWRcIiA9PT0ga2V5LnN0YXR1cyAmJlxuICAgICAgICAgICgocGFyZW50T2JqZWN0ID0ga2V5LnZhbHVlKSxcbiAgICAgICAgICAoa2V5LnN0YXR1cyA9IFwiZnVsZmlsbGVkXCIpLFxuICAgICAgICAgIChrZXkudmFsdWUgPSBoYW5kbGVyLnZhbHVlKSxcbiAgICAgICAgICAoa2V5LnJlYXNvbiA9IGhhbmRsZXIucmVhc29uKSxcbiAgICAgICAgICBudWxsICE9PSBwYXJlbnRPYmplY3QgJiYgd2FrZUNodW5rKHBhcmVudE9iamVjdCwgaGFuZGxlci52YWx1ZSkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVqZWN0UmVmZXJlbmNlKHJlZmVyZW5jZSwgZXJyb3IpIHtcbiAgICAgIHZhciBoYW5kbGVyID0gcmVmZXJlbmNlLmhhbmRsZXI7XG4gICAgICByZWZlcmVuY2UgPSByZWZlcmVuY2UucmVzcG9uc2U7XG4gICAgICBpZiAoIWhhbmRsZXIuZXJyb3JlZCkge1xuICAgICAgICB2YXIgYmxvY2tlZFZhbHVlID0gaGFuZGxlci52YWx1ZTtcbiAgICAgICAgaGFuZGxlci5lcnJvcmVkID0gITA7XG4gICAgICAgIGhhbmRsZXIudmFsdWUgPSBudWxsO1xuICAgICAgICBoYW5kbGVyLnJlYXNvbiA9IGVycm9yO1xuICAgICAgICBoYW5kbGVyID0gaGFuZGxlci5jaHVuaztcbiAgICAgICAgaWYgKG51bGwgIT09IGhhbmRsZXIgJiYgXCJibG9ja2VkXCIgPT09IGhhbmRsZXIuc3RhdHVzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGJsb2NrZWRWYWx1ZSAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gYmxvY2tlZFZhbHVlICYmXG4gICAgICAgICAgICBibG9ja2VkVmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdmFyIGVycm9yZWRDb21wb25lbnQgPSB7XG4gICAgICAgICAgICAgIG5hbWU6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShibG9ja2VkVmFsdWUudHlwZSkgfHwgXCJcIixcbiAgICAgICAgICAgICAgb3duZXI6IGJsb2NrZWRWYWx1ZS5fb3duZXJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBlcnJvcmVkQ29tcG9uZW50LmRlYnVnU3RhY2sgPSBibG9ja2VkVmFsdWUuX2RlYnVnU3RhY2s7XG4gICAgICAgICAgICBzdXBwb3J0c0NyZWF0ZVRhc2sgJiZcbiAgICAgICAgICAgICAgKGVycm9yZWRDb21wb25lbnQuZGVidWdUYXNrID0gYmxvY2tlZFZhbHVlLl9kZWJ1Z1Rhc2spO1xuICAgICAgICAgICAgKGhhbmRsZXIuX2RlYnVnSW5mbyB8fCAoaGFuZGxlci5fZGVidWdJbmZvID0gW10pKS5wdXNoKFxuICAgICAgICAgICAgICBlcnJvcmVkQ29tcG9uZW50XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0cmlnZ2VyRXJyb3JPbkNodW5rKHJlZmVyZW5jZSwgaGFuZGxlciwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhaXRGb3JSZWZlcmVuY2UoXG4gICAgICByZWZlcmVuY2VkQ2h1bmssXG4gICAgICBwYXJlbnRPYmplY3QsXG4gICAgICBrZXksXG4gICAgICByZXNwb25zZSxcbiAgICAgIG1hcCxcbiAgICAgIHBhdGhcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgdm9pZCAwID09PSByZXNwb25zZS5fZGVidWdDaGFubmVsICYmXG4gICAgICAgIFwicGVuZGluZ1wiID09PSByZWZlcmVuY2VkQ2h1bmsuc3RhdHVzICYmXG4gICAgICAgIHBhcmVudE9iamVjdFswXSA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFICYmXG4gICAgICAgIChcIjRcIiA9PT0ga2V5IHx8IFwiNVwiID09PSBrZXkpXG4gICAgICApXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgaWYgKGluaXRpYWxpemluZ0hhbmRsZXIpIHtcbiAgICAgICAgdmFyIGhhbmRsZXIgPSBpbml0aWFsaXppbmdIYW5kbGVyO1xuICAgICAgICBoYW5kbGVyLmRlcHMrKztcbiAgICAgIH0gZWxzZVxuICAgICAgICBoYW5kbGVyID0gaW5pdGlhbGl6aW5nSGFuZGxlciA9IHtcbiAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgY2h1bms6IG51bGwsXG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgcmVhc29uOiBudWxsLFxuICAgICAgICAgIGRlcHM6IDEsXG4gICAgICAgICAgZXJyb3JlZDogITFcbiAgICAgICAgfTtcbiAgICAgIHBhcmVudE9iamVjdCA9IHtcbiAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLFxuICAgICAgICBoYW5kbGVyOiBoYW5kbGVyLFxuICAgICAgICBwYXJlbnRPYmplY3Q6IHBhcmVudE9iamVjdCxcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIG1hcDogbWFwLFxuICAgICAgICBwYXRoOiBwYXRoXG4gICAgICB9O1xuICAgICAgbnVsbCA9PT0gcmVmZXJlbmNlZENodW5rLnZhbHVlXG4gICAgICAgID8gKHJlZmVyZW5jZWRDaHVuay52YWx1ZSA9IFtwYXJlbnRPYmplY3RdKVxuICAgICAgICA6IHJlZmVyZW5jZWRDaHVuay52YWx1ZS5wdXNoKHBhcmVudE9iamVjdCk7XG4gICAgICBudWxsID09PSByZWZlcmVuY2VkQ2h1bmsucmVhc29uXG4gICAgICAgID8gKHJlZmVyZW5jZWRDaHVuay5yZWFzb24gPSBbcGFyZW50T2JqZWN0XSlcbiAgICAgICAgOiByZWZlcmVuY2VkQ2h1bmsucmVhc29uLnB1c2gocGFyZW50T2JqZWN0KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb2FkU2VydmVyUmVmZXJlbmNlKHJlc3BvbnNlLCBtZXRhRGF0YSwgcGFyZW50T2JqZWN0LCBrZXkpIHtcbiAgICAgIGlmICghcmVzcG9uc2UuX3NlcnZlclJlZmVyZW5jZUNvbmZpZylcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUJvdW5kU2VydmVyUmVmZXJlbmNlKFxuICAgICAgICAgIG1ldGFEYXRhLFxuICAgICAgICAgIHJlc3BvbnNlLl9jYWxsU2VydmVyLFxuICAgICAgICAgIHJlc3BvbnNlLl9lbmNvZGVGb3JtQWN0aW9uLFxuICAgICAgICAgIHJlc3BvbnNlLl9kZWJ1Z0ZpbmRTb3VyY2VNYXBVUkxcbiAgICAgICAgKTtcbiAgICAgIHZhciBzZXJ2ZXJSZWZlcmVuY2UgPSByZXNvbHZlU2VydmVyUmVmZXJlbmNlKFxuICAgICAgICAgIHJlc3BvbnNlLl9zZXJ2ZXJSZWZlcmVuY2VDb25maWcsXG4gICAgICAgICAgbWV0YURhdGEuaWRcbiAgICAgICAgKSxcbiAgICAgICAgcHJvbWlzZSA9IHByZWxvYWRNb2R1bGUoc2VydmVyUmVmZXJlbmNlKTtcbiAgICAgIGlmIChwcm9taXNlKVxuICAgICAgICBtZXRhRGF0YS5ib3VuZCAmJiAocHJvbWlzZSA9IFByb21pc2UuYWxsKFtwcm9taXNlLCBtZXRhRGF0YS5ib3VuZF0pKTtcbiAgICAgIGVsc2UgaWYgKG1ldGFEYXRhLmJvdW5kKSBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKG1ldGFEYXRhLmJvdW5kKTtcbiAgICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAocHJvbWlzZSA9IHJlcXVpcmVNb2R1bGUoc2VydmVyUmVmZXJlbmNlKSksXG4gICAgICAgICAgcmVnaXN0ZXJCb3VuZFNlcnZlclJlZmVyZW5jZShcbiAgICAgICAgICAgIHByb21pc2UsXG4gICAgICAgICAgICBtZXRhRGF0YS5pZCxcbiAgICAgICAgICAgIG1ldGFEYXRhLmJvdW5kLFxuICAgICAgICAgICAgcmVzcG9uc2UuX2VuY29kZUZvcm1BY3Rpb25cbiAgICAgICAgICApLFxuICAgICAgICAgIHByb21pc2VcbiAgICAgICAgKTtcbiAgICAgIGlmIChpbml0aWFsaXppbmdIYW5kbGVyKSB7XG4gICAgICAgIHZhciBoYW5kbGVyID0gaW5pdGlhbGl6aW5nSGFuZGxlcjtcbiAgICAgICAgaGFuZGxlci5kZXBzKys7XG4gICAgICB9IGVsc2VcbiAgICAgICAgaGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXIgPSB7XG4gICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgIGNodW5rOiBudWxsLFxuICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgIHJlYXNvbjogbnVsbCxcbiAgICAgICAgICBkZXBzOiAxLFxuICAgICAgICAgIGVycm9yZWQ6ICExXG4gICAgICAgIH07XG4gICAgICBwcm9taXNlLnRoZW4oXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgcmVzb2x2ZWRWYWx1ZSA9IHJlcXVpcmVNb2R1bGUoc2VydmVyUmVmZXJlbmNlKTtcbiAgICAgICAgICBpZiAobWV0YURhdGEuYm91bmQpIHtcbiAgICAgICAgICAgIHZhciBib3VuZEFyZ3MgPSBtZXRhRGF0YS5ib3VuZC52YWx1ZS5zbGljZSgwKTtcbiAgICAgICAgICAgIGJvdW5kQXJncy51bnNoaWZ0KG51bGwpO1xuICAgICAgICAgICAgcmVzb2x2ZWRWYWx1ZSA9IHJlc29sdmVkVmFsdWUuYmluZC5hcHBseShyZXNvbHZlZFZhbHVlLCBib3VuZEFyZ3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZWdpc3RlckJvdW5kU2VydmVyUmVmZXJlbmNlKFxuICAgICAgICAgICAgcmVzb2x2ZWRWYWx1ZSxcbiAgICAgICAgICAgIG1ldGFEYXRhLmlkLFxuICAgICAgICAgICAgbWV0YURhdGEuYm91bmQsXG4gICAgICAgICAgICByZXNwb25zZS5fZW5jb2RlRm9ybUFjdGlvblxuICAgICAgICAgICk7XG4gICAgICAgICAgcGFyZW50T2JqZWN0W2tleV0gPSByZXNvbHZlZFZhbHVlO1xuICAgICAgICAgIFwiXCIgPT09IGtleSAmJlxuICAgICAgICAgICAgbnVsbCA9PT0gaGFuZGxlci52YWx1ZSAmJlxuICAgICAgICAgICAgKGhhbmRsZXIudmFsdWUgPSByZXNvbHZlZFZhbHVlKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBwYXJlbnRPYmplY3RbMF0gPT09IFJFQUNUX0VMRU1FTlRfVFlQRSAmJlxuICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGhhbmRsZXIudmFsdWUgJiZcbiAgICAgICAgICAgIG51bGwgIT09IGhhbmRsZXIudmFsdWUgJiZcbiAgICAgICAgICAgIGhhbmRsZXIudmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHN3aXRjaCAoKChib3VuZEFyZ3MgPSBoYW5kbGVyLnZhbHVlKSwga2V5KSkge1xuICAgICAgICAgICAgICBjYXNlIFwiM1wiOlxuICAgICAgICAgICAgICAgIGJvdW5kQXJncy5wcm9wcyA9IHJlc29sdmVkVmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCI0XCI6XG4gICAgICAgICAgICAgICAgYm91bmRBcmdzLl9vd25lciA9IHJlc29sdmVkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgaGFuZGxlci5kZXBzLS07XG4gICAgICAgICAgMCA9PT0gaGFuZGxlci5kZXBzICYmXG4gICAgICAgICAgICAoKHJlc29sdmVkVmFsdWUgPSBoYW5kbGVyLmNodW5rKSxcbiAgICAgICAgICAgIG51bGwgIT09IHJlc29sdmVkVmFsdWUgJiZcbiAgICAgICAgICAgICAgXCJibG9ja2VkXCIgPT09IHJlc29sdmVkVmFsdWUuc3RhdHVzICYmXG4gICAgICAgICAgICAgICgoYm91bmRBcmdzID0gcmVzb2x2ZWRWYWx1ZS52YWx1ZSksXG4gICAgICAgICAgICAgIChyZXNvbHZlZFZhbHVlLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCIpLFxuICAgICAgICAgICAgICAocmVzb2x2ZWRWYWx1ZS52YWx1ZSA9IGhhbmRsZXIudmFsdWUpLFxuICAgICAgICAgICAgICBudWxsICE9PSBib3VuZEFyZ3MgJiYgd2FrZUNodW5rKGJvdW5kQXJncywgaGFuZGxlci52YWx1ZSkpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgaWYgKCFoYW5kbGVyLmVycm9yZWQpIHtcbiAgICAgICAgICAgIHZhciBibG9ja2VkVmFsdWUgPSBoYW5kbGVyLnZhbHVlO1xuICAgICAgICAgICAgaGFuZGxlci5lcnJvcmVkID0gITA7XG4gICAgICAgICAgICBoYW5kbGVyLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgIGhhbmRsZXIucmVhc29uID0gZXJyb3I7XG4gICAgICAgICAgICB2YXIgY2h1bmsgPSBoYW5kbGVyLmNodW5rO1xuICAgICAgICAgICAgaWYgKG51bGwgIT09IGNodW5rICYmIFwiYmxvY2tlZFwiID09PSBjaHVuay5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBibG9ja2VkVmFsdWUgJiZcbiAgICAgICAgICAgICAgICBudWxsICE9PSBibG9ja2VkVmFsdWUgJiZcbiAgICAgICAgICAgICAgICBibG9ja2VkVmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB2YXIgZXJyb3JlZENvbXBvbmVudCA9IHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShibG9ja2VkVmFsdWUudHlwZSkgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgIG93bmVyOiBibG9ja2VkVmFsdWUuX293bmVyXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBlcnJvcmVkQ29tcG9uZW50LmRlYnVnU3RhY2sgPSBibG9ja2VkVmFsdWUuX2RlYnVnU3RhY2s7XG4gICAgICAgICAgICAgICAgc3VwcG9ydHNDcmVhdGVUYXNrICYmXG4gICAgICAgICAgICAgICAgICAoZXJyb3JlZENvbXBvbmVudC5kZWJ1Z1Rhc2sgPSBibG9ja2VkVmFsdWUuX2RlYnVnVGFzayk7XG4gICAgICAgICAgICAgICAgKGNodW5rLl9kZWJ1Z0luZm8gfHwgKGNodW5rLl9kZWJ1Z0luZm8gPSBbXSkpLnB1c2goXG4gICAgICAgICAgICAgICAgICBlcnJvcmVkQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0cmlnZ2VyRXJyb3JPbkNodW5rKHJlc3BvbnNlLCBjaHVuaywgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCByZWZlcmVuY2UsIHBhcmVudE9iamVjdCwga2V5LCBtYXApIHtcbiAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZS5zcGxpdChcIjpcIik7XG4gICAgICB2YXIgaWQgPSBwYXJzZUludChyZWZlcmVuY2VbMF0sIDE2KTtcbiAgICAgIGlkID0gZ2V0Q2h1bmsocmVzcG9uc2UsIGlkKTtcbiAgICAgIHN3aXRjaCAoaWQuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2RlbFwiOlxuICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKGlkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZHVsZVwiOlxuICAgICAgICAgIGluaXRpYWxpemVNb2R1bGVDaHVuayhpZCk7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGlkLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgZm9yICh2YXIgdmFsdWUgPSBpZC52YWx1ZSwgaSA9IDE7IGkgPCByZWZlcmVuY2UubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAoOyB2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFOyApIHtcbiAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5fcGF5bG9hZDtcbiAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kZWxcIjpcbiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2R1bGVcIjpcbiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVNb2R1bGVDaHVuayh2YWx1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImJsb2NrZWRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwicGVuZGluZ1wiOlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHdhaXRGb3JSZWZlcmVuY2UoXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlLnNsaWNlKGkgLSAxKVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiaGFsdGVkXCI6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyXG4gICAgICAgICAgICAgICAgICAgICAgPyAoKHJlc3BvbnNlID0gaW5pdGlhbGl6aW5nSGFuZGxlciksIHJlc3BvbnNlLmRlcHMrKylcbiAgICAgICAgICAgICAgICAgICAgICA6IChpbml0aWFsaXppbmdIYW5kbGVyID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBzOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcmVkOiAhMVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXJcbiAgICAgICAgICAgICAgICAgICAgICA/ICgoaW5pdGlhbGl6aW5nSGFuZGxlci5lcnJvcmVkID0gITApLFxuICAgICAgICAgICAgICAgICAgICAgICAgKGluaXRpYWxpemluZ0hhbmRsZXIudmFsdWUgPSBudWxsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbml0aWFsaXppbmdIYW5kbGVyLnJlYXNvbiA9IHZhbHVlLnJlYXNvbikpXG4gICAgICAgICAgICAgICAgICAgICAgOiAoaW5pdGlhbGl6aW5nSGFuZGxlciA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVuazogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbjogdmFsdWUucmVhc29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBzOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcmVkOiAhMFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWVbcmVmZXJlbmNlW2ldXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzcG9uc2UgPSBtYXAocmVzcG9uc2UsIHZhbHVlLCBwYXJlbnRPYmplY3QsIGtleSk7XG4gICAgICAgICAgaWQuX2RlYnVnSW5mbyAmJlxuICAgICAgICAgICAgKFwib2JqZWN0XCIgIT09IHR5cGVvZiByZXNwb25zZSB8fFxuICAgICAgICAgICAgICBudWxsID09PSByZXNwb25zZSB8fFxuICAgICAgICAgICAgICAoIWlzQXJyYXlJbXBsKHJlc3BvbnNlKSAmJlxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHJlc3BvbnNlW0FTWU5DX0lURVJBVE9SXSAmJlxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLiQkdHlwZW9mICE9PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHx8XG4gICAgICAgICAgICAgIHJlc3BvbnNlLl9kZWJ1Z0luZm8gfHxcbiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlc3BvbnNlLCBcIl9kZWJ1Z0luZm9cIiwge1xuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBpZC5fZGVidWdJbmZvXG4gICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgIGNhc2UgXCJibG9ja2VkXCI6XG4gICAgICAgICAgcmV0dXJuIHdhaXRGb3JSZWZlcmVuY2UoXG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHBhcmVudE9iamVjdCxcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgbWFwLFxuICAgICAgICAgICAgcmVmZXJlbmNlXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSBcImhhbHRlZFwiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyXG4gICAgICAgICAgICAgID8gKChyZXNwb25zZSA9IGluaXRpYWxpemluZ0hhbmRsZXIpLCByZXNwb25zZS5kZXBzKyspXG4gICAgICAgICAgICAgIDogKGluaXRpYWxpemluZ0hhbmRsZXIgPSB7XG4gICAgICAgICAgICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICBjaHVuazogbnVsbCxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgcmVhc29uOiBudWxsLFxuICAgICAgICAgICAgICAgICAgZGVwczogMSxcbiAgICAgICAgICAgICAgICAgIGVycm9yZWQ6ICExXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlclxuICAgICAgICAgICAgICA/ICgoaW5pdGlhbGl6aW5nSGFuZGxlci5lcnJvcmVkID0gITApLFxuICAgICAgICAgICAgICAgIChpbml0aWFsaXppbmdIYW5kbGVyLnZhbHVlID0gbnVsbCksXG4gICAgICAgICAgICAgICAgKGluaXRpYWxpemluZ0hhbmRsZXIucmVhc29uID0gaWQucmVhc29uKSlcbiAgICAgICAgICAgICAgOiAoaW5pdGlhbGl6aW5nSGFuZGxlciA9IHtcbiAgICAgICAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgICAgICAgIGNodW5rOiBudWxsLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgICByZWFzb246IGlkLnJlYXNvbixcbiAgICAgICAgICAgICAgICAgIGRlcHM6IDAsXG4gICAgICAgICAgICAgICAgICBlcnJvcmVkOiAhMFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZU1hcChyZXNwb25zZSwgbW9kZWwpIHtcbiAgICAgIHJldHVybiBuZXcgTWFwKG1vZGVsKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlU2V0KHJlc3BvbnNlLCBtb2RlbCkge1xuICAgICAgcmV0dXJuIG5ldyBTZXQobW9kZWwpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVCbG9iKHJlc3BvbnNlLCBtb2RlbCkge1xuICAgICAgcmV0dXJuIG5ldyBCbG9iKG1vZGVsLnNsaWNlKDEpLCB7IHR5cGU6IG1vZGVsWzBdIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGb3JtRGF0YShyZXNwb25zZSwgbW9kZWwpIHtcbiAgICAgIHJlc3BvbnNlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1vZGVsLmxlbmd0aDsgaSsrKVxuICAgICAgICByZXNwb25zZS5hcHBlbmQobW9kZWxbaV1bMF0sIG1vZGVsW2ldWzFdKTtcbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXBwbHlDb25zdHJ1Y3RvcihyZXNwb25zZSwgbW9kZWwsIHBhcmVudE9iamVjdCkge1xuICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHBhcmVudE9iamVjdCwgbW9kZWwucHJvdG90eXBlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVmaW5lTGF6eUdldHRlcihyZXNwb25zZSwgY2h1bmssIHBhcmVudE9iamVjdCwga2V5KSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocGFyZW50T2JqZWN0LCBrZXksIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgXCJyZXNvbHZlZF9tb2RlbFwiID09PSBjaHVuay5zdGF0dXMgJiYgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspO1xuICAgICAgICAgIHN3aXRjaCAoY2h1bmsuc3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgICAgIHJldHVybiBjaHVuay52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJyZWplY3RlZFwiOlxuICAgICAgICAgICAgICB0aHJvdyBjaHVuay5yZWFzb247XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBcIlRoaXMgb2JqZWN0IGhhcyBiZWVuIG9taXR0ZWQgYnkgUmVhY3QgaW4gdGhlIGNvbnNvbGUgbG9nIHRvIGF2b2lkIHNlbmRpbmcgdG9vIG11Y2ggZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuIFRyeSBsb2dnaW5nIHNtYWxsZXIgb3IgbW9yZSBzcGVjaWZpYyBvYmplY3RzLlwiO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZXh0cmFjdEl0ZXJhdG9yKHJlc3BvbnNlLCBtb2RlbCkge1xuICAgICAgcmV0dXJuIG1vZGVsW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlTW9kZWwocmVzcG9uc2UsIG1vZGVsKSB7XG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEluZmVycmVkRnVuY3Rpb25BcHByb3hpbWF0ZShjb2RlKSB7XG4gICAgICBjb2RlID0gY29kZS5zdGFydHNXaXRoKFwiT2JqZWN0LmRlZmluZVByb3BlcnR5KFwiKVxuICAgICAgICA/IGNvZGUuc2xpY2UoMjIpXG4gICAgICAgIDogY29kZS5zdGFydHNXaXRoKFwiKFwiKVxuICAgICAgICAgID8gY29kZS5zbGljZSgxKVxuICAgICAgICAgIDogY29kZTtcbiAgICAgIGlmIChjb2RlLnN0YXJ0c1dpdGgoXCJhc3luYyBmdW5jdGlvblwiKSkge1xuICAgICAgICB2YXIgaWR4ID0gY29kZS5pbmRleE9mKFwiKFwiLCAxNCk7XG4gICAgICAgIGlmICgtMSAhPT0gaWR4KVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoY29kZSA9IGNvZGUuc2xpY2UoMTQsIGlkeCkudHJpbSgpKSxcbiAgICAgICAgICAgICgwLCBldmFsKShcIih7XCIgKyBKU09OLnN0cmluZ2lmeShjb2RlKSArIFwiOmFzeW5jIGZ1bmN0aW9uKCl7fX0pXCIpW1xuICAgICAgICAgICAgICBjb2RlXG4gICAgICAgICAgICBdXG4gICAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoY29kZS5zdGFydHNXaXRoKFwiZnVuY3Rpb25cIikpIHtcbiAgICAgICAgaWYgKCgoaWR4ID0gY29kZS5pbmRleE9mKFwiKFwiLCA4KSksIC0xICE9PSBpZHgpKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoY29kZSA9IGNvZGUuc2xpY2UoOCwgaWR4KS50cmltKCkpLFxuICAgICAgICAgICAgKDAsIGV2YWwpKFwiKHtcIiArIEpTT04uc3RyaW5naWZ5KGNvZGUpICsgXCI6ZnVuY3Rpb24oKXt9fSlcIilbY29kZV1cbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgY29kZS5zdGFydHNXaXRoKFwiY2xhc3NcIikgJiZcbiAgICAgICAgKChpZHggPSBjb2RlLmluZGV4T2YoXCJ7XCIsIDUpKSwgLTEgIT09IGlkeClcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAoY29kZSA9IGNvZGUuc2xpY2UoNSwgaWR4KS50cmltKCkpLFxuICAgICAgICAgICgwLCBldmFsKShcIih7XCIgKyBKU09OLnN0cmluZ2lmeShjb2RlKSArIFwiOmNsYXNze319KVwiKVtjb2RlXVxuICAgICAgICApO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHt9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwYXJzZU1vZGVsU3RyaW5nKHJlc3BvbnNlLCBwYXJlbnRPYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgICAgIGlmIChcIiRcIiA9PT0gdmFsdWVbMF0pIHtcbiAgICAgICAgaWYgKFwiJFwiID09PSB2YWx1ZSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgbnVsbCAhPT0gaW5pdGlhbGl6aW5nSGFuZGxlciAmJlxuICAgICAgICAgICAgICBcIjBcIiA9PT0ga2V5ICYmXG4gICAgICAgICAgICAgIChpbml0aWFsaXppbmdIYW5kbGVyID0ge1xuICAgICAgICAgICAgICAgIHBhcmVudDogaW5pdGlhbGl6aW5nSGFuZGxlcixcbiAgICAgICAgICAgICAgICBjaHVuazogbnVsbCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICByZWFzb246IG51bGwsXG4gICAgICAgICAgICAgICAgZGVwczogMCxcbiAgICAgICAgICAgICAgICBlcnJvcmVkOiAhMVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgICAgICk7XG4gICAgICAgIHN3aXRjaCAodmFsdWVbMV0pIHtcbiAgICAgICAgICBjYXNlIFwiJFwiOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnNsaWNlKDEpO1xuICAgICAgICAgIGNhc2UgXCJMXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocGFyZW50T2JqZWN0ID0gcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDE2KSksXG4gICAgICAgICAgICAgIChyZXNwb25zZSA9IGdldENodW5rKHJlc3BvbnNlLCBwYXJlbnRPYmplY3QpKSxcbiAgICAgICAgICAgICAgY3JlYXRlTGF6eUNodW5rV3JhcHBlcihyZXNwb25zZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBcIkBcIjpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChwYXJlbnRPYmplY3QgPSBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMTYpKSxcbiAgICAgICAgICAgICAgZ2V0Q2h1bmsocmVzcG9uc2UsIHBhcmVudE9iamVjdClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBcIlNcIjpcbiAgICAgICAgICAgIHJldHVybiBTeW1ib2wuZm9yKHZhbHVlLnNsaWNlKDIpKTtcbiAgICAgICAgICBjYXNlIFwiRlwiOlxuICAgICAgICAgICAgdmFyIHJlZiA9IHZhbHVlLnNsaWNlKDIpO1xuICAgICAgICAgICAgcmV0dXJuIGdldE91dGxpbmVkTW9kZWwoXG4gICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgIHBhcmVudE9iamVjdCxcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBsb2FkU2VydmVyUmVmZXJlbmNlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJUXCI6XG4gICAgICAgICAgICBwYXJlbnRPYmplY3QgPSBcIiRcIiArIHZhbHVlLnNsaWNlKDIpO1xuICAgICAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZS5fdGVtcFJlZnM7XG4gICAgICAgICAgICBpZiAobnVsbCA9PSByZXNwb25zZSlcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJNaXNzaW5nIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSBzZXQgYnV0IHRoZSBSU0MgcmVzcG9uc2UgcmV0dXJuZWQgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlLiBQYXNzIGEgdGVtcG9yYXJ5UmVmZXJlbmNlIG9wdGlvbiB3aXRoIHRoZSBzZXQgdGhhdCB3YXMgdXNlZCB3aXRoIHRoZSByZXBseS5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmdldChwYXJlbnRPYmplY3QpO1xuICAgICAgICAgIGNhc2UgXCJRXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCByZWYsIHBhcmVudE9iamVjdCwga2V5LCBjcmVhdGVNYXApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJXXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCByZWYsIHBhcmVudE9iamVjdCwga2V5LCBjcmVhdGVTZXQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJCXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCByZWYsIHBhcmVudE9iamVjdCwga2V5LCBjcmVhdGVCbG9iKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiS1wiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHJlZiA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChyZXNwb25zZSwgcmVmLCBwYXJlbnRPYmplY3QsIGtleSwgY3JlYXRlRm9ybURhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJaXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIHJlc29sdmVFcnJvckRldlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJpXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGV4dHJhY3RJdGVyYXRvclxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJJXCI6XG4gICAgICAgICAgICByZXR1cm4gSW5maW5pdHk7XG4gICAgICAgICAgY2FzZSBcIi1cIjpcbiAgICAgICAgICAgIHJldHVybiBcIiQtMFwiID09PSB2YWx1ZSA/IC0wIDogLUluZmluaXR5O1xuICAgICAgICAgIGNhc2UgXCJOXCI6XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICAgIGNhc2UgXCJ1XCI6XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSBcIkRcIjpcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKHZhbHVlLnNsaWNlKDIpKSk7XG4gICAgICAgICAgY2FzZSBcIm5cIjpcbiAgICAgICAgICAgIHJldHVybiBCaWdJbnQodmFsdWUuc2xpY2UoMikpO1xuICAgICAgICAgIGNhc2UgXCJQXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGFwcGx5Q29uc3RydWN0b3JcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiRVwiOlxuICAgICAgICAgICAgcmVzcG9uc2UgPSB2YWx1ZS5zbGljZSgyKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmICghbWlnaHRIYXZlU3RhdGljQ29uc3RydWN0b3IudGVzdChyZXNwb25zZSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuICgwLCBldmFsKShyZXNwb25zZSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICgocmVmID0gZ2V0SW5mZXJyZWRGdW5jdGlvbkFwcHJveGltYXRlKHJlc3BvbnNlKSksXG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhcnRzV2l0aChcIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShcIikpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHZhciBpZHggPSByZXNwb25zZS5sYXN0SW5kZXhPZignLFwibmFtZVwiLHt2YWx1ZTpcIicpO1xuICAgICAgICAgICAgICAgIGlmICgtMSAhPT0gaWR4KSB7XG4gICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNsaWNlKGlkeCArIDE2IC0gMSwgcmVzcG9uc2UubGVuZ3RoIC0gMilcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVmLCBcIm5hbWVcIiwgeyB2YWx1ZTogbmFtZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgICAgcmVmID0gZnVuY3Rpb24gKCkge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVmO1xuICAgICAgICAgIGNhc2UgXCJZXCI6XG4gICAgICAgICAgICBpZiAoMiA8IHZhbHVlLmxlbmd0aCAmJiAocmVmID0gcmVzcG9uc2UuX2RlYnVnQ2hhbm5lbCkpIHtcbiAgICAgICAgICAgICAgaWYgKFwiQFwiID09PSB2YWx1ZVsyXSlcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgKHBhcmVudE9iamVjdCA9IHZhbHVlLnNsaWNlKDMpKSxcbiAgICAgICAgICAgICAgICAgIChrZXkgPSBwYXJzZUludChwYXJlbnRPYmplY3QsIDE2KSksXG4gICAgICAgICAgICAgICAgICByZXNwb25zZS5fY2h1bmtzLmhhcyhrZXkpIHx8IHJlZihcIlA6XCIgKyBwYXJlbnRPYmplY3QpLFxuICAgICAgICAgICAgICAgICAgZ2V0Q2h1bmsocmVzcG9uc2UsIGtleSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDIpO1xuICAgICAgICAgICAgICBpZHggPSBwYXJzZUludCh2YWx1ZSwgMTYpO1xuICAgICAgICAgICAgICByZXNwb25zZS5fY2h1bmtzLmhhcyhpZHgpIHx8IHJlZihcIlE6XCIgKyB2YWx1ZSk7XG4gICAgICAgICAgICAgIHJlZiA9IGdldENodW5rKHJlc3BvbnNlLCBpZHgpO1xuICAgICAgICAgICAgICByZXR1cm4gXCJmdWxmaWxsZWRcIiA9PT0gcmVmLnN0YXR1c1xuICAgICAgICAgICAgICAgID8gcmVmLnZhbHVlXG4gICAgICAgICAgICAgICAgOiBkZWZpbmVMYXp5R2V0dGVyKHJlc3BvbnNlLCByZWYsIHBhcmVudE9iamVjdCwga2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYXJlbnRPYmplY3QsIGtleSwge1xuICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJUaGlzIG9iamVjdCBoYXMgYmVlbiBvbWl0dGVkIGJ5IFJlYWN0IGluIHRoZSBjb25zb2xlIGxvZyB0byBhdm9pZCBzZW5kaW5nIHRvbyBtdWNoIGRhdGEgZnJvbSB0aGUgc2VydmVyLiBUcnkgbG9nZ2luZyBzbWFsbGVyIG9yIG1vcmUgc3BlY2lmaWMgb2JqZWN0cy5cIjtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZW51bWVyYWJsZTogITAsXG4gICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChyZWYgPSB2YWx1ZS5zbGljZSgxKSksXG4gICAgICAgICAgICAgIGdldE91dGxpbmVkTW9kZWwocmVzcG9uc2UsIHJlZiwgcGFyZW50T2JqZWN0LCBrZXksIGNyZWF0ZU1vZGVsKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtaXNzaW5nQ2FsbCgpIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAnVHJ5aW5nIHRvIGNhbGwgYSBmdW5jdGlvbiBmcm9tIFwidXNlIHNlcnZlclwiIGJ1dCB0aGUgY2FsbFNlcnZlciBvcHRpb24gd2FzIG5vdCBpbXBsZW1lbnRlZCBpbiB5b3VyIHJvdXRlciBydW50aW1lLidcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFJlc3BvbnNlSW5zdGFuY2UoXG4gICAgICBidW5kbGVyQ29uZmlnLFxuICAgICAgc2VydmVyUmVmZXJlbmNlQ29uZmlnLFxuICAgICAgbW9kdWxlTG9hZGluZyxcbiAgICAgIGNhbGxTZXJ2ZXIsXG4gICAgICBlbmNvZGVGb3JtQWN0aW9uLFxuICAgICAgbm9uY2UsXG4gICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzLFxuICAgICAgZmluZFNvdXJjZU1hcFVSTCxcbiAgICAgIHJlcGxheUNvbnNvbGUsXG4gICAgICBlbnZpcm9ubWVudE5hbWUsXG4gICAgICBkZWJ1Z0NoYW5uZWxcbiAgICApIHtcbiAgICAgIHZhciBjaHVua3MgPSBuZXcgTWFwKCk7XG4gICAgICB0aGlzLl9idW5kbGVyQ29uZmlnID0gYnVuZGxlckNvbmZpZztcbiAgICAgIHRoaXMuX3NlcnZlclJlZmVyZW5jZUNvbmZpZyA9IHNlcnZlclJlZmVyZW5jZUNvbmZpZztcbiAgICAgIHRoaXMuX21vZHVsZUxvYWRpbmcgPSBtb2R1bGVMb2FkaW5nO1xuICAgICAgdGhpcy5fY2FsbFNlcnZlciA9IHZvaWQgMCAhPT0gY2FsbFNlcnZlciA/IGNhbGxTZXJ2ZXIgOiBtaXNzaW5nQ2FsbDtcbiAgICAgIHRoaXMuX2VuY29kZUZvcm1BY3Rpb24gPSBlbmNvZGVGb3JtQWN0aW9uO1xuICAgICAgdGhpcy5fbm9uY2UgPSBub25jZTtcbiAgICAgIHRoaXMuX2NodW5rcyA9IGNodW5rcztcbiAgICAgIHRoaXMuX3N0cmluZ0RlY29kZXIgPSBuZXcgdXRpbC5UZXh0RGVjb2RlcigpO1xuICAgICAgdGhpcy5fZnJvbUpTT04gPSBudWxsO1xuICAgICAgdGhpcy5fY2xvc2VkID0gITE7XG4gICAgICB0aGlzLl9jbG9zZWRSZWFzb24gPSBudWxsO1xuICAgICAgdGhpcy5fdGVtcFJlZnMgPSB0ZW1wb3JhcnlSZWZlcmVuY2VzO1xuICAgICAgdGhpcy5fcGVuZGluZ0NodW5rcyA9IDA7XG4gICAgICB0aGlzLl93ZWFrUmVzcG9uc2UgPSB7IHdlYWs6IG5ldyBXZWFrUmVmKHRoaXMpLCByZXNwb25zZTogdGhpcyB9O1xuICAgICAgdGhpcy5fZGVidWdSb290T3duZXIgPSBidW5kbGVyQ29uZmlnID1cbiAgICAgICAgdm9pZCAwID09PSBSZWFjdFNoYXJlZEludGVyYWxzU2VydmVyIHx8XG4gICAgICAgIG51bGwgPT09IFJlYWN0U2hhcmVkSW50ZXJhbHNTZXJ2ZXIuQVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogUmVhY3RTaGFyZWRJbnRlcmFsc1NlcnZlci5BLmdldE93bmVyKCk7XG4gICAgICB0aGlzLl9kZWJ1Z1Jvb3RTdGFjayA9XG4gICAgICAgIG51bGwgIT09IGJ1bmRsZXJDb25maWcgPyBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKSA6IG51bGw7XG4gICAgICBlbnZpcm9ubWVudE5hbWUgPSB2b2lkIDAgPT09IGVudmlyb25tZW50TmFtZSA/IFwiU2VydmVyXCIgOiBlbnZpcm9ubWVudE5hbWU7XG4gICAgICBzdXBwb3J0c0NyZWF0ZVRhc2sgJiZcbiAgICAgICAgKHRoaXMuX2RlYnVnUm9vdFRhc2sgPSBjb25zb2xlLmNyZWF0ZVRhc2soXG4gICAgICAgICAgJ1widXNlICcgKyBlbnZpcm9ubWVudE5hbWUudG9Mb3dlckNhc2UoKSArICdcIidcbiAgICAgICAgKSk7XG4gICAgICB0aGlzLl9kZWJ1Z0ZpbmRTb3VyY2VNYXBVUkwgPSBmaW5kU291cmNlTWFwVVJMO1xuICAgICAgdGhpcy5fZGVidWdDaGFubmVsID0gZGVidWdDaGFubmVsO1xuICAgICAgdGhpcy5fYmxvY2tlZENvbnNvbGUgPSBudWxsO1xuICAgICAgdGhpcy5fcmVwbGF5Q29uc29sZSA9IHJlcGxheUNvbnNvbGU7XG4gICAgICB0aGlzLl9yb290RW52aXJvbm1lbnROYW1lID0gZW52aXJvbm1lbnROYW1lO1xuICAgICAgZGVidWdDaGFubmVsICYmXG4gICAgICAgIChudWxsID09PSBkZWJ1Z0NoYW5uZWxSZWdpc3RyeVxuICAgICAgICAgID8gKGRlYnVnQ2hhbm5lbChcIlwiKSwgKHRoaXMuX2RlYnVnQ2hhbm5lbCA9IHZvaWQgMCkpXG4gICAgICAgICAgOiBkZWJ1Z0NoYW5uZWxSZWdpc3RyeS5yZWdpc3Rlcih0aGlzLCBkZWJ1Z0NoYW5uZWwpKTtcbiAgICAgIHRoaXMuX2Zyb21KU09OID0gY3JlYXRlRnJvbUpTT05DYWxsYmFjayh0aGlzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlU3RyZWFtU3RhdGUoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBfcm93U3RhdGU6IDAsXG4gICAgICAgIF9yb3dJRDogMCxcbiAgICAgICAgX3Jvd1RhZzogMCxcbiAgICAgICAgX3Jvd0xlbmd0aDogMCxcbiAgICAgICAgX2J1ZmZlcjogW11cbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVCdWZmZXIocmVzcG9uc2UsIGlkLCBidWZmZXIpIHtcbiAgICAgIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzLFxuICAgICAgICBjaHVuayA9IGNodW5rcy5nZXQoaWQpO1xuICAgICAgY2h1bmsgJiYgXCJwZW5kaW5nXCIgIT09IGNodW5rLnN0YXR1c1xuICAgICAgICA/IGNodW5rLnJlYXNvbi5lbnF1ZXVlVmFsdWUoYnVmZmVyKVxuICAgICAgICA6IChjaHVuayAmJiByZWxlYXNlUGVuZGluZ0NodW5rKHJlc3BvbnNlLCBjaHVuayksXG4gICAgICAgICAgY2h1bmtzLnNldChpZCwgbmV3IFJlYWN0UHJvbWlzZShcImZ1bGZpbGxlZFwiLCBidWZmZXIsIG51bGwpKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVNb2R1bGUocmVzcG9uc2UsIGlkLCBtb2RlbCkge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBtb2RlbCA9IEpTT04ucGFyc2UobW9kZWwsIHJlc3BvbnNlLl9mcm9tSlNPTik7XG4gICAgICB2YXIgY2xpZW50UmVmZXJlbmNlID0gcmVzb2x2ZUNsaWVudFJlZmVyZW5jZShcbiAgICAgICAgcmVzcG9uc2UuX2J1bmRsZXJDb25maWcsXG4gICAgICAgIG1vZGVsXG4gICAgICApO1xuICAgICAgcHJlcGFyZURlc3RpbmF0aW9uV2l0aENodW5rcyhcbiAgICAgICAgcmVzcG9uc2UuX21vZHVsZUxvYWRpbmcsXG4gICAgICAgIG1vZGVsWzFdLFxuICAgICAgICByZXNwb25zZS5fbm9uY2VcbiAgICAgICk7XG4gICAgICBpZiAoKG1vZGVsID0gcHJlbG9hZE1vZHVsZShjbGllbnRSZWZlcmVuY2UpKSkge1xuICAgICAgICBpZiAoY2h1bmspIHtcbiAgICAgICAgICByZWxlYXNlUGVuZGluZ0NodW5rKHJlc3BvbnNlLCBjaHVuayk7XG4gICAgICAgICAgdmFyIGJsb2NrZWRDaHVuayA9IGNodW5rO1xuICAgICAgICAgIGJsb2NrZWRDaHVuay5zdGF0dXMgPSBcImJsb2NrZWRcIjtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgKGJsb2NrZWRDaHVuayA9IG5ldyBSZWFjdFByb21pc2UoXCJibG9ja2VkXCIsIG51bGwsIG51bGwpKSxcbiAgICAgICAgICAgIGNodW5rcy5zZXQoaWQsIGJsb2NrZWRDaHVuayk7XG4gICAgICAgIG1vZGVsLnRoZW4oXG4gICAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVNb2R1bGVDaHVuayhyZXNwb25zZSwgYmxvY2tlZENodW5rLCBjbGllbnRSZWZlcmVuY2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJpZ2dlckVycm9yT25DaHVuayhyZXNwb25zZSwgYmxvY2tlZENodW5rLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlXG4gICAgICAgIGNodW5rXG4gICAgICAgICAgPyByZXNvbHZlTW9kdWxlQ2h1bmsocmVzcG9uc2UsIGNodW5rLCBjbGllbnRSZWZlcmVuY2UpXG4gICAgICAgICAgOiBjaHVua3Muc2V0KFxuICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgbmV3IFJlYWN0UHJvbWlzZShcInJlc29sdmVkX21vZHVsZVwiLCBjbGllbnRSZWZlcmVuY2UsIG51bGwpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlU3RyZWFtKHJlc3BvbnNlLCBpZCwgc3RyZWFtLCBjb250cm9sbGVyKSB7XG4gICAgICB2YXIgY2h1bmtzID0gcmVzcG9uc2UuX2NodW5rcyxcbiAgICAgICAgY2h1bmsgPSBjaHVua3MuZ2V0KGlkKTtcbiAgICAgIGlmICghY2h1bmspXG4gICAgICAgIGNodW5rcy5zZXQoaWQsIG5ldyBSZWFjdFByb21pc2UoXCJmdWxmaWxsZWRcIiwgc3RyZWFtLCBjb250cm9sbGVyKSk7XG4gICAgICBlbHNlIGlmIChcInBlbmRpbmdcIiA9PT0gY2h1bmsuc3RhdHVzKSB7XG4gICAgICAgIHJlbGVhc2VQZW5kaW5nQ2h1bmsocmVzcG9uc2UsIGNodW5rKTtcbiAgICAgICAgaWQgPSBjaHVuay52YWx1ZTtcbiAgICAgICAgaWYgKG51bGwgIT0gY2h1bmsuX2RlYnVnQ2h1bmspIHtcbiAgICAgICAgICBjaHVua3MgPSBpbml0aWFsaXppbmdIYW5kbGVyO1xuICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIgPSBudWxsO1xuICAgICAgICAgIGNodW5rLnN0YXR1cyA9IFwiYmxvY2tlZFwiO1xuICAgICAgICAgIGNodW5rLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICBjaHVuay5yZWFzb24gPSBudWxsO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIChpbml0aWFsaXplRGVidWdDaHVuayhyZXNwb25zZSwgY2h1bmspLFxuICAgICAgICAgICAgICAoY2h1bmsuX2RlYnVnQ2h1bmsgPSBudWxsKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5pdGlhbGl6aW5nSGFuZGxlciAmJlxuICAgICAgICAgICAgICAgICFpbml0aWFsaXppbmdIYW5kbGVyLmVycm9yZWQgJiZcbiAgICAgICAgICAgICAgICAwIDwgaW5pdGlhbGl6aW5nSGFuZGxlci5kZXBzKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIudmFsdWUgPSBzdHJlYW07XG4gICAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIucmVhc29uID0gY29udHJvbGxlcjtcbiAgICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlci5jaHVuayA9IGNodW5rO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIgPSBjaHVua3M7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNodW5rLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCI7XG4gICAgICAgIGNodW5rLnZhbHVlID0gc3RyZWFtO1xuICAgICAgICBjaHVuay5yZWFzb24gPSBjb250cm9sbGVyO1xuICAgICAgICBudWxsICE9PSBpZCAmJiB3YWtlQ2h1bmsoaWQsIGNodW5rLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhcnRSZWFkYWJsZVN0cmVhbShyZXNwb25zZSwgaWQsIHR5cGUpIHtcbiAgICAgIHZhciBjb250cm9sbGVyID0gbnVsbDtcbiAgICAgIHR5cGUgPSBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBzdGFydDogZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICBjb250cm9sbGVyID0gYztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2YXIgcHJldmlvdXNCbG9ja2VkQ2h1bmsgPSBudWxsO1xuICAgICAgcmVzb2x2ZVN0cmVhbShyZXNwb25zZSwgaWQsIHR5cGUsIHtcbiAgICAgICAgZW5xdWV1ZVZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICBudWxsID09PSBwcmV2aW91c0Jsb2NrZWRDaHVua1xuICAgICAgICAgICAgPyBjb250cm9sbGVyLmVucXVldWUodmFsdWUpXG4gICAgICAgICAgICA6IHByZXZpb3VzQmxvY2tlZENodW5rLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBlbnF1ZXVlTW9kZWw6IGZ1bmN0aW9uIChqc29uKSB7XG4gICAgICAgICAgaWYgKG51bGwgPT09IHByZXZpb3VzQmxvY2tlZENodW5rKSB7XG4gICAgICAgICAgICB2YXIgY2h1bmsgPSBjcmVhdGVSZXNvbHZlZE1vZGVsQ2h1bmsocmVzcG9uc2UsIGpzb24pO1xuICAgICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspO1xuICAgICAgICAgICAgXCJmdWxmaWxsZWRcIiA9PT0gY2h1bmsuc3RhdHVzXG4gICAgICAgICAgICAgID8gY29udHJvbGxlci5lbnF1ZXVlKGNodW5rLnZhbHVlKVxuICAgICAgICAgICAgICA6IChjaHVuay50aGVuKFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZW5xdWV1ZSh2KTtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udHJvbGxlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChwcmV2aW91c0Jsb2NrZWRDaHVuayA9IGNodW5rKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNodW5rID0gcHJldmlvdXNCbG9ja2VkQ2h1bms7XG4gICAgICAgICAgICB2YXIgX2NodW5rMyA9IGNyZWF0ZVBlbmRpbmdDaHVuayhyZXNwb25zZSk7XG4gICAgICAgICAgICBfY2h1bmszLnRoZW4oXG4gICAgICAgICAgICAgIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZW5xdWV1ZSh2KTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udHJvbGxlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHByZXZpb3VzQmxvY2tlZENodW5rID0gX2NodW5rMztcbiAgICAgICAgICAgIGNodW5rLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICBwcmV2aW91c0Jsb2NrZWRDaHVuayA9PT0gX2NodW5rMyAmJiAocHJldmlvdXNCbG9ja2VkQ2h1bmsgPSBudWxsKTtcbiAgICAgICAgICAgICAgcmVzb2x2ZU1vZGVsQ2h1bmsocmVzcG9uc2UsIF9jaHVuazMsIGpzb24pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjbG9zZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChudWxsID09PSBwcmV2aW91c0Jsb2NrZWRDaHVuaykgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFyIGJsb2NrZWRDaHVuayA9IHByZXZpb3VzQmxvY2tlZENodW5rO1xuICAgICAgICAgICAgcHJldmlvdXNCbG9ja2VkQ2h1bmsgPSBudWxsO1xuICAgICAgICAgICAgYmxvY2tlZENodW5rLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgaWYgKG51bGwgPT09IHByZXZpb3VzQmxvY2tlZENodW5rKSBjb250cm9sbGVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBibG9ja2VkQ2h1bmsgPSBwcmV2aW91c0Jsb2NrZWRDaHVuaztcbiAgICAgICAgICAgIHByZXZpb3VzQmxvY2tlZENodW5rID0gbnVsbDtcbiAgICAgICAgICAgIGJsb2NrZWRDaHVuay50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXN5bmNJdGVyYXRvcigpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVJdGVyYXRvcihuZXh0KSB7XG4gICAgICBuZXh0ID0geyBuZXh0OiBuZXh0IH07XG4gICAgICBuZXh0W0FTWU5DX0lURVJBVE9SXSA9IGFzeW5jSXRlcmF0b3I7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhcnRBc3luY0l0ZXJhYmxlKHJlc3BvbnNlLCBpZCwgaXRlcmF0b3IpIHtcbiAgICAgIHZhciBidWZmZXIgPSBbXSxcbiAgICAgICAgY2xvc2VkID0gITEsXG4gICAgICAgIG5leHRXcml0ZUluZGV4ID0gMCxcbiAgICAgICAgaXRlcmFibGUgPSB7fTtcbiAgICAgIGl0ZXJhYmxlW0FTWU5DX0lURVJBVE9SXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG5leHRSZWFkSW5kZXggPSAwO1xuICAgICAgICByZXR1cm4gY3JlYXRlSXRlcmF0b3IoZnVuY3Rpb24gKGFyZykge1xuICAgICAgICAgIGlmICh2b2lkIDAgIT09IGFyZylcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICBcIlZhbHVlcyBjYW5ub3QgYmUgcGFzc2VkIHRvIG5leHQoKSBvZiBBc3luY0l0ZXJhYmxlcyBwYXNzZWQgdG8gQ2xpZW50IENvbXBvbmVudHMuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKG5leHRSZWFkSW5kZXggPT09IGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChjbG9zZWQpXG4gICAgICAgICAgICAgIHJldHVybiBuZXcgUmVhY3RQcm9taXNlKFxuICAgICAgICAgICAgICAgIFwiZnVsZmlsbGVkXCIsXG4gICAgICAgICAgICAgICAgeyBkb25lOiAhMCwgdmFsdWU6IHZvaWQgMCB9LFxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJ1ZmZlcltuZXh0UmVhZEluZGV4XSA9IGNyZWF0ZVBlbmRpbmdDaHVuayhyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBidWZmZXJbbmV4dFJlYWRJbmRleCsrXTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgcmVzb2x2ZVN0cmVhbShcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIGlkLFxuICAgICAgICBpdGVyYXRvciA/IGl0ZXJhYmxlW0FTWU5DX0lURVJBVE9SXSgpIDogaXRlcmFibGUsXG4gICAgICAgIHtcbiAgICAgICAgICBlbnF1ZXVlVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKG5leHRXcml0ZUluZGV4ID09PSBidWZmZXIubGVuZ3RoKVxuICAgICAgICAgICAgICBidWZmZXJbbmV4dFdyaXRlSW5kZXhdID0gbmV3IFJlYWN0UHJvbWlzZShcbiAgICAgICAgICAgICAgICBcImZ1bGZpbGxlZFwiLFxuICAgICAgICAgICAgICAgIHsgZG9uZTogITEsIHZhbHVlOiB2YWx1ZSB9LFxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgY2h1bmsgPSBidWZmZXJbbmV4dFdyaXRlSW5kZXhdLFxuICAgICAgICAgICAgICAgIHJlc29sdmVMaXN0ZW5lcnMgPSBjaHVuay52YWx1ZSxcbiAgICAgICAgICAgICAgICByZWplY3RMaXN0ZW5lcnMgPSBjaHVuay5yZWFzb247XG4gICAgICAgICAgICAgIGNodW5rLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCI7XG4gICAgICAgICAgICAgIGNodW5rLnZhbHVlID0geyBkb25lOiAhMSwgdmFsdWU6IHZhbHVlIH07XG4gICAgICAgICAgICAgIG51bGwgIT09IHJlc29sdmVMaXN0ZW5lcnMgJiZcbiAgICAgICAgICAgICAgICB3YWtlQ2h1bmtJZkluaXRpYWxpemVkKFxuICAgICAgICAgICAgICAgICAgY2h1bmssXG4gICAgICAgICAgICAgICAgICByZXNvbHZlTGlzdGVuZXJzLFxuICAgICAgICAgICAgICAgICAgcmVqZWN0TGlzdGVuZXJzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHRXcml0ZUluZGV4Kys7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbnF1ZXVlTW9kZWw6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgbmV4dFdyaXRlSW5kZXggPT09IGJ1ZmZlci5sZW5ndGhcbiAgICAgICAgICAgICAgPyAoYnVmZmVyW25leHRXcml0ZUluZGV4XSA9IGNyZWF0ZVJlc29sdmVkSXRlcmF0b3JSZXN1bHRDaHVuayhcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgIDogcmVzb2x2ZUl0ZXJhdG9yUmVzdWx0Q2h1bmsoXG4gICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgIGJ1ZmZlcltuZXh0V3JpdGVJbmRleF0sXG4gICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICExXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG5leHRXcml0ZUluZGV4Kys7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBjbG9zZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICBjbG9zZWQgPSAhMDtcbiAgICAgICAgICAgIG5leHRXcml0ZUluZGV4ID09PSBidWZmZXIubGVuZ3RoXG4gICAgICAgICAgICAgID8gKGJ1ZmZlcltuZXh0V3JpdGVJbmRleF0gPSBjcmVhdGVSZXNvbHZlZEl0ZXJhdG9yUmVzdWx0Q2h1bmsoXG4gICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgITBcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICA6IHJlc29sdmVJdGVyYXRvclJlc3VsdENodW5rKFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICBidWZmZXJbbmV4dFdyaXRlSW5kZXhdLFxuICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAhMFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmb3IgKG5leHRXcml0ZUluZGV4Kys7IG5leHRXcml0ZUluZGV4IDwgYnVmZmVyLmxlbmd0aDsgKVxuICAgICAgICAgICAgICByZXNvbHZlSXRlcmF0b3JSZXN1bHRDaHVuayhcbiAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICBidWZmZXJbbmV4dFdyaXRlSW5kZXgrK10sXG4gICAgICAgICAgICAgICAgJ1wiJHVuZGVmaW5lZFwiJyxcbiAgICAgICAgICAgICAgICAhMFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgY2xvc2VkID0gITA7XG4gICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICBuZXh0V3JpdGVJbmRleCA9PT0gYnVmZmVyLmxlbmd0aCAmJlxuICAgICAgICAgICAgICAoYnVmZmVyW25leHRXcml0ZUluZGV4XSA9IGNyZWF0ZVBlbmRpbmdDaHVuayhyZXNwb25zZSkpO1xuICAgICAgICAgICAgICBuZXh0V3JpdGVJbmRleCA8IGJ1ZmZlci5sZW5ndGg7XG5cbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgdHJpZ2dlckVycm9yT25DaHVuayhyZXNwb25zZSwgYnVmZmVyW25leHRXcml0ZUluZGV4KytdLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlRXJyb3JEZXYocmVzcG9uc2UsIGVycm9ySW5mbykge1xuICAgICAgdmFyIG5hbWUgPSBlcnJvckluZm8ubmFtZSxcbiAgICAgICAgZW52ID0gZXJyb3JJbmZvLmVudjtcbiAgICAgIGVycm9ySW5mbyA9IGJ1aWxkRmFrZUNhbGxTdGFjayhcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIGVycm9ySW5mby5zdGFjayxcbiAgICAgICAgZW52LFxuICAgICAgICAhMSxcbiAgICAgICAgRXJyb3IuYmluZChcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIGVycm9ySW5mby5tZXNzYWdlIHx8XG4gICAgICAgICAgICBcIkFuIGVycm9yIG9jY3VycmVkIGluIHRoZSBTZXJ2ZXIgQ29tcG9uZW50cyByZW5kZXIgYnV0IG5vIG1lc3NhZ2Ugd2FzIHByb3ZpZGVkXCJcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHJlc3BvbnNlID0gZ2V0Um9vdFRhc2socmVzcG9uc2UsIGVudik7XG4gICAgICByZXNwb25zZSA9IG51bGwgIT0gcmVzcG9uc2UgPyByZXNwb25zZS5ydW4oZXJyb3JJbmZvKSA6IGVycm9ySW5mbygpO1xuICAgICAgcmVzcG9uc2UubmFtZSA9IG5hbWU7XG4gICAgICByZXNwb25zZS5lbnZpcm9ubWVudE5hbWUgPSBlbnY7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZha2VGdW5jdGlvbihcbiAgICAgIG5hbWUsXG4gICAgICBmaWxlbmFtZSxcbiAgICAgIHNvdXJjZU1hcCxcbiAgICAgIGxpbmUsXG4gICAgICBjb2wsXG4gICAgICBlbmNsb3NpbmdMaW5lLFxuICAgICAgZW5jbG9zaW5nQ29sLFxuICAgICAgZW52aXJvbm1lbnROYW1lXG4gICAgKSB7XG4gICAgICBuYW1lIHx8IChuYW1lID0gXCI8YW5vbnltb3VzPlwiKTtcbiAgICAgIHZhciBlbmNvZGVkTmFtZSA9IEpTT04uc3RyaW5naWZ5KG5hbWUpO1xuICAgICAgMSA+IGVuY2xvc2luZ0xpbmUgPyAoZW5jbG9zaW5nTGluZSA9IDApIDogZW5jbG9zaW5nTGluZS0tO1xuICAgICAgMSA+IGVuY2xvc2luZ0NvbCA/IChlbmNsb3NpbmdDb2wgPSAwKSA6IGVuY2xvc2luZ0NvbC0tO1xuICAgICAgMSA+IGxpbmUgPyAobGluZSA9IDApIDogbGluZS0tO1xuICAgICAgMSA+IGNvbCA/IChjb2wgPSAwKSA6IGNvbC0tO1xuICAgICAgaWYgKFxuICAgICAgICBsaW5lIDwgZW5jbG9zaW5nTGluZSB8fFxuICAgICAgICAobGluZSA9PT0gZW5jbG9zaW5nTGluZSAmJiBjb2wgPCBlbmNsb3NpbmdDb2wpXG4gICAgICApXG4gICAgICAgIGVuY2xvc2luZ0NvbCA9IGVuY2xvc2luZ0xpbmUgPSAwO1xuICAgICAgMSA+IGxpbmVcbiAgICAgICAgPyAoKGxpbmUgPSBlbmNvZGVkTmFtZS5sZW5ndGggKyAzKSxcbiAgICAgICAgICAoZW5jbG9zaW5nQ29sIC09IGxpbmUpLFxuICAgICAgICAgIDAgPiBlbmNsb3NpbmdDb2wgJiYgKGVuY2xvc2luZ0NvbCA9IDApLFxuICAgICAgICAgIChjb2wgPSBjb2wgLSBlbmNsb3NpbmdDb2wgLSBsaW5lIC0gMyksXG4gICAgICAgICAgMCA+IGNvbCAmJiAoY29sID0gMCksXG4gICAgICAgICAgKGVuY29kZWROYW1lID1cbiAgICAgICAgICAgIFwiKHtcIiArXG4gICAgICAgICAgICBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICBcIjpcIiArXG4gICAgICAgICAgICBcIiBcIi5yZXBlYXQoZW5jbG9zaW5nQ29sKSArXG4gICAgICAgICAgICBcIl89PlwiICtcbiAgICAgICAgICAgIFwiIFwiLnJlcGVhdChjb2wpICtcbiAgICAgICAgICAgIFwiXygpfSlcIikpXG4gICAgICAgIDogMSA+IGVuY2xvc2luZ0xpbmVcbiAgICAgICAgICA/ICgoZW5jbG9zaW5nQ29sIC09IGVuY29kZWROYW1lLmxlbmd0aCArIDMpLFxuICAgICAgICAgICAgMCA+IGVuY2xvc2luZ0NvbCAmJiAoZW5jbG9zaW5nQ29sID0gMCksXG4gICAgICAgICAgICAoZW5jb2RlZE5hbWUgPVxuICAgICAgICAgICAgICBcIih7XCIgK1xuICAgICAgICAgICAgICBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICAgIFwiOlwiICtcbiAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGVuY2xvc2luZ0NvbCkgK1xuICAgICAgICAgICAgICBcIl89PlwiICtcbiAgICAgICAgICAgICAgXCJcXG5cIi5yZXBlYXQobGluZSAtIGVuY2xvc2luZ0xpbmUpICtcbiAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGNvbCkgK1xuICAgICAgICAgICAgICBcIl8oKX0pXCIpKVxuICAgICAgICAgIDogZW5jbG9zaW5nTGluZSA9PT0gbGluZVxuICAgICAgICAgICAgPyAoKGNvbCA9IGNvbCAtIGVuY2xvc2luZ0NvbCAtIDMpLFxuICAgICAgICAgICAgICAwID4gY29sICYmIChjb2wgPSAwKSxcbiAgICAgICAgICAgICAgKGVuY29kZWROYW1lID1cbiAgICAgICAgICAgICAgICBcIlxcblwiLnJlcGVhdChlbmNsb3NpbmdMaW5lIC0gMSkgK1xuICAgICAgICAgICAgICAgIFwiKHtcIiArXG4gICAgICAgICAgICAgICAgZW5jb2RlZE5hbWUgK1xuICAgICAgICAgICAgICAgIFwiOlxcblwiICtcbiAgICAgICAgICAgICAgICBcIiBcIi5yZXBlYXQoZW5jbG9zaW5nQ29sKSArXG4gICAgICAgICAgICAgICAgXCJfPT5cIiArXG4gICAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGNvbCkgK1xuICAgICAgICAgICAgICAgIFwiXygpfSlcIikpXG4gICAgICAgICAgICA6IChlbmNvZGVkTmFtZSA9XG4gICAgICAgICAgICAgICAgXCJcXG5cIi5yZXBlYXQoZW5jbG9zaW5nTGluZSAtIDEpICtcbiAgICAgICAgICAgICAgICBcIih7XCIgK1xuICAgICAgICAgICAgICAgIGVuY29kZWROYW1lICtcbiAgICAgICAgICAgICAgICBcIjpcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGVuY2xvc2luZ0NvbCkgK1xuICAgICAgICAgICAgICAgIFwiXz0+XCIgK1xuICAgICAgICAgICAgICAgIFwiXFxuXCIucmVwZWF0KGxpbmUgLSBlbmNsb3NpbmdMaW5lKSArXG4gICAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGNvbCkgK1xuICAgICAgICAgICAgICAgIFwiXygpfSlcIik7XG4gICAgICBlbmNvZGVkTmFtZSA9XG4gICAgICAgIDEgPiBlbmNsb3NpbmdMaW5lXG4gICAgICAgICAgPyBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICBcIlxcbi8qIFRoaXMgbW9kdWxlIHdhcyByZW5kZXJlZCBieSBhIFNlcnZlciBDb21wb25lbnQuIFR1cm4gb24gU291cmNlIE1hcHMgdG8gc2VlIHRoZSBzZXJ2ZXIgc291cmNlLiAqL1wiXG4gICAgICAgICAgOiBcIi8qIFRoaXMgbW9kdWxlIHdhcyByZW5kZXJlZCBieSBhIFNlcnZlciBDb21wb25lbnQuIFR1cm4gb24gU291cmNlIE1hcHMgdG8gc2VlIHRoZSBzZXJ2ZXIgc291cmNlLiAqL1wiICtcbiAgICAgICAgICAgIGVuY29kZWROYW1lO1xuICAgICAgZmlsZW5hbWUuc3RhcnRzV2l0aChcIi9cIikgJiYgKGZpbGVuYW1lID0gXCJmaWxlOi8vXCIgKyBmaWxlbmFtZSk7XG4gICAgICBzb3VyY2VNYXBcbiAgICAgICAgPyAoKGVuY29kZWROYW1lICs9XG4gICAgICAgICAgICBcIlxcbi8vIyBzb3VyY2VVUkw9YWJvdXQ6Ly9SZWFjdC9cIiArXG4gICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoZW52aXJvbm1lbnROYW1lKSArXG4gICAgICAgICAgICBcIi9cIiArXG4gICAgICAgICAgICBlbmNvZGVVUkkoZmlsZW5hbWUpICtcbiAgICAgICAgICAgIFwiP1wiICtcbiAgICAgICAgICAgIGZha2VGdW5jdGlvbklkeCsrKSxcbiAgICAgICAgICAoZW5jb2RlZE5hbWUgKz0gXCJcXG4vLyMgc291cmNlTWFwcGluZ1VSTD1cIiArIHNvdXJjZU1hcCkpXG4gICAgICAgIDogKGVuY29kZWROYW1lID0gZmlsZW5hbWVcbiAgICAgICAgICAgID8gZW5jb2RlZE5hbWUgKyAoXCJcXG4vLyMgc291cmNlVVJMPVwiICsgZW5jb2RlVVJJKGZpbGVuYW1lKSlcbiAgICAgICAgICAgIDogZW5jb2RlZE5hbWUgKyBcIlxcbi8vIyBzb3VyY2VVUkw9PGFub255bW91cz5cIik7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgZm4gPSAoMCwgZXZhbCkoZW5jb2RlZE5hbWUpW25hbWVdO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBmbiA9IGZ1bmN0aW9uIChfKSB7XG4gICAgICAgICAgcmV0dXJuIF8oKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gYnVpbGRGYWtlQ2FsbFN0YWNrKFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBzdGFjayxcbiAgICAgIGVudmlyb25tZW50TmFtZSxcbiAgICAgIHVzZUVuY2xvc2luZ0xpbmUsXG4gICAgICBpbm5lckNhbGxcbiAgICApIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RhY2subGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGZyYW1lID0gc3RhY2tbaV0sXG4gICAgICAgICAgZnJhbWVLZXkgPVxuICAgICAgICAgICAgZnJhbWUuam9pbihcIi1cIikgK1xuICAgICAgICAgICAgXCItXCIgK1xuICAgICAgICAgICAgZW52aXJvbm1lbnROYW1lICtcbiAgICAgICAgICAgICh1c2VFbmNsb3NpbmdMaW5lID8gXCItZVwiIDogXCItblwiKSxcbiAgICAgICAgICBmbiA9IGZha2VGdW5jdGlvbkNhY2hlLmdldChmcmFtZUtleSk7XG4gICAgICAgIGlmICh2b2lkIDAgPT09IGZuKSB7XG4gICAgICAgICAgZm4gPSBmcmFtZVswXTtcbiAgICAgICAgICB2YXIgZmlsZW5hbWUgPSBmcmFtZVsxXSxcbiAgICAgICAgICAgIGxpbmUgPSBmcmFtZVsyXSxcbiAgICAgICAgICAgIGNvbCA9IGZyYW1lWzNdLFxuICAgICAgICAgICAgZW5jbG9zaW5nTGluZSA9IGZyYW1lWzRdO1xuICAgICAgICAgIGZyYW1lID0gZnJhbWVbNV07XG4gICAgICAgICAgdmFyIGZpbmRTb3VyY2VNYXBVUkwgPSByZXNwb25zZS5fZGVidWdGaW5kU291cmNlTWFwVVJMO1xuICAgICAgICAgIGZpbmRTb3VyY2VNYXBVUkwgPSBmaW5kU291cmNlTWFwVVJMXG4gICAgICAgICAgICA/IGZpbmRTb3VyY2VNYXBVUkwoZmlsZW5hbWUsIGVudmlyb25tZW50TmFtZSlcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICBmbiA9IGNyZWF0ZUZha2VGdW5jdGlvbihcbiAgICAgICAgICAgIGZuLFxuICAgICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgICBmaW5kU291cmNlTWFwVVJMLFxuICAgICAgICAgICAgbGluZSxcbiAgICAgICAgICAgIGNvbCxcbiAgICAgICAgICAgIHVzZUVuY2xvc2luZ0xpbmUgPyBsaW5lIDogZW5jbG9zaW5nTGluZSxcbiAgICAgICAgICAgIHVzZUVuY2xvc2luZ0xpbmUgPyBjb2wgOiBmcmFtZSxcbiAgICAgICAgICAgIGVudmlyb25tZW50TmFtZVxuICAgICAgICAgICk7XG4gICAgICAgICAgZmFrZUZ1bmN0aW9uQ2FjaGUuc2V0KGZyYW1lS2V5LCBmbik7XG4gICAgICAgIH1cbiAgICAgICAgaW5uZXJDYWxsID0gZm4uYmluZChudWxsLCBpbm5lckNhbGwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGlubmVyQ2FsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Um9vdFRhc2socmVzcG9uc2UsIGNoaWxkRW52aXJvbm1lbnROYW1lKSB7XG4gICAgICB2YXIgcm9vdFRhc2sgPSByZXNwb25zZS5fZGVidWdSb290VGFzaztcbiAgICAgIHJldHVybiByb290VGFza1xuICAgICAgICA/IHJlc3BvbnNlLl9yb290RW52aXJvbm1lbnROYW1lICE9PSBjaGlsZEVudmlyb25tZW50TmFtZVxuICAgICAgICAgID8gKChyZXNwb25zZSA9IGNvbnNvbGUuY3JlYXRlVGFzay5iaW5kKFxuICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAnXCJ1c2UgJyArIGNoaWxkRW52aXJvbm1lbnROYW1lLnRvTG93ZXJDYXNlKCkgKyAnXCInXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgIHJvb3RUYXNrLnJ1bihyZXNwb25zZSkpXG4gICAgICAgICAgOiByb290VGFza1xuICAgICAgICA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRpYWxpemVGYWtlVGFzayhyZXNwb25zZSwgZGVidWdJbmZvKSB7XG4gICAgICBpZiAoIXN1cHBvcnRzQ3JlYXRlVGFzayB8fCBudWxsID09IGRlYnVnSW5mby5zdGFjaykgcmV0dXJuIG51bGw7XG4gICAgICB2YXIgY2FjaGVkRW50cnkgPSBkZWJ1Z0luZm8uZGVidWdUYXNrO1xuICAgICAgaWYgKHZvaWQgMCAhPT0gY2FjaGVkRW50cnkpIHJldHVybiBjYWNoZWRFbnRyeTtcbiAgICAgIHZhciB1c2VFbmNsb3NpbmdMaW5lID0gdm9pZCAwID09PSBkZWJ1Z0luZm8ua2V5LFxuICAgICAgICBzdGFjayA9IGRlYnVnSW5mby5zdGFjayxcbiAgICAgICAgZW52ID1cbiAgICAgICAgICBudWxsID09IGRlYnVnSW5mby5lbnYgPyByZXNwb25zZS5fcm9vdEVudmlyb25tZW50TmFtZSA6IGRlYnVnSW5mby5lbnY7XG4gICAgICBjYWNoZWRFbnRyeSA9XG4gICAgICAgIG51bGwgPT0gZGVidWdJbmZvLm93bmVyIHx8IG51bGwgPT0gZGVidWdJbmZvLm93bmVyLmVudlxuICAgICAgICAgID8gcmVzcG9uc2UuX3Jvb3RFbnZpcm9ubWVudE5hbWVcbiAgICAgICAgICA6IGRlYnVnSW5mby5vd25lci5lbnY7XG4gICAgICB2YXIgb3duZXJUYXNrID1cbiAgICAgICAgbnVsbCA9PSBkZWJ1Z0luZm8ub3duZXJcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IGluaXRpYWxpemVGYWtlVGFzayhyZXNwb25zZSwgZGVidWdJbmZvLm93bmVyKTtcbiAgICAgIGVudiA9XG4gICAgICAgIGVudiAhPT0gY2FjaGVkRW50cnlcbiAgICAgICAgICA/ICdcInVzZSAnICsgZW52LnRvTG93ZXJDYXNlKCkgKyAnXCInXG4gICAgICAgICAgOiB2b2lkIDAgIT09IGRlYnVnSW5mby5rZXlcbiAgICAgICAgICAgID8gXCI8XCIgKyAoZGVidWdJbmZvLm5hbWUgfHwgXCIuLi5cIikgKyBcIj5cIlxuICAgICAgICAgICAgOiB2b2lkIDAgIT09IGRlYnVnSW5mby5uYW1lXG4gICAgICAgICAgICAgID8gZGVidWdJbmZvLm5hbWUgfHwgXCJ1bmtub3duXCJcbiAgICAgICAgICAgICAgOiBcImF3YWl0IFwiICsgKGRlYnVnSW5mby5hd2FpdGVkLm5hbWUgfHwgXCJ1bmtub3duXCIpO1xuICAgICAgZW52ID0gY29uc29sZS5jcmVhdGVUYXNrLmJpbmQoY29uc29sZSwgZW52KTtcbiAgICAgIHVzZUVuY2xvc2luZ0xpbmUgPSBidWlsZEZha2VDYWxsU3RhY2soXG4gICAgICAgIHJlc3BvbnNlLFxuICAgICAgICBzdGFjayxcbiAgICAgICAgY2FjaGVkRW50cnksXG4gICAgICAgIHVzZUVuY2xvc2luZ0xpbmUsXG4gICAgICAgIGVudlxuICAgICAgKTtcbiAgICAgIG51bGwgPT09IG93bmVyVGFza1xuICAgICAgICA/ICgocmVzcG9uc2UgPSBnZXRSb290VGFzayhyZXNwb25zZSwgY2FjaGVkRW50cnkpKSxcbiAgICAgICAgICAocmVzcG9uc2UgPVxuICAgICAgICAgICAgbnVsbCAhPSByZXNwb25zZVxuICAgICAgICAgICAgICA/IHJlc3BvbnNlLnJ1bih1c2VFbmNsb3NpbmdMaW5lKVxuICAgICAgICAgICAgICA6IHVzZUVuY2xvc2luZ0xpbmUoKSkpXG4gICAgICAgIDogKHJlc3BvbnNlID0gb3duZXJUYXNrLnJ1bih1c2VFbmNsb3NpbmdMaW5lKSk7XG4gICAgICByZXR1cm4gKGRlYnVnSW5mby5kZWJ1Z1Rhc2sgPSByZXNwb25zZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZha2VKU1hDYWxsU2l0ZSgpIHtcbiAgICAgIHJldHVybiBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZUZha2VTdGFjayhyZXNwb25zZSwgZGVidWdJbmZvKSB7XG4gICAgICBpZiAodm9pZCAwID09PSBkZWJ1Z0luZm8uZGVidWdTdGFjaykge1xuICAgICAgICBudWxsICE9IGRlYnVnSW5mby5zdGFjayAmJlxuICAgICAgICAgIChkZWJ1Z0luZm8uZGVidWdTdGFjayA9IGNyZWF0ZUZha2VKU1hDYWxsU3RhY2tJbkRFVihcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgZGVidWdJbmZvLnN0YWNrLFxuICAgICAgICAgICAgbnVsbCA9PSBkZWJ1Z0luZm8uZW52ID8gXCJcIiA6IGRlYnVnSW5mby5lbnZcbiAgICAgICAgICApKTtcbiAgICAgICAgdmFyIG93bmVyID0gZGVidWdJbmZvLm93bmVyO1xuICAgICAgICBudWxsICE9IG93bmVyICYmXG4gICAgICAgICAgKGluaXRpYWxpemVGYWtlU3RhY2socmVzcG9uc2UsIG93bmVyKSxcbiAgICAgICAgICB2b2lkIDAgPT09IG93bmVyLmRlYnVnTG9jYXRpb24gJiZcbiAgICAgICAgICAgIG51bGwgIT0gZGVidWdJbmZvLmRlYnVnU3RhY2sgJiZcbiAgICAgICAgICAgIChvd25lci5kZWJ1Z0xvY2F0aW9uID0gZGVidWdJbmZvLmRlYnVnU3RhY2spKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZURlYnVnSW5mbyhyZXNwb25zZSwgZGVidWdJbmZvKSB7XG4gICAgICB2b2lkIDAgIT09IGRlYnVnSW5mby5zdGFjayAmJiBpbml0aWFsaXplRmFrZVRhc2socmVzcG9uc2UsIGRlYnVnSW5mbyk7XG4gICAgICBudWxsID09IGRlYnVnSW5mby5vd25lciAmJiBudWxsICE9IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RPd25lclxuICAgICAgICA/ICgoZGVidWdJbmZvLm93bmVyID0gcmVzcG9uc2UuX2RlYnVnUm9vdE93bmVyKSxcbiAgICAgICAgICAoZGVidWdJbmZvLnN0YWNrID0gbnVsbCksXG4gICAgICAgICAgKGRlYnVnSW5mby5kZWJ1Z1N0YWNrID0gcmVzcG9uc2UuX2RlYnVnUm9vdFN0YWNrKSxcbiAgICAgICAgICAoZGVidWdJbmZvLmRlYnVnVGFzayA9IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RUYXNrKSlcbiAgICAgICAgOiB2b2lkIDAgIT09IGRlYnVnSW5mby5zdGFjayAmJlxuICAgICAgICAgIGluaXRpYWxpemVGYWtlU3RhY2socmVzcG9uc2UsIGRlYnVnSW5mbyk7XG4gICAgICByZXR1cm4gZGVidWdJbmZvO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDdXJyZW50U3RhY2tJbkRFVigpIHtcbiAgICAgIHZhciBvd25lciA9IGN1cnJlbnRPd25lckluREVWO1xuICAgICAgaWYgKG51bGwgPT09IG93bmVyKSByZXR1cm4gXCJcIjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBpbmZvID0gXCJcIjtcbiAgICAgICAgaWYgKG93bmVyLm93bmVyIHx8IFwic3RyaW5nXCIgIT09IHR5cGVvZiBvd25lci5uYW1lKSB7XG4gICAgICAgICAgZm9yICg7IG93bmVyOyApIHtcbiAgICAgICAgICAgIHZhciBvd25lclN0YWNrID0gb3duZXIuZGVidWdTdGFjaztcbiAgICAgICAgICAgIGlmIChudWxsICE9IG93bmVyU3RhY2spIHtcbiAgICAgICAgICAgICAgaWYgKChvd25lciA9IG93bmVyLm93bmVyKSkge1xuICAgICAgICAgICAgICAgIHZhciBKU0NvbXBpbGVyX3RlbXBfY29uc3QgPSBpbmZvO1xuICAgICAgICAgICAgICAgIHZhciBlcnJvciA9IG93bmVyU3RhY2ssXG4gICAgICAgICAgICAgICAgICBwcmV2UHJlcGFyZVN0YWNrVHJhY2UgPSBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZTtcbiAgICAgICAgICAgICAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXBhcmVTdGFja1RyYWNlO1xuICAgICAgICAgICAgICAgIHZhciBzdGFjayA9IGVycm9yLnN0YWNrO1xuICAgICAgICAgICAgICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJldlByZXBhcmVTdGFja1RyYWNlO1xuICAgICAgICAgICAgICAgIHN0YWNrLnN0YXJ0c1dpdGgoXCJFcnJvcjogcmVhY3Qtc3RhY2stdG9wLWZyYW1lXFxuXCIpICYmXG4gICAgICAgICAgICAgICAgICAoc3RhY2sgPSBzdGFjay5zbGljZSgyOSkpO1xuICAgICAgICAgICAgICAgIHZhciBpZHggPSBzdGFjay5pbmRleE9mKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgIC0xICE9PSBpZHggJiYgKHN0YWNrID0gc3RhY2suc2xpY2UoaWR4ICsgMSkpO1xuICAgICAgICAgICAgICAgIGlkeCA9IHN0YWNrLmluZGV4T2YoXCJyZWFjdF9zdGFja19ib3R0b21fZnJhbWVcIik7XG4gICAgICAgICAgICAgICAgLTEgIT09IGlkeCAmJiAoaWR4ID0gc3RhY2subGFzdEluZGV4T2YoXCJcXG5cIiwgaWR4KSk7XG4gICAgICAgICAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9XG4gICAgICAgICAgICAgICAgICAtMSAhPT0gaWR4ID8gKHN0YWNrID0gc3RhY2suc2xpY2UoMCwgaWR4KSkgOiBcIlwiO1xuICAgICAgICAgICAgICAgIGluZm8gPVxuICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0ICsgKFwiXFxuXCIgKyBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQkanNjb21wJDAgPSBpbmZvO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdCA9IG93bmVyLm5hbWU7XG4gICAgICAgICAgaWYgKHZvaWQgMCA9PT0gcHJlZml4KVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgKHByZWZpeCA9XG4gICAgICAgICAgICAgICAgKChlcnJvciA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLykpICYmIGVycm9yWzFdKSB8fFxuICAgICAgICAgICAgICAgIFwiXCIpLFxuICAgICAgICAgICAgICAgIChzdWZmaXggPVxuICAgICAgICAgICAgICAgICAgLTEgPCB4LnN0YWNrLmluZGV4T2YoXCJcXG4gICAgYXRcIilcbiAgICAgICAgICAgICAgICAgICAgPyBcIiAoPGFub255bW91cz4pXCJcbiAgICAgICAgICAgICAgICAgICAgOiAtMSA8IHguc3RhY2suaW5kZXhPZihcIkBcIilcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiQHVua25vd246MDowXCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMCA9XG4gICAgICAgICAgICBcIlxcblwiICsgcHJlZml4ICsgSlNDb21waWxlcl90ZW1wX2NvbnN0ICsgc3VmZml4O1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMCA9XG4gICAgICAgICAgXCJcXG5FcnJvciBnZW5lcmF0aW5nIHN0YWNrOiBcIiArIHgubWVzc2FnZSArIFwiXFxuXCIgKyB4LnN0YWNrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUNvbnNvbGVFbnRyeShyZXNwb25zZSwganNvbikge1xuICAgICAgaWYgKHJlc3BvbnNlLl9yZXBsYXlDb25zb2xlKSB7XG4gICAgICAgIHZhciBibG9ja2VkQ2h1bmsgPSByZXNwb25zZS5fYmxvY2tlZENvbnNvbGU7XG4gICAgICAgIGlmIChudWxsID09IGJsb2NrZWRDaHVuaylcbiAgICAgICAgICAoYmxvY2tlZENodW5rID0gY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rKHJlc3BvbnNlLCBqc29uKSksXG4gICAgICAgICAgICBpbml0aWFsaXplTW9kZWxDaHVuayhibG9ja2VkQ2h1bmspLFxuICAgICAgICAgICAgXCJmdWxmaWxsZWRcIiA9PT0gYmxvY2tlZENodW5rLnN0YXR1c1xuICAgICAgICAgICAgICA/IHJlcGxheUNvbnNvbGVXaXRoQ2FsbFN0YWNrSW5ERVYocmVzcG9uc2UsIGJsb2NrZWRDaHVuay52YWx1ZSlcbiAgICAgICAgICAgICAgOiAoYmxvY2tlZENodW5rLnRoZW4oXG4gICAgICAgICAgICAgICAgICBmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2tJbkRFVihyZXNwb25zZSwgdik7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkge31cbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChyZXNwb25zZS5fYmxvY2tlZENvbnNvbGUgPSBibG9ja2VkQ2h1bmspKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdmFyIF9jaHVuazQgPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpO1xuICAgICAgICAgIF9jaHVuazQudGhlbihcbiAgICAgICAgICAgIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXBsYXlDb25zb2xlV2l0aENhbGxTdGFja0luREVWKHJlc3BvbnNlLCB2KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7fVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmVzcG9uc2UuX2Jsb2NrZWRDb25zb2xlID0gX2NodW5rNDtcbiAgICAgICAgICB2YXIgdW5ibG9jayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlLl9ibG9ja2VkQ29uc29sZSA9PT0gX2NodW5rNCAmJlxuICAgICAgICAgICAgICAocmVzcG9uc2UuX2Jsb2NrZWRDb25zb2xlID0gbnVsbCk7XG4gICAgICAgICAgICByZXNvbHZlTW9kZWxDaHVuayhyZXNwb25zZSwgX2NodW5rNCwganNvbik7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBibG9ja2VkQ2h1bmsudGhlbih1bmJsb2NrLCB1bmJsb2NrKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0aWFsaXplSU9JbmZvKHJlc3BvbnNlLCBpb0luZm8pIHtcbiAgICAgIHZvaWQgMCAhPT0gaW9JbmZvLnN0YWNrICYmXG4gICAgICAgIChpbml0aWFsaXplRmFrZVRhc2socmVzcG9uc2UsIGlvSW5mbyksXG4gICAgICAgIGluaXRpYWxpemVGYWtlU3RhY2socmVzcG9uc2UsIGlvSW5mbykpO1xuICAgICAgaW9JbmZvLnN0YXJ0ICs9IHJlc3BvbnNlLl90aW1lT3JpZ2luO1xuICAgICAgaW9JbmZvLmVuZCArPSByZXNwb25zZS5fdGltZU9yaWdpbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUlPSW5mbyhyZXNwb25zZSwgaWQsIG1vZGVsKSB7XG4gICAgICB2YXIgY2h1bmtzID0gcmVzcG9uc2UuX2NodW5rcyxcbiAgICAgICAgY2h1bmsgPSBjaHVua3MuZ2V0KGlkKTtcbiAgICAgIGNodW5rXG4gICAgICAgID8gKHJlc29sdmVNb2RlbENodW5rKHJlc3BvbnNlLCBjaHVuaywgbW9kZWwpLFxuICAgICAgICAgIFwicmVzb2x2ZWRfbW9kZWxcIiA9PT0gY2h1bmsuc3RhdHVzICYmIGluaXRpYWxpemVNb2RlbENodW5rKGNodW5rKSlcbiAgICAgICAgOiAoKGNodW5rID0gY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rKHJlc3BvbnNlLCBtb2RlbCkpLFxuICAgICAgICAgIGNodW5rcy5zZXQoaWQsIGNodW5rKSxcbiAgICAgICAgICBpbml0aWFsaXplTW9kZWxDaHVuayhjaHVuaykpO1xuICAgICAgXCJmdWxmaWxsZWRcIiA9PT0gY2h1bmsuc3RhdHVzXG4gICAgICAgID8gaW5pdGlhbGl6ZUlPSW5mbyhyZXNwb25zZSwgY2h1bmsudmFsdWUpXG4gICAgICAgIDogY2h1bmsudGhlbihcbiAgICAgICAgICAgIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgIGluaXRpYWxpemVJT0luZm8ocmVzcG9uc2UsIHYpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZ1bmN0aW9uICgpIHt9XG4gICAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWVyZ2VCdWZmZXIoYnVmZmVyLCBsYXN0Q2h1bmspIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBsID0gYnVmZmVyLmxlbmd0aCwgYnl0ZUxlbmd0aCA9IGxhc3RDaHVuay5sZW5ndGgsIGkgPSAwO1xuICAgICAgICBpIDwgbDtcbiAgICAgICAgaSsrXG4gICAgICApXG4gICAgICAgIGJ5dGVMZW5ndGggKz0gYnVmZmVyW2ldLmJ5dGVMZW5ndGg7XG4gICAgICBieXRlTGVuZ3RoID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZUxlbmd0aCk7XG4gICAgICBmb3IgKHZhciBfaTMgPSAoaSA9IDApOyBfaTMgPCBsOyBfaTMrKykge1xuICAgICAgICB2YXIgY2h1bmsgPSBidWZmZXJbX2kzXTtcbiAgICAgICAgYnl0ZUxlbmd0aC5zZXQoY2h1bmssIGkpO1xuICAgICAgICBpICs9IGNodW5rLmJ5dGVMZW5ndGg7XG4gICAgICB9XG4gICAgICBieXRlTGVuZ3RoLnNldChsYXN0Q2h1bmssIGkpO1xuICAgICAgcmV0dXJuIGJ5dGVMZW5ndGg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVUeXBlZEFycmF5KFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBpZCxcbiAgICAgIGJ1ZmZlcixcbiAgICAgIGxhc3RDaHVuayxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICAgYnl0ZXNQZXJFbGVtZW50XG4gICAgKSB7XG4gICAgICBidWZmZXIgPVxuICAgICAgICAwID09PSBidWZmZXIubGVuZ3RoICYmIDAgPT09IGxhc3RDaHVuay5ieXRlT2Zmc2V0ICUgYnl0ZXNQZXJFbGVtZW50XG4gICAgICAgICAgPyBsYXN0Q2h1bmtcbiAgICAgICAgICA6IG1lcmdlQnVmZmVyKGJ1ZmZlciwgbGFzdENodW5rKTtcbiAgICAgIGNvbnN0cnVjdG9yID0gbmV3IGNvbnN0cnVjdG9yKFxuICAgICAgICBidWZmZXIuYnVmZmVyLFxuICAgICAgICBidWZmZXIuYnl0ZU9mZnNldCxcbiAgICAgICAgYnVmZmVyLmJ5dGVMZW5ndGggLyBieXRlc1BlckVsZW1lbnRcbiAgICAgICk7XG4gICAgICByZXNvbHZlQnVmZmVyKHJlc3BvbnNlLCBpZCwgY29uc3RydWN0b3IpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmbHVzaEluaXRpYWxSZW5kZXJQZXJmb3JtYW5jZSgpIHt9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc0Z1bGxCaW5hcnlSb3cocmVzcG9uc2UsIGlkLCB0YWcsIGJ1ZmZlciwgY2h1bmspIHtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgNjU6XG4gICAgICAgICAgcmVzb2x2ZUJ1ZmZlcihyZXNwb25zZSwgaWQsIG1lcmdlQnVmZmVyKGJ1ZmZlciwgY2h1bmspLmJ1ZmZlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDc5OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgSW50OEFycmF5LCAxKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTExOlxuICAgICAgICAgIHJlc29sdmVCdWZmZXIoXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgMCA9PT0gYnVmZmVyLmxlbmd0aCA/IGNodW5rIDogbWVyZ2VCdWZmZXIoYnVmZmVyLCBjaHVuaylcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA4NTpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIFVpbnQ4Q2xhbXBlZEFycmF5LCAxKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgODM6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBJbnQxNkFycmF5LCAyKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTE1OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgVWludDE2QXJyYXksIDIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA3NjpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIEludDMyQXJyYXksIDQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAxMDg6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBVaW50MzJBcnJheSwgNCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDcxOlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgRmxvYXQzMkFycmF5LCA0KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTAzOlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgRmxvYXQ2NEFycmF5LCA4KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgNzc6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBCaWdJbnQ2NEFycmF5LCA4KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTA5OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgQmlnVWludDY0QXJyYXksIDgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA4NjpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIERhdGFWaWV3LCAxKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgc3RyaW5nRGVjb2RlciA9IHJlc3BvbnNlLl9zdHJpbmdEZWNvZGVyLCByb3cgPSBcIlwiLCBpID0gMDtcbiAgICAgICAgaSA8IGJ1ZmZlci5sZW5ndGg7XG4gICAgICAgIGkrK1xuICAgICAgKVxuICAgICAgICByb3cgKz0gc3RyaW5nRGVjb2Rlci5kZWNvZGUoYnVmZmVyW2ldLCBkZWNvZGVyT3B0aW9ucyk7XG4gICAgICByb3cgKz0gc3RyaW5nRGVjb2Rlci5kZWNvZGUoY2h1bmspO1xuICAgICAgcHJvY2Vzc0Z1bGxTdHJpbmdSb3cocmVzcG9uc2UsIGlkLCB0YWcsIHJvdyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NGdWxsU3RyaW5nUm93KHJlc3BvbnNlLCBpZCwgdGFnLCByb3cpIHtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgNzM6XG4gICAgICAgICAgcmVzb2x2ZU1vZHVsZShyZXNwb25zZSwgaWQsIHJvdyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzI6XG4gICAgICAgICAgaWQgPSByb3dbMF07XG4gICAgICAgICAgcm93ID0gcm93LnNsaWNlKDEpO1xuICAgICAgICAgIHJlc3BvbnNlID0gSlNPTi5wYXJzZShyb3csIHJlc3BvbnNlLl9mcm9tSlNPTik7XG4gICAgICAgICAgcm93ID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMuZDtcbiAgICAgICAgICBzd2l0Y2ggKGlkKSB7XG4gICAgICAgICAgICBjYXNlIFwiRFwiOlxuICAgICAgICAgICAgICByb3cuRChyZXNwb25zZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIkNcIjpcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgPyByb3cuQyhyZXNwb25zZSlcbiAgICAgICAgICAgICAgICA6IHJvdy5DKHJlc3BvbnNlWzBdLCByZXNwb25zZVsxXSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIkxcIjpcbiAgICAgICAgICAgICAgaWQgPSByZXNwb25zZVswXTtcbiAgICAgICAgICAgICAgdGFnID0gcmVzcG9uc2VbMV07XG4gICAgICAgICAgICAgIDMgPT09IHJlc3BvbnNlLmxlbmd0aFxuICAgICAgICAgICAgICAgID8gcm93LkwoaWQsIHRhZywgcmVzcG9uc2VbMl0pXG4gICAgICAgICAgICAgICAgOiByb3cuTChpZCwgdGFnKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibVwiOlxuICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICA/IHJvdy5tKHJlc3BvbnNlKVxuICAgICAgICAgICAgICAgIDogcm93Lm0ocmVzcG9uc2VbMF0sIHJlc3BvbnNlWzFdKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiWFwiOlxuICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICA/IHJvdy5YKHJlc3BvbnNlKVxuICAgICAgICAgICAgICAgIDogcm93LlgocmVzcG9uc2VbMF0sIHJlc3BvbnNlWzFdKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiU1wiOlxuICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICA/IHJvdy5TKHJlc3BvbnNlKVxuICAgICAgICAgICAgICAgIDogcm93LlMoXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlWzBdLFxuICAgICAgICAgICAgICAgICAgICAwID09PSByZXNwb25zZVsxXSA/IHZvaWQgMCA6IHJlc3BvbnNlWzFdLFxuICAgICAgICAgICAgICAgICAgICAzID09PSByZXNwb25zZS5sZW5ndGggPyByZXNwb25zZVsyXSA6IHZvaWQgMFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICA/IHJvdy5NKHJlc3BvbnNlKVxuICAgICAgICAgICAgICAgIDogcm93Lk0ocmVzcG9uc2VbMF0sIHJlc3BvbnNlWzFdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjk6XG4gICAgICAgICAgdGFnID0gcmVzcG9uc2UuX2NodW5rcztcbiAgICAgICAgICB2YXIgY2h1bmsgPSB0YWcuZ2V0KGlkKTtcbiAgICAgICAgICByb3cgPSBKU09OLnBhcnNlKHJvdyk7XG4gICAgICAgICAgdmFyIGVycm9yID0gcmVzb2x2ZUVycm9yRGV2KHJlc3BvbnNlLCByb3cpO1xuICAgICAgICAgIGVycm9yLmRpZ2VzdCA9IHJvdy5kaWdlc3Q7XG4gICAgICAgICAgY2h1bmtcbiAgICAgICAgICAgID8gdHJpZ2dlckVycm9yT25DaHVuayhyZXNwb25zZSwgY2h1bmssIGVycm9yKVxuICAgICAgICAgICAgOiB0YWcuc2V0KGlkLCBuZXcgUmVhY3RQcm9taXNlKFwicmVqZWN0ZWRcIiwgbnVsbCwgZXJyb3IpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4NDpcbiAgICAgICAgICB0YWcgPSByZXNwb25zZS5fY2h1bmtzO1xuICAgICAgICAgIChjaHVuayA9IHRhZy5nZXQoaWQpKSAmJiBcInBlbmRpbmdcIiAhPT0gY2h1bmsuc3RhdHVzXG4gICAgICAgICAgICA/IGNodW5rLnJlYXNvbi5lbnF1ZXVlVmFsdWUocm93KVxuICAgICAgICAgICAgOiAoY2h1bmsgJiYgcmVsZWFzZVBlbmRpbmdDaHVuayhyZXNwb25zZSwgY2h1bmspLFxuICAgICAgICAgICAgICB0YWcuc2V0KGlkLCBuZXcgUmVhY3RQcm9taXNlKFwiZnVsZmlsbGVkXCIsIHJvdywgbnVsbCkpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3ODpcbiAgICAgICAgICByZXNwb25zZS5fdGltZU9yaWdpbiA9ICtyb3cgLSBwZXJmb3JtYW5jZS50aW1lT3JpZ2luO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDY4OlxuICAgICAgICAgIGlkID0gZ2V0Q2h1bmsocmVzcG9uc2UsIGlkKTtcbiAgICAgICAgICBcImZ1bGZpbGxlZFwiICE9PSBpZC5zdGF0dXMgJiZcbiAgICAgICAgICAgIFwicmVqZWN0ZWRcIiAhPT0gaWQuc3RhdHVzICYmXG4gICAgICAgICAgICBcImhhbHRlZFwiICE9PSBpZC5zdGF0dXMgJiZcbiAgICAgICAgICAgIFwiYmxvY2tlZFwiICE9PSBpZC5zdGF0dXMgJiZcbiAgICAgICAgICAgIFwicmVzb2x2ZWRfbW9kdWxlXCIgIT09IGlkLnN0YXR1cyAmJlxuICAgICAgICAgICAgKCh0YWcgPSBpZC5fZGVidWdDaHVuayksXG4gICAgICAgICAgICAoY2h1bmsgPSBjcmVhdGVSZXNvbHZlZE1vZGVsQ2h1bmsocmVzcG9uc2UsIHJvdykpLFxuICAgICAgICAgICAgKGNodW5rLl9kZWJ1Z0NodW5rID0gdGFnKSxcbiAgICAgICAgICAgIChpZC5fZGVidWdDaHVuayA9IGNodW5rKSxcbiAgICAgICAgICAgIGluaXRpYWxpemVEZWJ1Z0NodW5rKHJlc3BvbnNlLCBpZCksXG4gICAgICAgICAgICBcImJsb2NrZWRcIiA9PT0gY2h1bmsuc3RhdHVzICYmXG4gICAgICAgICAgICAgIHZvaWQgMCA9PT0gcmVzcG9uc2UuX2RlYnVnQ2hhbm5lbCAmJlxuICAgICAgICAgICAgICAnXCInID09PSByb3dbMF0gJiZcbiAgICAgICAgICAgICAgXCIkXCIgPT09IHJvd1sxXSAmJlxuICAgICAgICAgICAgICAoKHJvdyA9IHJvdy5zbGljZSgyLCByb3cubGVuZ3RoIC0gMSkuc3BsaXQoXCI6XCIpKSxcbiAgICAgICAgICAgICAgKHJvdyA9IHBhcnNlSW50KHJvd1swXSwgMTYpKSxcbiAgICAgICAgICAgICAgXCJwZW5kaW5nXCIgPT09IGdldENodW5rKHJlc3BvbnNlLCByb3cpLnN0YXR1cyAmJlxuICAgICAgICAgICAgICAgIChpZC5fZGVidWdDaHVuayA9IG51bGwpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzQ6XG4gICAgICAgICAgcmVzb2x2ZUlPSW5mbyhyZXNwb25zZSwgaWQsIHJvdyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODc6XG4gICAgICAgICAgcmVzb2x2ZUNvbnNvbGVFbnRyeShyZXNwb25zZSwgcm93KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4MjpcbiAgICAgICAgICBzdGFydFJlYWRhYmxlU3RyZWFtKHJlc3BvbnNlLCBpZCwgdm9pZCAwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTQ6XG4gICAgICAgICAgc3RhcnRSZWFkYWJsZVN0cmVhbShyZXNwb25zZSwgaWQsIFwiYnl0ZXNcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgODg6XG4gICAgICAgICAgc3RhcnRBc3luY0l0ZXJhYmxlKHJlc3BvbnNlLCBpZCwgITEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyMDpcbiAgICAgICAgICBzdGFydEFzeW5jSXRlcmFibGUocmVzcG9uc2UsIGlkLCAhMCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjc6XG4gICAgICAgICAgKHJlc3BvbnNlID0gcmVzcG9uc2UuX2NodW5rcy5nZXQoaWQpKSAmJlxuICAgICAgICAgICAgXCJmdWxmaWxsZWRcIiA9PT0gcmVzcG9uc2Uuc3RhdHVzICYmXG4gICAgICAgICAgICByZXNwb25zZS5yZWFzb24uY2xvc2UoXCJcIiA9PT0gcm93ID8gJ1wiJHVuZGVmaW5lZFwiJyA6IHJvdyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgaWYgKFwiXCIgPT09IHJvdykge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoKHJvdyA9IHJlc3BvbnNlLl9jaHVua3MpLFxuICAgICAgICAgICAgICAodGFnID0gcm93LmdldChpZCkpIHx8XG4gICAgICAgICAgICAgICAgcm93LnNldChpZCwgKHRhZyA9IGNyZWF0ZVBlbmRpbmdDaHVuayhyZXNwb25zZSkpKSxcbiAgICAgICAgICAgICAgXCJwZW5kaW5nXCIgPT09IHRhZy5zdGF0dXMgfHwgXCJibG9ja2VkXCIgPT09IHRhZy5zdGF0dXMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHJlbGVhc2VQZW5kaW5nQ2h1bmsocmVzcG9uc2UsIHRhZyksXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlID0gdGFnKSxcbiAgICAgICAgICAgICAgICAocmVzcG9uc2Uuc3RhdHVzID0gXCJoYWx0ZWRcIiksXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlLnZhbHVlID0gbnVsbCksXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlYXNvbiA9IG51bGwpO1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgKHRhZyA9IHJlc3BvbnNlLl9jaHVua3MpLFxuICAgICAgICAgICAgICAoY2h1bmsgPSB0YWcuZ2V0KGlkKSlcbiAgICAgICAgICAgICAgICA/IHJlc29sdmVNb2RlbENodW5rKHJlc3BvbnNlLCBjaHVuaywgcm93KVxuICAgICAgICAgICAgICAgIDogdGFnLnNldChpZCwgY3JlYXRlUmVzb2x2ZWRNb2RlbENodW5rKHJlc3BvbnNlLCByb3cpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc0JpbmFyeUNodW5rKHdlYWtSZXNwb25zZSwgc3RyZWFtU3RhdGUsIGNodW5rKSB7XG4gICAgICBpZiAodm9pZCAwICE9PSB3ZWFrUmVzcG9uc2Uud2Vhay5kZXJlZigpKSB7XG4gICAgICAgIHZhciByZXNwb25zZSA9IHVud3JhcFdlYWtSZXNwb25zZSh3ZWFrUmVzcG9uc2UpLFxuICAgICAgICAgIGkgPSAwLFxuICAgICAgICAgIHJvd1N0YXRlID0gc3RyZWFtU3RhdGUuX3Jvd1N0YXRlO1xuICAgICAgICB3ZWFrUmVzcG9uc2UgPSBzdHJlYW1TdGF0ZS5fcm93SUQ7XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgdmFyIHJvd1RhZyA9IHN0cmVhbVN0YXRlLl9yb3dUYWcsXG4gICAgICAgICAgICByb3dMZW5ndGggPSBzdHJlYW1TdGF0ZS5fcm93TGVuZ3RoLFxuICAgICAgICAgICAgYnVmZmVyID0gc3RyZWFtU3RhdGUuX2J1ZmZlcixcbiAgICAgICAgICAgIGNodW5rTGVuZ3RoID0gY2h1bmsubGVuZ3RoO1xuICAgICAgICAgIGkgPCBjaHVua0xlbmd0aDtcblxuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgbGFzdElkeCA9IC0xO1xuICAgICAgICAgIHN3aXRjaCAocm93U3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgbGFzdElkeCA9IGNodW5rW2krK107XG4gICAgICAgICAgICAgIDU4ID09PSBsYXN0SWR4XG4gICAgICAgICAgICAgICAgPyAocm93U3RhdGUgPSAxKVxuICAgICAgICAgICAgICAgIDogKHdlYWtSZXNwb25zZSA9XG4gICAgICAgICAgICAgICAgICAgICh3ZWFrUmVzcG9uc2UgPDwgNCkgfFxuICAgICAgICAgICAgICAgICAgICAoOTYgPCBsYXN0SWR4ID8gbGFzdElkeCAtIDg3IDogbGFzdElkeCAtIDQ4KSk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICByb3dTdGF0ZSA9IGNodW5rW2ldO1xuICAgICAgICAgICAgICA4NCA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgNjUgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDc5ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAxMTEgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDg1ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICA4MyA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgMTE1ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICA3NiA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgMTA4ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICA3MSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgMTAzID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICA3NyA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgMTA5ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICA4NiA9PT0gcm93U3RhdGVcbiAgICAgICAgICAgICAgICA/ICgocm93VGFnID0gcm93U3RhdGUpLCAocm93U3RhdGUgPSAyKSwgaSsrKVxuICAgICAgICAgICAgICAgIDogKDY0IDwgcm93U3RhdGUgJiYgOTEgPiByb3dTdGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgMzUgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICAgIDExNCA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgICAgMTIwID09PSByb3dTdGF0ZVxuICAgICAgICAgICAgICAgICAgPyAoKHJvd1RhZyA9IHJvd1N0YXRlKSwgKHJvd1N0YXRlID0gMyksIGkrKylcbiAgICAgICAgICAgICAgICAgIDogKChyb3dUYWcgPSAwKSwgKHJvd1N0YXRlID0gMykpO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgbGFzdElkeCA9IGNodW5rW2krK107XG4gICAgICAgICAgICAgIDQ0ID09PSBsYXN0SWR4XG4gICAgICAgICAgICAgICAgPyAocm93U3RhdGUgPSA0KVxuICAgICAgICAgICAgICAgIDogKHJvd0xlbmd0aCA9XG4gICAgICAgICAgICAgICAgICAgIChyb3dMZW5ndGggPDwgNCkgfFxuICAgICAgICAgICAgICAgICAgICAoOTYgPCBsYXN0SWR4ID8gbGFzdElkeCAtIDg3IDogbGFzdElkeCAtIDQ4KSk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICBsYXN0SWR4ID0gY2h1bmsuaW5kZXhPZigxMCwgaSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAobGFzdElkeCA9IGkgKyByb3dMZW5ndGgpLFxuICAgICAgICAgICAgICAgIGxhc3RJZHggPiBjaHVuay5sZW5ndGggJiYgKGxhc3RJZHggPSAtMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBvZmZzZXQgPSBjaHVuay5ieXRlT2Zmc2V0ICsgaTtcbiAgICAgICAgICBpZiAoLTEgPCBsYXN0SWR4KVxuICAgICAgICAgICAgKHJvd0xlbmd0aCA9IG5ldyBVaW50OEFycmF5KGNodW5rLmJ1ZmZlciwgb2Zmc2V0LCBsYXN0SWR4IC0gaSkpLFxuICAgICAgICAgICAgICBwcm9jZXNzRnVsbEJpbmFyeVJvdyhcbiAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICB3ZWFrUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgcm93VGFnLFxuICAgICAgICAgICAgICAgIGJ1ZmZlcixcbiAgICAgICAgICAgICAgICByb3dMZW5ndGhcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKGkgPSBsYXN0SWR4KSxcbiAgICAgICAgICAgICAgMyA9PT0gcm93U3RhdGUgJiYgaSsrLFxuICAgICAgICAgICAgICAocm93TGVuZ3RoID0gd2Vha1Jlc3BvbnNlID0gcm93VGFnID0gcm93U3RhdGUgPSAwKSxcbiAgICAgICAgICAgICAgKGJ1ZmZlci5sZW5ndGggPSAwKTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsuYnVmZmVyLCBvZmZzZXQsIGNodW5rLmJ5dGVMZW5ndGggLSBpKTtcbiAgICAgICAgICAgIGJ1ZmZlci5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgIHJvd0xlbmd0aCAtPSBjaHVuay5ieXRlTGVuZ3RoO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0cmVhbVN0YXRlLl9yb3dTdGF0ZSA9IHJvd1N0YXRlO1xuICAgICAgICBzdHJlYW1TdGF0ZS5fcm93SUQgPSB3ZWFrUmVzcG9uc2U7XG4gICAgICAgIHN0cmVhbVN0YXRlLl9yb3dUYWcgPSByb3dUYWc7XG4gICAgICAgIHN0cmVhbVN0YXRlLl9yb3dMZW5ndGggPSByb3dMZW5ndGg7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZyb21KU09OQ2FsbGJhY2socmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHZhbHVlKVxuICAgICAgICAgIHJldHVybiBwYXJzZU1vZGVsU3RyaW5nKHJlc3BvbnNlLCB0aGlzLCBrZXksIHZhbHVlKTtcbiAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB2YWx1ZSAmJiBudWxsICE9PSB2YWx1ZSkge1xuICAgICAgICAgIGlmICh2YWx1ZVswXSA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFKVxuICAgICAgICAgICAgYjoge1xuICAgICAgICAgICAgICB2YXIgb3duZXIgPSB2YWx1ZVs0XTtcbiAgICAgICAgICAgICAga2V5ID0gdmFsdWVbNV07XG4gICAgICAgICAgICAgIHZhciB2YWxpZGF0ZWQgPSB2YWx1ZVs2XTtcbiAgICAgICAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAgICAgICAgICAgICB0eXBlOiB2YWx1ZVsxXSxcbiAgICAgICAgICAgICAgICBrZXk6IHZhbHVlWzJdLFxuICAgICAgICAgICAgICAgIHByb3BzOiB2YWx1ZVszXSxcbiAgICAgICAgICAgICAgICBfb3duZXI6IHZvaWQgMCA9PT0gb3duZXIgPyBudWxsIDogb3duZXJcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLCBcInJlZlwiLCB7XG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgZ2V0OiBudWxsUmVmR2V0dGVyXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB2YWx1ZS5fc3RvcmUgPSB7fTtcbiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLl9zdG9yZSwgXCJ2YWxpZGF0ZWRcIiwge1xuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWxpZGF0ZWRcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgXCJfZGVidWdJbmZvXCIsIHtcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLCBcIl9kZWJ1Z1N0YWNrXCIsIHtcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdm9pZCAwID09PSBrZXkgPyBudWxsIDoga2V5XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsdWUsIFwiX2RlYnVnVGFza1wiLCB7XG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGlmIChudWxsICE9PSBpbml0aWFsaXppbmdIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGVkID0gaW5pdGlhbGl6aW5nSGFuZGxlcjtcbiAgICAgICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyID0gdmFsaWRhdGVkLnBhcmVudDtcbiAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVkLmVycm9yZWQpIHtcbiAgICAgICAgICAgICAgICAgIGtleSA9IG5ldyBSZWFjdFByb21pc2UoXCJyZWplY3RlZFwiLCBudWxsLCB2YWxpZGF0ZWQucmVhc29uKTtcbiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVFbGVtZW50KHJlc3BvbnNlLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB2YWxpZGF0ZWQgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh2YWx1ZS50eXBlKSB8fCBcIlwiLFxuICAgICAgICAgICAgICAgICAgICBvd25lcjogdmFsdWUuX293bmVyXG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgdmFsaWRhdGVkLmRlYnVnU3RhY2sgPSB2YWx1ZS5fZGVidWdTdGFjaztcbiAgICAgICAgICAgICAgICAgIHN1cHBvcnRzQ3JlYXRlVGFzayAmJlxuICAgICAgICAgICAgICAgICAgICAodmFsaWRhdGVkLmRlYnVnVGFzayA9IHZhbHVlLl9kZWJ1Z1Rhc2spO1xuICAgICAgICAgICAgICAgICAga2V5Ll9kZWJ1Z0luZm8gPSBbdmFsaWRhdGVkXTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gY3JlYXRlTGF6eUNodW5rV3JhcHBlcihrZXkpO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKDAgPCB2YWxpZGF0ZWQuZGVwcykge1xuICAgICAgICAgICAgICAgICAga2V5ID0gbmV3IFJlYWN0UHJvbWlzZShcImJsb2NrZWRcIiwgbnVsbCwgbnVsbCk7XG4gICAgICAgICAgICAgICAgICB2YWxpZGF0ZWQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgIHZhbGlkYXRlZC5jaHVuayA9IGtleTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5pdGlhbGl6ZUVsZW1lbnQuYmluZChudWxsLCByZXNwb25zZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAga2V5LnRoZW4odmFsdWUsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gY3JlYXRlTGF6eUNodW5rV3JhcHBlcihrZXkpO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaW5pdGlhbGl6ZUVsZW1lbnQocmVzcG9uc2UsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2xvc2Uod2Vha1Jlc3BvbnNlKSB7XG4gICAgICByZXBvcnRHbG9iYWxFcnJvcih3ZWFrUmVzcG9uc2UsIEVycm9yKFwiQ29ubmVjdGlvbiBjbG9zZWQuXCIpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9TZXJ2ZXJDYWxsJDEoKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgXCJTZXJ2ZXIgRnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgZHVyaW5nIGluaXRpYWwgcmVuZGVyLiBUaGlzIHdvdWxkIGNyZWF0ZSBhIGZldGNoIHdhdGVyZmFsbC4gVHJ5IHRvIHVzZSBhIFNlcnZlciBDb21wb25lbnQgdG8gcGFzcyBkYXRhIHRvIENsaWVudCBDb21wb25lbnRzIGluc3RlYWQuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlRnJvbU9wdGlvbnMob3B0aW9ucykge1xuICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZUluc3RhbmNlKFxuICAgICAgICBvcHRpb25zLnNlcnZlckNvbnN1bWVyTWFuaWZlc3QubW9kdWxlTWFwLFxuICAgICAgICBvcHRpb25zLnNlcnZlckNvbnN1bWVyTWFuaWZlc3Quc2VydmVyTW9kdWxlTWFwLFxuICAgICAgICBvcHRpb25zLnNlcnZlckNvbnN1bWVyTWFuaWZlc3QubW9kdWxlTG9hZGluZyxcbiAgICAgICAgbm9TZXJ2ZXJDYWxsJDEsXG4gICAgICAgIG9wdGlvbnMuZW5jb2RlRm9ybUFjdGlvbixcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMubm9uY2UgPyBvcHRpb25zLm5vbmNlIDogdm9pZCAwLFxuICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMudGVtcG9yYXJ5UmVmZXJlbmNlc1xuICAgICAgICAgID8gb3B0aW9ucy50ZW1wb3JhcnlSZWZlcmVuY2VzXG4gICAgICAgICAgOiB2b2lkIDAsXG4gICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5maW5kU291cmNlTWFwVVJMID8gb3B0aW9ucy5maW5kU291cmNlTWFwVVJMIDogdm9pZCAwLFxuICAgICAgICBvcHRpb25zID8gITAgPT09IG9wdGlvbnMucmVwbGF5Q29uc29sZUxvZ3MgOiAhMSxcbiAgICAgICAgb3B0aW9ucyAmJiBvcHRpb25zLmVudmlyb25tZW50TmFtZSA/IG9wdGlvbnMuZW52aXJvbm1lbnROYW1lIDogdm9pZCAwLFxuICAgICAgICB2b2lkIDBcbiAgICAgICkuX3dlYWtSZXNwb25zZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhcnRSZWFkaW5nRnJvbVN0cmVhbShyZXNwb25zZSwgc3RyZWFtKSB7XG4gICAgICBmdW5jdGlvbiBwcm9ncmVzcyhfcmVmKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IF9yZWYudmFsdWU7XG4gICAgICAgIGlmIChfcmVmLmRvbmUpIGNsb3NlKHJlc3BvbnNlKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBwcm9jZXNzQmluYXJ5Q2h1bmsocmVzcG9uc2UsIHN0cmVhbVN0YXRlLCB2YWx1ZSksXG4gICAgICAgICAgICByZWFkZXIucmVhZCgpLnRoZW4ocHJvZ3Jlc3MpLmNhdGNoKGVycm9yKVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBlcnJvcihlKSB7XG4gICAgICAgIHJlcG9ydEdsb2JhbEVycm9yKHJlc3BvbnNlLCBlKTtcbiAgICAgIH1cbiAgICAgIHZhciBzdHJlYW1TdGF0ZSA9IGNyZWF0ZVN0cmVhbVN0YXRlKCksXG4gICAgICAgIHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5yZWFkKCkudGhlbihwcm9ncmVzcykuY2F0Y2goZXJyb3IpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub1NlcnZlckNhbGwoKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgXCJTZXJ2ZXIgRnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgZHVyaW5nIGluaXRpYWwgcmVuZGVyLiBUaGlzIHdvdWxkIGNyZWF0ZSBhIGZldGNoIHdhdGVyZmFsbC4gVHJ5IHRvIHVzZSBhIFNlcnZlciBDb21wb25lbnQgdG8gcGFzcyBkYXRhIHRvIENsaWVudCBDb21wb25lbnRzIGluc3RlYWQuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHZhciB1dGlsID0gcmVxdWlyZShcInV0aWxcIiksXG4gICAgICBSZWFjdERPTSA9IHJlcXVpcmUoXCJyZWFjdC1kb21cIiksXG4gICAgICBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKSxcbiAgICAgIGRlY29kZXJPcHRpb25zID0geyBzdHJlYW06ICEwIH0sXG4gICAgICBiaW5kJDEgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCxcbiAgICAgIGNodW5rQ2FjaGUgPSBuZXcgTWFwKCksXG4gICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscyA9XG4gICAgICAgIFJlYWN0RE9NLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxcbiAgICAgIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxcbiAgICAgIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxcbiAgICAgIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksXG4gICAgICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLFxuICAgICAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSxcbiAgICAgIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIiksXG4gICAgICBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxcbiAgICAgIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksXG4gICAgICBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxcbiAgICAgIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpLFxuICAgICAgUkVBQ1RfQUNUSVZJVFlfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5hY3Rpdml0eVwiKSxcbiAgICAgIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcixcbiAgICAgIEFTWU5DX0lURVJBVE9SID0gU3ltYm9sLmFzeW5jSXRlcmF0b3IsXG4gICAgICBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksXG4gICAgICBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICAgIGpzeFByb3BzUGFyZW50cyA9IG5ldyBXZWFrTWFwKCksXG4gICAgICBqc3hDaGlsZHJlblBhcmVudHMgPSBuZXcgV2Vha01hcCgpLFxuICAgICAgQ0xJRU5UX1JFRkVSRU5DRV9UQUcgPSBTeW1ib2wuZm9yKFwicmVhY3QuY2xpZW50LnJlZmVyZW5jZVwiKSxcbiAgICAgIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGUsXG4gICAgICBrbm93blNlcnZlclJlZmVyZW5jZXMgPSBuZXcgV2Vha01hcCgpLFxuICAgICAgYm91bmRDYWNoZSA9IG5ldyBXZWFrTWFwKCksXG4gICAgICBmYWtlU2VydmVyRnVuY3Rpb25JZHggPSAwLFxuICAgICAgRnVuY3Rpb25CaW5kID0gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQsXG4gICAgICBBcnJheVNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLFxuICAgICAgdjhGcmFtZVJlZ0V4cCA9XG4gICAgICAgIC9eIHszfSBhdCAoPzooLispIFxcKCguKyk6KFxcZCspOihcXGQrKVxcKXwoPzphc3luYyApPyguKyk6KFxcZCspOihcXGQrKSkkLyxcbiAgICAgIGpzY1NwaWRlck1vbmtleUZyYW1lUmVnRXhwID0gLyg/OiguKilAKT8oLiopOihcXGQrKTooXFxkKykvLFxuICAgICAgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpLFxuICAgICAgcHJlZml4LFxuICAgICAgc3VmZml4O1xuICAgIG5ldyAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgV2Vha01hcCA/IFdlYWtNYXAgOiBNYXApKCk7XG4gICAgdmFyIFJlYWN0U2hhcmVkSW50ZXJhbHNTZXJ2ZXIgPVxuICAgICAgICBSZWFjdC5fX1NFUlZFUl9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsXG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscyA9XG4gICAgICAgIFJlYWN0Ll9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSB8fFxuICAgICAgICBSZWFjdFNoYXJlZEludGVyYWxzU2VydmVyO1xuICAgIFJlYWN0UHJvbWlzZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFByb21pc2UucHJvdG90eXBlKTtcbiAgICBSZWFjdFByb21pc2UucHJvdG90eXBlLnRoZW4gPSBmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kZWxcIjpcbiAgICAgICAgICBpbml0aWFsaXplTW9kZWxDaHVuayh0aGlzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZHVsZVwiOlxuICAgICAgICAgIGluaXRpYWxpemVNb2R1bGVDaHVuayh0aGlzKTtcbiAgICAgIH1cbiAgICAgIHZhciByZXNvbHZlQ2FsbGJhY2sgPSByZXNvbHZlLFxuICAgICAgICByZWplY3RDYWxsYmFjayA9IHJlamVjdCxcbiAgICAgICAgd3JhcHBlclByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzLCByZWopIHtcbiAgICAgICAgICByZXNvbHZlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICB3cmFwcGVyUHJvbWlzZS5fZGVidWdJbmZvID0gX3RoaXMuX2RlYnVnSW5mbztcbiAgICAgICAgICAgIHJlcyh2YWx1ZSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICByZWplY3QgPSBmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICAgICAgICB3cmFwcGVyUHJvbWlzZS5fZGVidWdJbmZvID0gX3RoaXMuX2RlYnVnSW5mbztcbiAgICAgICAgICAgIHJlaihyZWFzb24pO1xuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgd3JhcHBlclByb21pc2UudGhlbihyZXNvbHZlQ2FsbGJhY2ssIHJlamVjdENhbGxiYWNrKTtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlc29sdmUgJiYgcmVzb2x2ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgY2FzZSBcImJsb2NrZWRcIjpcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZXNvbHZlICYmXG4gICAgICAgICAgICAobnVsbCA9PT0gdGhpcy52YWx1ZSAmJiAodGhpcy52YWx1ZSA9IFtdKSxcbiAgICAgICAgICAgIHRoaXMudmFsdWUucHVzaChyZXNvbHZlKSk7XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcmVqZWN0ICYmXG4gICAgICAgICAgICAobnVsbCA9PT0gdGhpcy5yZWFzb24gJiYgKHRoaXMucmVhc29uID0gW10pLFxuICAgICAgICAgICAgdGhpcy5yZWFzb24ucHVzaChyZWplY3QpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImhhbHRlZFwiOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlamVjdCAmJiByZWplY3QodGhpcy5yZWFzb24pO1xuICAgICAgfVxuICAgIH07XG4gICAgdmFyIGRlYnVnQ2hhbm5lbFJlZ2lzdHJ5ID1cbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgRmluYWxpemF0aW9uUmVnaXN0cnlcbiAgICAgICAgICA/IG5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShjbGVhbnVwRGVidWdDaGFubmVsKVxuICAgICAgICAgIDogbnVsbCxcbiAgICAgIGluaXRpYWxpemluZ0hhbmRsZXIgPSBudWxsLFxuICAgICAgbWlnaHRIYXZlU3RhdGljQ29uc3RydWN0b3IgPSAvXFxiY2xhc3NcXGIuKlxcYnN0YXRpY1xcYi8sXG4gICAgICBzdXBwb3J0c0NyZWF0ZVRhc2sgPSAhIWNvbnNvbGUuY3JlYXRlVGFzayxcbiAgICAgIGZha2VGdW5jdGlvbkNhY2hlID0gbmV3IE1hcCgpLFxuICAgICAgZmFrZUZ1bmN0aW9uSWR4ID0gMCxcbiAgICAgIGNyZWF0ZUZha2VKU1hDYWxsU3RhY2sgPSB7XG4gICAgICAgIHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZTogZnVuY3Rpb24gKHJlc3BvbnNlLCBzdGFjaywgZW52aXJvbm1lbnROYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIGJ1aWxkRmFrZUNhbGxTdGFjayhcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgICBlbnZpcm9ubWVudE5hbWUsXG4gICAgICAgICAgICAhMSxcbiAgICAgICAgICAgIGZha2VKU1hDYWxsU2l0ZVxuICAgICAgICAgICkoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNyZWF0ZUZha2VKU1hDYWxsU3RhY2tJbkRFViA9XG4gICAgICAgIGNyZWF0ZUZha2VKU1hDYWxsU3RhY2sucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoXG4gICAgICAgICAgY3JlYXRlRmFrZUpTWENhbGxTdGFja1xuICAgICAgICApLFxuICAgICAgY3VycmVudE93bmVySW5ERVYgPSBudWxsLFxuICAgICAgcmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2sgPSB7XG4gICAgICAgIHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZTogZnVuY3Rpb24gKHJlc3BvbnNlLCBwYXlsb2FkKSB7XG4gICAgICAgICAgdmFyIG1ldGhvZE5hbWUgPSBwYXlsb2FkWzBdLFxuICAgICAgICAgICAgc3RhY2tUcmFjZSA9IHBheWxvYWRbMV0sXG4gICAgICAgICAgICBvd25lciA9IHBheWxvYWRbMl0sXG4gICAgICAgICAgICBlbnYgPSBwYXlsb2FkWzNdO1xuICAgICAgICAgIHBheWxvYWQgPSBwYXlsb2FkLnNsaWNlKDQpO1xuICAgICAgICAgIHZhciBwcmV2U3RhY2sgPSBSZWFjdFNoYXJlZEludGVybmFscy5nZXRDdXJyZW50U3RhY2s7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrID0gZ2V0Q3VycmVudFN0YWNrSW5ERVY7XG4gICAgICAgICAgY3VycmVudE93bmVySW5ERVYgPSBudWxsID09PSBvd25lciA/IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RPd25lciA6IG93bmVyO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhOiB7XG4gICAgICAgICAgICAgIHZhciBvZmZzZXQgPSAwO1xuICAgICAgICAgICAgICBzd2l0Y2ggKG1ldGhvZE5hbWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGlyXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRpcnhtbFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJncm91cEVuZFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJ0YWJsZVwiOlxuICAgICAgICAgICAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGJpbmQkMS5hcHBseShcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZVttZXRob2ROYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgW2NvbnNvbGVdLmNvbmNhdChwYXlsb2FkKVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgY2FzZSBcImFzc2VydFwiOlxuICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gMTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgbmV3QXJncyA9IHBheWxvYWQuc2xpY2UoMCk7XG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBuZXdBcmdzW29mZnNldF1cbiAgICAgICAgICAgICAgICA/IG5ld0FyZ3Muc3BsaWNlKFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgIFwiXFx1MDAxYlswbVxcdTAwMWJbN20lYyVzXFx1MDAxYlswbSVjIFwiICsgbmV3QXJnc1tvZmZzZXRdLFxuICAgICAgICAgICAgICAgICAgICBcImJhY2tncm91bmQ6ICNlNmU2ZTY7YmFja2dyb3VuZDogbGlnaHQtZGFyayhyZ2JhKDAsMCwwLDAuMSksIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkpO2NvbG9yOiAjMDAwMDAwO2NvbG9yOiBsaWdodC1kYXJrKCMwMDAwMDAsICNmZmZmZmYpO2JvcmRlci1yYWRpdXM6IDJweFwiLFxuICAgICAgICAgICAgICAgICAgICBcIiBcIiArIGVudiArIFwiIFwiLFxuICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBuZXdBcmdzLnNwbGljZShcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICBcIlxcdTAwMWJbMG1cXHUwMDFiWzdtJWMlc1xcdTAwMWJbMG0lY1wiLFxuICAgICAgICAgICAgICAgICAgICBcImJhY2tncm91bmQ6ICNlNmU2ZTY7YmFja2dyb3VuZDogbGlnaHQtZGFyayhyZ2JhKDAsMCwwLDAuMSksIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkpO2NvbG9yOiAjMDAwMDAwO2NvbG9yOiBsaWdodC1kYXJrKCMwMDAwMDAsICNmZmZmZmYpO2JvcmRlci1yYWRpdXM6IDJweFwiLFxuICAgICAgICAgICAgICAgICAgICBcIiBcIiArIGVudiArIFwiIFwiLFxuICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBuZXdBcmdzLnVuc2hpZnQoY29uc29sZSk7XG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGJpbmQkMS5hcHBseShcbiAgICAgICAgICAgICAgICBjb25zb2xlW21ldGhvZE5hbWVdLFxuICAgICAgICAgICAgICAgIG5ld0FyZ3NcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBjYWxsU3RhY2sgPSBidWlsZEZha2VDYWxsU3RhY2soXG4gICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICBzdGFja1RyYWNlLFxuICAgICAgICAgICAgICBlbnYsXG4gICAgICAgICAgICAgICExLFxuICAgICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAobnVsbCAhPSBvd25lcikge1xuICAgICAgICAgICAgICB2YXIgdGFzayA9IGluaXRpYWxpemVGYWtlVGFzayhyZXNwb25zZSwgb3duZXIpO1xuICAgICAgICAgICAgICBpbml0aWFsaXplRmFrZVN0YWNrKHJlc3BvbnNlLCBvd25lcik7XG4gICAgICAgICAgICAgIGlmIChudWxsICE9PSB0YXNrKSB7XG4gICAgICAgICAgICAgICAgdGFzay5ydW4oY2FsbFN0YWNrKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciByb290VGFzayA9IGdldFJvb3RUYXNrKHJlc3BvbnNlLCBlbnYpO1xuICAgICAgICAgICAgbnVsbCAhPSByb290VGFzayA/IHJvb3RUYXNrLnJ1bihjYWxsU3RhY2spIDogY2FsbFN0YWNrKCk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIChjdXJyZW50T3duZXJJbkRFViA9IG51bGwpLFxuICAgICAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrID0gcHJldlN0YWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICByZXBsYXlDb25zb2xlV2l0aENhbGxTdGFja0luREVWID1cbiAgICAgICAgcmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2sucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoXG4gICAgICAgICAgcmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2tcbiAgICAgICAgKTtcbiAgICBleHBvcnRzLmNyZWF0ZUZyb21GZXRjaCA9IGZ1bmN0aW9uIChwcm9taXNlRm9yUmVzcG9uc2UsIG9wdGlvbnMpIHtcbiAgICAgIHZhciByZXNwb25zZSA9IGNyZWF0ZVJlc3BvbnNlRnJvbU9wdGlvbnMob3B0aW9ucyk7XG4gICAgICBwcm9taXNlRm9yUmVzcG9uc2UudGhlbihcbiAgICAgICAgZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICBzdGFydFJlYWRpbmdGcm9tU3RyZWFtKHJlc3BvbnNlLCByLmJvZHkpO1xuICAgICAgICB9LFxuICAgICAgICBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIHJlcG9ydEdsb2JhbEVycm9yKHJlc3BvbnNlLCBlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBnZXRSb290KHJlc3BvbnNlKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuY3JlYXRlRnJvbU5vZGVTdHJlYW0gPSBmdW5jdGlvbiAoXG4gICAgICBzdHJlYW0sXG4gICAgICBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0LFxuICAgICAgb3B0aW9uc1xuICAgICkge1xuICAgICAgdmFyIHJlc3BvbnNlJGpzY29tcCQwID0gbmV3IFJlc3BvbnNlSW5zdGFuY2UoXG4gICAgICAgICAgc2VydmVyQ29uc3VtZXJNYW5pZmVzdC5tb2R1bGVNYXAsXG4gICAgICAgICAgc2VydmVyQ29uc3VtZXJNYW5pZmVzdC5zZXJ2ZXJNb2R1bGVNYXAsXG4gICAgICAgICAgc2VydmVyQ29uc3VtZXJNYW5pZmVzdC5tb2R1bGVMb2FkaW5nLFxuICAgICAgICAgIG5vU2VydmVyQ2FsbCxcbiAgICAgICAgICBvcHRpb25zID8gb3B0aW9ucy5lbmNvZGVGb3JtQWN0aW9uIDogdm9pZCAwLFxuICAgICAgICAgIG9wdGlvbnMgJiYgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMubm9uY2UgPyBvcHRpb25zLm5vbmNlIDogdm9pZCAwLFxuICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMuZmluZFNvdXJjZU1hcFVSTFxuICAgICAgICAgICAgPyBvcHRpb25zLmZpbmRTb3VyY2VNYXBVUkxcbiAgICAgICAgICAgIDogdm9pZCAwLFxuICAgICAgICAgIG9wdGlvbnMgPyAhMCA9PT0gb3B0aW9ucy5yZXBsYXlDb25zb2xlTG9ncyA6ICExLFxuICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5lbnZpcm9ubWVudE5hbWUgPyBvcHRpb25zLmVudmlyb25tZW50TmFtZSA6IHZvaWQgMCxcbiAgICAgICAgICB2b2lkIDBcbiAgICAgICAgKS5fd2Vha1Jlc3BvbnNlLFxuICAgICAgICBzdHJlYW1TdGF0ZSA9IGNyZWF0ZVN0cmVhbVN0YXRlKCk7XG4gICAgICBzdHJlYW0ub24oXCJkYXRhXCIsIGZ1bmN0aW9uIChjaHVuaykge1xuICAgICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGNodW5rKSB7XG4gICAgICAgICAgaWYgKHZvaWQgMCAhPT0gcmVzcG9uc2UkanNjb21wJDAud2Vhay5kZXJlZigpKSB7XG4gICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSB1bndyYXBXZWFrUmVzcG9uc2UocmVzcG9uc2UkanNjb21wJDApLFxuICAgICAgICAgICAgICAgIGkgPSAwLFxuICAgICAgICAgICAgICAgIHJvd1N0YXRlID0gc3RyZWFtU3RhdGUuX3Jvd1N0YXRlLFxuICAgICAgICAgICAgICAgIHJvd0lEID0gc3RyZWFtU3RhdGUuX3Jvd0lELFxuICAgICAgICAgICAgICAgIHJvd1RhZyA9IHN0cmVhbVN0YXRlLl9yb3dUYWcsXG4gICAgICAgICAgICAgICAgcm93TGVuZ3RoID0gc3RyZWFtU3RhdGUuX3Jvd0xlbmd0aCxcbiAgICAgICAgICAgICAgICBidWZmZXIgPSBzdHJlYW1TdGF0ZS5fYnVmZmVyLFxuICAgICAgICAgICAgICAgIGNodW5rTGVuZ3RoID0gY2h1bmsubGVuZ3RoO1xuICAgICAgICAgICAgICBpIDwgY2h1bmtMZW5ndGg7XG5cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB2YXIgbGFzdElkeCA9IC0xO1xuICAgICAgICAgICAgICBzd2l0Y2ggKHJvd1N0YXRlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgbGFzdElkeCA9IGNodW5rLmNoYXJDb2RlQXQoaSsrKTtcbiAgICAgICAgICAgICAgICAgIDU4ID09PSBsYXN0SWR4XG4gICAgICAgICAgICAgICAgICAgID8gKHJvd1N0YXRlID0gMSlcbiAgICAgICAgICAgICAgICAgICAgOiAocm93SUQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgKHJvd0lEIDw8IDQpIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICg5NiA8IGxhc3RJZHggPyBsYXN0SWR4IC0gODcgOiBsYXN0SWR4IC0gNDgpKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgIHJvd1N0YXRlID0gY2h1bmsuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICAgICAgICAgIDg0ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgNjUgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICA3OSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDExMSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDg1ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgODMgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICAxMTUgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICA3NiA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDEwOCA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDcxID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgMTAzID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgNzcgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICAxMDkgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICA4NiA9PT0gcm93U3RhdGVcbiAgICAgICAgICAgICAgICAgICAgPyAoKHJvd1RhZyA9IHJvd1N0YXRlKSwgKHJvd1N0YXRlID0gMiksIGkrKylcbiAgICAgICAgICAgICAgICAgICAgOiAoNjQgPCByb3dTdGF0ZSAmJiA5MSA+IHJvd1N0YXRlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgMTE0ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgMTIwID09PSByb3dTdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgID8gKChyb3dUYWcgPSByb3dTdGF0ZSksIChyb3dTdGF0ZSA9IDMpLCBpKyspXG4gICAgICAgICAgICAgICAgICAgICAgOiAoKHJvd1RhZyA9IDApLCAocm93U3RhdGUgPSAzKSk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICBsYXN0SWR4ID0gY2h1bmsuY2hhckNvZGVBdChpKyspO1xuICAgICAgICAgICAgICAgICAgNDQgPT09IGxhc3RJZHhcbiAgICAgICAgICAgICAgICAgICAgPyAocm93U3RhdGUgPSA0KVxuICAgICAgICAgICAgICAgICAgICA6IChyb3dMZW5ndGggPVxuICAgICAgICAgICAgICAgICAgICAgICAgKHJvd0xlbmd0aCA8PCA0KSB8XG4gICAgICAgICAgICAgICAgICAgICAgICAoOTYgPCBsYXN0SWR4ID8gbGFzdElkeCAtIDg3IDogbGFzdElkeCAtIDQ4KSk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICBsYXN0SWR4ID0gY2h1bmsuaW5kZXhPZihcIlxcblwiLCBpKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgIGlmICg4NCAhPT0gcm93VGFnKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIkJpbmFyeSBSU0MgY2h1bmtzIGNhbm5vdCBiZSBlbmNvZGVkIGFzIHN0cmluZ3MuIFRoaXMgaXMgYSBidWcgaW4gdGhlIHdpcmluZyBvZiB0aGUgUmVhY3Qgc3RyZWFtcy5cIlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgaWYgKHJvd0xlbmd0aCA8IGNodW5rLmxlbmd0aCB8fCBjaHVuay5sZW5ndGggPiAzICogcm93TGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIlN0cmluZyBjaHVua3MgbmVlZCB0byBiZSBwYXNzZWQgaW4gdGhlaXIgb3JpZ2luYWwgc2hhcGUuIE5vdCBzcGxpdCBpbnRvIHNtYWxsZXIgc3RyaW5nIGNodW5rcy4gVGhpcyBpcyBhIGJ1ZyBpbiB0aGUgd2lyaW5nIG9mIHRoZSBSZWFjdCBzdHJlYW1zLlwiXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBsYXN0SWR4ID0gY2h1bmsubGVuZ3RoO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmICgtMSA8IGxhc3RJZHgpIHtcbiAgICAgICAgICAgICAgICBpZiAoMCA8IGJ1ZmZlci5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJTdHJpbmcgY2h1bmtzIG5lZWQgdG8gYmUgcGFzc2VkIGluIHRoZWlyIG9yaWdpbmFsIHNoYXBlLiBOb3Qgc3BsaXQgaW50byBzbWFsbGVyIHN0cmluZyBjaHVua3MuIFRoaXMgaXMgYSBidWcgaW4gdGhlIHdpcmluZyBvZiB0aGUgUmVhY3Qgc3RyZWFtcy5cIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpID0gY2h1bmsuc2xpY2UoaSwgbGFzdElkeCk7XG4gICAgICAgICAgICAgICAgcHJvY2Vzc0Z1bGxTdHJpbmdSb3cocmVzcG9uc2UsIHJvd0lELCByb3dUYWcsIGkpO1xuICAgICAgICAgICAgICAgIGkgPSBsYXN0SWR4O1xuICAgICAgICAgICAgICAgIDMgPT09IHJvd1N0YXRlICYmIGkrKztcbiAgICAgICAgICAgICAgICByb3dMZW5ndGggPSByb3dJRCA9IHJvd1RhZyA9IHJvd1N0YXRlID0gMDtcbiAgICAgICAgICAgICAgICBidWZmZXIubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaHVuay5sZW5ndGggIT09IGkpXG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIlN0cmluZyBjaHVua3MgbmVlZCB0byBiZSBwYXNzZWQgaW4gdGhlaXIgb3JpZ2luYWwgc2hhcGUuIE5vdCBzcGxpdCBpbnRvIHNtYWxsZXIgc3RyaW5nIGNodW5rcy4gVGhpcyBpcyBhIGJ1ZyBpbiB0aGUgd2lyaW5nIG9mIHRoZSBSZWFjdCBzdHJlYW1zLlwiXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0cmVhbVN0YXRlLl9yb3dTdGF0ZSA9IHJvd1N0YXRlO1xuICAgICAgICAgICAgc3RyZWFtU3RhdGUuX3Jvd0lEID0gcm93SUQ7XG4gICAgICAgICAgICBzdHJlYW1TdGF0ZS5fcm93VGFnID0gcm93VGFnO1xuICAgICAgICAgICAgc3RyZWFtU3RhdGUuX3Jvd0xlbmd0aCA9IHJvd0xlbmd0aDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBwcm9jZXNzQmluYXJ5Q2h1bmsocmVzcG9uc2UkanNjb21wJDAsIHN0cmVhbVN0YXRlLCBjaHVuayk7XG4gICAgICB9KTtcbiAgICAgIHN0cmVhbS5vbihcImVycm9yXCIsIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICByZXBvcnRHbG9iYWxFcnJvcihyZXNwb25zZSRqc2NvbXAkMCwgZXJyb3IpO1xuICAgICAgfSk7XG4gICAgICBzdHJlYW0ub24oXCJlbmRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gY2xvc2UocmVzcG9uc2UkanNjb21wJDApO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZ2V0Um9vdChyZXNwb25zZSRqc2NvbXAkMCk7XG4gICAgfTtcbiAgICBleHBvcnRzLmNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSA9IGZ1bmN0aW9uIChzdHJlYW0sIG9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnMgPSBjcmVhdGVSZXNwb25zZUZyb21PcHRpb25zKG9wdGlvbnMpO1xuICAgICAgc3RhcnRSZWFkaW5nRnJvbVN0cmVhbShvcHRpb25zLCBzdHJlYW0pO1xuICAgICAgcmV0dXJuIGdldFJvb3Qob3B0aW9ucyk7XG4gICAgfTtcbiAgICBleHBvcnRzLmNyZWF0ZVNlcnZlclJlZmVyZW5jZSA9IGZ1bmN0aW9uIChpZCkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclJlZmVyZW5jZSQxKGlkLCBub1NlcnZlckNhbGwkMSk7XG4gICAgfTtcbiAgICBleHBvcnRzLmNyZWF0ZVRlbXBvcmFyeVJlZmVyZW5jZVNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBuZXcgTWFwKCk7XG4gICAgfTtcbiAgICBleHBvcnRzLmVuY29kZVJlcGx5ID0gZnVuY3Rpb24gKHZhbHVlLCBvcHRpb25zKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICB2YXIgYWJvcnQgPSBwcm9jZXNzUmVwbHkoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMudGVtcG9yYXJ5UmVmZXJlbmNlc1xuICAgICAgICAgICAgPyBvcHRpb25zLnRlbXBvcmFyeVJlZmVyZW5jZXNcbiAgICAgICAgICAgIDogdm9pZCAwLFxuICAgICAgICAgIHJlc29sdmUsXG4gICAgICAgICAgcmVqZWN0XG4gICAgICAgICk7XG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuc2lnbmFsKSB7XG4gICAgICAgICAgdmFyIHNpZ25hbCA9IG9wdGlvbnMuc2lnbmFsO1xuICAgICAgICAgIGlmIChzaWduYWwuYWJvcnRlZCkgYWJvcnQoc2lnbmFsLnJlYXNvbik7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgbGlzdGVuZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIGFib3J0KHNpZ25hbC5yZWFzb24pO1xuICAgICAgICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIGxpc3RlbmVyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIGxpc3RlbmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gICAgZXhwb3J0cy5yZWdpc3RlclNlcnZlclJlZmVyZW5jZSA9IGZ1bmN0aW9uIChcbiAgICAgIHJlZmVyZW5jZSxcbiAgICAgIGlkLFxuICAgICAgZW5jb2RlRm9ybUFjdGlvblxuICAgICkge1xuICAgICAgcmVnaXN0ZXJCb3VuZFNlcnZlclJlZmVyZW5jZShyZWZlcmVuY2UsIGlkLCBudWxsLCBlbmNvZGVGb3JtQWN0aW9uKTtcbiAgICAgIHJldHVybiByZWZlcmVuY2U7XG4gICAgfTtcbiAgfSkoKTtcbiJdLCJuYW1lcyI6WyJyZXNvbHZlQ2xpZW50UmVmZXJlbmNlIiwiYnVuZGxlckNvbmZpZyIsIm1ldGFkYXRhIiwibW9kdWxlRXhwb3J0cyIsIm5hbWUiLCJFcnJvciIsImxlbmd0aCIsImlkIiwiY2h1bmtzIiwicmVzb2x2ZVNlcnZlclJlZmVyZW5jZSIsInJlc29sdmVkTW9kdWxlRGF0YSIsImlkeCIsImxhc3RJbmRleE9mIiwic2xpY2UiLCJhc3luYyIsInJlcXVpcmVBc3luY01vZHVsZSIsInByb21pc2UiLCJnbG9iYWxUaGlzIiwiX19uZXh0X3JlcXVpcmVfXyIsInRoZW4iLCJzdGF0dXMiLCJ2YWx1ZSIsInJlYXNvbiIsImlnbm9yZVJlamVjdCIsInByZWxvYWRNb2R1bGUiLCJwcm9taXNlcyIsImkiLCJjaHVua0lkIiwiZW50cnkiLCJjaHVua0NhY2hlIiwiZ2V0IiwiX193ZWJwYWNrX2NodW5rX2xvYWRfXyIsInB1c2giLCJyZXNvbHZlIiwic2V0IiwiYmluZCIsIlByb21pc2UiLCJhbGwiLCJyZXF1aXJlTW9kdWxlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJwcmVwYXJlRGVzdGluYXRpb25XaXRoQ2h1bmtzIiwibW9kdWxlTG9hZGluZyIsIm5vbmNlJGpzY29tcCQwIiwibm9uY2UiLCJKU0NvbXBpbGVyX3RlbXBfY29uc3QiLCJSZWFjdERPTVNoYXJlZEludGVybmFscyIsImQiLCJKU0NvbXBpbGVyX3RlbXBfY29uc3QkanNjb21wJDAiLCJYIiwiSlNDb21waWxlcl90ZW1wX2NvbnN0JGpzY29tcCQxIiwicHJlZml4IiwiSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0IiwiY3Jvc3NPcmlnaW4iLCJjYWxsIiwiZ2V0SXRlcmF0b3JGbiIsIm1heWJlSXRlcmFibGUiLCJNQVlCRV9JVEVSQVRPUl9TWU1CT0wiLCJpc09iamVjdFByb3RvdHlwZSIsIm9iamVjdCIsIk9iamVjdFByb3RvdHlwZSIsIk9iamVjdCIsInByb3RvdHlwZSIsImdldFByb3RvdHlwZU9mIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImlzU2ltcGxlT2JqZWN0IiwibmFtZXMiLCJkZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsIm9iamVjdE5hbWUiLCJ0b1N0cmluZyIsImRlc2NyaWJlS2V5Rm9yRXJyb3JNZXNzYWdlIiwia2V5IiwiZW5jb2RlZEtleSIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlIiwiaXNBcnJheUltcGwiLCIkJHR5cGVvZiIsIkNMSUVOVF9SRUZFUkVOQ0VfVEFHIiwiZGlzcGxheU5hbWUiLCJTdHJpbmciLCJkZXNjcmliZUVsZW1lbnRUeXBlIiwidHlwZSIsIlJFQUNUX1NVU1BFTlNFX1RZUEUiLCJSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUiLCJSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIiwicmVuZGVyIiwiUkVBQ1RfTUVNT19UWVBFIiwiUkVBQ1RfTEFaWV9UWVBFIiwicGF5bG9hZCIsIl9wYXlsb2FkIiwiX2luaXQiLCJ4IiwiZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UiLCJvYmplY3RPckFycmF5IiwiZXhwYW5kZWROYW1lIiwib2JqS2luZCIsInN0YXJ0IiwianN4Q2hpbGRyZW5QYXJlbnRzIiwiaGFzIiwiUkVBQ1RfRUxFTUVOVF9UWVBFIiwianN4UHJvcHNQYXJlbnRzIiwia2V5cyIsIl92YWx1ZTIiLCJfc3Vic3RyMiIsInJlcGVhdCIsInNlcmlhbGl6ZU51bWJlciIsIm51bWJlciIsIk51bWJlciIsImlzRmluaXRlIiwiSW5maW5pdHkiLCJwcm9jZXNzUmVwbHkiLCJyb290IiwiZm9ybUZpZWxkUHJlZml4IiwidGVtcG9yYXJ5UmVmZXJlbmNlcyIsInJlamVjdCIsInNlcmlhbGl6ZVR5cGVkQXJyYXkiLCJ0YWciLCJ0eXBlZEFycmF5IiwiQmxvYiIsIlVpbnQ4QXJyYXkiLCJidWZmZXIiLCJieXRlT2Zmc2V0IiwiYnl0ZUxlbmd0aCIsImJsb2JJZCIsIm5leHRQYXJ0SWQiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwic2VyaWFsaXplQmluYXJ5UmVhZGVyIiwicmVhZGVyIiwicHJvZ3Jlc3MiLCJkb25lIiwiZGF0YSIsInN0cmVhbUlkIiwicGVuZGluZ1BhcnRzIiwicmVhZCIsInNlcmlhbGl6ZVJlYWRlciIsInBhcnRKU09OIiwicmVzb2x2ZVRvSlNPTiIsInNlcmlhbGl6ZVJlYWRhYmxlU3RyZWFtIiwic3RyZWFtIiwiYmluYXJ5UmVhZGVyIiwiZ2V0UmVhZGVyIiwibW9kZSIsInNlcmlhbGl6ZUFzeW5jSXRlcmFibGUiLCJpdGVyYWJsZSIsIml0ZXJhdG9yIiwiX3BhcnRKU09OIiwibmV4dCIsIngkMCIsIm9yaWdpbmFsVmFsdWUiLCJEYXRlIiwiY29uc29sZSIsImVycm9yIiwiaW5kZXhPZiIsInBhcmVudFJlZmVyZW5jZSIsIndyaXR0ZW5PYmplY3RzIiwiaW5pdCIsImxhenlJZCIsInNlcmlhbGl6ZU1vZGVsIiwiX2xhenlJZCIsIl9wYXJ0SlNPTjIiLCJfZGF0YSIsInByb21pc2VJZCIsInBhcnRWYWx1ZSIsIl9wYXJ0SlNPTjMiLCJtb2RlbFJvb3QiLCJfZGF0YTMiLCJmb3JFYWNoIiwib3JpZ2luYWxLZXkiLCJNYXAiLCJBcnJheSIsImZyb20iLCJTZXQiLCJBcnJheUJ1ZmZlciIsIkludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiQmlnSW50NjRBcnJheSIsIkJpZ1VpbnQ2NEFycmF5IiwiRGF0YVZpZXciLCJSZWFkYWJsZVN0cmVhbSIsIkFTWU5DX0lURVJBVE9SIiwiUkVBQ1RfQ09OVEVYVF9UWVBFIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZGVzY3JpcHRpb24iLCJrbm93blNlcnZlclJlZmVyZW5jZXMiLCJib3VuZCIsIm1vZGVsIiwiV2Vha01hcCIsImpzb24iLCJlbmNvZGVGb3JtRGF0YSIsInJlZmVyZW5jZSIsInRoZW5hYmxlIiwicmVzIiwicmVqIiwiYm9keSIsImUiLCJkZWZhdWx0RW5jb2RlRm9ybUFjdGlvbiIsImlkZW50aWZpZXJQcmVmaXgiLCJyZWZlcmVuY2VDbG9zdXJlIiwiYm91bmRDYWNoZSIsInByZWZpeGVkRGF0YSIsIm1ldGhvZCIsImVuY1R5cGUiLCJpc1NpZ25hdHVyZUVxdWFsIiwicmVmZXJlbmNlSWQiLCJudW1iZXJPZkJvdW5kQXJncyIsImJvdW5kUHJvbWlzZSIsImJvdW5kQXJncyIsImNyZWF0ZUZha2VTZXJ2ZXJGdW5jdGlvbiIsImZpbGVuYW1lIiwic291cmNlTWFwIiwibGluZSIsImNvbCIsImVudmlyb25tZW50TmFtZSIsImlubmVyRnVuY3Rpb24iLCJlbmNvZGVkTmFtZSIsInN0YXJ0c1dpdGgiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlbmNvZGVVUkkiLCJmYWtlU2VydmVyRnVuY3Rpb25JZHgiLCJldmFsIiwicmVnaXN0ZXJCb3VuZFNlcnZlclJlZmVyZW5jZSIsImVuY29kZUZvcm1BY3Rpb24iLCJvcmlnaW5hbEJpbmQiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiJCRGT1JNX0FDVElPTiIsIiQkSVNfU0lHTkFUVVJFX0VRVUFMIiwiRnVuY3Rpb25CaW5kIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJuZXdGbiIsImFyZ3MiLCJBcnJheVNsaWNlIiwiY29uY2F0IiwiY3JlYXRlQm91bmRTZXJ2ZXJSZWZlcmVuY2UiLCJtZXRhRGF0YSIsImNhbGxTZXJ2ZXIiLCJmaW5kU291cmNlTWFwVVJMIiwiYWN0aW9uIiwibG9jYXRpb24iLCJmdW5jdGlvbk5hbWUiLCJlbnYiLCJwYXJzZVN0YWNrTG9jYXRpb24iLCJzdGFjayIsImVuZE9mRmlyc3QiLCJlbmRPZlNlY29uZCIsInY4RnJhbWVSZWdFeHAiLCJleGVjIiwianNjU3BpZGVyTW9ua2V5RnJhbWVSZWdFeHAiLCJjcmVhdGVTZXJ2ZXJSZWZlcmVuY2UkMSIsImdldENvbXBvbmVudE5hbWVGcm9tVHlwZSIsIlJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UiLCJSRUFDVF9GUkFHTUVOVF9UWVBFIiwiUkVBQ1RfUFJPRklMRVJfVFlQRSIsIlJFQUNUX1NUUklDVF9NT0RFX1RZUEUiLCJSRUFDVF9BQ1RJVklUWV9UWVBFIiwiUkVBQ1RfUE9SVEFMX1RZUEUiLCJSRUFDVF9DT05TVU1FUl9UWVBFIiwiX2NvbnRleHQiLCJpbm5lclR5cGUiLCJwcmVwYXJlU3RhY2tUcmFjZSIsInN0cnVjdHVyZWRTdGFja1RyYWNlIiwibWVzc2FnZSIsIlJlYWN0UHJvbWlzZSIsIl9kZWJ1Z0luZm8iLCJfZGVidWdDaHVuayIsInVud3JhcFdlYWtSZXNwb25zZSIsIndlYWtSZXNwb25zZSIsIndlYWsiLCJkZXJlZiIsImNsZWFudXBEZWJ1Z0NoYW5uZWwiLCJkZWJ1Z0NoYW5uZWwiLCJyZWFkQ2h1bmsiLCJjaHVuayIsImluaXRpYWxpemVNb2RlbENodW5rIiwiaW5pdGlhbGl6ZU1vZHVsZUNodW5rIiwiZ2V0Um9vdCIsImdldENodW5rIiwiY3JlYXRlUGVuZGluZ0NodW5rIiwicmVzcG9uc2UiLCJfcGVuZGluZ0NodW5rcyIsIl93ZWFrUmVzcG9uc2UiLCJfcGVuZGluZ0luaXRpYWxSZW5kZXIiLCJjbGVhclRpbWVvdXQiLCJyZWxlYXNlUGVuZGluZ0NodW5rIiwic2V0VGltZW91dCIsImZsdXNoSW5pdGlhbFJlbmRlclBlcmZvcm1hbmNlIiwid2FrZUNodW5rIiwibGlzdGVuZXJzIiwibGlzdGVuZXIiLCJmdWxmaWxsUmVmZXJlbmNlIiwicmVqZWN0Q2h1bmsiLCJyZWplY3RSZWZlcmVuY2UiLCJyZXNvbHZlQmxvY2tlZEN5Y2xlIiwicmVzb2x2ZWRDaHVuayIsInJlZmVyZW5jZWRDaHVuayIsImhhbmRsZXIiLCJ3YWtlQ2h1bmtJZkluaXRpYWxpemVkIiwicmVzb2x2ZUxpc3RlbmVycyIsInJlamVjdExpc3RlbmVycyIsImN5Y2xpY0hhbmRsZXIiLCJzcGxpY2UiLCJ0cmlnZ2VyRXJyb3JPbkNodW5rIiwicHJldkhhbmRsZXIiLCJpbml0aWFsaXppbmdIYW5kbGVyIiwiaW5pdGlhbGl6ZURlYnVnQ2h1bmsiLCJjcmVhdGVSZXNvbHZlZE1vZGVsQ2h1bmsiLCJjcmVhdGVSZXNvbHZlZEl0ZXJhdG9yUmVzdWx0Q2h1bmsiLCJyZXNvbHZlSXRlcmF0b3JSZXN1bHRDaHVuayIsInJlc29sdmVNb2RlbENodW5rIiwiZW5xdWV1ZU1vZGVsIiwicmVzb2x2ZU1vZHVsZUNodW5rIiwiZGVidWdDaHVuayIsImRlYnVnSW5mbyIsImMiLCJpbml0aWFsaXplRGVidWdJbmZvIiwid2FpdEZvclJlZmVyZW5jZSIsInJlc29sdmVkTW9kZWwiLCJwYXJzZSIsIl9mcm9tSlNPTiIsImVycm9yZWQiLCJkZXBzIiwicmVwb3J0R2xvYmFsRXJyb3IiLCJfY2xvc2VkIiwiX2Nsb3NlZFJlYXNvbiIsIl9jaHVua3MiLCJfZGVidWdDaGFubmVsIiwibnVsbFJlZkdldHRlciIsImdldFRhc2tOYW1lIiwiaW5pdGlhbGl6ZUVsZW1lbnQiLCJlbGVtZW50IiwiX2RlYnVnU3RhY2siLCJvd25lciIsIl9vd25lciIsIl9kZWJ1Z1Jvb3RPd25lciIsIl9yb290RW52aXJvbm1lbnROYW1lIiwibm9ybWFsaXplZFN0YWNrVHJhY2UiLCJfZGVidWdSb290U3RhY2siLCJjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrSW5ERVYiLCJzdXBwb3J0c0NyZWF0ZVRhc2siLCJjcmVhdGVUYXNrIiwiYnVpbGRGYWtlQ2FsbFN0YWNrIiwiaW5pdGlhbGl6ZUZha2VUYXNrIiwiX2RlYnVnUm9vdFRhc2siLCJydW4iLCJfZGVidWdUYXNrIiwiaW5pdGlhbGl6ZUZha2VTdGFjayIsImZyZWV6ZSIsInByb3BzIiwiY3JlYXRlTGF6eUNodW5rV3JhcHBlciIsImxhenlUeXBlIiwicGFyZW50T2JqZWN0IiwibWFwIiwicGF0aCIsImJsb2NrZWRWYWx1ZSIsImVycm9yZWRDb21wb25lbnQiLCJkZWJ1Z1N0YWNrIiwiZGVidWdUYXNrIiwicGFyZW50IiwibG9hZFNlcnZlclJlZmVyZW5jZSIsIl9zZXJ2ZXJSZWZlcmVuY2VDb25maWciLCJfY2FsbFNlcnZlciIsIl9lbmNvZGVGb3JtQWN0aW9uIiwiX2RlYnVnRmluZFNvdXJjZU1hcFVSTCIsInNlcnZlclJlZmVyZW5jZSIsInJlc29sdmVkVmFsdWUiLCJ1bnNoaWZ0IiwiZ2V0T3V0bGluZWRNb2RlbCIsInNwbGl0IiwicGFyc2VJbnQiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiY3JlYXRlTWFwIiwiY3JlYXRlU2V0IiwiY3JlYXRlQmxvYiIsImNyZWF0ZUZvcm1EYXRhIiwiYXBwbHlDb25zdHJ1Y3RvciIsInNldFByb3RvdHlwZU9mIiwiZGVmaW5lTGF6eUdldHRlciIsImV4dHJhY3RJdGVyYXRvciIsIlN5bWJvbCIsImNyZWF0ZU1vZGVsIiwiZ2V0SW5mZXJyZWRGdW5jdGlvbkFwcHJveGltYXRlIiwiY29kZSIsInRyaW0iLCJwYXJzZU1vZGVsU3RyaW5nIiwiZm9yIiwicmVmIiwiX3RlbXBSZWZzIiwicmVzb2x2ZUVycm9yRGV2IiwiTmFOIiwiQmlnSW50IiwibWlnaHRIYXZlU3RhdGljQ29uc3RydWN0b3IiLCJ0ZXN0IiwiXyIsIm1pc3NpbmdDYWxsIiwiUmVzcG9uc2VJbnN0YW5jZSIsInNlcnZlclJlZmVyZW5jZUNvbmZpZyIsInJlcGxheUNvbnNvbGUiLCJfYnVuZGxlckNvbmZpZyIsIl9tb2R1bGVMb2FkaW5nIiwiX25vbmNlIiwiX3N0cmluZ0RlY29kZXIiLCJ1dGlsIiwiVGV4dERlY29kZXIiLCJXZWFrUmVmIiwiUmVhY3RTaGFyZWRJbnRlcmFsc1NlcnZlciIsIkEiLCJnZXRPd25lciIsInRvTG93ZXJDYXNlIiwiX2Jsb2NrZWRDb25zb2xlIiwiX3JlcGxheUNvbnNvbGUiLCJkZWJ1Z0NoYW5uZWxSZWdpc3RyeSIsInJlZ2lzdGVyIiwiY3JlYXRlRnJvbUpTT05DYWxsYmFjayIsImNyZWF0ZVN0cmVhbVN0YXRlIiwiX3Jvd1N0YXRlIiwiX3Jvd0lEIiwiX3Jvd1RhZyIsIl9yb3dMZW5ndGgiLCJfYnVmZmVyIiwicmVzb2x2ZUJ1ZmZlciIsImVucXVldWVWYWx1ZSIsInJlc29sdmVNb2R1bGUiLCJjbGllbnRSZWZlcmVuY2UiLCJibG9ja2VkQ2h1bmsiLCJyZXNvbHZlU3RyZWFtIiwiY29udHJvbGxlciIsInN0YXJ0UmVhZGFibGVTdHJlYW0iLCJwcmV2aW91c0Jsb2NrZWRDaHVuayIsImVucXVldWUiLCJ2IiwiX2NodW5rMyIsImNsb3NlIiwiYXN5bmNJdGVyYXRvciIsImNyZWF0ZUl0ZXJhdG9yIiwic3RhcnRBc3luY0l0ZXJhYmxlIiwiY2xvc2VkIiwibmV4dFdyaXRlSW5kZXgiLCJuZXh0UmVhZEluZGV4IiwiYXJnIiwiZXJyb3JJbmZvIiwiZ2V0Um9vdFRhc2siLCJjcmVhdGVGYWtlRnVuY3Rpb24iLCJlbmNsb3NpbmdMaW5lIiwiZW5jbG9zaW5nQ29sIiwiZmFrZUZ1bmN0aW9uSWR4IiwiZm4iLCJ1c2VFbmNsb3NpbmdMaW5lIiwiaW5uZXJDYWxsIiwiZnJhbWUiLCJmcmFtZUtleSIsImpvaW4iLCJmYWtlRnVuY3Rpb25DYWNoZSIsImNoaWxkRW52aXJvbm1lbnROYW1lIiwicm9vdFRhc2siLCJjYWNoZWRFbnRyeSIsIm93bmVyVGFzayIsImF3YWl0ZWQiLCJmYWtlSlNYQ2FsbFNpdGUiLCJkZWJ1Z0xvY2F0aW9uIiwiZ2V0Q3VycmVudFN0YWNrSW5ERVYiLCJjdXJyZW50T3duZXJJbkRFViIsImluZm8iLCJvd25lclN0YWNrIiwicHJldlByZXBhcmVTdGFja1RyYWNlIiwiSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwIiwibWF0Y2giLCJzdWZmaXgiLCJyZXNvbHZlQ29uc29sZUVudHJ5IiwicmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2tJbkRFViIsIl9jaHVuazQiLCJ1bmJsb2NrIiwiaW5pdGlhbGl6ZUlPSW5mbyIsImlvSW5mbyIsIl90aW1lT3JpZ2luIiwiZW5kIiwicmVzb2x2ZUlPSW5mbyIsIm1lcmdlQnVmZmVyIiwibGFzdENodW5rIiwibCIsIl9pMyIsInJlc29sdmVUeXBlZEFycmF5IiwiY29uc3RydWN0b3IiLCJieXRlc1BlckVsZW1lbnQiLCJwcm9jZXNzRnVsbEJpbmFyeVJvdyIsInN0cmluZ0RlY29kZXIiLCJyb3ciLCJkZWNvZGUiLCJkZWNvZGVyT3B0aW9ucyIsInByb2Nlc3NGdWxsU3RyaW5nUm93IiwiRCIsIkMiLCJMIiwibSIsIlMiLCJNIiwiZGlnZXN0IiwicGVyZm9ybWFuY2UiLCJ0aW1lT3JpZ2luIiwicHJvY2Vzc0JpbmFyeUNodW5rIiwic3RyZWFtU3RhdGUiLCJyb3dTdGF0ZSIsInJvd1RhZyIsInJvd0xlbmd0aCIsImNodW5rTGVuZ3RoIiwibGFzdElkeCIsIm9mZnNldCIsImIiLCJ2YWxpZGF0ZWQiLCJfc3RvcmUiLCJub1NlcnZlckNhbGwkMSIsImNyZWF0ZVJlc3BvbnNlRnJvbU9wdGlvbnMiLCJvcHRpb25zIiwic2VydmVyQ29uc3VtZXJNYW5pZmVzdCIsIm1vZHVsZU1hcCIsInNlcnZlck1vZHVsZU1hcCIsInJlcGxheUNvbnNvbGVMb2dzIiwic3RhcnRSZWFkaW5nRnJvbVN0cmVhbSIsIl9yZWYiLCJjYXRjaCIsIm5vU2VydmVyQ2FsbCIsInJlcXVpcmUiLCJSZWFjdERPTSIsIlJlYWN0IiwiYmluZCQxIiwiRnVuY3Rpb24iLCJfX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUiLCJpc0FycmF5IiwiX19TRVJWRVJfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFIiwiUmVhY3RTaGFyZWRJbnRlcm5hbHMiLCJfX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUiLCJjcmVhdGUiLCJfdGhpcyIsInJlc29sdmVDYWxsYmFjayIsInJlamVjdENhbGxiYWNrIiwid3JhcHBlclByb21pc2UiLCJGaW5hbGl6YXRpb25SZWdpc3RyeSIsImNyZWF0ZUZha2VKU1hDYWxsU3RhY2siLCJyZWFjdF9zdGFja19ib3R0b21fZnJhbWUiLCJyZXBsYXlDb25zb2xlV2l0aENhbGxTdGFjayIsIm1ldGhvZE5hbWUiLCJzdGFja1RyYWNlIiwicHJldlN0YWNrIiwiZ2V0Q3VycmVudFN0YWNrIiwiYSIsIm5ld0FyZ3MiLCJjYWxsU3RhY2siLCJ0YXNrIiwiZXhwb3J0cyIsImNyZWF0ZUZyb21GZXRjaCIsInByb21pc2VGb3JSZXNwb25zZSIsInIiLCJjcmVhdGVGcm9tTm9kZVN0cmVhbSIsInJlc3BvbnNlJGpzY29tcCQwIiwib24iLCJyb3dJRCIsImNoYXJDb2RlQXQiLCJjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0iLCJjcmVhdGVTZXJ2ZXJSZWZlcmVuY2UiLCJjcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXQiLCJlbmNvZGVSZXBseSIsImFib3J0Iiwic2lnbmFsIiwiYWJvcnRlZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhZGRFdmVudExpc3RlbmVyIiwicmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2UiXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js ***!
|
||
\*********************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-server-dom-webpack-client.node.development.js */ \"(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQubm9kZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixJQUFJLEtBQXFDLEVBQUUsRUFFMUMsQ0FBQztBQUNGLEVBQUUsaU9BQXFGO0FBQ3ZGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQubm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5ub2RlLnByb2R1Y3Rpb24uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5ub2RlLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/compiled/server-only/empty.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/server-only/empty.js ***!
|
||
\**************************************************************/
|
||
/***/ (() => {
|
||
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/compiled/string-hash/index.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/string-hash/index.js ***!
|
||
\**************************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("(()=>{\"use strict\";var e={328:e=>{function hash(e){var r=5381,_=e.length;while(_){r=r*33^e.charCodeAt(--_)}return r>>>0}e.exports=hash}};var r={};function __nccwpck_require__(_){var a=r[_];if(a!==undefined){return a.exports}var t=r[_]={exports:{}};var i=true;try{e[_](t,t.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return t.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var _=__nccwpck_require__(328);module.exports=_})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmluZy1oYXNoL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPLFFBQVEsaUJBQWlCLHNCQUFzQixTQUFTLHlCQUF5QixhQUFhLGlCQUFpQixTQUFTLGdDQUFnQyxXQUFXLGtCQUFrQixpQkFBaUIsWUFBWSxZQUFZLFdBQVcsSUFBSSxzQ0FBc0MsUUFBUSxRQUFRLGlCQUFpQixpQkFBaUIsaUZBQWlGLCtCQUErQixpQkFBaUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyaW5nLWhhc2gvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezMyODplPT57ZnVuY3Rpb24gaGFzaChlKXt2YXIgcj01MzgxLF89ZS5sZW5ndGg7d2hpbGUoXyl7cj1yKjMzXmUuY2hhckNvZGVBdCgtLV8pfXJldHVybiByPj4+MH1lLmV4cG9ydHM9aGFzaH19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18oXyl7dmFyIGE9cltfXTtpZihhIT09dW5kZWZpbmVkKXtyZXR1cm4gYS5leHBvcnRzfXZhciB0PXJbX109e2V4cG9ydHM6e319O3ZhciBpPXRydWU7dHJ5e2VbX10odCx0LmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7aT1mYWxzZX1maW5hbGx5e2lmKGkpZGVsZXRlIHJbX119cmV0dXJuIHQuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXygzMjgpO21vZHVsZS5leHBvcnRzPV99KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/string-hash/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/batcher.js":
|
||
/*!***********************************************!*\
|
||
!*** ./node_modules/next/dist/lib/batcher.js ***!
|
||
\***********************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Batcher\", ({\n enumerable: true,\n get: function() {\n return Batcher;\n }\n}));\nconst _detachedpromise = __webpack_require__(/*! ./detached-promise */ \"(rsc)/./node_modules/next/dist/lib/detached-promise.js\");\nclass Batcher {\n constructor(cacheKeyFn, /**\n * A function that will be called to schedule the wrapped function to be\n * executed. This defaults to a function that will execute the function\n * immediately.\n */ schedulerFn = (fn)=>fn()){\n this.cacheKeyFn = cacheKeyFn;\n this.schedulerFn = schedulerFn;\n this.pending = new Map();\n }\n static create(options) {\n return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn);\n }\n /**\n * Wraps a function in a promise that will be resolved or rejected only once\n * for a given key. This will allow multiple calls to the function to be\n * made, but only one will be executed at a time. The result of the first\n * call will be returned to all callers.\n *\n * @param key the key to use for the cache\n * @param fn the function to wrap\n * @returns a promise that resolves to the result of the function\n */ async batch(key, fn) {\n const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key;\n if (cacheKey === null) {\n return fn(cacheKey, Promise.resolve);\n }\n const pending = this.pending.get(cacheKey);\n if (pending) return pending;\n const { promise, resolve, reject } = new _detachedpromise.DetachedPromise();\n this.pending.set(cacheKey, promise);\n this.schedulerFn(async ()=>{\n try {\n const result = await fn(cacheKey, resolve);\n // Resolving a promise multiple times is a no-op, so we can safely\n // resolve all pending promises with the same result.\n resolve(result);\n } catch (err) {\n reject(err);\n } finally{\n this.pending.delete(cacheKey);\n }\n });\n return promise;\n }\n}\n\n//# sourceMappingURL=batcher.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9iYXRjaGVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseUJBQXlCLG1CQUFPLENBQUMsa0ZBQW9CO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMkJBQTJCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9iYXRjaGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQmF0Y2hlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQmF0Y2hlcjtcbiAgICB9XG59KTtcbmNvbnN0IF9kZXRhY2hlZHByb21pc2UgPSByZXF1aXJlKFwiLi9kZXRhY2hlZC1wcm9taXNlXCIpO1xuY2xhc3MgQmF0Y2hlciB7XG4gICAgY29uc3RydWN0b3IoY2FjaGVLZXlGbiwgLyoqXG4gICAgICogQSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHRvIHNjaGVkdWxlIHRoZSB3cmFwcGVkIGZ1bmN0aW9uIHRvIGJlXG4gICAgICogZXhlY3V0ZWQuIFRoaXMgZGVmYXVsdHMgdG8gYSBmdW5jdGlvbiB0aGF0IHdpbGwgZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgKiBpbW1lZGlhdGVseS5cbiAgICAgKi8gc2NoZWR1bGVyRm4gPSAoZm4pPT5mbigpKXtcbiAgICAgICAgdGhpcy5jYWNoZUtleUZuID0gY2FjaGVLZXlGbjtcbiAgICAgICAgdGhpcy5zY2hlZHVsZXJGbiA9IHNjaGVkdWxlckZuO1xuICAgICAgICB0aGlzLnBlbmRpbmcgPSBuZXcgTWFwKCk7XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEJhdGNoZXIob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5jYWNoZUtleUZuLCBvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnNjaGVkdWxlckZuKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFdyYXBzIGEgZnVuY3Rpb24gaW4gYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCBvciByZWplY3RlZCBvbmx5IG9uY2VcbiAgICogZm9yIGEgZ2l2ZW4ga2V5LiBUaGlzIHdpbGwgYWxsb3cgbXVsdGlwbGUgY2FsbHMgdG8gdGhlIGZ1bmN0aW9uIHRvIGJlXG4gICAqIG1hZGUsIGJ1dCBvbmx5IG9uZSB3aWxsIGJlIGV4ZWN1dGVkIGF0IGEgdGltZS4gVGhlIHJlc3VsdCBvZiB0aGUgZmlyc3RcbiAgICogY2FsbCB3aWxsIGJlIHJldHVybmVkIHRvIGFsbCBjYWxsZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gdXNlIGZvciB0aGUgY2FjaGVcbiAgICogQHBhcmFtIGZuIHRoZSBmdW5jdGlvbiB0byB3cmFwXG4gICAqIEByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uXG4gICAqLyBhc3luYyBiYXRjaChrZXksIGZuKSB7XG4gICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gdGhpcy5jYWNoZUtleUZuID8gYXdhaXQgdGhpcy5jYWNoZUtleUZuKGtleSkgOiBrZXk7XG4gICAgICAgIGlmIChjYWNoZUtleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZuKGNhY2hlS2V5LCBQcm9taXNlLnJlc29sdmUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBlbmRpbmcgPSB0aGlzLnBlbmRpbmcuZ2V0KGNhY2hlS2V5KTtcbiAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybiBwZW5kaW5nO1xuICAgICAgICBjb25zdCB7IHByb21pc2UsIHJlc29sdmUsIHJlamVjdCB9ID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgICAgIHRoaXMucGVuZGluZy5zZXQoY2FjaGVLZXksIHByb21pc2UpO1xuICAgICAgICB0aGlzLnNjaGVkdWxlckZuKGFzeW5jICgpPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZuKGNhY2hlS2V5LCByZXNvbHZlKTtcbiAgICAgICAgICAgICAgICAvLyBSZXNvbHZpbmcgYSBwcm9taXNlIG11bHRpcGxlIHRpbWVzIGlzIGEgbm8tb3AsIHNvIHdlIGNhbiBzYWZlbHlcbiAgICAgICAgICAgICAgICAvLyByZXNvbHZlIGFsbCBwZW5kaW5nIHByb21pc2VzIHdpdGggdGhlIHNhbWUgcmVzdWx0LlxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZy5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/batcher.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/constants.js":
|
||
/*!*************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/constants.js ***!
|
||
\*************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n HTML_CONTENT_TYPE_HEADER: function() {\n return HTML_CONTENT_TYPE_HEADER;\n },\n INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n JSON_CONTENT_TYPE_HEADER: function() {\n return JSON_CONTENT_TYPE_HEADER;\n },\n MATCHED_PATH_HEADER: function() {\n return MATCHED_PATH_HEADER;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NEXT_RESUME_HEADER: function() {\n return NEXT_RESUME_HEADER;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_CACHE_WRAPPER_ALIAS: function() {\n return RSC_CACHE_WRAPPER_ALIAS;\n },\n RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: function() {\n return RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SEGMENTS_DIR_SUFFIX: function() {\n return RSC_SEGMENTS_DIR_SUFFIX;\n },\n RSC_SEGMENT_SUFFIX: function() {\n return RSC_SEGMENT_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n TEXT_PLAIN_CONTENT_TYPE_HEADER: function() {\n return TEXT_PLAIN_CONTENT_TYPE_HEADER;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain';\nconst HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8';\nconst JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8';\nconst NEXT_QUERY_PARAM_PREFIX = 'nxtP';\nconst NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI';\nconst MATCHED_PATH_HEADER = 'x-matched-path';\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_SEGMENTS_DIR_SUFFIX = '.segments';\nconst RSC_SEGMENT_SUFFIX = '.segment.rsc';\nconst RSC_SUFFIX = '.rsc';\nconst ACTION_SUFFIX = '.action';\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_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_RESUME_HEADER = 'next-resume';\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_';\nconst CACHE_ONE_YEAR = 31536000;\nconst INFINITE_CACHE = 0xfffffffe;\nconst MIDDLEWARE_FILENAME = 'middleware';\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = 'instrumentation';\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-server-reference';\nconst RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper';\nconst RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import';\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 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 * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\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 Node.js bundle layer for the API routes.\n */ apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */ apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */ middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */ instrument: 'instrument',\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 browser client bundle layer for Pages directory.\n */ pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */ pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */ pagesDirNode: 'pages-dir-node'\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser\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\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBeURMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0EsNkNBQTZDO0FBQzdDLG9EQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0Msb0JBQW9CO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBBQ1RJT05fU1VGRklYOiBudWxsLFxuICAgIEFQUF9ESVJfQUxJQVM6IG51bGwsXG4gICAgQ0FDSEVfT05FX1lFQVI6IG51bGwsXG4gICAgRE9UX05FWFRfQUxJQVM6IG51bGwsXG4gICAgRVNMSU5UX0RFRkFVTFRfRElSUzogbnVsbCxcbiAgICBHU1BfTk9fUkVUVVJORURfVkFMVUU6IG51bGwsXG4gICAgR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SOiBudWxsLFxuICAgIEdTU1BfTk9fUkVUVVJORURfVkFMVUU6IG51bGwsXG4gICAgSFRNTF9DT05URU5UX1RZUEVfSEVBREVSOiBudWxsLFxuICAgIElORklOSVRFX0NBQ0hFOiBudWxsLFxuICAgIElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FOiBudWxsLFxuICAgIEpTT05fQ09OVEVOVF9UWVBFX0hFQURFUjogbnVsbCxcbiAgICBNQVRDSEVEX1BBVEhfSEVBREVSOiBudWxsLFxuICAgIE1JRERMRVdBUkVfRklMRU5BTUU6IG51bGwsXG4gICAgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA6IG51bGwsXG4gICAgTkVYVF9CT0RZX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1RBR1NfSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUzogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIOiBudWxsLFxuICAgIE5FWFRfREFUQV9TVUZGSVg6IG51bGwsXG4gICAgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWDogbnVsbCxcbiAgICBORVhUX01FVEFfU1VGRklYOiBudWxsLFxuICAgIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYOiBudWxsLFxuICAgIE5FWFRfUkVTVU1FX0hFQURFUjogbnVsbCxcbiAgICBOT05fU1RBTkRBUkRfTk9ERV9FTlY6IG51bGwsXG4gICAgUEFHRVNfRElSX0FMSUFTOiBudWxsLFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjogbnVsbCxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI6IG51bGwsXG4gICAgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUOiBudWxsLFxuICAgIFJPT1RfRElSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fUFJPWFlfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUzogbnVsbCxcbiAgICBSU0NfQ0FDSEVfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUzogbnVsbCxcbiAgICBSU0NfUFJFRkVUQ0hfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TRUdNRU5UX1NVRkZJWDogbnVsbCxcbiAgICBSU0NfU1VGRklYOiBudWxsLFxuICAgIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUOiBudWxsLFxuICAgIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU0VSVkVSX1JVTlRJTUU6IG51bGwsXG4gICAgU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjogbnVsbCxcbiAgICBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SOiBudWxsLFxuICAgIFRFWFRfUExBSU5fQ09OVEVOVF9UWVBFX0hFQURFUjogbnVsbCxcbiAgICBVTlNUQUJMRV9SRVZBTElEQVRFX1JFTkFNRV9FUlJPUjogbnVsbCxcbiAgICBXRUJQQUNLX0xBWUVSUzogbnVsbCxcbiAgICBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQUNUSU9OX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBQ1RJT05fU1VGRklYO1xuICAgIH0sXG4gICAgQVBQX0RJUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBUFBfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgQ0FDSEVfT05FX1lFQVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQ0FDSEVfT05FX1lFQVI7XG4gICAgfSxcbiAgICBET1RfTkVYVF9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBET1RfTkVYVF9BTElBUztcbiAgICB9LFxuICAgIEVTTElOVF9ERUZBVUxUX0RJUlM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRVNMSU5UX0RFRkFVTFRfRElSUztcbiAgICB9LFxuICAgIEdTUF9OT19SRVRVUk5FRF9WQUxVRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHU1BfTk9fUkVUVVJORURfVkFMVUU7XG4gICAgfSxcbiAgICBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SO1xuICAgIH0sXG4gICAgR1NTUF9OT19SRVRVUk5FRF9WQUxVRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFO1xuICAgIH0sXG4gICAgSFRNTF9DT05URU5UX1RZUEVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUjtcbiAgICB9LFxuICAgIElORklOSVRFX0NBQ0hFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIElORklOSVRFX0NBQ0hFO1xuICAgIH0sXG4gICAgSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSU5TVFJVTUVOVEFUSU9OX0hPT0tfRklMRU5BTUU7XG4gICAgfSxcbiAgICBKU09OX0NPTlRFTlRfVFlQRV9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSlNPTl9DT05URU5UX1RZUEVfSEVBREVSO1xuICAgIH0sXG4gICAgTUFUQ0hFRF9QQVRIX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNQVRDSEVEX1BBVEhfSEVBREVSO1xuICAgIH0sXG4gICAgTUlERExFV0FSRV9GSUxFTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNSURETEVXQVJFX0ZJTEVOQU1FO1xuICAgIH0sXG4gICAgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA7XG4gICAgfSxcbiAgICBORVhUX0JPRFlfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQk9EWV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHU19IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9UQUdTX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVM7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg7XG4gICAgfSxcbiAgICBORVhUX0RBVEFfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfREFUQV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg7XG4gICAgfSxcbiAgICBORVhUX01FVEFfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfTUVUQV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDtcbiAgICB9LFxuICAgIE5FWFRfUkVTVU1FX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1JFU1VNRV9IRUFERVI7XG4gICAgfSxcbiAgICBOT05fU1RBTkRBUkRfTk9ERV9FTlY6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTk9OX1NUQU5EQVJEX05PREVfRU5WO1xuICAgIH0sXG4gICAgUEFHRVNfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBBR0VTX0RJUl9BTElBUztcbiAgICB9LFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVI7XG4gICAgfSxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSO1xuICAgIH0sXG4gICAgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVDtcbiAgICB9LFxuICAgIFJPT1RfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJPT1RfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fUFJPWFlfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9QUk9YWV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9WQUxJREFURV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0RZTkFNSUNfSU1QT1JUX1dSQVBQRVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0RZTkFNSUNfSU1QT1JUX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19QUkVGRVRDSF9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1BSRUZFVENIX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NFR01FTlRfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TRUdNRU5UX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NVRkZJWDtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTRVJWRVJfUlVOVElNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUlVOVElNRTtcbiAgICB9LFxuICAgIFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjtcbiAgICB9LFxuICAgIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SO1xuICAgIH0sXG4gICAgVEVYVF9QTEFJTl9DT05URU5UX1RZUEVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFRFWFRfUExBSU5fQ09OVEVOVF9UWVBFX0hFQURFUjtcbiAgICB9LFxuICAgIFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SO1xuICAgIH0sXG4gICAgV0VCUEFDS19MQVlFUlM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gV0VCUEFDS19MQVlFUlM7XG4gICAgfSxcbiAgICBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gV0VCUEFDS19SRVNPVVJDRV9RVUVSSUVTO1xuICAgIH1cbn0pO1xuY29uc3QgVEVYVF9QTEFJTl9DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQvcGxhaW4nO1xuY29uc3QgSFRNTF9DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc7XG5jb25zdCBKU09OX0NPTlRFTlRfVFlQRV9IRUFERVIgPSAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCc7XG5jb25zdCBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCA9ICdueHRQJztcbmNvbnN0IE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVggPSAnbnh0SSc7XG5jb25zdCBNQVRDSEVEX1BBVEhfSEVBREVSID0gJ3gtbWF0Y2hlZC1wYXRoJztcbmNvbnN0IFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUiA9ICd4LXByZXJlbmRlci1yZXZhbGlkYXRlJztcbmNvbnN0IFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUiA9ICd4LXByZXJlbmRlci1yZXZhbGlkYXRlLWlmLWdlbmVyYXRlZCc7XG5jb25zdCBSU0NfUFJFRkVUQ0hfU1VGRklYID0gJy5wcmVmZXRjaC5yc2MnO1xuY29uc3QgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVggPSAnLnNlZ21lbnRzJztcbmNvbnN0IFJTQ19TRUdNRU5UX1NVRkZJWCA9ICcuc2VnbWVudC5yc2MnO1xuY29uc3QgUlNDX1NVRkZJWCA9ICcucnNjJztcbmNvbnN0IEFDVElPTl9TVUZGSVggPSAnLmFjdGlvbic7XG5jb25zdCBORVhUX0RBVEFfU1VGRklYID0gJy5qc29uJztcbmNvbnN0IE5FWFRfTUVUQV9TVUZGSVggPSAnLm1ldGEnO1xuY29uc3QgTkVYVF9CT0RZX1NVRkZJWCA9ICcuYm9keSc7XG5jb25zdCBORVhUX0NBQ0hFX1RBR1NfSEVBREVSID0gJ3gtbmV4dC1jYWNoZS10YWdzJztcbmNvbnN0IE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIgPSAneC1uZXh0LXJldmFsaWRhdGVkLXRhZ3MnO1xuY29uc3QgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVIgPSAneC1uZXh0LXJldmFsaWRhdGUtdGFnLXRva2VuJztcbmNvbnN0IE5FWFRfUkVTVU1FX0hFQURFUiA9ICduZXh0LXJlc3VtZSc7XG5jb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVMgPSAxMjg7XG5jb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIID0gMjU2O1xuY29uc3QgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIID0gMTAyNDtcbmNvbnN0IE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEID0gJ19OX1RfJztcbmNvbnN0IENBQ0hFX09ORV9ZRUFSID0gMzE1MzYwMDA7XG5jb25zdCBJTkZJTklURV9DQUNIRSA9IDB4ZmZmZmZmZmU7XG5jb25zdCBNSURETEVXQVJFX0ZJTEVOQU1FID0gJ21pZGRsZXdhcmUnO1xuY29uc3QgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFAgPSBgKD86c3JjLyk/JHtNSURETEVXQVJFX0ZJTEVOQU1FfWA7XG5jb25zdCBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRSA9ICdpbnN0cnVtZW50YXRpb24nO1xuY29uc3QgUEFHRVNfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1wYWdlcyc7XG5jb25zdCBET1RfTkVYVF9BTElBUyA9ICdwcml2YXRlLWRvdC1uZXh0JztcbmNvbnN0IFJPT1RfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yb290LWRpcic7XG5jb25zdCBBUFBfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1hcHAtZGlyJztcbmNvbnN0IFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTID0gJ25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eSc7XG5jb25zdCBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLXZhbGlkYXRlJztcbmNvbnN0IFJTQ19BQ1RJT05fUFJPWFlfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1zZXJ2ZXItcmVmZXJlbmNlJztcbmNvbnN0IFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtY2FjaGUtd3JhcHBlcic7XG5jb25zdCBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLXRyYWNrLWR5bmFtaWMtaW1wb3J0JztcbmNvbnN0IFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1lbmNyeXB0aW9uJztcbmNvbnN0IFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tY2xpZW50LXdyYXBwZXInO1xuY29uc3QgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IGhhdmUgYSAnX25leHQnIGZvbGRlciBpbnNpZGUgb2YgeW91ciBwdWJsaWMgZm9sZGVyLiBUaGlzIGNvbmZsaWN0cyB3aXRoIHRoZSBpbnRlcm5hbCAnL19uZXh0JyByb3V0ZS4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHVibGljLW5leHQtZm9sZGVyLWNvbmZsaWN0YDtcbmNvbnN0IFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVCA9IGBZb3UgY2FuIG5vdCB1c2UgZ2V0SW5pdGlhbFByb3BzIHdpdGggZ2V0U3RhdGljUHJvcHMuIFRvIHVzZSBTU0csIHBsZWFzZSByZW1vdmUgeW91ciBnZXRJbml0aWFsUHJvcHNgO1xuY29uc3QgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTZXJ2ZXJTaWRlUHJvcHMuIFBsZWFzZSByZW1vdmUgZ2V0SW5pdGlhbFByb3BzLmA7XG5jb25zdCBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRTdGF0aWNQcm9wcyBvciBnZXRTdGF0aWNQYXRocyB3aXRoIGdldFNlcnZlclNpZGVQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSBnZXRTZXJ2ZXJTaWRlUHJvcHNgO1xuY29uc3QgU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SID0gYGNhbiBub3QgaGF2ZSBnZXRJbml0aWFsUHJvcHMvZ2V0U2VydmVyU2lkZVByb3BzLCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy80MDQtZ2V0LWluaXRpYWwtcHJvcHNgO1xuY29uc3QgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUiA9IGBwYWdlcyB3aXRoIFxcYGdldFNlcnZlclNpZGVQcm9wc1xcYCBjYW4gbm90IGJlIGV4cG9ydGVkLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtZXhwb3J0YDtcbmNvbnN0IEdTUF9OT19SRVRVUk5FRF9WQUxVRSA9ICdZb3VyIGBnZXRTdGF0aWNQcm9wc2AgZnVuY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LiBEaWQgeW91IGZvcmdldCB0byBhZGQgYSBgcmV0dXJuYD8nO1xuY29uc3QgR1NTUF9OT19SRVRVUk5FRF9WQUxVRSA9ICdZb3VyIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgIGZ1bmN0aW9uIGRpZCBub3QgcmV0dXJuIGFuIG9iamVjdC4gRGlkIHlvdSBmb3JnZXQgdG8gYWRkIGEgYHJldHVybmA/JztcbmNvbnN0IFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SID0gJ1RoZSBgdW5zdGFibGVfcmV2YWxpZGF0ZWAgcHJvcGVydHkgaXMgYXZhaWxhYmxlIGZvciBnZW5lcmFsIHVzZS5cXG4nICsgJ1BsZWFzZSB1c2UgYHJldmFsaWRhdGVgIGluc3RlYWQuJztcbmNvbnN0IEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUiA9IGBjYW4gbm90IGJlIGF0dGFjaGVkIHRvIGEgcGFnZSdzIGNvbXBvbmVudCBhbmQgbXVzdCBiZSBleHBvcnRlZCBmcm9tIHRoZSBwYWdlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtY29tcG9uZW50LW1lbWJlcmA7XG5jb25zdCBOT05fU1RBTkRBUkRfTk9ERV9FTlYgPSBgWW91IGFyZSB1c2luZyBhIG5vbi1zdGFuZGFyZCBcIk5PREVfRU5WXCIgdmFsdWUgaW4geW91ciBlbnZpcm9ubWVudC4gVGhpcyBjcmVhdGVzIGluY29uc2lzdGVuY2llcyBpbiB0aGUgcHJvamVjdCBhbmQgaXMgc3Ryb25nbHkgYWR2aXNlZCBhZ2FpbnN0LiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vbi1zdGFuZGFyZC1ub2RlLWVudmA7XG5jb25zdCBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SID0gYFBhZ2VzIHdpdGggXFxgZmFsbGJhY2tcXGAgZW5hYmxlZCBpbiBcXGBnZXRTdGF0aWNQYXRoc1xcYCBjYW4gbm90IGJlIGV4cG9ydGVkLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3NzZy1mYWxsYmFjay10cnVlLWV4cG9ydGA7XG5jb25zdCBFU0xJTlRfREVGQVVMVF9ESVJTID0gW1xuICAgICdhcHAnLFxuICAgICdwYWdlcycsXG4gICAgJ2NvbXBvbmVudHMnLFxuICAgICdsaWInLFxuICAgICdzcmMnXG5dO1xuY29uc3QgU0VSVkVSX1JVTlRJTUUgPSB7XG4gICAgZWRnZTogJ2VkZ2UnLFxuICAgIGV4cGVyaW1lbnRhbEVkZ2U6ICdleHBlcmltZW50YWwtZWRnZScsXG4gICAgbm9kZWpzOiAnbm9kZWpzJ1xufTtcbi8qKlxuICogVGhlIG5hbWVzIG9mIHRoZSB3ZWJwYWNrIGxheWVycy4gVGhlc2UgbGF5ZXJzIGFyZSB0aGUgcHJpbWl0aXZlcyBmb3IgdGhlXG4gKiB3ZWJwYWNrIGNodW5rcy5cbiAqLyBjb25zdCBXRUJQQUNLX0xBWUVSU19OQU1FUyA9IHtcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgc2hhcmVkIGNvZGUgYmV0d2VlbiB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgYnVuZGxlcy5cbiAgICovIHNoYXJlZDogJ3NoYXJlZCcsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3Igc2VydmVyLW9ubHkgcnVudGltZSBhbmQgcGlja2luZyB1cCBgcmVhY3Qtc2VydmVyYCBleHBvcnQgY29uZGl0aW9ucy5cbiAgICogSW5jbHVkaW5nIGFwcCByb3V0ZXIgUlNDIHBhZ2VzIGFuZCBhcHAgcm91dGVyIGN1c3RvbSByb3V0ZXMgYW5kIG1ldGFkYXRhIHJvdXRlcy5cbiAgICovIHJlYWN0U2VydmVyQ29tcG9uZW50czogJ3JzYycsXG4gICAgLyoqXG4gICAqIFNlcnZlciBTaWRlIFJlbmRlcmluZyBsYXllciBmb3IgYXBwIChzc3IpLlxuICAgKi8gc2VydmVyU2lkZVJlbmRlcmluZzogJ3NzcicsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIGFjdGlvbnMuXG4gICAqLyBhY3Rpb25Ccm93c2VyOiAnYWN0aW9uLWJyb3dzZXInLFxuICAgIC8qKlxuICAgKiBUaGUgTm9kZS5qcyBidW5kbGUgbGF5ZXIgZm9yIHRoZSBBUEkgcm91dGVzLlxuICAgKi8gYXBpTm9kZTogJ2FwaS1ub2RlJyxcbiAgICAvKipcbiAgICogVGhlIEVkZ2UgTGl0ZSBidW5kbGUgbGF5ZXIgZm9yIHRoZSBBUEkgcm91dGVzLlxuICAgKi8gYXBpRWRnZTogJ2FwaS1lZGdlJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgbWlkZGxld2FyZSBjb2RlLlxuICAgKi8gbWlkZGxld2FyZTogJ21pZGRsZXdhcmUnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBpbnN0cnVtZW50YXRpb24gaG9va3MuXG4gICAqLyBpbnN0cnVtZW50OiAnaW5zdHJ1bWVudCcsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgYXNzZXRzIG9uIHRoZSBlZGdlLlxuICAgKi8gZWRnZUFzc2V0OiAnZWRnZS1hc3NldCcsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIEFwcCBkaXJlY3RvcnkuXG4gICAqLyBhcHBQYWdlc0Jyb3dzZXI6ICdhcHAtcGFnZXMtYnJvd3NlcicsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyQnJvd3NlcjogJ3BhZ2VzLWRpci1icm93c2VyJyxcbiAgICAvKipcbiAgICogVGhlIEVkZ2UgTGl0ZSBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyRWRnZTogJ3BhZ2VzLWRpci1lZGdlJyxcbiAgICAvKipcbiAgICogVGhlIE5vZGUuanMgYnVuZGxlIGxheWVyIGZvciBQYWdlcyBkaXJlY3RvcnkuXG4gICAqLyBwYWdlc0Rpck5vZGU6ICdwYWdlcy1kaXItbm9kZSdcbn07XG5jb25zdCBXRUJQQUNLX0xBWUVSUyA9IHtcbiAgICAuLi5XRUJQQUNLX0xBWUVSU19OQU1FUyxcbiAgICBHUk9VUDoge1xuICAgICAgICBidWlsdGluUmVhY3Q6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXJcbiAgICAgICAgXSxcbiAgICAgICAgc2VydmVyT25seTogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmluc3RydW1lbnQsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5taWRkbGV3YXJlXG4gICAgICAgIF0sXG4gICAgICAgIG5ldXRyYWxUYXJnZXQ6IFtcbiAgICAgICAgICAgIC8vIHBhZ2VzIGFwaVxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBpTm9kZSxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwaUVkZ2VcbiAgICAgICAgXSxcbiAgICAgICAgY2xpZW50T25seTogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlclxuICAgICAgICBdLFxuICAgICAgICBidW5kbGVkOiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNoYXJlZCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmluc3RydW1lbnQsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5taWRkbGV3YXJlXG4gICAgICAgIF0sXG4gICAgICAgIGFwcFBhZ2VzOiBbXG4gICAgICAgICAgICAvLyBhcHAgcm91dGVyIHBhZ2VzIGFuZCBsYXlvdXRzXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlclxuICAgICAgICBdXG4gICAgfVxufTtcbmNvbnN0IFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUyA9IHtcbiAgICBlZGdlU1NSRW50cnk6ICdfX25leHRfZWRnZV9zc3JfZW50cnlfXycsXG4gICAgbWV0YWRhdGE6ICdfX25leHRfbWV0YWRhdGFfXycsXG4gICAgbWV0YWRhdGFSb3V0ZTogJ19fbmV4dF9tZXRhZGF0YV9yb3V0ZV9fJyxcbiAgICBtZXRhZGF0YUltYWdlTWV0YTogJ19fbmV4dF9tZXRhZGF0YV9pbWFnZV9tZXRhX18nXG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/detached-promise.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/detached-promise.js ***!
|
||
\********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DetachedPromise\", ({\n enumerable: true,\n get: function() {\n return DetachedPromise;\n }\n}));\nclass 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}\n\n//# sourceMappingURL=detached-promise.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9kZXRhY2hlZC1wcm9taXNlLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvZGV0YWNoZWQtcHJvbWlzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgYFByb21pc2Uud2l0aFJlc29sdmVyc2AgaW1wbGVtZW50YXRpb24gdGhhdCBleHBvc2VzIHRoZSBgcmVzb2x2ZWAgYW5kXG4gKiBgcmVqZWN0YCBmdW5jdGlvbnMgb24gYSBgUHJvbWlzZWAuXG4gKlxuICogQHNlZSBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtcHJvbWlzZS13aXRoLXJlc29sdmVycy9cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkRldGFjaGVkUHJvbWlzZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRGV0YWNoZWRQcm9taXNlO1xuICAgIH1cbn0pO1xuY2xhc3MgRGV0YWNoZWRQcm9taXNlIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBsZXQgcmVzb2x2ZTtcbiAgICAgICAgbGV0IHJlamVjdDtcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBwcm9taXNlIGFuZCBhc3NpZ24gdGhlIHJlc29sdmVycyB0byB0aGUgb2JqZWN0LlxuICAgICAgICB0aGlzLnByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzLCByZWopPT57XG4gICAgICAgICAgICByZXNvbHZlID0gcmVzO1xuICAgICAgICAgICAgcmVqZWN0ID0gcmVqO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gV2Uga25vdyB0aGF0IHJlc29sdmVycyBpcyBkZWZpbmVkIGJlY2F1c2UgdGhlIFByb21pc2UgY29uc3RydWN0b3IgcnVuc1xuICAgICAgICAvLyBzeW5jaHJvbm91c2x5LlxuICAgICAgICB0aGlzLnJlc29sdmUgPSByZXNvbHZlO1xuICAgICAgICB0aGlzLnJlamVjdCA9IHJlamVjdDtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRldGFjaGVkLXByb21pc2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/detached-promise.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/error-telemetry-utils.js":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/error-telemetry-utils.js ***!
|
||
\*************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 createDigestWithErrorCode: function() {\n return createDigestWithErrorCode;\n },\n extractNextErrorCode: function() {\n return extractNextErrorCode;\n }\n});\nconst ERROR_CODE_DELIMITER = '@';\nconst createDigestWithErrorCode = (thrownValue, originalDigest)=>{\n if (typeof thrownValue === 'object' && thrownValue !== null && '__NEXT_ERROR_CODE' in thrownValue) {\n return `${originalDigest}${ERROR_CODE_DELIMITER}${thrownValue.__NEXT_ERROR_CODE}`;\n }\n return originalDigest;\n};\nconst extractNextErrorCode = (error)=>{\n if (typeof error === 'object' && error !== null && '__NEXT_ERROR_CODE' in error && typeof error.__NEXT_ERROR_CODE === 'string') {\n return error.__NEXT_ERROR_CODE;\n }\n if (typeof error === 'object' && error !== null && 'digest' in error && typeof error.digest === 'string') {\n const segments = error.digest.split(ERROR_CODE_DELIMITER);\n const errorCode = segments.find((segment)=>segment.startsWith('E'));\n return errorCode;\n }\n return undefined;\n};\n\n//# sourceMappingURL=error-telemetry-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9lcnJvci10ZWxlbWV0cnktdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEI7QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvZXJyb3ItdGVsZW1ldHJ5LXV0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlRGlnZXN0V2l0aEVycm9yQ29kZTogbnVsbCxcbiAgICBleHRyYWN0TmV4dEVycm9yQ29kZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVEaWdlc3RXaXRoRXJyb3JDb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURpZ2VzdFdpdGhFcnJvckNvZGU7XG4gICAgfSxcbiAgICBleHRyYWN0TmV4dEVycm9yQ29kZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBleHRyYWN0TmV4dEVycm9yQ29kZTtcbiAgICB9XG59KTtcbmNvbnN0IEVSUk9SX0NPREVfREVMSU1JVEVSID0gJ0AnO1xuY29uc3QgY3JlYXRlRGlnZXN0V2l0aEVycm9yQ29kZSA9ICh0aHJvd25WYWx1ZSwgb3JpZ2luYWxEaWdlc3QpPT57XG4gICAgaWYgKHR5cGVvZiB0aHJvd25WYWx1ZSA9PT0gJ29iamVjdCcgJiYgdGhyb3duVmFsdWUgIT09IG51bGwgJiYgJ19fTkVYVF9FUlJPUl9DT0RFJyBpbiB0aHJvd25WYWx1ZSkge1xuICAgICAgICByZXR1cm4gYCR7b3JpZ2luYWxEaWdlc3R9JHtFUlJPUl9DT0RFX0RFTElNSVRFUn0ke3Rocm93blZhbHVlLl9fTkVYVF9FUlJPUl9DT0RFfWA7XG4gICAgfVxuICAgIHJldHVybiBvcmlnaW5hbERpZ2VzdDtcbn07XG5jb25zdCBleHRyYWN0TmV4dEVycm9yQ29kZSA9IChlcnJvcik9PntcbiAgICBpZiAodHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvciAhPT0gbnVsbCAmJiAnX19ORVhUX0VSUk9SX0NPREUnIGluIGVycm9yICYmIHR5cGVvZiBlcnJvci5fX05FWFRfRVJST1JfQ09ERSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yLl9fTkVYVF9FUlJPUl9DT0RFO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvciAhPT0gbnVsbCAmJiAnZGlnZXN0JyBpbiBlcnJvciAmJiB0eXBlb2YgZXJyb3IuZGlnZXN0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBzZWdtZW50cyA9IGVycm9yLmRpZ2VzdC5zcGxpdChFUlJPUl9DT0RFX0RFTElNSVRFUik7XG4gICAgICAgIGNvbnN0IGVycm9yQ29kZSA9IHNlZ21lbnRzLmZpbmQoKHNlZ21lbnQpPT5zZWdtZW50LnN0YXJ0c1dpdGgoJ0UnKSk7XG4gICAgICAgIHJldHVybiBlcnJvckNvZGU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvci10ZWxlbWV0cnktdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/error-telemetry-utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/fallback.js":
|
||
/*!************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/fallback.js ***!
|
||
\************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Describes the different fallback modes that a given page can have.\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 FallbackMode: function() {\n return FallbackMode;\n },\n fallbackModeToFallbackField: function() {\n return fallbackModeToFallbackField;\n },\n parseFallbackField: function() {\n return parseFallbackField;\n },\n parseStaticPathsResult: function() {\n return parseStaticPathsResult;\n }\n});\nvar FallbackMode = /*#__PURE__*/ function(FallbackMode) {\n /**\n * A BLOCKING_STATIC_RENDER fallback will block the request until the page is\n * generated. No fallback page will be rendered, and users will have to wait\n * to render the page.\n */ FallbackMode[\"BLOCKING_STATIC_RENDER\"] = \"BLOCKING_STATIC_RENDER\";\n /**\n * When set to PRERENDER, a fallback page will be sent to users in place of\n * forcing them to wait for the page to be generated. This allows the user to\n * see a rendered page earlier.\n */ FallbackMode[\"PRERENDER\"] = \"PRERENDER\";\n /**\n * When set to NOT_FOUND, pages that are not already prerendered will result\n * in a not found response.\n */ FallbackMode[\"NOT_FOUND\"] = \"NOT_FOUND\";\n return FallbackMode;\n}({});\nfunction parseFallbackField(fallbackField) {\n if (typeof fallbackField === 'string') {\n return \"PRERENDER\";\n } else if (fallbackField === null) {\n return \"BLOCKING_STATIC_RENDER\";\n } else if (fallbackField === false) {\n return \"NOT_FOUND\";\n } else if (fallbackField === undefined) {\n return undefined;\n } else {\n throw Object.defineProperty(new Error(`Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`), \"__NEXT_ERROR_CODE\", {\n value: \"E285\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction fallbackModeToFallbackField(fallback, page) {\n switch(fallback){\n case \"BLOCKING_STATIC_RENDER\":\n return null;\n case \"NOT_FOUND\":\n return false;\n case \"PRERENDER\":\n if (!page) {\n throw Object.defineProperty(new Error(`Invariant: expected a page to be provided when fallback mode is \"${fallback}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E422\",\n enumerable: false,\n configurable: true\n });\n }\n return page;\n default:\n throw Object.defineProperty(new Error(`Invalid fallback mode: ${fallback}`), \"__NEXT_ERROR_CODE\", {\n value: \"E254\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction parseStaticPathsResult(result) {\n if (result === true) {\n return \"PRERENDER\";\n } else if (result === 'blocking') {\n return \"BLOCKING_STATIC_RENDER\";\n } else {\n return \"NOT_FOUND\";\n }\n}\n\n//# sourceMappingURL=fallback.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRztBQUNKO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTiwwRUFBMEUsY0FBYztBQUN4RjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwSEFBMEgsU0FBUztBQUNuSTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsNEVBQTRFLFNBQVM7QUFDckY7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mYWxsYmFjay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlc2NyaWJlcyB0aGUgZGlmZmVyZW50IGZhbGxiYWNrIG1vZGVzIHRoYXQgYSBnaXZlbiBwYWdlIGNhbiBoYXZlLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgRmFsbGJhY2tNb2RlOiBudWxsLFxuICAgIGZhbGxiYWNrTW9kZVRvRmFsbGJhY2tGaWVsZDogbnVsbCxcbiAgICBwYXJzZUZhbGxiYWNrRmllbGQ6IG51bGwsXG4gICAgcGFyc2VTdGF0aWNQYXRoc1Jlc3VsdDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBGYWxsYmFja01vZGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRmFsbGJhY2tNb2RlO1xuICAgIH0sXG4gICAgZmFsbGJhY2tNb2RlVG9GYWxsYmFja0ZpZWxkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrTW9kZVRvRmFsbGJhY2tGaWVsZDtcbiAgICB9LFxuICAgIHBhcnNlRmFsbGJhY2tGaWVsZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUZhbGxiYWNrRmllbGQ7XG4gICAgfSxcbiAgICBwYXJzZVN0YXRpY1BhdGhzUmVzdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlU3RhdGljUGF0aHNSZXN1bHQ7XG4gICAgfVxufSk7XG52YXIgRmFsbGJhY2tNb2RlID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihGYWxsYmFja01vZGUpIHtcbiAgICAvKipcbiAgICogQSBCTE9DS0lOR19TVEFUSUNfUkVOREVSIGZhbGxiYWNrIHdpbGwgYmxvY2sgdGhlIHJlcXVlc3QgdW50aWwgdGhlIHBhZ2UgaXNcbiAgICogZ2VuZXJhdGVkLiBObyBmYWxsYmFjayBwYWdlIHdpbGwgYmUgcmVuZGVyZWQsIGFuZCB1c2VycyB3aWxsIGhhdmUgdG8gd2FpdFxuICAgKiB0byByZW5kZXIgdGhlIHBhZ2UuXG4gICAqLyBGYWxsYmFja01vZGVbXCJCTE9DS0lOR19TVEFUSUNfUkVOREVSXCJdID0gXCJCTE9DS0lOR19TVEFUSUNfUkVOREVSXCI7XG4gICAgLyoqXG4gICAqIFdoZW4gc2V0IHRvIFBSRVJFTkRFUiwgYSBmYWxsYmFjayBwYWdlIHdpbGwgYmUgc2VudCB0byB1c2VycyBpbiBwbGFjZSBvZlxuICAgKiBmb3JjaW5nIHRoZW0gdG8gd2FpdCBmb3IgdGhlIHBhZ2UgdG8gYmUgZ2VuZXJhdGVkLiBUaGlzIGFsbG93cyB0aGUgdXNlciB0b1xuICAgKiBzZWUgYSByZW5kZXJlZCBwYWdlIGVhcmxpZXIuXG4gICAqLyBGYWxsYmFja01vZGVbXCJQUkVSRU5ERVJcIl0gPSBcIlBSRVJFTkRFUlwiO1xuICAgIC8qKlxuICAgKiBXaGVuIHNldCB0byBOT1RfRk9VTkQsIHBhZ2VzIHRoYXQgYXJlIG5vdCBhbHJlYWR5IHByZXJlbmRlcmVkIHdpbGwgcmVzdWx0XG4gICAqIGluIGEgbm90IGZvdW5kIHJlc3BvbnNlLlxuICAgKi8gRmFsbGJhY2tNb2RlW1wiTk9UX0ZPVU5EXCJdID0gXCJOT1RfRk9VTkRcIjtcbiAgICByZXR1cm4gRmFsbGJhY2tNb2RlO1xufSh7fSk7XG5mdW5jdGlvbiBwYXJzZUZhbGxiYWNrRmllbGQoZmFsbGJhY2tGaWVsZCkge1xuICAgIGlmICh0eXBlb2YgZmFsbGJhY2tGaWVsZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIFwiUFJFUkVOREVSXCI7XG4gICAgfSBlbHNlIGlmIChmYWxsYmFja0ZpZWxkID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBcIkJMT0NLSU5HX1NUQVRJQ19SRU5ERVJcIjtcbiAgICB9IGVsc2UgaWYgKGZhbGxiYWNrRmllbGQgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBcIk5PVF9GT1VORFwiO1xuICAgIH0gZWxzZSBpZiAoZmFsbGJhY2tGaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCBmYWxsYmFjayBvcHRpb246ICR7ZmFsbGJhY2tGaWVsZH0uIEZhbGxiYWNrIG9wdGlvbiBtdXN0IGJlIGEgc3RyaW5nLCBudWxsLCB1bmRlZmluZWQsIG9yIGZhbHNlLmApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkUyODVcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGZhbGxiYWNrTW9kZVRvRmFsbGJhY2tGaWVsZChmYWxsYmFjaywgcGFnZSkge1xuICAgIHN3aXRjaChmYWxsYmFjayl7XG4gICAgICAgIGNhc2UgXCJCTE9DS0lOR19TVEFUSUNfUkVOREVSXCI6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY2FzZSBcIk5PVF9GT1VORFwiOlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjYXNlIFwiUFJFUkVOREVSXCI6XG4gICAgICAgICAgICBpZiAoIXBhZ2UpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBJbnZhcmlhbnQ6IGV4cGVjdGVkIGEgcGFnZSB0byBiZSBwcm92aWRlZCB3aGVuIGZhbGxiYWNrIG1vZGUgaXMgXCIke2ZhbGxiYWNrfVwiYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNDIyXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwYWdlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCBmYWxsYmFjayBtb2RlOiAke2ZhbGxiYWNrfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMjU0XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBwYXJzZVN0YXRpY1BhdGhzUmVzdWx0KHJlc3VsdCkge1xuICAgIGlmIChyZXN1bHQgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIFwiUFJFUkVOREVSXCI7XG4gICAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICdibG9ja2luZycpIHtcbiAgICAgICAgcmV0dXJuIFwiQkxPQ0tJTkdfU1RBVElDX1JFTkRFUlwiO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBcIk5PVF9GT1VORFwiO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmFsbGJhY2suanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/fallback.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/format-server-error.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/format-server-error.js ***!
|
||
\***********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 formatServerError: function() {\n return formatServerError;\n },\n getStackWithoutErrorMessage: function() {\n return getStackWithoutErrorMessage;\n }\n});\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 getStackWithoutErrorMessage(error) {\n const stack = error.stack;\n if (!stack) return '';\n return stack.replace(/^[^\\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mb3JtYXQtc2VydmVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXdDZ0JBLGlCQUFpQjtlQUFqQkE7O0lBTkFDLDJCQUEyQjtlQUEzQkE7OztBQWxDaEIsTUFBTUMsbUNBQW1DO0lBQ3ZDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRUQsU0FBU0MsV0FBV0MsS0FBWSxFQUFFQyxPQUFlO0lBQy9DRCxNQUFNQyxPQUFPLEdBQUdBO0lBQ2hCLElBQUlELE1BQU1FLEtBQUssRUFBRTtRQUNmLE1BQU1DLFFBQVFILE1BQU1FLEtBQUssQ0FBQ0UsS0FBSyxDQUFDO1FBQ2hDRCxLQUFLLENBQUMsRUFBRSxHQUFHRjtRQUNYRCxNQUFNRSxLQUFLLEdBQUdDLE1BQU1FLElBQUksQ0FBQztJQUMzQjtBQUNGO0FBWU8sU0FBU1IsNEJBQTRCRyxLQUFZO0lBQ3RELE1BQU1FLFFBQVFGLE1BQU1FLEtBQUs7SUFDekIsSUFBSSxDQUFDQSxPQUFPLE9BQU87SUFDbkIsT0FBT0EsTUFBTUksT0FBTyxDQUFDLGFBQWE7QUFDcEM7QUFFTyxTQUFTVixrQkFBa0JJLEtBQVk7SUFDNUMsSUFBSSxRQUFPQSxTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxNQUFPQyxPQUFBQSxNQUFZLFVBQVU7SUFFeEMsSUFDRUQsTUFBTUMsT0FBTyxDQUFDTSxRQUFRLENBQ3BCLCtEQUVGO1FBQ0EsTUFBTUMsZUFDSjtRQUVGLHFFQUFxRTtRQUNyRSxJQUFJUixNQUFNQyxPQUFPLENBQUNNLFFBQVEsQ0FBQ0MsZUFBZTtRQUUxQ1QsV0FDRUMsT0FDQSxHQUFHQSxNQUFNQyxPQUFPLENBQUM7O0FBRXZCLEVBQUVPLGNBQWM7UUFFWjtJQUNGO0lBRUEsSUFBSVIsTUFBTUMsT0FBTyxDQUFDTSxRQUFRLENBQUMsb0NBQW9DO1FBQzdEUixXQUNFQyxPQUNBO1FBRUY7SUFDRjtJQUVBLEtBQUssTUFBTVMsY0FBY1gsaUNBQWtDO1FBQ3pELE1BQU1ZLFFBQVEsSUFBSUMsT0FBTyxDQUFDLEdBQUcsRUFBRUYsV0FBVyxzQkFBc0IsQ0FBQztRQUNqRSxJQUFJQyxNQUFNRSxJQUFJLENBQUNaLE1BQU1DLE9BQU8sR0FBRztZQUM3QkYsV0FDRUMsT0FDQSxHQUFHUyxXQUFXLG9MQUFvTCxDQUFDO1lBRXJNO1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL3NyYy9saWIvZm9ybWF0LXNlcnZlci1lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpbnZhbGlkU2VydmVyQ29tcG9uZW50UmVhY3RIb29rcyA9IFtcbiAgJ3VzZURlZmVycmVkVmFsdWUnLFxuICAndXNlRWZmZWN0JyxcbiAgJ3VzZUltcGVyYXRpdmVIYW5kbGUnLFxuICAndXNlSW5zZXJ0aW9uRWZmZWN0JyxcbiAgJ3VzZUxheW91dEVmZmVjdCcsXG4gICd1c2VSZWR1Y2VyJyxcbiAgJ3VzZVJlZicsXG4gICd1c2VTdGF0ZScsXG4gICd1c2VTeW5jRXh0ZXJuYWxTdG9yZScsXG4gICd1c2VUcmFuc2l0aW9uJyxcbiAgJ2V4cGVyaW1lbnRhbF91c2VPcHRpbWlzdGljJyxcbiAgJ3VzZU9wdGltaXN0aWMnLFxuXVxuXG5mdW5jdGlvbiBzZXRNZXNzYWdlKGVycm9yOiBFcnJvciwgbWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gIGVycm9yLm1lc3NhZ2UgPSBtZXNzYWdlXG4gIGlmIChlcnJvci5zdGFjaykge1xuICAgIGNvbnN0IGxpbmVzID0gZXJyb3Iuc3RhY2suc3BsaXQoJ1xcbicpXG4gICAgbGluZXNbMF0gPSBtZXNzYWdlXG4gICAgZXJyb3Iuc3RhY2sgPSBsaW5lcy5qb2luKCdcXG4nKVxuICB9XG59XG5cbi8qKlxuICogSW5wdXQ6XG4gKiBFcnJvcjogU29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICBhdCBmdW5jTmFtZSAoL3BhdGgvdG8vZmlsZS5qczoxMDo1KVxuICAgIGF0IGFub3RoZXJGdW5jICgvcGF0aC90by9maWxlLmpzOjE1OjEwKVxuIFxuICogT3V0cHV0OlxuICAgIGF0IGZ1bmNOYW1lICgvcGF0aC90by9maWxlLmpzOjEwOjUpXG4gICAgYXQgYW5vdGhlckZ1bmMgKC9wYXRoL3RvL2ZpbGUuanM6MTU6MTApIFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhY2tXaXRob3V0RXJyb3JNZXNzYWdlKGVycm9yOiBFcnJvcik6IHN0cmluZyB7XG4gIGNvbnN0IHN0YWNrID0gZXJyb3Iuc3RhY2tcbiAgaWYgKCFzdGFjaykgcmV0dXJuICcnXG4gIHJldHVybiBzdGFjay5yZXBsYWNlKC9eW15cXG5dKlxcbi8sICcnKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2VydmVyRXJyb3IoZXJyb3I6IEVycm9yKTogdm9pZCB7XG4gIGlmICh0eXBlb2YgZXJyb3I/Lm1lc3NhZ2UgIT09ICdzdHJpbmcnKSByZXR1cm5cblxuICBpZiAoXG4gICAgZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcbiAgICAgICdDbGFzcyBleHRlbmRzIHZhbHVlIHVuZGVmaW5lZCBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsJ1xuICAgIClcbiAgKSB7XG4gICAgY29uc3QgYWRkZWRNZXNzYWdlID1cbiAgICAgICdUaGlzIG1pZ2h0IGJlIGNhdXNlZCBieSBhIFJlYWN0IENsYXNzIENvbXBvbmVudCBiZWluZyByZW5kZXJlZCBpbiBhIFNlcnZlciBDb21wb25lbnQsIFJlYWN0IENsYXNzIENvbXBvbmVudHMgb25seSB3b3JrcyBpbiBDbGllbnQgQ29tcG9uZW50cy4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9jbGFzcy1jb21wb25lbnQtaW4tc2VydmVyLWNvbXBvbmVudCdcblxuICAgIC8vIElmIHRoaXMgZXJyb3IgaW5zdGFuY2UgYWxyZWFkeSBoYXMgdGhlIG1lc3NhZ2UsIGRvbid0IGFkZCBpdCBhZ2FpblxuICAgIGlmIChlcnJvci5tZXNzYWdlLmluY2x1ZGVzKGFkZGVkTWVzc2FnZSkpIHJldHVyblxuXG4gICAgc2V0TWVzc2FnZShcbiAgICAgIGVycm9yLFxuICAgICAgYCR7ZXJyb3IubWVzc2FnZX1cblxuJHthZGRlZE1lc3NhZ2V9YFxuICAgIClcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChlcnJvci5tZXNzYWdlLmluY2x1ZGVzKCdjcmVhdGVDb250ZXh0IGlzIG5vdCBhIGZ1bmN0aW9uJykpIHtcbiAgICBzZXRNZXNzYWdlKFxuICAgICAgZXJyb3IsXG4gICAgICAnY3JlYXRlQ29udGV4dCBvbmx5IHdvcmtzIGluIENsaWVudCBDb21wb25lbnRzLiBBZGQgdGhlIFwidXNlIGNsaWVudFwiIGRpcmVjdGl2ZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlIHRvIHVzZSBpdC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9jb250ZXh0LWluLXNlcnZlci1jb21wb25lbnQnXG4gICAgKVxuICAgIHJldHVyblxuICB9XG5cbiAgZm9yIChjb25zdCBjbGllbnRIb29rIG9mIGludmFsaWRTZXJ2ZXJDb21wb25lbnRSZWFjdEhvb2tzKSB7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcYiR7Y2xpZW50SG9va31cXFxcYi4qaXMgbm90IGEgZnVuY3Rpb25gKVxuICAgIGlmIChyZWdleC50ZXN0KGVycm9yLm1lc3NhZ2UpKSB7XG4gICAgICBzZXRNZXNzYWdlKFxuICAgICAgICBlcnJvcixcbiAgICAgICAgYCR7Y2xpZW50SG9va30gb25seSB3b3JrcyBpbiBDbGllbnQgQ29tcG9uZW50cy4gQWRkIHRoZSBcInVzZSBjbGllbnRcIiBkaXJlY3RpdmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSB0byB1c2UgaXQuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcmVhY3QtY2xpZW50LWhvb2staW4tc2VydmVyLWNvbXBvbmVudGBcbiAgICAgIClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImZvcm1hdFNlcnZlckVycm9yIiwiZ2V0U3RhY2tXaXRob3V0RXJyb3JNZXNzYWdlIiwiaW52YWxpZFNlcnZlckNvbXBvbmVudFJlYWN0SG9va3MiLCJzZXRNZXNzYWdlIiwiZXJyb3IiLCJtZXNzYWdlIiwic3RhY2siLCJsaW5lcyIsInNwbGl0Iiwiam9pbiIsInJlcGxhY2UiLCJpbmNsdWRlcyIsImFkZGVkTWVzc2FnZSIsImNsaWVudEhvb2siLCJyZWdleCIsIlJlZ0V4cCIsInRlc3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/format-server-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/framework/boundary-components.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/framework/boundary-components.js ***!
|
||
\*********************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/node_modules/next/dist/lib/framework/boundary-components.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29tcG9uZW50cy5qcyIsIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsiX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2ZyYW1ld29yay9ib3VuZGFyeS1jb21wb25lbnRzLmpzL19fbmV4dGpzLWludGVybmFsLXByb3h5LmNqcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBXZWJwYWNrIG5leHQtZmxpZ2h0LWxvYWRlci5cbmNvbnN0IHsgY3JlYXRlUHJveHkgfSA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWxvYWRlci9tb2R1bGUtcHJveHlcIilcblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVQcm94eShcIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2ZyYW1ld29yay9ib3VuZGFyeS1jb21wb25lbnRzLmpzXCIpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/framework/boundary-components.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/framework/boundary-constants.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/framework/boundary-constants.js ***!
|
||
\********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 METADATA_BOUNDARY_NAME: function() {\n return METADATA_BOUNDARY_NAME;\n },\n OUTLET_BOUNDARY_NAME: function() {\n return OUTLET_BOUNDARY_NAME;\n },\n ROOT_LAYOUT_BOUNDARY_NAME: function() {\n return ROOT_LAYOUT_BOUNDARY_NAME;\n },\n VIEWPORT_BOUNDARY_NAME: function() {\n return VIEWPORT_BOUNDARY_NAME;\n }\n});\nconst METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';\nconst VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';\nconst OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';\nconst ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__';\n\n//# sourceMappingURL=boundary-constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvZnJhbWV3b3JrL2JvdW5kYXJ5LWNvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgT1VUTEVUX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRTogbnVsbCxcbiAgICBWSUVXUE9SVF9CT1VOREFSWV9OQU1FOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTUVUQURBVEFfQk9VTkRBUllfTkFNRTtcbiAgICB9LFxuICAgIE9VVExFVF9CT1VOREFSWV9OQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE9VVExFVF9CT1VOREFSWV9OQU1FO1xuICAgIH0sXG4gICAgUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FO1xuICAgIH0sXG4gICAgVklFV1BPUlRfQk9VTkRBUllfTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBWSUVXUE9SVF9CT1VOREFSWV9OQU1FO1xuICAgIH1cbn0pO1xuY29uc3QgTUVUQURBVEFfQk9VTkRBUllfTkFNRSA9ICdfX25leHRfbWV0YWRhdGFfYm91bmRhcnlfXyc7XG5jb25zdCBWSUVXUE9SVF9CT1VOREFSWV9OQU1FID0gJ19fbmV4dF92aWV3cG9ydF9ib3VuZGFyeV9fJztcbmNvbnN0IE9VVExFVF9CT1VOREFSWV9OQU1FID0gJ19fbmV4dF9vdXRsZXRfYm91bmRhcnlfXyc7XG5jb25zdCBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FID0gJ19fbmV4dF9yb290X2xheW91dF9ib3VuZGFyeV9fJztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym91bmRhcnktY29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/framework/boundary-constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/interop-default.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/interop-default.js ***!
|
||
\*******************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interopDefault\", ({\n enumerable: true,\n get: function() {\n return interopDefault;\n }\n}));\nfunction interopDefault(mod) {\n return mod.default || mod;\n}\n\n//# sourceMappingURL=interop-default.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pbnRlcm9wLWRlZmF1bHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2ludGVyb3AtZGVmYXVsdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImludGVyb3BEZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbnRlcm9wRGVmYXVsdDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGludGVyb3BEZWZhdWx0KG1vZCkge1xuICAgIHJldHVybiBtb2QuZGVmYXVsdCB8fCBtb2Q7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVyb3AtZGVmYXVsdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/interop-default.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/is-error.js":
|
||
/*!************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/is-error.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 /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(rsc)/./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\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 Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsbUJBQU8sQ0FBQyxtR0FBK0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgZ2V0UHJvcGVyRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBOZXh0RXJyb3IuXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByaW50IGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIHdpdGggcHJvcGVydGllcyBsaWtlIGBjb2RlYCAmIGBkaWdlc3RgLlxuICovIGRlZmF1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNFcnJvcjtcbiAgICB9LFxuICAgIGdldFByb3BlckVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFByb3BlckVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2lzcGxhaW5vYmplY3QgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3RcIik7XG5mdW5jdGlvbiBpc0Vycm9yKGVycikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIgIT09IG51bGwgJiYgJ25hbWUnIGluIGVyciAmJiAnbWVzc2FnZScgaW4gZXJyO1xufVxuZnVuY3Rpb24gc2FmZVN0cmluZ2lmeShvYmopIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFdlYWtTZXQoKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCAoX2tleSwgdmFsdWUpPT57XG4gICAgICAgIC8vIElmIHZhbHVlIGlzIGFuIG9iamVjdCBhbmQgYWxyZWFkeSBzZWVuLCByZXBsYWNlIHdpdGggXCJbQ2lyY3VsYXJdXCJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tDaXJjdWxhcl0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGdldFByb3BlckVycm9yKGVycikge1xuICAgIGlmIChpc0Vycm9yKGVycikpIHtcbiAgICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIHByb3ZpZGUgYmV0dGVyIGVycm9yIGZvciBjYXNlIHdoZXJlIGB0aHJvdyB1bmRlZmluZWRgXG4gICAgICAgIC8vIGlzIGNhbGxlZCBpbiBkZXZlbG9wbWVudFxuICAgICAgICBpZiAodHlwZW9mIGVyciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdBbiB1bmRlZmluZWQgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTk4XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignQSBudWxsIGVycm9yIHdhcyB0aHJvd24sICcgKyAnc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzMzZcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCgwLCBfaXNwbGFpbm9iamVjdC5pc1BsYWluT2JqZWN0KShlcnIpID8gc2FmZVN0cmluZ2lmeShlcnIpIDogZXJyICsgJycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/is-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/clone-metadata.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/clone-metadata.js ***!
|
||
\***************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"cloneMetadata\", ({\n enumerable: true,\n get: function() {\n return cloneMetadata;\n }\n}));\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}\n\n//# sourceMappingURL=clone-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9jbG9uZS1tZXRhZGF0YS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGlEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvY2xvbmUtbWV0YWRhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjbG9uZU1ldGFkYXRhXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjbG9uZU1ldGFkYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgVFlQRV9VUkwgPSAnX19NRVRBREFUQV9VUkwnO1xuZnVuY3Rpb24gcmVwbGFjZXIoX2tleSwgdmFsKSB7XG4gICAgLy8gY2xvbmUgVVJMIGFzIHN0cmluZyBidXQgcmVjb3ZlciBpdCBhcyBVUkxcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBfdHlwZTogVFlQRV9VUkwsXG4gICAgICAgICAgICB2YWx1ZTogdmFsLmhyZWZcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn1cbmZ1bmN0aW9uIHJldml2ZXIoX2tleSwgdmFsKSB7XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbCAhPT0gbnVsbCAmJiB2YWwuX3R5cGUgPT09IFRZUEVfVVJMKSB7XG4gICAgICAgIHJldHVybiBuZXcgVVJMKHZhbC52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59XG5mdW5jdGlvbiBjbG9uZU1ldGFkYXRhKG1ldGFkYXRhKSB7XG4gICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KG1ldGFkYXRhLCByZXBsYWNlcik7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoanNvblN0cmluZywgcmV2aXZlcik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsb25lLW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/clone-metadata.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/constants.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/constants.js ***!
|
||
\**********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 IconKeys: function() {\n return IconKeys;\n },\n ViewportMetaKeys: function() {\n return ViewportMetaKeys;\n }\n});\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];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEljb25LZXlzOiBudWxsLFxuICAgIFZpZXdwb3J0TWV0YUtleXM6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgSWNvbktleXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSWNvbktleXM7XG4gICAgfSxcbiAgICBWaWV3cG9ydE1ldGFLZXlzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFZpZXdwb3J0TWV0YUtleXM7XG4gICAgfVxufSk7XG5jb25zdCBWaWV3cG9ydE1ldGFLZXlzID0ge1xuICAgIHdpZHRoOiAnd2lkdGgnLFxuICAgIGhlaWdodDogJ2hlaWdodCcsXG4gICAgaW5pdGlhbFNjYWxlOiAnaW5pdGlhbC1zY2FsZScsXG4gICAgbWluaW11bVNjYWxlOiAnbWluaW11bS1zY2FsZScsXG4gICAgbWF4aW11bVNjYWxlOiAnbWF4aW11bS1zY2FsZScsXG4gICAgdmlld3BvcnRGaXQ6ICd2aWV3cG9ydC1maXQnLFxuICAgIHVzZXJTY2FsYWJsZTogJ3VzZXItc2NhbGFibGUnLFxuICAgIGludGVyYWN0aXZlV2lkZ2V0OiAnaW50ZXJhY3RpdmUtd2lkZ2V0J1xufTtcbmNvbnN0IEljb25LZXlzID0gW1xuICAgICdpY29uJyxcbiAgICAnc2hvcnRjdXQnLFxuICAgICdhcHBsZScsXG4gICAgJ290aGVyJ1xuXTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/default-metadata.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/default-metadata.js ***!
|
||
\*****************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 createDefaultMetadata: function() {\n return createDefaultMetadata;\n },\n createDefaultViewport: function() {\n return createDefaultViewport;\n }\n});\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 facebook: null,\n pinterest: null,\n abstract: null,\n appLinks: null,\n archives: null,\n assets: null,\n bookmarks: null,\n category: null,\n classification: null,\n pagination: {\n previous: null,\n next: null\n },\n other: {}\n };\n}\n\n//# sourceMappingURL=default-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9kZWZhdWx0LW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9kZWZhdWx0LW1ldGFkYXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlRGVmYXVsdE1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZURlZmF1bHRWaWV3cG9ydDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVEZWZhdWx0TWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRGVmYXVsdE1ldGFkYXRhO1xuICAgIH0sXG4gICAgY3JlYXRlRGVmYXVsdFZpZXdwb3J0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURlZmF1bHRWaWV3cG9ydDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRWaWV3cG9ydCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICAvLyBuYW1lPXZpZXdwb3J0XG4gICAgICAgIHdpZHRoOiAnZGV2aWNlLXdpZHRoJyxcbiAgICAgICAgaW5pdGlhbFNjYWxlOiAxLFxuICAgICAgICAvLyB2aXN1YWwgbWV0YWRhdGFcbiAgICAgICAgdGhlbWVDb2xvcjogbnVsbCxcbiAgICAgICAgY29sb3JTY2hlbWU6IG51bGxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlRGVmYXVsdE1ldGFkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIC8vIERlcHJlY2F0ZWQgb25lc1xuICAgICAgICB2aWV3cG9ydDogbnVsbCxcbiAgICAgICAgdGhlbWVDb2xvcjogbnVsbCxcbiAgICAgICAgY29sb3JTY2hlbWU6IG51bGwsXG4gICAgICAgIG1ldGFkYXRhQmFzZTogbnVsbCxcbiAgICAgICAgLy8gT3RoZXIgdmFsdWVzIGFyZSBhbGwgbnVsbFxuICAgICAgICB0aXRsZTogbnVsbCxcbiAgICAgICAgZGVzY3JpcHRpb246IG51bGwsXG4gICAgICAgIGFwcGxpY2F0aW9uTmFtZTogbnVsbCxcbiAgICAgICAgYXV0aG9yczogbnVsbCxcbiAgICAgICAgZ2VuZXJhdG9yOiBudWxsLFxuICAgICAgICBrZXl3b3JkczogbnVsbCxcbiAgICAgICAgcmVmZXJyZXI6IG51bGwsXG4gICAgICAgIGNyZWF0b3I6IG51bGwsXG4gICAgICAgIHB1Ymxpc2hlcjogbnVsbCxcbiAgICAgICAgcm9ib3RzOiBudWxsLFxuICAgICAgICBtYW5pZmVzdDogbnVsbCxcbiAgICAgICAgYWx0ZXJuYXRlczoge1xuICAgICAgICAgICAgY2Fub25pY2FsOiBudWxsLFxuICAgICAgICAgICAgbGFuZ3VhZ2VzOiBudWxsLFxuICAgICAgICAgICAgbWVkaWE6IG51bGwsXG4gICAgICAgICAgICB0eXBlczogbnVsbFxuICAgICAgICB9LFxuICAgICAgICBpY29uczogbnVsbCxcbiAgICAgICAgb3BlbkdyYXBoOiBudWxsLFxuICAgICAgICB0d2l0dGVyOiBudWxsLFxuICAgICAgICB2ZXJpZmljYXRpb246IHt9LFxuICAgICAgICBhcHBsZVdlYkFwcDogbnVsbCxcbiAgICAgICAgZm9ybWF0RGV0ZWN0aW9uOiBudWxsLFxuICAgICAgICBpdHVuZXM6IG51bGwsXG4gICAgICAgIGZhY2Vib29rOiBudWxsLFxuICAgICAgICBwaW50ZXJlc3Q6IG51bGwsXG4gICAgICAgIGFic3RyYWN0OiBudWxsLFxuICAgICAgICBhcHBMaW5rczogbnVsbCxcbiAgICAgICAgYXJjaGl2ZXM6IG51bGwsXG4gICAgICAgIGFzc2V0czogbnVsbCxcbiAgICAgICAgYm9va21hcmtzOiBudWxsLFxuICAgICAgICBjYXRlZ29yeTogbnVsbCxcbiAgICAgICAgY2xhc3NpZmljYXRpb246IG51bGwsXG4gICAgICAgIHBhZ2luYXRpb246IHtcbiAgICAgICAgICAgIHByZXZpb3VzOiBudWxsLFxuICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICB9LFxuICAgICAgICBvdGhlcjoge31cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0LW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/default-metadata.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/alternate.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/generate/alternate.js ***!
|
||
\*******************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AlternatesMetadata\", ({\n enumerable: true,\n get: function() {\n return AlternatesMetadata;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction AlternateLink({ descriptor, ...props }) {\n if (!descriptor.url) return null;\n return /*#__PURE__*/ (0, _jsxruntime.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.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}\n\n//# sourceMappingURL=alternate.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9hbHRlcm5hdGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixzREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixvQkFBb0IsbUJBQU8sQ0FBQyx5SEFBbUI7QUFDL0Msc0RBQXNELG1CQUFPLENBQUMsaUdBQU87QUFDckUsY0FBYyxtQkFBTyxDQUFDLDRFQUFRO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsc0JBQXNCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0w7QUFDQSw4QkFBOEIsWUFBWTtBQUMxQztBQUNBLFlBQVkscUNBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2dlbmVyYXRlL2FsdGVybmF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkFsdGVybmF0ZXNNZXRhZGF0YVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQWx0ZXJuYXRlc01ldGFkYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX21ldGEgPSByZXF1aXJlKFwiLi9tZXRhXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBBbHRlcm5hdGVMaW5rKHsgZGVzY3JpcHRvciwgLi4ucHJvcHMgfSkge1xuICAgIGlmICghZGVzY3JpcHRvci51cmwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICAuLi5kZXNjcmlwdG9yLnRpdGxlICYmIHtcbiAgICAgICAgICAgIHRpdGxlOiBkZXNjcmlwdG9yLnRpdGxlXG4gICAgICAgIH0sXG4gICAgICAgIGhyZWY6IGRlc2NyaXB0b3IudXJsLnRvU3RyaW5nKClcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIEFsdGVybmF0ZXNNZXRhZGF0YSh7IGFsdGVybmF0ZXMgfSkge1xuICAgIGlmICghYWx0ZXJuYXRlcykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgeyBjYW5vbmljYWwsIGxhbmd1YWdlcywgbWVkaWEsIHR5cGVzIH0gPSBhbHRlcm5hdGVzO1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICBjYW5vbmljYWwgPyBBbHRlcm5hdGVMaW5rKHtcbiAgICAgICAgICAgIHJlbDogJ2Nhbm9uaWNhbCcsXG4gICAgICAgICAgICBkZXNjcmlwdG9yOiBjYW5vbmljYWxcbiAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICBsYW5ndWFnZXMgPyBPYmplY3QuZW50cmllcyhsYW5ndWFnZXMpLmZsYXRNYXAoKFtsb2NhbGUsIGRlc2NyaXB0b3JzXSk9PmRlc2NyaXB0b3JzID09IG51bGwgPyB2b2lkIDAgOiBkZXNjcmlwdG9ycy5tYXAoKGRlc2NyaXB0b3IpPT5BbHRlcm5hdGVMaW5rKHtcbiAgICAgICAgICAgICAgICAgICAgcmVsOiAnYWx0ZXJuYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgaHJlZkxhbmc6IGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIH0pKSkgOiBudWxsLFxuICAgICAgICBtZWRpYSA/IE9iamVjdC5lbnRyaWVzKG1lZGlhKS5mbGF0TWFwKChbbWVkaWFOYW1lLCBkZXNjcmlwdG9yc10pPT5kZXNjcmlwdG9ycyA9PSBudWxsID8gdm9pZCAwIDogZGVzY3JpcHRvcnMubWFwKChkZXNjcmlwdG9yKT0+QWx0ZXJuYXRlTGluayh7XG4gICAgICAgICAgICAgICAgICAgIHJlbDogJ2FsdGVybmF0ZScsXG4gICAgICAgICAgICAgICAgICAgIG1lZGlhOiBtZWRpYU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICB9KSkpIDogbnVsbCxcbiAgICAgICAgdHlwZXMgPyBPYmplY3QuZW50cmllcyh0eXBlcykuZmxhdE1hcCgoW3R5cGUsIGRlc2NyaXB0b3JzXSk9PmRlc2NyaXB0b3JzID09IG51bGwgPyB2b2lkIDAgOiBkZXNjcmlwdG9ycy5tYXAoKGRlc2NyaXB0b3IpPT5BbHRlcm5hdGVMaW5rKHtcbiAgICAgICAgICAgICAgICAgICAgcmVsOiAnYWx0ZXJuYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIH0pKSkgOiBudWxsXG4gICAgXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFsdGVybmF0ZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/alternate.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/basic.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/generate/basic.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 AppleWebAppMeta: function() {\n return AppleWebAppMeta;\n },\n BasicMeta: function() {\n return BasicMeta;\n },\n FacebookMeta: function() {\n return FacebookMeta;\n },\n FormatDetectionMeta: function() {\n return FormatDetectionMeta;\n },\n ItunesMeta: function() {\n return ItunesMeta;\n },\n PinterestMeta: function() {\n return PinterestMeta;\n },\n VerificationMeta: function() {\n return VerificationMeta;\n },\n ViewportMeta: function() {\n return ViewportMeta;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nconst _constants = __webpack_require__(/*! ../constants */ \"(rsc)/./node_modules/next/dist/lib/metadata/constants.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\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.ViewportMetaKeys){\n const viewportKey = viewportKey_;\n if (viewportKey in viewport) {\n let value = viewport[viewportKey];\n if (typeof value === 'boolean') {\n value = value ? 'yes' : 'no';\n } else if (!value && viewportKey === 'initialScale') {\n value = undefined;\n }\n if (value) {\n if (resolved) resolved += ', ';\n resolved += `${_constants.ViewportMetaKeys[viewportKey]}=${value}`;\n }\n }\n }\n }\n return resolved;\n}\nfunction ViewportMeta({ viewport }) {\n return (0, _meta.MetaFilter)([\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }),\n (0, _meta.Meta)({\n name: 'viewport',\n content: resolveViewportLayout(viewport)\n }),\n ...viewport.themeColor ? viewport.themeColor.map((themeColor)=>(0, _meta.Meta)({\n name: 'theme-color',\n content: themeColor.color,\n media: themeColor.media\n })) : [],\n (0, _meta.Meta)({\n name: 'color-scheme',\n content: viewport.colorScheme\n })\n ]);\n}\nfunction BasicMeta({ metadata }) {\n var _metadata_keywords, _metadata_robots, _metadata_robots1;\n const manifestOrigin = metadata.manifest ? (0, _utils.getOrigin)(metadata.manifest) : undefined;\n return (0, _meta.MetaFilter)([\n metadata.title !== null && metadata.title.absolute ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: metadata.title.absolute\n }) : null,\n (0, _meta.Meta)({\n name: 'description',\n content: metadata.description\n }),\n (0, _meta.Meta)({\n name: 'application-name',\n content: metadata.applicationName\n }),\n ...metadata.authors ? metadata.authors.map((author)=>[\n author.url ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"author\",\n href: author.url.toString()\n }) : null,\n (0, _meta.Meta)({\n name: 'author',\n content: author.name\n })\n ]) : [],\n metadata.manifest ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"manifest\",\n href: metadata.manifest.toString(),\n // If it's same origin, and it's a preview deployment,\n // including credentials for manifest request.\n crossOrigin: !manifestOrigin && process.env.VERCEL_ENV === 'preview' ? 'use-credentials' : undefined\n }) : null,\n (0, _meta.Meta)({\n name: 'generator',\n content: metadata.generator\n }),\n (0, _meta.Meta)({\n name: 'keywords',\n content: (_metadata_keywords = metadata.keywords) == null ? void 0 : _metadata_keywords.join(',')\n }),\n (0, _meta.Meta)({\n name: 'referrer',\n content: metadata.referrer\n }),\n (0, _meta.Meta)({\n name: 'creator',\n content: metadata.creator\n }),\n (0, _meta.Meta)({\n name: 'publisher',\n content: metadata.publisher\n }),\n (0, _meta.Meta)({\n name: 'robots',\n content: (_metadata_robots = metadata.robots) == null ? void 0 : _metadata_robots.basic\n }),\n (0, _meta.Meta)({\n name: 'googlebot',\n content: (_metadata_robots1 = metadata.robots) == null ? void 0 : _metadata_robots1.googleBot\n }),\n (0, _meta.Meta)({\n name: 'abstract',\n content: metadata.abstract\n }),\n ...metadata.archives ? metadata.archives.map((archive)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"archives\",\n href: archive\n })) : [],\n ...metadata.assets ? metadata.assets.map((asset)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"assets\",\n href: asset\n })) : [],\n ...metadata.bookmarks ? metadata.bookmarks.map((bookmark)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"bookmarks\",\n href: bookmark\n })) : [],\n ...metadata.pagination ? [\n metadata.pagination.previous ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"prev\",\n href: metadata.pagination.previous\n }) : null,\n metadata.pagination.next ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"next\",\n href: metadata.pagination.next\n }) : null\n ] : [],\n (0, _meta.Meta)({\n name: 'category',\n content: metadata.category\n }),\n (0, _meta.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.Meta)({\n name,\n content: contentItem\n }));\n } else {\n return (0, _meta.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, _jsxruntime.jsx)(\"meta\", {\n name: \"apple-itunes-app\",\n content: content\n });\n}\nfunction FacebookMeta({ facebook }) {\n if (!facebook) return null;\n const { appId, admins } = facebook;\n return (0, _meta.MetaFilter)([\n appId ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n property: \"fb:app_id\",\n content: appId\n }) : null,\n ...admins ? admins.map((admin)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n property: \"fb:admins\",\n content: admin\n })) : []\n ]);\n}\nfunction PinterestMeta({ pinterest }) {\n if (!pinterest || !pinterest.richPin) return null;\n const { richPin } = pinterest;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n property: \"pinterest-rich-pin\",\n content: richPin.toString()\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, _jsxruntime.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.MetaFilter)([\n capable ? (0, _meta.Meta)({\n name: 'mobile-web-app-capable',\n content: 'yes'\n }) : null,\n (0, _meta.Meta)({\n name: 'apple-mobile-web-app-title',\n content: title\n }),\n startupImage ? startupImage.map((image)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n href: image.url,\n media: image.media,\n rel: \"apple-touch-startup-image\"\n })) : null,\n statusBarStyle ? (0, _meta.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.MetaFilter)([\n (0, _meta.MultiMeta)({\n namePrefix: 'google-site-verification',\n contents: verification.google\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'y_key',\n contents: verification.yahoo\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'yandex-verification',\n contents: verification.yandex\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'me',\n contents: verification.me\n }),\n ...verification.other ? Object.entries(verification.other).map(([key, value])=>(0, _meta.MultiMeta)({\n namePrefix: key,\n contents: value\n })) : []\n ]);\n}\n\n//# sourceMappingURL=basic.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9iYXNpYy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FTTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxvQkFBb0IsbUJBQU8sQ0FBQyx5SEFBbUI7QUFDL0MsY0FBYyxtQkFBTyxDQUFDLDRFQUFRO0FBQzlCLG1CQUFtQixtQkFBTyxDQUFDLDhFQUFjO0FBQ3pDLGVBQWUsbUJBQU8sQ0FBQyw4RUFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHlDQUF5QyxHQUFHLE1BQU07QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLHFCQUFxQixVQUFVO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0Esc0JBQXNCLFFBQVE7QUFDOUI7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQyw0QkFBNEIsTUFBTTtBQUNsQztBQUNBLHFDQUFxQyxZQUFZO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQSxZQUFZLGdCQUFnQjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLHlCQUF5QixXQUFXO0FBQ3BDO0FBQ0EsWUFBWSxVQUFVO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLGlCQUFpQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLElBQUk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDJCQUEyQixhQUFhO0FBQ3hDO0FBQ0EsWUFBWSwrQ0FBK0M7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsNEJBQTRCLGNBQWM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvYmFzaWMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBBcHBsZVdlYkFwcE1ldGE6IG51bGwsXG4gICAgQmFzaWNNZXRhOiBudWxsLFxuICAgIEZhY2Vib29rTWV0YTogbnVsbCxcbiAgICBGb3JtYXREZXRlY3Rpb25NZXRhOiBudWxsLFxuICAgIEl0dW5lc01ldGE6IG51bGwsXG4gICAgUGludGVyZXN0TWV0YTogbnVsbCxcbiAgICBWZXJpZmljYXRpb25NZXRhOiBudWxsLFxuICAgIFZpZXdwb3J0TWV0YTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcHBsZVdlYkFwcE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwbGVXZWJBcHBNZXRhO1xuICAgIH0sXG4gICAgQmFzaWNNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEJhc2ljTWV0YTtcbiAgICB9LFxuICAgIEZhY2Vib29rTWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBGYWNlYm9va01ldGE7XG4gICAgfSxcbiAgICBGb3JtYXREZXRlY3Rpb25NZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEZvcm1hdERldGVjdGlvbk1ldGE7XG4gICAgfSxcbiAgICBJdHVuZXNNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEl0dW5lc01ldGE7XG4gICAgfSxcbiAgICBQaW50ZXJlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBpbnRlcmVzdE1ldGE7XG4gICAgfSxcbiAgICBWZXJpZmljYXRpb25NZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFZlcmlmaWNhdGlvbk1ldGE7XG4gICAgfSxcbiAgICBWaWV3cG9ydE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVmlld3BvcnRNZXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfbWV0YSA9IHJlcXVpcmUoXCIuL21ldGFcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL2NvbnN0YW50c1wiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuLy8gY29udmVydCB2aWV3cG9ydCBvYmplY3QgdG8gc3RyaW5nIGZvciB2aWV3cG9ydCBtZXRhIHRhZ1xuZnVuY3Rpb24gcmVzb2x2ZVZpZXdwb3J0TGF5b3V0KHZpZXdwb3J0KSB7XG4gICAgbGV0IHJlc29sdmVkID0gbnVsbDtcbiAgICBpZiAodmlld3BvcnQgJiYgdHlwZW9mIHZpZXdwb3J0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXNvbHZlZCA9ICcnO1xuICAgICAgICBmb3IoY29uc3Qgdmlld3BvcnRLZXlfIGluIF9jb25zdGFudHMuVmlld3BvcnRNZXRhS2V5cyl7XG4gICAgICAgICAgICBjb25zdCB2aWV3cG9ydEtleSA9IHZpZXdwb3J0S2V5XztcbiAgICAgICAgICAgIGlmICh2aWV3cG9ydEtleSBpbiB2aWV3cG9ydCkge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHZpZXdwb3J0W3ZpZXdwb3J0S2V5XTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA/ICd5ZXMnIDogJ25vJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF2YWx1ZSAmJiB2aWV3cG9ydEtleSA9PT0gJ2luaXRpYWxTY2FsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWQpIHJlc29sdmVkICs9ICcsICc7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkICs9IGAke19jb25zdGFudHMuVmlld3BvcnRNZXRhS2V5c1t2aWV3cG9ydEtleV19PSR7dmFsdWV9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkO1xufVxuZnVuY3Rpb24gVmlld3BvcnRNZXRhKHsgdmlld3BvcnQgfSkge1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibWV0YVwiLCB7XG4gICAgICAgICAgICBjaGFyU2V0OiBcInV0Zi04XCJcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndmlld3BvcnQnLFxuICAgICAgICAgICAgY29udGVudDogcmVzb2x2ZVZpZXdwb3J0TGF5b3V0KHZpZXdwb3J0KVxuICAgICAgICB9KSxcbiAgICAgICAgLi4udmlld3BvcnQudGhlbWVDb2xvciA/IHZpZXdwb3J0LnRoZW1lQ29sb3IubWFwKCh0aGVtZUNvbG9yKT0+KDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAndGhlbWUtY29sb3InLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoZW1lQ29sb3IuY29sb3IsXG4gICAgICAgICAgICAgICAgbWVkaWE6IHRoZW1lQ29sb3IubWVkaWFcbiAgICAgICAgICAgIH0pKSA6IFtdLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2NvbG9yLXNjaGVtZScsXG4gICAgICAgICAgICBjb250ZW50OiB2aWV3cG9ydC5jb2xvclNjaGVtZVxuICAgICAgICB9KVxuICAgIF0pO1xufVxuZnVuY3Rpb24gQmFzaWNNZXRhKHsgbWV0YWRhdGEgfSkge1xuICAgIHZhciBfbWV0YWRhdGFfa2V5d29yZHMsIF9tZXRhZGF0YV9yb2JvdHMsIF9tZXRhZGF0YV9yb2JvdHMxO1xuICAgIGNvbnN0IG1hbmlmZXN0T3JpZ2luID0gbWV0YWRhdGEubWFuaWZlc3QgPyAoMCwgX3V0aWxzLmdldE9yaWdpbikobWV0YWRhdGEubWFuaWZlc3QpIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICBtZXRhZGF0YS50aXRsZSAhPT0gbnVsbCAmJiBtZXRhZGF0YS50aXRsZS5hYnNvbHV0ZSA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJ0aXRsZVwiLCB7XG4gICAgICAgICAgICBjaGlsZHJlbjogbWV0YWRhdGEudGl0bGUuYWJzb2x1dGVcbiAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmRlc2NyaXB0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2FwcGxpY2F0aW9uLW5hbWUnLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEuYXBwbGljYXRpb25OYW1lXG4gICAgICAgIH0pLFxuICAgICAgICAuLi5tZXRhZGF0YS5hdXRob3JzID8gbWV0YWRhdGEuYXV0aG9ycy5tYXAoKGF1dGhvcik9PltcbiAgICAgICAgICAgICAgICBhdXRob3IudXJsID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgICAgICByZWw6IFwiYXV0aG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IGF1dGhvci51cmwudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnYXV0aG9yJyxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXV0aG9yLm5hbWVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXSkgOiBbXSxcbiAgICAgICAgbWV0YWRhdGEubWFuaWZlc3QgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgICAgICByZWw6IFwibWFuaWZlc3RcIixcbiAgICAgICAgICAgIGhyZWY6IG1ldGFkYXRhLm1hbmlmZXN0LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAvLyBJZiBpdCdzIHNhbWUgb3JpZ2luLCBhbmQgaXQncyBhIHByZXZpZXcgZGVwbG95bWVudCxcbiAgICAgICAgICAgIC8vIGluY2x1ZGluZyBjcmVkZW50aWFscyBmb3IgbWFuaWZlc3QgcmVxdWVzdC5cbiAgICAgICAgICAgIGNyb3NzT3JpZ2luOiAhbWFuaWZlc3RPcmlnaW4gJiYgcHJvY2Vzcy5lbnYuVkVSQ0VMX0VOViA9PT0gJ3ByZXZpZXcnID8gJ3VzZS1jcmVkZW50aWFscycgOiB1bmRlZmluZWRcbiAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2dlbmVyYXRvcicsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5nZW5lcmF0b3JcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAna2V5d29yZHMnLFxuICAgICAgICAgICAgY29udGVudDogKF9tZXRhZGF0YV9rZXl3b3JkcyA9IG1ldGFkYXRhLmtleXdvcmRzKSA9PSBudWxsID8gdm9pZCAwIDogX21ldGFkYXRhX2tleXdvcmRzLmpvaW4oJywnKVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdyZWZlcnJlcicsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5yZWZlcnJlclxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdjcmVhdG9yJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmNyZWF0b3JcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAncHVibGlzaGVyJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLnB1Ymxpc2hlclxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdyb2JvdHMnLFxuICAgICAgICAgICAgY29udGVudDogKF9tZXRhZGF0YV9yb2JvdHMgPSBtZXRhZGF0YS5yb2JvdHMpID09IG51bGwgPyB2b2lkIDAgOiBfbWV0YWRhdGFfcm9ib3RzLmJhc2ljXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2dvb2dsZWJvdCcsXG4gICAgICAgICAgICBjb250ZW50OiAoX21ldGFkYXRhX3JvYm90czEgPSBtZXRhZGF0YS5yb2JvdHMpID09IG51bGwgPyB2b2lkIDAgOiBfbWV0YWRhdGFfcm9ib3RzMS5nb29nbGVCb3RcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnYWJzdHJhY3QnLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEuYWJzdHJhY3RcbiAgICAgICAgfSksXG4gICAgICAgIC4uLm1ldGFkYXRhLmFyY2hpdmVzID8gbWV0YWRhdGEuYXJjaGl2ZXMubWFwKChhcmNoaXZlKT0+LyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgIHJlbDogXCJhcmNoaXZlc1wiLFxuICAgICAgICAgICAgICAgIGhyZWY6IGFyY2hpdmVcbiAgICAgICAgICAgIH0pKSA6IFtdLFxuICAgICAgICAuLi5tZXRhZGF0YS5hc3NldHMgPyBtZXRhZGF0YS5hc3NldHMubWFwKChhc3NldCk9Pi8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwiYXNzZXRzXCIsXG4gICAgICAgICAgICAgICAgaHJlZjogYXNzZXRcbiAgICAgICAgICAgIH0pKSA6IFtdLFxuICAgICAgICAuLi5tZXRhZGF0YS5ib29rbWFya3MgPyBtZXRhZGF0YS5ib29rbWFya3MubWFwKChib29rbWFyayk9Pi8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwiYm9va21hcmtzXCIsXG4gICAgICAgICAgICAgICAgaHJlZjogYm9va21hcmtcbiAgICAgICAgICAgIH0pKSA6IFtdLFxuICAgICAgICAuLi5tZXRhZGF0YS5wYWdpbmF0aW9uID8gW1xuICAgICAgICAgICAgbWV0YWRhdGEucGFnaW5hdGlvbi5wcmV2aW91cyA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwicHJldlwiLFxuICAgICAgICAgICAgICAgIGhyZWY6IG1ldGFkYXRhLnBhZ2luYXRpb24ucHJldmlvdXNcbiAgICAgICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgICAgIG1ldGFkYXRhLnBhZ2luYXRpb24ubmV4dCA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwibmV4dFwiLFxuICAgICAgICAgICAgICAgIGhyZWY6IG1ldGFkYXRhLnBhZ2luYXRpb24ubmV4dFxuICAgICAgICAgICAgfSkgOiBudWxsXG4gICAgICAgIF0gOiBbXSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdjYXRlZ29yeScsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5jYXRlZ29yeVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdjbGFzc2lmaWNhdGlvbicsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5jbGFzc2lmaWNhdGlvblxuICAgICAgICB9KSxcbiAgICAgICAgLi4ubWV0YWRhdGEub3RoZXIgPyBPYmplY3QuZW50cmllcyhtZXRhZGF0YS5vdGhlcikubWFwKChbbmFtZSwgY29udGVudF0pPT57XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjb250ZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50Lm1hcCgoY29udGVudEl0ZW0pPT4oMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnRJdGVtXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkgOiBbXVxuICAgIF0pO1xufVxuZnVuY3Rpb24gSXR1bmVzTWV0YSh7IGl0dW5lcyB9KSB7XG4gICAgaWYgKCFpdHVuZXMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgYXBwSWQsIGFwcEFyZ3VtZW50IH0gPSBpdHVuZXM7XG4gICAgbGV0IGNvbnRlbnQgPSBgYXBwLWlkPSR7YXBwSWR9YDtcbiAgICBpZiAoYXBwQXJndW1lbnQpIHtcbiAgICAgICAgY29udGVudCArPSBgLCBhcHAtYXJndW1lbnQ9JHthcHBBcmd1bWVudH1gO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICBuYW1lOiBcImFwcGxlLWl0dW5lcy1hcHBcIixcbiAgICAgICAgY29udGVudDogY29udGVudFxuICAgIH0pO1xufVxuZnVuY3Rpb24gRmFjZWJvb2tNZXRhKHsgZmFjZWJvb2sgfSkge1xuICAgIGlmICghZmFjZWJvb2spIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgYXBwSWQsIGFkbWlucyB9ID0gZmFjZWJvb2s7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgIGFwcElkID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICAgICAgcHJvcGVydHk6IFwiZmI6YXBwX2lkXCIsXG4gICAgICAgICAgICBjb250ZW50OiBhcHBJZFxuICAgICAgICB9KSA6IG51bGwsXG4gICAgICAgIC4uLmFkbWlucyA/IGFkbWlucy5tYXAoKGFkbWluKT0+LyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICAgICAgICAgIHByb3BlcnR5OiBcImZiOmFkbWluc1wiLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFkbWluXG4gICAgICAgICAgICB9KSkgOiBbXVxuICAgIF0pO1xufVxuZnVuY3Rpb24gUGludGVyZXN0TWV0YSh7IHBpbnRlcmVzdCB9KSB7XG4gICAgaWYgKCFwaW50ZXJlc3QgfHwgIXBpbnRlcmVzdC5yaWNoUGluKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IHJpY2hQaW4gfSA9IHBpbnRlcmVzdDtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICBwcm9wZXJ0eTogXCJwaW50ZXJlc3QtcmljaC1waW5cIixcbiAgICAgICAgY29udGVudDogcmljaFBpbi50b1N0cmluZygpXG4gICAgfSk7XG59XG5jb25zdCBmb3JtYXREZXRlY3Rpb25LZXlzID0gW1xuICAgICd0ZWxlcGhvbmUnLFxuICAgICdkYXRlJyxcbiAgICAnYWRkcmVzcycsXG4gICAgJ2VtYWlsJyxcbiAgICAndXJsJ1xuXTtcbmZ1bmN0aW9uIEZvcm1hdERldGVjdGlvbk1ldGEoeyBmb3JtYXREZXRlY3Rpb24gfSkge1xuICAgIGlmICghZm9ybWF0RGV0ZWN0aW9uKSByZXR1cm4gbnVsbDtcbiAgICBsZXQgY29udGVudCA9ICcnO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGZvcm1hdERldGVjdGlvbktleXMpe1xuICAgICAgICBpZiAoa2V5IGluIGZvcm1hdERldGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQpIGNvbnRlbnQgKz0gJywgJztcbiAgICAgICAgICAgIGNvbnRlbnQgKz0gYCR7a2V5fT1ub2A7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJtZXRhXCIsIHtcbiAgICAgICAgbmFtZTogXCJmb3JtYXQtZGV0ZWN0aW9uXCIsXG4gICAgICAgIGNvbnRlbnQ6IGNvbnRlbnRcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIEFwcGxlV2ViQXBwTWV0YSh7IGFwcGxlV2ViQXBwIH0pIHtcbiAgICBpZiAoIWFwcGxlV2ViQXBwKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IGNhcGFibGUsIHRpdGxlLCBzdGFydHVwSW1hZ2UsIHN0YXR1c0JhclN0eWxlIH0gPSBhcHBsZVdlYkFwcDtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgY2FwYWJsZSA/ICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnbW9iaWxlLXdlYi1hcHAtY2FwYWJsZScsXG4gICAgICAgICAgICBjb250ZW50OiAneWVzJ1xuICAgICAgICB9KSA6IG51bGwsXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnYXBwbGUtbW9iaWxlLXdlYi1hcHAtdGl0bGUnLFxuICAgICAgICAgICAgY29udGVudDogdGl0bGVcbiAgICAgICAgfSksXG4gICAgICAgIHN0YXJ0dXBJbWFnZSA/IHN0YXJ0dXBJbWFnZS5tYXAoKGltYWdlKT0+LyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgIGhyZWY6IGltYWdlLnVybCxcbiAgICAgICAgICAgICAgICBtZWRpYTogaW1hZ2UubWVkaWEsXG4gICAgICAgICAgICAgICAgcmVsOiBcImFwcGxlLXRvdWNoLXN0YXJ0dXAtaW1hZ2VcIlxuICAgICAgICAgICAgfSkpIDogbnVsbCxcbiAgICAgICAgc3RhdHVzQmFyU3R5bGUgPyAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2FwcGxlLW1vYmlsZS13ZWItYXBwLXN0YXR1cy1iYXItc3R5bGUnLFxuICAgICAgICAgICAgY29udGVudDogc3RhdHVzQmFyU3R5bGVcbiAgICAgICAgfSkgOiBudWxsXG4gICAgXSk7XG59XG5mdW5jdGlvbiBWZXJpZmljYXRpb25NZXRhKHsgdmVyaWZpY2F0aW9uIH0pIHtcbiAgICBpZiAoIXZlcmlmaWNhdGlvbikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIG5hbWVQcmVmaXg6ICdnb29nbGUtc2l0ZS12ZXJpZmljYXRpb24nLFxuICAgICAgICAgICAgY29udGVudHM6IHZlcmlmaWNhdGlvbi5nb29nbGVcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIG5hbWVQcmVmaXg6ICd5X2tleScsXG4gICAgICAgICAgICBjb250ZW50czogdmVyaWZpY2F0aW9uLnlhaG9vXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBuYW1lUHJlZml4OiAneWFuZGV4LXZlcmlmaWNhdGlvbicsXG4gICAgICAgICAgICBjb250ZW50czogdmVyaWZpY2F0aW9uLnlhbmRleFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgbmFtZVByZWZpeDogJ21lJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiB2ZXJpZmljYXRpb24ubWVcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnZlcmlmaWNhdGlvbi5vdGhlciA/IE9iamVjdC5lbnRyaWVzKHZlcmlmaWNhdGlvbi5vdGhlcikubWFwKChba2V5LCB2YWx1ZV0pPT4oMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgbmFtZVByZWZpeDoga2V5LFxuICAgICAgICAgICAgICAgIGNvbnRlbnRzOiB2YWx1ZVxuICAgICAgICAgICAgfSkpIDogW11cbiAgICBdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YmFzaWMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/basic.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/generate/icon-mark.js ***!
|
||
\*******************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/node_modules/next/dist/lib/metadata/generate/icon-mark.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsuanMiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIl9OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsuanMvX19uZXh0anMtaW50ZXJuYWwtcHJveHkuY2pzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIFdlYnBhY2sgbmV4dC1mbGlnaHQtbG9hZGVyLlxuY29uc3QgeyBjcmVhdGVQcm94eSB9ID0gcmVxdWlyZShcIm5leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eVwiKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVByb3h5KFwiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvaWNvbi1tYXJrLmpzXCIpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/icons.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/generate/icons.js ***!
|
||
\***************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"IconsMetadata\", ({\n enumerable: true,\n get: function() {\n return IconsMetadata;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _iconmark = __webpack_require__(/*! ./icon-mark */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\");\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nfunction IconDescriptorLink({ icon }) {\n const { url, rel = 'icon', ...props } = icon;\n return /*#__PURE__*/ (0, _jsxruntime.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, _jsxruntime.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 const hasIcon = Boolean((shortcutList == null ? void 0 : shortcutList.length) || (iconList == null ? void 0 : iconList.length) || (appleList == null ? void 0 : appleList.length) || (otherList == null ? void 0 : otherList.length));\n if (!hasIcon) return null;\n return (0, _meta.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 hasIcon ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_iconmark.IconMark, {}) : null\n ]);\n}\n\n//# sourceMappingURL=icons.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29ucy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGlEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG9CQUFvQixtQkFBTyxDQUFDLHlIQUFtQjtBQUMvQyxrQkFBa0IsbUJBQU8sQ0FBQyxzRkFBYTtBQUN2QyxjQUFjLG1CQUFPLENBQUMsNEVBQVE7QUFDOUIsOEJBQThCLE1BQU07QUFDcEMsWUFBWSw4QkFBOEI7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxvQkFBb0IsV0FBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLHlCQUF5QixPQUFPO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiLDJFQUEyRTtBQUMzRTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkljb25zTWV0YWRhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEljb25zTWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9pY29ubWFyayA9IHJlcXVpcmUoXCIuL2ljb24tbWFya1wiKTtcbmNvbnN0IF9tZXRhID0gcmVxdWlyZShcIi4vbWV0YVwiKTtcbmZ1bmN0aW9uIEljb25EZXNjcmlwdG9yTGluayh7IGljb24gfSkge1xuICAgIGNvbnN0IHsgdXJsLCByZWwgPSAnaWNvbicsIC4uLnByb3BzIH0gPSBpY29uO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgIHJlbDogcmVsLFxuICAgICAgICBocmVmOiB1cmwudG9TdHJpbmcoKSxcbiAgICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIEljb25MaW5rKHsgcmVsLCBpY29uIH0pIHtcbiAgICBpZiAodHlwZW9mIGljb24gPT09ICdvYmplY3QnICYmICEoaWNvbiBpbnN0YW5jZW9mIFVSTCkpIHtcbiAgICAgICAgaWYgKCFpY29uLnJlbCAmJiByZWwpIGljb24ucmVsID0gcmVsO1xuICAgICAgICByZXR1cm4gSWNvbkRlc2NyaXB0b3JMaW5rKHtcbiAgICAgICAgICAgIGljb25cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaHJlZiA9IGljb24udG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgIHJlbDogcmVsLFxuICAgICAgICAgICAgaHJlZjogaHJlZlxuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBJY29uc01ldGFkYXRhKHsgaWNvbnMgfSkge1xuICAgIGlmICghaWNvbnMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHNob3J0Y3V0TGlzdCA9IGljb25zLnNob3J0Y3V0O1xuICAgIGNvbnN0IGljb25MaXN0ID0gaWNvbnMuaWNvbjtcbiAgICBjb25zdCBhcHBsZUxpc3QgPSBpY29ucy5hcHBsZTtcbiAgICBjb25zdCBvdGhlckxpc3QgPSBpY29ucy5vdGhlcjtcbiAgICBjb25zdCBoYXNJY29uID0gQm9vbGVhbigoc2hvcnRjdXRMaXN0ID09IG51bGwgPyB2b2lkIDAgOiBzaG9ydGN1dExpc3QubGVuZ3RoKSB8fCAoaWNvbkxpc3QgPT0gbnVsbCA/IHZvaWQgMCA6IGljb25MaXN0Lmxlbmd0aCkgfHwgKGFwcGxlTGlzdCA9PSBudWxsID8gdm9pZCAwIDogYXBwbGVMaXN0Lmxlbmd0aCkgfHwgKG90aGVyTGlzdCA9PSBudWxsID8gdm9pZCAwIDogb3RoZXJMaXN0Lmxlbmd0aCkpO1xuICAgIGlmICghaGFzSWNvbikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgIHNob3J0Y3V0TGlzdCA/IHNob3J0Y3V0TGlzdC5tYXAoKGljb24pPT5JY29uTGluayh7XG4gICAgICAgICAgICAgICAgcmVsOiAnc2hvcnRjdXQgaWNvbicsXG4gICAgICAgICAgICAgICAgaWNvblxuICAgICAgICAgICAgfSkpIDogbnVsbCxcbiAgICAgICAgaWNvbkxpc3QgPyBpY29uTGlzdC5tYXAoKGljb24pPT5JY29uTGluayh7XG4gICAgICAgICAgICAgICAgcmVsOiAnaWNvbicsXG4gICAgICAgICAgICAgICAgaWNvblxuICAgICAgICAgICAgfSkpIDogbnVsbCxcbiAgICAgICAgYXBwbGVMaXN0ID8gYXBwbGVMaXN0Lm1hcCgoaWNvbik9Pkljb25MaW5rKHtcbiAgICAgICAgICAgICAgICByZWw6ICdhcHBsZS10b3VjaC1pY29uJyxcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBvdGhlckxpc3QgPyBvdGhlckxpc3QubWFwKChpY29uKT0+SWNvbkRlc2NyaXB0b3JMaW5rKHtcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBoYXNJY29uID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfaWNvbm1hcmsuSWNvbk1hcmssIHt9KSA6IG51bGxcbiAgICBdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aWNvbnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/icons.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/generate/meta.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 Meta: function() {\n return Meta;\n },\n MetaFilter: function() {\n return MetaFilter;\n },\n MultiMeta: function() {\n return MultiMeta;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _nonnullable = __webpack_require__(/*! ../../non-nullable */ \"(rsc)/./node_modules/next/dist/lib/non-nullable.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction Meta({ name, property, content, media }) {\n if (typeof content !== 'undefined' && content !== null && content !== '') {\n return /*#__PURE__*/ (0, _jsxruntime.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(_nonnullable.nonNullable));\n } else if ((0, _nonnullable.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}\nconst aliasPropPrefixes = new Set([\n 'og:image',\n 'twitter:image',\n 'og:video',\n 'og:audio'\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 // `og:video` & `og:audio` do not have a `:url` suffix alias\n if (aliasPropPrefixes.has(prefix) && 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}\n\n//# sourceMappingURL=meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9tZXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLHNEQUFzRCxtQkFBTyxDQUFDLGlHQUFPO0FBQ3JFLHFCQUFxQixtQkFBTyxDQUFDLDhFQUFvQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGdDQUFnQztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixxQ0FBcUM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBLHFCQUFxQixzQ0FBc0M7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2dlbmVyYXRlL21ldGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBNZXRhOiBudWxsLFxuICAgIE1ldGFGaWx0ZXI6IG51bGwsXG4gICAgTXVsdGlNZXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTWV0YTtcbiAgICB9LFxuICAgIE1ldGFGaWx0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTWV0YUZpbHRlcjtcbiAgICB9LFxuICAgIE11bHRpTWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNdWx0aU1ldGE7XG4gICAgfVxufSk7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfbm9ubnVsbGFibGUgPSByZXF1aXJlKFwiLi4vLi4vbm9uLW51bGxhYmxlXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBNZXRhKHsgbmFtZSwgcHJvcGVydHksIGNvbnRlbnQsIG1lZGlhIH0pIHtcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgIT09ICd1bmRlZmluZWQnICYmIGNvbnRlbnQgIT09IG51bGwgJiYgY29udGVudCAhPT0gJycpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJtZXRhXCIsIHtcbiAgICAgICAgICAgIC4uLm5hbWUgPyB7XG4gICAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC4uLm1lZGlhID8ge1xuICAgICAgICAgICAgICAgIG1lZGlhXG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY29udGVudDogdHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnID8gY29udGVudCA6IGNvbnRlbnQudG9TdHJpbmcoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBNZXRhRmlsdGVyKGl0ZW1zKSB7XG4gICAgY29uc3QgYWNjID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKXtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKC4uLml0ZW0uZmlsdGVyKF9ub25udWxsYWJsZS5ub25OdWxsYWJsZSkpO1xuICAgICAgICB9IGVsc2UgaWYgKCgwLCBfbm9ubnVsbGFibGUubm9uTnVsbGFibGUpKGl0ZW0pKSB7XG4gICAgICAgICAgICBhY2MucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWNjO1xufVxuZnVuY3Rpb24gY2FtZWxUb1NuYWtlKGNhbWVsQ2FzZVN0cikge1xuICAgIHJldHVybiBjYW1lbENhc2VTdHIucmVwbGFjZSgvKFtBLVpdKS9nLCBmdW5jdGlvbihtYXRjaCkge1xuICAgICAgICByZXR1cm4gJ18nICsgbWF0Y2gudG9Mb3dlckNhc2UoKTtcbiAgICB9KTtcbn1cbmNvbnN0IGFsaWFzUHJvcFByZWZpeGVzID0gbmV3IFNldChbXG4gICAgJ29nOmltYWdlJyxcbiAgICAndHdpdHRlcjppbWFnZScsXG4gICAgJ29nOnZpZGVvJyxcbiAgICAnb2c6YXVkaW8nXG5dKTtcbmZ1bmN0aW9uIGdldE1ldGFLZXkocHJlZml4LCBrZXkpIHtcbiAgICAvLyBVc2UgYHR3aXR0ZXI6aW1hZ2VgIGFuZCBgb2c6aW1hZ2VgIGluc3RlYWQgb2YgYHR3aXR0ZXI6aW1hZ2U6dXJsYCBhbmQgYG9nOmltYWdlOnVybGBcbiAgICAvLyB0byBiZSBtb3JlIGNvbXBhdGlibGUgYXMgaXQncyBhIG1vcmUgY29tbW9uIGZvcm1hdC5cbiAgICAvLyBgb2c6dmlkZW9gICYgYG9nOmF1ZGlvYCBkbyBub3QgaGF2ZSBhIGA6dXJsYCBzdWZmaXggYWxpYXNcbiAgICBpZiAoYWxpYXNQcm9wUHJlZml4ZXMuaGFzKHByZWZpeCkgJiYga2V5ID09PSAndXJsJykge1xuICAgICAgICByZXR1cm4gcHJlZml4O1xuICAgIH1cbiAgICBpZiAocHJlZml4LnN0YXJ0c1dpdGgoJ29nOicpIHx8IHByZWZpeC5zdGFydHNXaXRoKCd0d2l0dGVyOicpKSB7XG4gICAgICAgIGtleSA9IGNhbWVsVG9TbmFrZShrZXkpO1xuICAgIH1cbiAgICByZXR1cm4gcHJlZml4ICsgJzonICsga2V5O1xufVxuZnVuY3Rpb24gRXh0ZW5kTWV0YSh7IGNvbnRlbnQsIG5hbWVQcmVmaXgsIHByb3BlcnR5UHJlZml4IH0pIHtcbiAgICBpZiAoIWNvbnRlbnQpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBNZXRhRmlsdGVyKE9iamVjdC5lbnRyaWVzKGNvbnRlbnQpLm1hcCgoW2ssIHZdKT0+e1xuICAgICAgICByZXR1cm4gdHlwZW9mIHYgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IE1ldGEoe1xuICAgICAgICAgICAgLi4ucHJvcGVydHlQcmVmaXggJiYge1xuICAgICAgICAgICAgICAgIHByb3BlcnR5OiBnZXRNZXRhS2V5KHByb3BlcnR5UHJlZml4LCBrKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC4uLm5hbWVQcmVmaXggJiYge1xuICAgICAgICAgICAgICAgIG5hbWU6IGdldE1ldGFLZXkobmFtZVByZWZpeCwgaylcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb250ZW50OiB0eXBlb2YgdiA9PT0gJ3N0cmluZycgPyB2IDogdiA9PSBudWxsID8gdm9pZCAwIDogdi50b1N0cmluZygpXG4gICAgICAgIH0pO1xuICAgIH0pKTtcbn1cbmZ1bmN0aW9uIE11bHRpTWV0YSh7IHByb3BlcnR5UHJlZml4LCBuYW1lUHJlZml4LCBjb250ZW50cyB9KSB7XG4gICAgaWYgKHR5cGVvZiBjb250ZW50cyA9PT0gJ3VuZGVmaW5lZCcgfHwgY29udGVudHMgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBNZXRhRmlsdGVyKGNvbnRlbnRzLm1hcCgoY29udGVudCk9PntcbiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY29udGVudCA9PT0gJ251bWJlcicgfHwgY29udGVudCBpbnN0YW5jZW9mIFVSTCkge1xuICAgICAgICAgICAgcmV0dXJuIE1ldGEoe1xuICAgICAgICAgICAgICAgIC4uLnByb3BlcnR5UHJlZml4ID8ge1xuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogcHJvcGVydHlQcmVmaXhcbiAgICAgICAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lUHJlZml4XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBFeHRlbmRNZXRhKHtcbiAgICAgICAgICAgICAgICBuYW1lUHJlZml4LFxuICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4LFxuICAgICAgICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/opengraph.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/generate/opengraph.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 AppLinksMeta: function() {\n return AppLinksMeta;\n },\n OpenGraphMetadata: function() {\n return OpenGraphMetadata;\n },\n TwitterMetadata: function() {\n return TwitterMetadata;\n }\n});\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\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.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.Meta)({\n property: 'og:type',\n content: 'article'\n }),\n (0, _meta.Meta)({\n property: 'article:published_time',\n content: (_openGraph_publishedTime = openGraph.publishedTime) == null ? void 0 : _openGraph_publishedTime.toString()\n }),\n (0, _meta.Meta)({\n property: 'article:modified_time',\n content: (_openGraph_modifiedTime = openGraph.modifiedTime) == null ? void 0 : _openGraph_modifiedTime.toString()\n }),\n (0, _meta.Meta)({\n property: 'article:expiration_time',\n content: (_openGraph_expirationTime = openGraph.expirationTime) == null ? void 0 : _openGraph_expirationTime.toString()\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'article:author',\n contents: openGraph.authors\n }),\n (0, _meta.Meta)({\n property: 'article:section',\n content: openGraph.section\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'article:tag',\n contents: openGraph.tags\n })\n ];\n break;\n case 'book':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'book'\n }),\n (0, _meta.Meta)({\n property: 'book:isbn',\n content: openGraph.isbn\n }),\n (0, _meta.Meta)({\n property: 'book:release_date',\n content: openGraph.releaseDate\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'book:author',\n contents: openGraph.authors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'book:tag',\n contents: openGraph.tags\n })\n ];\n break;\n case 'profile':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'profile'\n }),\n (0, _meta.Meta)({\n property: 'profile:first_name',\n content: openGraph.firstName\n }),\n (0, _meta.Meta)({\n property: 'profile:last_name',\n content: openGraph.lastName\n }),\n (0, _meta.Meta)({\n property: 'profile:username',\n content: openGraph.username\n }),\n (0, _meta.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.Meta)({\n property: 'og:type',\n content: 'music.song'\n }),\n (0, _meta.Meta)({\n property: 'music:duration',\n content: (_openGraph_duration = openGraph.duration) == null ? void 0 : _openGraph_duration.toString()\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:album',\n contents: openGraph.albums\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:musician',\n contents: openGraph.musicians\n })\n ];\n break;\n case 'music.album':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.album'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:song',\n contents: openGraph.songs\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:musician',\n contents: openGraph.musicians\n }),\n (0, _meta.Meta)({\n property: 'music:release_date',\n content: openGraph.releaseDate\n })\n ];\n break;\n case 'music.playlist':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.playlist'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:song',\n contents: openGraph.songs\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:creator',\n contents: openGraph.creators\n })\n ];\n break;\n case 'music.radio_station':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.radio_station'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:creator',\n contents: openGraph.creators\n })\n ];\n break;\n case 'video.movie':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.movie'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:actor',\n contents: openGraph.actors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:director',\n contents: openGraph.directors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:writer',\n contents: openGraph.writers\n }),\n (0, _meta.Meta)({\n property: 'video:duration',\n content: openGraph.duration\n }),\n (0, _meta.Meta)({\n property: 'video:release_date',\n content: openGraph.releaseDate\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:tag',\n contents: openGraph.tags\n })\n ];\n break;\n case 'video.episode':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.episode'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:actor',\n contents: openGraph.actors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:director',\n contents: openGraph.directors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:writer',\n contents: openGraph.writers\n }),\n (0, _meta.Meta)({\n property: 'video:duration',\n content: openGraph.duration\n }),\n (0, _meta.Meta)({\n property: 'video:release_date',\n content: openGraph.releaseDate\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:tag',\n contents: openGraph.tags\n }),\n (0, _meta.Meta)({\n property: 'video:series',\n content: openGraph.series\n })\n ];\n break;\n case 'video.tv_show':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.tv_show'\n })\n ];\n break;\n case 'video.other':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.other'\n })\n ];\n break;\n default:\n const _exhaustiveCheck = openGraphType;\n throw Object.defineProperty(new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`), \"__NEXT_ERROR_CODE\", {\n value: \"E237\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return (0, _meta.MetaFilter)([\n (0, _meta.Meta)({\n property: 'og:determiner',\n content: openGraph.determiner\n }),\n (0, _meta.Meta)({\n property: 'og:title',\n content: (_openGraph_title = openGraph.title) == null ? void 0 : _openGraph_title.absolute\n }),\n (0, _meta.Meta)({\n property: 'og:description',\n content: openGraph.description\n }),\n (0, _meta.Meta)({\n property: 'og:url',\n content: (_openGraph_url = openGraph.url) == null ? void 0 : _openGraph_url.toString()\n }),\n (0, _meta.Meta)({\n property: 'og:site_name',\n content: openGraph.siteName\n }),\n (0, _meta.Meta)({\n property: 'og:locale',\n content: openGraph.locale\n }),\n (0, _meta.Meta)({\n property: 'og:country_name',\n content: openGraph.countryName\n }),\n (0, _meta.Meta)({\n property: 'og:ttl',\n content: (_openGraph_ttl = openGraph.ttl) == null ? void 0 : _openGraph_ttl.toString()\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:image',\n contents: openGraph.images\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:video',\n contents: openGraph.videos\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:audio',\n contents: openGraph.audio\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:email',\n contents: openGraph.emails\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:phone_number',\n contents: openGraph.phoneNumbers\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:fax_number',\n contents: openGraph.faxNumbers\n }),\n (0, _meta.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.Meta)({\n name: `twitter:app:name:${type}`,\n content: app.name\n }),\n (0, _meta.Meta)({\n name: `twitter:app:id:${type}`,\n content: app.id[type]\n }),\n (0, _meta.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.MetaFilter)([\n (0, _meta.Meta)({\n name: 'twitter:card',\n content: card\n }),\n (0, _meta.Meta)({\n name: 'twitter:site',\n content: twitter.site\n }),\n (0, _meta.Meta)({\n name: 'twitter:site:id',\n content: twitter.siteId\n }),\n (0, _meta.Meta)({\n name: 'twitter:creator',\n content: twitter.creator\n }),\n (0, _meta.Meta)({\n name: 'twitter:creator:id',\n content: twitter.creatorId\n }),\n (0, _meta.Meta)({\n name: 'twitter:title',\n content: (_twitter_title = twitter.title) == null ? void 0 : _twitter_title.absolute\n }),\n (0, _meta.Meta)({\n name: 'twitter:description',\n content: twitter.description\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'twitter:image',\n contents: twitter.images\n }),\n ...card === 'player' ? twitter.players.flatMap((player)=>[\n (0, _meta.Meta)({\n name: 'twitter:player',\n content: player.playerUrl.toString()\n }),\n (0, _meta.Meta)({\n name: 'twitter:player:stream',\n content: player.streamUrl.toString()\n }),\n (0, _meta.Meta)({\n name: 'twitter:player:width',\n content: player.width\n }),\n (0, _meta.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.MetaFilter)([\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:ios',\n contents: appLinks.ios\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:iphone',\n contents: appLinks.iphone\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:ipad',\n contents: appLinks.ipad\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:android',\n contents: appLinks.android\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:windows_phone',\n contents: appLinks.windows_phone\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:windows',\n contents: appLinks.windows\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:windows_universal',\n contents: appLinks.windows_universal\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:web',\n contents: appLinks.web\n })\n ]);\n}\n\n//# sourceMappingURL=opengraph.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9vcGVuZ3JhcGguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxjQUFjLG1CQUFPLENBQUMsNEVBQVE7QUFDOUIsNkJBQTZCLFdBQVc7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUZBQWlGLGlCQUFpQjtBQUNsRztBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLFdBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLEtBQUs7QUFDM0M7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxvQ0FBb0MsS0FBSztBQUN6QztBQUNBLFNBQVM7QUFDVDtBQUNBLHFDQUFxQyxLQUFLO0FBQzFDO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSwyQkFBMkIsU0FBUztBQUNwQztBQUNBO0FBQ0EsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvb3BlbmdyYXBoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQXBwTGlua3NNZXRhOiBudWxsLFxuICAgIE9wZW5HcmFwaE1ldGFkYXRhOiBudWxsLFxuICAgIFR3aXR0ZXJNZXRhZGF0YTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcHBMaW5rc01ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwTGlua3NNZXRhO1xuICAgIH0sXG4gICAgT3BlbkdyYXBoTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gT3BlbkdyYXBoTWV0YWRhdGE7XG4gICAgfSxcbiAgICBUd2l0dGVyTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVHdpdHRlck1ldGFkYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX21ldGEgPSByZXF1aXJlKFwiLi9tZXRhXCIpO1xuZnVuY3Rpb24gT3BlbkdyYXBoTWV0YWRhdGEoeyBvcGVuR3JhcGggfSkge1xuICAgIHZhciBfb3BlbkdyYXBoX3RpdGxlLCBfb3BlbkdyYXBoX3VybCwgX29wZW5HcmFwaF90dGw7XG4gICAgaWYgKCFvcGVuR3JhcGgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGxldCB0eXBlZE9wZW5HcmFwaDtcbiAgICBpZiAoJ3R5cGUnIGluIG9wZW5HcmFwaCkge1xuICAgICAgICBjb25zdCBvcGVuR3JhcGhUeXBlID0gb3BlbkdyYXBoLnR5cGU7XG4gICAgICAgIHN3aXRjaChvcGVuR3JhcGhUeXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3dlYnNpdGUnOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd3ZWJzaXRlJ1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhcnRpY2xlJzpcbiAgICAgICAgICAgICAgICB2YXIgX29wZW5HcmFwaF9wdWJsaXNoZWRUaW1lLCBfb3BlbkdyYXBoX21vZGlmaWVkVGltZSwgX29wZW5HcmFwaF9leHBpcmF0aW9uVGltZTtcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnYXJ0aWNsZSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ2FydGljbGU6cHVibGlzaGVkX3RpbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfcHVibGlzaGVkVGltZSA9IG9wZW5HcmFwaC5wdWJsaXNoZWRUaW1lKSA9PSBudWxsID8gdm9pZCAwIDogX29wZW5HcmFwaF9wdWJsaXNoZWRUaW1lLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ2FydGljbGU6bW9kaWZpZWRfdGltZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAoX29wZW5HcmFwaF9tb2RpZmllZFRpbWUgPSBvcGVuR3JhcGgubW9kaWZpZWRUaW1lKSA9PSBudWxsID8gdm9pZCAwIDogX29wZW5HcmFwaF9tb2RpZmllZFRpbWUudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnYXJ0aWNsZTpleHBpcmF0aW9uX3RpbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfZXhwaXJhdGlvblRpbWUgPSBvcGVuR3JhcGguZXhwaXJhdGlvblRpbWUpID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX2V4cGlyYXRpb25UaW1lLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYXJ0aWNsZTphdXRob3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hdXRob3JzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdhcnRpY2xlOnNlY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYXJ0aWNsZTp0YWcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC50YWdzXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2snOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdib29rJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnYm9vazppc2JuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5pc2JuXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdib29rOnJlbGVhc2VfZGF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgucmVsZWFzZURhdGVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYm9vazphdXRob3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hdXRob3JzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2Jvb2s6dGFnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgudGFnc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwcm9maWxlJzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAncHJvZmlsZSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3Byb2ZpbGU6Zmlyc3RfbmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZmlyc3ROYW1lXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdwcm9maWxlOmxhc3RfbmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgubGFzdE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3Byb2ZpbGU6dXNlcm5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnVzZXJuYW1lXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdwcm9maWxlOmdlbmRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZ2VuZGVyXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ211c2ljLnNvbmcnOlxuICAgICAgICAgICAgICAgIHZhciBfb3BlbkdyYXBoX2R1cmF0aW9uO1xuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdtdXNpYy5zb25nJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnbXVzaWM6ZHVyYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfZHVyYXRpb24gPSBvcGVuR3JhcGguZHVyYXRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX2R1cmF0aW9uLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6YWxidW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hbGJ1bXNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6bXVzaWNpYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5tdXNpY2lhbnNcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbXVzaWMuYWxidW0nOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdtdXNpYy5hbGJ1bSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6c29uZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnNvbmdzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ211c2ljOm11c2ljaWFuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgubXVzaWNpYW5zXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdtdXNpYzpyZWxlYXNlX2RhdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnJlbGVhc2VEYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ211c2ljLnBsYXlsaXN0JzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnbXVzaWMucGxheWxpc3QnXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ211c2ljOnNvbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5zb25nc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdtdXNpYzpjcmVhdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguY3JlYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbXVzaWMucmFkaW9fc3RhdGlvbic6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ211c2ljLnJhZGlvX3N0YXRpb24nXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ211c2ljOmNyZWF0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5jcmVhdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWRlby5tb3ZpZSc6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3ZpZGVvLm1vdmllJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzphY3RvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmFjdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzpkaXJlY3RvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmRpcmVjdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzp3cml0ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC53cml0ZXJzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICd2aWRlbzpkdXJhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZHVyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3ZpZGVvOnJlbGVhc2VfZGF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgucmVsZWFzZURhdGVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86dGFnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgudGFnc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWRlby5lcGlzb2RlJzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAndmlkZW8uZXBpc29kZSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86YWN0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hY3RvcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86ZGlyZWN0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5kaXJlY3RvcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86d3JpdGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgud3JpdGVyc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAndmlkZW86ZHVyYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmR1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICd2aWRlbzpyZWxlYXNlX2RhdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnJlbGVhc2VEYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ3ZpZGVvOnRhZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnRhZ3NcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3ZpZGVvOnNlcmllcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguc2VyaWVzXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ZpZGVvLnR2X3Nob3cnOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd2aWRlby50dl9zaG93J1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWRlby5vdGhlcic6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3ZpZGVvLm90aGVyJ1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbnN0IF9leGhhdXN0aXZlQ2hlY2sgPSBvcGVuR3JhcGhUeXBlO1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFsaWQgT3BlbkdyYXBoIHR5cGU6ICR7X2V4aGF1c3RpdmVDaGVja31gKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUyMzdcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzpkZXRlcm1pbmVyJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5kZXRlcm1pbmVyXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0aXRsZScsXG4gICAgICAgICAgICBjb250ZW50OiAoX29wZW5HcmFwaF90aXRsZSA9IG9wZW5HcmFwaC50aXRsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vcGVuR3JhcGhfdGl0bGUuYWJzb2x1dGVcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5kZXNjcmlwdGlvblxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dXJsJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfb3BlbkdyYXBoX3VybCA9IG9wZW5HcmFwaC51cmwpID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX3VybC50b1N0cmluZygpXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzpzaXRlX25hbWUnLFxuICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnNpdGVOYW1lXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzpsb2NhbGUnLFxuICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmxvY2FsZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6Y291bnRyeV9uYW1lJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5jb3VudHJ5TmFtZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHRsJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfb3BlbkdyYXBoX3R0bCA9IG9wZW5HcmFwaC50dGwpID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX3R0bC50b1N0cmluZygpXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ29nOmltYWdlJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguaW1hZ2VzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ29nOnZpZGVvJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgudmlkZW9zXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ29nOmF1ZGlvJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguYXVkaW9cbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnb2c6ZW1haWwnLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5lbWFpbHNcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnb2c6cGhvbmVfbnVtYmVyJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgucGhvbmVOdW1iZXJzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ29nOmZheF9udW1iZXInLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5mYXhOdW1iZXJzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ29nOmxvY2FsZTphbHRlcm5hdGUnLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hbHRlcm5hdGVMb2NhbGVcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnR5cGVkT3BlbkdyYXBoID8gdHlwZWRPcGVuR3JhcGggOiBbXVxuICAgIF0pO1xufVxuZnVuY3Rpb24gVHdpdHRlckFwcEl0ZW0oeyBhcHAsIHR5cGUgfSkge1xuICAgIHZhciBfYXBwX3VybF90eXBlLCBfYXBwX3VybDtcbiAgICByZXR1cm4gW1xuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogYHR3aXR0ZXI6YXBwOm5hbWU6JHt0eXBlfWAsXG4gICAgICAgICAgICBjb250ZW50OiBhcHAubmFtZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6IGB0d2l0dGVyOmFwcDppZDoke3R5cGV9YCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGFwcC5pZFt0eXBlXVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6IGB0d2l0dGVyOmFwcDp1cmw6JHt0eXBlfWAsXG4gICAgICAgICAgICBjb250ZW50OiAoX2FwcF91cmwgPSBhcHAudXJsKSA9PSBudWxsID8gdm9pZCAwIDogKF9hcHBfdXJsX3R5cGUgPSBfYXBwX3VybFt0eXBlXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hcHBfdXJsX3R5cGUudG9TdHJpbmcoKVxuICAgICAgICB9KVxuICAgIF07XG59XG5mdW5jdGlvbiBUd2l0dGVyTWV0YWRhdGEoeyB0d2l0dGVyIH0pIHtcbiAgICB2YXIgX3R3aXR0ZXJfdGl0bGU7XG4gICAgaWYgKCF0d2l0dGVyKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IGNhcmQgfSA9IHR3aXR0ZXI7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpjYXJkJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNhcmRcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpzaXRlJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR3aXR0ZXIuc2l0ZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOnNpdGU6aWQnLFxuICAgICAgICAgICAgY29udGVudDogdHdpdHRlci5zaXRlSWRcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpjcmVhdG9yJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR3aXR0ZXIuY3JlYXRvclxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOmNyZWF0b3I6aWQnLFxuICAgICAgICAgICAgY29udGVudDogdHdpdHRlci5jcmVhdG9ySWRcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndHdpdHRlcjp0aXRsZScsXG4gICAgICAgICAgICBjb250ZW50OiAoX3R3aXR0ZXJfdGl0bGUgPSB0d2l0dGVyLnRpdGxlKSA9PSBudWxsID8gdm9pZCAwIDogX3R3aXR0ZXJfdGl0bGUuYWJzb2x1dGVcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpkZXNjcmlwdGlvbicsXG4gICAgICAgICAgICBjb250ZW50OiB0d2l0dGVyLmRlc2NyaXB0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBuYW1lUHJlZml4OiAndHdpdHRlcjppbWFnZScsXG4gICAgICAgICAgICBjb250ZW50czogdHdpdHRlci5pbWFnZXNcbiAgICAgICAgfSksXG4gICAgICAgIC4uLmNhcmQgPT09ICdwbGF5ZXInID8gdHdpdHRlci5wbGF5ZXJzLmZsYXRNYXAoKHBsYXllcik9PltcbiAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpwbGF5ZXInLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBwbGF5ZXIucGxheWVyVXJsLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpwbGF5ZXI6c3RyZWFtJyxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogcGxheWVyLnN0cmVhbVVybC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3R3aXR0ZXI6cGxheWVyOndpZHRoJyxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogcGxheWVyLndpZHRoXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3R3aXR0ZXI6cGxheWVyOmhlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHBsYXllci5oZWlnaHRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXSkgOiBbXSxcbiAgICAgICAgLi4uY2FyZCA9PT0gJ2FwcCcgPyBbXG4gICAgICAgICAgICBUd2l0dGVyQXBwSXRlbSh7XG4gICAgICAgICAgICAgICAgYXBwOiB0d2l0dGVyLmFwcCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaXBob25lJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBUd2l0dGVyQXBwSXRlbSh7XG4gICAgICAgICAgICAgICAgYXBwOiB0d2l0dGVyLmFwcCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaXBhZCdcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgVHdpdHRlckFwcEl0ZW0oe1xuICAgICAgICAgICAgICAgIGFwcDogdHdpdHRlci5hcHAsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2dvb2dsZXBsYXknXG4gICAgICAgICAgICB9KVxuICAgICAgICBdIDogW11cbiAgICBdKTtcbn1cbmZ1bmN0aW9uIEFwcExpbmtzTWV0YSh7IGFwcExpbmtzIH0pIHtcbiAgICBpZiAoIWFwcExpbmtzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDppb3MnLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLmlvc1xuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDppcGhvbmUnLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLmlwaG9uZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDppcGFkJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy5pcGFkXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2FsOmFuZHJvaWQnLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLmFuZHJvaWRcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYWw6d2luZG93c19waG9uZScsXG4gICAgICAgICAgICBjb250ZW50czogYXBwTGlua3Mud2luZG93c19waG9uZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDp3aW5kb3dzJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy53aW5kb3dzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2FsOndpbmRvd3NfdW5pdmVyc2FsJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy53aW5kb3dzX3VuaXZlcnNhbFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDp3ZWInLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLndlYlxuICAgICAgICB9KVxuICAgIF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1vcGVuZ3JhcGguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/opengraph.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/generate/utils.js ***!
|
||
\***************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 getOrigin: function() {\n return getOrigin;\n },\n resolveArray: function() {\n return resolveArray;\n },\n resolveAsArrayOrUndefined: function() {\n return resolveAsArrayOrUndefined;\n }\n});\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}\nfunction getOrigin(url) {\n let origin = undefined;\n if (typeof url === 'string') {\n try {\n url = new URL(url);\n origin = url.origin;\n } catch {}\n }\n return origin;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldE9yaWdpbjogbnVsbCxcbiAgICByZXNvbHZlQXJyYXk6IG51bGwsXG4gICAgcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRPcmlnaW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0T3JpZ2luO1xuICAgIH0sXG4gICAgcmVzb2x2ZUFycmF5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcnJheTtcbiAgICB9LFxuICAgIHJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIHJlc29sdmVBcnJheSh2YWx1ZSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIHZhbHVlXG4gICAgXTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZUFycmF5KHZhbHVlKTtcbn1cbmZ1bmN0aW9uIGdldE9yaWdpbih1cmwpIHtcbiAgICBsZXQgb3JpZ2luID0gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgdXJsID09PSAnc3RyaW5nJykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTCh1cmwpO1xuICAgICAgICAgICAgb3JpZ2luID0gdXJsLm9yaWdpbjtcbiAgICAgICAgfSBjYXRjaCAge31cbiAgICB9XG4gICAgcmV0dXJuIG9yaWdpbjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/metadata.js":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/metadata.js ***!
|
||
\*********************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createMetadataComponents\", ({\n enumerable: true,\n get: function() {\n return createMetadataComponents;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _basic = __webpack_require__(/*! ./generate/basic */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/basic.js\");\nconst _alternate = __webpack_require__(/*! ./generate/alternate */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/alternate.js\");\nconst _opengraph = __webpack_require__(/*! ./generate/opengraph */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/opengraph.js\");\nconst _icons = __webpack_require__(/*! ./generate/icons */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/icons.js\");\nconst _resolvemetadata = __webpack_require__(/*! ./resolve-metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolve-metadata.js\");\nconst _meta = __webpack_require__(/*! ./generate/meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nconst _httpaccessfallback = __webpack_require__(/*! ../../client/components/http-access-fallback/http-access-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _boundaryconstants = __webpack_require__(/*! ../framework/boundary-constants */ \"(rsc)/./node_modules/next/dist/lib/framework/boundary-constants.js\");\nconst _asyncmetadata = __webpack_require__(/*! ../../client/components/metadata/async-metadata */ \"(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.js\");\nconst _ispostpone = __webpack_require__(/*! ../../server/lib/router-utils/is-postpone */ \"(rsc)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\");\nconst _searchparams = __webpack_require__(/*! ../../server/request/search-params */ \"(rsc)/./node_modules/next/dist/server/request/search-params.js\");\nconst _pathname = __webpack_require__(/*! ../../server/request/pathname */ \"(rsc)/./node_modules/next/dist/server/request/pathname.js\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction createMetadataComponents({ tree, pathname, parsedQuery, metadataContext, getDynamicParamFromSegment, appUsingSizeAdjustment, errorType, workStore, MetadataBoundary, ViewportBoundary, serveStreamingMetadata }) {\n const searchParams = (0, _searchparams.createServerSearchParamsForMetadata)(parsedQuery, workStore);\n const pathnameForMetadata = (0, _pathname.createServerPathnameForMetadata)(pathname, workStore);\n function ViewportTree() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(ViewportBoundary, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Viewport, {})\n }),\n appUsingSizeAdjustment ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"next-size-adjust\",\n content: \"\"\n }) : null\n ]\n });\n }\n function MetadataTree() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataBoundary, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Metadata, {})\n });\n }\n function viewport() {\n return getResolvedViewport(tree, searchParams, getDynamicParamFromSegment, workStore, errorType);\n }\n async function Viewport() {\n try {\n return await viewport();\n } catch (error) {\n if (!errorType && (0, _httpaccessfallback.isHTTPAccessFallbackError)(error)) {\n try {\n return await getNotFoundViewport(tree, searchParams, getDynamicParamFromSegment, workStore);\n } catch {}\n }\n // We don't actually want to error in this component. We will\n // also error in the MetadataOutlet which causes the error to\n // bubble from the right position in the page to be caught by the\n // appropriate boundaries\n return null;\n }\n }\n Viewport.displayName = _boundaryconstants.VIEWPORT_BOUNDARY_NAME;\n function metadata() {\n return getResolvedMetadata(tree, pathnameForMetadata, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorType);\n }\n async function resolveFinalMetadata() {\n let result;\n let error = null;\n try {\n result = await metadata();\n return {\n metadata: result,\n error: null,\n digest: undefined\n };\n } catch (metadataErr) {\n error = metadataErr;\n if (!errorType && (0, _httpaccessfallback.isHTTPAccessFallbackError)(metadataErr)) {\n try {\n result = await getNotFoundMetadata(tree, pathnameForMetadata, searchParams, getDynamicParamFromSegment, metadataContext, workStore);\n return {\n metadata: result,\n error,\n digest: error == null ? void 0 : error.digest\n };\n } catch (notFoundMetadataErr) {\n error = notFoundMetadataErr;\n // In PPR rendering we still need to throw the postpone error.\n // If metadata is postponed, React needs to be aware of the location of error.\n if (serveStreamingMetadata && (0, _ispostpone.isPostpone)(notFoundMetadataErr)) {\n throw notFoundMetadataErr;\n }\n }\n }\n // In PPR rendering we still need to throw the postpone error.\n // If metadata is postponed, React needs to be aware of the location of error.\n if (serveStreamingMetadata && (0, _ispostpone.isPostpone)(metadataErr)) {\n throw metadataErr;\n }\n // We don't actually want to error in this component. We will\n // also error in the MetadataOutlet which causes the error to\n // bubble from the right position in the page to be caught by the\n // appropriate boundaries\n return {\n metadata: result,\n error,\n digest: error == null ? void 0 : error.digest\n };\n }\n }\n function Metadata() {\n if (!serveStreamingMetadata) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataResolver, {});\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n hidden: true,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n fallback: null,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataResolver, {})\n })\n });\n }\n async function MetadataResolver() {\n const metadataState = await resolveFinalMetadata();\n return metadataState.metadata;\n }\n Metadata.displayName = _boundaryconstants.METADATA_BOUNDARY_NAME;\n async function getMetadataReady() {\n // Only warm up metadata() call when it's blocking metadata,\n // otherwise it will be fully managed by AsyncMetadata component.\n if (!serveStreamingMetadata) {\n await metadata();\n }\n return undefined;\n }\n async function getViewportReady() {\n await viewport();\n return undefined;\n }\n function StreamingMetadataOutletImpl() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_asyncmetadata.AsyncMetadataOutlet, {\n promise: resolveFinalMetadata()\n });\n }\n const StreamingMetadataOutlet = serveStreamingMetadata ? StreamingMetadataOutletImpl : null;\n return {\n ViewportTree,\n MetadataTree,\n getViewportReady,\n getMetadataReady,\n StreamingMetadataOutlet\n };\n}\nconst getResolvedMetadata = (0, _react.cache)(getResolvedMetadataImpl);\nasync function getResolvedMetadataImpl(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorType) {\n const errorConvention = errorType === 'redirect' ? undefined : errorType;\n return renderMetadata(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorConvention);\n}\nconst getNotFoundMetadata = (0, _react.cache)(getNotFoundMetadataImpl);\nasync function getNotFoundMetadataImpl(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore) {\n const notFoundErrorConvention = 'not-found';\n return renderMetadata(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, notFoundErrorConvention);\n}\nconst getResolvedViewport = (0, _react.cache)(getResolvedViewportImpl);\nasync function getResolvedViewportImpl(tree, searchParams, getDynamicParamFromSegment, workStore, errorType) {\n const errorConvention = errorType === 'redirect' ? undefined : errorType;\n return renderViewport(tree, searchParams, getDynamicParamFromSegment, workStore, errorConvention);\n}\nconst getNotFoundViewport = (0, _react.cache)(getNotFoundViewportImpl);\nasync function getNotFoundViewportImpl(tree, searchParams, getDynamicParamFromSegment, workStore) {\n const notFoundErrorConvention = 'not-found';\n return renderViewport(tree, searchParams, getDynamicParamFromSegment, workStore, notFoundErrorConvention);\n}\nasync function renderMetadata(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorConvention) {\n const resolvedMetadata = await (0, _resolvemetadata.resolveMetadata)(tree, pathname, searchParams, errorConvention, getDynamicParamFromSegment, workStore, metadataContext);\n const elements = createMetadataElements(resolvedMetadata);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: elements.map((el, index)=>{\n return /*#__PURE__*/ (0, _react.cloneElement)(el, {\n key: index\n });\n })\n });\n}\nasync function renderViewport(tree, searchParams, getDynamicParamFromSegment, workStore, errorConvention) {\n const resolvedViewport = await (0, _resolvemetadata.resolveViewport)(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore);\n const elements = createViewportElements(resolvedViewport);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: elements.map((el, index)=>{\n return /*#__PURE__*/ (0, _react.cloneElement)(el, {\n key: index\n });\n })\n });\n}\nfunction createMetadataElements(metadata) {\n return (0, _meta.MetaFilter)([\n (0, _basic.BasicMeta)({\n metadata\n }),\n (0, _alternate.AlternatesMetadata)({\n alternates: metadata.alternates\n }),\n (0, _basic.ItunesMeta)({\n itunes: metadata.itunes\n }),\n (0, _basic.FacebookMeta)({\n facebook: metadata.facebook\n }),\n (0, _basic.PinterestMeta)({\n pinterest: metadata.pinterest\n }),\n (0, _basic.FormatDetectionMeta)({\n formatDetection: metadata.formatDetection\n }),\n (0, _basic.VerificationMeta)({\n verification: metadata.verification\n }),\n (0, _basic.AppleWebAppMeta)({\n appleWebApp: metadata.appleWebApp\n }),\n (0, _opengraph.OpenGraphMetadata)({\n openGraph: metadata.openGraph\n }),\n (0, _opengraph.TwitterMetadata)({\n twitter: metadata.twitter\n }),\n (0, _opengraph.AppLinksMeta)({\n appLinks: metadata.appLinks\n }),\n (0, _icons.IconsMetadata)({\n icons: metadata.icons\n })\n ]);\n}\nfunction createViewportElements(viewport) {\n return (0, _meta.MetaFilter)([\n (0, _basic.ViewportMeta)({\n viewport: viewport\n })\n ]);\n}\n\n//# sourceMappingURL=metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9tZXRhZGF0YS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDREQUEyRDtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG9CQUFvQixtQkFBTyxDQUFDLHlIQUFtQjtBQUMvQyx1REFBdUQsbUJBQU8sQ0FBQyxpR0FBTztBQUN0RSxlQUFlLG1CQUFPLENBQUMsdUZBQWtCO0FBQ3pDLG1CQUFtQixtQkFBTyxDQUFDLCtGQUFzQjtBQUNqRCxtQkFBbUIsbUJBQU8sQ0FBQywrRkFBc0I7QUFDakQsZUFBZSxtQkFBTyxDQUFDLHVGQUFrQjtBQUN6Qyx5QkFBeUIsbUJBQU8sQ0FBQywyRkFBb0I7QUFDckQsY0FBYyxtQkFBTyxDQUFDLHFGQUFpQjtBQUN2Qyw0QkFBNEIsbUJBQU8sQ0FBQyx3S0FBbUU7QUFDdkcsMkJBQTJCLG1CQUFPLENBQUMsMkdBQWlDO0FBQ3BFLHVCQUF1QixtQkFBTyxDQUFDLG9JQUFpRDtBQUNoRixvQkFBb0IsbUJBQU8sQ0FBQyx3SEFBMkM7QUFDdkUsc0JBQXNCLG1CQUFPLENBQUMsMEdBQW9DO0FBQ2xFLGtCQUFrQixtQkFBTyxDQUFDLGdHQUErQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxvTEFBb0w7QUFDeE47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkVBQTZFO0FBQzdFLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EscUVBQXFFO0FBQ3JFLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwRUFBMEU7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlGQUFpRjtBQUNqRixhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvbWV0YWRhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjcmVhdGVNZXRhZGF0YUNvbXBvbmVudHNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50cztcbiAgICB9XG59KTtcbmNvbnN0IF9qc3hydW50aW1lID0gcmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfYmFzaWMgPSByZXF1aXJlKFwiLi9nZW5lcmF0ZS9iYXNpY1wiKTtcbmNvbnN0IF9hbHRlcm5hdGUgPSByZXF1aXJlKFwiLi9nZW5lcmF0ZS9hbHRlcm5hdGVcIik7XG5jb25zdCBfb3BlbmdyYXBoID0gcmVxdWlyZShcIi4vZ2VuZXJhdGUvb3BlbmdyYXBoXCIpO1xuY29uc3QgX2ljb25zID0gcmVxdWlyZShcIi4vZ2VuZXJhdGUvaWNvbnNcIik7XG5jb25zdCBfcmVzb2x2ZW1ldGFkYXRhID0gcmVxdWlyZShcIi4vcmVzb2x2ZS1tZXRhZGF0YVwiKTtcbmNvbnN0IF9tZXRhID0gcmVxdWlyZShcIi4vZ2VuZXJhdGUvbWV0YVwiKTtcbmNvbnN0IF9odHRwYWNjZXNzZmFsbGJhY2sgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2tcIik7XG5jb25zdCBfYm91bmRhcnljb25zdGFudHMgPSByZXF1aXJlKFwiLi4vZnJhbWV3b3JrL2JvdW5kYXJ5LWNvbnN0YW50c1wiKTtcbmNvbnN0IF9hc3luY21ldGFkYXRhID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL2FzeW5jLW1ldGFkYXRhXCIpO1xuY29uc3QgX2lzcG9zdHBvbmUgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL2xpYi9yb3V0ZXItdXRpbHMvaXMtcG9zdHBvbmVcIik7XG5jb25zdCBfc2VhcmNocGFyYW1zID0gcmVxdWlyZShcIi4uLy4uL3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXNcIik7XG5jb25zdCBfcGF0aG5hbWUgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL3JlcXVlc3QvcGF0aG5hbWVcIik7XG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbihub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3ApO1xufVxuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgICAgIH07XG4gICAgfVxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5nZXQob2JqKTtcbiAgICB9XG4gICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgX19wcm90b19fOiBudWxsXG4gICAgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmZ1bmN0aW9uIGNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50cyh7IHRyZWUsIHBhdGhuYW1lLCBwYXJzZWRRdWVyeSwgbWV0YWRhdGFDb250ZXh0LCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgYXBwVXNpbmdTaXplQWRqdXN0bWVudCwgZXJyb3JUeXBlLCB3b3JrU3RvcmUsIE1ldGFkYXRhQm91bmRhcnksIFZpZXdwb3J0Qm91bmRhcnksIHNlcnZlU3RyZWFtaW5nTWV0YWRhdGEgfSkge1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9ICgwLCBfc2VhcmNocGFyYW1zLmNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhKShwYXJzZWRRdWVyeSwgd29ya1N0b3JlKTtcbiAgICBjb25zdCBwYXRobmFtZUZvck1ldGFkYXRhID0gKDAsIF9wYXRobmFtZS5jcmVhdGVTZXJ2ZXJQYXRobmFtZUZvck1ldGFkYXRhKShwYXRobmFtZSwgd29ya1N0b3JlKTtcbiAgICBmdW5jdGlvbiBWaWV3cG9ydFRyZWUoKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShfanN4cnVudGltZS5GcmFnbWVudCwge1xuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFZpZXdwb3J0Qm91bmRhcnksIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoVmlld3BvcnQsIHt9KVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGFwcFVzaW5nU2l6ZUFkanVzdG1lbnQgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibWV0YVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwibmV4dC1zaXplLWFkanVzdFwiLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiXG4gICAgICAgICAgICAgICAgfSkgOiBudWxsXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBNZXRhZGF0YVRyZWUoKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKE1ldGFkYXRhQm91bmRhcnksIHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKE1ldGFkYXRhLCB7fSlcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZpZXdwb3J0KCkge1xuICAgICAgICByZXR1cm4gZ2V0UmVzb2x2ZWRWaWV3cG9ydCh0cmVlLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUsIGVycm9yVHlwZSk7XG4gICAgfVxuICAgIGFzeW5jIGZ1bmN0aW9uIFZpZXdwb3J0KCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHZpZXdwb3J0KCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAoIWVycm9yVHlwZSAmJiAoMCwgX2h0dHBhY2Nlc3NmYWxsYmFjay5pc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yKShlcnJvcikpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgZ2V0Tm90Rm91bmRWaWV3cG9ydCh0cmVlLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggIHt9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXZSBkb24ndCBhY3R1YWxseSB3YW50IHRvIGVycm9yIGluIHRoaXMgY29tcG9uZW50LiBXZSB3aWxsXG4gICAgICAgICAgICAvLyBhbHNvIGVycm9yIGluIHRoZSBNZXRhZGF0YU91dGxldCB3aGljaCBjYXVzZXMgdGhlIGVycm9yIHRvXG4gICAgICAgICAgICAvLyBidWJibGUgZnJvbSB0aGUgcmlnaHQgcG9zaXRpb24gaW4gdGhlIHBhZ2UgdG8gYmUgY2F1Z2h0IGJ5IHRoZVxuICAgICAgICAgICAgLy8gYXBwcm9wcmlhdGUgYm91bmRhcmllc1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgVmlld3BvcnQuZGlzcGxheU5hbWUgPSBfYm91bmRhcnljb25zdGFudHMuVklFV1BPUlRfQk9VTkRBUllfTkFNRTtcbiAgICBmdW5jdGlvbiBtZXRhZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIGdldFJlc29sdmVkTWV0YWRhdGEodHJlZSwgcGF0aG5hbWVGb3JNZXRhZGF0YSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgbWV0YWRhdGFDb250ZXh0LCB3b3JrU3RvcmUsIGVycm9yVHlwZSk7XG4gICAgfVxuICAgIGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVGaW5hbE1ldGFkYXRhKCkge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICBsZXQgZXJyb3IgPSBudWxsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgbWV0YWRhdGEoKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3VsdCxcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgICAgICBkaWdlc3Q6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBjYXRjaCAobWV0YWRhdGFFcnIpIHtcbiAgICAgICAgICAgIGVycm9yID0gbWV0YWRhdGFFcnI7XG4gICAgICAgICAgICBpZiAoIWVycm9yVHlwZSAmJiAoMCwgX2h0dHBhY2Nlc3NmYWxsYmFjay5pc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yKShtZXRhZGF0YUVycikpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBnZXROb3RGb3VuZE1ldGFkYXRhKHRyZWUsIHBhdGhuYW1lRm9yTWV0YWRhdGEsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIG1ldGFkYXRhQ29udGV4dCwgd29ya1N0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpZ2VzdDogZXJyb3IgPT0gbnVsbCA/IHZvaWQgMCA6IGVycm9yLmRpZ2VzdFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKG5vdEZvdW5kTWV0YWRhdGFFcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBub3RGb3VuZE1ldGFkYXRhRXJyO1xuICAgICAgICAgICAgICAgICAgICAvLyBJbiBQUFIgcmVuZGVyaW5nIHdlIHN0aWxsIG5lZWQgdG8gdGhyb3cgdGhlIHBvc3Rwb25lIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAvLyBJZiBtZXRhZGF0YSBpcyBwb3N0cG9uZWQsIFJlYWN0IG5lZWRzIHRvIGJlIGF3YXJlIG9mIHRoZSBsb2NhdGlvbiBvZiBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlcnZlU3RyZWFtaW5nTWV0YWRhdGEgJiYgKDAsIF9pc3Bvc3Rwb25lLmlzUG9zdHBvbmUpKG5vdEZvdW5kTWV0YWRhdGFFcnIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBub3RGb3VuZE1ldGFkYXRhRXJyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSW4gUFBSIHJlbmRlcmluZyB3ZSBzdGlsbCBuZWVkIHRvIHRocm93IHRoZSBwb3N0cG9uZSBlcnJvci5cbiAgICAgICAgICAgIC8vIElmIG1ldGFkYXRhIGlzIHBvc3Rwb25lZCwgUmVhY3QgbmVlZHMgdG8gYmUgYXdhcmUgb2YgdGhlIGxvY2F0aW9uIG9mIGVycm9yLlxuICAgICAgICAgICAgaWYgKHNlcnZlU3RyZWFtaW5nTWV0YWRhdGEgJiYgKDAsIF9pc3Bvc3Rwb25lLmlzUG9zdHBvbmUpKG1ldGFkYXRhRXJyKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG1ldGFkYXRhRXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgd2FudCB0byBlcnJvciBpbiB0aGlzIGNvbXBvbmVudC4gV2Ugd2lsbFxuICAgICAgICAgICAgLy8gYWxzbyBlcnJvciBpbiB0aGUgTWV0YWRhdGFPdXRsZXQgd2hpY2ggY2F1c2VzIHRoZSBlcnJvciB0b1xuICAgICAgICAgICAgLy8gYnViYmxlIGZyb20gdGhlIHJpZ2h0IHBvc2l0aW9uIGluIHRoZSBwYWdlIHRvIGJlIGNhdWdodCBieSB0aGVcbiAgICAgICAgICAgIC8vIGFwcHJvcHJpYXRlIGJvdW5kYXJpZXNcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlc3VsdCxcbiAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICBkaWdlc3Q6IGVycm9yID09IG51bGwgPyB2b2lkIDAgOiBlcnJvci5kaWdlc3RcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gTWV0YWRhdGEoKSB7XG4gICAgICAgIGlmICghc2VydmVTdHJlYW1pbmdNZXRhZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoTWV0YWRhdGFSZXNvbHZlciwge30pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwiZGl2XCIsIHtcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9yZWFjdC5TdXNwZW5zZSwge1xuICAgICAgICAgICAgICAgIGZhbGxiYWNrOiBudWxsLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKE1ldGFkYXRhUmVzb2x2ZXIsIHt9KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIGZ1bmN0aW9uIE1ldGFkYXRhUmVzb2x2ZXIoKSB7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhU3RhdGUgPSBhd2FpdCByZXNvbHZlRmluYWxNZXRhZGF0YSgpO1xuICAgICAgICByZXR1cm4gbWV0YWRhdGFTdGF0ZS5tZXRhZGF0YTtcbiAgICB9XG4gICAgTWV0YWRhdGEuZGlzcGxheU5hbWUgPSBfYm91bmRhcnljb25zdGFudHMuTUVUQURBVEFfQk9VTkRBUllfTkFNRTtcbiAgICBhc3luYyBmdW5jdGlvbiBnZXRNZXRhZGF0YVJlYWR5KCkge1xuICAgICAgICAvLyBPbmx5IHdhcm0gdXAgbWV0YWRhdGEoKSBjYWxsIHdoZW4gaXQncyBibG9ja2luZyBtZXRhZGF0YSxcbiAgICAgICAgLy8gb3RoZXJ3aXNlIGl0IHdpbGwgYmUgZnVsbHkgbWFuYWdlZCBieSBBc3luY01ldGFkYXRhIGNvbXBvbmVudC5cbiAgICAgICAgaWYgKCFzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhKSB7XG4gICAgICAgICAgICBhd2FpdCBtZXRhZGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGFzeW5jIGZ1bmN0aW9uIGdldFZpZXdwb3J0UmVhZHkoKSB7XG4gICAgICAgIGF3YWl0IHZpZXdwb3J0KCk7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFN0cmVhbWluZ01ldGFkYXRhT3V0bGV0SW1wbCgpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX2FzeW5jbWV0YWRhdGEuQXN5bmNNZXRhZGF0YU91dGxldCwge1xuICAgICAgICAgICAgcHJvbWlzZTogcmVzb2x2ZUZpbmFsTWV0YWRhdGEoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgU3RyZWFtaW5nTWV0YWRhdGFPdXRsZXQgPSBzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhID8gU3RyZWFtaW5nTWV0YWRhdGFPdXRsZXRJbXBsIDogbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBWaWV3cG9ydFRyZWUsXG4gICAgICAgIE1ldGFkYXRhVHJlZSxcbiAgICAgICAgZ2V0Vmlld3BvcnRSZWFkeSxcbiAgICAgICAgZ2V0TWV0YWRhdGFSZWFkeSxcbiAgICAgICAgU3RyZWFtaW5nTWV0YWRhdGFPdXRsZXRcbiAgICB9O1xufVxuY29uc3QgZ2V0UmVzb2x2ZWRNZXRhZGF0YSA9ICgwLCBfcmVhY3QuY2FjaGUpKGdldFJlc29sdmVkTWV0YWRhdGFJbXBsKTtcbmFzeW5jIGZ1bmN0aW9uIGdldFJlc29sdmVkTWV0YWRhdGFJbXBsKHRyZWUsIHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBtZXRhZGF0YUNvbnRleHQsIHdvcmtTdG9yZSwgZXJyb3JUeXBlKSB7XG4gICAgY29uc3QgZXJyb3JDb252ZW50aW9uID0gZXJyb3JUeXBlID09PSAncmVkaXJlY3QnID8gdW5kZWZpbmVkIDogZXJyb3JUeXBlO1xuICAgIHJldHVybiByZW5kZXJNZXRhZGF0YSh0cmVlLCBwYXRobmFtZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgbWV0YWRhdGFDb250ZXh0LCB3b3JrU3RvcmUsIGVycm9yQ29udmVudGlvbik7XG59XG5jb25zdCBnZXROb3RGb3VuZE1ldGFkYXRhID0gKDAsIF9yZWFjdC5jYWNoZSkoZ2V0Tm90Rm91bmRNZXRhZGF0YUltcGwpO1xuYXN5bmMgZnVuY3Rpb24gZ2V0Tm90Rm91bmRNZXRhZGF0YUltcGwodHJlZSwgcGF0aG5hbWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIG1ldGFkYXRhQ29udGV4dCwgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgbm90Rm91bmRFcnJvckNvbnZlbnRpb24gPSAnbm90LWZvdW5kJztcbiAgICByZXR1cm4gcmVuZGVyTWV0YWRhdGEodHJlZSwgcGF0aG5hbWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIG1ldGFkYXRhQ29udGV4dCwgd29ya1N0b3JlLCBub3RGb3VuZEVycm9yQ29udmVudGlvbik7XG59XG5jb25zdCBnZXRSZXNvbHZlZFZpZXdwb3J0ID0gKDAsIF9yZWFjdC5jYWNoZSkoZ2V0UmVzb2x2ZWRWaWV3cG9ydEltcGwpO1xuYXN5bmMgZnVuY3Rpb24gZ2V0UmVzb2x2ZWRWaWV3cG9ydEltcGwodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlLCBlcnJvclR5cGUpIHtcbiAgICBjb25zdCBlcnJvckNvbnZlbnRpb24gPSBlcnJvclR5cGUgPT09ICdyZWRpcmVjdCcgPyB1bmRlZmluZWQgOiBlcnJvclR5cGU7XG4gICAgcmV0dXJuIHJlbmRlclZpZXdwb3J0KHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSwgZXJyb3JDb252ZW50aW9uKTtcbn1cbmNvbnN0IGdldE5vdEZvdW5kVmlld3BvcnQgPSAoMCwgX3JlYWN0LmNhY2hlKShnZXROb3RGb3VuZFZpZXdwb3J0SW1wbCk7XG5hc3luYyBmdW5jdGlvbiBnZXROb3RGb3VuZFZpZXdwb3J0SW1wbCh0cmVlLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCBub3RGb3VuZEVycm9yQ29udmVudGlvbiA9ICdub3QtZm91bmQnO1xuICAgIHJldHVybiByZW5kZXJWaWV3cG9ydCh0cmVlLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUsIG5vdEZvdW5kRXJyb3JDb252ZW50aW9uKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlck1ldGFkYXRhKHRyZWUsIHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBtZXRhZGF0YUNvbnRleHQsIHdvcmtTdG9yZSwgZXJyb3JDb252ZW50aW9uKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRNZXRhZGF0YSA9IGF3YWl0ICgwLCBfcmVzb2x2ZW1ldGFkYXRhLnJlc29sdmVNZXRhZGF0YSkodHJlZSwgcGF0aG5hbWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlLCBtZXRhZGF0YUNvbnRleHQpO1xuICAgIGNvbnN0IGVsZW1lbnRzID0gY3JlYXRlTWV0YWRhdGFFbGVtZW50cyhyZXNvbHZlZE1ldGFkYXRhKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfanN4cnVudGltZS5GcmFnbWVudCwge1xuICAgICAgICBjaGlsZHJlbjogZWxlbWVudHMubWFwKChlbCwgaW5kZXgpPT57XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX3JlYWN0LmNsb25lRWxlbWVudCkoZWwsIHtcbiAgICAgICAgICAgICAgICBrZXk6IGluZGV4XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlclZpZXdwb3J0KHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSwgZXJyb3JDb252ZW50aW9uKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRWaWV3cG9ydCA9IGF3YWl0ICgwLCBfcmVzb2x2ZW1ldGFkYXRhLnJlc29sdmVWaWV3cG9ydCkodHJlZSwgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpO1xuICAgIGNvbnN0IGVsZW1lbnRzID0gY3JlYXRlVmlld3BvcnRFbGVtZW50cyhyZXNvbHZlZFZpZXdwb3J0KTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfanN4cnVudGltZS5GcmFnbWVudCwge1xuICAgICAgICBjaGlsZHJlbjogZWxlbWVudHMubWFwKChlbCwgaW5kZXgpPT57XG4gICAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX3JlYWN0LmNsb25lRWxlbWVudCkoZWwsIHtcbiAgICAgICAgICAgICAgICBrZXk6IGluZGV4XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZU1ldGFkYXRhRWxlbWVudHMobWV0YWRhdGEpIHtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgKDAsIF9iYXNpYy5CYXNpY01ldGEpKHtcbiAgICAgICAgICAgIG1ldGFkYXRhXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2FsdGVybmF0ZS5BbHRlcm5hdGVzTWV0YWRhdGEpKHtcbiAgICAgICAgICAgIGFsdGVybmF0ZXM6IG1ldGFkYXRhLmFsdGVybmF0ZXNcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfYmFzaWMuSXR1bmVzTWV0YSkoe1xuICAgICAgICAgICAgaXR1bmVzOiBtZXRhZGF0YS5pdHVuZXNcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfYmFzaWMuRmFjZWJvb2tNZXRhKSh7XG4gICAgICAgICAgICBmYWNlYm9vazogbWV0YWRhdGEuZmFjZWJvb2tcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfYmFzaWMuUGludGVyZXN0TWV0YSkoe1xuICAgICAgICAgICAgcGludGVyZXN0OiBtZXRhZGF0YS5waW50ZXJlc3RcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfYmFzaWMuRm9ybWF0RGV0ZWN0aW9uTWV0YSkoe1xuICAgICAgICAgICAgZm9ybWF0RGV0ZWN0aW9uOiBtZXRhZGF0YS5mb3JtYXREZXRlY3Rpb25cbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfYmFzaWMuVmVyaWZpY2F0aW9uTWV0YSkoe1xuICAgICAgICAgICAgdmVyaWZpY2F0aW9uOiBtZXRhZGF0YS52ZXJpZmljYXRpb25cbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfYmFzaWMuQXBwbGVXZWJBcHBNZXRhKSh7XG4gICAgICAgICAgICBhcHBsZVdlYkFwcDogbWV0YWRhdGEuYXBwbGVXZWJBcHBcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfb3BlbmdyYXBoLk9wZW5HcmFwaE1ldGFkYXRhKSh7XG4gICAgICAgICAgICBvcGVuR3JhcGg6IG1ldGFkYXRhLm9wZW5HcmFwaFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9vcGVuZ3JhcGguVHdpdHRlck1ldGFkYXRhKSh7XG4gICAgICAgICAgICB0d2l0dGVyOiBtZXRhZGF0YS50d2l0dGVyXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX29wZW5ncmFwaC5BcHBMaW5rc01ldGEpKHtcbiAgICAgICAgICAgIGFwcExpbmtzOiBtZXRhZGF0YS5hcHBMaW5rc1xuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9pY29ucy5JY29uc01ldGFkYXRhKSh7XG4gICAgICAgICAgICBpY29uczogbWV0YWRhdGEuaWNvbnNcbiAgICAgICAgfSlcbiAgICBdKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVZpZXdwb3J0RWxlbWVudHModmlld3BvcnQpIHtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgKDAsIF9iYXNpYy5WaWV3cG9ydE1ldGEpKHtcbiAgICAgICAgICAgIHZpZXdwb3J0OiB2aWV3cG9ydFxuICAgICAgICB9KVxuICAgIF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZXRhZGF0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/metadata.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolve-metadata.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/resolve-metadata.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 accumulateMetadata: function() {\n return accumulateMetadata;\n },\n accumulateViewport: function() {\n return accumulateViewport;\n },\n resolveMetadata: function() {\n return resolveMetadata;\n },\n resolveViewport: function() {\n return resolveViewport;\n }\n});\n__webpack_require__(/*! server-only */ \"(rsc)/./node_modules/next/dist/compiled/server-only/empty.js\");\nconst _react = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\");\nconst _defaultmetadata = __webpack_require__(/*! ./default-metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/default-metadata.js\");\nconst _resolveopengraph = __webpack_require__(/*! ./resolvers/resolve-opengraph */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js\");\nconst _resolvetitle = __webpack_require__(/*! ./resolvers/resolve-title */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js\");\nconst _utils = __webpack_require__(/*! ./generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _appdirmodule = __webpack_require__(/*! ../../server/lib/app-dir-module */ \"(rsc)/./node_modules/next/dist/server/lib/app-dir-module.js\");\nconst _interopdefault = __webpack_require__(/*! ../interop-default */ \"(rsc)/./node_modules/next/dist/lib/interop-default.js\");\nconst _resolvebasics = __webpack_require__(/*! ./resolvers/resolve-basics */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js\");\nconst _resolveicons = __webpack_require__(/*! ./resolvers/resolve-icons */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js\");\nconst _tracer = __webpack_require__(/*! ../../server/lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ../../server/lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _log = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! ../../build/output/log */ \"(rsc)/./node_modules/next/dist/build/output/log.js\"));\nconst _params = __webpack_require__(/*! ../../server/request/params */ \"(rsc)/./node_modules/next/dist/server/request/params.js\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction isFavicon(icon) {\n if (!icon) {\n return false;\n }\n // turbopack appends a hash to all images\n return (icon.url === '/favicon.ico' || icon.url.toString().startsWith('/favicon.ico?')) && icon.type === 'image/x-icon';\n}\nasync function mergeStaticMetadata(source, target, staticFilesMetadata, metadataContext, titleTemplates, leafSegmentStaticIcons, pathname) {\n var _source_twitter, _source_openGraph;\n if (!staticFilesMetadata) return target;\n const { icon, apple, openGraph, twitter, manifest } = staticFilesMetadata;\n // Keep updating the static icons in the most leaf node\n if (icon) {\n leafSegmentStaticIcons.icon = icon;\n }\n if (apple) {\n leafSegmentStaticIcons.apple = apple;\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, _resolveopengraph.resolveTwitter)({\n ...target.twitter,\n images: twitter\n }, target.metadataBase, {\n ...metadataContext,\n isStaticMetadataRouteFile: true\n }, 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 = await (0, _resolveopengraph.resolveOpenGraph)({\n ...target.openGraph,\n images: openGraph\n }, target.metadataBase, pathname, {\n ...metadataContext,\n isStaticMetadataRouteFile: true\n }, 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.\nasync function mergeMetadata(route, pathname, { source, target, staticFilesMetadata, titleTemplates, metadataContext, buildState, leafSegmentStaticIcons }) {\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, _resolvetitle.resolveTitle)(source.title, titleTemplates.title);\n break;\n }\n case 'alternates':\n {\n target.alternates = await (0, _resolvebasics.resolveAlternates)(source.alternates, metadataBase, pathname, metadataContext);\n break;\n }\n case 'openGraph':\n {\n target.openGraph = await (0, _resolveopengraph.resolveOpenGraph)(source.openGraph, metadataBase, pathname, metadataContext, titleTemplates.openGraph);\n break;\n }\n case 'twitter':\n {\n target.twitter = (0, _resolveopengraph.resolveTwitter)(source.twitter, metadataBase, metadataContext, titleTemplates.twitter);\n break;\n }\n case 'facebook':\n target.facebook = (0, _resolvebasics.resolveFacebook)(source.facebook);\n break;\n case 'verification':\n target.verification = (0, _resolvebasics.resolveVerification)(source.verification);\n break;\n case 'icons':\n {\n target.icons = (0, _resolveicons.resolveIcons)(source.icons);\n break;\n }\n case 'appleWebApp':\n target.appleWebApp = (0, _resolvebasics.resolveAppleWebApp)(source.appleWebApp);\n break;\n case 'appLinks':\n target.appLinks = (0, _resolvebasics.resolveAppLinks)(source.appLinks);\n break;\n case 'robots':\n {\n target.robots = (0, _resolvebasics.resolveRobots)(source.robots);\n break;\n }\n case 'archives':\n case 'assets':\n case 'bookmarks':\n case 'keywords':\n {\n target[key] = (0, _utils.resolveAsArrayOrUndefined)(source[key]);\n break;\n }\n case 'authors':\n {\n target[key] = (0, _utils.resolveAsArrayOrUndefined)(source.authors);\n break;\n }\n case 'itunes':\n {\n target[key] = await (0, _resolvebasics.resolveItunes)(source.itunes, metadataBase, pathname, metadataContext);\n break;\n }\n case 'pagination':\n {\n target.pagination = await (0, _resolvebasics.resolvePagination)(source.pagination, metadataBase, pathname, metadataContext);\n break;\n }\n // directly assign fields that fallback to null\n case 'abstract':\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 case 'pinterest':\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 case 'apple-touch-fullscreen':\n {\n buildState.warnings.add(`Use appleWebApp instead\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`);\n break;\n }\n case 'apple-touch-icon-precomposed':\n {\n buildState.warnings.add(`Use icons.apple instead\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`);\n break;\n }\n case 'themeColor':\n case 'colorScheme':\n case 'viewport':\n if (source[key] != null) {\n buildState.warnings.add(`Unsupported metadata ${key} is configured in metadata export in ${route}. Please move it to viewport export instead.\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-viewport`);\n }\n break;\n default:\n {\n key;\n }\n }\n }\n return mergeStaticMetadata(source, target, staticFilesMetadata, metadataContext, titleTemplates, leafSegmentStaticIcons, pathname);\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, _resolvebasics.resolveThemeColor)(source.themeColor);\n break;\n }\n case 'colorScheme':\n target.colorScheme = source.colorScheme || null;\n break;\n case 'width':\n case 'height':\n case 'initialScale':\n case 'minimumScale':\n case 'maximumScale':\n case 'userScalable':\n case 'viewportFit':\n case 'interactiveWidget':\n // always override the target with the source\n // @ts-ignore viewport properties\n target[key] = source[key];\n break;\n default:\n key;\n }\n }\n}\nfunction getDefinedViewport(mod, props, tracingProps) {\n if (typeof mod.generateViewport === 'function') {\n const { route } = tracingProps;\n return (parent)=>(0, _tracer.getTracer)().trace(_constants.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}\nfunction getDefinedMetadata(mod, props, tracingProps) {\n if (typeof mod.generateMetadata === 'function') {\n const { route } = tracingProps;\n return (parent)=>(0, _tracer.getTracer)().trace(_constants.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, _interopdefault.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(modules, props) {\n const { metadata } = modules;\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, _appdirmodule.getComponentTypeModule)(tree, 'layout');\n modType = errorConvention;\n } else {\n const { mod: layoutOrPageMod, modType: layoutOrPageModType } = await (0, _appdirmodule.getLayoutOrPageModule)(tree);\n mod = layoutOrPageMod;\n modType = layoutOrPageModType;\n }\n if (modType) {\n route += `/${modType}`;\n }\n const staticFilesMetadata = await resolveStaticMetadata(tree[2], props);\n const metadataExport = mod ? getDefinedMetadata(mod, props, {\n route\n }) : null;\n metadataItems.push([\n metadataExport,\n staticFilesMetadata\n ]);\n if (hasErrorConventionComponent && errorConvention) {\n const errorMod = await (0, _appdirmodule.getComponentTypeModule)(tree, errorConvention);\n const errorMetadataExport = errorMod ? getDefinedMetadata(errorMod, props, {\n route\n }) : null;\n errorMetadataItem[0] = errorMetadataExport;\n errorMetadataItem[1] = staticFilesMetadata;\n }\n}\n// [layout.metadata, static files metadata] -> ... -> [page.metadata, static files metadata]\nasync function collectViewport({ tree, viewportItems, errorViewportItemRef, props, route, errorConvention }) {\n let mod;\n let modType;\n const hasErrorConventionComponent = Boolean(errorConvention && tree[2][errorConvention]);\n if (errorConvention) {\n mod = await (0, _appdirmodule.getComponentTypeModule)(tree, 'layout');\n modType = errorConvention;\n } else {\n const { mod: layoutOrPageMod, modType: layoutOrPageModType } = await (0, _appdirmodule.getLayoutOrPageModule)(tree);\n mod = layoutOrPageMod;\n modType = layoutOrPageModType;\n }\n if (modType) {\n route += `/${modType}`;\n }\n const viewportExport = mod ? getDefinedViewport(mod, props, {\n route\n }) : null;\n viewportItems.push(viewportExport);\n if (hasErrorConventionComponent && errorConvention) {\n const errorMod = await (0, _appdirmodule.getComponentTypeModule)(tree, errorConvention);\n const errorViewportExport = errorMod ? getDefinedViewport(errorMod, props, {\n route\n }) : null;\n errorViewportItemRef.current = errorViewportExport;\n }\n}\nconst resolveMetadataItems = (0, _react.cache)(async function(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore) {\n const parentParams = {};\n const metadataItems = [];\n const errorMetadataItem = [\n null,\n null\n ];\n const treePrefix = undefined;\n return resolveMetadataItemsImpl(metadataItems, tree, treePrefix, parentParams, searchParams, errorConvention, errorMetadataItem, getDynamicParamFromSegment, workStore);\n});\nasync function resolveMetadataItemsImpl(metadataItems, tree, /** Provided tree can be nested subtree, this argument says what is the path of such subtree */ treePrefix, parentParams, searchParams, errorConvention, errorMetadataItem, getDynamicParamFromSegment, workStore) {\n const [segment, parallelRoutes, { page }] = tree;\n const currentTreePrefix = treePrefix && treePrefix.length ? [\n ...treePrefix,\n segment\n ] : [\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 */ let currentParams = parentParams;\n if (segmentParam && segmentParam.value !== null) {\n currentParams = {\n ...parentParams,\n [segmentParam.param]: segmentParam.value\n };\n }\n const params = (0, _params.createServerParamsForMetadata)(currentParams, workStore);\n let layerProps;\n if (isPage) {\n layerProps = {\n params,\n searchParams\n };\n } else {\n layerProps = {\n params\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 !== _segment.PAGE_SEGMENT_KEY).join('/')\n });\n for(const key in parallelRoutes){\n const childTree = parallelRoutes[key];\n await resolveMetadataItemsImpl(metadataItems, childTree, currentTreePrefix, currentParams, searchParams, errorConvention, errorMetadataItem, getDynamicParamFromSegment, workStore);\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 resolveViewportItems = (0, _react.cache)(async function(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore) {\n const parentParams = {};\n const viewportItems = [];\n const errorViewportItemRef = {\n current: null\n };\n const treePrefix = undefined;\n return resolveViewportItemsImpl(viewportItems, tree, treePrefix, parentParams, searchParams, errorConvention, errorViewportItemRef, getDynamicParamFromSegment, workStore);\n});\nasync function resolveViewportItemsImpl(viewportItems, tree, /** Provided tree can be nested subtree, this argument says what is the path of such subtree */ treePrefix, parentParams, searchParams, errorConvention, errorViewportItemRef, getDynamicParamFromSegment, workStore) {\n const [segment, parallelRoutes, { page }] = tree;\n const currentTreePrefix = treePrefix && treePrefix.length ? [\n ...treePrefix,\n segment\n ] : [\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 */ let currentParams = parentParams;\n if (segmentParam && segmentParam.value !== null) {\n currentParams = {\n ...parentParams,\n [segmentParam.param]: segmentParam.value\n };\n }\n const params = (0, _params.createServerParamsForMetadata)(currentParams, workStore);\n let layerProps;\n if (isPage) {\n layerProps = {\n params,\n searchParams\n };\n } else {\n layerProps = {\n params\n };\n }\n await collectViewport({\n tree,\n viewportItems,\n errorViewportItemRef,\n errorConvention,\n props: layerProps,\n route: currentTreePrefix// __PAGE__ shouldn't be shown in a route\n .filter((s)=>s !== _segment.PAGE_SEGMENT_KEY).join('/')\n });\n for(const key in parallelRoutes){\n const childTree = parallelRoutes[key];\n await resolveViewportItemsImpl(viewportItems, childTree, currentTreePrefix, currentParams, searchParams, errorConvention, errorViewportItemRef, getDynamicParamFromSegment, workStore);\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 viewportItems.push(errorViewportItemRef.current);\n }\n return viewportItems;\n}\nconst isTitleTruthy = (title)=>!!(title == null ? void 0 : title.absolute);\nconst hasTitle = (metadata)=>isTitleTruthy(metadata == null ? void 0 : metadata.title);\nfunction inheritFromMetadata(target, metadata) {\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}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst commonOgKeys = [\n 'title',\n 'description',\n 'images'\n];\nfunction postProcessMetadata(metadata, favicon, titleTemplates, metadataContext) {\n const { openGraph, twitter } = metadata;\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) {\n if (isTitleTruthy(openGraph.title)) {\n autoFillProps.title = openGraph.title;\n } else if (metadata.title && isTitleTruthy(metadata.title)) {\n autoFillProps.title = metadata.title;\n }\n }\n if (!hasTwDescription) autoFillProps.description = openGraph.description || metadata.description || undefined;\n if (!hasTwImages) autoFillProps.images = openGraph.images;\n if (Object.keys(autoFillProps).length > 0) {\n const partialTwitter = (0, _resolveopengraph.resolveTwitter)(autoFillProps, metadata.metadataBase, metadataContext, 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 // If there's no title and description configured in openGraph or twitter,\n // use the title and description from metadata.\n inheritFromMetadata(openGraph, metadata);\n inheritFromMetadata(twitter, metadata);\n if (favicon) {\n if (!metadata.icons) {\n metadata.icons = {\n icon: [],\n apple: []\n };\n }\n metadata.icons.icon.unshift(favicon);\n }\n return metadata;\n}\nfunction prerenderMetadata(metadataItems) {\n // If the index is a function then it is a resolver and the next slot\n // is the corresponding result. If the index is not a function it is the result\n // itself.\n const resolversAndResults = [];\n for(let i = 0; i < metadataItems.length; i++){\n const metadataExport = metadataItems[i][0];\n getResult(resolversAndResults, metadataExport);\n }\n return resolversAndResults;\n}\nfunction prerenderViewport(viewportItems) {\n // If the index is a function then it is a resolver and the next slot\n // is the corresponding result. If the index is not a function it is the result\n // itself.\n const resolversAndResults = [];\n for(let i = 0; i < viewportItems.length; i++){\n const viewportExport = viewportItems[i];\n getResult(resolversAndResults, viewportExport);\n }\n return resolversAndResults;\n}\nfunction getResult(resolversAndResults, exportForResult) {\n if (typeof exportForResult === 'function') {\n const result = exportForResult(new Promise((resolve)=>resolversAndResults.push(resolve)));\n resolversAndResults.push(result);\n if (result instanceof Promise) {\n // since we eager execute generateMetadata and\n // they can reject at anytime we need to ensure\n // we attach the catch handler right away to\n // prevent unhandled rejections crashing the process\n result.catch((err)=>{\n return {\n __nextError: err\n };\n });\n }\n } else if (typeof exportForResult === 'object') {\n resolversAndResults.push(exportForResult);\n } else {\n resolversAndResults.push(null);\n }\n}\nfunction resolvePendingResult(parentResult, resolveParentResult) {\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 if (true) {\n // @ts-expect-error -- DeepReadonly<T> is by definition not assignable to T\n // Instead, we should only accept DeepReadonly<ResolvedType>\n parentResult = (__webpack_require__(/*! ../../shared/lib/deep-freeze */ \"(rsc)/./node_modules/next/dist/shared/lib/deep-freeze.js\").deepFreeze)((__webpack_require__(/*! ./clone-metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/clone-metadata.js\").cloneMetadata)(parentResult));\n }\n resolveParentResult(parentResult);\n}\nasync function accumulateMetadata(route, metadataItems, pathname, metadataContext) {\n let resolvedMetadata = (0, _defaultmetadata.createDefaultMetadata)();\n let titleTemplates = {\n title: null,\n twitter: null,\n openGraph: null\n };\n const buildState = {\n warnings: new Set()\n };\n let favicon;\n // Collect the static icons in the most leaf node,\n // since we don't collect all the static metadata icons in the parent segments.\n const leafSegmentStaticIcons = {\n icon: [],\n apple: []\n };\n const resolversAndResults = prerenderMetadata(metadataItems);\n let resultIndex = 0;\n for(let i = 0; i < metadataItems.length; i++){\n var _staticFilesMetadata_icon;\n const staticFilesMetadata = metadataItems[i][1];\n // Treat favicon as special case, it should be the first icon in the list\n // i <= 1 represents root layout, and if current page is also at root\n if (i <= 1 && isFavicon(staticFilesMetadata == null ? void 0 : (_staticFilesMetadata_icon = staticFilesMetadata.icon) == null ? void 0 : _staticFilesMetadata_icon[0])) {\n var _staticFilesMetadata_icon1;\n const iconMod = staticFilesMetadata == null ? void 0 : (_staticFilesMetadata_icon1 = staticFilesMetadata.icon) == null ? void 0 : _staticFilesMetadata_icon1.shift();\n if (i === 0) favicon = iconMod;\n }\n let pendingMetadata = resolversAndResults[resultIndex++];\n if (typeof pendingMetadata === 'function') {\n // This metadata item had a `generateMetadata` and\n // we need to provide the currently resolved metadata\n // to it before we continue;\n const resolveParentMetadata = pendingMetadata;\n // we know that the next item is a result if this item\n // was a resolver\n pendingMetadata = resolversAndResults[resultIndex++];\n resolvePendingResult(resolvedMetadata, resolveParentMetadata);\n }\n // Otherwise the item was either null or a static export\n let metadata;\n if (isPromiseLike(pendingMetadata)) {\n metadata = await pendingMetadata;\n } else {\n metadata = pendingMetadata;\n }\n resolvedMetadata = await mergeMetadata(route, pathname, {\n target: resolvedMetadata,\n source: metadata,\n metadataContext,\n staticFilesMetadata,\n titleTemplates,\n buildState,\n leafSegmentStaticIcons\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 if (leafSegmentStaticIcons.icon.length > 0 || leafSegmentStaticIcons.apple.length > 0) {\n if (!resolvedMetadata.icons) {\n resolvedMetadata.icons = {\n icon: [],\n apple: []\n };\n if (leafSegmentStaticIcons.icon.length > 0) {\n resolvedMetadata.icons.icon.unshift(...leafSegmentStaticIcons.icon);\n }\n if (leafSegmentStaticIcons.apple.length > 0) {\n resolvedMetadata.icons.apple.unshift(...leafSegmentStaticIcons.apple);\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 _log.warn(warning);\n }\n }\n return postProcessMetadata(resolvedMetadata, favicon, titleTemplates, metadataContext);\n}\nasync function accumulateViewport(viewportItems) {\n const resolvedViewport = (0, _defaultmetadata.createDefaultViewport)();\n const resolversAndResults = prerenderViewport(viewportItems);\n let i = 0;\n while(i < resolversAndResults.length){\n let pendingViewport = resolversAndResults[i++];\n if (typeof pendingViewport === 'function') {\n // this viewport item had a `generateViewport` and\n // we need to provide the currently resolved viewport\n // to it before we continue;\n const resolveParentViewport = pendingViewport;\n // we know that the next item is a result if this item\n // was a resolver\n pendingViewport = resolversAndResults[i++];\n resolvePendingResult(resolvedViewport, resolveParentViewport);\n }\n // Otherwise the item was either null or a static export\n let viewport;\n if (isPromiseLike(pendingViewport)) {\n viewport = await pendingViewport;\n } else {\n viewport = pendingViewport;\n }\n mergeViewport({\n target: resolvedViewport,\n source: viewport\n });\n }\n return resolvedViewport;\n}\nasync function resolveMetadata(tree, pathname, searchParams, errorConvention, getDynamicParamFromSegment, workStore, metadataContext) {\n const metadataItems = await resolveMetadataItems(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore);\n return accumulateMetadata(workStore.route, metadataItems, pathname, metadataContext);\n}\nasync function resolveViewport(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore) {\n const viewportItems = await resolveViewportItems(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore);\n return accumulateViewport(viewportItems);\n}\nfunction isPromiseLike(value) {\n return typeof value === 'object' && value !== null && typeof value.then === 'function';\n}\n\n//# sourceMappingURL=resolve-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxtQkFBTyxDQUFDLGlGQUFhO0FBQ3JCLGVBQWUsbUJBQU8sQ0FBQyxpR0FBTztBQUM5Qix5QkFBeUIsbUJBQU8sQ0FBQywyRkFBb0I7QUFDckQsMEJBQTBCLG1CQUFPLENBQUMsaUhBQStCO0FBQ2pFLHNCQUFzQixtQkFBTyxDQUFDLHlHQUEyQjtBQUN6RCxlQUFlLG1CQUFPLENBQUMsdUZBQWtCO0FBQ3pDLHNCQUFzQixtQkFBTyxDQUFDLG9HQUFpQztBQUMvRCx3QkFBd0IsbUJBQU8sQ0FBQyxpRkFBb0I7QUFDcEQsdUJBQXVCLG1CQUFPLENBQUMsMkdBQTRCO0FBQzNELHNCQUFzQixtQkFBTyxDQUFDLHlHQUEyQjtBQUN6RCxnQkFBZ0IsbUJBQU8sQ0FBQyxnR0FBK0I7QUFDdkQsbUJBQW1CLG1CQUFPLENBQUMsc0dBQWtDO0FBQzdELGlCQUFpQixtQkFBTyxDQUFDLHNGQUEwQjtBQUNuRCxxREFBcUQsbUJBQU8sQ0FBQyxrRkFBd0I7QUFDckYsZ0JBQWdCLG1CQUFPLENBQUMsNEZBQTZCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDRDQUE0QztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsMEdBQTBHO0FBQzFKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvRUFBb0UsS0FBSyxzQ0FBc0MsTUFBTTtBQUNySDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixnQkFBZ0I7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsUUFBUTtBQUN4QjtBQUNBLDhDQUE4QyxNQUFNO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEI7QUFDQSw4Q0FBOEMsTUFBTTtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFdBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyx1RUFBdUU7QUFDeEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLGdCQUFnQixxREFBcUQ7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsUUFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsMEVBQTBFO0FBQzNHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixnQkFBZ0IscURBQXFEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFFBQVE7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0Esc0NBQXNDLE1BQU07QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0Esc0NBQXNDLE1BQU07QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkscUJBQXFCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLDBCQUEwQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBc0M7QUFDOUM7QUFDQTtBQUNBLHVCQUF1QixnSUFBa0QsQ0FBQyw0SEFBeUM7QUFDbkg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsMEJBQTBCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvcmVzb2x2ZS1tZXRhZGF0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGFjY3VtdWxhdGVNZXRhZGF0YTogbnVsbCxcbiAgICBhY2N1bXVsYXRlVmlld3BvcnQ6IG51bGwsXG4gICAgcmVzb2x2ZU1ldGFkYXRhOiBudWxsLFxuICAgIHJlc29sdmVWaWV3cG9ydDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBhY2N1bXVsYXRlTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWNjdW11bGF0ZU1ldGFkYXRhO1xuICAgIH0sXG4gICAgYWNjdW11bGF0ZVZpZXdwb3J0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdGVWaWV3cG9ydDtcbiAgICB9LFxuICAgIHJlc29sdmVNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlTWV0YWRhdGE7XG4gICAgfSxcbiAgICByZXNvbHZlVmlld3BvcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVZpZXdwb3J0O1xuICAgIH1cbn0pO1xucmVxdWlyZShcInNlcnZlci1vbmx5XCIpO1xuY29uc3QgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3QgX2RlZmF1bHRtZXRhZGF0YSA9IHJlcXVpcmUoXCIuL2RlZmF1bHQtbWV0YWRhdGFcIik7XG5jb25zdCBfcmVzb2x2ZW9wZW5ncmFwaCA9IHJlcXVpcmUoXCIuL3Jlc29sdmVycy9yZXNvbHZlLW9wZW5ncmFwaFwiKTtcbmNvbnN0IF9yZXNvbHZldGl0bGUgPSByZXF1aXJlKFwiLi9yZXNvbHZlcnMvcmVzb2x2ZS10aXRsZVwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL2dlbmVyYXRlL3V0aWxzXCIpO1xuY29uc3QgX2FwcGRpcm1vZHVsZSA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvbGliL2FwcC1kaXItbW9kdWxlXCIpO1xuY29uc3QgX2ludGVyb3BkZWZhdWx0ID0gcmVxdWlyZShcIi4uL2ludGVyb3AtZGVmYXVsdFwiKTtcbmNvbnN0IF9yZXNvbHZlYmFzaWNzID0gcmVxdWlyZShcIi4vcmVzb2x2ZXJzL3Jlc29sdmUtYmFzaWNzXCIpO1xuY29uc3QgX3Jlc29sdmVpY29ucyA9IHJlcXVpcmUoXCIuL3Jlc29sdmVycy9yZXNvbHZlLWljb25zXCIpO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvbGliL3RyYWNlL3RyYWNlclwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfc2VnbWVudCA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3NlZ21lbnRcIik7XG5jb25zdCBfbG9nID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCIuLi8uLi9idWlsZC9vdXRwdXQvbG9nXCIpKTtcbmNvbnN0IF9wYXJhbXMgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zXCIpO1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIF9fcHJvdG9fXzogbnVsbFxuICAgIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmo7XG59XG5mdW5jdGlvbiBpc0Zhdmljb24oaWNvbikge1xuICAgIGlmICghaWNvbikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIHR1cmJvcGFjayBhcHBlbmRzIGEgaGFzaCB0byBhbGwgaW1hZ2VzXG4gICAgcmV0dXJuIChpY29uLnVybCA9PT0gJy9mYXZpY29uLmljbycgfHwgaWNvbi51cmwudG9TdHJpbmcoKS5zdGFydHNXaXRoKCcvZmF2aWNvbi5pY28/JykpICYmIGljb24udHlwZSA9PT0gJ2ltYWdlL3gtaWNvbic7XG59XG5hc3luYyBmdW5jdGlvbiBtZXJnZVN0YXRpY01ldGFkYXRhKHNvdXJjZSwgdGFyZ2V0LCBzdGF0aWNGaWxlc01ldGFkYXRhLCBtZXRhZGF0YUNvbnRleHQsIHRpdGxlVGVtcGxhdGVzLCBsZWFmU2VnbWVudFN0YXRpY0ljb25zLCBwYXRobmFtZSkge1xuICAgIHZhciBfc291cmNlX3R3aXR0ZXIsIF9zb3VyY2Vfb3BlbkdyYXBoO1xuICAgIGlmICghc3RhdGljRmlsZXNNZXRhZGF0YSkgcmV0dXJuIHRhcmdldDtcbiAgICBjb25zdCB7IGljb24sIGFwcGxlLCBvcGVuR3JhcGgsIHR3aXR0ZXIsIG1hbmlmZXN0IH0gPSBzdGF0aWNGaWxlc01ldGFkYXRhO1xuICAgIC8vIEtlZXAgdXBkYXRpbmcgdGhlIHN0YXRpYyBpY29ucyBpbiB0aGUgbW9zdCBsZWFmIG5vZGVcbiAgICBpZiAoaWNvbikge1xuICAgICAgICBsZWFmU2VnbWVudFN0YXRpY0ljb25zLmljb24gPSBpY29uO1xuICAgIH1cbiAgICBpZiAoYXBwbGUpIHtcbiAgICAgICAgbGVhZlNlZ21lbnRTdGF0aWNJY29ucy5hcHBsZSA9IGFwcGxlO1xuICAgIH1cbiAgICAvLyBmaWxlIGJhc2VkIG1ldGFkYXRhIGlzIHNwZWNpZmllZCBhbmQgY3VycmVudCBsZXZlbCBtZXRhZGF0YSB0d2l0dGVyLmltYWdlcyBpcyBub3Qgc3BlY2lmaWVkXG4gICAgaWYgKHR3aXR0ZXIgJiYgIShzb3VyY2UgPT0gbnVsbCA/IHZvaWQgMCA6IChfc291cmNlX3R3aXR0ZXIgPSBzb3VyY2UudHdpdHRlcikgPT0gbnVsbCA/IHZvaWQgMCA6IF9zb3VyY2VfdHdpdHRlci5oYXNPd25Qcm9wZXJ0eSgnaW1hZ2VzJykpKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkVHdpdHRlciA9ICgwLCBfcmVzb2x2ZW9wZW5ncmFwaC5yZXNvbHZlVHdpdHRlcikoe1xuICAgICAgICAgICAgLi4udGFyZ2V0LnR3aXR0ZXIsXG4gICAgICAgICAgICBpbWFnZXM6IHR3aXR0ZXJcbiAgICAgICAgfSwgdGFyZ2V0Lm1ldGFkYXRhQmFzZSwge1xuICAgICAgICAgICAgLi4ubWV0YWRhdGFDb250ZXh0LFxuICAgICAgICAgICAgaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZTogdHJ1ZVxuICAgICAgICB9LCB0aXRsZVRlbXBsYXRlcy50d2l0dGVyKTtcbiAgICAgICAgdGFyZ2V0LnR3aXR0ZXIgPSByZXNvbHZlZFR3aXR0ZXI7XG4gICAgfVxuICAgIC8vIGZpbGUgYmFzZWQgbWV0YWRhdGEgaXMgc3BlY2lmaWVkIGFuZCBjdXJyZW50IGxldmVsIG1ldGFkYXRhIG9wZW5HcmFwaC5pbWFnZXMgaXMgbm90IHNwZWNpZmllZFxuICAgIGlmIChvcGVuR3JhcGggJiYgIShzb3VyY2UgPT0gbnVsbCA/IHZvaWQgMCA6IChfc291cmNlX29wZW5HcmFwaCA9IHNvdXJjZS5vcGVuR3JhcGgpID09IG51bGwgPyB2b2lkIDAgOiBfc291cmNlX29wZW5HcmFwaC5oYXNPd25Qcm9wZXJ0eSgnaW1hZ2VzJykpKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkT3BlbkdyYXBoID0gYXdhaXQgKDAsIF9yZXNvbHZlb3BlbmdyYXBoLnJlc29sdmVPcGVuR3JhcGgpKHtcbiAgICAgICAgICAgIC4uLnRhcmdldC5vcGVuR3JhcGgsXG4gICAgICAgICAgICBpbWFnZXM6IG9wZW5HcmFwaFxuICAgICAgICB9LCB0YXJnZXQubWV0YWRhdGFCYXNlLCBwYXRobmFtZSwge1xuICAgICAgICAgICAgLi4ubWV0YWRhdGFDb250ZXh0LFxuICAgICAgICAgICAgaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZTogdHJ1ZVxuICAgICAgICB9LCB0aXRsZVRlbXBsYXRlcy5vcGVuR3JhcGgpO1xuICAgICAgICB0YXJnZXQub3BlbkdyYXBoID0gcmVzb2x2ZWRPcGVuR3JhcGg7XG4gICAgfVxuICAgIGlmIChtYW5pZmVzdCkge1xuICAgICAgICB0YXJnZXQubWFuaWZlc3QgPSBtYW5pZmVzdDtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cbi8vIE1lcmdlIHRoZSBzb3VyY2UgbWV0YWRhdGEgaW50byB0aGUgcmVzb2x2ZWQgdGFyZ2V0IG1ldGFkYXRhLlxuYXN5bmMgZnVuY3Rpb24gbWVyZ2VNZXRhZGF0YShyb3V0ZSwgcGF0aG5hbWUsIHsgc291cmNlLCB0YXJnZXQsIHN0YXRpY0ZpbGVzTWV0YWRhdGEsIHRpdGxlVGVtcGxhdGVzLCBtZXRhZGF0YUNvbnRleHQsIGJ1aWxkU3RhdGUsIGxlYWZTZWdtZW50U3RhdGljSWNvbnMgfSkge1xuICAgIC8vIElmIHRoZXJlJ3Mgb3ZlcnJpZGUgbWV0YWRhdGEsIHByZWZlciBpdCBvdGhlcndpc2UgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgbWV0YWRhdGEuXG4gICAgY29uc3QgbWV0YWRhdGFCYXNlID0gdHlwZW9mIChzb3VyY2UgPT0gbnVsbCA/IHZvaWQgMCA6IHNvdXJjZS5tZXRhZGF0YUJhc2UpICE9PSAndW5kZWZpbmVkJyA/IHNvdXJjZS5tZXRhZGF0YUJhc2UgOiB0YXJnZXQubWV0YWRhdGFCYXNlO1xuICAgIGZvcihjb25zdCBrZXlfIGluIHNvdXJjZSl7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleV87XG4gICAgICAgIHN3aXRjaChrZXkpe1xuICAgICAgICAgICAgY2FzZSAndGl0bGUnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnRpdGxlID0gKDAsIF9yZXNvbHZldGl0bGUucmVzb2x2ZVRpdGxlKShzb3VyY2UudGl0bGUsIHRpdGxlVGVtcGxhdGVzLnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYWx0ZXJuYXRlcyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYWx0ZXJuYXRlcyA9IGF3YWl0ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlQWx0ZXJuYXRlcykoc291cmNlLmFsdGVybmF0ZXMsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ29wZW5HcmFwaCc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQub3BlbkdyYXBoID0gYXdhaXQgKDAsIF9yZXNvbHZlb3BlbmdyYXBoLnJlc29sdmVPcGVuR3JhcGgpKHNvdXJjZS5vcGVuR3JhcGgsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCwgdGl0bGVUZW1wbGF0ZXMub3BlbkdyYXBoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAndHdpdHRlcic6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQudHdpdHRlciA9ICgwLCBfcmVzb2x2ZW9wZW5ncmFwaC5yZXNvbHZlVHdpdHRlcikoc291cmNlLnR3aXR0ZXIsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlcy50d2l0dGVyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZmFjZWJvb2snOlxuICAgICAgICAgICAgICAgIHRhcmdldC5mYWNlYm9vayA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlRmFjZWJvb2spKHNvdXJjZS5mYWNlYm9vayk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2ZXJpZmljYXRpb24nOlxuICAgICAgICAgICAgICAgIHRhcmdldC52ZXJpZmljYXRpb24gPSAoMCwgX3Jlc29sdmViYXNpY3MucmVzb2x2ZVZlcmlmaWNhdGlvbikoc291cmNlLnZlcmlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdpY29ucyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuaWNvbnMgPSAoMCwgX3Jlc29sdmVpY29ucy5yZXNvbHZlSWNvbnMpKHNvdXJjZS5pY29ucyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2FwcGxlV2ViQXBwJzpcbiAgICAgICAgICAgICAgICB0YXJnZXQuYXBwbGVXZWJBcHAgPSAoMCwgX3Jlc29sdmViYXNpY3MucmVzb2x2ZUFwcGxlV2ViQXBwKShzb3VyY2UuYXBwbGVXZWJBcHApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXBwTGlua3MnOlxuICAgICAgICAgICAgICAgIHRhcmdldC5hcHBMaW5rcyA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlQXBwTGlua3MpKHNvdXJjZS5hcHBMaW5rcyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyb2JvdHMnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnJvYm90cyA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlUm9ib3RzKShzb3VyY2Uucm9ib3RzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYXJjaGl2ZXMnOlxuICAgICAgICAgICAgY2FzZSAnYXNzZXRzJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2ttYXJrcyc6XG4gICAgICAgICAgICBjYXNlICdrZXl3b3Jkcyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkoc291cmNlW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdhdXRob3JzJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShzb3VyY2UuYXV0aG9ycyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2l0dW5lcyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IGF3YWl0ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlSXR1bmVzKShzb3VyY2UuaXR1bmVzLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBtZXRhZGF0YUNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdwYWdpbmF0aW9uJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5wYWdpbmF0aW9uID0gYXdhaXQgKDAsIF9yZXNvbHZlYmFzaWNzLnJlc29sdmVQYWdpbmF0aW9uKShzb3VyY2UucGFnaW5hdGlvbiwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZGlyZWN0bHkgYXNzaWduIGZpZWxkcyB0aGF0IGZhbGxiYWNrIHRvIG51bGxcbiAgICAgICAgICAgIGNhc2UgJ2Fic3RyYWN0JzpcbiAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uTmFtZSc6XG4gICAgICAgICAgICBjYXNlICdkZXNjcmlwdGlvbic6XG4gICAgICAgICAgICBjYXNlICdnZW5lcmF0b3InOlxuICAgICAgICAgICAgY2FzZSAnY3JlYXRvcic6XG4gICAgICAgICAgICBjYXNlICdwdWJsaXNoZXInOlxuICAgICAgICAgICAgY2FzZSAnY2F0ZWdvcnknOlxuICAgICAgICAgICAgY2FzZSAnY2xhc3NpZmljYXRpb24nOlxuICAgICAgICAgICAgY2FzZSAncmVmZXJyZXInOlxuICAgICAgICAgICAgY2FzZSAnZm9ybWF0RGV0ZWN0aW9uJzpcbiAgICAgICAgICAgIGNhc2UgJ21hbmlmZXN0JzpcbiAgICAgICAgICAgIGNhc2UgJ3BpbnRlcmVzdCc6XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBUT0RPOiBzdXBwb3J0IGluZmVycmluZ1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV0gfHwgbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ290aGVyJzpcbiAgICAgICAgICAgICAgICB0YXJnZXQub3RoZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0YXJnZXQub3RoZXIsIHNvdXJjZS5vdGhlcik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZXRhZGF0YUJhc2UnOlxuICAgICAgICAgICAgICAgIHRhcmdldC5tZXRhZGF0YUJhc2UgPSBtZXRhZGF0YUJhc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhcHBsZS10b3VjaC1mdWxsc2NyZWVuJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkU3RhdGUud2FybmluZ3MuYWRkKGBVc2UgYXBwbGVXZWJBcHAgaW5zdGVhZFxcblJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL2dlbmVyYXRlLW1ldGFkYXRhYCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2FwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRTdGF0ZS53YXJuaW5ncy5hZGQoYFVzZSBpY29ucy5hcHBsZSBpbnN0ZWFkXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvZ2VuZXJhdGUtbWV0YWRhdGFgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAndGhlbWVDb2xvcic6XG4gICAgICAgICAgICBjYXNlICdjb2xvclNjaGVtZSc6XG4gICAgICAgICAgICBjYXNlICd2aWV3cG9ydCc6XG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZVtrZXldICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRTdGF0ZS53YXJuaW5ncy5hZGQoYFVuc3VwcG9ydGVkIG1ldGFkYXRhICR7a2V5fSBpcyBjb25maWd1cmVkIGluIG1ldGFkYXRhIGV4cG9ydCBpbiAke3JvdXRlfS4gUGxlYXNlIG1vdmUgaXQgdG8gdmlld3BvcnQgZXhwb3J0IGluc3RlYWQuXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvZ2VuZXJhdGUtdmlld3BvcnRgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAga2V5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VTdGF0aWNNZXRhZGF0YShzb3VyY2UsIHRhcmdldCwgc3RhdGljRmlsZXNNZXRhZGF0YSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlcywgbGVhZlNlZ21lbnRTdGF0aWNJY29ucywgcGF0aG5hbWUpO1xufVxuZnVuY3Rpb24gbWVyZ2VWaWV3cG9ydCh7IHRhcmdldCwgc291cmNlIH0pIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuO1xuICAgIGZvcihjb25zdCBrZXlfIGluIHNvdXJjZSl7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleV87XG4gICAgICAgIHN3aXRjaChrZXkpe1xuICAgICAgICAgICAgY2FzZSAndGhlbWVDb2xvcic6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQudGhlbWVDb2xvciA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlVGhlbWVDb2xvcikoc291cmNlLnRoZW1lQ29sb3IpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdjb2xvclNjaGVtZSc6XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmNvbG9yU2NoZW1lID0gc291cmNlLmNvbG9yU2NoZW1lIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd3aWR0aCc6XG4gICAgICAgICAgICBjYXNlICdoZWlnaHQnOlxuICAgICAgICAgICAgY2FzZSAnaW5pdGlhbFNjYWxlJzpcbiAgICAgICAgICAgIGNhc2UgJ21pbmltdW1TY2FsZSc6XG4gICAgICAgICAgICBjYXNlICdtYXhpbXVtU2NhbGUnOlxuICAgICAgICAgICAgY2FzZSAndXNlclNjYWxhYmxlJzpcbiAgICAgICAgICAgIGNhc2UgJ3ZpZXdwb3J0Rml0JzpcbiAgICAgICAgICAgIGNhc2UgJ2ludGVyYWN0aXZlV2lkZ2V0JzpcbiAgICAgICAgICAgICAgICAvLyBhbHdheXMgb3ZlcnJpZGUgdGhlIHRhcmdldCB3aXRoIHRoZSBzb3VyY2VcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlIHZpZXdwb3J0IHByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBrZXk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBnZXREZWZpbmVkVmlld3BvcnQobW9kLCBwcm9wcywgdHJhY2luZ1Byb3BzKSB7XG4gICAgaWYgKHR5cGVvZiBtb2QuZ2VuZXJhdGVWaWV3cG9ydCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCB7IHJvdXRlIH0gPSB0cmFjaW5nUHJvcHM7XG4gICAgICAgIHJldHVybiAocGFyZW50KT0+KDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMuUmVzb2x2ZU1ldGFkYXRhU3Bhbi5nZW5lcmF0ZVZpZXdwb3J0LCB7XG4gICAgICAgICAgICAgICAgc3Bhbk5hbWU6IGBnZW5lcmF0ZVZpZXdwb3J0ICR7cm91dGV9YCxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICduZXh0LnBhZ2UnOiByb3V0ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sICgpPT5tb2QuZ2VuZXJhdGVWaWV3cG9ydChwcm9wcywgcGFyZW50KSk7XG4gICAgfVxuICAgIHJldHVybiBtb2Qudmlld3BvcnQgfHwgbnVsbDtcbn1cbmZ1bmN0aW9uIGdldERlZmluZWRNZXRhZGF0YShtb2QsIHByb3BzLCB0cmFjaW5nUHJvcHMpIHtcbiAgICBpZiAodHlwZW9mIG1vZC5nZW5lcmF0ZU1ldGFkYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHsgcm91dGUgfSA9IHRyYWNpbmdQcm9wcztcbiAgICAgICAgcmV0dXJuIChwYXJlbnQpPT4oMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkudHJhY2UoX2NvbnN0YW50cy5SZXNvbHZlTWV0YWRhdGFTcGFuLmdlbmVyYXRlTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICAgICBzcGFuTmFtZTogYGdlbmVyYXRlTWV0YWRhdGEgJHtyb3V0ZX1gLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ25leHQucGFnZSc6IHJvdXRlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgKCk9Pm1vZC5nZW5lcmF0ZU1ldGFkYXRhKHByb3BzLCBwYXJlbnQpKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZC5tZXRhZGF0YSB8fCBudWxsO1xufVxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdFN0YXRpY0ltYWdlc0ZpbGVzKG1ldGFkYXRhLCBwcm9wcywgdHlwZSkge1xuICAgIHZhciBfdGhpcztcbiAgICBpZiAoIShtZXRhZGF0YSA9PSBudWxsID8gdm9pZCAwIDogbWV0YWRhdGFbdHlwZV0pKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGljb25Qcm9taXNlcyA9IG1ldGFkYXRhW3R5cGVdLm1hcChhc3luYyAoaW1hZ2VNb2R1bGUpPT4oMCwgX2ludGVyb3BkZWZhdWx0LmludGVyb3BEZWZhdWx0KShhd2FpdCBpbWFnZU1vZHVsZShwcm9wcykpKTtcbiAgICByZXR1cm4gKGljb25Qcm9taXNlcyA9PSBudWxsID8gdm9pZCAwIDogaWNvblByb21pc2VzLmxlbmd0aCkgPiAwID8gKF90aGlzID0gYXdhaXQgUHJvbWlzZS5hbGwoaWNvblByb21pc2VzKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzLmZsYXQoKSA6IHVuZGVmaW5lZDtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVTdGF0aWNNZXRhZGF0YShtb2R1bGVzLCBwcm9wcykge1xuICAgIGNvbnN0IHsgbWV0YWRhdGEgfSA9IG1vZHVsZXM7XG4gICAgaWYgKCFtZXRhZGF0YSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgW2ljb24sIGFwcGxlLCBvcGVuR3JhcGgsIHR3aXR0ZXJdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICBjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMobWV0YWRhdGEsIHByb3BzLCAnaWNvbicpLFxuICAgICAgICBjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMobWV0YWRhdGEsIHByb3BzLCAnYXBwbGUnKSxcbiAgICAgICAgY29sbGVjdFN0YXRpY0ltYWdlc0ZpbGVzKG1ldGFkYXRhLCBwcm9wcywgJ29wZW5HcmFwaCcpLFxuICAgICAgICBjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMobWV0YWRhdGEsIHByb3BzLCAndHdpdHRlcicpXG4gICAgXSk7XG4gICAgY29uc3Qgc3RhdGljTWV0YWRhdGEgPSB7XG4gICAgICAgIGljb24sXG4gICAgICAgIGFwcGxlLFxuICAgICAgICBvcGVuR3JhcGgsXG4gICAgICAgIHR3aXR0ZXIsXG4gICAgICAgIG1hbmlmZXN0OiBtZXRhZGF0YS5tYW5pZmVzdFxuICAgIH07XG4gICAgcmV0dXJuIHN0YXRpY01ldGFkYXRhO1xufVxuLy8gW2xheW91dC5tZXRhZGF0YSwgc3RhdGljIGZpbGVzIG1ldGFkYXRhXSAtPiAuLi4gLT4gW3BhZ2UubWV0YWRhdGEsIHN0YXRpYyBmaWxlcyBtZXRhZGF0YV1cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RNZXRhZGF0YSh7IHRyZWUsIG1ldGFkYXRhSXRlbXMsIGVycm9yTWV0YWRhdGFJdGVtLCBwcm9wcywgcm91dGUsIGVycm9yQ29udmVudGlvbiB9KSB7XG4gICAgbGV0IG1vZDtcbiAgICBsZXQgbW9kVHlwZTtcbiAgICBjb25zdCBoYXNFcnJvckNvbnZlbnRpb25Db21wb25lbnQgPSBCb29sZWFuKGVycm9yQ29udmVudGlvbiAmJiB0cmVlWzJdW2Vycm9yQ29udmVudGlvbl0pO1xuICAgIGlmIChlcnJvckNvbnZlbnRpb24pIHtcbiAgICAgICAgbW9kID0gYXdhaXQgKDAsIF9hcHBkaXJtb2R1bGUuZ2V0Q29tcG9uZW50VHlwZU1vZHVsZSkodHJlZSwgJ2xheW91dCcpO1xuICAgICAgICBtb2RUeXBlID0gZXJyb3JDb252ZW50aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHsgbW9kOiBsYXlvdXRPclBhZ2VNb2QsIG1vZFR5cGU6IGxheW91dE9yUGFnZU1vZFR5cGUgfSA9IGF3YWl0ICgwLCBfYXBwZGlybW9kdWxlLmdldExheW91dE9yUGFnZU1vZHVsZSkodHJlZSk7XG4gICAgICAgIG1vZCA9IGxheW91dE9yUGFnZU1vZDtcbiAgICAgICAgbW9kVHlwZSA9IGxheW91dE9yUGFnZU1vZFR5cGU7XG4gICAgfVxuICAgIGlmIChtb2RUeXBlKSB7XG4gICAgICAgIHJvdXRlICs9IGAvJHttb2RUeXBlfWA7XG4gICAgfVxuICAgIGNvbnN0IHN0YXRpY0ZpbGVzTWV0YWRhdGEgPSBhd2FpdCByZXNvbHZlU3RhdGljTWV0YWRhdGEodHJlZVsyXSwgcHJvcHMpO1xuICAgIGNvbnN0IG1ldGFkYXRhRXhwb3J0ID0gbW9kID8gZ2V0RGVmaW5lZE1ldGFkYXRhKG1vZCwgcHJvcHMsIHtcbiAgICAgICAgcm91dGVcbiAgICB9KSA6IG51bGw7XG4gICAgbWV0YWRhdGFJdGVtcy5wdXNoKFtcbiAgICAgICAgbWV0YWRhdGFFeHBvcnQsXG4gICAgICAgIHN0YXRpY0ZpbGVzTWV0YWRhdGFcbiAgICBdKTtcbiAgICBpZiAoaGFzRXJyb3JDb252ZW50aW9uQ29tcG9uZW50ICYmIGVycm9yQ29udmVudGlvbikge1xuICAgICAgICBjb25zdCBlcnJvck1vZCA9IGF3YWl0ICgwLCBfYXBwZGlybW9kdWxlLmdldENvbXBvbmVudFR5cGVNb2R1bGUpKHRyZWUsIGVycm9yQ29udmVudGlvbik7XG4gICAgICAgIGNvbnN0IGVycm9yTWV0YWRhdGFFeHBvcnQgPSBlcnJvck1vZCA/IGdldERlZmluZWRNZXRhZGF0YShlcnJvck1vZCwgcHJvcHMsIHtcbiAgICAgICAgICAgIHJvdXRlXG4gICAgICAgIH0pIDogbnVsbDtcbiAgICAgICAgZXJyb3JNZXRhZGF0YUl0ZW1bMF0gPSBlcnJvck1ldGFkYXRhRXhwb3J0O1xuICAgICAgICBlcnJvck1ldGFkYXRhSXRlbVsxXSA9IHN0YXRpY0ZpbGVzTWV0YWRhdGE7XG4gICAgfVxufVxuLy8gW2xheW91dC5tZXRhZGF0YSwgc3RhdGljIGZpbGVzIG1ldGFkYXRhXSAtPiAuLi4gLT4gW3BhZ2UubWV0YWRhdGEsIHN0YXRpYyBmaWxlcyBtZXRhZGF0YV1cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RWaWV3cG9ydCh7IHRyZWUsIHZpZXdwb3J0SXRlbXMsIGVycm9yVmlld3BvcnRJdGVtUmVmLCBwcm9wcywgcm91dGUsIGVycm9yQ29udmVudGlvbiB9KSB7XG4gICAgbGV0IG1vZDtcbiAgICBsZXQgbW9kVHlwZTtcbiAgICBjb25zdCBoYXNFcnJvckNvbnZlbnRpb25Db21wb25lbnQgPSBCb29sZWFuKGVycm9yQ29udmVudGlvbiAmJiB0cmVlWzJdW2Vycm9yQ29udmVudGlvbl0pO1xuICAgIGlmIChlcnJvckNvbnZlbnRpb24pIHtcbiAgICAgICAgbW9kID0gYXdhaXQgKDAsIF9hcHBkaXJtb2R1bGUuZ2V0Q29tcG9uZW50VHlwZU1vZHVsZSkodHJlZSwgJ2xheW91dCcpO1xuICAgICAgICBtb2RUeXBlID0gZXJyb3JDb252ZW50aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHsgbW9kOiBsYXlvdXRPclBhZ2VNb2QsIG1vZFR5cGU6IGxheW91dE9yUGFnZU1vZFR5cGUgfSA9IGF3YWl0ICgwLCBfYXBwZGlybW9kdWxlLmdldExheW91dE9yUGFnZU1vZHVsZSkodHJlZSk7XG4gICAgICAgIG1vZCA9IGxheW91dE9yUGFnZU1vZDtcbiAgICAgICAgbW9kVHlwZSA9IGxheW91dE9yUGFnZU1vZFR5cGU7XG4gICAgfVxuICAgIGlmIChtb2RUeXBlKSB7XG4gICAgICAgIHJvdXRlICs9IGAvJHttb2RUeXBlfWA7XG4gICAgfVxuICAgIGNvbnN0IHZpZXdwb3J0RXhwb3J0ID0gbW9kID8gZ2V0RGVmaW5lZFZpZXdwb3J0KG1vZCwgcHJvcHMsIHtcbiAgICAgICAgcm91dGVcbiAgICB9KSA6IG51bGw7XG4gICAgdmlld3BvcnRJdGVtcy5wdXNoKHZpZXdwb3J0RXhwb3J0KTtcbiAgICBpZiAoaGFzRXJyb3JDb252ZW50aW9uQ29tcG9uZW50ICYmIGVycm9yQ29udmVudGlvbikge1xuICAgICAgICBjb25zdCBlcnJvck1vZCA9IGF3YWl0ICgwLCBfYXBwZGlybW9kdWxlLmdldENvbXBvbmVudFR5cGVNb2R1bGUpKHRyZWUsIGVycm9yQ29udmVudGlvbik7XG4gICAgICAgIGNvbnN0IGVycm9yVmlld3BvcnRFeHBvcnQgPSBlcnJvck1vZCA/IGdldERlZmluZWRWaWV3cG9ydChlcnJvck1vZCwgcHJvcHMsIHtcbiAgICAgICAgICAgIHJvdXRlXG4gICAgICAgIH0pIDogbnVsbDtcbiAgICAgICAgZXJyb3JWaWV3cG9ydEl0ZW1SZWYuY3VycmVudCA9IGVycm9yVmlld3BvcnRFeHBvcnQ7XG4gICAgfVxufVxuY29uc3QgcmVzb2x2ZU1ldGFkYXRhSXRlbXMgPSAoMCwgX3JlYWN0LmNhY2hlKShhc3luYyBmdW5jdGlvbih0cmVlLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHBhcmVudFBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IG1ldGFkYXRhSXRlbXMgPSBbXTtcbiAgICBjb25zdCBlcnJvck1ldGFkYXRhSXRlbSA9IFtcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbFxuICAgIF07XG4gICAgY29uc3QgdHJlZVByZWZpeCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gcmVzb2x2ZU1ldGFkYXRhSXRlbXNJbXBsKG1ldGFkYXRhSXRlbXMsIHRyZWUsIHRyZWVQcmVmaXgsIHBhcmVudFBhcmFtcywgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGVycm9yTWV0YWRhdGFJdGVtLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKTtcbn0pO1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZU1ldGFkYXRhSXRlbXNJbXBsKG1ldGFkYXRhSXRlbXMsIHRyZWUsIC8qKiBQcm92aWRlZCB0cmVlIGNhbiBiZSBuZXN0ZWQgc3VidHJlZSwgdGhpcyBhcmd1bWVudCBzYXlzIHdoYXQgaXMgdGhlIHBhdGggb2Ygc3VjaCBzdWJ0cmVlICovIHRyZWVQcmVmaXgsIHBhcmVudFBhcmFtcywgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGVycm9yTWV0YWRhdGFJdGVtLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKSB7XG4gICAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVzLCB7IHBhZ2UgfV0gPSB0cmVlO1xuICAgIGNvbnN0IGN1cnJlbnRUcmVlUHJlZml4ID0gdHJlZVByZWZpeCAmJiB0cmVlUHJlZml4Lmxlbmd0aCA/IFtcbiAgICAgICAgLi4udHJlZVByZWZpeCxcbiAgICAgICAgc2VnbWVudFxuICAgIF0gOiBbXG4gICAgICAgIHNlZ21lbnRcbiAgICBdO1xuICAgIGNvbnN0IGlzUGFnZSA9IHR5cGVvZiBwYWdlICE9PSAndW5kZWZpbmVkJztcbiAgICAvLyBIYW5kbGUgZHluYW1pYyBzZWdtZW50IHBhcmFtcy5cbiAgICBjb25zdCBzZWdtZW50UGFyYW0gPSBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudChzZWdtZW50KTtcbiAgICAvKipcbiAgICogQ3JlYXRlIG9iamVjdCBob2xkaW5nIHRoZSBwYXJlbnQgcGFyYW1zIGFuZCBjdXJyZW50IHBhcmFtc1xuICAgKi8gbGV0IGN1cnJlbnRQYXJhbXMgPSBwYXJlbnRQYXJhbXM7XG4gICAgaWYgKHNlZ21lbnRQYXJhbSAmJiBzZWdtZW50UGFyYW0udmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgY3VycmVudFBhcmFtcyA9IHtcbiAgICAgICAgICAgIC4uLnBhcmVudFBhcmFtcyxcbiAgICAgICAgICAgIFtzZWdtZW50UGFyYW0ucGFyYW1dOiBzZWdtZW50UGFyYW0udmFsdWVcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgcGFyYW1zID0gKDAsIF9wYXJhbXMuY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEpKGN1cnJlbnRQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgbGV0IGxheWVyUHJvcHM7XG4gICAgaWYgKGlzUGFnZSkge1xuICAgICAgICBsYXllclByb3BzID0ge1xuICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgc2VhcmNoUGFyYW1zXG4gICAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGF5ZXJQcm9wcyA9IHtcbiAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICB9O1xuICAgIH1cbiAgICBhd2FpdCBjb2xsZWN0TWV0YWRhdGEoe1xuICAgICAgICB0cmVlLFxuICAgICAgICBtZXRhZGF0YUl0ZW1zLFxuICAgICAgICBlcnJvck1ldGFkYXRhSXRlbSxcbiAgICAgICAgZXJyb3JDb252ZW50aW9uLFxuICAgICAgICBwcm9wczogbGF5ZXJQcm9wcyxcbiAgICAgICAgcm91dGU6IGN1cnJlbnRUcmVlUHJlZml4Ly8gX19QQUdFX18gc2hvdWxkbid0IGJlIHNob3duIGluIGEgcm91dGVcbiAgICAgICAgLmZpbHRlcigocyk9PnMgIT09IF9zZWdtZW50LlBBR0VfU0VHTUVOVF9LRVkpLmpvaW4oJy8nKVxuICAgIH0pO1xuICAgIGZvcihjb25zdCBrZXkgaW4gcGFyYWxsZWxSb3V0ZXMpe1xuICAgICAgICBjb25zdCBjaGlsZFRyZWUgPSBwYXJhbGxlbFJvdXRlc1trZXldO1xuICAgICAgICBhd2FpdCByZXNvbHZlTWV0YWRhdGFJdGVtc0ltcGwobWV0YWRhdGFJdGVtcywgY2hpbGRUcmVlLCBjdXJyZW50VHJlZVByZWZpeCwgY3VycmVudFBhcmFtcywgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGVycm9yTWV0YWRhdGFJdGVtLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKTtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKHBhcmFsbGVsUm91dGVzKS5sZW5ndGggPT09IDAgJiYgZXJyb3JDb252ZW50aW9uKSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBwYXJhbGxlbCByb3V0ZXMsIHBsYWNlIGVycm9yIG1ldGFkYXRhIGFzIHRoZSBsYXN0IGl0ZW0uXG4gICAgICAgIC8vIGUuZy4gbGF5b3V0IC0+IGxheW91dCAtPiBub3QtZm91bmRcbiAgICAgICAgbWV0YWRhdGFJdGVtcy5wdXNoKGVycm9yTWV0YWRhdGFJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhSXRlbXM7XG59XG5jb25zdCByZXNvbHZlVmlld3BvcnRJdGVtcyA9ICgwLCBfcmVhY3QuY2FjaGUpKGFzeW5jIGZ1bmN0aW9uKHRyZWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKSB7XG4gICAgY29uc3QgcGFyZW50UGFyYW1zID0ge307XG4gICAgY29uc3Qgdmlld3BvcnRJdGVtcyA9IFtdO1xuICAgIGNvbnN0IGVycm9yVmlld3BvcnRJdGVtUmVmID0ge1xuICAgICAgICBjdXJyZW50OiBudWxsXG4gICAgfTtcbiAgICBjb25zdCB0cmVlUHJlZml4ID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXNvbHZlVmlld3BvcnRJdGVtc0ltcGwodmlld3BvcnRJdGVtcywgdHJlZSwgdHJlZVByZWZpeCwgcGFyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JWaWV3cG9ydEl0ZW1SZWYsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpO1xufSk7XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlVmlld3BvcnRJdGVtc0ltcGwodmlld3BvcnRJdGVtcywgdHJlZSwgLyoqIFByb3ZpZGVkIHRyZWUgY2FuIGJlIG5lc3RlZCBzdWJ0cmVlLCB0aGlzIGFyZ3VtZW50IHNheXMgd2hhdCBpcyB0aGUgcGF0aCBvZiBzdWNoIHN1YnRyZWUgKi8gdHJlZVByZWZpeCwgcGFyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JWaWV3cG9ydEl0ZW1SZWYsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCBbc2VnbWVudCwgcGFyYWxsZWxSb3V0ZXMsIHsgcGFnZSB9XSA9IHRyZWU7XG4gICAgY29uc3QgY3VycmVudFRyZWVQcmVmaXggPSB0cmVlUHJlZml4ICYmIHRyZWVQcmVmaXgubGVuZ3RoID8gW1xuICAgICAgICAuLi50cmVlUHJlZml4LFxuICAgICAgICBzZWdtZW50XG4gICAgXSA6IFtcbiAgICAgICAgc2VnbWVudFxuICAgIF07XG4gICAgY29uc3QgaXNQYWdlID0gdHlwZW9mIHBhZ2UgIT09ICd1bmRlZmluZWQnO1xuICAgIC8vIEhhbmRsZSBkeW5hbWljIHNlZ21lbnQgcGFyYW1zLlxuICAgIGNvbnN0IHNlZ21lbnRQYXJhbSA9IGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50KHNlZ21lbnQpO1xuICAgIC8qKlxuICAgKiBDcmVhdGUgb2JqZWN0IGhvbGRpbmcgdGhlIHBhcmVudCBwYXJhbXMgYW5kIGN1cnJlbnQgcGFyYW1zXG4gICAqLyBsZXQgY3VycmVudFBhcmFtcyA9IHBhcmVudFBhcmFtcztcbiAgICBpZiAoc2VnbWVudFBhcmFtICYmIHNlZ21lbnRQYXJhbS52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICBjdXJyZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgLi4ucGFyZW50UGFyYW1zLFxuICAgICAgICAgICAgW3NlZ21lbnRQYXJhbS5wYXJhbV06IHNlZ21lbnRQYXJhbS52YWx1ZVxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBwYXJhbXMgPSAoMCwgX3BhcmFtcy5jcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSkoY3VycmVudFBhcmFtcywgd29ya1N0b3JlKTtcbiAgICBsZXQgbGF5ZXJQcm9wcztcbiAgICBpZiAoaXNQYWdlKSB7XG4gICAgICAgIGxheWVyUHJvcHMgPSB7XG4gICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICBzZWFyY2hQYXJhbXNcbiAgICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsYXllclByb3BzID0ge1xuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgIH07XG4gICAgfVxuICAgIGF3YWl0IGNvbGxlY3RWaWV3cG9ydCh7XG4gICAgICAgIHRyZWUsXG4gICAgICAgIHZpZXdwb3J0SXRlbXMsXG4gICAgICAgIGVycm9yVmlld3BvcnRJdGVtUmVmLFxuICAgICAgICBlcnJvckNvbnZlbnRpb24sXG4gICAgICAgIHByb3BzOiBsYXllclByb3BzLFxuICAgICAgICByb3V0ZTogY3VycmVudFRyZWVQcmVmaXgvLyBfX1BBR0VfXyBzaG91bGRuJ3QgYmUgc2hvd24gaW4gYSByb3V0ZVxuICAgICAgICAuZmlsdGVyKChzKT0+cyAhPT0gX3NlZ21lbnQuUEFHRV9TRUdNRU5UX0tFWSkuam9pbignLycpXG4gICAgfSk7XG4gICAgZm9yKGNvbnN0IGtleSBpbiBwYXJhbGxlbFJvdXRlcyl7XG4gICAgICAgIGNvbnN0IGNoaWxkVHJlZSA9IHBhcmFsbGVsUm91dGVzW2tleV07XG4gICAgICAgIGF3YWl0IHJlc29sdmVWaWV3cG9ydEl0ZW1zSW1wbCh2aWV3cG9ydEl0ZW1zLCBjaGlsZFRyZWUsIGN1cnJlbnRUcmVlUHJlZml4LCBjdXJyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JWaWV3cG9ydEl0ZW1SZWYsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LmtleXMocGFyYWxsZWxSb3V0ZXMpLmxlbmd0aCA9PT0gMCAmJiBlcnJvckNvbnZlbnRpb24pIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIHBhcmFsbGVsIHJvdXRlcywgcGxhY2UgZXJyb3IgbWV0YWRhdGEgYXMgdGhlIGxhc3QgaXRlbS5cbiAgICAgICAgLy8gZS5nLiBsYXlvdXQgLT4gbGF5b3V0IC0+IG5vdC1mb3VuZFxuICAgICAgICB2aWV3cG9ydEl0ZW1zLnB1c2goZXJyb3JWaWV3cG9ydEl0ZW1SZWYuY3VycmVudCk7XG4gICAgfVxuICAgIHJldHVybiB2aWV3cG9ydEl0ZW1zO1xufVxuY29uc3QgaXNUaXRsZVRydXRoeSA9ICh0aXRsZSk9PiEhKHRpdGxlID09IG51bGwgPyB2b2lkIDAgOiB0aXRsZS5hYnNvbHV0ZSk7XG5jb25zdCBoYXNUaXRsZSA9IChtZXRhZGF0YSk9PmlzVGl0bGVUcnV0aHkobWV0YWRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IG1ldGFkYXRhLnRpdGxlKTtcbmZ1bmN0aW9uIGluaGVyaXRGcm9tTWV0YWRhdGEodGFyZ2V0LCBtZXRhZGF0YSkge1xuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgaWYgKCFoYXNUaXRsZSh0YXJnZXQpICYmIGhhc1RpdGxlKG1ldGFkYXRhKSkge1xuICAgICAgICAgICAgdGFyZ2V0LnRpdGxlID0gbWV0YWRhdGEudGl0bGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0YXJnZXQuZGVzY3JpcHRpb24gJiYgbWV0YWRhdGEuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRhcmdldC5kZXNjcmlwdGlvbiA9IG1ldGFkYXRhLmRlc2NyaXB0aW9uO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuY29uc3QgY29tbW9uT2dLZXlzID0gW1xuICAgICd0aXRsZScsXG4gICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAnaW1hZ2VzJ1xuXTtcbmZ1bmN0aW9uIHBvc3RQcm9jZXNzTWV0YWRhdGEobWV0YWRhdGEsIGZhdmljb24sIHRpdGxlVGVtcGxhdGVzLCBtZXRhZGF0YUNvbnRleHQpIHtcbiAgICBjb25zdCB7IG9wZW5HcmFwaCwgdHdpdHRlciB9ID0gbWV0YWRhdGE7XG4gICAgaWYgKG9wZW5HcmFwaCkge1xuICAgICAgICAvLyBJZiB0aGVyZSdzIG9wZW5HcmFwaCBpbmZvcm1hdGlvbiBidXQgbm90IGNvbmZpZ3VyZWQgaW4gdHdpdHRlcixcbiAgICAgICAgLy8gaW5oZXJpdCB0aGVtIGZyb20gb3BlbkdyYXBoIG1ldGFkYXRhLlxuICAgICAgICBsZXQgYXV0b0ZpbGxQcm9wcyA9IHt9O1xuICAgICAgICBjb25zdCBoYXNUd1RpdGxlID0gaGFzVGl0bGUodHdpdHRlcik7XG4gICAgICAgIGNvbnN0IGhhc1R3RGVzY3JpcHRpb24gPSB0d2l0dGVyID09IG51bGwgPyB2b2lkIDAgOiB0d2l0dGVyLmRlc2NyaXB0aW9uO1xuICAgICAgICBjb25zdCBoYXNUd0ltYWdlcyA9IEJvb2xlYW4oKHR3aXR0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHR3aXR0ZXIuaGFzT3duUHJvcGVydHkoJ2ltYWdlcycpKSAmJiB0d2l0dGVyLmltYWdlcyk7XG4gICAgICAgIGlmICghaGFzVHdUaXRsZSkge1xuICAgICAgICAgICAgaWYgKGlzVGl0bGVUcnV0aHkob3BlbkdyYXBoLnRpdGxlKSkge1xuICAgICAgICAgICAgICAgIGF1dG9GaWxsUHJvcHMudGl0bGUgPSBvcGVuR3JhcGgudGl0bGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnRpdGxlICYmIGlzVGl0bGVUcnV0aHkobWV0YWRhdGEudGl0bGUpKSB7XG4gICAgICAgICAgICAgICAgYXV0b0ZpbGxQcm9wcy50aXRsZSA9IG1ldGFkYXRhLnRpdGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghaGFzVHdEZXNjcmlwdGlvbikgYXV0b0ZpbGxQcm9wcy5kZXNjcmlwdGlvbiA9IG9wZW5HcmFwaC5kZXNjcmlwdGlvbiB8fCBtZXRhZGF0YS5kZXNjcmlwdGlvbiB8fCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghaGFzVHdJbWFnZXMpIGF1dG9GaWxsUHJvcHMuaW1hZ2VzID0gb3BlbkdyYXBoLmltYWdlcztcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGF1dG9GaWxsUHJvcHMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRpYWxUd2l0dGVyID0gKDAsIF9yZXNvbHZlb3BlbmdyYXBoLnJlc29sdmVUd2l0dGVyKShhdXRvRmlsbFByb3BzLCBtZXRhZGF0YS5tZXRhZGF0YUJhc2UsIG1ldGFkYXRhQ29udGV4dCwgdGl0bGVUZW1wbGF0ZXMudHdpdHRlcik7XG4gICAgICAgICAgICBpZiAobWV0YWRhdGEudHdpdHRlcikge1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhLnR3aXR0ZXIgPSBPYmplY3QuYXNzaWduKHt9LCBtZXRhZGF0YS50d2l0dGVyLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLiFoYXNUd1RpdGxlICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwYXJ0aWFsVHdpdHRlciA9PSBudWxsID8gdm9pZCAwIDogcGFydGlhbFR3aXR0ZXIudGl0bGVcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uIWhhc1R3RGVzY3JpcHRpb24gJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHBhcnRpYWxUd2l0dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYXJ0aWFsVHdpdHRlci5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4haGFzVHdJbWFnZXMgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VzOiBwYXJ0aWFsVHdpdHRlciA9PSBudWxsID8gdm9pZCAwIDogcGFydGlhbFR3aXR0ZXIuaW1hZ2VzXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGEudHdpdHRlciA9IHBhcnRpYWxUd2l0dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIElmIHRoZXJlJ3Mgbm8gdGl0bGUgYW5kIGRlc2NyaXB0aW9uIGNvbmZpZ3VyZWQgaW4gb3BlbkdyYXBoIG9yIHR3aXR0ZXIsXG4gICAgLy8gdXNlIHRoZSB0aXRsZSBhbmQgZGVzY3JpcHRpb24gZnJvbSBtZXRhZGF0YS5cbiAgICBpbmhlcml0RnJvbU1ldGFkYXRhKG9wZW5HcmFwaCwgbWV0YWRhdGEpO1xuICAgIGluaGVyaXRGcm9tTWV0YWRhdGEodHdpdHRlciwgbWV0YWRhdGEpO1xuICAgIGlmIChmYXZpY29uKSB7XG4gICAgICAgIGlmICghbWV0YWRhdGEuaWNvbnMpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLmljb25zID0ge1xuICAgICAgICAgICAgICAgIGljb246IFtdLFxuICAgICAgICAgICAgICAgIGFwcGxlOiBbXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBtZXRhZGF0YS5pY29ucy5pY29uLnVuc2hpZnQoZmF2aWNvbik7XG4gICAgfVxuICAgIHJldHVybiBtZXRhZGF0YTtcbn1cbmZ1bmN0aW9uIHByZXJlbmRlck1ldGFkYXRhKG1ldGFkYXRhSXRlbXMpIHtcbiAgICAvLyBJZiB0aGUgaW5kZXggaXMgYSBmdW5jdGlvbiB0aGVuIGl0IGlzIGEgcmVzb2x2ZXIgYW5kIHRoZSBuZXh0IHNsb3RcbiAgICAvLyBpcyB0aGUgY29ycmVzcG9uZGluZyByZXN1bHQuIElmIHRoZSBpbmRleCBpcyBub3QgYSBmdW5jdGlvbiBpdCBpcyB0aGUgcmVzdWx0XG4gICAgLy8gaXRzZWxmLlxuICAgIGNvbnN0IHJlc29sdmVyc0FuZFJlc3VsdHMgPSBbXTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgbWV0YWRhdGFJdGVtcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhRXhwb3J0ID0gbWV0YWRhdGFJdGVtc1tpXVswXTtcbiAgICAgICAgZ2V0UmVzdWx0KHJlc29sdmVyc0FuZFJlc3VsdHMsIG1ldGFkYXRhRXhwb3J0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVyc0FuZFJlc3VsdHM7XG59XG5mdW5jdGlvbiBwcmVyZW5kZXJWaWV3cG9ydCh2aWV3cG9ydEl0ZW1zKSB7XG4gICAgLy8gSWYgdGhlIGluZGV4IGlzIGEgZnVuY3Rpb24gdGhlbiBpdCBpcyBhIHJlc29sdmVyIGFuZCB0aGUgbmV4dCBzbG90XG4gICAgLy8gaXMgdGhlIGNvcnJlc3BvbmRpbmcgcmVzdWx0LiBJZiB0aGUgaW5kZXggaXMgbm90IGEgZnVuY3Rpb24gaXQgaXMgdGhlIHJlc3VsdFxuICAgIC8vIGl0c2VsZi5cbiAgICBjb25zdCByZXNvbHZlcnNBbmRSZXN1bHRzID0gW107XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHZpZXdwb3J0SXRlbXMubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCB2aWV3cG9ydEV4cG9ydCA9IHZpZXdwb3J0SXRlbXNbaV07XG4gICAgICAgIGdldFJlc3VsdChyZXNvbHZlcnNBbmRSZXN1bHRzLCB2aWV3cG9ydEV4cG9ydCk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlcnNBbmRSZXN1bHRzO1xufVxuZnVuY3Rpb24gZ2V0UmVzdWx0KHJlc29sdmVyc0FuZFJlc3VsdHMsIGV4cG9ydEZvclJlc3VsdCkge1xuICAgIGlmICh0eXBlb2YgZXhwb3J0Rm9yUmVzdWx0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGV4cG9ydEZvclJlc3VsdChuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnJlc29sdmVyc0FuZFJlc3VsdHMucHVzaChyZXNvbHZlKSkpO1xuICAgICAgICByZXNvbHZlcnNBbmRSZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgIC8vIHNpbmNlIHdlIGVhZ2VyIGV4ZWN1dGUgZ2VuZXJhdGVNZXRhZGF0YSBhbmRcbiAgICAgICAgICAgIC8vIHRoZXkgY2FuIHJlamVjdCBhdCBhbnl0aW1lIHdlIG5lZWQgdG8gZW5zdXJlXG4gICAgICAgICAgICAvLyB3ZSBhdHRhY2ggdGhlIGNhdGNoIGhhbmRsZXIgcmlnaHQgYXdheSB0b1xuICAgICAgICAgICAgLy8gcHJldmVudCB1bmhhbmRsZWQgcmVqZWN0aW9ucyBjcmFzaGluZyB0aGUgcHJvY2Vzc1xuICAgICAgICAgICAgcmVzdWx0LmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgX19uZXh0RXJyb3I6IGVyclxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGV4cG9ydEZvclJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmVzb2x2ZXJzQW5kUmVzdWx0cy5wdXNoKGV4cG9ydEZvclJlc3VsdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZXJzQW5kUmVzdWx0cy5wdXNoKG51bGwpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHJlc29sdmVQZW5kaW5nUmVzdWx0KHBhcmVudFJlc3VsdCwgcmVzb2x2ZVBhcmVudFJlc3VsdCkge1xuICAgIC8vIEluIGRldiB3ZSBjbG9uZSBhbmQgZnJlZXplIHRvIHByZXZlbnQgcmVseWluZyBvbiBtdXRhdGluZyByZXNvbHZlZE1ldGFkYXRhIGRpcmVjdGx5LlxuICAgIC8vIEluIHByb2Qgd2UganVzdCBwYXNzIHJlc29sdmVkTWV0YWRhdGEgdGhyb3VnaCB3aXRob3V0IGFueSBjb3B5aW5nLlxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIERlZXBSZWFkb25seTxUPiBpcyBieSBkZWZpbml0aW9uIG5vdCBhc3NpZ25hYmxlIHRvIFRcbiAgICAgICAgLy8gSW5zdGVhZCwgd2Ugc2hvdWxkIG9ubHkgYWNjZXB0IERlZXBSZWFkb25seTxSZXNvbHZlZFR5cGU+XG4gICAgICAgIHBhcmVudFJlc3VsdCA9IHJlcXVpcmUoJy4uLy4uL3NoYXJlZC9saWIvZGVlcC1mcmVlemUnKS5kZWVwRnJlZXplKHJlcXVpcmUoJy4vY2xvbmUtbWV0YWRhdGEnKS5jbG9uZU1ldGFkYXRhKHBhcmVudFJlc3VsdCkpO1xuICAgIH1cbiAgICByZXNvbHZlUGFyZW50UmVzdWx0KHBhcmVudFJlc3VsdCk7XG59XG5hc3luYyBmdW5jdGlvbiBhY2N1bXVsYXRlTWV0YWRhdGEocm91dGUsIG1ldGFkYXRhSXRlbXMsIHBhdGhuYW1lLCBtZXRhZGF0YUNvbnRleHQpIHtcbiAgICBsZXQgcmVzb2x2ZWRNZXRhZGF0YSA9ICgwLCBfZGVmYXVsdG1ldGFkYXRhLmNyZWF0ZURlZmF1bHRNZXRhZGF0YSkoKTtcbiAgICBsZXQgdGl0bGVUZW1wbGF0ZXMgPSB7XG4gICAgICAgIHRpdGxlOiBudWxsLFxuICAgICAgICB0d2l0dGVyOiBudWxsLFxuICAgICAgICBvcGVuR3JhcGg6IG51bGxcbiAgICB9O1xuICAgIGNvbnN0IGJ1aWxkU3RhdGUgPSB7XG4gICAgICAgIHdhcm5pbmdzOiBuZXcgU2V0KClcbiAgICB9O1xuICAgIGxldCBmYXZpY29uO1xuICAgIC8vIENvbGxlY3QgdGhlIHN0YXRpYyBpY29ucyBpbiB0aGUgbW9zdCBsZWFmIG5vZGUsXG4gICAgLy8gc2luY2Ugd2UgZG9uJ3QgY29sbGVjdCBhbGwgdGhlIHN0YXRpYyBtZXRhZGF0YSBpY29ucyBpbiB0aGUgcGFyZW50IHNlZ21lbnRzLlxuICAgIGNvbnN0IGxlYWZTZWdtZW50U3RhdGljSWNvbnMgPSB7XG4gICAgICAgIGljb246IFtdLFxuICAgICAgICBhcHBsZTogW11cbiAgICB9O1xuICAgIGNvbnN0IHJlc29sdmVyc0FuZFJlc3VsdHMgPSBwcmVyZW5kZXJNZXRhZGF0YShtZXRhZGF0YUl0ZW1zKTtcbiAgICBsZXQgcmVzdWx0SW5kZXggPSAwO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBtZXRhZGF0YUl0ZW1zLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdmFyIF9zdGF0aWNGaWxlc01ldGFkYXRhX2ljb247XG4gICAgICAgIGNvbnN0IHN0YXRpY0ZpbGVzTWV0YWRhdGEgPSBtZXRhZGF0YUl0ZW1zW2ldWzFdO1xuICAgICAgICAvLyBUcmVhdCBmYXZpY29uIGFzIHNwZWNpYWwgY2FzZSwgaXQgc2hvdWxkIGJlIHRoZSBmaXJzdCBpY29uIGluIHRoZSBsaXN0XG4gICAgICAgIC8vIGkgPD0gMSByZXByZXNlbnRzIHJvb3QgbGF5b3V0LCBhbmQgaWYgY3VycmVudCBwYWdlIGlzIGFsc28gYXQgcm9vdFxuICAgICAgICBpZiAoaSA8PSAxICYmIGlzRmF2aWNvbihzdGF0aWNGaWxlc01ldGFkYXRhID09IG51bGwgPyB2b2lkIDAgOiAoX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbiA9IHN0YXRpY0ZpbGVzTWV0YWRhdGEuaWNvbikgPT0gbnVsbCA/IHZvaWQgMCA6IF9zdGF0aWNGaWxlc01ldGFkYXRhX2ljb25bMF0pKSB7XG4gICAgICAgICAgICB2YXIgX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbjE7XG4gICAgICAgICAgICBjb25zdCBpY29uTW9kID0gc3RhdGljRmlsZXNNZXRhZGF0YSA9PSBudWxsID8gdm9pZCAwIDogKF9zdGF0aWNGaWxlc01ldGFkYXRhX2ljb24xID0gc3RhdGljRmlsZXNNZXRhZGF0YS5pY29uKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbjEuc2hpZnQoKTtcbiAgICAgICAgICAgIGlmIChpID09PSAwKSBmYXZpY29uID0gaWNvbk1vZDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGVuZGluZ01ldGFkYXRhID0gcmVzb2x2ZXJzQW5kUmVzdWx0c1tyZXN1bHRJbmRleCsrXTtcbiAgICAgICAgaWYgKHR5cGVvZiBwZW5kaW5nTWV0YWRhdGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgbWV0YWRhdGEgaXRlbSBoYWQgYSBgZ2VuZXJhdGVNZXRhZGF0YWAgYW5kXG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHByb3ZpZGUgdGhlIGN1cnJlbnRseSByZXNvbHZlZCBtZXRhZGF0YVxuICAgICAgICAgICAgLy8gdG8gaXQgYmVmb3JlIHdlIGNvbnRpbnVlO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZVBhcmVudE1ldGFkYXRhID0gcGVuZGluZ01ldGFkYXRhO1xuICAgICAgICAgICAgLy8gd2Uga25vdyB0aGF0IHRoZSBuZXh0IGl0ZW0gaXMgYSByZXN1bHQgaWYgdGhpcyBpdGVtXG4gICAgICAgICAgICAvLyB3YXMgYSByZXNvbHZlclxuICAgICAgICAgICAgcGVuZGluZ01ldGFkYXRhID0gcmVzb2x2ZXJzQW5kUmVzdWx0c1tyZXN1bHRJbmRleCsrXTtcbiAgICAgICAgICAgIHJlc29sdmVQZW5kaW5nUmVzdWx0KHJlc29sdmVkTWV0YWRhdGEsIHJlc29sdmVQYXJlbnRNZXRhZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBpdGVtIHdhcyBlaXRoZXIgbnVsbCBvciBhIHN0YXRpYyBleHBvcnRcbiAgICAgICAgbGV0IG1ldGFkYXRhO1xuICAgICAgICBpZiAoaXNQcm9taXNlTGlrZShwZW5kaW5nTWV0YWRhdGEpKSB7XG4gICAgICAgICAgICBtZXRhZGF0YSA9IGF3YWl0IHBlbmRpbmdNZXRhZGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1ldGFkYXRhID0gcGVuZGluZ01ldGFkYXRhO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmVkTWV0YWRhdGEgPSBhd2FpdCBtZXJnZU1ldGFkYXRhKHJvdXRlLCBwYXRobmFtZSwge1xuICAgICAgICAgICAgdGFyZ2V0OiByZXNvbHZlZE1ldGFkYXRhLFxuICAgICAgICAgICAgc291cmNlOiBtZXRhZGF0YSxcbiAgICAgICAgICAgIG1ldGFkYXRhQ29udGV4dCxcbiAgICAgICAgICAgIHN0YXRpY0ZpbGVzTWV0YWRhdGEsXG4gICAgICAgICAgICB0aXRsZVRlbXBsYXRlcyxcbiAgICAgICAgICAgIGJ1aWxkU3RhdGUsXG4gICAgICAgICAgICBsZWFmU2VnbWVudFN0YXRpY0ljb25zXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBJZiB0aGUgbGF5b3V0IGlzIHRoZSBzYW1lIGxheWVyIHdpdGggcGFnZSwgc2tpcCB0aGUgbGVhZiBsYXlvdXQgYW5kIGxlYWYgcGFnZVxuICAgICAgICAvLyBUaGUgbGVhZiBsYXlvdXQgYW5kIHBhZ2UgYXJlIHRoZSBsYXN0IHR3byBpdGVtc1xuICAgICAgICBpZiAoaSA8IG1ldGFkYXRhSXRlbXMubGVuZ3RoIC0gMikge1xuICAgICAgICAgICAgdmFyIF9yZXNvbHZlZE1ldGFkYXRhX3RpdGxlLCBfcmVzb2x2ZWRNZXRhZGF0YV9vcGVuR3JhcGgsIF9yZXNvbHZlZE1ldGFkYXRhX3R3aXR0ZXI7XG4gICAgICAgICAgICB0aXRsZVRlbXBsYXRlcyA9IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogKChfcmVzb2x2ZWRNZXRhZGF0YV90aXRsZSA9IHJlc29sdmVkTWV0YWRhdGEudGl0bGUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZWRNZXRhZGF0YV90aXRsZS50ZW1wbGF0ZSkgfHwgbnVsbCxcbiAgICAgICAgICAgICAgICBvcGVuR3JhcGg6ICgoX3Jlc29sdmVkTWV0YWRhdGFfb3BlbkdyYXBoID0gcmVzb2x2ZWRNZXRhZGF0YS5vcGVuR3JhcGgpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZWRNZXRhZGF0YV9vcGVuR3JhcGgudGl0bGUudGVtcGxhdGUpIHx8IG51bGwsXG4gICAgICAgICAgICAgICAgdHdpdHRlcjogKChfcmVzb2x2ZWRNZXRhZGF0YV90d2l0dGVyID0gcmVzb2x2ZWRNZXRhZGF0YS50d2l0dGVyKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc29sdmVkTWV0YWRhdGFfdHdpdHRlci50aXRsZS50ZW1wbGF0ZSkgfHwgbnVsbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobGVhZlNlZ21lbnRTdGF0aWNJY29ucy5pY29uLmxlbmd0aCA+IDAgfHwgbGVhZlNlZ21lbnRTdGF0aWNJY29ucy5hcHBsZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghcmVzb2x2ZWRNZXRhZGF0YS5pY29ucykge1xuICAgICAgICAgICAgcmVzb2x2ZWRNZXRhZGF0YS5pY29ucyA9IHtcbiAgICAgICAgICAgICAgICBpY29uOiBbXSxcbiAgICAgICAgICAgICAgICBhcHBsZTogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAobGVhZlNlZ21lbnRTdGF0aWNJY29ucy5pY29uLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZE1ldGFkYXRhLmljb25zLmljb24udW5zaGlmdCguLi5sZWFmU2VnbWVudFN0YXRpY0ljb25zLmljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlYWZTZWdtZW50U3RhdGljSWNvbnMuYXBwbGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkTWV0YWRhdGEuaWNvbnMuYXBwbGUudW5zaGlmdCguLi5sZWFmU2VnbWVudFN0YXRpY0ljb25zLmFwcGxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBPbmx5IGxvZyB3YXJuaW5ncyBpZiB0aGVyZSBhcmUgYW55LCBhbmQgb25seSBvbmNlIGFmdGVyIHRoZSBtZXRhZGF0YSByZXNvbHZpbmcgcHJvY2VzcyBpcyBmaW5pc2hlZFxuICAgIGlmIChidWlsZFN0YXRlLndhcm5pbmdzLnNpemUgPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3Qgd2FybmluZyBvZiBidWlsZFN0YXRlLndhcm5pbmdzKXtcbiAgICAgICAgICAgIF9sb2cud2Fybih3YXJuaW5nKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcG9zdFByb2Nlc3NNZXRhZGF0YShyZXNvbHZlZE1ldGFkYXRhLCBmYXZpY29uLCB0aXRsZVRlbXBsYXRlcywgbWV0YWRhdGFDb250ZXh0KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGFjY3VtdWxhdGVWaWV3cG9ydCh2aWV3cG9ydEl0ZW1zKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRWaWV3cG9ydCA9ICgwLCBfZGVmYXVsdG1ldGFkYXRhLmNyZWF0ZURlZmF1bHRWaWV3cG9ydCkoKTtcbiAgICBjb25zdCByZXNvbHZlcnNBbmRSZXN1bHRzID0gcHJlcmVuZGVyVmlld3BvcnQodmlld3BvcnRJdGVtcyk7XG4gICAgbGV0IGkgPSAwO1xuICAgIHdoaWxlKGkgPCByZXNvbHZlcnNBbmRSZXN1bHRzLmxlbmd0aCl7XG4gICAgICAgIGxldCBwZW5kaW5nVmlld3BvcnQgPSByZXNvbHZlcnNBbmRSZXN1bHRzW2krK107XG4gICAgICAgIGlmICh0eXBlb2YgcGVuZGluZ1ZpZXdwb3J0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyB0aGlzIHZpZXdwb3J0IGl0ZW0gaGFkIGEgYGdlbmVyYXRlVmlld3BvcnRgIGFuZFxuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBwcm92aWRlIHRoZSBjdXJyZW50bHkgcmVzb2x2ZWQgdmlld3BvcnRcbiAgICAgICAgICAgIC8vIHRvIGl0IGJlZm9yZSB3ZSBjb250aW51ZTtcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVQYXJlbnRWaWV3cG9ydCA9IHBlbmRpbmdWaWV3cG9ydDtcbiAgICAgICAgICAgIC8vIHdlIGtub3cgdGhhdCB0aGUgbmV4dCBpdGVtIGlzIGEgcmVzdWx0IGlmIHRoaXMgaXRlbVxuICAgICAgICAgICAgLy8gd2FzIGEgcmVzb2x2ZXJcbiAgICAgICAgICAgIHBlbmRpbmdWaWV3cG9ydCA9IHJlc29sdmVyc0FuZFJlc3VsdHNbaSsrXTtcbiAgICAgICAgICAgIHJlc29sdmVQZW5kaW5nUmVzdWx0KHJlc29sdmVkVmlld3BvcnQsIHJlc29sdmVQYXJlbnRWaWV3cG9ydCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBpdGVtIHdhcyBlaXRoZXIgbnVsbCBvciBhIHN0YXRpYyBleHBvcnRcbiAgICAgICAgbGV0IHZpZXdwb3J0O1xuICAgICAgICBpZiAoaXNQcm9taXNlTGlrZShwZW5kaW5nVmlld3BvcnQpKSB7XG4gICAgICAgICAgICB2aWV3cG9ydCA9IGF3YWl0IHBlbmRpbmdWaWV3cG9ydDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZpZXdwb3J0ID0gcGVuZGluZ1ZpZXdwb3J0O1xuICAgICAgICB9XG4gICAgICAgIG1lcmdlVmlld3BvcnQoe1xuICAgICAgICAgICAgdGFyZ2V0OiByZXNvbHZlZFZpZXdwb3J0LFxuICAgICAgICAgICAgc291cmNlOiB2aWV3cG9ydFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkVmlld3BvcnQ7XG59XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlTWV0YWRhdGEodHJlZSwgcGF0aG5hbWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlLCBtZXRhZGF0YUNvbnRleHQpIHtcbiAgICBjb25zdCBtZXRhZGF0YUl0ZW1zID0gYXdhaXQgcmVzb2x2ZU1ldGFkYXRhSXRlbXModHJlZSwgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpO1xuICAgIHJldHVybiBhY2N1bXVsYXRlTWV0YWRhdGEod29ya1N0b3JlLnJvdXRlLCBtZXRhZGF0YUl0ZW1zLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVWaWV3cG9ydCh0cmVlLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHZpZXdwb3J0SXRlbXMgPSBhd2FpdCByZXNvbHZlVmlld3BvcnRJdGVtcyh0cmVlLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdGVWaWV3cG9ydCh2aWV3cG9ydEl0ZW1zKTtcbn1cbmZ1bmN0aW9uIGlzUHJvbWlzZUxpa2UodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1tZXRhZGF0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolve-metadata.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.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 resolveAlternates: function() {\n return resolveAlternates;\n },\n resolveAppLinks: function() {\n return resolveAppLinks;\n },\n resolveAppleWebApp: function() {\n return resolveAppleWebApp;\n },\n resolveFacebook: function() {\n return resolveFacebook;\n },\n resolveItunes: function() {\n return resolveItunes;\n },\n resolvePagination: function() {\n return resolvePagination;\n },\n resolveRobots: function() {\n return resolveRobots;\n },\n resolveThemeColor: function() {\n return resolveThemeColor;\n },\n resolveVerification: function() {\n return resolveVerification;\n }\n});\nconst _utils = __webpack_require__(/*! ../generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _resolveurl = __webpack_require__(/*! ./resolve-url */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\");\nfunction resolveAlternateUrl(url, metadataBase, pathname, metadataContext) {\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 const newUrl = new URL(pathname, url);\n url.searchParams.forEach((value, key)=>newUrl.searchParams.set(key, value));\n url = newUrl;\n }\n return (0, _resolveurl.resolveAbsoluteUrlWithPathname)(url, metadataBase, pathname, metadataContext);\n}\nconst resolveThemeColor = (themeColor)=>{\n var _resolveAsArrayOrUndefined;\n if (!themeColor) return null;\n const themeColorDescriptors = [];\n (_resolveAsArrayOrUndefined = (0, _utils.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};\nasync function resolveUrlValuesOfObject(obj, metadataBase, pathname, metadataContext) {\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 const pathnameForUrl = await pathname;\n result[key] = [\n {\n url: resolveAlternateUrl(value, metadataBase, pathnameForUrl, metadataContext)\n }\n ];\n } else if (value && value.length) {\n result[key] = [];\n const pathnameForUrl = await pathname;\n value.forEach((item, index)=>{\n const url = resolveAlternateUrl(item.url, metadataBase, pathnameForUrl, metadataContext);\n result[key][index] = {\n url,\n title: item.title\n };\n });\n }\n }\n return result;\n}\nasync function resolveCanonicalUrl(urlOrDescriptor, metadataBase, pathname, metadataContext) {\n if (!urlOrDescriptor) return null;\n const url = typeof urlOrDescriptor === 'string' || urlOrDescriptor instanceof URL ? urlOrDescriptor : urlOrDescriptor.url;\n const pathnameForUrl = await pathname;\n // Return string url because structureClone can't handle URL instance\n return {\n url: resolveAlternateUrl(url, metadataBase, pathnameForUrl, metadataContext)\n };\n}\nconst resolveAlternates = async (alternates, metadataBase, pathname, context)=>{\n if (!alternates) return null;\n const canonical = await resolveCanonicalUrl(alternates.canonical, metadataBase, pathname, context);\n const languages = await resolveUrlValuesOfObject(alternates.languages, metadataBase, pathname, context);\n const media = await resolveUrlValuesOfObject(alternates.media, metadataBase, pathname, context);\n const types = await resolveUrlValuesOfObject(alternates.types, metadataBase, pathname, context);\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, _utils.resolveAsArrayOrUndefined)(verification.other[otherKey]);\n if (otherValue) res.other[otherKey] = otherValue;\n }\n } else res[key] = (0, _utils.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, _utils.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, _utils.resolveAsArrayOrUndefined)(appLinks[key]);\n }\n return appLinks;\n};\nconst resolveItunes = async (itunes, metadataBase, pathname, context)=>{\n if (!itunes) return null;\n return {\n appId: itunes.appId,\n appArgument: itunes.appArgument ? resolveAlternateUrl(itunes.appArgument, metadataBase, await pathname, context) : undefined\n };\n};\nconst resolveFacebook = (facebook)=>{\n if (!facebook) return null;\n return {\n appId: facebook.appId,\n admins: (0, _utils.resolveAsArrayOrUndefined)(facebook.admins)\n };\n};\nconst resolvePagination = async (pagination, metadataBase, pathname, context)=>{\n return {\n previous: (pagination == null ? void 0 : pagination.previous) ? resolveAlternateUrl(pagination.previous, metadataBase, await pathname, context) : null,\n next: (pagination == null ? void 0 : pagination.next) ? resolveAlternateUrl(pagination.next, metadataBase, await pathname, context) : null\n };\n};\n\n//# sourceMappingURL=resolve-basics.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1iYXNpY3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBVUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCxJQUFJLEdBQUcsTUFBTTtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1iYXNpY3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICByZXNvbHZlQWx0ZXJuYXRlczogbnVsbCxcbiAgICByZXNvbHZlQXBwTGlua3M6IG51bGwsXG4gICAgcmVzb2x2ZUFwcGxlV2ViQXBwOiBudWxsLFxuICAgIHJlc29sdmVGYWNlYm9vazogbnVsbCxcbiAgICByZXNvbHZlSXR1bmVzOiBudWxsLFxuICAgIHJlc29sdmVQYWdpbmF0aW9uOiBudWxsLFxuICAgIHJlc29sdmVSb2JvdHM6IG51bGwsXG4gICAgcmVzb2x2ZVRoZW1lQ29sb3I6IG51bGwsXG4gICAgcmVzb2x2ZVZlcmlmaWNhdGlvbjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICByZXNvbHZlQWx0ZXJuYXRlczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQWx0ZXJuYXRlcztcbiAgICB9LFxuICAgIHJlc29sdmVBcHBMaW5rczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXBwTGlua3M7XG4gICAgfSxcbiAgICByZXNvbHZlQXBwbGVXZWJBcHA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFwcGxlV2ViQXBwO1xuICAgIH0sXG4gICAgcmVzb2x2ZUZhY2Vib29rOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVGYWNlYm9vaztcbiAgICB9LFxuICAgIHJlc29sdmVJdHVuZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUl0dW5lcztcbiAgICB9LFxuICAgIHJlc29sdmVQYWdpbmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVQYWdpbmF0aW9uO1xuICAgIH0sXG4gICAgcmVzb2x2ZVJvYm90czogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlUm9ib3RzO1xuICAgIH0sXG4gICAgcmVzb2x2ZVRoZW1lQ29sb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVRoZW1lQ29sb3I7XG4gICAgfSxcbiAgICByZXNvbHZlVmVyaWZpY2F0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVWZXJpZmljYXRpb247XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vZ2VuZXJhdGUvdXRpbHNcIik7XG5jb25zdCBfcmVzb2x2ZXVybCA9IHJlcXVpcmUoXCIuL3Jlc29sdmUtdXJsXCIpO1xuZnVuY3Rpb24gcmVzb2x2ZUFsdGVybmF0ZVVybCh1cmwsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCkge1xuICAgIC8vIElmIGFsdGVyIG5hdGl2ZSB1cmwgaXMgYW4gVVJMIGluc3RhbmNlLFxuICAgIC8vIHdlIHRyZWF0IGl0IGFzIGEgVVJMIGJhc2UgYW5kIHJlc29sdmUgd2l0aCBjdXJyZW50IHBhdGhuYW1lXG4gICAgaWYgKHVybCBpbnN0YW5jZW9mIFVSTCkge1xuICAgICAgICBjb25zdCBuZXdVcmwgPSBuZXcgVVJMKHBhdGhuYW1lLCB1cmwpO1xuICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpPT5uZXdVcmwuc2VhcmNoUGFyYW1zLnNldChrZXksIHZhbHVlKSk7XG4gICAgICAgIHVybCA9IG5ld1VybDtcbiAgICB9XG4gICAgcmV0dXJuICgwLCBfcmVzb2x2ZXVybC5yZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWUpKHVybCwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KTtcbn1cbmNvbnN0IHJlc29sdmVUaGVtZUNvbG9yID0gKHRoZW1lQ29sb3IpPT57XG4gICAgdmFyIF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkO1xuICAgIGlmICghdGhlbWVDb2xvcikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgdGhlbWVDb2xvckRlc2NyaXB0b3JzID0gW107XG4gICAgKF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKSh0aGVtZUNvbG9yKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkLmZvckVhY2goKGRlc2NyaXB0b3IpPT57XG4gICAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvciA9PT0gJ3N0cmluZycpIHRoZW1lQ29sb3JEZXNjcmlwdG9ycy5wdXNoKHtcbiAgICAgICAgICAgIGNvbG9yOiBkZXNjcmlwdG9yXG4gICAgICAgIH0pO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgZGVzY3JpcHRvciA9PT0gJ29iamVjdCcpIHRoZW1lQ29sb3JEZXNjcmlwdG9ycy5wdXNoKHtcbiAgICAgICAgICAgIGNvbG9yOiBkZXNjcmlwdG9yLmNvbG9yLFxuICAgICAgICAgICAgbWVkaWE6IGRlc2NyaXB0b3IubWVkaWFcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoZW1lQ29sb3JEZXNjcmlwdG9ycztcbn07XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlVXJsVmFsdWVzT2ZPYmplY3Qob2JqLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBtZXRhZGF0YUNvbnRleHQpIHtcbiAgICBpZiAoIW9iaikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSl7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHZhbHVlIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRobmFtZUZvclVybCA9IGF3YWl0IHBhdGhuYW1lO1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB1cmw6IHJlc29sdmVBbHRlcm5hdGVVcmwodmFsdWUsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWVGb3JVcmwsIG1ldGFkYXRhQ29udGV4dClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhuYW1lRm9yVXJsID0gYXdhaXQgcGF0aG5hbWU7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChpdGVtLCBpbmRleCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSByZXNvbHZlQWx0ZXJuYXRlVXJsKGl0ZW0udXJsLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lRm9yVXJsLCBtZXRhZGF0YUNvbnRleHQpO1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldW2luZGV4XSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUNhbm9uaWNhbFVybCh1cmxPckRlc2NyaXB0b3IsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCkge1xuICAgIGlmICghdXJsT3JEZXNjcmlwdG9yKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB1cmwgPSB0eXBlb2YgdXJsT3JEZXNjcmlwdG9yID09PSAnc3RyaW5nJyB8fCB1cmxPckRlc2NyaXB0b3IgaW5zdGFuY2VvZiBVUkwgPyB1cmxPckRlc2NyaXB0b3IgOiB1cmxPckRlc2NyaXB0b3IudXJsO1xuICAgIGNvbnN0IHBhdGhuYW1lRm9yVXJsID0gYXdhaXQgcGF0aG5hbWU7XG4gICAgLy8gUmV0dXJuIHN0cmluZyB1cmwgYmVjYXVzZSBzdHJ1Y3R1cmVDbG9uZSBjYW4ndCBoYW5kbGUgVVJMIGluc3RhbmNlXG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXJsOiByZXNvbHZlQWx0ZXJuYXRlVXJsKHVybCwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZUZvclVybCwgbWV0YWRhdGFDb250ZXh0KVxuICAgIH07XG59XG5jb25zdCByZXNvbHZlQWx0ZXJuYXRlcyA9IGFzeW5jIChhbHRlcm5hdGVzLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KT0+e1xuICAgIGlmICghYWx0ZXJuYXRlcykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgY2Fub25pY2FsID0gYXdhaXQgcmVzb2x2ZUNhbm9uaWNhbFVybChhbHRlcm5hdGVzLmNhbm9uaWNhbCwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgY29udGV4dCk7XG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gYXdhaXQgcmVzb2x2ZVVybFZhbHVlc09mT2JqZWN0KGFsdGVybmF0ZXMubGFuZ3VhZ2VzLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KTtcbiAgICBjb25zdCBtZWRpYSA9IGF3YWl0IHJlc29sdmVVcmxWYWx1ZXNPZk9iamVjdChhbHRlcm5hdGVzLm1lZGlhLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KTtcbiAgICBjb25zdCB0eXBlcyA9IGF3YWl0IHJlc29sdmVVcmxWYWx1ZXNPZk9iamVjdChhbHRlcm5hdGVzLnR5cGVzLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIGNhbm9uaWNhbCxcbiAgICAgICAgbGFuZ3VhZ2VzLFxuICAgICAgICBtZWRpYSxcbiAgICAgICAgdHlwZXNcbiAgICB9O1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuY29uc3Qgcm9ib3RzS2V5cyA9IFtcbiAgICAnbm9hcmNoaXZlJyxcbiAgICAnbm9zbmlwcGV0JyxcbiAgICAnbm9pbWFnZWluZGV4JyxcbiAgICAnbm9jYWNoZScsXG4gICAgJ25vdHJhbnNsYXRlJyxcbiAgICAnaW5kZXhpZmVtYmVkZGVkJyxcbiAgICAnbm9zaXRlbGlua3NzZWFyY2hib3gnLFxuICAgICd1bmF2YWlsYWJsZV9hZnRlcicsXG4gICAgJ21heC12aWRlby1wcmV2aWV3JyxcbiAgICAnbWF4LWltYWdlLXByZXZpZXcnLFxuICAgICdtYXgtc25pcHBldCdcbl07XG5jb25zdCByZXNvbHZlUm9ib3RzVmFsdWUgPSAocm9ib3RzKT0+e1xuICAgIGlmICghcm9ib3RzKSByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIHJvYm90cyA9PT0gJ3N0cmluZycpIHJldHVybiByb2JvdHM7XG4gICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgaWYgKHJvYm90cy5pbmRleCkgdmFsdWVzLnB1c2goJ2luZGV4Jyk7XG4gICAgZWxzZSBpZiAodHlwZW9mIHJvYm90cy5pbmRleCA9PT0gJ2Jvb2xlYW4nKSB2YWx1ZXMucHVzaCgnbm9pbmRleCcpO1xuICAgIGlmIChyb2JvdHMuZm9sbG93KSB2YWx1ZXMucHVzaCgnZm9sbG93Jyk7XG4gICAgZWxzZSBpZiAodHlwZW9mIHJvYm90cy5mb2xsb3cgPT09ICdib29sZWFuJykgdmFsdWVzLnB1c2goJ25vZm9sbG93Jyk7XG4gICAgZm9yIChjb25zdCBrZXkgb2Ygcm9ib3RzS2V5cyl7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcm9ib3RzW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2godHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgPyBrZXkgOiBgJHtrZXl9OiR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcy5qb2luKCcsICcpO1xufTtcbmNvbnN0IHJlc29sdmVSb2JvdHMgPSAocm9ib3RzKT0+e1xuICAgIGlmICghcm9ib3RzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBiYXNpYzogcmVzb2x2ZVJvYm90c1ZhbHVlKHJvYm90cyksXG4gICAgICAgIGdvb2dsZUJvdDogdHlwZW9mIHJvYm90cyAhPT0gJ3N0cmluZycgPyByZXNvbHZlUm9ib3RzVmFsdWUocm9ib3RzLmdvb2dsZUJvdCkgOiBudWxsXG4gICAgfTtcbn07XG5jb25zdCBWZXJpZmljYXRpb25LZXlzID0gW1xuICAgICdnb29nbGUnLFxuICAgICd5YWhvbycsXG4gICAgJ3lhbmRleCcsXG4gICAgJ21lJyxcbiAgICAnb3RoZXInXG5dO1xuY29uc3QgcmVzb2x2ZVZlcmlmaWNhdGlvbiA9ICh2ZXJpZmljYXRpb24pPT57XG4gICAgaWYgKCF2ZXJpZmljYXRpb24pIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHJlcyA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIFZlcmlmaWNhdGlvbktleXMpe1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZlcmlmaWNhdGlvbltrZXldO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdvdGhlcicpIHtcbiAgICAgICAgICAgICAgICByZXMub3RoZXIgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IoY29uc3Qgb3RoZXJLZXkgaW4gdmVyaWZpY2F0aW9uLm90aGVyKXtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3RoZXJWYWx1ZSA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkodmVyaWZpY2F0aW9uLm90aGVyW290aGVyS2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvdGhlclZhbHVlKSByZXMub3RoZXJbb3RoZXJLZXldID0gb3RoZXJWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgcmVzW2tleV0gPSAoMCwgX3V0aWxzLnJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQpKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufTtcbmNvbnN0IHJlc29sdmVBcHBsZVdlYkFwcCA9IChhcHBXZWJBcHApPT57XG4gICAgdmFyIF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkO1xuICAgIGlmICghYXBwV2ViQXBwKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoYXBwV2ViQXBwID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjYXBhYmxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0dXBJbWFnZXMgPSBhcHBXZWJBcHAuc3RhcnR1cEltYWdlID8gKF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShhcHBXZWJBcHAuc3RhcnR1cEltYWdlKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkLm1hcCgoaXRlbSk9PnR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyA/IHtcbiAgICAgICAgICAgIHVybDogaXRlbVxuICAgICAgICB9IDogaXRlbSkgOiBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNhcGFibGU6ICdjYXBhYmxlJyBpbiBhcHBXZWJBcHAgPyAhIWFwcFdlYkFwcC5jYXBhYmxlIDogdHJ1ZSxcbiAgICAgICAgdGl0bGU6IGFwcFdlYkFwcC50aXRsZSB8fCBudWxsLFxuICAgICAgICBzdGFydHVwSW1hZ2U6IHN0YXJ0dXBJbWFnZXMsXG4gICAgICAgIHN0YXR1c0JhclN0eWxlOiBhcHBXZWJBcHAuc3RhdHVzQmFyU3R5bGUgfHwgJ2RlZmF1bHQnXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlQXBwTGlua3MgPSAoYXBwTGlua3MpPT57XG4gICAgaWYgKCFhcHBMaW5rcykgcmV0dXJuIG51bGw7XG4gICAgZm9yKGNvbnN0IGtleSBpbiBhcHBMaW5rcyl7XG4gICAgICAgIC8vIEB0cy1pZ25vcmUgLy8gVE9ETzogdHlwZSBpbmZlclxuICAgICAgICBhcHBMaW5rc1trZXldID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShhcHBMaW5rc1trZXldKTtcbiAgICB9XG4gICAgcmV0dXJuIGFwcExpbmtzO1xufTtcbmNvbnN0IHJlc29sdmVJdHVuZXMgPSBhc3luYyAoaXR1bmVzLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KT0+e1xuICAgIGlmICghaXR1bmVzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcHBJZDogaXR1bmVzLmFwcElkLFxuICAgICAgICBhcHBBcmd1bWVudDogaXR1bmVzLmFwcEFyZ3VtZW50ID8gcmVzb2x2ZUFsdGVybmF0ZVVybChpdHVuZXMuYXBwQXJndW1lbnQsIG1ldGFkYXRhQmFzZSwgYXdhaXQgcGF0aG5hbWUsIGNvbnRleHQpIDogdW5kZWZpbmVkXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlRmFjZWJvb2sgPSAoZmFjZWJvb2spPT57XG4gICAgaWYgKCFmYWNlYm9vaykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBwSWQ6IGZhY2Vib29rLmFwcElkLFxuICAgICAgICBhZG1pbnM6ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkoZmFjZWJvb2suYWRtaW5zKVxuICAgIH07XG59O1xuY29uc3QgcmVzb2x2ZVBhZ2luYXRpb24gPSBhc3luYyAocGFnaW5hdGlvbiwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgY29udGV4dCk9PntcbiAgICByZXR1cm4ge1xuICAgICAgICBwcmV2aW91czogKHBhZ2luYXRpb24gPT0gbnVsbCA/IHZvaWQgMCA6IHBhZ2luYXRpb24ucHJldmlvdXMpID8gcmVzb2x2ZUFsdGVybmF0ZVVybChwYWdpbmF0aW9uLnByZXZpb3VzLCBtZXRhZGF0YUJhc2UsIGF3YWl0IHBhdGhuYW1lLCBjb250ZXh0KSA6IG51bGwsXG4gICAgICAgIG5leHQ6IChwYWdpbmF0aW9uID09IG51bGwgPyB2b2lkIDAgOiBwYWdpbmF0aW9uLm5leHQpID8gcmVzb2x2ZUFsdGVybmF0ZVVybChwYWdpbmF0aW9uLm5leHQsIG1ldGFkYXRhQmFzZSwgYXdhaXQgcGF0aG5hbWUsIGNvbnRleHQpIDogbnVsbFxuICAgIH07XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLWJhc2ljcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.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 resolveIcon: function() {\n return resolveIcon;\n },\n resolveIcons: function() {\n return resolveIcons;\n }\n});\nconst _utils = __webpack_require__(/*! ../generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _resolveurl = __webpack_require__(/*! ./resolve-url */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\");\nconst _constants = __webpack_require__(/*! ../constants */ \"(rsc)/./node_modules/next/dist/lib/metadata/constants.js\");\nfunction resolveIcon(icon) {\n if ((0, _resolveurl.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, _resolveurl.isStringOrURL)(icons)) {\n resolved.icon = [\n resolveIcon(icons)\n ];\n } else {\n for (const key of _constants.IconKeys){\n const values = (0, _utils.resolveAsArrayOrUndefined)(icons[key]);\n if (values) resolved[key] = values.map(resolveIcon);\n }\n }\n return resolved;\n};\n\n//# sourceMappingURL=resolve-icons.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1pY29ucy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDLG1CQUFtQixtQkFBTyxDQUFDLDhFQUFjO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1pY29ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHJlc29sdmVJY29uOiBudWxsLFxuICAgIHJlc29sdmVJY29uczogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICByZXNvbHZlSWNvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlSWNvbjtcbiAgICB9LFxuICAgIHJlc29sdmVJY29uczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlSWNvbnM7XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vZ2VuZXJhdGUvdXRpbHNcIik7XG5jb25zdCBfcmVzb2x2ZXVybCA9IHJlcXVpcmUoXCIuL3Jlc29sdmUtdXJsXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9jb25zdGFudHNcIik7XG5mdW5jdGlvbiByZXNvbHZlSWNvbihpY29uKSB7XG4gICAgaWYgKCgwLCBfcmVzb2x2ZXVybC5pc1N0cmluZ09yVVJMKShpY29uKSkgcmV0dXJuIHtcbiAgICAgICAgdXJsOiBpY29uXG4gICAgfTtcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGljb24pKSByZXR1cm4gaWNvbjtcbiAgICByZXR1cm4gaWNvbjtcbn1cbmNvbnN0IHJlc29sdmVJY29ucyA9IChpY29ucyk9PntcbiAgICBpZiAoIWljb25zKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZCA9IHtcbiAgICAgICAgaWNvbjogW10sXG4gICAgICAgIGFwcGxlOiBbXVxuICAgIH07XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaWNvbnMpKSB7XG4gICAgICAgIHJlc29sdmVkLmljb24gPSBpY29ucy5tYXAocmVzb2x2ZUljb24pLmZpbHRlcihCb29sZWFuKTtcbiAgICB9IGVsc2UgaWYgKCgwLCBfcmVzb2x2ZXVybC5pc1N0cmluZ09yVVJMKShpY29ucykpIHtcbiAgICAgICAgcmVzb2x2ZWQuaWNvbiA9IFtcbiAgICAgICAgICAgIHJlc29sdmVJY29uKGljb25zKVxuICAgICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIF9jb25zdGFudHMuSWNvbktleXMpe1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShpY29uc1trZXldKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZXMpIHJlc29sdmVkW2tleV0gPSB2YWx1ZXMubWFwKHJlc29sdmVJY29uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLWljb25zLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.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 resolveImages: function() {\n return resolveImages;\n },\n resolveOpenGraph: function() {\n return resolveOpenGraph;\n },\n resolveTwitter: function() {\n return resolveTwitter;\n }\n});\nconst _utils = __webpack_require__(/*! ../generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _resolveurl = __webpack_require__(/*! ./resolve-url */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\");\nconst _resolvetitle = __webpack_require__(/*! ./resolve-title */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js\");\nconst _url = __webpack_require__(/*! ../../url */ \"(rsc)/./node_modules/next/dist/lib/url.js\");\nconst _log = __webpack_require__(/*! ../../../build/output/log */ \"(rsc)/./node_modules/next/dist/build/output/log.js\");\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 resolveAndValidateImage(item, metadataBase, isStaticMetadataRouteFile) {\n if (!item) return undefined;\n const isItemUrl = (0, _resolveurl.isStringOrURL)(item);\n const inputUrl = isItemUrl ? item : item.url;\n if (!inputUrl) return undefined;\n // process.env.VERCEL is set to \"1\" when System Environment Variables are\n // exposed. When exposed, validation is not necessary since we are falling back to\n // process.env.VERCEL_PROJECT_PRODUCTION_URL, process.env.VERCEL_BRANCH_URL, or\n // process.env.VERCEL_URL for the `metadataBase`. process.env.VERCEL is undefined\n // when System Environment Variables are not exposed. When not exposed, we cannot\n // detect in the build environment if the deployment is a Vercel deployment or not.\n //\n // x-ref: https://vercel.com/docs/projects/environment-variables/system-environment-variables#system-environment-variables\n const isUsingVercelSystemEnvironmentVariables = Boolean(process.env.VERCEL);\n const isRelativeUrl = typeof inputUrl === 'string' && !(0, _url.isFullStringUrl)(inputUrl);\n // When no explicit metadataBase is specified by the user, we'll override it with the fallback metadata\n // under the following conditions:\n // - The provided URL is relative (ie ./og-image).\n // - The image is statically generated by Next.js (such as the special `opengraph-image` route)\n // In both cases, we want to ensure that across all environments, the ogImage is a fully qualified URL.\n // In the `opengraph-image` case, since the user isn't explicitly passing a relative path, this ensures\n // the ogImage will be properly discovered across different environments without the user needing to\n // have a bunch of `process.env` checks when defining their `metadataBase`.\n if (isRelativeUrl && (!metadataBase || isStaticMetadataRouteFile)) {\n const fallbackMetadataBase = (0, _resolveurl.getSocialImageMetadataBaseFallback)(metadataBase);\n // When not using Vercel environment variables for URL injection, we aren't able to determine\n // a fallback value for `metadataBase`. For self-hosted setups, we want to warn\n // about this since the only fallback we'll be able to generate is `localhost`.\n // In development, we'll only warn for relative metadata that isn't part of the static\n // metadata conventions (eg `opengraph-image`), as otherwise it's currently very noisy\n // for common cases. Eventually we should remove this warning all together in favor of\n // devtools.\n const shouldWarn = !isUsingVercelSystemEnvironmentVariables && !metadataBase && ( false || !isStaticMetadataRouteFile);\n if (shouldWarn) {\n (0, _log.warnOnce)(`metadataBase property in metadata export is not set for resolving social open graph or twitter images, using \"${fallbackMetadataBase.origin}\". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase`);\n }\n metadataBase = fallbackMetadataBase;\n }\n return isItemUrl ? {\n url: (0, _resolveurl.resolveUrl)(inputUrl, metadataBase)\n } : {\n ...item,\n // Update image descriptor url\n url: (0, _resolveurl.resolveUrl)(inputUrl, metadataBase)\n };\n}\nfunction resolveImages(images, metadataBase, isStaticMetadataRouteFile) {\n const resolvedImages = (0, _utils.resolveAsArrayOrUndefined)(images);\n if (!resolvedImages) return resolvedImages;\n const nonNullableImages = [];\n for (const item of resolvedImages){\n const resolvedItem = resolveAndValidateImage(item, metadataBase, isStaticMetadataRouteFile);\n if (!resolvedItem) continue;\n nonNullableImages.push(resolvedItem);\n }\n return nonNullableImages;\n}\nconst ogTypeToFields = {\n article: OgTypeFields.article,\n book: OgTypeFields.article,\n 'music.song': OgTypeFields.song,\n 'music.album': OgTypeFields.song,\n 'music.playlist': OgTypeFields.playlist,\n 'music.radio_station': OgTypeFields.radio,\n 'video.movie': OgTypeFields.video,\n 'video.episode': OgTypeFields.video\n};\nfunction getFieldsByOgType(ogType) {\n if (!ogType || !(ogType in ogTypeToFields)) return OgTypeFields.basic;\n return ogTypeToFields[ogType].concat(OgTypeFields.basic);\n}\nconst resolveOpenGraph = async (openGraph, metadataBase, pathname, metadataContext, 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 target[key] = value ? (0, _utils.resolveArray)(value) : null;\n }\n }\n target.images = resolveImages(og.images, metadataBase, metadataContext.isStaticMetadataRouteFile);\n }\n const resolved = {\n ...openGraph,\n title: (0, _resolvetitle.resolveTitle)(openGraph.title, titleTemplate)\n };\n resolveProps(resolved, openGraph);\n resolved.url = openGraph.url ? (0, _resolveurl.resolveAbsoluteUrlWithPathname)(openGraph.url, metadataBase, await pathname, metadataContext) : null;\n return resolved;\n};\nconst TwitterBasicInfoKeys = [\n 'site',\n 'siteId',\n 'creator',\n 'creatorId',\n 'description'\n];\nconst resolveTwitter = (twitter, metadataBase, metadataContext, 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, _resolvetitle.resolveTitle)(twitter.title, titleTemplate)\n };\n for (const infoKey of TwitterBasicInfoKeys){\n resolved[infoKey] = twitter[infoKey] || null;\n }\n resolved.images = resolveImages(twitter.images, metadataBase, metadataContext.isStaticMetadataRouteFile);\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, _utils.resolveAsArrayOrUndefined)(resolved.players) || [];\n break;\n }\n case 'app':\n {\n resolved.app = resolved.app || {};\n break;\n }\n case 'summary':\n case 'summary_large_image':\n break;\n default:\n resolved;\n }\n }\n return resolved;\n};\n\n//# sourceMappingURL=resolve-opengraph.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1vcGVuZ3JhcGguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDLHNCQUFzQixtQkFBTyxDQUFDLCtGQUFpQjtBQUMvQyxhQUFhLG1CQUFPLENBQUMsNERBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLHFGQUEyQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5RkFBeUYsTUFBcUM7QUFDOUg7QUFDQSxnSkFBZ0osNEJBQTRCO0FBQzVLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL3Jlc29sdmVycy9yZXNvbHZlLW9wZW5ncmFwaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHJlc29sdmVJbWFnZXM6IG51bGwsXG4gICAgcmVzb2x2ZU9wZW5HcmFwaDogbnVsbCxcbiAgICByZXNvbHZlVHdpdHRlcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICByZXNvbHZlSW1hZ2VzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVJbWFnZXM7XG4gICAgfSxcbiAgICByZXNvbHZlT3BlbkdyYXBoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVPcGVuR3JhcGg7XG4gICAgfSxcbiAgICByZXNvbHZlVHdpdHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVHdpdHRlcjtcbiAgICB9XG59KTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi9nZW5lcmF0ZS91dGlsc1wiKTtcbmNvbnN0IF9yZXNvbHZldXJsID0gcmVxdWlyZShcIi4vcmVzb2x2ZS11cmxcIik7XG5jb25zdCBfcmVzb2x2ZXRpdGxlID0gcmVxdWlyZShcIi4vcmVzb2x2ZS10aXRsZVwiKTtcbmNvbnN0IF91cmwgPSByZXF1aXJlKFwiLi4vLi4vdXJsXCIpO1xuY29uc3QgX2xvZyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9idWlsZC9vdXRwdXQvbG9nXCIpO1xuY29uc3QgT2dUeXBlRmllbGRzID0ge1xuICAgIGFydGljbGU6IFtcbiAgICAgICAgJ2F1dGhvcnMnLFxuICAgICAgICAndGFncydcbiAgICBdLFxuICAgIHNvbmc6IFtcbiAgICAgICAgJ2FsYnVtcycsXG4gICAgICAgICdtdXNpY2lhbnMnXG4gICAgXSxcbiAgICBwbGF5bGlzdDogW1xuICAgICAgICAnYWxidW1zJyxcbiAgICAgICAgJ211c2ljaWFucydcbiAgICBdLFxuICAgIHJhZGlvOiBbXG4gICAgICAgICdjcmVhdG9ycydcbiAgICBdLFxuICAgIHZpZGVvOiBbXG4gICAgICAgICdhY3RvcnMnLFxuICAgICAgICAnZGlyZWN0b3JzJyxcbiAgICAgICAgJ3dyaXRlcnMnLFxuICAgICAgICAndGFncydcbiAgICBdLFxuICAgIGJhc2ljOiBbXG4gICAgICAgICdlbWFpbHMnLFxuICAgICAgICAncGhvbmVOdW1iZXJzJyxcbiAgICAgICAgJ2ZheE51bWJlcnMnLFxuICAgICAgICAnYWx0ZXJuYXRlTG9jYWxlJyxcbiAgICAgICAgJ2F1ZGlvJyxcbiAgICAgICAgJ3ZpZGVvcydcbiAgICBdXG59O1xuZnVuY3Rpb24gcmVzb2x2ZUFuZFZhbGlkYXRlSW1hZ2UoaXRlbSwgbWV0YWRhdGFCYXNlLCBpc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlKSB7XG4gICAgaWYgKCFpdGVtKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGlzSXRlbVVybCA9ICgwLCBfcmVzb2x2ZXVybC5pc1N0cmluZ09yVVJMKShpdGVtKTtcbiAgICBjb25zdCBpbnB1dFVybCA9IGlzSXRlbVVybCA/IGl0ZW0gOiBpdGVtLnVybDtcbiAgICBpZiAoIWlucHV0VXJsKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIC8vIHByb2Nlc3MuZW52LlZFUkNFTCBpcyBzZXQgdG8gXCIxXCIgd2hlbiBTeXN0ZW0gRW52aXJvbm1lbnQgVmFyaWFibGVzIGFyZVxuICAgIC8vIGV4cG9zZWQuIFdoZW4gZXhwb3NlZCwgdmFsaWRhdGlvbiBpcyBub3QgbmVjZXNzYXJ5IHNpbmNlIHdlIGFyZSBmYWxsaW5nIGJhY2sgdG9cbiAgICAvLyBwcm9jZXNzLmVudi5WRVJDRUxfUFJPSkVDVF9QUk9EVUNUSU9OX1VSTCwgcHJvY2Vzcy5lbnYuVkVSQ0VMX0JSQU5DSF9VUkwsIG9yXG4gICAgLy8gcHJvY2Vzcy5lbnYuVkVSQ0VMX1VSTCBmb3IgdGhlIGBtZXRhZGF0YUJhc2VgLiBwcm9jZXNzLmVudi5WRVJDRUwgaXMgdW5kZWZpbmVkXG4gICAgLy8gd2hlbiBTeXN0ZW0gRW52aXJvbm1lbnQgVmFyaWFibGVzIGFyZSBub3QgZXhwb3NlZC4gV2hlbiBub3QgZXhwb3NlZCwgd2UgY2Fubm90XG4gICAgLy8gZGV0ZWN0IGluIHRoZSBidWlsZCBlbnZpcm9ubWVudCBpZiB0aGUgZGVwbG95bWVudCBpcyBhIFZlcmNlbCBkZXBsb3ltZW50IG9yIG5vdC5cbiAgICAvL1xuICAgIC8vIHgtcmVmOiBodHRwczovL3ZlcmNlbC5jb20vZG9jcy9wcm9qZWN0cy9lbnZpcm9ubWVudC12YXJpYWJsZXMvc3lzdGVtLWVudmlyb25tZW50LXZhcmlhYmxlcyNzeXN0ZW0tZW52aXJvbm1lbnQtdmFyaWFibGVzXG4gICAgY29uc3QgaXNVc2luZ1ZlcmNlbFN5c3RlbUVudmlyb25tZW50VmFyaWFibGVzID0gQm9vbGVhbihwcm9jZXNzLmVudi5WRVJDRUwpO1xuICAgIGNvbnN0IGlzUmVsYXRpdmVVcmwgPSB0eXBlb2YgaW5wdXRVcmwgPT09ICdzdHJpbmcnICYmICEoMCwgX3VybC5pc0Z1bGxTdHJpbmdVcmwpKGlucHV0VXJsKTtcbiAgICAvLyBXaGVuIG5vIGV4cGxpY2l0IG1ldGFkYXRhQmFzZSBpcyBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIHdlJ2xsIG92ZXJyaWRlIGl0IHdpdGggdGhlIGZhbGxiYWNrIG1ldGFkYXRhXG4gICAgLy8gdW5kZXIgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICAgIC8vIC0gVGhlIHByb3ZpZGVkIFVSTCBpcyByZWxhdGl2ZSAoaWUgLi9vZy1pbWFnZSkuXG4gICAgLy8gLSBUaGUgaW1hZ2UgaXMgc3RhdGljYWxseSBnZW5lcmF0ZWQgYnkgTmV4dC5qcyAoc3VjaCBhcyB0aGUgc3BlY2lhbCBgb3BlbmdyYXBoLWltYWdlYCByb3V0ZSlcbiAgICAvLyBJbiBib3RoIGNhc2VzLCB3ZSB3YW50IHRvIGVuc3VyZSB0aGF0IGFjcm9zcyBhbGwgZW52aXJvbm1lbnRzLCB0aGUgb2dJbWFnZSBpcyBhIGZ1bGx5IHF1YWxpZmllZCBVUkwuXG4gICAgLy8gSW4gdGhlIGBvcGVuZ3JhcGgtaW1hZ2VgIGNhc2UsIHNpbmNlIHRoZSB1c2VyIGlzbid0IGV4cGxpY2l0bHkgcGFzc2luZyBhIHJlbGF0aXZlIHBhdGgsIHRoaXMgZW5zdXJlc1xuICAgIC8vIHRoZSBvZ0ltYWdlIHdpbGwgYmUgcHJvcGVybHkgZGlzY292ZXJlZCBhY3Jvc3MgZGlmZmVyZW50IGVudmlyb25tZW50cyB3aXRob3V0IHRoZSB1c2VyIG5lZWRpbmcgdG9cbiAgICAvLyBoYXZlIGEgYnVuY2ggb2YgYHByb2Nlc3MuZW52YCBjaGVja3Mgd2hlbiBkZWZpbmluZyB0aGVpciBgbWV0YWRhdGFCYXNlYC5cbiAgICBpZiAoaXNSZWxhdGl2ZVVybCAmJiAoIW1ldGFkYXRhQmFzZSB8fCBpc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlKSkge1xuICAgICAgICBjb25zdCBmYWxsYmFja01ldGFkYXRhQmFzZSA9ICgwLCBfcmVzb2x2ZXVybC5nZXRTb2NpYWxJbWFnZU1ldGFkYXRhQmFzZUZhbGxiYWNrKShtZXRhZGF0YUJhc2UpO1xuICAgICAgICAvLyBXaGVuIG5vdCB1c2luZyBWZXJjZWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBVUkwgaW5qZWN0aW9uLCB3ZSBhcmVuJ3QgYWJsZSB0byBkZXRlcm1pbmVcbiAgICAgICAgLy8gYSBmYWxsYmFjayB2YWx1ZSBmb3IgYG1ldGFkYXRhQmFzZWAuIEZvciBzZWxmLWhvc3RlZCBzZXR1cHMsIHdlIHdhbnQgdG8gd2FyblxuICAgICAgICAvLyBhYm91dCB0aGlzIHNpbmNlIHRoZSBvbmx5IGZhbGxiYWNrIHdlJ2xsIGJlIGFibGUgdG8gZ2VuZXJhdGUgaXMgYGxvY2FsaG9zdGAuXG4gICAgICAgIC8vIEluIGRldmVsb3BtZW50LCB3ZSdsbCBvbmx5IHdhcm4gZm9yIHJlbGF0aXZlIG1ldGFkYXRhIHRoYXQgaXNuJ3QgcGFydCBvZiB0aGUgc3RhdGljXG4gICAgICAgIC8vIG1ldGFkYXRhIGNvbnZlbnRpb25zIChlZyBgb3BlbmdyYXBoLWltYWdlYCksIGFzIG90aGVyd2lzZSBpdCdzIGN1cnJlbnRseSB2ZXJ5IG5vaXN5XG4gICAgICAgIC8vIGZvciBjb21tb24gY2FzZXMuIEV2ZW50dWFsbHkgd2Ugc2hvdWxkIHJlbW92ZSB0aGlzIHdhcm5pbmcgYWxsIHRvZ2V0aGVyIGluIGZhdm9yIG9mXG4gICAgICAgIC8vIGRldnRvb2xzLlxuICAgICAgICBjb25zdCBzaG91bGRXYXJuID0gIWlzVXNpbmdWZXJjZWxTeXN0ZW1FbnZpcm9ubWVudFZhcmlhYmxlcyAmJiAhbWV0YWRhdGFCYXNlICYmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nIHx8ICFpc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlKTtcbiAgICAgICAgaWYgKHNob3VsZFdhcm4pIHtcbiAgICAgICAgICAgICgwLCBfbG9nLndhcm5PbmNlKShgbWV0YWRhdGFCYXNlIHByb3BlcnR5IGluIG1ldGFkYXRhIGV4cG9ydCBpcyBub3Qgc2V0IGZvciByZXNvbHZpbmcgc29jaWFsIG9wZW4gZ3JhcGggb3IgdHdpdHRlciBpbWFnZXMsIHVzaW5nIFwiJHtmYWxsYmFja01ldGFkYXRhQmFzZS5vcmlnaW59XCIuIFNlZSBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvZ2VuZXJhdGUtbWV0YWRhdGEjbWV0YWRhdGFiYXNlYCk7XG4gICAgICAgIH1cbiAgICAgICAgbWV0YWRhdGFCYXNlID0gZmFsbGJhY2tNZXRhZGF0YUJhc2U7XG4gICAgfVxuICAgIHJldHVybiBpc0l0ZW1VcmwgPyB7XG4gICAgICAgIHVybDogKDAsIF9yZXNvbHZldXJsLnJlc29sdmVVcmwpKGlucHV0VXJsLCBtZXRhZGF0YUJhc2UpXG4gICAgfSA6IHtcbiAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgLy8gVXBkYXRlIGltYWdlIGRlc2NyaXB0b3IgdXJsXG4gICAgICAgIHVybDogKDAsIF9yZXNvbHZldXJsLnJlc29sdmVVcmwpKGlucHV0VXJsLCBtZXRhZGF0YUJhc2UpXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVJbWFnZXMoaW1hZ2VzLCBtZXRhZGF0YUJhc2UsIGlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUpIHtcbiAgICBjb25zdCByZXNvbHZlZEltYWdlcyA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkoaW1hZ2VzKTtcbiAgICBpZiAoIXJlc29sdmVkSW1hZ2VzKSByZXR1cm4gcmVzb2x2ZWRJbWFnZXM7XG4gICAgY29uc3Qgbm9uTnVsbGFibGVJbWFnZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgcmVzb2x2ZWRJbWFnZXMpe1xuICAgICAgICBjb25zdCByZXNvbHZlZEl0ZW0gPSByZXNvbHZlQW5kVmFsaWRhdGVJbWFnZShpdGVtLCBtZXRhZGF0YUJhc2UsIGlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUpO1xuICAgICAgICBpZiAoIXJlc29sdmVkSXRlbSkgY29udGludWU7XG4gICAgICAgIG5vbk51bGxhYmxlSW1hZ2VzLnB1c2gocmVzb2x2ZWRJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vbk51bGxhYmxlSW1hZ2VzO1xufVxuY29uc3Qgb2dUeXBlVG9GaWVsZHMgPSB7XG4gICAgYXJ0aWNsZTogT2dUeXBlRmllbGRzLmFydGljbGUsXG4gICAgYm9vazogT2dUeXBlRmllbGRzLmFydGljbGUsXG4gICAgJ211c2ljLnNvbmcnOiBPZ1R5cGVGaWVsZHMuc29uZyxcbiAgICAnbXVzaWMuYWxidW0nOiBPZ1R5cGVGaWVsZHMuc29uZyxcbiAgICAnbXVzaWMucGxheWxpc3QnOiBPZ1R5cGVGaWVsZHMucGxheWxpc3QsXG4gICAgJ211c2ljLnJhZGlvX3N0YXRpb24nOiBPZ1R5cGVGaWVsZHMucmFkaW8sXG4gICAgJ3ZpZGVvLm1vdmllJzogT2dUeXBlRmllbGRzLnZpZGVvLFxuICAgICd2aWRlby5lcGlzb2RlJzogT2dUeXBlRmllbGRzLnZpZGVvXG59O1xuZnVuY3Rpb24gZ2V0RmllbGRzQnlPZ1R5cGUob2dUeXBlKSB7XG4gICAgaWYgKCFvZ1R5cGUgfHwgIShvZ1R5cGUgaW4gb2dUeXBlVG9GaWVsZHMpKSByZXR1cm4gT2dUeXBlRmllbGRzLmJhc2ljO1xuICAgIHJldHVybiBvZ1R5cGVUb0ZpZWxkc1tvZ1R5cGVdLmNvbmNhdChPZ1R5cGVGaWVsZHMuYmFzaWMpO1xufVxuY29uc3QgcmVzb2x2ZU9wZW5HcmFwaCA9IGFzeW5jIChvcGVuR3JhcGgsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCwgdGl0bGVUZW1wbGF0ZSk9PntcbiAgICBpZiAoIW9wZW5HcmFwaCkgcmV0dXJuIG51bGw7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZVByb3BzKHRhcmdldCwgb2cpIHtcbiAgICAgICAgY29uc3Qgb2dUeXBlID0gb2cgJiYgJ3R5cGUnIGluIG9nID8gb2cudHlwZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qga2V5cyA9IGdldEZpZWxkc0J5T2dUeXBlKG9nVHlwZSk7XG4gICAgICAgIGZvciAoY29uc3QgayBvZiBrZXlzKXtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGs7XG4gICAgICAgICAgICBpZiAoa2V5IGluIG9nICYmIGtleSAhPT0gJ3VybCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9nW2tleV07XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZSA/ICgwLCBfdXRpbHMucmVzb2x2ZUFycmF5KSh2YWx1ZSkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRhcmdldC5pbWFnZXMgPSByZXNvbHZlSW1hZ2VzKG9nLmltYWdlcywgbWV0YWRhdGFCYXNlLCBtZXRhZGF0YUNvbnRleHQuaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZSk7XG4gICAgfVxuICAgIGNvbnN0IHJlc29sdmVkID0ge1xuICAgICAgICAuLi5vcGVuR3JhcGgsXG4gICAgICAgIHRpdGxlOiAoMCwgX3Jlc29sdmV0aXRsZS5yZXNvbHZlVGl0bGUpKG9wZW5HcmFwaC50aXRsZSwgdGl0bGVUZW1wbGF0ZSlcbiAgICB9O1xuICAgIHJlc29sdmVQcm9wcyhyZXNvbHZlZCwgb3BlbkdyYXBoKTtcbiAgICByZXNvbHZlZC51cmwgPSBvcGVuR3JhcGgudXJsID8gKDAsIF9yZXNvbHZldXJsLnJlc29sdmVBYnNvbHV0ZVVybFdpdGhQYXRobmFtZSkob3BlbkdyYXBoLnVybCwgbWV0YWRhdGFCYXNlLCBhd2FpdCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KSA6IG51bGw7XG4gICAgcmV0dXJuIHJlc29sdmVkO1xufTtcbmNvbnN0IFR3aXR0ZXJCYXNpY0luZm9LZXlzID0gW1xuICAgICdzaXRlJyxcbiAgICAnc2l0ZUlkJyxcbiAgICAnY3JlYXRvcicsXG4gICAgJ2NyZWF0b3JJZCcsXG4gICAgJ2Rlc2NyaXB0aW9uJ1xuXTtcbmNvbnN0IHJlc29sdmVUd2l0dGVyID0gKHR3aXR0ZXIsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlKT0+e1xuICAgIHZhciBfcmVzb2x2ZWRfaW1hZ2VzO1xuICAgIGlmICghdHdpdHRlcikgcmV0dXJuIG51bGw7XG4gICAgbGV0IGNhcmQgPSAnY2FyZCcgaW4gdHdpdHRlciA/IHR3aXR0ZXIuY2FyZCA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCByZXNvbHZlZCA9IHtcbiAgICAgICAgLi4udHdpdHRlcixcbiAgICAgICAgdGl0bGU6ICgwLCBfcmVzb2x2ZXRpdGxlLnJlc29sdmVUaXRsZSkodHdpdHRlci50aXRsZSwgdGl0bGVUZW1wbGF0ZSlcbiAgICB9O1xuICAgIGZvciAoY29uc3QgaW5mb0tleSBvZiBUd2l0dGVyQmFzaWNJbmZvS2V5cyl7XG4gICAgICAgIHJlc29sdmVkW2luZm9LZXldID0gdHdpdHRlcltpbmZvS2V5XSB8fCBudWxsO1xuICAgIH1cbiAgICByZXNvbHZlZC5pbWFnZXMgPSByZXNvbHZlSW1hZ2VzKHR3aXR0ZXIuaW1hZ2VzLCBtZXRhZGF0YUJhc2UsIG1ldGFkYXRhQ29udGV4dC5pc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlKTtcbiAgICBjYXJkID0gY2FyZCB8fCAoKChfcmVzb2x2ZWRfaW1hZ2VzID0gcmVzb2x2ZWQuaW1hZ2VzKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc29sdmVkX2ltYWdlcy5sZW5ndGgpID8gJ3N1bW1hcnlfbGFyZ2VfaW1hZ2UnIDogJ3N1bW1hcnknKTtcbiAgICByZXNvbHZlZC5jYXJkID0gY2FyZDtcbiAgICBpZiAoJ2NhcmQnIGluIHJlc29sdmVkKSB7XG4gICAgICAgIHN3aXRjaChyZXNvbHZlZC5jYXJkKXtcbiAgICAgICAgICAgIGNhc2UgJ3BsYXllcic6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZC5wbGF5ZXJzID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShyZXNvbHZlZC5wbGF5ZXJzKSB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYXBwJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkLmFwcCA9IHJlc29sdmVkLmFwcCB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnc3VtbWFyeSc6XG4gICAgICAgICAgICBjYXNlICdzdW1tYXJ5X2xhcmdlX2ltYWdlJzpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmVzb2x2ZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkO1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1vcGVuZ3JhcGguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js ***!
|
||
\************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"resolveTitle\", ({\n enumerable: true,\n get: function() {\n return resolveTitle;\n }\n}));\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}\n\n//# sourceMappingURL=resolve-title.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS10aXRsZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGdEQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvcmVzb2x2ZXJzL3Jlc29sdmUtdGl0bGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJyZXNvbHZlVGl0bGVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVUaXRsZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIHJlc29sdmVUaXRsZVRlbXBsYXRlKHRlbXBsYXRlLCB0aXRsZSkge1xuICAgIHJldHVybiB0ZW1wbGF0ZSA/IHRlbXBsYXRlLnJlcGxhY2UoLyVzL2csIHRpdGxlKSA6IHRpdGxlO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVRpdGxlKHRpdGxlLCBzdGFzaGVkVGVtcGxhdGUpIHtcbiAgICBsZXQgcmVzb2x2ZWQ7XG4gICAgY29uc3QgdGVtcGxhdGUgPSB0eXBlb2YgdGl0bGUgIT09ICdzdHJpbmcnICYmIHRpdGxlICYmICd0ZW1wbGF0ZScgaW4gdGl0bGUgPyB0aXRsZS50ZW1wbGF0ZSA6IG51bGw7XG4gICAgaWYgKHR5cGVvZiB0aXRsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzb2x2ZWQgPSByZXNvbHZlVGl0bGVUZW1wbGF0ZShzdGFzaGVkVGVtcGxhdGUsIHRpdGxlKTtcbiAgICB9IGVsc2UgaWYgKHRpdGxlKSB7XG4gICAgICAgIGlmICgnZGVmYXVsdCcgaW4gdGl0bGUpIHtcbiAgICAgICAgICAgIHJlc29sdmVkID0gcmVzb2x2ZVRpdGxlVGVtcGxhdGUoc3Rhc2hlZFRlbXBsYXRlLCB0aXRsZS5kZWZhdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2Fic29sdXRlJyBpbiB0aXRsZSAmJiB0aXRsZS5hYnNvbHV0ZSkge1xuICAgICAgICAgICAgcmVzb2x2ZWQgPSB0aXRsZS5hYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodGl0bGUgJiYgdHlwZW9mIHRpdGxlICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGVtcGxhdGUsXG4gICAgICAgICAgICBhYnNvbHV0ZTogcmVzb2x2ZWQgfHwgJydcbiAgICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWJzb2x1dGU6IHJlc29sdmVkIHx8IHRpdGxlIHx8ICcnLFxuICAgICAgICAgICAgdGVtcGxhdGVcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtdGl0bGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-url.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 getSocialImageMetadataBaseFallback: function() {\n return getSocialImageMetadataBaseFallback;\n },\n isStringOrURL: function() {\n return isStringOrURL;\n },\n resolveAbsoluteUrlWithPathname: function() {\n return resolveAbsoluteUrlWithPathname;\n },\n resolveRelativeUrl: function() {\n return resolveRelativeUrl;\n },\n resolveUrl: function() {\n return resolveUrl;\n }\n});\nconst _path = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../../shared/lib/isomorphic/path */ \"(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isStringOrURL(icon) {\n return typeof icon === 'string' || icon instanceof URL;\n}\nfunction createLocalMetadataBase() {\n // Check if experimental HTTPS is enabled\n const isExperimentalHttps = Boolean(process.env.__NEXT_EXPERIMENTAL_HTTPS);\n const protocol = isExperimentalHttps ? 'https' : 'http';\n return new URL(`${protocol}://localhost:${process.env.PORT || 3000}`);\n}\nfunction getPreviewDeploymentUrl() {\n const origin = process.env.VERCEL_BRANCH_URL || process.env.VERCEL_URL;\n return origin ? new URL(`https://${origin}`) : undefined;\n}\nfunction getProductionDeploymentUrl() {\n const origin = process.env.VERCEL_PROJECT_PRODUCTION_URL;\n return origin ? new URL(`https://${origin}`) : undefined;\n}\nfunction getSocialImageMetadataBaseFallback(metadataBase) {\n const defaultMetadataBase = createLocalMetadataBase();\n const previewDeploymentUrl = getPreviewDeploymentUrl();\n const productionDeploymentUrl = getProductionDeploymentUrl();\n let fallbackMetadataBase;\n if (true) {\n fallbackMetadataBase = defaultMetadataBase;\n } else {}\n return fallbackMetadataBase;\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 pathname = metadataBase.pathname || '';\n const joinedPath = _path.default.posix.join(pathname, 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 _path.default.posix.resolve(pathname, url);\n }\n return url;\n}\n// The regex is matching logic from packages/next/src/lib/load-custom-routes.ts\nconst FILE_REGEX = /^(?:\\/((?!\\.well-known(?:\\/.*)?)(?:[^/]+\\/)*[^/]+\\.\\w+))(\\/?|$)/i;\nfunction isFilePattern(pathname) {\n return FILE_REGEX.test(pathname);\n}\n// Resolve `pathname` if `url` is a relative path the compose with `metadataBase`.\nfunction resolveAbsoluteUrlWithPathname(url, metadataBase, pathname, { trailingSlash }) {\n // Resolve url with pathname that always starts with `/`\n url = resolveRelativeUrl(url, pathname);\n // Convert string url or URL instance to absolute url string,\n // if there's case needs to be resolved with metadataBase\n let resolvedUrl = '';\n const result = metadataBase ? resolveUrl(url, metadataBase) : url;\n if (typeof result === 'string') {\n resolvedUrl = result;\n } else {\n resolvedUrl = result.pathname === '/' ? result.origin : result.href;\n }\n // Add trailing slash if it's enabled for urls matches the condition\n // - Not external, same origin with metadataBase\n // - Doesn't have query\n if (trailingSlash && !resolvedUrl.endsWith('/')) {\n let isRelative = resolvedUrl.startsWith('/');\n let hasQuery = resolvedUrl.includes('?');\n let isExternal = false;\n let isFileUrl = false;\n if (!isRelative) {\n try {\n const parsedUrl = new URL(resolvedUrl);\n isExternal = metadataBase != null && parsedUrl.origin !== metadataBase.origin;\n isFileUrl = isFilePattern(parsedUrl.pathname);\n } catch {\n // If it's not a valid URL, treat it as external\n isExternal = true;\n }\n if (// Do not apply trailing slash for file like urls, aligning with the behavior with `trailingSlash`\n !isFileUrl && !isExternal && !hasQuery) return `${resolvedUrl}/`;\n }\n }\n return resolvedUrl;\n}\n\n//# sourceMappingURL=resolve-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS11cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscURBQXFELG1CQUFPLENBQUMseUdBQXFDO0FBQ2xHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixTQUFTLGVBQWUseUJBQXlCO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxPQUFPO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxPQUFPO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBc0M7QUFDOUM7QUFDQSxNQUFNLEtBQUssRUFFTjtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1RUFBdUUsZUFBZTtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCxZQUFZO0FBQzFFO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS11cmwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRTb2NpYWxJbWFnZU1ldGFkYXRhQmFzZUZhbGxiYWNrOiBudWxsLFxuICAgIGlzU3RyaW5nT3JVUkw6IG51bGwsXG4gICAgcmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lOiBudWxsLFxuICAgIHJlc29sdmVSZWxhdGl2ZVVybDogbnVsbCxcbiAgICByZXNvbHZlVXJsOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldFNvY2lhbEltYWdlTWV0YWRhdGFCYXNlRmFsbGJhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0U29jaWFsSW1hZ2VNZXRhZGF0YUJhc2VGYWxsYmFjaztcbiAgICB9LFxuICAgIGlzU3RyaW5nT3JVUkw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmdPclVSTDtcbiAgICB9LFxuICAgIHJlc29sdmVBYnNvbHV0ZVVybFdpdGhQYXRobmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWU7XG4gICAgfSxcbiAgICByZXNvbHZlUmVsYXRpdmVVcmw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVJlbGF0aXZlVXJsO1xuICAgIH0sXG4gICAgcmVzb2x2ZVVybDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVXJsO1xuICAgIH1cbn0pO1xuY29uc3QgX3BhdGggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9pc29tb3JwaGljL3BhdGhcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBpc1N0cmluZ09yVVJMKGljb24pIHtcbiAgICByZXR1cm4gdHlwZW9mIGljb24gPT09ICdzdHJpbmcnIHx8IGljb24gaW5zdGFuY2VvZiBVUkw7XG59XG5mdW5jdGlvbiBjcmVhdGVMb2NhbE1ldGFkYXRhQmFzZSgpIHtcbiAgICAvLyBDaGVjayBpZiBleHBlcmltZW50YWwgSFRUUFMgaXMgZW5hYmxlZFxuICAgIGNvbnN0IGlzRXhwZXJpbWVudGFsSHR0cHMgPSBCb29sZWFuKHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfSFRUUFMpO1xuICAgIGNvbnN0IHByb3RvY29sID0gaXNFeHBlcmltZW50YWxIdHRwcyA/ICdodHRwcycgOiAnaHR0cCc7XG4gICAgcmV0dXJuIG5ldyBVUkwoYCR7cHJvdG9jb2x9Oi8vbG9jYWxob3N0OiR7cHJvY2Vzcy5lbnYuUE9SVCB8fCAzMDAwfWApO1xufVxuZnVuY3Rpb24gZ2V0UHJldmlld0RlcGxveW1lbnRVcmwoKSB7XG4gICAgY29uc3Qgb3JpZ2luID0gcHJvY2Vzcy5lbnYuVkVSQ0VMX0JSQU5DSF9VUkwgfHwgcHJvY2Vzcy5lbnYuVkVSQ0VMX1VSTDtcbiAgICByZXR1cm4gb3JpZ2luID8gbmV3IFVSTChgaHR0cHM6Ly8ke29yaWdpbn1gKSA6IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIGdldFByb2R1Y3Rpb25EZXBsb3ltZW50VXJsKCkge1xuICAgIGNvbnN0IG9yaWdpbiA9IHByb2Nlc3MuZW52LlZFUkNFTF9QUk9KRUNUX1BST0RVQ1RJT05fVVJMO1xuICAgIHJldHVybiBvcmlnaW4gPyBuZXcgVVJMKGBodHRwczovLyR7b3JpZ2lufWApIDogdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gZ2V0U29jaWFsSW1hZ2VNZXRhZGF0YUJhc2VGYWxsYmFjayhtZXRhZGF0YUJhc2UpIHtcbiAgICBjb25zdCBkZWZhdWx0TWV0YWRhdGFCYXNlID0gY3JlYXRlTG9jYWxNZXRhZGF0YUJhc2UoKTtcbiAgICBjb25zdCBwcmV2aWV3RGVwbG95bWVudFVybCA9IGdldFByZXZpZXdEZXBsb3ltZW50VXJsKCk7XG4gICAgY29uc3QgcHJvZHVjdGlvbkRlcGxveW1lbnRVcmwgPSBnZXRQcm9kdWN0aW9uRGVwbG95bWVudFVybCgpO1xuICAgIGxldCBmYWxsYmFja01ldGFkYXRhQmFzZTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgZmFsbGJhY2tNZXRhZGF0YUJhc2UgPSBkZWZhdWx0TWV0YWRhdGFCYXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZhbGxiYWNrTWV0YWRhdGFCYXNlID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJiBwcmV2aWV3RGVwbG95bWVudFVybCAmJiBwcm9jZXNzLmVudi5WRVJDRUxfRU5WID09PSAncHJldmlldycgPyBwcmV2aWV3RGVwbG95bWVudFVybCA6IG1ldGFkYXRhQmFzZSB8fCBwcm9kdWN0aW9uRGVwbG95bWVudFVybCB8fCBkZWZhdWx0TWV0YWRhdGFCYXNlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsbGJhY2tNZXRhZGF0YUJhc2U7XG59XG5mdW5jdGlvbiByZXNvbHZlVXJsKHVybCwgbWV0YWRhdGFCYXNlKSB7XG4gICAgaWYgKHVybCBpbnN0YW5jZW9mIFVSTCkgcmV0dXJuIHVybDtcbiAgICBpZiAoIXVybCkgcmV0dXJuIG51bGw7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gSWYgd2UgY2FuIGNvbnN0cnVjdCBhIFVSTCBpbnN0YW5jZSBmcm9tIHVybCwgaWdub3JlIG1ldGFkYXRhQmFzZVxuICAgICAgICBjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHVybCk7XG4gICAgICAgIHJldHVybiBwYXJzZWRVcmw7XG4gICAgfSBjYXRjaCAge31cbiAgICBpZiAoIW1ldGFkYXRhQmFzZSkge1xuICAgICAgICBtZXRhZGF0YUJhc2UgPSBjcmVhdGVMb2NhbE1ldGFkYXRhQmFzZSgpO1xuICAgIH1cbiAgICAvLyBIYW5kbGUgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aHNcbiAgICBjb25zdCBwYXRobmFtZSA9IG1ldGFkYXRhQmFzZS5wYXRobmFtZSB8fCAnJztcbiAgICBjb25zdCBqb2luZWRQYXRoID0gX3BhdGguZGVmYXVsdC5wb3NpeC5qb2luKHBhdGhuYW1lLCB1cmwpO1xuICAgIHJldHVybiBuZXcgVVJMKGpvaW5lZFBhdGgsIG1ldGFkYXRhQmFzZSk7XG59XG4vLyBSZXNvbHZlIHdpdGggYHBhdGhuYW1lYCBpZiBgdXJsYCBpcyBhIHJlbGF0aXZlIHBhdGguXG5mdW5jdGlvbiByZXNvbHZlUmVsYXRpdmVVcmwodXJsLCBwYXRobmFtZSkge1xuICAgIGlmICh0eXBlb2YgdXJsID09PSAnc3RyaW5nJyAmJiB1cmwuc3RhcnRzV2l0aCgnLi8nKSkge1xuICAgICAgICByZXR1cm4gX3BhdGguZGVmYXVsdC5wb3NpeC5yZXNvbHZlKHBhdGhuYW1lLCB1cmwpO1xuICAgIH1cbiAgICByZXR1cm4gdXJsO1xufVxuLy8gVGhlIHJlZ2V4IGlzIG1hdGNoaW5nIGxvZ2ljIGZyb20gcGFja2FnZXMvbmV4dC9zcmMvbGliL2xvYWQtY3VzdG9tLXJvdXRlcy50c1xuY29uc3QgRklMRV9SRUdFWCA9IC9eKD86XFwvKCg/IVxcLndlbGwta25vd24oPzpcXC8uKik/KSg/OlteL10rXFwvKSpbXi9dK1xcLlxcdyspKShcXC8/fCQpL2k7XG5mdW5jdGlvbiBpc0ZpbGVQYXR0ZXJuKHBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIEZJTEVfUkVHRVgudGVzdChwYXRobmFtZSk7XG59XG4vLyBSZXNvbHZlIGBwYXRobmFtZWAgaWYgYHVybGAgaXMgYSByZWxhdGl2ZSBwYXRoIHRoZSBjb21wb3NlIHdpdGggYG1ldGFkYXRhQmFzZWAuXG5mdW5jdGlvbiByZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWUodXJsLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCB7IHRyYWlsaW5nU2xhc2ggfSkge1xuICAgIC8vIFJlc29sdmUgdXJsIHdpdGggcGF0aG5hbWUgdGhhdCBhbHdheXMgc3RhcnRzIHdpdGggYC9gXG4gICAgdXJsID0gcmVzb2x2ZVJlbGF0aXZlVXJsKHVybCwgcGF0aG5hbWUpO1xuICAgIC8vIENvbnZlcnQgc3RyaW5nIHVybCBvciBVUkwgaW5zdGFuY2UgdG8gYWJzb2x1dGUgdXJsIHN0cmluZyxcbiAgICAvLyBpZiB0aGVyZSdzIGNhc2UgbmVlZHMgdG8gYmUgcmVzb2x2ZWQgd2l0aCBtZXRhZGF0YUJhc2VcbiAgICBsZXQgcmVzb2x2ZWRVcmwgPSAnJztcbiAgICBjb25zdCByZXN1bHQgPSBtZXRhZGF0YUJhc2UgPyByZXNvbHZlVXJsKHVybCwgbWV0YWRhdGFCYXNlKSA6IHVybDtcbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzb2x2ZWRVcmwgPSByZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZWRVcmwgPSByZXN1bHQucGF0aG5hbWUgPT09ICcvJyA/IHJlc3VsdC5vcmlnaW4gOiByZXN1bHQuaHJlZjtcbiAgICB9XG4gICAgLy8gQWRkIHRyYWlsaW5nIHNsYXNoIGlmIGl0J3MgZW5hYmxlZCBmb3IgdXJscyBtYXRjaGVzIHRoZSBjb25kaXRpb25cbiAgICAvLyAtIE5vdCBleHRlcm5hbCwgc2FtZSBvcmlnaW4gd2l0aCBtZXRhZGF0YUJhc2VcbiAgICAvLyAtIERvZXNuJ3QgaGF2ZSBxdWVyeVxuICAgIGlmICh0cmFpbGluZ1NsYXNoICYmICFyZXNvbHZlZFVybC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgIGxldCBpc1JlbGF0aXZlID0gcmVzb2x2ZWRVcmwuc3RhcnRzV2l0aCgnLycpO1xuICAgICAgICBsZXQgaGFzUXVlcnkgPSByZXNvbHZlZFVybC5pbmNsdWRlcygnPycpO1xuICAgICAgICBsZXQgaXNFeHRlcm5hbCA9IGZhbHNlO1xuICAgICAgICBsZXQgaXNGaWxlVXJsID0gZmFsc2U7XG4gICAgICAgIGlmICghaXNSZWxhdGl2ZSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHJlc29sdmVkVXJsKTtcbiAgICAgICAgICAgICAgICBpc0V4dGVybmFsID0gbWV0YWRhdGFCYXNlICE9IG51bGwgJiYgcGFyc2VkVXJsLm9yaWdpbiAhPT0gbWV0YWRhdGFCYXNlLm9yaWdpbjtcbiAgICAgICAgICAgICAgICBpc0ZpbGVVcmwgPSBpc0ZpbGVQYXR0ZXJuKHBhcnNlZFVybC5wYXRobmFtZSk7XG4gICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgLy8gSWYgaXQncyBub3QgYSB2YWxpZCBVUkwsIHRyZWF0IGl0IGFzIGV4dGVybmFsXG4gICAgICAgICAgICAgICAgaXNFeHRlcm5hbCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoLy8gRG8gbm90IGFwcGx5IHRyYWlsaW5nIHNsYXNoIGZvciBmaWxlIGxpa2UgdXJscywgYWxpZ25pbmcgd2l0aCB0aGUgYmVoYXZpb3Igd2l0aCBgdHJhaWxpbmdTbGFzaGBcbiAgICAgICAgICAgICFpc0ZpbGVVcmwgJiYgIWlzRXh0ZXJuYWwgJiYgIWhhc1F1ZXJ5KSByZXR1cm4gYCR7cmVzb2x2ZWRVcmx9L2A7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkVXJsO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLXVybC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/non-nullable.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/non-nullable.js ***!
|
||
\****************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"nonNullable\", ({\n enumerable: true,\n get: function() {\n return nonNullable;\n }\n}));\nfunction nonNullable(value) {\n return value !== null && value !== undefined;\n}\n\n//# sourceMappingURL=non-nullable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9ub24tbnVsbGFibGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwrQ0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL25vbi1udWxsYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIm5vbk51bGxhYmxlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBub25OdWxsYWJsZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIG5vbk51bGxhYmxlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vbi1udWxsYWJsZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/non-nullable.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/picocolors.js":
|
||
/*!**************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/picocolors.js ***!
|
||
\**************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// 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\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 bgBlack: function() {\n return bgBlack;\n },\n bgBlue: function() {\n return bgBlue;\n },\n bgCyan: function() {\n return bgCyan;\n },\n bgGreen: function() {\n return bgGreen;\n },\n bgMagenta: function() {\n return bgMagenta;\n },\n bgRed: function() {\n return bgRed;\n },\n bgWhite: function() {\n return bgWhite;\n },\n bgYellow: function() {\n return bgYellow;\n },\n black: function() {\n return black;\n },\n blue: function() {\n return blue;\n },\n bold: function() {\n return bold;\n },\n cyan: function() {\n return cyan;\n },\n dim: function() {\n return dim;\n },\n gray: function() {\n return gray;\n },\n green: function() {\n return green;\n },\n hidden: function() {\n return hidden;\n },\n inverse: function() {\n return inverse;\n },\n italic: function() {\n return italic;\n },\n magenta: function() {\n return magenta;\n },\n purple: function() {\n return purple;\n },\n red: function() {\n return red;\n },\n reset: function() {\n return reset;\n },\n strikethrough: function() {\n return strikethrough;\n },\n underline: function() {\n return underline;\n },\n white: function() {\n return white;\n },\n yellow: function() {\n return yellow;\n }\n});\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');\n\n//# sourceMappingURL=picocolors.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9waWNvY29sb3JzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0EyQkw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSxRQUFRLGNBQWM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLEVBQUU7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsRUFBRSxJQUFJLElBQUk7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvcGljb2NvbG9ycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJU0MgTGljZW5zZVxuLy8gQ29weXJpZ2h0IChjKSAyMDIxIEFsZXhleSBSYXNwb3BvdiwgS29zdGlhbnR5biBEZW55c292LCBBbnRvbiBWZXJpbm92XG4vLyBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbi8vIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmVcbi8vIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFU1xuLy8gV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1Jcbi8vIEFOWSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVNcbi8vIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTlxuLy8gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0Zcbi8vIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXG4vL1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZXhleXJhc3BvcG92L3BpY29jb2xvcnMvYmxvYi9iNjI2MTQ4N2U3YjgxYWFhYjI0NDBlMzk3YTM1NjczMmNhZDllMzQyL3BpY29jb2xvcnMuanMjTDFcblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYmdCbGFjazogbnVsbCxcbiAgICBiZ0JsdWU6IG51bGwsXG4gICAgYmdDeWFuOiBudWxsLFxuICAgIGJnR3JlZW46IG51bGwsXG4gICAgYmdNYWdlbnRhOiBudWxsLFxuICAgIGJnUmVkOiBudWxsLFxuICAgIGJnV2hpdGU6IG51bGwsXG4gICAgYmdZZWxsb3c6IG51bGwsXG4gICAgYmxhY2s6IG51bGwsXG4gICAgYmx1ZTogbnVsbCxcbiAgICBib2xkOiBudWxsLFxuICAgIGN5YW46IG51bGwsXG4gICAgZGltOiBudWxsLFxuICAgIGdyYXk6IG51bGwsXG4gICAgZ3JlZW46IG51bGwsXG4gICAgaGlkZGVuOiBudWxsLFxuICAgIGludmVyc2U6IG51bGwsXG4gICAgaXRhbGljOiBudWxsLFxuICAgIG1hZ2VudGE6IG51bGwsXG4gICAgcHVycGxlOiBudWxsLFxuICAgIHJlZDogbnVsbCxcbiAgICByZXNldDogbnVsbCxcbiAgICBzdHJpa2V0aHJvdWdoOiBudWxsLFxuICAgIHVuZGVybGluZTogbnVsbCxcbiAgICB3aGl0ZTogbnVsbCxcbiAgICB5ZWxsb3c6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgYmdCbGFjazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBiZ0JsYWNrO1xuICAgIH0sXG4gICAgYmdCbHVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnQmx1ZTtcbiAgICB9LFxuICAgIGJnQ3lhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBiZ0N5YW47XG4gICAgfSxcbiAgICBiZ0dyZWVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnR3JlZW47XG4gICAgfSxcbiAgICBiZ01hZ2VudGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmdNYWdlbnRhO1xuICAgIH0sXG4gICAgYmdSZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmdSZWQ7XG4gICAgfSxcbiAgICBiZ1doaXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnV2hpdGU7XG4gICAgfSxcbiAgICBiZ1llbGxvdzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBiZ1llbGxvdztcbiAgICB9LFxuICAgIGJsYWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJsYWNrO1xuICAgIH0sXG4gICAgYmx1ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBibHVlO1xuICAgIH0sXG4gICAgYm9sZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBib2xkO1xuICAgIH0sXG4gICAgY3lhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjeWFuO1xuICAgIH0sXG4gICAgZGltOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRpbTtcbiAgICB9LFxuICAgIGdyYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ3JheTtcbiAgICB9LFxuICAgIGdyZWVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdyZWVuO1xuICAgIH0sXG4gICAgaGlkZGVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGhpZGRlbjtcbiAgICB9LFxuICAgIGludmVyc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW52ZXJzZTtcbiAgICB9LFxuICAgIGl0YWxpYzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpdGFsaWM7XG4gICAgfSxcbiAgICBtYWdlbnRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1hZ2VudGE7XG4gICAgfSxcbiAgICBwdXJwbGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcHVycGxlO1xuICAgIH0sXG4gICAgcmVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlZDtcbiAgICB9LFxuICAgIHJlc2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc2V0O1xuICAgIH0sXG4gICAgc3RyaWtldGhyb3VnaDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJpa2V0aHJvdWdoO1xuICAgIH0sXG4gICAgdW5kZXJsaW5lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVybGluZTtcbiAgICB9LFxuICAgIHdoaXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdoaXRlO1xuICAgIH0sXG4gICAgeWVsbG93OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHllbGxvdztcbiAgICB9XG59KTtcbnZhciBfZ2xvYmFsVGhpcztcbmNvbnN0IHsgZW52LCBzdGRvdXQgfSA9ICgoX2dsb2JhbFRoaXMgPSBnbG9iYWxUaGlzKSA9PSBudWxsID8gdm9pZCAwIDogX2dsb2JhbFRoaXMucHJvY2VzcykgPz8ge307XG5jb25zdCBlbmFibGVkID0gZW52ICYmICFlbnYuTk9fQ09MT1IgJiYgKGVudi5GT1JDRV9DT0xPUiB8fCAoc3Rkb3V0ID09IG51bGwgPyB2b2lkIDAgOiBzdGRvdXQuaXNUVFkpICYmICFlbnYuQ0kgJiYgZW52LlRFUk0gIT09ICdkdW1iJyk7XG5jb25zdCByZXBsYWNlQ2xvc2UgPSAoc3RyLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpPT57XG4gICAgY29uc3Qgc3RhcnQgPSBzdHIuc3Vic3RyaW5nKDAsIGluZGV4KSArIHJlcGxhY2U7XG4gICAgY29uc3QgZW5kID0gc3RyLnN1YnN0cmluZyhpbmRleCArIGNsb3NlLmxlbmd0aCk7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gZW5kLmluZGV4T2YoY2xvc2UpO1xuICAgIHJldHVybiB+bmV4dEluZGV4ID8gc3RhcnQgKyByZXBsYWNlQ2xvc2UoZW5kLCBjbG9zZSwgcmVwbGFjZSwgbmV4dEluZGV4KSA6IHN0YXJ0ICsgZW5kO1xufTtcbmNvbnN0IGZvcm1hdHRlciA9IChvcGVuLCBjbG9zZSwgcmVwbGFjZSA9IG9wZW4pPT57XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm4gU3RyaW5nO1xuICAgIHJldHVybiAoaW5wdXQpPT57XG4gICAgICAgIGNvbnN0IHN0cmluZyA9ICcnICsgaW5wdXQ7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIH5pbmRleCA/IG9wZW4gKyByZXBsYWNlQ2xvc2Uoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpICsgY2xvc2UgOiBvcGVuICsgc3RyaW5nICsgY2xvc2U7XG4gICAgfTtcbn07XG5jb25zdCByZXNldCA9IGVuYWJsZWQgPyAocyk9PmBcXHgxYlswbSR7c31cXHgxYlswbWAgOiBTdHJpbmc7XG5jb25zdCBib2xkID0gZm9ybWF0dGVyKCdcXHgxYlsxbScsICdcXHgxYlsyMm0nLCAnXFx4MWJbMjJtXFx4MWJbMW0nKTtcbmNvbnN0IGRpbSA9IGZvcm1hdHRlcignXFx4MWJbMm0nLCAnXFx4MWJbMjJtJywgJ1xceDFiWzIybVxceDFiWzJtJyk7XG5jb25zdCBpdGFsaWMgPSBmb3JtYXR0ZXIoJ1xceDFiWzNtJywgJ1xceDFiWzIzbScpO1xuY29uc3QgdW5kZXJsaW5lID0gZm9ybWF0dGVyKCdcXHgxYls0bScsICdcXHgxYlsyNG0nKTtcbmNvbnN0IGludmVyc2UgPSBmb3JtYXR0ZXIoJ1xceDFiWzdtJywgJ1xceDFiWzI3bScpO1xuY29uc3QgaGlkZGVuID0gZm9ybWF0dGVyKCdcXHgxYls4bScsICdcXHgxYlsyOG0nKTtcbmNvbnN0IHN0cmlrZXRocm91Z2ggPSBmb3JtYXR0ZXIoJ1xceDFiWzltJywgJ1xceDFiWzI5bScpO1xuY29uc3QgYmxhY2sgPSBmb3JtYXR0ZXIoJ1xceDFiWzMwbScsICdcXHgxYlszOW0nKTtcbmNvbnN0IHJlZCA9IGZvcm1hdHRlcignXFx4MWJbMzFtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgZ3JlZW4gPSBmb3JtYXR0ZXIoJ1xceDFiWzMybScsICdcXHgxYlszOW0nKTtcbmNvbnN0IHllbGxvdyA9IGZvcm1hdHRlcignXFx4MWJbMzNtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgYmx1ZSA9IGZvcm1hdHRlcignXFx4MWJbMzRtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgbWFnZW50YSA9IGZvcm1hdHRlcignXFx4MWJbMzVtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgcHVycGxlID0gZm9ybWF0dGVyKCdcXHgxYlszODsyOzE3MzsxMjc7MTY4bScsICdcXHgxYlszOW0nKTtcbmNvbnN0IGN5YW4gPSBmb3JtYXR0ZXIoJ1xceDFiWzM2bScsICdcXHgxYlszOW0nKTtcbmNvbnN0IHdoaXRlID0gZm9ybWF0dGVyKCdcXHgxYlszN20nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBncmF5ID0gZm9ybWF0dGVyKCdcXHgxYls5MG0nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBiZ0JsYWNrID0gZm9ybWF0dGVyKCdcXHgxYls0MG0nLCAnXFx4MWJbNDltJyk7XG5jb25zdCBiZ1JlZCA9IGZvcm1hdHRlcignXFx4MWJbNDFtJywgJ1xceDFiWzQ5bScpO1xuY29uc3QgYmdHcmVlbiA9IGZvcm1hdHRlcignXFx4MWJbNDJtJywgJ1xceDFiWzQ5bScpO1xuY29uc3QgYmdZZWxsb3cgPSBmb3JtYXR0ZXIoJ1xceDFiWzQzbScsICdcXHgxYls0OW0nKTtcbmNvbnN0IGJnQmx1ZSA9IGZvcm1hdHRlcignXFx4MWJbNDRtJywgJ1xceDFiWzQ5bScpO1xuY29uc3QgYmdNYWdlbnRhID0gZm9ybWF0dGVyKCdcXHgxYls0NW0nLCAnXFx4MWJbNDltJyk7XG5jb25zdCBiZ0N5YW4gPSBmb3JtYXR0ZXIoJ1xceDFiWzQ2bScsICdcXHgxYls0OW0nKTtcbmNvbnN0IGJnV2hpdGUgPSBmb3JtYXR0ZXIoJ1xceDFiWzQ3bScsICdcXHgxYls0OW0nKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGljb2NvbG9ycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/picocolors.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/route-pattern-normalizer.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/route-pattern-normalizer.js ***!
|
||
\****************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 hasAdjacentParameterIssues: function() {\n return hasAdjacentParameterIssues;\n },\n normalizeAdjacentParameters: function() {\n return normalizeAdjacentParameters;\n },\n normalizeTokensForRegexp: function() {\n return normalizeTokensForRegexp;\n },\n stripParameterSeparators: function() {\n return stripParameterSeparators;\n }\n});\n/**\n * Route pattern normalization utilities for path-to-regexp compatibility.\n *\n * path-to-regexp 6.3.0+ introduced stricter validation that rejects certain\n * patterns commonly used in Next.js interception routes. This module provides\n * normalization functions to make Next.js route patterns compatible with the\n * updated library while preserving all functionality.\n */ /**\n * Internal separator used to normalize adjacent parameter patterns.\n * This unique marker is inserted between adjacent parameters and stripped out\n * during parameter extraction to avoid conflicts with real URL content.\n */ const PARAM_SEPARATOR = '_NEXTSEP_';\nfunction hasAdjacentParameterIssues(route) {\n if (typeof route !== 'string') return false;\n // Check for interception route markers followed immediately by parameters\n // Pattern: /(.):param, /(..):param, /(...):param, /(.)(.):param etc.\n // These patterns cause \"Must have text between two parameters\" errors\n if (/\\/\\(\\.{1,3}\\):[^/\\s]+/.test(route)) {\n return true;\n }\n // Check for basic adjacent parameters without separators\n // Pattern: :param1:param2 (but not :param* or other URL patterns)\n if (/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(route)) {\n return true;\n }\n return false;\n}\nfunction normalizeAdjacentParameters(route) {\n let normalized = route;\n // Handle interception route patterns: (.):param -> (.)_NEXTSEP_:param\n normalized = normalized.replace(/(\\([^)]*\\)):([^/\\s]+)/g, `$1${PARAM_SEPARATOR}:$2`);\n // Handle other adjacent parameter patterns: :param1:param2 -> :param1_NEXTSEP_:param2\n normalized = normalized.replace(/:([^:/\\s)]+)(?=:)/g, `:$1${PARAM_SEPARATOR}`);\n return normalized;\n}\nfunction normalizeTokensForRegexp(tokens) {\n return tokens.map((token)=>{\n // Token union type: Token = string | TokenObject\n // Literal path segments are strings, parameters/wildcards are objects\n if (typeof token === 'object' && token !== null && // Not all token objects have 'modifier' property (e.g., simple text tokens)\n 'modifier' in token && // Only repeating modifiers (* or +) cause the validation error\n // Other modifiers like '?' (optional) are fine\n (token.modifier === '*' || token.modifier === '+') && // Token objects can have different shapes depending on route pattern\n 'prefix' in token && 'suffix' in token && // Both prefix and suffix must be empty strings\n // This is what causes the validation error in path-to-regexp\n token.prefix === '' && token.suffix === '') {\n // Add minimal prefix to satisfy path-to-regexp validation\n // We use '/' as it's the most common path delimiter and won't break route matching\n // The prefix gets used in regex generation but doesn't affect parameter extraction\n return {\n ...token,\n prefix: '/'\n };\n }\n return token;\n });\n}\nfunction stripParameterSeparators(params) {\n const cleaned = {};\n for (const [key, value] of Object.entries(params)){\n if (typeof value === 'string') {\n // Remove the separator if it appears at the start of parameter values\n cleaned[key] = value.replace(new RegExp(`^${PARAM_SEPARATOR}`), '');\n } else if (Array.isArray(value)) {\n // Handle array parameters (from repeated route segments)\n cleaned[key] = value.map((item)=>typeof item === 'string' ? item.replace(new RegExp(`^${PARAM_SEPARATOR}`), '') : item);\n } else {\n cleaned[key] = value;\n }\n }\n return cleaned;\n}\n\n//# sourceMappingURL=route-pattern-normalizer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9yb3V0ZS1wYXR0ZXJuLW5vcm1hbGl6ZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsSUFBSTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsZ0JBQWdCO0FBQ25GO0FBQ0EsZ0VBQWdFLGdCQUFnQjtBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3REFBd0QsZ0JBQWdCO0FBQ3hFLFVBQVU7QUFDVjtBQUNBLG9HQUFvRyxnQkFBZ0I7QUFDcEgsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3JvdXRlLXBhdHRlcm4tbm9ybWFsaXplci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGhhc0FkamFjZW50UGFyYW1ldGVySXNzdWVzOiBudWxsLFxuICAgIG5vcm1hbGl6ZUFkamFjZW50UGFyYW1ldGVyczogbnVsbCxcbiAgICBub3JtYWxpemVUb2tlbnNGb3JSZWdleHA6IG51bGwsXG4gICAgc3RyaXBQYXJhbWV0ZXJTZXBhcmF0b3JzOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGhhc0FkamFjZW50UGFyYW1ldGVySXNzdWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGhhc0FkamFjZW50UGFyYW1ldGVySXNzdWVzO1xuICAgIH0sXG4gICAgbm9ybWFsaXplQWRqYWNlbnRQYXJhbWV0ZXJzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUFkamFjZW50UGFyYW1ldGVycztcbiAgICB9LFxuICAgIG5vcm1hbGl6ZVRva2Vuc0ZvclJlZ2V4cDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVUb2tlbnNGb3JSZWdleHA7XG4gICAgfSxcbiAgICBzdHJpcFBhcmFtZXRlclNlcGFyYXRvcnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyaXBQYXJhbWV0ZXJTZXBhcmF0b3JzO1xuICAgIH1cbn0pO1xuLyoqXG4gKiBSb3V0ZSBwYXR0ZXJuIG5vcm1hbGl6YXRpb24gdXRpbGl0aWVzIGZvciBwYXRoLXRvLXJlZ2V4cCBjb21wYXRpYmlsaXR5LlxuICpcbiAqIHBhdGgtdG8tcmVnZXhwIDYuMy4wKyBpbnRyb2R1Y2VkIHN0cmljdGVyIHZhbGlkYXRpb24gdGhhdCByZWplY3RzIGNlcnRhaW5cbiAqIHBhdHRlcm5zIGNvbW1vbmx5IHVzZWQgaW4gTmV4dC5qcyBpbnRlcmNlcHRpb24gcm91dGVzLiBUaGlzIG1vZHVsZSBwcm92aWRlc1xuICogbm9ybWFsaXphdGlvbiBmdW5jdGlvbnMgdG8gbWFrZSBOZXh0LmpzIHJvdXRlIHBhdHRlcm5zIGNvbXBhdGlibGUgd2l0aCB0aGVcbiAqIHVwZGF0ZWQgbGlicmFyeSB3aGlsZSBwcmVzZXJ2aW5nIGFsbCBmdW5jdGlvbmFsaXR5LlxuICovIC8qKlxuICogSW50ZXJuYWwgc2VwYXJhdG9yIHVzZWQgdG8gbm9ybWFsaXplIGFkamFjZW50IHBhcmFtZXRlciBwYXR0ZXJucy5cbiAqIFRoaXMgdW5pcXVlIG1hcmtlciBpcyBpbnNlcnRlZCBiZXR3ZWVuIGFkamFjZW50IHBhcmFtZXRlcnMgYW5kIHN0cmlwcGVkIG91dFxuICogZHVyaW5nIHBhcmFtZXRlciBleHRyYWN0aW9uIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIHJlYWwgVVJMIGNvbnRlbnQuXG4gKi8gY29uc3QgUEFSQU1fU0VQQVJBVE9SID0gJ19ORVhUU0VQXyc7XG5mdW5jdGlvbiBoYXNBZGphY2VudFBhcmFtZXRlcklzc3Vlcyhyb3V0ZSkge1xuICAgIGlmICh0eXBlb2Ygcm91dGUgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gQ2hlY2sgZm9yIGludGVyY2VwdGlvbiByb3V0ZSBtYXJrZXJzIGZvbGxvd2VkIGltbWVkaWF0ZWx5IGJ5IHBhcmFtZXRlcnNcbiAgICAvLyBQYXR0ZXJuOiAvKC4pOnBhcmFtLCAvKC4uKTpwYXJhbSwgLyguLi4pOnBhcmFtLCAvKC4pKC4pOnBhcmFtIGV0Yy5cbiAgICAvLyBUaGVzZSBwYXR0ZXJucyBjYXVzZSBcIk11c3QgaGF2ZSB0ZXh0IGJldHdlZW4gdHdvIHBhcmFtZXRlcnNcIiBlcnJvcnNcbiAgICBpZiAoL1xcL1xcKFxcLnsxLDN9XFwpOlteL1xcc10rLy50ZXN0KHJvdXRlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gQ2hlY2sgZm9yIGJhc2ljIGFkamFjZW50IHBhcmFtZXRlcnMgd2l0aG91dCBzZXBhcmF0b3JzXG4gICAgLy8gUGF0dGVybjogOnBhcmFtMTpwYXJhbTIgKGJ1dCBub3QgOnBhcmFtKiBvciBvdGhlciBVUkwgcGF0dGVybnMpXG4gICAgaWYgKC86W2EtekEtWl9dW2EtekEtWjAtOV9dKjpbYS16QS1aX11bYS16QS1aMC05X10qLy50ZXN0KHJvdXRlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gbm9ybWFsaXplQWRqYWNlbnRQYXJhbWV0ZXJzKHJvdXRlKSB7XG4gICAgbGV0IG5vcm1hbGl6ZWQgPSByb3V0ZTtcbiAgICAvLyBIYW5kbGUgaW50ZXJjZXB0aW9uIHJvdXRlIHBhdHRlcm5zOiAoLik6cGFyYW0gLT4gKC4pX05FWFRTRVBfOnBhcmFtXG4gICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvKFxcKFteKV0qXFwpKTooW14vXFxzXSspL2csIGAkMSR7UEFSQU1fU0VQQVJBVE9SfTokMmApO1xuICAgIC8vIEhhbmRsZSBvdGhlciBhZGphY2VudCBwYXJhbWV0ZXIgcGF0dGVybnM6IDpwYXJhbTE6cGFyYW0yIC0+IDpwYXJhbTFfTkVYVFNFUF86cGFyYW0yXG4gICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQucmVwbGFjZSgvOihbXjovXFxzKV0rKSg/PTopL2csIGA6JDEke1BBUkFNX1NFUEFSQVRPUn1gKTtcbiAgICByZXR1cm4gbm9ybWFsaXplZDtcbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZVRva2Vuc0ZvclJlZ2V4cCh0b2tlbnMpIHtcbiAgICByZXR1cm4gdG9rZW5zLm1hcCgodG9rZW4pPT57XG4gICAgICAgIC8vIFRva2VuIHVuaW9uIHR5cGU6IFRva2VuID0gc3RyaW5nIHwgVG9rZW5PYmplY3RcbiAgICAgICAgLy8gTGl0ZXJhbCBwYXRoIHNlZ21lbnRzIGFyZSBzdHJpbmdzLCBwYXJhbWV0ZXJzL3dpbGRjYXJkcyBhcmUgb2JqZWN0c1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuID09PSAnb2JqZWN0JyAmJiB0b2tlbiAhPT0gbnVsbCAmJiAvLyBOb3QgYWxsIHRva2VuIG9iamVjdHMgaGF2ZSAnbW9kaWZpZXInIHByb3BlcnR5IChlLmcuLCBzaW1wbGUgdGV4dCB0b2tlbnMpXG4gICAgICAgICdtb2RpZmllcicgaW4gdG9rZW4gJiYgLy8gT25seSByZXBlYXRpbmcgbW9kaWZpZXJzICgqIG9yICspIGNhdXNlIHRoZSB2YWxpZGF0aW9uIGVycm9yXG4gICAgICAgIC8vIE90aGVyIG1vZGlmaWVycyBsaWtlICc/JyAob3B0aW9uYWwpIGFyZSBmaW5lXG4gICAgICAgICh0b2tlbi5tb2RpZmllciA9PT0gJyonIHx8IHRva2VuLm1vZGlmaWVyID09PSAnKycpICYmIC8vIFRva2VuIG9iamVjdHMgY2FuIGhhdmUgZGlmZmVyZW50IHNoYXBlcyBkZXBlbmRpbmcgb24gcm91dGUgcGF0dGVyblxuICAgICAgICAncHJlZml4JyBpbiB0b2tlbiAmJiAnc3VmZml4JyBpbiB0b2tlbiAmJiAvLyBCb3RoIHByZWZpeCBhbmQgc3VmZml4IG11c3QgYmUgZW1wdHkgc3RyaW5nc1xuICAgICAgICAvLyBUaGlzIGlzIHdoYXQgY2F1c2VzIHRoZSB2YWxpZGF0aW9uIGVycm9yIGluIHBhdGgtdG8tcmVnZXhwXG4gICAgICAgIHRva2VuLnByZWZpeCA9PT0gJycgJiYgdG9rZW4uc3VmZml4ID09PSAnJykge1xuICAgICAgICAgICAgLy8gQWRkIG1pbmltYWwgcHJlZml4IHRvIHNhdGlzZnkgcGF0aC10by1yZWdleHAgdmFsaWRhdGlvblxuICAgICAgICAgICAgLy8gV2UgdXNlICcvJyBhcyBpdCdzIHRoZSBtb3N0IGNvbW1vbiBwYXRoIGRlbGltaXRlciBhbmQgd29uJ3QgYnJlYWsgcm91dGUgbWF0Y2hpbmdcbiAgICAgICAgICAgIC8vIFRoZSBwcmVmaXggZ2V0cyB1c2VkIGluIHJlZ2V4IGdlbmVyYXRpb24gYnV0IGRvZXNuJ3QgYWZmZWN0IHBhcmFtZXRlciBleHRyYWN0aW9uXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnRva2VuLFxuICAgICAgICAgICAgICAgIHByZWZpeDogJy8nXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHN0cmlwUGFyYW1ldGVyU2VwYXJhdG9ycyhwYXJhbXMpIHtcbiAgICBjb25zdCBjbGVhbmVkID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYW1zKSl7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyBSZW1vdmUgdGhlIHNlcGFyYXRvciBpZiBpdCBhcHBlYXJzIGF0IHRoZSBzdGFydCBvZiBwYXJhbWV0ZXIgdmFsdWVzXG4gICAgICAgICAgICBjbGVhbmVkW2tleV0gPSB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke1BBUkFNX1NFUEFSQVRPUn1gKSwgJycpO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgYXJyYXkgcGFyYW1ldGVycyAoZnJvbSByZXBlYXRlZCByb3V0ZSBzZWdtZW50cylcbiAgICAgICAgICAgIGNsZWFuZWRba2V5XSA9IHZhbHVlLm1hcCgoaXRlbSk9PnR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyA/IGl0ZW0ucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtQQVJBTV9TRVBBUkFUT1J9YCksICcnKSA6IGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2xlYW5lZFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNsZWFuZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJvdXRlLXBhdHRlcm4tbm9ybWFsaXplci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/route-pattern-normalizer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/scheduler.js":
|
||
/*!*************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/scheduler.js ***!
|
||
\*************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst 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 if (false) {} else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (false) {} else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (false) {} else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNWO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvc2NoZWR1bGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IG51bGwsXG4gICAgc2NoZWR1bGVJbW1lZGlhdGU6IG51bGwsXG4gICAgc2NoZWR1bGVPbk5leHRUaWNrOiBudWxsLFxuICAgIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGF0TGVhc3RPbmVUYXNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGF0TGVhc3RPbmVUYXNrO1xuICAgIH0sXG4gICAgc2NoZWR1bGVJbW1lZGlhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVJbW1lZGlhdGU7XG4gICAgfSxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVPbk5leHRUaWNrO1xuICAgIH0sXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s7XG4gICAgfVxufSk7XG5jb25zdCBzY2hlZHVsZU9uTmV4dFRpY2sgPSAoY2IpPT57XG4gICAgLy8gV2UgdXNlIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKSBoZXJlIHNvIHRoYXQgdGhlIG9wZXJhdGlvbiBpcyBzY2hlZHVsZWQgYXRcbiAgICAvLyB0aGUgZW5kIG9mIHRoZSBwcm9taXNlIGpvYiBxdWV1ZSwgd2UgdGhlbiBhZGQgaXQgdG8gdGhlIG5leHQgcHJvY2VzcyB0aWNrXG4gICAgLy8gdG8gZW5zdXJlIGl0J3MgZXZhbHVhdGVkIGFmdGVyd2FyZHMuXG4gICAgLy9cbiAgICAvLyBUaGlzIHdhcyBpbnNwaXJlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIERhdGFMb2FkZXIgaW50ZXJmYWNlOiBodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC9kYXRhbG9hZGVyL2Jsb2IvZDMzNmJkMTUyODI2NjRlMGJlNGI0YTY1N2NiNzk2ZjA5YmFmYmM2Yi9zcmMvaW5kZXguanMjTDIxMy1MMjU1XG4gICAgLy9cbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICAgICAgc2V0VGltZW91dChjYiwgMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGNiKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IHNjaGVkdWxlSW1tZWRpYXRlID0gKGNiKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZXRJbW1lZGlhdGUoY2IpO1xuICAgIH1cbn07XG5mdW5jdGlvbiBhdExlYXN0T25lVGFzaygpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpPT5zY2hlZHVsZUltbWVkaWF0ZShyZXNvbHZlKSk7XG59XG5mdW5jdGlvbiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaygpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyKT0+c2V0VGltZW91dChyLCAwKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyKT0+c2V0SW1tZWRpYXRlKHIpKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjaGVkdWxlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/scheduler.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/lib/url.js":
|
||
/*!*******************************************!*\
|
||
!*** ./node_modules/next/dist/lib/url.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 isFullStringUrl: function() {\n return isFullStringUrl;\n },\n parseReqUrl: function() {\n return parseReqUrl;\n },\n parseUrl: function() {\n return parseUrl;\n },\n stripNextRscUnionQuery: function() {\n return stripNextRscUnionQuery;\n }\n});\nconst _approuterheaders = __webpack_require__(/*! ../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst DUMMY_ORIGIN = 'http://n';\nfunction isFullStringUrl(url) {\n return /https?:\\/\\//.test(url);\n}\nfunction parseUrl(url) {\n let parsed = undefined;\n try {\n parsed = new URL(url, DUMMY_ORIGIN);\n } catch {}\n return parsed;\n}\nfunction parseReqUrl(url) {\n const parsedUrl = parseUrl(url);\n if (!parsedUrl) {\n return;\n }\n const query = {};\n for (const key of parsedUrl.searchParams.keys()){\n const values = parsedUrl.searchParams.getAll(key);\n query[key] = values.length > 1 ? values : values[0];\n }\n const legacyUrl = {\n query,\n hash: parsedUrl.hash,\n search: parsedUrl.search,\n path: parsedUrl.pathname,\n pathname: parsedUrl.pathname,\n href: `${parsedUrl.pathname}${parsedUrl.search}${parsedUrl.hash}`,\n host: '',\n hostname: '',\n auth: '',\n protocol: '',\n slashes: null,\n port: ''\n };\n return legacyUrl;\n}\nfunction stripNextRscUnionQuery(relativeUrl) {\n const urlInstance = new URL(relativeUrl, DUMMY_ORIGIN);\n urlInstance.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n return urlInstance.pathname + urlInstance.search;\n}\n\n//# sourceMappingURL=url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi91cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDBCQUEwQixtQkFBTyxDQUFDLHVIQUF5QztBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3VybC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzRnVsbFN0cmluZ1VybDogbnVsbCxcbiAgICBwYXJzZVJlcVVybDogbnVsbCxcbiAgICBwYXJzZVVybDogbnVsbCxcbiAgICBzdHJpcE5leHRSc2NVbmlvblF1ZXJ5OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGlzRnVsbFN0cmluZ1VybDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0Z1bGxTdHJpbmdVcmw7XG4gICAgfSxcbiAgICBwYXJzZVJlcVVybDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwYXJzZVJlcVVybDtcbiAgICB9LFxuICAgIHBhcnNlVXJsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlVXJsO1xuICAgIH0sXG4gICAgc3RyaXBOZXh0UnNjVW5pb25RdWVyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJpcE5leHRSc2NVbmlvblF1ZXJ5O1xuICAgIH1cbn0pO1xuY29uc3QgX2FwcHJvdXRlcmhlYWRlcnMgPSByZXF1aXJlKFwiLi4vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzXCIpO1xuY29uc3QgRFVNTVlfT1JJR0lOID0gJ2h0dHA6Ly9uJztcbmZ1bmN0aW9uIGlzRnVsbFN0cmluZ1VybCh1cmwpIHtcbiAgICByZXR1cm4gL2h0dHBzPzpcXC9cXC8vLnRlc3QodXJsKTtcbn1cbmZ1bmN0aW9uIHBhcnNlVXJsKHVybCkge1xuICAgIGxldCBwYXJzZWQgPSB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgICAgcGFyc2VkID0gbmV3IFVSTCh1cmwsIERVTU1ZX09SSUdJTik7XG4gICAgfSBjYXRjaCAge31cbiAgICByZXR1cm4gcGFyc2VkO1xufVxuZnVuY3Rpb24gcGFyc2VSZXFVcmwodXJsKSB7XG4gICAgY29uc3QgcGFyc2VkVXJsID0gcGFyc2VVcmwodXJsKTtcbiAgICBpZiAoIXBhcnNlZFVybCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgcGFyc2VkVXJsLnNlYXJjaFBhcmFtcy5rZXlzKCkpe1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBwYXJzZWRVcmwuc2VhcmNoUGFyYW1zLmdldEFsbChrZXkpO1xuICAgICAgICBxdWVyeVtrZXldID0gdmFsdWVzLmxlbmd0aCA+IDEgPyB2YWx1ZXMgOiB2YWx1ZXNbMF07XG4gICAgfVxuICAgIGNvbnN0IGxlZ2FjeVVybCA9IHtcbiAgICAgICAgcXVlcnksXG4gICAgICAgIGhhc2g6IHBhcnNlZFVybC5oYXNoLFxuICAgICAgICBzZWFyY2g6IHBhcnNlZFVybC5zZWFyY2gsXG4gICAgICAgIHBhdGg6IHBhcnNlZFVybC5wYXRobmFtZSxcbiAgICAgICAgcGF0aG5hbWU6IHBhcnNlZFVybC5wYXRobmFtZSxcbiAgICAgICAgaHJlZjogYCR7cGFyc2VkVXJsLnBhdGhuYW1lfSR7cGFyc2VkVXJsLnNlYXJjaH0ke3BhcnNlZFVybC5oYXNofWAsXG4gICAgICAgIGhvc3Q6ICcnLFxuICAgICAgICBob3N0bmFtZTogJycsXG4gICAgICAgIGF1dGg6ICcnLFxuICAgICAgICBwcm90b2NvbDogJycsXG4gICAgICAgIHNsYXNoZXM6IG51bGwsXG4gICAgICAgIHBvcnQ6ICcnXG4gICAgfTtcbiAgICByZXR1cm4gbGVnYWN5VXJsO1xufVxuZnVuY3Rpb24gc3RyaXBOZXh0UnNjVW5pb25RdWVyeShyZWxhdGl2ZVVybCkge1xuICAgIGNvbnN0IHVybEluc3RhbmNlID0gbmV3IFVSTChyZWxhdGl2ZVVybCwgRFVNTVlfT1JJR0lOKTtcbiAgICB1cmxJbnN0YW5jZS5zZWFyY2hQYXJhbXMuZGVsZXRlKF9hcHByb3V0ZXJoZWFkZXJzLk5FWFRfUlNDX1VOSU9OX1FVRVJZKTtcbiAgICByZXR1cm4gdXJsSW5zdGFuY2UucGF0aG5hbWUgKyB1cmxJbnN0YW5jZS5zZWFyY2g7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVybC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js ***!
|
||
\*************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
eval("// This file is generated by the Webpack next-flight-loader.\nconst { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\")\n\nmodule.exports = createProxy(\"/Users/jettcheng1018/code/dramaling-vocab-learning/frontend/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUuanMiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIl9OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUuanMvX19uZXh0anMtaW50ZXJuYWwtcHJveHkuY2pzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIFdlYnBhY2sgbmV4dC1mbGlnaHQtbG9hZGVyLlxuY29uc3QgeyBjcmVhdGVQcm94eSB9ID0gcmVxdWlyZShcIm5leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eVwiKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVByb3h5KFwiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlLmpzXCIpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/api-utils/get-cookie-parser.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getCookieParser\", ({\n enumerable: true,\n get: function() {\n return getCookieParser;\n }\n}));\nfunction 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}\n\n//# sourceMappingURL=get-cookie-parser.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcGktdXRpbHMvZ2V0LWNvb2tpZS1wYXJzZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0EsZ0JBQWdCLFNBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHVCQUF1QixFQUFFLG1CQUFPLENBQUMsMEZBQTJCO0FBQzVFLG9FQUFvRTtBQUNwRTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcGktdXRpbHMvZ2V0LWNvb2tpZS1wYXJzZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRDb29raWVQYXJzZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldENvb2tpZVBhcnNlcjtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGdldENvb2tpZVBhcnNlcihoZWFkZXJzKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHBhcnNlQ29va2llKCkge1xuICAgICAgICBjb25zdCB7IGNvb2tpZSB9ID0gaGVhZGVycztcbiAgICAgICAgaWYgKCFjb29raWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHBhcnNlOiBwYXJzZUNvb2tpZUZuIH0gPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvY29va2llJyk7XG4gICAgICAgIHJldHVybiBwYXJzZUNvb2tpZUZuKEFycmF5LmlzQXJyYXkoY29va2llKSA/IGNvb2tpZS5qb2luKCc7ICcpIDogY29va2llKTtcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtY29va2llLXBhcnNlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/api-utils/index.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/api-utils/index.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 ApiError: function() {\n return ApiError;\n },\n COOKIE_NAME_PRERENDER_BYPASS: function() {\n return COOKIE_NAME_PRERENDER_BYPASS;\n },\n COOKIE_NAME_PRERENDER_DATA: function() {\n return COOKIE_NAME_PRERENDER_DATA;\n },\n RESPONSE_LIMIT_DEFAULT: function() {\n return RESPONSE_LIMIT_DEFAULT;\n },\n SYMBOL_CLEARED_COOKIES: function() {\n return SYMBOL_CLEARED_COOKIES;\n },\n SYMBOL_PREVIEW_DATA: function() {\n return SYMBOL_PREVIEW_DATA;\n },\n checkIsOnDemandRevalidate: function() {\n return checkIsOnDemandRevalidate;\n },\n clearPreviewData: function() {\n return clearPreviewData;\n },\n redirect: function() {\n return redirect;\n },\n sendError: function() {\n return sendError;\n },\n sendStatusCode: function() {\n return sendStatusCode;\n },\n setLazyProp: function() {\n return setLazyProp;\n },\n wrapApiHandler: function() {\n return wrapApiHandler;\n }\n});\nconst _headers = __webpack_require__(/*! ../web/spec-extension/adapters/headers */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/headers.js\");\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants1 = __webpack_require__(/*! ../lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nfunction wrapApiHandler(page, handler) {\n return (...args)=>{\n (0, _tracer.getTracer)().setRootSpanAttribute('next.route', page);\n // Call API route method\n return (0, _tracer.getTracer)().trace(_constants1.NodeSpan.runHandler, {\n spanName: `executing api route (pages) ${page}`\n }, ()=>handler(...args));\n };\n}\nfunction sendStatusCode(res, statusCode) {\n res.statusCode = statusCode;\n return res;\n}\nfunction 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 Object.defineProperty(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').`), \"__NEXT_ERROR_CODE\", {\n value: \"E389\",\n enumerable: false,\n configurable: true\n });\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 = _headers.HeadersAdapter.from(req.headers);\n const previewModeId = headers.get(_constants.PRERENDER_REVALIDATE_HEADER);\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId;\n const revalidateOnlyGenerated = headers.has(_constants.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 */ \"(rsc)/./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}\nclass ApiError extends Error {\n constructor(statusCode, message){\n super(message);\n this.statusCode = statusCode;\n }\n}\nfunction sendError(res, statusCode, message) {\n res.statusCode = statusCode;\n res.statusMessage = message;\n res.end(message);\n}\nfunction 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}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcGktdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBY0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLDRIQUF3QztBQUNqRSxtQkFBbUIsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDaEQsZ0JBQWdCLG1CQUFPLENBQUMsc0ZBQXFCO0FBQzdDLG9CQUFvQixtQkFBTyxDQUFDLDRGQUF3QjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFELEtBQUs7QUFDMUQsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQSxZQUFZLFlBQVksRUFBRSxtQkFBTyxDQUFDLDBGQUEyQjtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLE1BQXNDLEdBQUcsQ0FBTTtBQUNyRSxvQkFBb0IsYUFBb0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsTUFBc0MsR0FBRyxDQUFNO0FBQ3JFLG9CQUFvQixhQUFvQjtBQUN4QztBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2QsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLEtBQUs7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwaS11dGlscy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFwaUVycm9yOiBudWxsLFxuICAgIENPT0tJRV9OQU1FX1BSRVJFTkRFUl9CWVBBU1M6IG51bGwsXG4gICAgQ09PS0lFX05BTUVfUFJFUkVOREVSX0RBVEE6IG51bGwsXG4gICAgUkVTUE9OU0VfTElNSVRfREVGQVVMVDogbnVsbCxcbiAgICBTWU1CT0xfQ0xFQVJFRF9DT09LSUVTOiBudWxsLFxuICAgIFNZTUJPTF9QUkVWSUVXX0RBVEE6IG51bGwsXG4gICAgY2hlY2tJc09uRGVtYW5kUmV2YWxpZGF0ZTogbnVsbCxcbiAgICBjbGVhclByZXZpZXdEYXRhOiBudWxsLFxuICAgIHJlZGlyZWN0OiBudWxsLFxuICAgIHNlbmRFcnJvcjogbnVsbCxcbiAgICBzZW5kU3RhdHVzQ29kZTogbnVsbCxcbiAgICBzZXRMYXp5UHJvcDogbnVsbCxcbiAgICB3cmFwQXBpSGFuZGxlcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcGlFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcGlFcnJvcjtcbiAgICB9LFxuICAgIENPT0tJRV9OQU1FX1BSRVJFTkRFUl9CWVBBU1M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUztcbiAgICB9LFxuICAgIENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBO1xuICAgIH0sXG4gICAgUkVTUE9OU0VfTElNSVRfREVGQVVMVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSRVNQT05TRV9MSU1JVF9ERUZBVUxUO1xuICAgIH0sXG4gICAgU1lNQk9MX0NMRUFSRURfQ09PS0lFUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTWU1CT0xfQ0xFQVJFRF9DT09LSUVTO1xuICAgIH0sXG4gICAgU1lNQk9MX1BSRVZJRVdfREFUQTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTWU1CT0xfUFJFVklFV19EQVRBO1xuICAgIH0sXG4gICAgY2hlY2tJc09uRGVtYW5kUmV2YWxpZGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjaGVja0lzT25EZW1hbmRSZXZhbGlkYXRlO1xuICAgIH0sXG4gICAgY2xlYXJQcmV2aWV3RGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjbGVhclByZXZpZXdEYXRhO1xuICAgIH0sXG4gICAgcmVkaXJlY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVkaXJlY3Q7XG4gICAgfSxcbiAgICBzZW5kRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2VuZEVycm9yO1xuICAgIH0sXG4gICAgc2VuZFN0YXR1c0NvZGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2VuZFN0YXR1c0NvZGU7XG4gICAgfSxcbiAgICBzZXRMYXp5UHJvcDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRMYXp5UHJvcDtcbiAgICB9LFxuICAgIHdyYXBBcGlIYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdyYXBBcGlIYW5kbGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2hlYWRlcnMgPSByZXF1aXJlKFwiLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL2hlYWRlcnNcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uLy4uL2xpYi9jb25zdGFudHNcIik7XG5jb25zdCBfdHJhY2VyID0gcmVxdWlyZShcIi4uL2xpYi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfY29uc3RhbnRzMSA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gd3JhcEFwaUhhbmRsZXIocGFnZSwgaGFuZGxlcikge1xuICAgIHJldHVybiAoLi4uYXJncyk9PntcbiAgICAgICAgKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnNldFJvb3RTcGFuQXR0cmlidXRlKCduZXh0LnJvdXRlJywgcGFnZSk7XG4gICAgICAgIC8vIENhbGwgQVBJIHJvdXRlIG1ldGhvZFxuICAgICAgICByZXR1cm4gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMxLk5vZGVTcGFuLnJ1bkhhbmRsZXIsIHtcbiAgICAgICAgICAgIHNwYW5OYW1lOiBgZXhlY3V0aW5nIGFwaSByb3V0ZSAocGFnZXMpICR7cGFnZX1gXG4gICAgICAgIH0sICgpPT5oYW5kbGVyKC4uLmFyZ3MpKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gc2VuZFN0YXR1c0NvZGUocmVzLCBzdGF0dXNDb2RlKSB7XG4gICAgcmVzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIHJldHVybiByZXM7XG59XG5mdW5jdGlvbiByZWRpcmVjdChyZXMsIHN0YXR1c09yVXJsLCB1cmwpIHtcbiAgICBpZiAodHlwZW9mIHN0YXR1c09yVXJsID09PSAnc3RyaW5nJykge1xuICAgICAgICB1cmwgPSBzdGF0dXNPclVybDtcbiAgICAgICAgc3RhdHVzT3JVcmwgPSAzMDc7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygc3RhdHVzT3JVcmwgIT09ICdudW1iZXInIHx8IHR5cGVvZiB1cmwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFsaWQgcmVkaXJlY3QgYXJndW1lbnRzLiBQbGVhc2UgdXNlIGEgc2luZ2xlIGFyZ3VtZW50IFVSTCwgZS5nLiByZXMucmVkaXJlY3QoJy9kZXN0aW5hdGlvbicpIG9yIHVzZSBhIHN0YXR1cyBjb2RlIGFuZCBVUkwsIGUuZy4gcmVzLnJlZGlyZWN0KDMwNywgJy9kZXN0aW5hdGlvbicpLmApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkUzODlcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXMud3JpdGVIZWFkKHN0YXR1c09yVXJsLCB7XG4gICAgICAgIExvY2F0aW9uOiB1cmxcbiAgICB9KTtcbiAgICByZXMud3JpdGUodXJsKTtcbiAgICByZXMuZW5kKCk7XG4gICAgcmV0dXJuIHJlcztcbn1cbmZ1bmN0aW9uIGNoZWNrSXNPbkRlbWFuZFJldmFsaWRhdGUocmVxLCBwcmV2aWV3UHJvcHMpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gX2hlYWRlcnMuSGVhZGVyc0FkYXB0ZXIuZnJvbShyZXEuaGVhZGVycyk7XG4gICAgY29uc3QgcHJldmlld01vZGVJZCA9IGhlYWRlcnMuZ2V0KF9jb25zdGFudHMuUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSKTtcbiAgICBjb25zdCBpc09uRGVtYW5kUmV2YWxpZGF0ZSA9IHByZXZpZXdNb2RlSWQgPT09IHByZXZpZXdQcm9wcy5wcmV2aWV3TW9kZUlkO1xuICAgIGNvbnN0IHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkID0gaGVhZGVycy5oYXMoX2NvbnN0YW50cy5QUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVIpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlLFxuICAgICAgICByZXZhbGlkYXRlT25seUdlbmVyYXRlZFxuICAgIH07XG59XG5jb25zdCBDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTID0gYF9fcHJlcmVuZGVyX2J5cGFzc2A7XG5jb25zdCBDT09LSUVfTkFNRV9QUkVSRU5ERVJfREFUQSA9IGBfX25leHRfcHJldmlld19kYXRhYDtcbmNvbnN0IFJFU1BPTlNFX0xJTUlUX0RFRkFVTFQgPSA0ICogMTAyNCAqIDEwMjQ7XG5jb25zdCBTWU1CT0xfUFJFVklFV19EQVRBID0gU3ltYm9sKENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBKTtcbmNvbnN0IFNZTUJPTF9DTEVBUkVEX0NPT0tJRVMgPSBTeW1ib2woQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUyk7XG5mdW5jdGlvbiBjbGVhclByZXZpZXdEYXRhKHJlcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKFNZTUJPTF9DTEVBUkVEX0NPT0tJRVMgaW4gcmVzKSB7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGNvbnN0IHsgc2VyaWFsaXplIH0gPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvY29va2llJyk7XG4gICAgY29uc3QgcHJldmlvdXMgPSByZXMuZ2V0SGVhZGVyKCdTZXQtQ29va2llJyk7XG4gICAgcmVzLnNldEhlYWRlcihgU2V0LUNvb2tpZWAsIFtcbiAgICAgICAgLi4udHlwZW9mIHByZXZpb3VzID09PSAnc3RyaW5nJyA/IFtcbiAgICAgICAgICAgIHByZXZpb3VzXG4gICAgICAgIF0gOiBBcnJheS5pc0FycmF5KHByZXZpb3VzKSA/IHByZXZpb3VzIDogW10sXG4gICAgICAgIHNlcmlhbGl6ZShDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTLCAnJywge1xuICAgICAgICAgICAgLy8gVG8gZGVsZXRlIGEgY29va2llLCBzZXQgYGV4cGlyZXNgIHRvIGEgZGF0ZSBpbiB0aGUgcGFzdDpcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4xLjFcbiAgICAgICAgICAgIC8vIGBNYXgtQWdlOiAwYCBpcyBub3QgdmFsaWQsIHRodXMgaWdub3JlZCwgYW5kIHRoZSBjb29raWUgaXMgcGVyc2lzdGVkLlxuICAgICAgICAgICAgZXhwaXJlczogbmV3IERhdGUoMCksXG4gICAgICAgICAgICBodHRwT25seTogdHJ1ZSxcbiAgICAgICAgICAgIHNhbWVTaXRlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyA/ICdub25lJyA6ICdsYXgnLFxuICAgICAgICAgICAgc2VjdXJlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgIHBhdGg6ICcvJyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMucGF0aCAhPT0gdW5kZWZpbmVkID8ge1xuICAgICAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMucGF0aFxuICAgICAgICAgICAgfSA6IHVuZGVmaW5lZFxuICAgICAgICB9KSxcbiAgICAgICAgc2VyaWFsaXplKENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBLCAnJywge1xuICAgICAgICAgICAgLy8gVG8gZGVsZXRlIGEgY29va2llLCBzZXQgYGV4cGlyZXNgIHRvIGEgZGF0ZSBpbiB0aGUgcGFzdDpcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4xLjFcbiAgICAgICAgICAgIC8vIGBNYXgtQWdlOiAwYCBpcyBub3QgdmFsaWQsIHRodXMgaWdub3JlZCwgYW5kIHRoZSBjb29raWUgaXMgcGVyc2lzdGVkLlxuICAgICAgICAgICAgZXhwaXJlczogbmV3IERhdGUoMCksXG4gICAgICAgICAgICBodHRwT25seTogdHJ1ZSxcbiAgICAgICAgICAgIHNhbWVTaXRlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyA/ICdub25lJyA6ICdsYXgnLFxuICAgICAgICAgICAgc2VjdXJlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgIHBhdGg6ICcvJyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMucGF0aCAhPT0gdW5kZWZpbmVkID8ge1xuICAgICAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMucGF0aFxuICAgICAgICAgICAgfSA6IHVuZGVmaW5lZFxuICAgICAgICB9KVxuICAgIF0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXMsIFNZTUJPTF9DTEVBUkVEX0NPT0tJRVMsIHtcbiAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlcztcbn1cbmNsYXNzIEFwaUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHN0YXR1c0NvZGUsIG1lc3NhZ2Upe1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICB9XG59XG5mdW5jdGlvbiBzZW5kRXJyb3IocmVzLCBzdGF0dXNDb2RlLCBtZXNzYWdlKSB7XG4gICAgcmVzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIHJlcy5zdGF0dXNNZXNzYWdlID0gbWVzc2FnZTtcbiAgICByZXMuZW5kKG1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gc2V0TGF6eVByb3AoeyByZXEgfSwgcHJvcCwgZ2V0dGVyKSB7XG4gICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgfTtcbiAgICBjb25zdCBvcHRzUmVzZXQgPSB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxLCBwcm9wLCB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIGdldDogKCk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0dGVyKCk7XG4gICAgICAgICAgICAvLyB3ZSBzZXQgdGhlIHByb3BlcnR5IG9uIHRoZSBvYmplY3QgdG8gYXZvaWQgcmVjYWxjdWxhdGluZyBpdFxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIC4uLm9wdHNSZXNldCxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogKHZhbHVlKT0+e1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIC4uLm9wdHNSZXNldCxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/api-utils/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/action-utils.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/action-utils.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 createServerModuleMap: function() {\n return createServerModuleMap;\n },\n selectWorkerForForwarding: function() {\n return selectWorkerForForwarding;\n }\n});\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _pathhasprefix = __webpack_require__(/*! ../../shared/lib/router/utils/path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nconst _removepathprefix = __webpack_require__(/*! ../../shared/lib/router/utils/remove-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ./work-async-storage.external */ \"./work-async-storage.external\");\nfunction createServerModuleMap({ serverActionsManifest }) {\n return new Proxy({}, {\n get: (_, id)=>{\n var _serverActionsManifest__id, _serverActionsManifest_;\n const workers = (_serverActionsManifest_ = serverActionsManifest[ false ? 0 : 'node']) == null ? void 0 : (_serverActionsManifest__id = _serverActionsManifest_[id]) == null ? void 0 : _serverActionsManifest__id.workers;\n if (!workers) {\n return undefined;\n }\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n let workerEntry;\n if (workStore) {\n workerEntry = workers[normalizeWorkerPageName(workStore.page)];\n } else {\n // If there's no work store defined, we can assume that a server\n // module map is needed during module evaluation, e.g. to create a\n // server action using a higher-order function. Therefore it should be\n // safe to return any entry from the manifest that matches the action\n // ID. They all refer to the same module ID, which must also exist in\n // the current page bundle. TODO: This is currently not guaranteed in\n // Turbopack, and needs to be fixed.\n workerEntry = Object.values(workers).at(0);\n }\n if (!workerEntry) {\n return undefined;\n }\n const { moduleId, async } = workerEntry;\n return {\n id: moduleId,\n name: id,\n chunks: [],\n async\n };\n }\n });\n}\nfunction selectWorkerForForwarding(actionId, pageName, serverActionsManifest) {\n var _serverActionsManifest__actionId;\n const workers = (_serverActionsManifest__actionId = serverActionsManifest[ false ? 0 : 'node'][actionId]) == null ? void 0 : _serverActionsManifest__actionId.workers;\n const workerName = normalizeWorkerPageName(pageName);\n // no workers, nothing to forward to\n if (!workers) return;\n // if there is a worker for this page, no need to forward it.\n if (workers[workerName]) {\n return;\n }\n // otherwise, grab the first worker that has a handler for this action id\n return denormalizeWorkerPageName(Object.keys(workers)[0]);\n}\n/**\n * The flight entry loader keys actions by bundlePath.\n * bundlePath corresponds with the relative path (including 'app') to the page entrypoint.\n */ function normalizeWorkerPageName(pageName) {\n if ((0, _pathhasprefix.pathHasPrefix)(pageName, 'app')) {\n return pageName;\n }\n return 'app' + pageName;\n}\n/**\n * Converts a bundlePath (relative path to the entrypoint) to a routable page name\n */ function denormalizeWorkerPageName(bundlePath) {\n return (0, _apppaths.normalizeAppPath)((0, _removepathprefix.removePathPrefix)(bundlePath, 'app'));\n}\n\n//# sourceMappingURL=action-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2FjdGlvbi11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQkFBa0IsbUJBQU8sQ0FBQyxvSEFBeUM7QUFDbkUsdUJBQXVCLG1CQUFPLENBQUMsZ0lBQStDO0FBQzlFLDBCQUEwQixtQkFBTyxDQUFDLHNJQUFrRDtBQUNwRixrQ0FBa0MsbUJBQU8sQ0FBQyxvRUFBK0I7QUFDekUsaUNBQWlDLHVCQUF1QjtBQUN4RCx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBLDZFQUE2RSxNQUFtQyxHQUFHLENBQU07QUFDekg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtCQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSw4RUFBOEUsTUFBbUMsR0FBRyxDQUFNO0FBQzFIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9hY3Rpb24tdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVTZXJ2ZXJNb2R1bGVNYXA6IG51bGwsXG4gICAgc2VsZWN0V29ya2VyRm9yRm9yd2FyZGluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVTZXJ2ZXJNb2R1bGVNYXA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyTW9kdWxlTWFwO1xuICAgIH0sXG4gICAgc2VsZWN0V29ya2VyRm9yRm9yd2FyZGluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZWxlY3RXb3JrZXJGb3JGb3J3YXJkaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX2FwcHBhdGhzID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiKTtcbmNvbnN0IF9wYXRoaGFzcHJlZml4ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeFwiKTtcbmNvbnN0IF9yZW1vdmVwYXRocHJlZml4ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS1wYXRoLXByZWZpeFwiKTtcbmNvbnN0IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJNb2R1bGVNYXAoeyBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QgfSkge1xuICAgIHJldHVybiBuZXcgUHJveHkoe30sIHtcbiAgICAgICAgZ2V0OiAoXywgaWQpPT57XG4gICAgICAgICAgICB2YXIgX3NlcnZlckFjdGlvbnNNYW5pZmVzdF9faWQsIF9zZXJ2ZXJBY3Rpb25zTWFuaWZlc3RfO1xuICAgICAgICAgICAgY29uc3Qgd29ya2VycyA9IChfc2VydmVyQWN0aW9uc01hbmlmZXN0XyA9IHNlcnZlckFjdGlvbnNNYW5pZmVzdFtwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJyA/ICdlZGdlJyA6ICdub2RlJ10pID09IG51bGwgPyB2b2lkIDAgOiAoX3NlcnZlckFjdGlvbnNNYW5pZmVzdF9faWQgPSBfc2VydmVyQWN0aW9uc01hbmlmZXN0X1tpZF0pID09IG51bGwgPyB2b2lkIDAgOiBfc2VydmVyQWN0aW9uc01hbmlmZXN0X19pZC53b3JrZXJzO1xuICAgICAgICAgICAgaWYgKCF3b3JrZXJzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHdvcmtTdG9yZSA9IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgbGV0IHdvcmtlckVudHJ5O1xuICAgICAgICAgICAgaWYgKHdvcmtTdG9yZSkge1xuICAgICAgICAgICAgICAgIHdvcmtlckVudHJ5ID0gd29ya2Vyc1tub3JtYWxpemVXb3JrZXJQYWdlTmFtZSh3b3JrU3RvcmUucGFnZSldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIHdvcmsgc3RvcmUgZGVmaW5lZCwgd2UgY2FuIGFzc3VtZSB0aGF0IGEgc2VydmVyXG4gICAgICAgICAgICAgICAgLy8gbW9kdWxlIG1hcCBpcyBuZWVkZWQgZHVyaW5nIG1vZHVsZSBldmFsdWF0aW9uLCBlLmcuIHRvIGNyZWF0ZSBhXG4gICAgICAgICAgICAgICAgLy8gc2VydmVyIGFjdGlvbiB1c2luZyBhIGhpZ2hlci1vcmRlciBmdW5jdGlvbi4gVGhlcmVmb3JlIGl0IHNob3VsZCBiZVxuICAgICAgICAgICAgICAgIC8vIHNhZmUgdG8gcmV0dXJuIGFueSBlbnRyeSBmcm9tIHRoZSBtYW5pZmVzdCB0aGF0IG1hdGNoZXMgdGhlIGFjdGlvblxuICAgICAgICAgICAgICAgIC8vIElELiBUaGV5IGFsbCByZWZlciB0byB0aGUgc2FtZSBtb2R1bGUgSUQsIHdoaWNoIG11c3QgYWxzbyBleGlzdCBpblxuICAgICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IHBhZ2UgYnVuZGxlLiBUT0RPOiBUaGlzIGlzIGN1cnJlbnRseSBub3QgZ3VhcmFudGVlZCBpblxuICAgICAgICAgICAgICAgIC8vIFR1cmJvcGFjaywgYW5kIG5lZWRzIHRvIGJlIGZpeGVkLlxuICAgICAgICAgICAgICAgIHdvcmtlckVudHJ5ID0gT2JqZWN0LnZhbHVlcyh3b3JrZXJzKS5hdCgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghd29ya2VyRW50cnkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBtb2R1bGVJZCwgYXN5bmMgfSA9IHdvcmtlckVudHJ5O1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpZDogbW9kdWxlSWQsXG4gICAgICAgICAgICAgICAgbmFtZTogaWQsXG4gICAgICAgICAgICAgICAgY2h1bmtzOiBbXSxcbiAgICAgICAgICAgICAgICBhc3luY1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gc2VsZWN0V29ya2VyRm9yRm9yd2FyZGluZyhhY3Rpb25JZCwgcGFnZU5hbWUsIHNlcnZlckFjdGlvbnNNYW5pZmVzdCkge1xuICAgIHZhciBfc2VydmVyQWN0aW9uc01hbmlmZXN0X19hY3Rpb25JZDtcbiAgICBjb25zdCB3b3JrZXJzID0gKF9zZXJ2ZXJBY3Rpb25zTWFuaWZlc3RfX2FjdGlvbklkID0gc2VydmVyQWN0aW9uc01hbmlmZXN0W3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnID8gJ2VkZ2UnIDogJ25vZGUnXVthY3Rpb25JZF0pID09IG51bGwgPyB2b2lkIDAgOiBfc2VydmVyQWN0aW9uc01hbmlmZXN0X19hY3Rpb25JZC53b3JrZXJzO1xuICAgIGNvbnN0IHdvcmtlck5hbWUgPSBub3JtYWxpemVXb3JrZXJQYWdlTmFtZShwYWdlTmFtZSk7XG4gICAgLy8gbm8gd29ya2Vycywgbm90aGluZyB0byBmb3J3YXJkIHRvXG4gICAgaWYgKCF3b3JrZXJzKSByZXR1cm47XG4gICAgLy8gaWYgdGhlcmUgaXMgYSB3b3JrZXIgZm9yIHRoaXMgcGFnZSwgbm8gbmVlZCB0byBmb3J3YXJkIGl0LlxuICAgIGlmICh3b3JrZXJzW3dvcmtlck5hbWVdKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gb3RoZXJ3aXNlLCBncmFiIHRoZSBmaXJzdCB3b3JrZXIgdGhhdCBoYXMgYSBoYW5kbGVyIGZvciB0aGlzIGFjdGlvbiBpZFxuICAgIHJldHVybiBkZW5vcm1hbGl6ZVdvcmtlclBhZ2VOYW1lKE9iamVjdC5rZXlzKHdvcmtlcnMpWzBdKTtcbn1cbi8qKlxuICogVGhlIGZsaWdodCBlbnRyeSBsb2FkZXIga2V5cyBhY3Rpb25zIGJ5IGJ1bmRsZVBhdGguXG4gKiBidW5kbGVQYXRoIGNvcnJlc3BvbmRzIHdpdGggdGhlIHJlbGF0aXZlIHBhdGggKGluY2x1ZGluZyAnYXBwJykgdG8gdGhlIHBhZ2UgZW50cnlwb2ludC5cbiAqLyBmdW5jdGlvbiBub3JtYWxpemVXb3JrZXJQYWdlTmFtZShwYWdlTmFtZSkge1xuICAgIGlmICgoMCwgX3BhdGhoYXNwcmVmaXgucGF0aEhhc1ByZWZpeCkocGFnZU5hbWUsICdhcHAnKSkge1xuICAgICAgICByZXR1cm4gcGFnZU5hbWU7XG4gICAgfVxuICAgIHJldHVybiAnYXBwJyArIHBhZ2VOYW1lO1xufVxuLyoqXG4gKiBDb252ZXJ0cyBhIGJ1bmRsZVBhdGggKHJlbGF0aXZlIHBhdGggdG8gdGhlIGVudHJ5cG9pbnQpIHRvIGEgcm91dGFibGUgcGFnZSBuYW1lXG4gKi8gZnVuY3Rpb24gZGVub3JtYWxpemVXb3JrZXJQYWdlTmFtZShidW5kbGVQYXRoKSB7XG4gICAgcmV0dXJuICgwLCBfYXBwcGF0aHMubm9ybWFsaXplQXBwUGF0aCkoKDAsIF9yZW1vdmVwYXRocHJlZml4LnJlbW92ZVBhdGhQcmVmaXgpKGJ1bmRsZVBhdGgsICdhcHAnKSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFjdGlvbi11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/action-utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/collect-segment-data.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/collect-segment-data.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"collectSegmentData\", ({\n enumerable: true,\n get: function() {\n return collectSegmentData;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _client = __webpack_require__(/*! react-server-dom-webpack/client */ \"(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js\");\nconst _static = __webpack_require__(/*! react-server-dom-webpack/static */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js\");\nconst _nodewebstreamshelper = __webpack_require__(/*! ../stream-utils/node-web-streams-helper */ \"(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _segmentvalueencoding = __webpack_require__(/*! ../../shared/lib/segment-cache/segment-value-encoding */ \"(rsc)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js\");\nconst _createerrorhandler = __webpack_require__(/*! ./create-error-handler */ \"(rsc)/./node_modules/next/dist/server/app-render/create-error-handler.js\");\nconst filterStackFrame = true ? (__webpack_require__(/*! ../lib/source-maps */ \"(rsc)/./node_modules/next/dist/server/lib/source-maps.js\").filterStackFrameDEV) : 0;\nconst findSourceMapURL = true ? (__webpack_require__(/*! ../lib/source-maps */ \"(rsc)/./node_modules/next/dist/server/lib/source-maps.js\").findSourceMapURLDEV) : 0;\nfunction onSegmentPrerenderError(error) {\n const digest = (0, _createerrorhandler.getDigestForWellKnownError)(error);\n if (digest) {\n return digest;\n }\n// We don't need to log the errors because we would have already done that\n// when generating the original Flight stream for the whole page.\n}\nasync function collectSegmentData(isClientParamParsingEnabled, fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest) {\n // Traverse the router tree and generate a prefetch response for each segment.\n // A mutable map to collect the results as we traverse the route tree.\n const resultMap = new Map();\n // Before we start, warm up the module cache by decoding the page data once.\n // Then we can assume that any remaining async tasks that occur the next time\n // are due to hanging promises caused by dynamic data access. Note we only\n // have to do this once per page, not per individual segment.\n //\n try {\n await (0, _client.createFromReadableStream)((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer), {\n findSourceMapURL,\n serverConsumerManifest\n });\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\n } catch {}\n // Create an abort controller that we'll use to stop the stream.\n const abortController = new AbortController();\n const onCompletedProcessingRouteTree = async ()=>{\n // Since all we're doing is decoding and re-encoding a cached prerender, if\n // serializing the stream takes longer than a microtask, it must because of\n // hanging promises caused by dynamic data.\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\n abortController.abort();\n };\n // Generate a stream for the route tree prefetch. While we're walking the\n // tree, we'll also spawn additional tasks to generate the segment prefetches.\n // The promises for these tasks are pushed to a mutable array that we will\n // await once the route tree is fully rendered.\n const segmentTasks = [];\n const { prelude: treeStream } = await (0, _static.unstable_prerender)(// RootTreePrefetch is not a valid return type for a React component, but\n // we need to use a component so that when we decode the original stream\n // inside of it, the side effects are transferred to the new stream.\n // @ts-expect-error\n /*#__PURE__*/ (0, _jsxruntime.jsx)(PrefetchTreeData, {\n isClientParamParsingEnabled: isClientParamParsingEnabled,\n fullPageDataBuffer: fullPageDataBuffer,\n serverConsumerManifest: serverConsumerManifest,\n clientModules: clientModules,\n staleTime: staleTime,\n segmentTasks: segmentTasks,\n onCompletedProcessingRouteTree: onCompletedProcessingRouteTree\n }), clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError: onSegmentPrerenderError\n });\n // Write the route tree to a special `/_tree` segment.\n const treeBuffer = await (0, _nodewebstreamshelper.streamToBuffer)(treeStream);\n resultMap.set('/_tree', treeBuffer);\n // Now that we've finished rendering the route tree, all the segment tasks\n // should have been spawned. Await them in parallel and write the segment\n // prefetches to the result map.\n for (const [segmentPath, buffer] of (await Promise.all(segmentTasks))){\n resultMap.set(segmentPath, buffer);\n }\n return resultMap;\n}\nasync function PrefetchTreeData({ isClientParamParsingEnabled, fullPageDataBuffer, serverConsumerManifest, clientModules, staleTime, segmentTasks, onCompletedProcessingRouteTree }) {\n // We're currently rendering a Flight response for the route tree prefetch.\n // Inside this component, decode the Flight stream for the whole page. This is\n // a hack to transfer the side effects from the original Flight stream (e.g.\n // Float preloads) onto the Flight stream for the tree prefetch.\n // TODO: React needs a better way to do this. Needed for Server Actions, too.\n const initialRSCPayload = await (0, _client.createFromReadableStream)(createUnclosingPrefetchStream((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer)), {\n findSourceMapURL,\n serverConsumerManifest\n });\n const buildId = initialRSCPayload.b;\n // FlightDataPath is an unsound type, hence the additional checks.\n const flightDataPaths = initialRSCPayload.f;\n if (flightDataPaths.length !== 1 && flightDataPaths[0].length !== 3) {\n console.error('Internal Next.js error: InitialRSCPayload does not match the expected ' + 'shape for a prerendered page during segment prefetch generation.');\n return null;\n }\n const flightRouterState = flightDataPaths[0][0];\n const seedData = flightDataPaths[0][1];\n const head = flightDataPaths[0][2];\n // Compute the route metadata tree by traversing the FlightRouterState. As we\n // walk the tree, we will also spawn a task to produce a prefetch response for\n // each segment.\n const tree = collectSegmentDataImpl(isClientParamParsingEnabled, flightRouterState, buildId, seedData, clientModules, _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY, segmentTasks);\n const isHeadPartial = await isPartialRSCData(head, clientModules);\n // Notify the abort controller that we're done processing the route tree.\n // Anything async that happens after this point must be due to hanging\n // promises in the original stream.\n onCompletedProcessingRouteTree();\n // Render the route tree to a special `/_tree` segment.\n const treePrefetch = {\n buildId,\n tree,\n head,\n isHeadPartial,\n staleTime\n };\n return treePrefetch;\n}\nfunction collectSegmentDataImpl(isClientParamParsingEnabled, route, buildId, seedData, clientModules, requestKey, segmentTasks) {\n // Metadata about the segment. Sent as part of the tree prefetch. Null if\n // there are no children.\n let slotMetadata = null;\n const children = route[1];\n const seedDataChildren = seedData !== null ? seedData[2] : null;\n for(const parallelRouteKey in children){\n const childRoute = children[parallelRouteKey];\n const childSegment = childRoute[0];\n const childSeedData = seedDataChildren !== null ? seedDataChildren[parallelRouteKey] : null;\n const childRequestKey = (0, _segmentvalueencoding.appendSegmentRequestKeyPart)(requestKey, parallelRouteKey, (0, _segmentvalueencoding.createSegmentRequestKeyPart)(childSegment));\n const childTree = collectSegmentDataImpl(isClientParamParsingEnabled, childRoute, buildId, childSeedData, clientModules, childRequestKey, segmentTasks);\n if (slotMetadata === null) {\n slotMetadata = {};\n }\n slotMetadata[parallelRouteKey] = childTree;\n }\n if (seedData !== null) {\n // Spawn a task to write the segment data to a new Flight stream.\n segmentTasks.push(// Since we're already in the middle of a render, wait until after the\n // current task to escape the current rendering context.\n (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>renderSegmentPrefetch(buildId, seedData, requestKey, clientModules)));\n } else {\n // This segment does not have any seed data. Skip generating a prefetch\n // response for it. We'll still include it in the route tree, though.\n // TODO: We should encode in the route tree whether a segment is missing\n // so we don't attempt to fetch it for no reason. As of now this shouldn't\n // ever happen in practice, though.\n }\n const segment = route[0];\n let name;\n let paramType = null;\n let paramKey = null;\n if (typeof segment === 'string') {\n name = segment;\n paramKey = segment;\n paramType = null;\n } else {\n name = segment[0];\n paramKey = segment[1];\n paramType = segment[2];\n }\n // Metadata about the segment. Sent to the client as part of the\n // tree prefetch.\n return {\n name,\n paramType,\n // This value is ommitted from the prefetch response when clientParamParsing\n // is enabled. The flag only exists while we're testing the feature, in\n // case there's a bug and we need to revert.\n // TODO: Remove once clientParamParsing is enabled everywhere.\n paramKey: isClientParamParsingEnabled ? null : paramKey,\n slots: slotMetadata,\n isRootLayout: route[4] === true\n };\n}\nasync function renderSegmentPrefetch(buildId, seedData, requestKey, clientModules) {\n // Render the segment data to a stream.\n // In the future, this is where we can include additional metadata, like the\n // stale time and cache tags.\n const rsc = seedData[1];\n const loading = seedData[3];\n const segmentPrefetch = {\n buildId,\n rsc,\n loading,\n isPartial: await isPartialRSCData(rsc, clientModules)\n };\n // Since all we're doing is decoding and re-encoding a cached prerender, if\n // it takes longer than a microtask, it must because of hanging promises\n // caused by dynamic data. Abort the stream at the end of the current task.\n const abortController = new AbortController();\n (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>abortController.abort());\n const { prelude: segmentStream } = await (0, _static.unstable_prerender)(segmentPrefetch, clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError: onSegmentPrerenderError\n });\n const segmentBuffer = await (0, _nodewebstreamshelper.streamToBuffer)(segmentStream);\n if (requestKey === _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY) {\n return [\n '/_index',\n segmentBuffer\n ];\n } else {\n return [\n requestKey,\n segmentBuffer\n ];\n }\n}\nasync function isPartialRSCData(rsc, clientModules) {\n // We can determine if a segment contains only partial data if it takes longer\n // than a task to encode, because dynamic data is encoded as an infinite\n // promise. We must do this in a separate Flight prerender from the one that\n // actually generates the prefetch stream because we need to include\n // `isPartial` in the stream itself.\n let isPartial = false;\n const abortController = new AbortController();\n (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>{\n // If we haven't yet finished the outer task, then it must be because we\n // accessed dynamic data.\n isPartial = true;\n abortController.abort();\n });\n await (0, _static.unstable_prerender)(rsc, clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError () {},\n onPostpone () {\n // If something postponed, i.e. when Cache Components is not enabled, we can\n // infer that the RSC data is partial.\n isPartial = true;\n }\n });\n return isPartial;\n}\nfunction createUnclosingPrefetchStream(originalFlightStream) {\n // When PPR is enabled, prefetch streams may contain references that never\n // resolve, because that's how we encode dynamic data access. In the decoded\n // object returned by the Flight client, these are reified into hanging\n // promises that suspend during render, which is effectively what we want.\n // The UI resolves when it switches to the dynamic data stream\n // (via useDeferredValue(dynamic, static)).\n //\n // However, the Flight implementation currently errors if the server closes\n // the response before all the references are resolved. As a cheat to work\n // around this, we wrap the original stream in a new stream that never closes,\n // and therefore doesn't error.\n const reader = originalFlightStream.getReader();\n return new ReadableStream({\n async pull (controller) {\n while(true){\n const { done, value } = await reader.read();\n if (!done) {\n // Pass to the target stream and keep consuming the Flight response\n // from the server.\n controller.enqueue(value);\n continue;\n }\n // The server stream has closed. Exit, but intentionally do not close\n // the target stream.\n return;\n }\n }\n });\n}\n\n//# sourceMappingURL=collect-segment-data.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2NvbGxlY3Qtc2VnbWVudC1kYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysc0RBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLGdCQUFnQixtQkFBTyxDQUFDLHdIQUFpQztBQUN6RCxnQkFBZ0IsbUJBQU8sQ0FBQyxxSkFBaUM7QUFDekQsOEJBQThCLG1CQUFPLENBQUMsOEhBQXlDO0FBQy9FLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCw4QkFBOEIsbUJBQU8sQ0FBQyxnSkFBdUQ7QUFDN0YsNEJBQTRCLG1CQUFPLENBQUMsd0dBQXdCO0FBQzVELHlCQUF5QixLQUFxQyxHQUFHLCtIQUFpRCxHQUFHLENBQVM7QUFDOUgseUJBQXlCLEtBQXFDLEdBQUcsK0hBQWlELEdBQUcsQ0FBUztBQUM5SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksc0JBQXNCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsaUpBQWlKO0FBQ25MO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkseUJBQXlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9jb2xsZWN0LXNlZ21lbnQtZGF0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNvbGxlY3RTZWdtZW50RGF0YVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29sbGVjdFNlZ21lbnREYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfY2xpZW50ID0gcmVxdWlyZShcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnRcIik7XG5jb25zdCBfc3RhdGljID0gcmVxdWlyZShcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zdGF0aWNcIik7XG5jb25zdCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIgPSByZXF1aXJlKFwiLi4vc3RyZWFtLXV0aWxzL25vZGUtd2ViLXN0cmVhbXMtaGVscGVyXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuY29uc3QgX3NlZ21lbnR2YWx1ZWVuY29kaW5nID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9zZWdtZW50LXZhbHVlLWVuY29kaW5nXCIpO1xuY29uc3QgX2NyZWF0ZWVycm9yaGFuZGxlciA9IHJlcXVpcmUoXCIuL2NyZWF0ZS1lcnJvci1oYW5kbGVyXCIpO1xuY29uc3QgZmlsdGVyU3RhY2tGcmFtZSA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyByZXF1aXJlKCcuLi9saWIvc291cmNlLW1hcHMnKS5maWx0ZXJTdGFja0ZyYW1lREVWIDogdW5kZWZpbmVkO1xuY29uc3QgZmluZFNvdXJjZU1hcFVSTCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyByZXF1aXJlKCcuLi9saWIvc291cmNlLW1hcHMnKS5maW5kU291cmNlTWFwVVJMREVWIDogdW5kZWZpbmVkO1xuZnVuY3Rpb24gb25TZWdtZW50UHJlcmVuZGVyRXJyb3IoZXJyb3IpIHtcbiAgICBjb25zdCBkaWdlc3QgPSAoMCwgX2NyZWF0ZWVycm9yaGFuZGxlci5nZXREaWdlc3RGb3JXZWxsS25vd25FcnJvcikoZXJyb3IpO1xuICAgIGlmIChkaWdlc3QpIHtcbiAgICAgICAgcmV0dXJuIGRpZ2VzdDtcbiAgICB9XG4vLyBXZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgZXJyb3JzIGJlY2F1c2Ugd2Ugd291bGQgaGF2ZSBhbHJlYWR5IGRvbmUgdGhhdFxuLy8gd2hlbiBnZW5lcmF0aW5nIHRoZSBvcmlnaW5hbCBGbGlnaHQgc3RyZWFtIGZvciB0aGUgd2hvbGUgcGFnZS5cbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RTZWdtZW50RGF0YShpc0NsaWVudFBhcmFtUGFyc2luZ0VuYWJsZWQsIGZ1bGxQYWdlRGF0YUJ1ZmZlciwgc3RhbGVUaW1lLCBjbGllbnRNb2R1bGVzLCBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0KSB7XG4gICAgLy8gVHJhdmVyc2UgdGhlIHJvdXRlciB0cmVlIGFuZCBnZW5lcmF0ZSBhIHByZWZldGNoIHJlc3BvbnNlIGZvciBlYWNoIHNlZ21lbnQuXG4gICAgLy8gQSBtdXRhYmxlIG1hcCB0byBjb2xsZWN0IHRoZSByZXN1bHRzIGFzIHdlIHRyYXZlcnNlIHRoZSByb3V0ZSB0cmVlLlxuICAgIGNvbnN0IHJlc3VsdE1hcCA9IG5ldyBNYXAoKTtcbiAgICAvLyBCZWZvcmUgd2Ugc3RhcnQsIHdhcm0gdXAgdGhlIG1vZHVsZSBjYWNoZSBieSBkZWNvZGluZyB0aGUgcGFnZSBkYXRhIG9uY2UuXG4gICAgLy8gVGhlbiB3ZSBjYW4gYXNzdW1lIHRoYXQgYW55IHJlbWFpbmluZyBhc3luYyB0YXNrcyB0aGF0IG9jY3VyIHRoZSBuZXh0IHRpbWVcbiAgICAvLyBhcmUgZHVlIHRvIGhhbmdpbmcgcHJvbWlzZXMgY2F1c2VkIGJ5IGR5bmFtaWMgZGF0YSBhY2Nlc3MuIE5vdGUgd2Ugb25seVxuICAgIC8vIGhhdmUgdG8gZG8gdGhpcyBvbmNlIHBlciBwYWdlLCBub3QgcGVyIGluZGl2aWR1YWwgc2VnbWVudC5cbiAgICAvL1xuICAgIHRyeSB7XG4gICAgICAgIGF3YWl0ICgwLCBfY2xpZW50LmNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSkoKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKShmdWxsUGFnZURhdGFCdWZmZXIpLCB7XG4gICAgICAgICAgICBmaW5kU291cmNlTWFwVVJMLFxuICAgICAgICAgICAgc2VydmVyQ29uc3VtZXJNYW5pZmVzdFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgKDAsIF9zY2hlZHVsZXIud2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2spKCk7XG4gICAgfSBjYXRjaCAge31cbiAgICAvLyBDcmVhdGUgYW4gYWJvcnQgY29udHJvbGxlciB0aGF0IHdlJ2xsIHVzZSB0byBzdG9wIHRoZSBzdHJlYW0uXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IG9uQ29tcGxldGVkUHJvY2Vzc2luZ1JvdXRlVHJlZSA9IGFzeW5jICgpPT57XG4gICAgICAgIC8vIFNpbmNlIGFsbCB3ZSdyZSBkb2luZyBpcyBkZWNvZGluZyBhbmQgcmUtZW5jb2RpbmcgYSBjYWNoZWQgcHJlcmVuZGVyLCBpZlxuICAgICAgICAvLyBzZXJpYWxpemluZyB0aGUgc3RyZWFtIHRha2VzIGxvbmdlciB0aGFuIGEgbWljcm90YXNrLCBpdCBtdXN0IGJlY2F1c2Ugb2ZcbiAgICAgICAgLy8gaGFuZ2luZyBwcm9taXNlcyBjYXVzZWQgYnkgZHluYW1pYyBkYXRhLlxuICAgICAgICBhd2FpdCAoMCwgX3NjaGVkdWxlci53YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaykoKTtcbiAgICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgfTtcbiAgICAvLyBHZW5lcmF0ZSBhIHN0cmVhbSBmb3IgdGhlIHJvdXRlIHRyZWUgcHJlZmV0Y2guIFdoaWxlIHdlJ3JlIHdhbGtpbmcgdGhlXG4gICAgLy8gdHJlZSwgd2UnbGwgYWxzbyBzcGF3biBhZGRpdGlvbmFsIHRhc2tzIHRvIGdlbmVyYXRlIHRoZSBzZWdtZW50IHByZWZldGNoZXMuXG4gICAgLy8gVGhlIHByb21pc2VzIGZvciB0aGVzZSB0YXNrcyBhcmUgcHVzaGVkIHRvIGEgbXV0YWJsZSBhcnJheSB0aGF0IHdlIHdpbGxcbiAgICAvLyBhd2FpdCBvbmNlIHRoZSByb3V0ZSB0cmVlIGlzIGZ1bGx5IHJlbmRlcmVkLlxuICAgIGNvbnN0IHNlZ21lbnRUYXNrcyA9IFtdO1xuICAgIGNvbnN0IHsgcHJlbHVkZTogdHJlZVN0cmVhbSB9ID0gYXdhaXQgKDAsIF9zdGF0aWMudW5zdGFibGVfcHJlcmVuZGVyKSgvLyBSb290VHJlZVByZWZldGNoIGlzIG5vdCBhIHZhbGlkIHJldHVybiB0eXBlIGZvciBhIFJlYWN0IGNvbXBvbmVudCwgYnV0XG4gICAgLy8gd2UgbmVlZCB0byB1c2UgYSBjb21wb25lbnQgc28gdGhhdCB3aGVuIHdlIGRlY29kZSB0aGUgb3JpZ2luYWwgc3RyZWFtXG4gICAgLy8gaW5zaWRlIG9mIGl0LCB0aGUgc2lkZSBlZmZlY3RzIGFyZSB0cmFuc2ZlcnJlZCB0byB0aGUgbmV3IHN0cmVhbS5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShQcmVmZXRjaFRyZWVEYXRhLCB7XG4gICAgICAgIGlzQ2xpZW50UGFyYW1QYXJzaW5nRW5hYmxlZDogaXNDbGllbnRQYXJhbVBhcnNpbmdFbmFibGVkLFxuICAgICAgICBmdWxsUGFnZURhdGFCdWZmZXI6IGZ1bGxQYWdlRGF0YUJ1ZmZlcixcbiAgICAgICAgc2VydmVyQ29uc3VtZXJNYW5pZmVzdDogc2VydmVyQ29uc3VtZXJNYW5pZmVzdCxcbiAgICAgICAgY2xpZW50TW9kdWxlczogY2xpZW50TW9kdWxlcyxcbiAgICAgICAgc3RhbGVUaW1lOiBzdGFsZVRpbWUsXG4gICAgICAgIHNlZ21lbnRUYXNrczogc2VnbWVudFRhc2tzLFxuICAgICAgICBvbkNvbXBsZXRlZFByb2Nlc3NpbmdSb3V0ZVRyZWU6IG9uQ29tcGxldGVkUHJvY2Vzc2luZ1JvdXRlVHJlZVxuICAgIH0pLCBjbGllbnRNb2R1bGVzLCB7XG4gICAgICAgIGZpbHRlclN0YWNrRnJhbWUsXG4gICAgICAgIHNpZ25hbDogYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgb25FcnJvcjogb25TZWdtZW50UHJlcmVuZGVyRXJyb3JcbiAgICB9KTtcbiAgICAvLyBXcml0ZSB0aGUgcm91dGUgdHJlZSB0byBhIHNwZWNpYWwgYC9fdHJlZWAgc2VnbWVudC5cbiAgICBjb25zdCB0cmVlQnVmZmVyID0gYXdhaXQgKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Ub0J1ZmZlcikodHJlZVN0cmVhbSk7XG4gICAgcmVzdWx0TWFwLnNldCgnL190cmVlJywgdHJlZUJ1ZmZlcik7XG4gICAgLy8gTm93IHRoYXQgd2UndmUgZmluaXNoZWQgcmVuZGVyaW5nIHRoZSByb3V0ZSB0cmVlLCBhbGwgdGhlIHNlZ21lbnQgdGFza3NcbiAgICAvLyBzaG91bGQgaGF2ZSBiZWVuIHNwYXduZWQuIEF3YWl0IHRoZW0gaW4gcGFyYWxsZWwgYW5kIHdyaXRlIHRoZSBzZWdtZW50XG4gICAgLy8gcHJlZmV0Y2hlcyB0byB0aGUgcmVzdWx0IG1hcC5cbiAgICBmb3IgKGNvbnN0IFtzZWdtZW50UGF0aCwgYnVmZmVyXSBvZiAoYXdhaXQgUHJvbWlzZS5hbGwoc2VnbWVudFRhc2tzKSkpe1xuICAgICAgICByZXN1bHRNYXAuc2V0KHNlZ21lbnRQYXRoLCBidWZmZXIpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0TWFwO1xufVxuYXN5bmMgZnVuY3Rpb24gUHJlZmV0Y2hUcmVlRGF0YSh7IGlzQ2xpZW50UGFyYW1QYXJzaW5nRW5hYmxlZCwgZnVsbFBhZ2VEYXRhQnVmZmVyLCBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0LCBjbGllbnRNb2R1bGVzLCBzdGFsZVRpbWUsIHNlZ21lbnRUYXNrcywgb25Db21wbGV0ZWRQcm9jZXNzaW5nUm91dGVUcmVlIH0pIHtcbiAgICAvLyBXZSdyZSBjdXJyZW50bHkgcmVuZGVyaW5nIGEgRmxpZ2h0IHJlc3BvbnNlIGZvciB0aGUgcm91dGUgdHJlZSBwcmVmZXRjaC5cbiAgICAvLyBJbnNpZGUgdGhpcyBjb21wb25lbnQsIGRlY29kZSB0aGUgRmxpZ2h0IHN0cmVhbSBmb3IgdGhlIHdob2xlIHBhZ2UuIFRoaXMgaXNcbiAgICAvLyBhIGhhY2sgdG8gdHJhbnNmZXIgdGhlIHNpZGUgZWZmZWN0cyBmcm9tIHRoZSBvcmlnaW5hbCBGbGlnaHQgc3RyZWFtIChlLmcuXG4gICAgLy8gRmxvYXQgcHJlbG9hZHMpIG9udG8gdGhlIEZsaWdodCBzdHJlYW0gZm9yIHRoZSB0cmVlIHByZWZldGNoLlxuICAgIC8vIFRPRE86IFJlYWN0IG5lZWRzIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzLiBOZWVkZWQgZm9yIFNlcnZlciBBY3Rpb25zLCB0b28uXG4gICAgY29uc3QgaW5pdGlhbFJTQ1BheWxvYWQgPSBhd2FpdCAoMCwgX2NsaWVudC5jcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0pKGNyZWF0ZVVuY2xvc2luZ1ByZWZldGNoU3RyZWFtKCgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtRnJvbUJ1ZmZlcikoZnVsbFBhZ2VEYXRhQnVmZmVyKSksIHtcbiAgICAgICAgZmluZFNvdXJjZU1hcFVSTCxcbiAgICAgICAgc2VydmVyQ29uc3VtZXJNYW5pZmVzdFxuICAgIH0pO1xuICAgIGNvbnN0IGJ1aWxkSWQgPSBpbml0aWFsUlNDUGF5bG9hZC5iO1xuICAgIC8vIEZsaWdodERhdGFQYXRoIGlzIGFuIHVuc291bmQgdHlwZSwgaGVuY2UgdGhlIGFkZGl0aW9uYWwgY2hlY2tzLlxuICAgIGNvbnN0IGZsaWdodERhdGFQYXRocyA9IGluaXRpYWxSU0NQYXlsb2FkLmY7XG4gICAgaWYgKGZsaWdodERhdGFQYXRocy5sZW5ndGggIT09IDEgJiYgZmxpZ2h0RGF0YVBhdGhzWzBdLmxlbmd0aCAhPT0gMykge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdJbnRlcm5hbCBOZXh0LmpzIGVycm9yOiBJbml0aWFsUlNDUGF5bG9hZCBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgJyArICdzaGFwZSBmb3IgYSBwcmVyZW5kZXJlZCBwYWdlIGR1cmluZyBzZWdtZW50IHByZWZldGNoIGdlbmVyYXRpb24uJyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBmbGlnaHRSb3V0ZXJTdGF0ZSA9IGZsaWdodERhdGFQYXRoc1swXVswXTtcbiAgICBjb25zdCBzZWVkRGF0YSA9IGZsaWdodERhdGFQYXRoc1swXVsxXTtcbiAgICBjb25zdCBoZWFkID0gZmxpZ2h0RGF0YVBhdGhzWzBdWzJdO1xuICAgIC8vIENvbXB1dGUgdGhlIHJvdXRlIG1ldGFkYXRhIHRyZWUgYnkgdHJhdmVyc2luZyB0aGUgRmxpZ2h0Um91dGVyU3RhdGUuIEFzIHdlXG4gICAgLy8gd2FsayB0aGUgdHJlZSwgd2Ugd2lsbCBhbHNvIHNwYXduIGEgdGFzayB0byBwcm9kdWNlIGEgcHJlZmV0Y2ggcmVzcG9uc2UgZm9yXG4gICAgLy8gZWFjaCBzZWdtZW50LlxuICAgIGNvbnN0IHRyZWUgPSBjb2xsZWN0U2VnbWVudERhdGFJbXBsKGlzQ2xpZW50UGFyYW1QYXJzaW5nRW5hYmxlZCwgZmxpZ2h0Um91dGVyU3RhdGUsIGJ1aWxkSWQsIHNlZWREYXRhLCBjbGllbnRNb2R1bGVzLCBfc2VnbWVudHZhbHVlZW5jb2RpbmcuUk9PVF9TRUdNRU5UX1JFUVVFU1RfS0VZLCBzZWdtZW50VGFza3MpO1xuICAgIGNvbnN0IGlzSGVhZFBhcnRpYWwgPSBhd2FpdCBpc1BhcnRpYWxSU0NEYXRhKGhlYWQsIGNsaWVudE1vZHVsZXMpO1xuICAgIC8vIE5vdGlmeSB0aGUgYWJvcnQgY29udHJvbGxlciB0aGF0IHdlJ3JlIGRvbmUgcHJvY2Vzc2luZyB0aGUgcm91dGUgdHJlZS5cbiAgICAvLyBBbnl0aGluZyBhc3luYyB0aGF0IGhhcHBlbnMgYWZ0ZXIgdGhpcyBwb2ludCBtdXN0IGJlIGR1ZSB0byBoYW5naW5nXG4gICAgLy8gcHJvbWlzZXMgaW4gdGhlIG9yaWdpbmFsIHN0cmVhbS5cbiAgICBvbkNvbXBsZXRlZFByb2Nlc3NpbmdSb3V0ZVRyZWUoKTtcbiAgICAvLyBSZW5kZXIgdGhlIHJvdXRlIHRyZWUgdG8gYSBzcGVjaWFsIGAvX3RyZWVgIHNlZ21lbnQuXG4gICAgY29uc3QgdHJlZVByZWZldGNoID0ge1xuICAgICAgICBidWlsZElkLFxuICAgICAgICB0cmVlLFxuICAgICAgICBoZWFkLFxuICAgICAgICBpc0hlYWRQYXJ0aWFsLFxuICAgICAgICBzdGFsZVRpbWVcbiAgICB9O1xuICAgIHJldHVybiB0cmVlUHJlZmV0Y2g7XG59XG5mdW5jdGlvbiBjb2xsZWN0U2VnbWVudERhdGFJbXBsKGlzQ2xpZW50UGFyYW1QYXJzaW5nRW5hYmxlZCwgcm91dGUsIGJ1aWxkSWQsIHNlZWREYXRhLCBjbGllbnRNb2R1bGVzLCByZXF1ZXN0S2V5LCBzZWdtZW50VGFza3MpIHtcbiAgICAvLyBNZXRhZGF0YSBhYm91dCB0aGUgc2VnbWVudC4gU2VudCBhcyBwYXJ0IG9mIHRoZSB0cmVlIHByZWZldGNoLiBOdWxsIGlmXG4gICAgLy8gdGhlcmUgYXJlIG5vIGNoaWxkcmVuLlxuICAgIGxldCBzbG90TWV0YWRhdGEgPSBudWxsO1xuICAgIGNvbnN0IGNoaWxkcmVuID0gcm91dGVbMV07XG4gICAgY29uc3Qgc2VlZERhdGFDaGlsZHJlbiA9IHNlZWREYXRhICE9PSBudWxsID8gc2VlZERhdGFbMl0gOiBudWxsO1xuICAgIGZvcihjb25zdCBwYXJhbGxlbFJvdXRlS2V5IGluIGNoaWxkcmVuKXtcbiAgICAgICAgY29uc3QgY2hpbGRSb3V0ZSA9IGNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldO1xuICAgICAgICBjb25zdCBjaGlsZFNlZ21lbnQgPSBjaGlsZFJvdXRlWzBdO1xuICAgICAgICBjb25zdCBjaGlsZFNlZWREYXRhID0gc2VlZERhdGFDaGlsZHJlbiAhPT0gbnVsbCA/IHNlZWREYXRhQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV0gOiBudWxsO1xuICAgICAgICBjb25zdCBjaGlsZFJlcXVlc3RLZXkgPSAoMCwgX3NlZ21lbnR2YWx1ZWVuY29kaW5nLmFwcGVuZFNlZ21lbnRSZXF1ZXN0S2V5UGFydCkocmVxdWVzdEtleSwgcGFyYWxsZWxSb3V0ZUtleSwgKDAsIF9zZWdtZW50dmFsdWVlbmNvZGluZy5jcmVhdGVTZWdtZW50UmVxdWVzdEtleVBhcnQpKGNoaWxkU2VnbWVudCkpO1xuICAgICAgICBjb25zdCBjaGlsZFRyZWUgPSBjb2xsZWN0U2VnbWVudERhdGFJbXBsKGlzQ2xpZW50UGFyYW1QYXJzaW5nRW5hYmxlZCwgY2hpbGRSb3V0ZSwgYnVpbGRJZCwgY2hpbGRTZWVkRGF0YSwgY2xpZW50TW9kdWxlcywgY2hpbGRSZXF1ZXN0S2V5LCBzZWdtZW50VGFza3MpO1xuICAgICAgICBpZiAoc2xvdE1ldGFkYXRhID09PSBudWxsKSB7XG4gICAgICAgICAgICBzbG90TWV0YWRhdGEgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBzbG90TWV0YWRhdGFbcGFyYWxsZWxSb3V0ZUtleV0gPSBjaGlsZFRyZWU7XG4gICAgfVxuICAgIGlmIChzZWVkRGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAvLyBTcGF3biBhIHRhc2sgdG8gd3JpdGUgdGhlIHNlZ21lbnQgZGF0YSB0byBhIG5ldyBGbGlnaHQgc3RyZWFtLlxuICAgICAgICBzZWdtZW50VGFza3MucHVzaCgvLyBTaW5jZSB3ZSdyZSBhbHJlYWR5IGluIHRoZSBtaWRkbGUgb2YgYSByZW5kZXIsIHdhaXQgdW50aWwgYWZ0ZXIgdGhlXG4gICAgICAgIC8vIGN1cnJlbnQgdGFzayB0byBlc2NhcGUgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGNvbnRleHQuXG4gICAgICAgICgwLCBfc2NoZWR1bGVyLndhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKSgpLnRoZW4oKCk9PnJlbmRlclNlZ21lbnRQcmVmZXRjaChidWlsZElkLCBzZWVkRGF0YSwgcmVxdWVzdEtleSwgY2xpZW50TW9kdWxlcykpKTtcbiAgICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgc2VnbWVudCBkb2VzIG5vdCBoYXZlIGFueSBzZWVkIGRhdGEuIFNraXAgZ2VuZXJhdGluZyBhIHByZWZldGNoXG4gICAgLy8gcmVzcG9uc2UgZm9yIGl0LiBXZSdsbCBzdGlsbCBpbmNsdWRlIGl0IGluIHRoZSByb3V0ZSB0cmVlLCB0aG91Z2guXG4gICAgLy8gVE9ETzogV2Ugc2hvdWxkIGVuY29kZSBpbiB0aGUgcm91dGUgdHJlZSB3aGV0aGVyIGEgc2VnbWVudCBpcyBtaXNzaW5nXG4gICAgLy8gc28gd2UgZG9uJ3QgYXR0ZW1wdCB0byBmZXRjaCBpdCBmb3Igbm8gcmVhc29uLiBBcyBvZiBub3cgdGhpcyBzaG91bGRuJ3RcbiAgICAvLyBldmVyIGhhcHBlbiBpbiBwcmFjdGljZSwgdGhvdWdoLlxuICAgIH1cbiAgICBjb25zdCBzZWdtZW50ID0gcm91dGVbMF07XG4gICAgbGV0IG5hbWU7XG4gICAgbGV0IHBhcmFtVHlwZSA9IG51bGw7XG4gICAgbGV0IHBhcmFtS2V5ID0gbnVsbDtcbiAgICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG5hbWUgPSBzZWdtZW50O1xuICAgICAgICBwYXJhbUtleSA9IHNlZ21lbnQ7XG4gICAgICAgIHBhcmFtVHlwZSA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbmFtZSA9IHNlZ21lbnRbMF07XG4gICAgICAgIHBhcmFtS2V5ID0gc2VnbWVudFsxXTtcbiAgICAgICAgcGFyYW1UeXBlID0gc2VnbWVudFsyXTtcbiAgICB9XG4gICAgLy8gTWV0YWRhdGEgYWJvdXQgdGhlIHNlZ21lbnQuIFNlbnQgdG8gdGhlIGNsaWVudCBhcyBwYXJ0IG9mIHRoZVxuICAgIC8vIHRyZWUgcHJlZmV0Y2guXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGFyYW1UeXBlLFxuICAgICAgICAvLyBUaGlzIHZhbHVlIGlzIG9tbWl0dGVkIGZyb20gdGhlIHByZWZldGNoIHJlc3BvbnNlIHdoZW4gY2xpZW50UGFyYW1QYXJzaW5nXG4gICAgICAgIC8vIGlzIGVuYWJsZWQuIFRoZSBmbGFnIG9ubHkgZXhpc3RzIHdoaWxlIHdlJ3JlIHRlc3RpbmcgdGhlIGZlYXR1cmUsIGluXG4gICAgICAgIC8vIGNhc2UgdGhlcmUncyBhIGJ1ZyBhbmQgd2UgbmVlZCB0byByZXZlcnQuXG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBvbmNlIGNsaWVudFBhcmFtUGFyc2luZyBpcyBlbmFibGVkIGV2ZXJ5d2hlcmUuXG4gICAgICAgIHBhcmFtS2V5OiBpc0NsaWVudFBhcmFtUGFyc2luZ0VuYWJsZWQgPyBudWxsIDogcGFyYW1LZXksXG4gICAgICAgIHNsb3RzOiBzbG90TWV0YWRhdGEsXG4gICAgICAgIGlzUm9vdExheW91dDogcm91dGVbNF0gPT09IHRydWVcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyU2VnbWVudFByZWZldGNoKGJ1aWxkSWQsIHNlZWREYXRhLCByZXF1ZXN0S2V5LCBjbGllbnRNb2R1bGVzKSB7XG4gICAgLy8gUmVuZGVyIHRoZSBzZWdtZW50IGRhdGEgdG8gYSBzdHJlYW0uXG4gICAgLy8gSW4gdGhlIGZ1dHVyZSwgdGhpcyBpcyB3aGVyZSB3ZSBjYW4gaW5jbHVkZSBhZGRpdGlvbmFsIG1ldGFkYXRhLCBsaWtlIHRoZVxuICAgIC8vIHN0YWxlIHRpbWUgYW5kIGNhY2hlIHRhZ3MuXG4gICAgY29uc3QgcnNjID0gc2VlZERhdGFbMV07XG4gICAgY29uc3QgbG9hZGluZyA9IHNlZWREYXRhWzNdO1xuICAgIGNvbnN0IHNlZ21lbnRQcmVmZXRjaCA9IHtcbiAgICAgICAgYnVpbGRJZCxcbiAgICAgICAgcnNjLFxuICAgICAgICBsb2FkaW5nLFxuICAgICAgICBpc1BhcnRpYWw6IGF3YWl0IGlzUGFydGlhbFJTQ0RhdGEocnNjLCBjbGllbnRNb2R1bGVzKVxuICAgIH07XG4gICAgLy8gU2luY2UgYWxsIHdlJ3JlIGRvaW5nIGlzIGRlY29kaW5nIGFuZCByZS1lbmNvZGluZyBhIGNhY2hlZCBwcmVyZW5kZXIsIGlmXG4gICAgLy8gaXQgdGFrZXMgbG9uZ2VyIHRoYW4gYSBtaWNyb3Rhc2ssIGl0IG11c3QgYmVjYXVzZSBvZiBoYW5naW5nIHByb21pc2VzXG4gICAgLy8gY2F1c2VkIGJ5IGR5bmFtaWMgZGF0YS4gQWJvcnQgdGhlIHN0cmVhbSBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHRhc2suXG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICgwLCBfc2NoZWR1bGVyLndhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKSgpLnRoZW4oKCk9PmFib3J0Q29udHJvbGxlci5hYm9ydCgpKTtcbiAgICBjb25zdCB7IHByZWx1ZGU6IHNlZ21lbnRTdHJlYW0gfSA9IGF3YWl0ICgwLCBfc3RhdGljLnVuc3RhYmxlX3ByZXJlbmRlcikoc2VnbWVudFByZWZldGNoLCBjbGllbnRNb2R1bGVzLCB7XG4gICAgICAgIGZpbHRlclN0YWNrRnJhbWUsXG4gICAgICAgIHNpZ25hbDogYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgb25FcnJvcjogb25TZWdtZW50UHJlcmVuZGVyRXJyb3JcbiAgICB9KTtcbiAgICBjb25zdCBzZWdtZW50QnVmZmVyID0gYXdhaXQgKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Ub0J1ZmZlcikoc2VnbWVudFN0cmVhbSk7XG4gICAgaWYgKHJlcXVlc3RLZXkgPT09IF9zZWdtZW50dmFsdWVlbmNvZGluZy5ST09UX1NFR01FTlRfUkVRVUVTVF9LRVkpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICcvX2luZGV4JyxcbiAgICAgICAgICAgIHNlZ21lbnRCdWZmZXJcbiAgICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgcmVxdWVzdEtleSxcbiAgICAgICAgICAgIHNlZ21lbnRCdWZmZXJcbiAgICAgICAgXTtcbiAgICB9XG59XG5hc3luYyBmdW5jdGlvbiBpc1BhcnRpYWxSU0NEYXRhKHJzYywgY2xpZW50TW9kdWxlcykge1xuICAgIC8vIFdlIGNhbiBkZXRlcm1pbmUgaWYgYSBzZWdtZW50IGNvbnRhaW5zIG9ubHkgcGFydGlhbCBkYXRhIGlmIGl0IHRha2VzIGxvbmdlclxuICAgIC8vIHRoYW4gYSB0YXNrIHRvIGVuY29kZSwgYmVjYXVzZSBkeW5hbWljIGRhdGEgaXMgZW5jb2RlZCBhcyBhbiBpbmZpbml0ZVxuICAgIC8vIHByb21pc2UuIFdlIG11c3QgZG8gdGhpcyBpbiBhIHNlcGFyYXRlIEZsaWdodCBwcmVyZW5kZXIgZnJvbSB0aGUgb25lIHRoYXRcbiAgICAvLyBhY3R1YWxseSBnZW5lcmF0ZXMgdGhlIHByZWZldGNoIHN0cmVhbSBiZWNhdXNlIHdlIG5lZWQgdG8gaW5jbHVkZVxuICAgIC8vIGBpc1BhcnRpYWxgIGluIHRoZSBzdHJlYW0gaXRzZWxmLlxuICAgIGxldCBpc1BhcnRpYWwgPSBmYWxzZTtcbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgKDAsIF9zY2hlZHVsZXIud2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2spKCkudGhlbigoKT0+e1xuICAgICAgICAvLyBJZiB3ZSBoYXZlbid0IHlldCBmaW5pc2hlZCB0aGUgb3V0ZXIgdGFzaywgdGhlbiBpdCBtdXN0IGJlIGJlY2F1c2Ugd2VcbiAgICAgICAgLy8gYWNjZXNzZWQgZHluYW1pYyBkYXRhLlxuICAgICAgICBpc1BhcnRpYWwgPSB0cnVlO1xuICAgICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICB9KTtcbiAgICBhd2FpdCAoMCwgX3N0YXRpYy51bnN0YWJsZV9wcmVyZW5kZXIpKHJzYywgY2xpZW50TW9kdWxlcywge1xuICAgICAgICBmaWx0ZXJTdGFja0ZyYW1lLFxuICAgICAgICBzaWduYWw6IGFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIG9uRXJyb3IgKCkge30sXG4gICAgICAgIG9uUG9zdHBvbmUgKCkge1xuICAgICAgICAgICAgLy8gSWYgc29tZXRoaW5nIHBvc3Rwb25lZCwgaS5lLiB3aGVuIENhY2hlIENvbXBvbmVudHMgaXMgbm90IGVuYWJsZWQsIHdlIGNhblxuICAgICAgICAgICAgLy8gaW5mZXIgdGhhdCB0aGUgUlNDIGRhdGEgaXMgcGFydGlhbC5cbiAgICAgICAgICAgIGlzUGFydGlhbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaXNQYXJ0aWFsO1xufVxuZnVuY3Rpb24gY3JlYXRlVW5jbG9zaW5nUHJlZmV0Y2hTdHJlYW0ob3JpZ2luYWxGbGlnaHRTdHJlYW0pIHtcbiAgICAvLyBXaGVuIFBQUiBpcyBlbmFibGVkLCBwcmVmZXRjaCBzdHJlYW1zIG1heSBjb250YWluIHJlZmVyZW5jZXMgdGhhdCBuZXZlclxuICAgIC8vIHJlc29sdmUsIGJlY2F1c2UgdGhhdCdzIGhvdyB3ZSBlbmNvZGUgZHluYW1pYyBkYXRhIGFjY2Vzcy4gSW4gdGhlIGRlY29kZWRcbiAgICAvLyBvYmplY3QgcmV0dXJuZWQgYnkgdGhlIEZsaWdodCBjbGllbnQsIHRoZXNlIGFyZSByZWlmaWVkIGludG8gaGFuZ2luZ1xuICAgIC8vIHByb21pc2VzIHRoYXQgc3VzcGVuZCBkdXJpbmcgcmVuZGVyLCB3aGljaCBpcyBlZmZlY3RpdmVseSB3aGF0IHdlIHdhbnQuXG4gICAgLy8gVGhlIFVJIHJlc29sdmVzIHdoZW4gaXQgc3dpdGNoZXMgdG8gdGhlIGR5bmFtaWMgZGF0YSBzdHJlYW1cbiAgICAvLyAodmlhIHVzZURlZmVycmVkVmFsdWUoZHluYW1pYywgc3RhdGljKSkuXG4gICAgLy9cbiAgICAvLyBIb3dldmVyLCB0aGUgRmxpZ2h0IGltcGxlbWVudGF0aW9uIGN1cnJlbnRseSBlcnJvcnMgaWYgdGhlIHNlcnZlciBjbG9zZXNcbiAgICAvLyB0aGUgcmVzcG9uc2UgYmVmb3JlIGFsbCB0aGUgcmVmZXJlbmNlcyBhcmUgcmVzb2x2ZWQuIEFzIGEgY2hlYXQgdG8gd29ya1xuICAgIC8vIGFyb3VuZCB0aGlzLCB3ZSB3cmFwIHRoZSBvcmlnaW5hbCBzdHJlYW0gaW4gYSBuZXcgc3RyZWFtIHRoYXQgbmV2ZXIgY2xvc2VzLFxuICAgIC8vIGFuZCB0aGVyZWZvcmUgZG9lc24ndCBlcnJvci5cbiAgICBjb25zdCByZWFkZXIgPSBvcmlnaW5hbEZsaWdodFN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgcHVsbCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgd2hpbGUodHJ1ZSl7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRvbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUGFzcyB0byB0aGUgdGFyZ2V0IHN0cmVhbSBhbmQga2VlcCBjb25zdW1pbmcgdGhlIEZsaWdodCByZXNwb25zZVxuICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBUaGUgc2VydmVyIHN0cmVhbSBoYXMgY2xvc2VkLiBFeGl0LCBidXQgaW50ZW50aW9uYWxseSBkbyBub3QgY2xvc2VcbiAgICAgICAgICAgICAgICAvLyB0aGUgdGFyZ2V0IHN0cmVhbS5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29sbGVjdC1zZWdtZW50LWRhdGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/collect-segment-data.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/create-error-handler.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/create-error-handler.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 createFlightReactServerErrorHandler: function() {\n return createFlightReactServerErrorHandler;\n },\n createHTMLErrorHandler: function() {\n return createHTMLErrorHandler;\n },\n createHTMLReactServerErrorHandler: function() {\n return createHTMLReactServerErrorHandler;\n },\n getDigestForWellKnownError: function() {\n return getDigestForWellKnownError;\n },\n isUserLandError: function() {\n return isUserLandError;\n }\n});\nconst _stringhash = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/string-hash */ \"(rsc)/./node_modules/next/dist/compiled/string-hash/index.js\"));\nconst _formatservererror = __webpack_require__(/*! ../../lib/format-server-error */ \"(rsc)/./node_modules/next/dist/lib/format-server-error.js\");\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _pipereadable = __webpack_require__(/*! ../pipe-readable */ \"(rsc)/./node_modules/next/dist/server/pipe-readable.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nconst _isnextroutererror = __webpack_require__(/*! ../../client/components/is-next-router-error */ \"(rsc)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _dynamicrendering = __webpack_require__(/*! ./dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _iserror = __webpack_require__(/*! ../../lib/is-error */ \"(rsc)/./node_modules/next/dist/lib/is-error.js\");\nconst _errortelemetryutils = __webpack_require__(/*! ../../lib/error-telemetry-utils */ \"(rsc)/./node_modules/next/dist/lib/error-telemetry-utils.js\");\nconst _reactlargeshellerror = __webpack_require__(/*! ./react-large-shell-error */ \"(rsc)/./node_modules/next/dist/server/app-render/react-large-shell-error.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction getDigestForWellKnownError(error) {\n // If we're bailing out to CSR, we don't need to log the error.\n if ((0, _bailouttocsr.isBailoutToCSRError)(error)) return error.digest;\n // If this is a navigation error, we don't need to log the error.\n if ((0, _isnextroutererror.isNextRouterError)(error)) return error.digest;\n // If this error occurs, we know that we should be stopping the static\n // render. This is only thrown in static generation when PPR is not enabled,\n // which causes the whole page to be marked as dynamic. We don't need to\n // tell the user about this error, as it's not actionable.\n if ((0, _hooksservercontext.isDynamicServerError)(error)) return error.digest;\n // If this is a prerender interrupted error, we don't need to log the error.\n if ((0, _dynamicrendering.isPrerenderInterruptedError)(error)) return error.digest;\n return undefined;\n}\nfunction createFlightReactServerErrorHandler(shouldFormatError, onReactServerRenderError) {\n return (thrownValue)=>{\n if (typeof thrownValue === 'string') {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n return (0, _stringhash.default)(thrownValue).toString();\n }\n // If the response was closed, we don't need to log the error.\n if ((0, _pipereadable.isAbortError)(thrownValue)) return;\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n const err = (0, _iserror.getProperError)(thrownValue);\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (!err.digest) {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n err.digest = (0, _stringhash.default)(err.message + err.stack || '').toString();\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n (0, _formatservererror.formatServerError)(err);\n }\n // Record exception in an active span, if available.\n const span = (0, _tracer.getTracer)().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setAttribute('error.type', err.name);\n span.setStatus({\n code: _tracer.SpanStatusCode.ERROR,\n message: err.message\n });\n }\n onReactServerRenderError(err);\n return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);\n };\n}\nfunction createHTMLReactServerErrorHandler(shouldFormatError, isNextExport, reactServerErrors, silenceLogger, onReactServerRenderError) {\n return (thrownValue)=>{\n var _err_message;\n if (typeof thrownValue === 'string') {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n return (0, _stringhash.default)(thrownValue).toString();\n }\n // If the response was closed, we don't need to log the error.\n if ((0, _pipereadable.isAbortError)(thrownValue)) return;\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n const err = (0, _iserror.getProperError)(thrownValue);\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (!err.digest) {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n err.digest = (0, _stringhash.default)(err.message + (err.stack || '')).toString();\n }\n // @TODO by putting this here and not at the top it is possible that\n // we don't error the build in places we actually expect to\n if (!reactServerErrors.has(err.digest)) {\n reactServerErrors.set(err.digest, err);\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n (0, _formatservererror.formatServerError)(err);\n }\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, _tracer.getTracer)().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setAttribute('error.type', err.name);\n span.setStatus({\n code: _tracer.SpanStatusCode.ERROR,\n message: err.message\n });\n }\n if (!silenceLogger) {\n onReactServerRenderError == null ? void 0 : onReactServerRenderError(err);\n }\n }\n return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);\n };\n}\nfunction createHTMLErrorHandler(shouldFormatError, isNextExport, reactServerErrors, allCapturedErrors, silenceLogger, onHTMLRenderSSRError) {\n return (thrownValue, errorInfo)=>{\n var _err_message;\n if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n let isSSRError = true;\n allCapturedErrors.push(thrownValue);\n // If the response was closed, we don't need to log the error.\n if ((0, _pipereadable.isAbortError)(thrownValue)) return;\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n const err = (0, _iserror.getProperError)(thrownValue);\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (err.digest) {\n if (reactServerErrors.has(err.digest)) {\n // This error is likely an obfuscated error from react-server.\n // We recover the original error here.\n thrownValue = reactServerErrors.get(err.digest);\n isSSRError = false;\n } else {\n // The error is not from react-server but has a digest\n // from other means so we don't need to produce a new one\n }\n } else {\n err.digest = (0, _stringhash.default)(err.message + ((errorInfo == null ? void 0 : errorInfo.componentStack) || err.stack || '')).toString();\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n (0, _formatservererror.formatServerError)(err);\n }\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, _tracer.getTracer)().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setAttribute('error.type', err.name);\n span.setStatus({\n code: _tracer.SpanStatusCode.ERROR,\n message: err.message\n });\n }\n if (!silenceLogger && // HTML errors contain RSC errors as well, filter them out before reporting\n isSSRError) {\n onHTMLRenderSSRError(err, errorInfo);\n }\n }\n return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);\n };\n}\nfunction isUserLandError(err) {\n return !(0, _pipereadable.isAbortError)(err) && !(0, _bailouttocsr.isBailoutToCSRError)(err) && !(0, _isnextroutererror.isNextRouterError)(err);\n}\n\n//# sourceMappingURL=create-error-handler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2NyZWF0ZS1lcnJvci1oYW5kbGVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDJEQUEyRCxtQkFBTyxDQUFDLG9HQUFnQztBQUNuRywyQkFBMkIsbUJBQU8sQ0FBQyxnR0FBK0I7QUFDbEUsZ0JBQWdCLG1CQUFPLENBQUMsc0ZBQXFCO0FBQzdDLHNCQUFzQixtQkFBTyxDQUFDLGdGQUFrQjtBQUNoRCxzQkFBc0IsbUJBQU8sQ0FBQyw4SEFBOEM7QUFDNUUsNEJBQTRCLG1CQUFPLENBQUMsOEhBQThDO0FBQ2xGLDJCQUEyQixtQkFBTyxDQUFDLDhIQUE4QztBQUNqRiwwQkFBMEIsbUJBQU8sQ0FBQyxrR0FBcUI7QUFDdkQsaUJBQWlCLG1CQUFPLENBQUMsMEVBQW9CO0FBQzdDLDZCQUE2QixtQkFBTyxDQUFDLG9HQUFpQztBQUN0RSw4QkFBOEIsbUJBQU8sQ0FBQyw4R0FBMkI7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvY3JlYXRlLWVycm9yLWhhbmRsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVGbGlnaHRSZWFjdFNlcnZlckVycm9ySGFuZGxlcjogbnVsbCxcbiAgICBjcmVhdGVIVE1MRXJyb3JIYW5kbGVyOiBudWxsLFxuICAgIGNyZWF0ZUhUTUxSZWFjdFNlcnZlckVycm9ySGFuZGxlcjogbnVsbCxcbiAgICBnZXREaWdlc3RGb3JXZWxsS25vd25FcnJvcjogbnVsbCxcbiAgICBpc1VzZXJMYW5kRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY3JlYXRlRmxpZ2h0UmVhY3RTZXJ2ZXJFcnJvckhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRmxpZ2h0UmVhY3RTZXJ2ZXJFcnJvckhhbmRsZXI7XG4gICAgfSxcbiAgICBjcmVhdGVIVE1MRXJyb3JIYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUhUTUxFcnJvckhhbmRsZXI7XG4gICAgfSxcbiAgICBjcmVhdGVIVE1MUmVhY3RTZXJ2ZXJFcnJvckhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlSFRNTFJlYWN0U2VydmVyRXJyb3JIYW5kbGVyO1xuICAgIH0sXG4gICAgZ2V0RGlnZXN0Rm9yV2VsbEtub3duRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0RGlnZXN0Rm9yV2VsbEtub3duRXJyb3I7XG4gICAgfSxcbiAgICBpc1VzZXJMYW5kRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNVc2VyTGFuZEVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX3N0cmluZ2hhc2ggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmluZy1oYXNoXCIpKTtcbmNvbnN0IF9mb3JtYXRzZXJ2ZXJlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvZm9ybWF0LXNlcnZlci1lcnJvclwiKTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi4vbGliL3RyYWNlL3RyYWNlclwiKTtcbmNvbnN0IF9waXBlcmVhZGFibGUgPSByZXF1aXJlKFwiLi4vcGlwZS1yZWFkYWJsZVwiKTtcbmNvbnN0IF9iYWlsb3V0dG9jc3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3JcIik7XG5jb25zdCBfaG9va3NzZXJ2ZXJjb250ZXh0ID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0XCIpO1xuY29uc3QgX2lzbmV4dHJvdXRlcmVycm9yID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi9keW5hbWljLXJlbmRlcmluZ1wiKTtcbmNvbnN0IF9pc2Vycm9yID0gcmVxdWlyZShcIi4uLy4uL2xpYi9pcy1lcnJvclwiKTtcbmNvbnN0IF9lcnJvcnRlbGVtZXRyeXV0aWxzID0gcmVxdWlyZShcIi4uLy4uL2xpYi9lcnJvci10ZWxlbWV0cnktdXRpbHNcIik7XG5jb25zdCBfcmVhY3RsYXJnZXNoZWxsZXJyb3IgPSByZXF1aXJlKFwiLi9yZWFjdC1sYXJnZS1zaGVsbC1lcnJvclwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0RGlnZXN0Rm9yV2VsbEtub3duRXJyb3IoZXJyb3IpIHtcbiAgICAvLyBJZiB3ZSdyZSBiYWlsaW5nIG91dCB0byBDU1IsIHdlIGRvbid0IG5lZWQgdG8gbG9nIHRoZSBlcnJvci5cbiAgICBpZiAoKDAsIF9iYWlsb3V0dG9jc3IuaXNCYWlsb3V0VG9DU1JFcnJvcikoZXJyb3IpKSByZXR1cm4gZXJyb3IuZGlnZXN0O1xuICAgIC8vIElmIHRoaXMgaXMgYSBuYXZpZ2F0aW9uIGVycm9yLCB3ZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgZXJyb3IuXG4gICAgaWYgKCgwLCBfaXNuZXh0cm91dGVyZXJyb3IuaXNOZXh0Um91dGVyRXJyb3IpKGVycm9yKSkgcmV0dXJuIGVycm9yLmRpZ2VzdDtcbiAgICAvLyBJZiB0aGlzIGVycm9yIG9jY3Vycywgd2Uga25vdyB0aGF0IHdlIHNob3VsZCBiZSBzdG9wcGluZyB0aGUgc3RhdGljXG4gICAgLy8gcmVuZGVyLiBUaGlzIGlzIG9ubHkgdGhyb3duIGluIHN0YXRpYyBnZW5lcmF0aW9uIHdoZW4gUFBSIGlzIG5vdCBlbmFibGVkLFxuICAgIC8vIHdoaWNoIGNhdXNlcyB0aGUgd2hvbGUgcGFnZSB0byBiZSBtYXJrZWQgYXMgZHluYW1pYy4gV2UgZG9uJ3QgbmVlZCB0b1xuICAgIC8vIHRlbGwgdGhlIHVzZXIgYWJvdXQgdGhpcyBlcnJvciwgYXMgaXQncyBub3QgYWN0aW9uYWJsZS5cbiAgICBpZiAoKDAsIF9ob29rc3NlcnZlcmNvbnRleHQuaXNEeW5hbWljU2VydmVyRXJyb3IpKGVycm9yKSkgcmV0dXJuIGVycm9yLmRpZ2VzdDtcbiAgICAvLyBJZiB0aGlzIGlzIGEgcHJlcmVuZGVyIGludGVycnVwdGVkIGVycm9yLCB3ZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgZXJyb3IuXG4gICAgaWYgKCgwLCBfZHluYW1pY3JlbmRlcmluZy5pc1ByZXJlbmRlckludGVycnVwdGVkRXJyb3IpKGVycm9yKSkgcmV0dXJuIGVycm9yLmRpZ2VzdDtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gY3JlYXRlRmxpZ2h0UmVhY3RTZXJ2ZXJFcnJvckhhbmRsZXIoc2hvdWxkRm9ybWF0RXJyb3IsIG9uUmVhY3RTZXJ2ZXJSZW5kZXJFcnJvcikge1xuICAgIHJldHVybiAodGhyb3duVmFsdWUpPT57XG4gICAgICAgIGlmICh0eXBlb2YgdGhyb3duVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyBUT0RPLUFQUDogbG9vayBhdCB1c2luZyB3ZWJjcnlwdG8gaW5zdGVhZC4gUmVxdWlyZXMgYSBwcm9taXNlIHRvIGJlIGF3YWl0ZWQuXG4gICAgICAgICAgICByZXR1cm4gKDAsIF9zdHJpbmdoYXNoLmRlZmF1bHQpKHRocm93blZhbHVlKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSB3YXMgY2xvc2VkLCB3ZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgZXJyb3IuXG4gICAgICAgIGlmICgoMCwgX3BpcGVyZWFkYWJsZS5pc0Fib3J0RXJyb3IpKHRocm93blZhbHVlKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBkaWdlc3QgPSBnZXREaWdlc3RGb3JXZWxsS25vd25FcnJvcih0aHJvd25WYWx1ZSk7XG4gICAgICAgIGlmIChkaWdlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiBkaWdlc3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgwLCBfcmVhY3RsYXJnZXNoZWxsZXJyb3IuaXNSZWFjdExhcmdlU2hlbGxFcnJvcikodGhyb3duVmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBBZ2dyZWdhdGVcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IodGhyb3duVmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnIgPSAoMCwgX2lzZXJyb3IuZ2V0UHJvcGVyRXJyb3IpKHRocm93blZhbHVlKTtcbiAgICAgICAgLy8gSWYgdGhlIGVycm9yIGFscmVhZHkgaGFzIGEgZGlnZXN0LCByZXNwZWN0IHRoZSBvcmlnaW5hbCBkaWdlc3QsXG4gICAgICAgIC8vIHNvIGl0IHdvbid0IGdldCByZS1nZW5lcmF0ZWQgaW50byBhbm90aGVyIG5ldyBlcnJvci5cbiAgICAgICAgaWYgKCFlcnIuZGlnZXN0KSB7XG4gICAgICAgICAgICAvLyBUT0RPLUFQUDogbG9vayBhdCB1c2luZyB3ZWJjcnlwdG8gaW5zdGVhZC4gUmVxdWlyZXMgYSBwcm9taXNlIHRvIGJlIGF3YWl0ZWQuXG4gICAgICAgICAgICBlcnIuZGlnZXN0ID0gKDAsIF9zdHJpbmdoYXNoLmRlZmF1bHQpKGVyci5tZXNzYWdlICsgZXJyLnN0YWNrIHx8ICcnKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvcm1hdCBzZXJ2ZXIgZXJyb3JzIGluIGRldmVsb3BtZW50IHRvIGFkZCBtb3JlIGhlbHBmdWwgZXJyb3IgbWVzc2FnZXNcbiAgICAgICAgaWYgKHNob3VsZEZvcm1hdEVycm9yKSB7XG4gICAgICAgICAgICAoMCwgX2Zvcm1hdHNlcnZlcmVycm9yLmZvcm1hdFNlcnZlckVycm9yKShlcnIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlY29yZCBleGNlcHRpb24gaW4gYW4gYWN0aXZlIHNwYW4sIGlmIGF2YWlsYWJsZS5cbiAgICAgICAgY29uc3Qgc3BhbiA9ICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS5nZXRBY3RpdmVTY29wZVNwYW4oKTtcbiAgICAgICAgaWYgKHNwYW4pIHtcbiAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycik7XG4gICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZXJyb3IudHlwZScsIGVyci5uYW1lKTtcbiAgICAgICAgICAgIHNwYW4uc2V0U3RhdHVzKHtcbiAgICAgICAgICAgICAgICBjb2RlOiBfdHJhY2VyLlNwYW5TdGF0dXNDb2RlLkVSUk9SLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVyci5tZXNzYWdlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBvblJlYWN0U2VydmVyUmVuZGVyRXJyb3IoZXJyKTtcbiAgICAgICAgcmV0dXJuICgwLCBfZXJyb3J0ZWxlbWV0cnl1dGlscy5jcmVhdGVEaWdlc3RXaXRoRXJyb3JDb2RlKSh0aHJvd25WYWx1ZSwgZXJyLmRpZ2VzdCk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUhUTUxSZWFjdFNlcnZlckVycm9ySGFuZGxlcihzaG91bGRGb3JtYXRFcnJvciwgaXNOZXh0RXhwb3J0LCByZWFjdFNlcnZlckVycm9ycywgc2lsZW5jZUxvZ2dlciwgb25SZWFjdFNlcnZlclJlbmRlckVycm9yKSB7XG4gICAgcmV0dXJuICh0aHJvd25WYWx1ZSk9PntcbiAgICAgICAgdmFyIF9lcnJfbWVzc2FnZTtcbiAgICAgICAgaWYgKHR5cGVvZiB0aHJvd25WYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBsb29rIGF0IHVzaW5nIHdlYmNyeXB0byBpbnN0ZWFkLiBSZXF1aXJlcyBhIHByb21pc2UgdG8gYmUgYXdhaXRlZC5cbiAgICAgICAgICAgIHJldHVybiAoMCwgX3N0cmluZ2hhc2guZGVmYXVsdCkodGhyb3duVmFsdWUpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIHdhcyBjbG9zZWQsIHdlIGRvbid0IG5lZWQgdG8gbG9nIHRoZSBlcnJvci5cbiAgICAgICAgaWYgKCgwLCBfcGlwZXJlYWRhYmxlLmlzQWJvcnRFcnJvcikodGhyb3duVmFsdWUpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGRpZ2VzdCA9IGdldERpZ2VzdEZvcldlbGxLbm93bkVycm9yKHRocm93blZhbHVlKTtcbiAgICAgICAgaWYgKGRpZ2VzdCkge1xuICAgICAgICAgICAgcmV0dXJuIGRpZ2VzdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKDAsIF9yZWFjdGxhcmdlc2hlbGxlcnJvci5pc1JlYWN0TGFyZ2VTaGVsbEVycm9yKSh0aHJvd25WYWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IEFnZ3JlZ2F0ZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcih0aHJvd25WYWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVyciA9ICgwLCBfaXNlcnJvci5nZXRQcm9wZXJFcnJvcikodGhyb3duVmFsdWUpO1xuICAgICAgICAvLyBJZiB0aGUgZXJyb3IgYWxyZWFkeSBoYXMgYSBkaWdlc3QsIHJlc3BlY3QgdGhlIG9yaWdpbmFsIGRpZ2VzdCxcbiAgICAgICAgLy8gc28gaXQgd29uJ3QgZ2V0IHJlLWdlbmVyYXRlZCBpbnRvIGFub3RoZXIgbmV3IGVycm9yLlxuICAgICAgICBpZiAoIWVyci5kaWdlc3QpIHtcbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiBsb29rIGF0IHVzaW5nIHdlYmNyeXB0byBpbnN0ZWFkLiBSZXF1aXJlcyBhIHByb21pc2UgdG8gYmUgYXdhaXRlZC5cbiAgICAgICAgICAgIGVyci5kaWdlc3QgPSAoMCwgX3N0cmluZ2hhc2guZGVmYXVsdCkoZXJyLm1lc3NhZ2UgKyAoZXJyLnN0YWNrIHx8ICcnKSkudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBAVE9ETyBieSBwdXR0aW5nIHRoaXMgaGVyZSBhbmQgbm90IGF0IHRoZSB0b3AgaXQgaXMgcG9zc2libGUgdGhhdFxuICAgICAgICAvLyB3ZSBkb24ndCBlcnJvciB0aGUgYnVpbGQgaW4gcGxhY2VzIHdlIGFjdHVhbGx5IGV4cGVjdCB0b1xuICAgICAgICBpZiAoIXJlYWN0U2VydmVyRXJyb3JzLmhhcyhlcnIuZGlnZXN0KSkge1xuICAgICAgICAgICAgcmVhY3RTZXJ2ZXJFcnJvcnMuc2V0KGVyci5kaWdlc3QsIGVycik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRm9ybWF0IHNlcnZlciBlcnJvcnMgaW4gZGV2ZWxvcG1lbnQgdG8gYWRkIG1vcmUgaGVscGZ1bCBlcnJvciBtZXNzYWdlc1xuICAgICAgICBpZiAoc2hvdWxkRm9ybWF0RXJyb3IpIHtcbiAgICAgICAgICAgICgwLCBfZm9ybWF0c2VydmVyZXJyb3IuZm9ybWF0U2VydmVyRXJyb3IpKGVycik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRG9uJ3QgbG9nIHRoZSBzdXBwcmVzc2VkIGVycm9yIGR1cmluZyBleHBvcnRcbiAgICAgICAgaWYgKCEoaXNOZXh0RXhwb3J0ICYmIChlcnIgPT0gbnVsbCA/IHZvaWQgMCA6IChfZXJyX21lc3NhZ2UgPSBlcnIubWVzc2FnZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lcnJfbWVzc2FnZS5pbmNsdWRlcygnVGhlIHNwZWNpZmljIG1lc3NhZ2UgaXMgb21pdHRlZCBpbiBwcm9kdWN0aW9uIGJ1aWxkcyB0byBhdm9pZCBsZWFraW5nIHNlbnNpdGl2ZSBkZXRhaWxzLicpKSkpIHtcbiAgICAgICAgICAgIC8vIFJlY29yZCBleGNlcHRpb24gaW4gYW4gYWN0aXZlIHNwYW4sIGlmIGF2YWlsYWJsZS5cbiAgICAgICAgICAgIGNvbnN0IHNwYW4gPSAoMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkuZ2V0QWN0aXZlU2NvcGVTcGFuKCk7XG4gICAgICAgICAgICBpZiAoc3Bhbikge1xuICAgICAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycik7XG4gICAgICAgICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ2Vycm9yLnR5cGUnLCBlcnIubmFtZSk7XG4gICAgICAgICAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBfdHJhY2VyLlNwYW5TdGF0dXNDb2RlLkVSUk9SLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzaWxlbmNlTG9nZ2VyKSB7XG4gICAgICAgICAgICAgICAgb25SZWFjdFNlcnZlclJlbmRlckVycm9yID09IG51bGwgPyB2b2lkIDAgOiBvblJlYWN0U2VydmVyUmVuZGVyRXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKDAsIF9lcnJvcnRlbGVtZXRyeXV0aWxzLmNyZWF0ZURpZ2VzdFdpdGhFcnJvckNvZGUpKHRocm93blZhbHVlLCBlcnIuZGlnZXN0KTtcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlSFRNTEVycm9ySGFuZGxlcihzaG91bGRGb3JtYXRFcnJvciwgaXNOZXh0RXhwb3J0LCByZWFjdFNlcnZlckVycm9ycywgYWxsQ2FwdHVyZWRFcnJvcnMsIHNpbGVuY2VMb2dnZXIsIG9uSFRNTFJlbmRlclNTUkVycm9yKSB7XG4gICAgcmV0dXJuICh0aHJvd25WYWx1ZSwgZXJyb3JJbmZvKT0+e1xuICAgICAgICB2YXIgX2Vycl9tZXNzYWdlO1xuICAgICAgICBpZiAoKDAsIF9yZWFjdGxhcmdlc2hlbGxlcnJvci5pc1JlYWN0TGFyZ2VTaGVsbEVycm9yKSh0aHJvd25WYWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IEFnZ3JlZ2F0ZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcih0aHJvd25WYWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpc1NTUkVycm9yID0gdHJ1ZTtcbiAgICAgICAgYWxsQ2FwdHVyZWRFcnJvcnMucHVzaCh0aHJvd25WYWx1ZSk7XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSB3YXMgY2xvc2VkLCB3ZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgZXJyb3IuXG4gICAgICAgIGlmICgoMCwgX3BpcGVyZWFkYWJsZS5pc0Fib3J0RXJyb3IpKHRocm93blZhbHVlKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBkaWdlc3QgPSBnZXREaWdlc3RGb3JXZWxsS25vd25FcnJvcih0aHJvd25WYWx1ZSk7XG4gICAgICAgIGlmIChkaWdlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiBkaWdlc3Q7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyID0gKDAsIF9pc2Vycm9yLmdldFByb3BlckVycm9yKSh0aHJvd25WYWx1ZSk7XG4gICAgICAgIC8vIElmIHRoZSBlcnJvciBhbHJlYWR5IGhhcyBhIGRpZ2VzdCwgcmVzcGVjdCB0aGUgb3JpZ2luYWwgZGlnZXN0LFxuICAgICAgICAvLyBzbyBpdCB3b24ndCBnZXQgcmUtZ2VuZXJhdGVkIGludG8gYW5vdGhlciBuZXcgZXJyb3IuXG4gICAgICAgIGlmIChlcnIuZGlnZXN0KSB7XG4gICAgICAgICAgICBpZiAocmVhY3RTZXJ2ZXJFcnJvcnMuaGFzKGVyci5kaWdlc3QpKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBlcnJvciBpcyBsaWtlbHkgYW4gb2JmdXNjYXRlZCBlcnJvciBmcm9tIHJlYWN0LXNlcnZlci5cbiAgICAgICAgICAgICAgICAvLyBXZSByZWNvdmVyIHRoZSBvcmlnaW5hbCBlcnJvciBoZXJlLlxuICAgICAgICAgICAgICAgIHRocm93blZhbHVlID0gcmVhY3RTZXJ2ZXJFcnJvcnMuZ2V0KGVyci5kaWdlc3QpO1xuICAgICAgICAgICAgICAgIGlzU1NSRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBUaGUgZXJyb3IgaXMgbm90IGZyb20gcmVhY3Qtc2VydmVyIGJ1dCBoYXMgYSBkaWdlc3RcbiAgICAgICAgICAgIC8vIGZyb20gb3RoZXIgbWVhbnMgc28gd2UgZG9uJ3QgbmVlZCB0byBwcm9kdWNlIGEgbmV3IG9uZVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyLmRpZ2VzdCA9ICgwLCBfc3RyaW5naGFzaC5kZWZhdWx0KShlcnIubWVzc2FnZSArICgoZXJyb3JJbmZvID09IG51bGwgPyB2b2lkIDAgOiBlcnJvckluZm8uY29tcG9uZW50U3RhY2spIHx8IGVyci5zdGFjayB8fCAnJykpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRm9ybWF0IHNlcnZlciBlcnJvcnMgaW4gZGV2ZWxvcG1lbnQgdG8gYWRkIG1vcmUgaGVscGZ1bCBlcnJvciBtZXNzYWdlc1xuICAgICAgICBpZiAoc2hvdWxkRm9ybWF0RXJyb3IpIHtcbiAgICAgICAgICAgICgwLCBfZm9ybWF0c2VydmVyZXJyb3IuZm9ybWF0U2VydmVyRXJyb3IpKGVycik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRG9uJ3QgbG9nIHRoZSBzdXBwcmVzc2VkIGVycm9yIGR1cmluZyBleHBvcnRcbiAgICAgICAgaWYgKCEoaXNOZXh0RXhwb3J0ICYmIChlcnIgPT0gbnVsbCA/IHZvaWQgMCA6IChfZXJyX21lc3NhZ2UgPSBlcnIubWVzc2FnZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9lcnJfbWVzc2FnZS5pbmNsdWRlcygnVGhlIHNwZWNpZmljIG1lc3NhZ2UgaXMgb21pdHRlZCBpbiBwcm9kdWN0aW9uIGJ1aWxkcyB0byBhdm9pZCBsZWFraW5nIHNlbnNpdGl2ZSBkZXRhaWxzLicpKSkpIHtcbiAgICAgICAgICAgIC8vIFJlY29yZCBleGNlcHRpb24gaW4gYW4gYWN0aXZlIHNwYW4sIGlmIGF2YWlsYWJsZS5cbiAgICAgICAgICAgIGNvbnN0IHNwYW4gPSAoMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkuZ2V0QWN0aXZlU2NvcGVTcGFuKCk7XG4gICAgICAgICAgICBpZiAoc3Bhbikge1xuICAgICAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycik7XG4gICAgICAgICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ2Vycm9yLnR5cGUnLCBlcnIubmFtZSk7XG4gICAgICAgICAgICAgICAgc3Bhbi5zZXRTdGF0dXMoe1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBfdHJhY2VyLlNwYW5TdGF0dXNDb2RlLkVSUk9SLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzaWxlbmNlTG9nZ2VyICYmIC8vIEhUTUwgZXJyb3JzIGNvbnRhaW4gUlNDIGVycm9ycyBhcyB3ZWxsLCBmaWx0ZXIgdGhlbSBvdXQgYmVmb3JlIHJlcG9ydGluZ1xuICAgICAgICAgICAgaXNTU1JFcnJvcikge1xuICAgICAgICAgICAgICAgIG9uSFRNTFJlbmRlclNTUkVycm9yKGVyciwgZXJyb3JJbmZvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKDAsIF9lcnJvcnRlbGVtZXRyeXV0aWxzLmNyZWF0ZURpZ2VzdFdpdGhFcnJvckNvZGUpKHRocm93blZhbHVlLCBlcnIuZGlnZXN0KTtcbiAgICB9O1xufVxuZnVuY3Rpb24gaXNVc2VyTGFuZEVycm9yKGVycikge1xuICAgIHJldHVybiAhKDAsIF9waXBlcmVhZGFibGUuaXNBYm9ydEVycm9yKShlcnIpICYmICEoMCwgX2JhaWxvdXR0b2Nzci5pc0JhaWxvdXRUb0NTUkVycm9yKShlcnIpICYmICEoMCwgX2lzbmV4dHJvdXRlcmVycm9yLmlzTmV4dFJvdXRlckVycm9yKShlcnIpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtZXJyb3ItaGFuZGxlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/create-error-handler.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/dynamic-rendering.js ***!
|
||
\***********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\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 Postpone: function() {\n return Postpone;\n },\n PreludeState: function() {\n return PreludeState;\n },\n abortAndThrowOnSynchronousRequestDataAccess: function() {\n return abortAndThrowOnSynchronousRequestDataAccess;\n },\n abortOnSynchronousPlatformIOAccess: function() {\n return abortOnSynchronousPlatformIOAccess;\n },\n accessedDynamicData: function() {\n return accessedDynamicData;\n },\n annotateDynamicAccess: function() {\n return annotateDynamicAccess;\n },\n consumeDynamicAccess: function() {\n return consumeDynamicAccess;\n },\n createDynamicTrackingState: function() {\n return createDynamicTrackingState;\n },\n createDynamicValidationState: function() {\n return createDynamicValidationState;\n },\n createHangingInputAbortSignal: function() {\n return createHangingInputAbortSignal;\n },\n createRenderInBrowserAbortSignal: function() {\n return createRenderInBrowserAbortSignal;\n },\n delayUntilRuntimeStage: function() {\n return delayUntilRuntimeStage;\n },\n formatDynamicAPIAccesses: function() {\n return formatDynamicAPIAccesses;\n },\n getFirstDynamicReason: function() {\n return getFirstDynamicReason;\n },\n isDynamicPostpone: function() {\n return isDynamicPostpone;\n },\n isPrerenderInterruptedError: function() {\n return isPrerenderInterruptedError;\n },\n logDisallowedDynamicError: function() {\n return logDisallowedDynamicError;\n },\n markCurrentScopeAsDynamic: function() {\n return markCurrentScopeAsDynamic;\n },\n postponeWithTracking: function() {\n return postponeWithTracking;\n },\n throwIfDisallowedDynamic: function() {\n return throwIfDisallowedDynamic;\n },\n throwToInterruptStaticGeneration: function() {\n return throwToInterruptStaticGeneration;\n },\n trackAllowedDynamicAccess: function() {\n return trackAllowedDynamicAccess;\n },\n trackDynamicDataInDynamicRender: function() {\n return trackDynamicDataInDynamicRender;\n },\n trackSynchronousPlatformIOAccessInDev: function() {\n return trackSynchronousPlatformIOAccessInDev;\n },\n trackSynchronousRequestDataAccessInDev: function() {\n return trackSynchronousRequestDataAccessInDev;\n },\n useDynamicRouteParams: function() {\n return useDynamicRouteParams;\n },\n warnOnSyncDynamicError: function() {\n return warnOnSyncDynamicError;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ./work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _boundaryconstants = __webpack_require__(/*! ../../lib/framework/boundary-constants */ \"(rsc)/./node_modules/next/dist/lib/framework/boundary-constants.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst hasPostpone = typeof _react.default.unstable_postpone === 'function';\nfunction createDynamicTrackingState(isDebugDynamicAccesses) {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null\n };\n}\nfunction createDynamicValidationState() {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: []\n };\n}\nfunction getFirstDynamicReason(trackingState) {\n var _trackingState_dynamicAccesses_;\n return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;\n}\nfunction markCurrentScopeAsDynamic(store, workUnitStore, expression) {\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return;\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return;\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n break;\n default:\n workUnitStore;\n }\n }\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return;\n if (store.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E553\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender-ppr':\n return postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);\n case 'prerender-legacy':\n workUnitStore.revalidate = 0;\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E550\",\n enumerable: false,\n configurable: true\n });\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n case 'request':\n if (true) {\n workUnitStore.usedDynamic = true;\n }\n break;\n default:\n workUnitStore;\n }\n }\n}\nfunction throwToInterruptStaticGeneration(expression, store, prerenderStore) {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E558\",\n enumerable: false,\n configurable: true\n });\n prerenderStore.revalidate = 0;\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n}\nfunction trackDynamicDataInDynamicRender(workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return;\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return;\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n break;\n case 'request':\n if (true) {\n workUnitStore.usedDynamic = true;\n }\n break;\n default:\n workUnitStore;\n }\n}\nfunction abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;\n const error = createPrerenderInterruptedError(reason);\n prerenderStore.controller.abort(error);\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n}\nfunction trackSynchronousPlatformIOAccessInDev(requestStore) {\n // We don't actually have a controller to abort but we do the semantic equivalent by\n // advancing the request store out of prerender mode\n requestStore.prerenderPhase = false;\n}\nfunction abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {\n const prerenderSignal = prerenderStore.controller.signal;\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n }\n throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);\n}\nfunction warnOnSyncDynamicError(dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack) {\n // the server did something sync dynamic, likely\n // leading to an early termination of the prerender.\n console.error(dynamicTracking.syncDynamicErrorWithStack);\n }\n}\nconst trackSynchronousRequestDataAccessInDev = trackSynchronousPlatformIOAccessInDev;\nfunction Postpone({ reason, route }) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;\n postponeWithTracking(route, reason, dynamicTracking);\n}\nfunction postponeWithTracking(route, expression, dynamicTracking) {\n assertPostpone();\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n _react.default.unstable_postpone(createPostponeReason(route, expression));\n}\nfunction createPostponeReason(route, expression) {\n return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `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}\nfunction isDynamicPostpone(err) {\n if (typeof err === 'object' && err !== null && typeof err.message === 'string') {\n return isDynamicPostponeReason(err.message);\n }\n return false;\n}\nfunction isDynamicPostponeReason(reason) {\n return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');\n}\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E296\",\n enumerable: false,\n configurable: true\n });\n}\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';\nfunction createPrerenderInterruptedError(message) {\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = NEXT_PRERENDER_INTERRUPTED;\n return error;\n}\nfunction isPrerenderInterruptedError(error) {\n return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;\n}\nfunction accessedDynamicData(dynamicAccesses) {\n return dynamicAccesses.length > 0;\n}\nfunction consumeDynamicAccess(serverDynamic, clientDynamic) {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);\n return serverDynamic.dynamicAccesses;\n}\nfunction formatDynamicAPIAccesses(dynamicAccesses) {\n return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{\n stack = stack.split('\\n') // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4).filter((line)=>{\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false;\n }\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false;\n }\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false;\n }\n return true;\n }).join('\\n');\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`;\n });\n}\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), \"__NEXT_ERROR_CODE\", {\n value: \"E224\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction createRenderInBrowserAbortSignal() {\n const controller = new AbortController();\n controller.abort(Object.defineProperty(new _bailouttocsr.BailoutToCSRError('Render in Browser'), \"__NEXT_ERROR_CODE\", {\n value: \"E721\",\n enumerable: false,\n configurable: true\n }));\n return controller.signal;\n}\nfunction createHangingInputAbortSignal(workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController();\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(()=>{\n controller.abort();\n });\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const runtimeStagePromise = (0, _workunitasyncstorageexternal.getRuntimeStagePromise)(workUnitStore);\n if (runtimeStagePromise) {\n runtimeStagePromise.then(()=>(0, _scheduler.scheduleOnNextTick)(()=>controller.abort()));\n } else {\n (0, _scheduler.scheduleOnNextTick)(()=>controller.abort());\n }\n }\n return controller.signal;\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return undefined;\n default:\n workUnitStore;\n }\n}\nfunction annotateDynamicAccess(expression, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction useDynamicRouteParams(expression) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workStore && workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender-client':\n case 'prerender':\n {\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression));\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);\n }\n break;\n }\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError(`\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E771\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError(`\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E745\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n}\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/;\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6';\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense (<anonymous>)\n// at SomeComponent (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\\\n\\\\s+at Suspense \\\\(<anonymous>\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(<anonymous>\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`);\nconst hasMetadataRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasViewportRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`);\nfunction trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return;\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true;\n return;\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true;\n return;\n } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true;\n dynamicValidation.hasSuspenseAboveBody = true;\n return;\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true;\n return;\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);\n return;\n } else {\n const message = `Route \"${workStore.route}\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`;\n const error = createErrorWithComponentOrOwnerStack(message, componentStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n }\n}\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */ function createErrorWithComponentOrOwnerStack(message, componentStack) {\n const ownerStack = true && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null;\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = error.name + ': ' + message + (ownerStack ?? componentStack);\n return error;\n}\nvar PreludeState = /*#__PURE__*/ function(PreludeState) {\n PreludeState[PreludeState[\"Full\"] = 0] = \"Full\";\n PreludeState[PreludeState[\"Empty\"] = 1] = \"Empty\";\n PreludeState[PreludeState[\"Errored\"] = 2] = \"Errored\";\n return PreludeState;\n}({});\nfunction logDisallowedDynamicError(workStore, error) {\n console.error(error);\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`);\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`);\n }\n }\n}\nfunction throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) {\n if (prelude !== 0) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return;\n }\n if (serverDynamic.syncDynamicErrorWithStack) {\n // There is no shell and the server did something sync dynamic likely\n // leading to an early termination of the prerender before the shell\n // could be completed. We terminate the build/validating render.\n logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length > 0) {\n for(let i = 0; i < dynamicErrors.length; i++){\n logDisallowedDynamicError(workStore, dynamicErrors[i]);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(`Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (prelude === 1) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(`Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n } else {\n if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {\n console.error(`Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n }\n}\nfunction delayUntilRuntimeStage(prerenderStore, result) {\n if (prerenderStore.runtimeStagePromise) {\n return prerenderStore.runtimeStagePromise.then(()=>result);\n }\n return result;\n} //# sourceMappingURL=dynamic-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CQzs7Ozs7Ozs7Ozs7O0lBNlZlQSxRQUFRO2VBQVJBOztJQTRYSkMsWUFBWTtlQUFaQTs7SUFwYklDLDJDQUEyQztlQUEzQ0E7O0lBckNBQyxrQ0FBa0M7ZUFBbENBOztJQXVMQUMsbUJBQW1CO2VBQW5CQTs7SUFrSUFDLHFCQUFxQjtlQUFyQkE7O0lBNUhBQyxvQkFBb0I7ZUFBcEJBOztJQXJYQUMsMEJBQTBCO2VBQTFCQTs7SUFVQUMsNEJBQTRCO2VBQTVCQTs7SUFtYkFDLDZCQUE2QjtlQUE3QkE7O0lBWEFDLGdDQUFnQztlQUFoQ0E7O0lBOFRBQyxzQkFBc0I7ZUFBdEJBOztJQWhYQUMsd0JBQXdCO2VBQXhCQTs7SUE1V0FDLHFCQUFxQjtlQUFyQkE7O0lBc1NBQyxpQkFBaUI7ZUFBakJBOztJQXdDQUMsMkJBQTJCO2VBQTNCQTs7SUFxVEFDLHlCQUF5QjtlQUF6QkE7O0lBdG5CQUMseUJBQXlCO2VBQXpCQTs7SUE2UEFDLG9CQUFvQjtlQUFwQkE7O0lBNFlBQyx3QkFBd0I7ZUFBeEJBOztJQS9qQkFDLGdDQUFnQztlQUFoQ0E7O0lBdWVBQyx5QkFBeUI7ZUFBekJBOztJQTljQUMsK0JBQStCO2VBQS9CQTs7SUF1RUFDLHFDQUFxQztlQUFyQ0E7O0lBZ0VIQyxzQ0FBc0M7ZUFBdENBOztJQXFQR0MscUJBQXFCO2VBQXJCQTs7SUE5UEFDLHNCQUFzQjtlQUF0QkE7OzswRUE5VEU7Z0RBRWlCO3FEQUNHOzBEQUkvQjtzREFDMEI7bURBQ0U7K0NBTTVCO3VDQUM0QjswQ0FDRDs0Q0FDSDs7Ozs7O0FBRS9CLE1BQU1DLGNBQWMsT0FBT0MsT0FBQUEsT0FBSyxDQUFDQyxpQkFBaUIsS0FBSztBQXdDaEQsU0FBU3RCLDJCQUNkdUIsc0JBQTJDO0lBRTNDLE9BQU87UUFD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ZW5nMTAxOC9zcmMvc2VydmVyL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgZnVuY3Rpb25zIHByb3ZpZGVkIGJ5IHRoaXMgbW9kdWxlIGFyZSB1c2VkIHRvIGNvbW11bmljYXRlIGNlcnRhaW4gcHJvcGVydGllc1xuICogYWJvdXQgdGhlIGN1cnJlbnRseSBydW5uaW5nIGNvZGUgc28gdGhhdCBOZXh0LmpzIGNhbiBtYWtlIGRlY2lzaW9ucyBvbiBob3cgdG8gaGFuZGxlXG4gKiB0aGUgY3VycmVudCBleGVjdXRpb24gaW4gZGlmZmVyZW50IHJlbmRlcmluZyBtb2RlcyBzdWNoIGFzIHByZS1yZW5kZXJpbmcsIHJlc3VtaW5nLCBhbmQgU1NSLlxuICpcbiAqIFRvZGF5IE5leHQuanMgdHJlYXRzIGFsbCBjb2RlIGFzIHBvdGVudGlhbGx5IHN0YXRpYy4gQ2VydGFpbiBBUElzIG1heSBvbmx5IG1ha2Ugc2Vuc2Ugd2hlbiBkeW5hbWljYWxseSByZW5kZXJpbmcuXG4gKiBUcmFkaXRpb25hbGx5IHRoaXMgbWVhbnQgZGVvcHRpbmcgdGhlIGVudGlyZSByZW5kZXIgdG8gZHluYW1pYyBob3dldmVyIHdpdGggUFBSIHdlIGNhbiBub3cgZGVvcHQgcGFydHNcbiAqIG9mIGEgUmVhY3QgdHJlZSBhcyBkeW5hbWljIHdoaWxlIHN0aWxsIGtlZXBpbmcgb3RoZXIgcGFydHMgc3RhdGljLiBUaGVyZSBhcmUgcmVhbGx5IHR3byBkaWZmZXJlbnQga2luZHMgb2ZcbiAqIER5bmFtaWMgaW5kaWNhdGlvbnMuXG4gKlxuICogVGhlIGZpcnN0IGlzIHNpbXBseSBhbiBpbnRlbnRpb24gdG8gYmUgZHluYW1pYy4gdW5zdGFibGVfbm9TdG9yZSBpcyBhbiBleGFtcGxlIG9mIHRoaXMgd2hlcmVcbiAqIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIGNvZGUgc2ltcGx5IGRlY2xhcmVzIHRoYXQgdGhlIGN1cnJlbnQgc2NvcGUgaXMgZHluYW1pYyBidXQgaWYgeW91IHVzZSBpdFxuICogaW5zaWRlIHVuc3RhYmxlX2NhY2hlIGl0IGNhbiBzdGlsbCBiZSBjYWNoZWQuIFRoaXMgdHlwZSBvZiBpbmRpY2F0aW9uIGNhbiBiZSByZW1vdmVkIGlmIHdlIGV2ZXJcbiAqIG1ha2UgdGhlIGRlZmF1bHQgZHluYW1pYyB0byBiZWdpbiB3aXRoIGJlY2F1c2UgdGhlIG9ubHkgd2F5IHlvdSB3b3VsZCBldmVyIGJlIHN0YXRpYyBpcyBpbnNpZGVcbiAqIGEgY2FjaGUgc2NvcGUgd2hpY2ggdGhpcyBpbmRpY2F0aW9uIGRvZXMgbm90IGFmZmVjdC5cbiAqXG4gKiBUaGUgc2Vjb25kIGlzIGFuIGluZGljYXRpb24gdGhhdCBhIGR5bmFtaWMgZGF0YSBzb3VyY2Ugd2FzIHJlYWQuIFRoaXMgaXMgYSBzdHJvbmdlciBmb3JtIG9mIGR5bmFtaWNcbiAqIGJlY2F1c2UgaXQgbWVhbnMgdGhhdCBpdCBpcyBpbmFwcHJvcHJpYXRlIHRvIGNhY2hlIHRoaXMgYXQgYWxsLiB1c2luZyBhIGR5bmFtaWMgZGF0YSBzb3VyY2UgaW5zaWRlXG4gKiB1bnN0YWJsZV9jYWNoZSBzaG91bGQgZXJyb3IuIElmIHlvdSB3YW50IHRvIHVzZSBzb21lIGR5bmFtaWMgZGF0YSBpbnNpZGUgdW5zdGFibGVfY2FjaGUgeW91IHNob3VsZFxuICogcmVhZCB0aGF0IGRhdGEgb3V0c2lkZSB0aGUgY2FjaGUgYW5kIHBhc3MgaXQgaW4gYXMgYW4gYXJndW1lbnQgdG8gdGhlIGNhY2hlZCBmdW5jdGlvbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFdvcmtTdG9yZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHR5cGUge1xuICBXb3JrVW5pdFN0b3JlLFxuICBSZXF1ZXN0U3RvcmUsXG4gIFByZXJlbmRlclN0b3JlTGVnYWN5LFxuICBQcmVyZW5kZXJTdG9yZU1vZGVybixcbiAgUHJlcmVuZGVyU3RvcmVNb2Rlcm5SdW50aW1lLFxufSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuXG4vLyBPbmNlIHBvc3Rwb25lIGlzIGluIHN0YWJsZSB3ZSBzaG91bGQgc3dpdGNoIHRvIGltcG9ydGluZyB0aGUgcG9zdHBvbmUgZXhwb3J0IGRpcmVjdGx5XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IER5bmFtaWNTZXJ2ZXJFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0J1xuaW1wb3J0IHsgU3RhdGljR2VuQmFpbG91dEVycm9yIH0gZnJvbSAnLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dCdcbmltcG9ydCB7XG4gIGdldFJ1bnRpbWVTdGFnZVByb21pc2UsXG4gIHdvcmtVbml0QXN5bmNTdG9yYWdlLFxufSBmcm9tICcuL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgd29ya0FzeW5jU3RvcmFnZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgbWFrZUhhbmdpbmdQcm9taXNlIH0gZnJvbSAnLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHMnXG5pbXBvcnQge1xuICBNRVRBREFUQV9CT1VOREFSWV9OQU1FLFxuICBWSUVXUE9SVF9CT1VOREFSWV9OQU1FLFxuICBPVVRMRVRfQk9VTkRBUllfTkFNRSxcbiAgUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRSxcbn0gZnJvbSAnLi4vLi4vbGliL2ZyYW1ld29yay9ib3VuZGFyeS1jb25zdGFudHMnXG5pbXBvcnQgeyBzY2hlZHVsZU9uTmV4dFRpY2sgfSBmcm9tICcuLi8uLi9saWIvc2NoZWR1bGVyJ1xuaW1wb3J0IHsgQmFpbG91dFRvQ1NSRXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2xhenktZHluYW1pYy9iYWlsb3V0LXRvLWNzcidcbmltcG9ydCB7IEludmFyaWFudEVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3InXG5cbmNvbnN0IGhhc1Bvc3Rwb25lID0gdHlwZW9mIFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lID09PSAnZnVuY3Rpb24nXG5cbmV4cG9ydCB0eXBlIER5bmFtaWNBY2Nlc3MgPSB7XG4gIC8qKlxuICAgKiBJZiBkZWJ1Z2dpbmcsIHRoaXMgd2lsbCBjb250YWluIHRoZSBzdGFjayB0cmFjZSBvZiB3aGVyZSB0aGUgZHluYW1pYyBhY2Nlc3NcbiAgICogb2NjdXJyZWQuIFRoaXMgaXMgdXNlZCB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIgYWJvdXQgd2h5XG4gICAqIHRoZWlyIHBhZ2UgaXMgYmVpbmcgcmVuZGVyZWQgZHluYW1pY2FsbHkuXG4gICAqL1xuICBzdGFjaz86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgZXhwcmVzc2lvbiB0aGF0IHdhcyBhY2Nlc3NlZCBkeW5hbWljYWxseS5cbiAgICovXG4gIGV4cHJlc3Npb246IHN0cmluZ1xufVxuXG4vLyBTdG9yZXMgZHluYW1pYyByZWFzb25zIHVzZWQgZHVyaW5nIGFuIFJTQyByZW5kZXIuXG5leHBvcnQgdHlwZSBEeW5hbWljVHJhY2tpbmdTdGF0ZSA9IHtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgc3RhY2sgaW5mb3JtYXRpb24gd2lsbCBhbHNvIGJlIHRyYWNrZWQgZHVyaW5nIGR5bmFtaWMgYWNjZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlczogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBUaGUgZHluYW1pYyBhY2Nlc3NlcyB0aGF0IG9jY3VycmVkIGR1cmluZyB0aGUgcmVuZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1pY0FjY2Vzc2VzOiBBcnJheTxEeW5hbWljQWNjZXNzPlxuXG4gIHN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2s6IG51bGwgfCBFcnJvclxufVxuXG4vLyBTdG9yZXMgZHluYW1pYyByZWFzb25zIHVzZWQgZHVyaW5nIGFuIFNTUiByZW5kZXIuXG5leHBvcnQgdHlwZSBEeW5hbWljVmFsaWRhdGlvblN0YXRlID0ge1xuICBoYXNTdXNwZW5zZUFib3ZlQm9keTogYm9vbGVhblxuICBoYXNEeW5hbWljTWV0YWRhdGE6IGJvb2xlYW5cbiAgaGFzRHluYW1pY1ZpZXdwb3J0OiBib29sZWFuXG4gIGhhc0FsbG93ZWREeW5hbWljOiBib29sZWFuXG4gIGR5bmFtaWNFcnJvcnM6IEFycmF5PEVycm9yPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY1RyYWNraW5nU3RhdGUoXG4gIGlzRGVidWdEeW5hbWljQWNjZXNzZXM6IGJvb2xlYW4gfCB1bmRlZmluZWRcbik6IER5bmFtaWNUcmFja2luZ1N0YXRlIHtcbiAgcmV0dXJuIHtcbiAgICBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzLFxuICAgIGR5bmFtaWNBY2Nlc3NlczogW10sXG4gICAgc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjazogbnVsbCxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSgpOiBEeW5hbWljVmFsaWRhdGlvblN0YXRlIHtcbiAgcmV0dXJuIHtcbiAgICBoYXNTdXNwZW5zZUFib3ZlQm9keTogZmFsc2UsXG4gICAgaGFzRHluYW1pY01ldGFkYXRhOiBmYWxzZSxcbiAgICBoYXNEeW5hbWljVmlld3BvcnQ6IGZhbHNlLFxuICAgIGhhc0FsbG93ZWREeW5hbWljOiBmYWxzZSxcbiAgICBkeW5hbWljRXJyb3JzOiBbXSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3REeW5hbWljUmVhc29uKFxuICB0cmFja2luZ1N0YXRlOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKTogdW5kZWZpbmVkIHwgc3RyaW5nIHtcbiAgcmV0dXJuIHRyYWNraW5nU3RhdGUuZHluYW1pY0FjY2Vzc2VzWzBdPy5leHByZXNzaW9uXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBjb21tdW5pY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBzY29wZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBkeW5hbWljLlxuICpcbiAqIEluIG1vc3QgY2FzZXMgdGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wIGJ1dCBpZiBjYWxsZWQgZHVyaW5nXG4gKiBhIFBQUiBwcmVyZW5kZXIgaXQgd2lsbCBwb3N0cG9uZSB0aGUgY3VycmVudCBzdWItdHJlZSBhbmQgY2FsbGluZ1xuICogaXQgZHVyaW5nIGEgbm9ybWFsIHByZXJlbmRlciB3aWxsIGNhdXNlIHRoZSBlbnRpcmUgcHJlcmVuZGVyIHRvIGFib3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljKFxuICBzdG9yZTogV29ya1N0b3JlLFxuICB3b3JrVW5pdFN0b3JlOiB1bmRlZmluZWQgfCBFeGNsdWRlPFdvcmtVbml0U3RvcmUsIFByZXJlbmRlclN0b3JlTW9kZXJuPixcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiB2b2lkIHtcbiAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICBzd2l0Y2ggKHdvcmtVbml0U3RvcmUudHlwZSkge1xuICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAvLyBJbnNpZGUgY2FjaGUgc2NvcGVzLCBtYXJraW5nIGEgc2NvcGUgYXMgZHluYW1pYyBoYXMgbm8gZWZmZWN0LFxuICAgICAgICAvLyBiZWNhdXNlIHRoZSBvdXRlciBjYWNoZSBzY29wZSBjcmVhdGVzIGEgY2FjaGUgYm91bmRhcnkuIFRoaXMgaXNcbiAgICAgICAgLy8gc3VidGx5IGRpZmZlcmVudCBmcm9tIHJlYWRpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlLCB3aGljaCBpc1xuICAgICAgICAvLyBmb3JiaWRkZW4gaW5zaWRlIGEgY2FjaGUgc2NvcGUuXG4gICAgICAgIHJldHVyblxuICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgIC8vIEEgcHJpdmF0ZSBjYWNoZSBzY29wZSBpcyBhbHJlYWR5IGR5bmFtaWMgYnkgZGVmaW5pdGlvbi5cbiAgICAgICAgcmV0dXJuXG4gICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmcgZHluYW1pYyByZW5kZXJpbmcgb3Igd2UncmUgZm9yY2luZyBzdGF0aWMgcmVuZGVyaW5nLCB3ZVxuICAvLyBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nIGhlcmUgYmVjYXVzZSB0aGUgZW50aXJlIHBhZ2UgaXMgYWxyZWFkeSBkeW5hbWljXG4gIC8vIG9yIGl0J3Mgc3RhdGljIGFuZCBpdCBzaG91bGQgbm90IHRocm93IG9yIHBvc3Rwb25lIGhlcmUuXG4gIGlmIChzdG9yZS5mb3JjZUR5bmFtaWMgfHwgc3RvcmUuZm9yY2VTdGF0aWMpIHJldHVyblxuXG4gIGlmIChzdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKFxuICAgICAgYFJvdXRlICR7c3RvcmUucm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcXGAke2V4cHJlc3Npb259XFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gICAgKVxuICB9XG5cbiAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICBzd2l0Y2ggKHdvcmtVbml0U3RvcmUudHlwZSkge1xuICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgIHJldHVybiBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgICAgICAgICBzdG9yZS5yb3V0ZSxcbiAgICAgICAgICBleHByZXNzaW9uLFxuICAgICAgICAgIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICAgIClcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICB3b3JrVW5pdFN0b3JlLnJldmFsaWRhdGUgPSAwXG5cbiAgICAgICAgLy8gV2UgYXJlbid0IHByZXJlbmRlcmluZywgYnV0IHdlIGFyZSBnZW5lcmF0aW5nIGEgc3RhdGljIHBhZ2UuIFdlIG5lZWRcbiAgICAgICAgLy8gdG8gYmFpbCBvdXQgb2Ygc3RhdGljIGdlbmVyYXRpb24uXG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBEeW5hbWljU2VydmVyRXJyb3IoXG4gICAgICAgICAgYFJvdXRlICR7c3RvcmUucm91dGV9IGNvdWxkbid0IGJlIHJlbmRlcmVkIHN0YXRpY2FsbHkgYmVjYXVzZSBpdCB1c2VkICR7ZXhwcmVzc2lvbn0uIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZHluYW1pYy1zZXJ2ZXItZXJyb3JgXG4gICAgICAgIClcbiAgICAgICAgc3RvcmUuZHluYW1pY1VzYWdlRGVzY3JpcHRpb24gPSBleHByZXNzaW9uXG4gICAgICAgIHN0b3JlLmR5bmFtaWNVc2FnZVN0YWNrID0gZXJyLnN0YWNrXG5cbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICB3b3JrVW5pdFN0b3JlLnVzZWREeW5hbWljID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbWVhbnQgdG8gYmUgdXNlZCB3aGVuIHByZXJlbmRlcmluZyB3aXRob3V0IGNhY2hlQ29tcG9uZW50cyBvciBQUFIuXG4gKiBXaGVuIGNhbGxlZCBkdXJpbmcgYSBidWlsZCBpdCB3aWxsIGNhdXNlIE5leHQuanMgdG8gY29uc2lkZXIgdGhlIHJvdXRlIGFzIGR5bmFtaWMuXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbihcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBzdG9yZTogV29ya1N0b3JlLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVMZWdhY3lcbik6IG5ldmVyIHtcbiAgLy8gV2UgYXJlbid0IHByZXJlbmRlcmluZyBidXQgd2UgYXJlIGdlbmVyYXRpbmcgYSBzdGF0aWMgcGFnZS4gV2UgbmVlZCB0byBiYWlsIG91dCBvZiBzdGF0aWMgZ2VuZXJhdGlvblxuICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKFxuICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcXGAke2V4cHJlc3Npb259XFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2R5bmFtaWMtc2VydmVyLWVycm9yYFxuICApXG5cbiAgcHJlcmVuZGVyU3RvcmUucmV2YWxpZGF0ZSA9IDBcblxuICBzdG9yZS5keW5hbWljVXNhZ2VEZXNjcmlwdGlvbiA9IGV4cHJlc3Npb25cbiAgc3RvcmUuZHluYW1pY1VzYWdlU3RhY2sgPSBlcnIuc3RhY2tcblxuICB0aHJvdyBlcnJcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHRvIHRyYWNrIHdoZXRoZXIgc29tZXRoaW5nIGR5bmFtaWMgaGFwcGVuZWQgZXZlbiB3aGVuXG4gKiB3ZSBhcmUgaW4gYSBkeW5hbWljIHJlbmRlci4gVGhpcyBpcyB1c2VmdWwgZm9yIERldiB3aGVyZSBhbGwgcmVuZGVycyBhcmUgZHluYW1pYyBidXRcbiAqIHdlIHN0aWxsIHRyYWNrIHdoZXRoZXIgZHluYW1pYyBBUElzIHdlcmUgYWNjZXNzZWQgZm9yIGhlbHBmdWwgbWVzc2FnaW5nXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKHdvcmtVbml0U3RvcmU6IFdvcmtVbml0U3RvcmUpIHtcbiAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICBjYXNlICdjYWNoZSc6XG4gICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgLy8gSW5zaWRlIGNhY2hlIHNjb3BlcywgbWFya2luZyBhIHNjb3BlIGFzIGR5bmFtaWMgaGFzIG5vIGVmZmVjdCxcbiAgICAgIC8vIGJlY2F1c2UgdGhlIG91dGVyIGNhY2hlIHNjb3BlIGNyZWF0ZXMgYSBjYWNoZSBib3VuZGFyeS4gVGhpcyBpc1xuICAgICAgLy8gc3VidGx5IGRpZmZlcmVudCBmcm9tIHJlYWRpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlLCB3aGljaCBpc1xuICAgICAgLy8gZm9yYmlkZGVuIGluc2lkZSBhIGNhY2hlIHNjb3BlLlxuICAgICAgcmV0dXJuXG4gICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAvLyBBIHByaXZhdGUgY2FjaGUgc2NvcGUgaXMgYWxyZWFkeSBkeW5hbWljIGJ5IGRlZmluaXRpb24uXG4gICAgICByZXR1cm5cbiAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3b3JrVW5pdFN0b3JlLnVzZWREeW5hbWljID0gdHJ1ZVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICBkZWZhdWx0OlxuICAgICAgd29ya1VuaXRTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgfVxufVxuXG5mdW5jdGlvbiBhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2VzcyhcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVNb2Rlcm5cbik6IHZvaWQge1xuICBjb25zdCByZWFzb24gPSBgUm91dGUgJHtyb3V0ZX0gbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkICR7ZXhwcmVzc2lvbn0uYFxuXG4gIGNvbnN0IGVycm9yID0gY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihyZWFzb24pXG5cbiAgcHJlcmVuZGVyU3RvcmUuY29udHJvbGxlci5hYm9ydChlcnJvcilcblxuICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPSBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgIGR5bmFtaWNUcmFja2luZy5keW5hbWljQWNjZXNzZXMucHVzaCh7XG4gICAgICAvLyBXaGVuIHdlIGFyZW4ndCBkZWJ1Z2dpbmcsIHdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGFub3RoZXIgZXJyb3IgZm9yIHRoZVxuICAgICAgLy8gc3RhY2sgdHJhY2UuXG4gICAgICBzdGFjazogZHluYW1pY1RyYWNraW5nLmlzRGVidWdEeW5hbWljQWNjZXNzZXNcbiAgICAgICAgPyBuZXcgRXJyb3IoKS5zdGFja1xuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGV4cHJlc3Npb24sXG4gICAgfSlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWJvcnRPblN5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2VzcyhcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBlcnJvcldpdGhTdGFjazogRXJyb3IsXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblxuKTogdm9pZCB7XG4gIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICBhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpXG4gIC8vIEl0IGlzIGltcG9ydGFudCB0aGF0IHdlIHNldCB0aGlzIHRyYWNraW5nIHZhbHVlIGFmdGVyIGFib3J0aW5nLiBBYm9ydHMgYXJlIGV4ZWN1dGVkXG4gIC8vIHN5bmNocm9ub3VzbHkgZXhjZXB0IGZvciB0aGUgY2FzZSB3aGVyZSB5b3UgYWJvcnQgZHVyaW5nIHJlbmRlciBpdHNlbGYuIEJ5IHNldHRpbmcgdGhpc1xuICAvLyB2YWx1ZSBsYXRlIHdlIGNhbiB1c2UgaXQgdG8gZGV0ZXJtaW5lIGlmIGFueSBvZiB0aGUgYWJvcnRlZCB0YXNrcyBhcmUgdGhlIHRhc2sgdGhhdFxuICAvLyBjYWxsZWQgdGhlIHN5bmMgSU8gZXhwcmVzc2lvbiBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICBpZiAoZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2sgPT09IG51bGwpIHtcbiAgICAgIGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID0gZXJyb3JXaXRoU3RhY2tcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzSW5EZXYoXG4gIHJlcXVlc3RTdG9yZTogUmVxdWVzdFN0b3JlXG4pOiB2b2lkIHtcbiAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIGNvbnRyb2xsZXIgdG8gYWJvcnQgYnV0IHdlIGRvIHRoZSBzZW1hbnRpYyBlcXVpdmFsZW50IGJ5XG4gIC8vIGFkdmFuY2luZyB0aGUgcmVxdWVzdCBzdG9yZSBvdXQgb2YgcHJlcmVuZGVyIG1vZGVcbiAgcmVxdWVzdFN0b3JlLnByZXJlbmRlclBoYXNlID0gZmFsc2Vcbn1cblxuLyoqXG4gKiB1c2UgdGhpcyBmdW5jdGlvbiB3aGVuIHByZXJlbmRlcmluZyB3aXRoIGNhY2hlQ29tcG9uZW50cy4gSWYgd2UgYXJlIGRvaW5nIGFcbiAqIHByb3NwZWN0aXZlIHByZXJlbmRlciB3ZSBkb24ndCBhY3R1YWxseSBhYm9ydCBiZWNhdXNlIHdlIHdhbnQgdG8gZGlzY292ZXJcbiAqIGFsbCBjYWNoZXMgZm9yIHRoZSBzaGVsbC4gSWYgdGhpcyBpcyB0aGUgYWN0dWFsIHByZXJlbmRlciB3ZSBkbyBhYm9ydC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGFjY2VwdHMgYSBwcmVyZW5kZXJTdG9yZSBidXQgdGhlIGNhbGxlciBzaG91bGQgZW5zdXJlIHdlJ3JlXG4gKiBhY3R1YWxseSBydW5uaW5nIGluIGNhY2hlQ29tcG9uZW50cyBtb2RlLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWJvcnRBbmRUaHJvd09uU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2VzcyhcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBlcnJvcldpdGhTdGFjazogRXJyb3IsXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblxuKTogbmV2ZXIge1xuICBjb25zdCBwcmVyZW5kZXJTaWduYWwgPSBwcmVyZW5kZXJTdG9yZS5jb250cm9sbGVyLnNpZ25hbFxuICBpZiAocHJlcmVuZGVyU2lnbmFsLmFib3J0ZWQgPT09IGZhbHNlKSB7XG4gICAgLy8gVE9ETyBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gbW92ZSB0aGlzIGFib3J0ZWQgY2hlY2sgaW50byB0aGUgY2FsbHNpdGUgc28gd2UgY2FuIGF2b2lkIG1ha2luZ1xuICAgIC8vIHRoZSBlcnJvciBvYmplY3Qgd2hlbiBpdCBpc24ndCByZWxldmFudCB0byB0aGUgYWJvcnRpbmcgb2YgdGhlIHByZXJlbmRlciBob3dldmVyXG4gICAgLy8gc2luY2Ugd2UgbmVlZCB0aGUgdGhyb3cgc2VtYW50aWNzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB3ZSBhYm9ydCBpdCBpcyBlYXNpZXIgdG8gbGFuZFxuICAgIC8vIHRoaXMgd2F5LiBTZWUgaG93IHRoaXMgd2FzIGhhbmRsZWQgd2l0aCBgYWJvcnRPblN5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc2AgZm9yIGEgY2xvc2VyXG4gICAgLy8gdG8gaWRlYWwgaW1wbGVtZW50YXRpb25cbiAgICBhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpXG4gICAgLy8gSXQgaXMgaW1wb3J0YW50IHRoYXQgd2Ugc2V0IHRoaXMgdHJhY2tpbmcgdmFsdWUgYWZ0ZXIgYWJvcnRpbmcuIEFib3J0cyBhcmUgZXhlY3V0ZWRcbiAgICAvLyBzeW5jaHJvbm91c2x5IGV4Y2VwdCBmb3IgdGhlIGNhc2Ugd2hlcmUgeW91IGFib3J0IGR1cmluZyByZW5kZXIgaXRzZWxmLiBCeSBzZXR0aW5nIHRoaXNcbiAgICAvLyB2YWx1ZSBsYXRlIHdlIGNhbiB1c2UgaXQgdG8gZGV0ZXJtaW5lIGlmIGFueSBvZiB0aGUgYWJvcnRlZCB0YXNrcyBhcmUgdGhlIHRhc2sgdGhhdFxuICAgIC8vIGNhbGxlZCB0aGUgc3luYyBJTyBleHByZXNzaW9uIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPSBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgICBpZiAoZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2sgPT09IG51bGwpIHtcbiAgICAgICAgZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2sgPSBlcnJvcldpdGhTdGFja1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB0aHJvdyBjcmVhdGVQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKFxuICAgIGBSb3V0ZSAke3JvdXRlfSBuZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS5gXG4gIClcbn1cblxuLyoqXG4gKiBVc2UgdGhpcyBmdW5jdGlvbiB3aGVuIGR5bmFtaWNhbGx5IHByZXJlbmRlcmluZyB3aXRoIGR5bmFtaWNJTy5cbiAqIFdlIGRvbid0IHdhbnQgdG8gZXJyb3IsIGJlY2F1c2UgaXQncyBiZXR0ZXIgdG8gcmV0dXJuIHNvbWV0aGluZ1xuICogKGFuZCB3ZSd2ZSBhbHJlYWR5IGFib3J0ZWQgdGhlIHJlbmRlciBhdCB0aGUgcG9pbnQgd2hlcmUgdGhlIHN5bmMgZHluYW1pYyBlcnJvciBvY2N1cmVkKSxcbiAqIGJ1dCB3ZSBzaG91bGQgbG9nIGFuIGVycm9yIHNlcnZlci1zaWRlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3YXJuT25TeW5jRHluYW1pY0Vycm9yKGR5bmFtaWNUcmFja2luZzogRHluYW1pY1RyYWNraW5nU3RhdGUpIHtcbiAgaWYgKGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKSB7XG4gICAgLy8gdGhlIHNlcnZlciBkaWQgc29tZXRoaW5nIHN5bmMgZHluYW1pYywgbGlrZWx5XG4gICAgLy8gbGVhZGluZyB0byBhbiBlYXJseSB0ZXJtaW5hdGlvbiBvZiB0aGUgcHJlcmVuZGVyLlxuICAgIGNvbnNvbGUuZXJyb3IoZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spXG4gIH1cbn1cblxuLy8gRm9yIG5vdyB0aGVzZSBpbXBsZW1lbnRhdGlvbnMgYXJlIHRoZSBzYW1lIHNvIHdlIGp1c3QgcmVleHBvcnRcbmV4cG9ydCBjb25zdCB0cmFja1N5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3NJbkRldiA9XG4gIHRyYWNrU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzSW5EZXZcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCB3aWxsIGNhbGwgYFJlYWN0LnBvc3Rwb25lYCB0aGF0IHRocm93cyB0aGUgcG9zdHBvbmVkIGVycm9yLlxuICovXG50eXBlIFBvc3Rwb25lUHJvcHMgPSB7XG4gIHJlYXNvbjogc3RyaW5nXG4gIHJvdXRlOiBzdHJpbmdcbn1cbmV4cG9ydCBmdW5jdGlvbiBQb3N0cG9uZSh7IHJlYXNvbiwgcm91dGUgfTogUG9zdHBvbmVQcm9wcyk6IG5ldmVyIHtcbiAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9XG4gICAgcHJlcmVuZGVyU3RvcmUgJiYgcHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInXG4gICAgICA/IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgICAgOiBudWxsXG4gIHBvc3Rwb25lV2l0aFRyYWNraW5nKHJvdXRlLCByZWFzb24sIGR5bmFtaWNUcmFja2luZylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc3Rwb25lV2l0aFRyYWNraW5nKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4gIGR5bmFtaWNUcmFja2luZzogbnVsbCB8IER5bmFtaWNUcmFja2luZ1N0YXRlXG4pOiBuZXZlciB7XG4gIGFzc2VydFBvc3Rwb25lKClcbiAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgIGR5bmFtaWNUcmFja2luZy5keW5hbWljQWNjZXNzZXMucHVzaCh7XG4gICAgICAvLyBXaGVuIHdlIGFyZW4ndCBkZWJ1Z2dpbmcsIHdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGFub3RoZXIgZXJyb3IgZm9yIHRoZVxuICAgICAgLy8gc3RhY2sgdHJhY2UuXG4gICAgICBzdGFjazogZHluYW1pY1RyYWNraW5nLmlzRGVidWdEeW5hbWljQWNjZXNzZXNcbiAgICAgICAgPyBuZXcgRXJyb3IoKS5zdGFja1xuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGV4cHJlc3Npb24sXG4gICAgfSlcbiAgfVxuXG4gIFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lKGNyZWF0ZVBvc3Rwb25lUmVhc29uKHJvdXRlLCBleHByZXNzaW9uKSlcbn1cblxuZnVuY3Rpb24gY3JlYXRlUG9zdHBvbmVSZWFzb24ocm91dGU6IHN0cmluZywgZXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gIHJldHVybiAoXG4gICAgYFJvdXRlICR7cm91dGV9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBgICtcbiAgICBgUmVhY3QgdGhyb3dzIHRoaXMgc3BlY2lhbCBvYmplY3QgdG8gaW5kaWNhdGUgd2hlcmUuIEl0IHNob3VsZCBub3QgYmUgY2F1Z2h0IGJ5IGAgK1xuICAgIGB5b3VyIG93biB0cnkvY2F0Y2guIExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3Bwci1jYXVnaHQtZXJyb3JgXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRHluYW1pY1Bvc3Rwb25lKGVycjogdW5rbm93bikge1xuICBpZiAoXG4gICAgdHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiZcbiAgICBlcnIgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgKGVyciBhcyBhbnkpLm1lc3NhZ2UgPT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBpc0R5bmFtaWNQb3N0cG9uZVJlYXNvbigoZXJyIGFzIGFueSkubWVzc2FnZSlcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gaXNEeW5hbWljUG9zdHBvbmVSZWFzb24ocmVhc29uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChcbiAgICByZWFzb24uaW5jbHVkZXMoXG4gICAgICAnbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkJ1xuICAgICkgJiZcbiAgICByZWFzb24uaW5jbHVkZXMoXG4gICAgICAnTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHByLWNhdWdodC1lcnJvcidcbiAgICApXG4gIClcbn1cblxuaWYgKGlzRHluYW1pY1Bvc3Rwb25lUmVhc29uKGNyZWF0ZVBvc3Rwb25lUmVhc29uKCclJSUnLCAnXl5eJykpID09PSBmYWxzZSkge1xuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ0ludmFyaWFudDogaXNEeW5hbWljUG9zdHBvbmUgbWlzaWRlbnRpZmllZCBhIHBvc3Rwb25lIHJlYXNvbi4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzJ1xuICApXG59XG5cbmNvbnN0IE5FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEID0gJ05FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEJ1xuXG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IEVycm9yIHtcbiAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSlcbiAgOyhlcnJvciBhcyBhbnkpLmRpZ2VzdCA9IE5FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEXG4gIHJldHVybiBlcnJvclxufVxuXG50eXBlIERpZ2VzdEVycm9yID0gRXJyb3IgJiB7XG4gIGRpZ2VzdDogc3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXJlbmRlckludGVycnVwdGVkRXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBEaWdlc3RFcnJvciB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJlxuICAgIGVycm9yICE9PSBudWxsICYmXG4gICAgKGVycm9yIGFzIGFueSkuZGlnZXN0ID09PSBORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRCAmJlxuICAgICduYW1lJyBpbiBlcnJvciAmJlxuICAgICdtZXNzYWdlJyBpbiBlcnJvciAmJlxuICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3JcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWNjZXNzZWREeW5hbWljRGF0YShcbiAgZHluYW1pY0FjY2Vzc2VzOiBBcnJheTxEeW5hbWljQWNjZXNzPlxuKTogYm9vbGVhbiB7XG4gIHJldHVybiBkeW5hbWljQWNjZXNzZXMubGVuZ3RoID4gMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3VtZUR5bmFtaWNBY2Nlc3MoXG4gIHNlcnZlckR5bmFtaWM6IER5bmFtaWNUcmFja2luZ1N0YXRlLFxuICBjbGllbnREeW5hbWljOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKTogRHluYW1pY1RyYWNraW5nU3RhdGVbJ2R5bmFtaWNBY2Nlc3NlcyddIHtcbiAgLy8gV2UgbXV0YXRlIGJlY2F1c2Ugd2Ugb25seSBjYWxsIHRoaXMgb25jZSB3ZSBhcmUgbm8gbG9uZ2VyIHdyaXRpbmdcbiAgLy8gdG8gdGhlIGR5bmFtaWNUcmFja2luZ1N0YXRlIGFuZCBpdCdzIG1vcmUgZWZmaWNpZW50IHRoYW4gY3JlYXRpbmcgYSBuZXdcbiAgLy8gYXJyYXkuXG4gIHNlcnZlckR5bmFtaWMuZHluYW1pY0FjY2Vzc2VzLnB1c2goLi4uY2xpZW50RHluYW1pYy5keW5hbWljQWNjZXNzZXMpXG4gIHJldHVybiBzZXJ2ZXJEeW5hbWljLmR5bmFtaWNBY2Nlc3Nlc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RHluYW1pY0FQSUFjY2Vzc2VzKFxuICBkeW5hbWljQWNjZXNzZXM6IEFycmF5PER5bmFtaWNBY2Nlc3M+XG4pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBkeW5hbWljQWNjZXNzZXNcbiAgICAuZmlsdGVyKFxuICAgICAgKGFjY2Vzcyk6IGFjY2VzcyBpcyBSZXF1aXJlZDxEeW5hbWljQWNjZXNzPiA9PlxuICAgICAgICB0eXBlb2YgYWNjZXNzLnN0YWNrID09PSAnc3RyaW5nJyAmJiBhY2Nlc3Muc3RhY2subGVuZ3RoID4gMFxuICAgIClcbiAgICAubWFwKCh7IGV4cHJlc3Npb24sIHN0YWNrIH0pID0+IHtcbiAgICAgIHN0YWNrID0gc3RhY2tcbiAgICAgICAgLnNwbGl0KCdcXG4nKVxuICAgICAgICAvLyBSZW1vdmUgdGhlIFwiRXJyb3I6IFwiIHByZWZpeCBmcm9tIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBzdGFjayB0cmFjZSBhc1xuICAgICAgICAvLyB3ZWxsIGFzIHRoZSBmaXJzdCA0IGxpbmVzIG9mIHRoZSBzdGFjayB0cmFjZSB3aGljaCBpcyB0aGUgZGlzdGFuY2VcbiAgICAgICAgLy8gZnJvbSB0aGUgdXNlciBjb2RlIGFuZCB0aGUgYG5ldyBFcnJvcigpLnN0YWNrYCBjYWxsLlxuICAgICAgICAuc2xpY2UoNClcbiAgICAgICAgLmZpbHRlcigobGluZSkgPT4ge1xuICAgICAgICAgIC8vIEV4Y2x1ZGUgTmV4dC5qcyBpbnRlcm5hbHMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgaWYgKGxpbmUuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcy9uZXh0LycpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBFeGNsdWRlIGFub255bW91cyBmdW5jdGlvbnMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgaWYgKGxpbmUuaW5jbHVkZXMoJyAoPGFub255bW91cz4pJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEV4Y2x1ZGUgTm9kZS5qcyBpbnRlcm5hbHMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgaWYgKGxpbmUuaW5jbHVkZXMoJyAobm9kZTonKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJ1xcbicpXG4gICAgICByZXR1cm4gYER5bmFtaWMgQVBJIFVzYWdlIERlYnVnIC0gJHtleHByZXNzaW9ufTpcXG4ke3N0YWNrfWBcbiAgICB9KVxufVxuXG5mdW5jdGlvbiBhc3NlcnRQb3N0cG9uZSgpIHtcbiAgaWYgKCFoYXNQb3N0cG9uZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhcmlhbnQ6IFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lIGlzIG5vdCBkZWZpbmVkLiBUaGlzIHN1Z2dlc3RzIHRoZSB3cm9uZyB2ZXJzaW9uIG9mIFJlYWN0IHdhcyBsb2FkZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qc2BcbiAgICApXG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGlzIGEgYml0IG9mIGEgaGFjayB0byBhbGxvdyB1cyB0byBhYm9ydCBhIHJlbmRlciB1c2luZyBhIFBvc3Rwb25lIGluc3RhbmNlIGluc3RlYWQgb2YgYW4gRXJyb3Igd2hpY2ggY2hhbmdlcyBSZWFjdCdzXG4gKiBhYm9ydCBzZW1hbnRpY3Mgc2xpZ2h0bHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZW5kZXJJbkJyb3dzZXJBYm9ydFNpZ25hbCgpOiBBYm9ydFNpZ25hbCB7XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcbiAgY29udHJvbGxlci5hYm9ydChuZXcgQmFpbG91dFRvQ1NSRXJyb3IoJ1JlbmRlciBpbiBCcm93c2VyJykpXG4gIHJldHVybiBjb250cm9sbGVyLnNpZ25hbFxufVxuXG4vKipcbiAqIEluIGEgcHJlcmVuZGVyLCB3ZSBtYXkgZW5kIHVwIHdpdGggaGFuZ2luZyBQcm9taXNlcyBhcyBpbnB1dHMgZHVlIHRoZW1cbiAqIHN0YWxsaW5nIG9uIGNvbm5lY3Rpb24oKSBvciBiZWNhdXNlIHRoZXkncmUgbG9hZGluZyBkeW5hbWljIGRhdGEuIEluIHRoYXRcbiAqIGNhc2Ugd2UgbmVlZCB0byBhYm9ydCB0aGUgZW5jb2Rpbmcgb2YgYXJndW1lbnRzIHNpbmNlIHRoZXknbGwgbmV2ZXIgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIYW5naW5nSW5wdXRBYm9ydFNpZ25hbChcbiAgd29ya1VuaXRTdG9yZTogV29ya1VuaXRTdG9yZVxuKTogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKHdvcmtVbml0U3RvcmUudHlwZSkge1xuICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKVxuXG4gICAgICBpZiAod29ya1VuaXRTdG9yZS5jYWNoZVNpZ25hbCkge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgY2FjaGVTaWduYWwgaXQgbWVhbnMgd2UncmUgaW4gYSBwcm9zcGVjdGl2ZSByZW5kZXIuIElmXG4gICAgICAgIC8vIHRoZSBpbnB1dCB3ZSdyZSB3YWl0aW5nIG9uIGlzIGNvbWluZyBmcm9tIGFub3RoZXIgY2FjaGUsIHdlIGRvIHdhbnRcbiAgICAgICAgLy8gdG8gd2FpdCBmb3IgaXQgc28gdGhhdCB3ZSBjYW4gcmVzb2x2ZSB0aGlzIGNhY2hlIGVudHJ5IHRvby5cbiAgICAgICAgd29ya1VuaXRTdG9yZS5jYWNoZVNpZ25hbC5pbnB1dFJlYWR5KCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgY29udHJvbGxlci5hYm9ydCgpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2Ugd2UncmUgaW4gdGhlIGZpbmFsIHJlbmRlciBhbmQgd2Ugc2hvdWxkIGFscmVhZHkgaGF2ZSBhbGxcbiAgICAgICAgLy8gb3VyIGNhY2hlcyBmaWxsZWQuXG4gICAgICAgIC8vIElmIHRoZSBwcmVyZW5kZXIgdXNlcyBzdGFnZXMsIHdlIGhhdmUgd2FpdCB1bnRpbCB0aGUgcnVudGltZSBzdGFnZSxcbiAgICAgICAgLy8gYXQgd2hpY2ggcG9pbnQgYWxsIHJ1bnRpbWUgaW5wdXRzIHdpbGwgYmUgcmVzb2x2ZWQuXG4gICAgICAgIC8vIChvdGhlcndpc2UsIGEgcnVudGltZSBwcmVyZW5kZXIgbWlnaHQgY29uc2lkZXIgYGNvb2tpZXMoKWAgaGFuZ2luZ1xuICAgICAgICAvLyAgZXZlbiB0aG91Z2ggdGhleSdkIHJlc29sdmUgaW4gdGhlIG5leHQgdGFzay4pXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFdlIG1pZ2h0IHN0aWxsIGJlIHdhaXRpbmcgb24gc29tZSBtaWNyb3Rhc2tzIHNvIHdlXG4gICAgICAgIC8vIHdhaXQgb25lIHRpY2sgYmVmb3JlIGdpdmluZyB1cC4gV2hlbiB3ZSBnaXZlIHVwLCB3ZSBzdGlsbCB3YW50IHRvXG4gICAgICAgIC8vIHJlbmRlciB0aGUgY29udGVudCBvZiB0aGlzIGNhY2hlIGFzIGRlZXBseSBhcyB3ZSBjYW4gc28gdGhhdCB3ZSBjYW5cbiAgICAgICAgLy8gc3VzcGVuZCBhcyBkZWVwbHkgYXMgcG9zc2libGUgaW4gdGhlIHRyZWUgb3Igbm90IGF0IGFsbCBpZiB3ZSBkb24ndFxuICAgICAgICAvLyBlbmQgdXAgd2FpdGluZyBmb3IgdGhlIGlucHV0LlxuICAgICAgICBjb25zdCBydW50aW1lU3RhZ2VQcm9taXNlID0gZ2V0UnVudGltZVN0YWdlUHJvbWlzZSh3b3JrVW5pdFN0b3JlKVxuICAgICAgICBpZiAocnVudGltZVN0YWdlUHJvbWlzZSkge1xuICAgICAgICAgIHJ1bnRpbWVTdGFnZVByb21pc2UudGhlbigoKSA9PlxuICAgICAgICAgICAgc2NoZWR1bGVPbk5leHRUaWNrKCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSlcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2NoZWR1bGVPbk5leHRUaWNrKCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udHJvbGxlci5zaWduYWxcbiAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICBjYXNlICdjYWNoZSc6XG4gICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGRlZmF1bHQ6XG4gICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbm5vdGF0ZUR5bmFtaWNBY2Nlc3MoXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pIHtcbiAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICBkeW5hbWljVHJhY2tpbmcuZHluYW1pY0FjY2Vzc2VzLnB1c2goe1xuICAgICAgc3RhY2s6IGR5bmFtaWNUcmFja2luZy5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzXG4gICAgICAgID8gbmV3IEVycm9yKCkuc3RhY2tcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBleHByZXNzaW9uLFxuICAgIH0pXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUR5bmFtaWNSb3V0ZVBhcmFtcyhleHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgY29uc3Qgd29ya1N0b3JlID0gd29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGNvbnN0IHdvcmtVbml0U3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGlmICh3b3JrU3RvcmUgJiYgd29ya1VuaXRTdG9yZSkge1xuICAgIHN3aXRjaCAod29ya1VuaXRTdG9yZS50eXBlKSB7XG4gICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgIGNhc2UgJ3ByZXJlbmRlcic6IHtcbiAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXNcbiAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zICYmIGZhbGxiYWNrUGFyYW1zLnNpemUgPiAwKSB7XG4gICAgICAgICAgLy8gV2UgYXJlIGluIGEgcHJlcmVuZGVyIHdpdGggY2FjaGVDb21wb25lbnRzIHNlbWFudGljcy4gV2UgYXJlIGdvaW5nIHRvXG4gICAgICAgICAgLy8gaGFuZyBoZXJlIGFuZCBuZXZlciByZXNvbHZlLiBUaGlzIHdpbGwgY2F1c2UgdGhlIGN1cnJlbnRseVxuICAgICAgICAgIC8vIHJlbmRlcmluZyBjb21wb25lbnQgdG8gZWZmZWN0aXZlbHkgYmUgYSBkeW5hbWljIGhvbGUuXG4gICAgICAgICAgUmVhY3QudXNlKFxuICAgICAgICAgICAgbWFrZUhhbmdpbmdQcm9taXNlKFxuICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCxcbiAgICAgICAgICAgICAgd29ya1N0b3JlLnJvdXRlLFxuICAgICAgICAgICAgICBleHByZXNzaW9uXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdwcmVyZW5kZXItcHByJzoge1xuICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtVbml0U3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtc1xuICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMgJiYgZmFsbGJhY2tQYXJhbXMuc2l6ZSA+IDApIHtcbiAgICAgICAgICByZXR1cm4gcG9zdHBvbmVXaXRoVHJhY2tpbmcoXG4gICAgICAgICAgICB3b3JrU3RvcmUucm91dGUsXG4gICAgICAgICAgICBleHByZXNzaW9uLFxuICAgICAgICAgICAgd29ya1VuaXRTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAgIGBcXGAke2V4cHJlc3Npb259XFxgIHdhcyBjYWxsZWQgZHVyaW5nIGEgcnVudGltZSBwcmVyZW5kZXIuIE5leHQuanMgc2hvdWxkIGJlIHByZXZlbnRpbmcgJHtleHByZXNzaW9ufSBmcm9tIGJlaW5nIGluY2x1ZGVkIGluIHNlcnZlciBjb21wb25lbnRzIHN0YXRpY2FsbHksIGJ1dCBkaWQgbm90IGluIHRoaXMgY2FzZS5gXG4gICAgICAgIClcbiAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICB0aHJvdyBuZXcgSW52YXJpYW50RXJyb3IoXG4gICAgICAgICAgYFxcYCR7ZXhwcmVzc2lvbn1cXGAgd2FzIGNhbGxlZCBpbnNpZGUgYSBjYWNoZSBzY29wZS4gTmV4dC5qcyBzaG91bGQgYmUgcHJldmVudGluZyAke2V4cHJlc3Npb259IGZyb20gYmVpbmcgaW5jbHVkZWQgaW4gc2VydmVyIGNvbXBvbmVudHMgc3RhdGljYWxseSwgYnV0IGRpZCBub3QgaW4gdGhpcyBjYXNlLmBcbiAgICAgICAgKVxuICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHdvcmtVbml0U3RvcmUgc2F0aXNmaWVzIG5ldmVyXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGhhc1N1c3BlbnNlUmVnZXggPSAvXFxuXFxzK2F0IFN1c3BlbnNlIFxcKDxhbm9ueW1vdXM+XFwpL1xuXG4vLyBDb21tb24gaW1wbGljaXQgYm9keSB0YWdzIHRoYXQgUmVhY3Qgd2lsbCB0cmVhdCBhcyBib2R5IHdoZW4gcGxhY2VkIGRpcmVjdGx5IGluIGh0bWxcbmNvbnN0IGJvZHlBbmRJbXBsaWNpdFRhZ3MgPVxuICAnYm9keXxkaXZ8bWFpbnxzZWN0aW9ufGFydGljbGV8YXNpZGV8aGVhZGVyfGZvb3RlcnxuYXZ8Zm9ybXxwfHNwYW58aDF8aDJ8aDN8aDR8aDV8aDYnXG5cbi8vIERldGVjdHMgd2hlbiBSb290TGF5b3V0Qm91bmRhcnkgKG91ciBmcmFtZXdvcmsgbWFya2VyIGNvbXBvbmVudCkgYXBwZWFyc1xuLy8gYWZ0ZXIgU3VzcGVuc2UgaW4gdGhlIGNvbXBvbmVudCBzdGFjaywgaW5kaWNhdGluZyB0aGUgcm9vdCBsYXlvdXQgaXMgd3JhcHBlZFxuLy8gd2l0aGluIGEgU3VzcGVuc2UgYm91bmRhcnkuIEVuc3VyZXMgbm8gYm9keS9odG1sL2ltcGxpY2l0LWJvZHkgY29tcG9uZW50cyBhcmUgaW4gYmV0d2Vlbi5cbi8vXG4vLyBFeGFtcGxlIG1hdGNoZXM6XG4vLyAgIGF0IFN1c3BlbnNlICg8YW5vbnltb3VzPilcbi8vICAgYXQgX19uZXh0X3Jvb3RfbGF5b3V0X2JvdW5kYXJ5X18gKDxhbm9ueW1vdXM+KVxuLy9cbi8vIE9yIHdpdGggb3RoZXIgY29tcG9uZW50cyBpbiBiZXR3ZWVuIChidXQgbm90IGJvZHkvaHRtbC9pbXBsaWNpdC1ib2R5KTpcbi8vICAgYXQgU3VzcGVuc2UgKDxhbm9ueW1vdXM+KVxuLy8gICBhdCBTb21lQ29tcG9uZW50ICg8YW5vbnltb3VzPilcbi8vICAgYXQgX19uZXh0X3Jvb3RfbGF5b3V0X2JvdW5kYXJ5X18gKDxhbm9ueW1vdXM+KVxuY29uc3QgaGFzU3VzcGVuc2VCZWZvcmVSb290TGF5b3V0V2l0aG91dEJvZHlPckltcGxpY2l0Qm9keVJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgYFxcXFxuXFxcXHMrYXQgU3VzcGVuc2UgXFxcXCg8YW5vbnltb3VzPlxcXFwpKD86KD8hXFxcXG5cXFxccythdCAoPzoke2JvZHlBbmRJbXBsaWNpdFRhZ3N9KSBcXFxcKDxhbm9ueW1vdXM+XFxcXCkpW1xcXFxzXFxcXFNdKSo/XFxcXG5cXFxccythdCAke1JPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUV9IFxcXFwoW15cXFxcbl0qXFxcXClgXG4pXG5cbmNvbnN0IGhhc01ldGFkYXRhUmVnZXggPSBuZXcgUmVnRXhwKFxuICBgXFxcXG5cXFxccythdCAke01FVEFEQVRBX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYFxuKVxuY29uc3QgaGFzVmlld3BvcnRSZWdleCA9IG5ldyBSZWdFeHAoXG4gIGBcXFxcblxcXFxzK2F0ICR7VklFV1BPUlRfQk9VTkRBUllfTkFNRX1bXFxcXG5cXFxcc11gXG4pXG5jb25zdCBoYXNPdXRsZXRSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxuXFxcXHMrYXQgJHtPVVRMRVRfQk9VTkRBUllfTkFNRX1bXFxcXG5cXFxcc11gKVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tBbGxvd2VkRHluYW1pY0FjY2VzcyhcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGNvbXBvbmVudFN0YWNrOiBzdHJpbmcsXG4gIGR5bmFtaWNWYWxpZGF0aW9uOiBEeW5hbWljVmFsaWRhdGlvblN0YXRlLFxuICBjbGllbnREeW5hbWljOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKSB7XG4gIGlmIChoYXNPdXRsZXRSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gdHJhY2sgdGhhdCB0aGlzIGlzIGR5bmFtaWMuIEl0IGlzIG9ubHkgc28gd2hlbiBzb21ldGhpbmcgZWxzZSBpcyBhbHNvIGR5bmFtaWMuXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoaGFzTWV0YWRhdGFSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNNZXRhZGF0YSA9IHRydWVcbiAgICByZXR1cm5cbiAgfSBlbHNlIGlmIChoYXNWaWV3cG9ydFJlZ2V4LnRlc3QoY29tcG9uZW50U3RhY2spKSB7XG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY1ZpZXdwb3J0ID0gdHJ1ZVxuICAgIHJldHVyblxuICB9IGVsc2UgaWYgKFxuICAgIGhhc1N1c3BlbnNlQmVmb3JlUm9vdExheW91dFdpdGhvdXRCb2R5T3JJbXBsaWNpdEJvZHlSZWdleC50ZXN0KFxuICAgICAgY29tcG9uZW50U3RhY2tcbiAgICApXG4gICkge1xuICAgIC8vIEZvciBTdXNwZW5zZSB3aXRoaW4gYm9keSwgdGhlIHByZWx1ZGUgd291bGRuJ3QgYmUgZW1wdHkgc28gaXQgd291bGRuJ3QgdmlvbGF0ZSB0aGUgZW1wdHkgc3RhdGljIHNoZWxscyBydWxlLlxuICAgIC8vIEJ1dCBpZiB5b3UgaGF2ZSBTdXNwZW5zZSBhYm92ZSBib2R5LCB0aGUgcHJlbHVkZSBpcyBlbXB0eSBidXQgd2UgYWxsb3cgdGhhdCBiZWNhdXNlIGhhdmluZyBTdXNwZW5zZVxuICAgIC8vIGlzIGFuIGV4cGxpY2l0IHNpZ25hbCBmcm9tIHRoZSB1c2VyIHRoYXQgdGhleSBhY2tub3dsZWRnZSB0aGUgZW1wdHkgc2hlbGwgYW5kIHdhbnQgZHluYW1pYyByZW5kZXJpbmcuXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzQWxsb3dlZER5bmFtaWMgPSB0cnVlXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzU3VzcGVuc2VBYm92ZUJvZHkgPSB0cnVlXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoaGFzU3VzcGVuc2VSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIC8vIHRoaXMgZXJyb3IgaGFkIGEgU3VzcGVuc2UgYm91bmRhcnkgYWJvdmUgaXQgc28gd2UgZG9uJ3QgbmVlZCB0byByZXBvcnQgaXQgYXMgYSBzb3VyY2VcbiAgICAvLyBvZiBkaXNhbGxvd2VkXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzQWxsb3dlZER5bmFtaWMgPSB0cnVlXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoY2xpZW50RHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKSB7XG4gICAgLy8gVGhpcyB0YXNrIHdhcyB0aGUgdGFzayB0aGF0IGNhbGxlZCB0aGUgc3luYyBlcnJvci5cbiAgICBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzLnB1c2goXG4gICAgICBjbGllbnREeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2tcbiAgICApXG4gICAgcmV0dXJuXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBSb3V0ZSBcIiR7d29ya1N0b3JlLnJvdXRlfVwiOiBBIGNvbXBvbmVudCBhY2Nlc3NlZCBkYXRhLCBoZWFkZXJzLCBwYXJhbXMsIHNlYXJjaFBhcmFtcywgb3IgYSBzaG9ydC1saXZlZCBjYWNoZSB3aXRob3V0IGEgU3VzcGVuc2UgYm91bmRhcnkgbm9yIGEgXCJ1c2UgY2FjaGVcIiBhYm92ZSBpdC4gU2VlIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1wcmVyZW5kZXItbWlzc2luZy1zdXNwZW5zZWBcbiAgICBjb25zdCBlcnJvciA9IGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudE9yT3duZXJTdGFjayhtZXNzYWdlLCBjb21wb25lbnRTdGFjaylcbiAgICBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzLnB1c2goZXJyb3IpXG4gICAgcmV0dXJuXG4gIH1cbn1cblxuLyoqXG4gKiBJbiBkZXYgbW9kZSwgd2UgcHJlZmVyIHVzaW5nIHRoZSBvd25lciBzdGFjaywgb3RoZXJ3aXNlIHRoZSBwcm92aWRlZFxuICogY29tcG9uZW50IHN0YWNrIGlzIHVzZWQuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudE9yT3duZXJTdGFjayhcbiAgbWVzc2FnZTogc3RyaW5nLFxuICBjb21wb25lbnRTdGFjazogc3RyaW5nXG4pIHtcbiAgY29uc3Qgb3duZXJTdGFjayA9XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBSZWFjdC5jYXB0dXJlT3duZXJTdGFja1xuICAgICAgPyBSZWFjdC5jYXB0dXJlT3duZXJTdGFjaygpXG4gICAgICA6IG51bGxcblxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKVxuICBlcnJvci5zdGFjayA9IGVycm9yLm5hbWUgKyAnOiAnICsgbWVzc2FnZSArIChvd25lclN0YWNrID8/IGNvbXBvbmVudFN0YWNrKVxuICByZXR1cm4gZXJyb3Jcbn1cblxuZXhwb3J0IGVudW0gUHJlbHVkZVN0YXRlIHtcbiAgRnVsbCA9IDAsXG4gIEVtcHR5ID0gMSxcbiAgRXJyb3JlZCA9IDIsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dEaXNhbGxvd2VkRHluYW1pY0Vycm9yKFxuICB3b3JrU3RvcmU6IFdvcmtTdG9yZSxcbiAgZXJyb3I6IEVycm9yXG4pOiB2b2lkIHtcbiAgY29uc29sZS5lcnJvcihlcnJvcilcblxuICBpZiAoIXdvcmtTdG9yZS5kZXYpIHtcbiAgICBpZiAod29ya1N0b3JlLmhhc1JlYWRhYmxlRXJyb3JTdGFja3MpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBUbyBnZXQgYSBtb3JlIGRldGFpbGVkIHN0YWNrIHRyYWNlIGFuZCBwaW5wb2ludCB0aGUgaXNzdWUsIHN0YXJ0IHRoZSBhcHAgaW4gZGV2ZWxvcG1lbnQgbW9kZSBieSBydW5uaW5nIFxcYG5leHQgZGV2XFxgLCB0aGVuIG9wZW4gXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBpbiB5b3VyIGJyb3dzZXIgdG8gaW52ZXN0aWdhdGUgdGhlIGVycm9yLmBcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgVG8gZ2V0IGEgbW9yZSBkZXRhaWxlZCBzdGFjayB0cmFjZSBhbmQgcGlucG9pbnQgdGhlIGlzc3VlLCB0cnkgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4gIC0gU3RhcnQgdGhlIGFwcCBpbiBkZXZlbG9wbWVudCBtb2RlIGJ5IHJ1bm5pbmcgXFxgbmV4dCBkZXZcXGAsIHRoZW4gb3BlbiBcIiR7d29ya1N0b3JlLnJvdXRlfVwiIGluIHlvdXIgYnJvd3NlciB0byBpbnZlc3RpZ2F0ZSB0aGUgZXJyb3IuXG4gIC0gUmVydW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQgd2l0aCBcXGBuZXh0IGJ1aWxkIC0tZGVidWctcHJlcmVuZGVyXFxgIHRvIGdlbmVyYXRlIGJldHRlciBzdGFjayB0cmFjZXMuYClcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93SWZEaXNhbGxvd2VkRHluYW1pYyhcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIHByZWx1ZGU6IFByZWx1ZGVTdGF0ZSxcbiAgZHluYW1pY1ZhbGlkYXRpb246IER5bmFtaWNWYWxpZGF0aW9uU3RhdGUsXG4gIHNlcnZlckR5bmFtaWM6IER5bmFtaWNUcmFja2luZ1N0YXRlXG4pOiB2b2lkIHtcbiAgaWYgKHByZWx1ZGUgIT09IFByZWx1ZGVTdGF0ZS5GdWxsKSB7XG4gICAgaWYgKGR5bmFtaWNWYWxpZGF0aW9uLmhhc1N1c3BlbnNlQWJvdmVCb2R5KSB7XG4gICAgICAvLyBUaGlzIHJvdXRlIGhhcyBvcHRlZCBpbnRvIGFsbG93aW5nIGZ1bGx5IGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAvLyBieSBpbmNsdWRpbmcgYSBTdXNwZW5zZSBib3VuZGFyeSBhYm92ZSB0aGUgYm9keS4gSW4gdGhpcyBjYXNlXG4gICAgICAvLyBhIGxhY2sgb2YgYSBzaGVsbCBpcyBub3QgY29uc2lkZXJlZCBkaXNhbGxvd2VkIHNvIHdlIHNpbXBseSByZXR1cm5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzZXJ2ZXJEeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spIHtcbiAgICAgIC8vIFRoZXJlIGlzIG5vIHNoZWxsIGFuZCB0aGUgc2VydmVyIGRpZCBzb21ldGhpbmcgc3luYyBkeW5hbWljIGxpa2VseVxuICAgICAgLy8gbGVhZGluZyB0byBhbiBlYXJseSB0ZXJtaW5hdGlvbiBvZiB0aGUgcHJlcmVuZGVyIGJlZm9yZSB0aGUgc2hlbGxcbiAgICAgIC8vIGNvdWxkIGJlIGNvbXBsZXRlZC4gV2UgdGVybWluYXRlIHRoZSBidWlsZC92YWxpZGF0aW5nIHJlbmRlci5cbiAgICAgIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3IoXG4gICAgICAgIHdvcmtTdG9yZSxcbiAgICAgICAgc2VydmVyRHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrXG4gICAgICApXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG5cbiAgICAvLyBXZSBkaWRuJ3QgaGF2ZSBhbnkgc3luYyBiYWlsb3V0cyBidXQgdGhlcmUgbWF5IGJlIHVzZXIgY29kZSB3aGljaFxuICAgIC8vIGJsb2NrZWQgdGhlIHJvb3QuIFdlIHdvdWxkIGhhdmUgY2FwdHVyZWQgdGhlc2UgZHVyaW5nIHRoZSBwcmVyZW5kZXJcbiAgICAvLyBhbmQgY2FuIGxvZyB0aGVtIGhlcmUgYW5kIHRoZW4gdGVybWluYXRlIHRoZSBidWlsZC92YWxpZGF0aW5nIHJlbmRlclxuICAgIGNvbnN0IGR5bmFtaWNFcnJvcnMgPSBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzXG4gICAgaWYgKGR5bmFtaWNFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkeW5hbWljRXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3Iod29ya1N0b3JlLCBkeW5hbWljRXJyb3JzW2ldKVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBnb3QgdGhpcyBmYXIgdGhlbiB0aGUgb25seSBvdGhlciB0aGluZyB0aGF0IGNvdWxkIGJlIGJsb2NraW5nXG4gICAgLy8gdGhlIHJvb3QgaXMgZHluYW1pYyBWaWV3cG9ydC4gSWYgdGhpcyBpcyBkeW5hbWljIHRoZW5cbiAgICAvLyB5b3UgbmVlZCB0byBvcHQgaW50byB0aGF0IGJ5IGFkZGluZyBhIFN1c3BlbnNlIGJvdW5kYXJ5IGFib3ZlIHRoZSBib2R5XG4gICAgLy8gdG8gaW5kaWNhdGUgeW91ciBhcmUgb2sgd2l0aCBmdWxseSBkeW5hbWljIHJlbmRlcmluZy5cbiAgICBpZiAoZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY1ZpZXdwb3J0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgUm91dGUgXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBoYXMgYSBcXGBnZW5lcmF0ZVZpZXdwb3J0XFxgIHRoYXQgZGVwZW5kcyBvbiBSZXF1ZXN0IGRhdGEgKFxcYGNvb2tpZXMoKVxcYCwgZXRjLi4uKSBvciB1bmNhY2hlZCBleHRlcm5hbCBkYXRhIChcXGBmZXRjaCguLi4pXFxgLCBldGMuLi4pIHdpdGhvdXQgZXhwbGljaXRseSBhbGxvd2luZyBmdWxseSBkeW5hbWljIHJlbmRlcmluZy4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXByZXJlbmRlci1keW5hbWljLXZpZXdwb3J0YFxuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuXG4gICAgaWYgKHByZWx1ZGUgPT09IFByZWx1ZGVTdGF0ZS5FbXB0eSkge1xuICAgICAgLy8gSWYgd2UgZXZlciBnZXQgdGhpcyBmYXIgdGhlbiB3ZSBtZXNzZWQgdXAgdGhlIHRyYWNraW5nIG9mIGludmFsaWQgZHluYW1pYy5cbiAgICAgIC8vIFdlIHN0aWxsIGFkaGVyZSB0byB0aGUgY29uc3RyYWludCB0aGF0IHlvdSBtdXN0IHByb2R1Y2UgYSBzaGVsbCBidXQgaW52aXRlIHRoZVxuICAgICAgLy8gdXNlciB0byByZXBvcnQgdGhpcyBhcyBhIGJ1ZyBpbiBOZXh0LmpzLlxuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFJvdXRlIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgZGlkIG5vdCBwcm9kdWNlIGEgc3RhdGljIHNoZWxsIGFuZCBOZXh0LmpzIHdhcyB1bmFibGUgdG8gZGV0ZXJtaW5lIGEgcmVhc29uLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuYFxuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChcbiAgICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0FsbG93ZWREeW5hbWljID09PSBmYWxzZSAmJlxuICAgICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY01ldGFkYXRhXG4gICAgKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgUm91dGUgXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBoYXMgYSBcXGBnZW5lcmF0ZU1ldGFkYXRhXFxgIHRoYXQgZGVwZW5kcyBvbiBSZXF1ZXN0IGRhdGEgKFxcYGNvb2tpZXMoKVxcYCwgZXRjLi4uKSBvciB1bmNhY2hlZCBleHRlcm5hbCBkYXRhIChcXGBmZXRjaCguLi4pXFxgLCBldGMuLi4pIHdoZW4gdGhlIHJlc3Qgb2YgdGhlIHJvdXRlIGRvZXMgbm90LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLWR5bmFtaWMtbWV0YWRhdGFgXG4gICAgICApXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5VW50aWxSdW50aW1lU3RhZ2U8VD4oXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblJ1bnRpbWUsXG4gIHJlc3VsdDogUHJvbWlzZTxUPlxuKTogUHJvbWlzZTxUPiB7XG4gIGlmIChwcmVyZW5kZXJTdG9yZS5ydW50aW1lU3RhZ2VQcm9taXNlKSB7XG4gICAgcmV0dXJuIHByZXJlbmRlclN0b3JlLnJ1bnRpbWVTdGFnZVByb21pc2UudGhlbigoKSA9PiByZXN1bHQpXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbIlBvc3Rwb25lIiwiUHJlbHVkZVN0YXRlIiwiYWJvcnRBbmRUaHJvd09uU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2VzcyIsImFib3J0T25TeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3MiLCJhY2Nlc3NlZER5bmFtaWNEYXRhIiwiYW5ub3RhdGVEeW5hbWljQWNjZXNzIiwiY29uc3VtZUR5bmFtaWNBY2Nlc3MiLCJjcmVhdGVEeW5hbWljVHJhY2tpbmdTdGF0ZSIsImNyZWF0ZUR5bmFtaWNWYWxpZGF0aW9uU3RhdGUiLCJjcmVhdGVIYW5naW5nSW5wdXRBYm9ydFNpZ25hbCIsImNyZWF0ZVJlbmRlckluQnJvd3NlckFib3J0U2lnbmFsIiwiZGVsYXlVbnRpbFJ1bnRpbWVTdGFnZSIsImZvcm1hdER5bmFtaWNBUElBY2Nlc3NlcyIsImdldEZpcnN0RHluYW1pY1JlYXNvbiIsImlzRHluYW1pY1Bvc3Rwb25lIiwiaXNQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yIiwibG9nRGlzYWxsb3dlZER5bmFtaWNFcnJvciIsIm1hcmtDdXJyZW50U2NvcGVBc0R5bmFtaWMiLCJwb3N0cG9uZVdpdGhUcmFja2luZyIsInRocm93SWZEaXNhbGxvd2VkRHluYW1pYyIsInRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uIiwidHJhY2tBbGxvd2VkRHluYW1pY0FjY2VzcyIsInRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIiLCJ0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2IiwidHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYiLCJ1c2VEeW5hbWljUm91dGVQYXJhbXMiLCJ3YXJuT25TeW5jRHluYW1pY0Vycm9yIiwiaGFzUG9zdHBvbmUiLCJSZWFjdCIsInVuc3RhYmxlX3Bvc3Rwb25lIiwiaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcyIsImR5bmFtaWNBY2Nlc3NlcyIsInN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2siLCJoYXNTdXNwZW5zZUFib3ZlQm9keSIsImhhc0R5bmFtaWNNZXRhZGF0YSIsImhhc0R5bmFtaWNWaWV3cG9ydCIsImhhc0FsbG93ZWREeW5hbWljIiwiZHluYW1pY0Vycm9ycyIsInRyYWNraW5nU3RhdGUiLCJleHByZXNzaW9uIiwic3RvcmUiLCJ3b3JrVW5pdFN0b3JlIiwidHlwZSIsImZvcmNlRHluYW1pYyIsImZvcmNlU3RhdGljIiwiZHluYW1pY1Nob3VsZEVycm9yIiwiU3RhdGljR2VuQmFpbG91dEVycm9yIiwicm91dGUiLCJkeW5hbWljVHJhY2tpbmciLCJyZXZhbGlkYXRlIiwiZXJyIiwiRHluYW1pY1NlcnZlckVycm9yIiwiZHluYW1pY1VzYWdlRGVzY3JpcHRpb24iLCJkeW5hbWljVXNhZ2VTdGFjayIsInN0YWNrIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlZER5bmFtaWMiLCJwcmVyZW5kZXJTdG9yZSIsImFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzIiwicmVhc29uIiwiZXJyb3IiLCJjcmVhdGVQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yIiwiY29udHJvbGxlciIsImFib3J0IiwicHVzaCIsIkVycm9yIiwidW5kZWZpbmVkIiwiZXJyb3JXaXRoU3RhY2siLCJyZXF1ZXN0U3RvcmUiLCJwcmVyZW5kZXJQaGFzZSIsInByZXJlbmRlclNpZ25hbCIsInNpZ25hbCIsImFib3J0ZWQiLCJjb25zb2xlIiwid29ya1VuaXRBc3luY1N0b3JhZ2UiLCJnZXRTdG9yZSIsImFzc2VydFBvc3Rwb25lIiwiY3JlYXRlUG9zdHBvbmVSZWFzb24iLCJtZXNzYWdlIiwiaXNEeW5hbWljUG9zdHBvbmVSZWFzb24iLCJpbmNsdWRlcyIsIk5FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEIiwiZGlnZXN0IiwibGVuZ3RoIiwic2VydmVyRHluYW1pYyIsImNsaWVudER5bmFtaWMiLCJmaWx0ZXIiLCJhY2Nlc3MiLCJtYXAiLCJzcGxpdCIsInNsaWNlIiwibGluZSIsImpvaW4iLCJBYm9ydENvbnRyb2xsZXIiLCJCYWlsb3V0VG9DU1JFcnJvciIsImNhY2hlU2lnbmFsIiwiaW5wdXRSZWFkeSIsInRoZW4iLCJydW50aW1lU3RhZ2VQcm9taXNlIiwiZ2V0UnVudGltZVN0YWdlUHJvbWlzZSIsInNjaGVkdWxlT25OZXh0VGljayIsIndvcmtTdG9yZSIsIndvcmtBc3luY1N0b3JhZ2UiLCJmYWxsYmFja1BhcmFtcyIsImZhbGxiYWNrUm91dGVQYXJhbXMiLCJzaXplIiwidXNlIiwibWFrZUhhbmdpbmdQcm9taXNlIiwicmVuZGVyU2lnbmFsIiwiSW52YXJpYW50RXJyb3IiLCJoYXNTdXNwZW5zZVJlZ2V4IiwiYm9keUFuZEltcGxpY2l0VGFncyIsImhhc1N1c3BlbnNlQmVmb3JlUm9vdExheW91dFdpdGhvdXRCb2R5T3JJbXBsaWNpdEJvZHlSZWdleCIsIlJlZ0V4cCIsIlJPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUUiLCJoYXNNZXRhZGF0YVJlZ2V4IiwiTUVUQURBVEFfQk9VTkRBUllfTkFNRSIsImhhc1ZpZXdwb3J0UmVnZXgiLCJWSUVXUE9SVF9CT1VOREFSWV9OQU1FIiwiaGFzT3V0bGV0UmVnZXgiLCJPVVRMRVRfQk9VTkRBUllfTkFNRSIsImNvbXBvbmVudFN0YWNrIiwiZHluYW1pY1ZhbGlkYXRpb24iLCJ0ZXN0IiwiY3JlYXRlRXJyb3JXaXRoQ29tcG9uZW50T3JPd25lclN0YWNrIiwib3duZXJTdGFjayIsImNhcHR1cmVPd25lclN0YWNrIiwibmFtZSIsImRldiIsImhhc1JlYWRhYmxlRXJyb3JTdGFja3MiLCJwcmVsdWRlIiwiaSIsInJlc3VsdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/encryption-utils.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/encryption-utils.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 arrayBufferToString: function() {\n return arrayBufferToString;\n },\n decrypt: function() {\n return decrypt;\n },\n encrypt: function() {\n return encrypt;\n },\n getActionEncryptionKey: function() {\n return getActionEncryptionKey;\n },\n getClientReferenceManifestForRsc: function() {\n return getClientReferenceManifestForRsc;\n },\n getServerModuleMap: function() {\n return getServerModuleMap;\n },\n setReferenceManifestsSingleton: function() {\n return setReferenceManifestsSingleton;\n },\n stringToUint8Array: function() {\n return stringToUint8Array;\n }\n});\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ./work-async-storage.external */ \"./work-async-storage.external\");\nlet __next_loaded_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}\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({ page, clientReferenceManifest, serverActionsManifest, serverModuleMap }) {\n var _globalThis_SERVER_ACTION_MANIFESTS_SINGLETON;\n // @ts-expect-error\n const clientReferenceManifestsPerPage = (_globalThis_SERVER_ACTION_MANIFESTS_SINGLETON = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON]) == null ? void 0 : _globalThis_SERVER_ACTION_MANIFESTS_SINGLETON.clientReferenceManifestsPerPage;\n // @ts-expect-error\n globalThis[SERVER_ACTION_MANIFESTS_SINGLETON] = {\n clientReferenceManifestsPerPage: {\n ...clientReferenceManifestsPerPage,\n [(0, _apppaths.normalizeAppPath)(page)]: clientReferenceManifest\n },\n serverActionsManifest,\n serverModuleMap\n };\n}\nfunction getServerModuleMap() {\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), \"__NEXT_ERROR_CODE\", {\n value: \"E606\",\n enumerable: false,\n configurable: true\n });\n }\n return serverActionsManifestSingleton.serverModuleMap;\n}\nfunction getClientReferenceManifestForRsc() {\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), \"__NEXT_ERROR_CODE\", {\n value: \"E606\",\n enumerable: false,\n configurable: true\n });\n }\n const { clientReferenceManifestsPerPage } = serverActionsManifestSingleton;\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n // If there's no work store defined, we can assume that a client reference\n // manifest is needed during module evaluation, e.g. to create a server\n // action using a higher-order function. This might also use client\n // components which need to be serialized by Flight, and therefore client\n // references need to be resolvable. To make this work, we're returning a\n // merged manifest across all pages. This is fine as long as the module IDs\n // are not page specific, which they are not for Webpack. TODO: Fix this in\n // Turbopack.\n return mergeClientReferenceManifests(clientReferenceManifestsPerPage);\n }\n const clientReferenceManifest = clientReferenceManifestsPerPage[workStore.route];\n if (!clientReferenceManifest) {\n throw Object.defineProperty(new _invarianterror.InvariantError(`Missing Client Reference Manifest for ${workStore.route}.`), \"__NEXT_ERROR_CODE\", {\n value: \"E570\",\n enumerable: false,\n configurable: true\n });\n }\n return 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 Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), \"__NEXT_ERROR_CODE\", {\n value: \"E606\",\n enumerable: false,\n configurable: true\n });\n }\n const rawKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY || serverActionsManifestSingleton.serverActionsManifest.encryptionKey;\n if (rawKey === undefined) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing encryption key for Server Actions'), \"__NEXT_ERROR_CODE\", {\n value: \"E571\",\n enumerable: false,\n configurable: true\n });\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}\nfunction mergeClientReferenceManifests(clientReferenceManifestsPerPage) {\n const clientReferenceManifests = Object.values(clientReferenceManifestsPerPage);\n const mergedClientReferenceManifest = {\n clientModules: {},\n edgeRscModuleMapping: {},\n rscModuleMapping: {}\n };\n for (const clientReferenceManifest of clientReferenceManifests){\n mergedClientReferenceManifest.clientModules = {\n ...mergedClientReferenceManifest.clientModules,\n ...clientReferenceManifest.clientModules\n };\n mergedClientReferenceManifest.edgeRscModuleMapping = {\n ...mergedClientReferenceManifest.edgeRscModuleMapping,\n ...clientReferenceManifest.edgeRscModuleMapping\n };\n mergedClientReferenceManifest.rscModuleMapping = {\n ...mergedClientReferenceManifest.rscModuleMapping,\n ...clientReferenceManifest.rscModuleMapping\n };\n }\n return mergedClientReferenceManifest;\n} //# sourceMappingURL=encryption-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VuY3J5cHRpb24tdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBWWdCQSxtQkFBbUI7ZUFBbkJBOztJQTBDQUMsT0FBTztlQUFQQTs7SUFYQUMsT0FBTztlQUFQQTs7SUE2SE1DLHNCQUFzQjtlQUF0QkE7O0lBeENOQyxnQ0FBZ0M7ZUFBaENBOztJQXBCQUMsa0JBQWtCO2VBQWxCQTs7SUFuQ0FDLDhCQUE4QjtlQUE5QkE7O0lBekNBQyxrQkFBa0I7ZUFBbEJBOzs7NENBMUJlO3NDQUNFO3NEQUNBO0FBRWpDLElBQUlDO0FBRUcsU0FBU1Isb0JBQ2RTLE1BQWlEO0lBRWpELE1BQU1DLFFBQVEsSUFBSUMsV0FBV0Y7SUFDN0IsTUFBTUcsTUFBTUYsTUFBTUcsVUFBVTtJQUU1Qiw2REFBNkQ7SUFDN0QsbUNBQW1DO0lBQ25DLDRFQUE0RTtJQUM1RSxJQUFJRCxNQUFNLE9BQU87UUFDZixPQUFPRSxPQUFPQyxZQUFZLENBQUNDLEtBQUssQ0FBQyxNQUFNTjtJQUN6QztJQUVBLElBQUlPLFNBQVM7SUFDYixJQUFLLElBQUlDLElBQUksR0FBR0EsSUFBSU4sS0FBS00sSUFBSztRQUM1QkQsVUFBVUgsT0FBT0MsWUFBWSxDQUFDTCxLQUFLLENBQUNRLEVBQUU7SUFDeEM7SUFDQSxPQUFPRDtBQUNUO0FBRU8sU0FBU1YsbUJBQW1CVSxNQUFjO0lBQy9DLE1BQU1MLE1BQU1LLE9BQU9FLE1BQU07SUFDekIsTUFBTUMsTUFBTSxJQUFJVCxXQUFXQztJQUUzQixJQUFLLElBQUlNLElBQUksR0FBR0EsSUFBSU4sS0FBS00sSUFBSztRQUM1QkUsR0FBRyxDQUFDRixFQUFFLEdBQUdELE9BQU9JLFVBQVUsQ0FBQ0g7SUFDN0I7SUFFQSxPQUFPRTtBQUNUO0FBRU8sU0FBU2xCLFFBQVFvQixHQUFjLEVBQUVDLEVBQWMsRUFBRUMsSUFBZ0I7SUFDdEUsT0FBT0MsT0FBT0MsTUFB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U0FBUyxDQUN0RCxPQUNBNUMsbUJBQW1CNkMsS0FBS1AsVUFDeEIsV0FDQSxNQUNBO1FBQUM7UUFBVztLQUFVO0lBR3hCLE9BQU9yQztBQUNUO0FBRUEsU0FBU21DLDhCQUNQUCwrQkFFQztJQUVELE1BQU1pQiwyQkFBMkJDLE9BQU9DLE1BQU0sQ0FDNUNuQjtJQUdGLE1BQU1vQixnQ0FBK0Q7UUFDbkVDLGVBQWUsQ0FBQztRQUNoQkMsc0JBQXNCLENBQUM7UUFDdkJDLGtCQUFrQixDQUFDO0lBQ3JCO0lBRUEsS0FBSyxNQUFNM0IsMkJBQTJCcUIseUJBQTBCO1FBQzlERyw4QkFBOEJDLGFBQWEsR0FBRztZQUM1QyxHQUFHRCw4QkFBOEJDLGFBQWE7WUFDOUMsR0FBR3pCLHdCQUF3QnlCLGFBQWE7UUFDMUM7UUFDQUQsOEJBQThCRSxvQkFBb0IsR0FBRztZQUNuRCxHQUFHRiw4QkFBOEJFLG9CQUFvQjtZQUNyRCxHQUFHMUIsd0JBQXdCMEIsb0JBQW9CO1FBQ2pEO1FBQ0FGLDhCQUE4QkcsZ0JBQWdCLEdBQUc7WUFDL0MsR0FBR0gsOEJBQThCRyxnQkFBZ0I7WUFDakQsR0FBRzNCLHdCQUF3QjJCLGdCQUFnQjtRQUM3QztJQUNGO0lBRUEsT0FBT0g7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL3NlcnZlci9hcHAtcmVuZGVyL2VuY3J5cHRpb24tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBY3Rpb25NYW5pZmVzdCB9IGZyb20gJy4uLy4uL2J1aWxkL3dlYnBhY2svcGx1Z2lucy9mbGlnaHQtY2xpZW50LWVudHJ5LXBsdWdpbidcbmltcG9ydCB0eXBlIHtcbiAgQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gIENsaWVudFJlZmVyZW5jZU1hbmlmZXN0Rm9yUnNjLFxufSBmcm9tICcuLi8uLi9idWlsZC93ZWJwYWNrL3BsdWdpbnMvZmxpZ2h0LW1hbmlmZXN0LXBsdWdpbidcbmltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9kZWVwLXJlYWRvbmx5J1xuaW1wb3J0IHsgSW52YXJpYW50RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvcidcbmltcG9ydCB7IG5vcm1hbGl6ZUFwcFBhdGggfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hcHAtcGF0aHMnXG5pbXBvcnQgeyB3b3JrQXN5bmNTdG9yYWdlIH0gZnJvbSAnLi93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmxldCBfX25leHRfbG9hZGVkX2FjdGlvbl9rZXk6IENyeXB0b0tleVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlCdWZmZXJUb1N0cmluZyhcbiAgYnVmZmVyOiBBcnJheUJ1ZmZlciB8IFVpbnQ4QXJyYXk8QXJyYXlCdWZmZXJMaWtlPlxuKSB7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKVxuICBjb25zdCBsZW4gPSBieXRlcy5ieXRlTGVuZ3RoXG5cbiAgLy8gQGFub25yaWc6IFY4IGhhcyBhIGxpbWl0IG9mIDY1NTM1IGFyZ3VtZW50cyBpbiBhIGZ1bmN0aW9uLlxuICAvLyBGb3IgbGVuIDwgNjU1MzUsIHRoaXMgaXMgZmFzdGVyLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC81NjM3NyNwdWxscmVxdWVzdHJldmlldy0xNjU2MTgxNjIzXG4gIGlmIChsZW4gPCA2NTUzNSkge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGJ5dGVzIGFzIHVua25vd24gYXMgbnVtYmVyW10pXG4gIH1cblxuICBsZXQgYmluYXJ5ID0gJydcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGJpbmFyeSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldKVxuICB9XG4gIHJldHVybiBiaW5hcnlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvVWludDhBcnJheShiaW5hcnk6IHN0cmluZykge1xuICBjb25zdCBsZW4gPSBiaW5hcnkubGVuZ3RoXG4gIGNvbnN0IGFyciA9IG5ldyBVaW50OEFycmF5KGxlbilcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYXJyW2ldID0gYmluYXJ5LmNoYXJDb2RlQXQoaSlcbiAgfVxuXG4gIHJldHVybiBhcnJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY3J5cHQoa2V5OiBDcnlwdG9LZXksIGl2OiBVaW50OEFycmF5LCBkYXRhOiBVaW50OEFycmF5KSB7XG4gIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoXG4gICAge1xuICAgICAgbmFtZTogJ0FFUy1HQ00nLFxuICAgICAgaXYsXG4gICAgfSxcbiAgICBrZXksXG4gICAgZGF0YVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNyeXB0KGtleTogQ3J5cHRvS2V5LCBpdjogVWludDhBcnJheSwgZGF0YTogVWludDhBcnJheSkge1xuICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kZWNyeXB0KFxuICAgIHtcbiAgICAgIG5hbWU6ICdBRVMtR0NNJyxcbiAgICAgIGl2LFxuICAgIH0sXG4gICAga2V5LFxuICAgIGRhdGFcbiAgKVxufVxuXG4vLyBUaGlzIGlzIGEgZ2xvYmFsIHNpbmdsZXRvbiB0aGF0IGlzIHVzZWQgdG8gZW5jb2RlL2RlY29kZSB0aGUgYWN0aW9uIGJvdW5kIGFyZ3MgZnJvbVxuLy8gdGhlIGNsb3N1cmUuIFRoaXMgY2FuJ3QgYmUgdXNpbmcgYSBBc3luY0xvY2FsU3RvcmFnZSBhcyBpdCBtaWdodCBoYXBwZW4gb24gdGhlIG1vZHVsZVxuLy8gbGV2ZWwuIFNpbmNlIHRoZSBjbGllbnQgcmVmZXJlbmNlIG1hbmlmZXN0IHdvbid0IGJlIG11dGF0ZWQsIGxldCdzIHVzZSBhIGdsb2JhbCBzaW5nbGV0b25cbi8vIHRvIGtlZXAgaXQuXG5jb25zdCBTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT04gPSBTeW1ib2wuZm9yKFxuICAnbmV4dC5zZXJ2ZXIuYWN0aW9uLW1hbmlmZXN0cydcbilcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZmVyZW5jZU1hbmlmZXN0c1NpbmdsZXRvbih7XG4gIHBhZ2UsXG4gIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LFxuICBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QsXG4gIHNlcnZlck1vZHVsZU1hcCxcbn06IHtcbiAgcGFnZTogc3RyaW5nXG4gIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0OiBEZWVwUmVhZG9ubHk8Q2xpZW50UmVmZXJlbmNlTWFuaWZlc3Q+XG4gIHNlcnZlckFjdGlvbnNNYW5pZmVzdDogRGVlcFJlYWRvbmx5PEFjdGlvbk1hbmlmZXN0PlxuICBzZXJ2ZXJNb2R1bGVNYXA6IHtcbiAgICBbaWQ6IHN0cmluZ106IHtcbiAgICAgIGlkOiBzdHJpbmdcbiAgICAgIGNodW5rczogc3RyaW5nW11cbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgIH1cbiAgfVxufSkge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGNvbnN0IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UgPSBnbG9iYWxUaGlzW1xuICAgIFNFUlZFUl9BQ1RJT05fTUFOSUZFU1RTX1NJTkdMRVRPTlxuICBdPy5jbGllbnRSZWZlcmVuY2VNYW5pZmVzdHNQZXJQYWdlIGFzXG4gICAgfCB1bmRlZmluZWRcbiAgICB8IERlZXBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdD4+XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBnbG9iYWxUaGlzW1NFUlZFUl9BQ1RJT05fTUFOSUZFU1RTX1NJTkdMRVRPTl0gPSB7XG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZToge1xuICAgICAgLi4uY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZSxcbiAgICAgIFtub3JtYWxpemVBcHBQYXRoKHBhZ2UpXTogY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gICAgfSxcbiAgICBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QsXG4gICAgc2VydmVyTW9kdWxlTWFwLFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXJ2ZXJNb2R1bGVNYXAoKSB7XG4gIGNvbnN0IHNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbiA9IChnbG9iYWxUaGlzIGFzIGFueSlbXG4gICAgU0VSVkVSX0FDVElPTl9NQU5JRkVTVFNfU0lOR0xFVE9OXG4gIF0gYXMge1xuICAgIHNlcnZlck1vZHVsZU1hcDoge1xuICAgICAgW2lkOiBzdHJpbmddOiB7XG4gICAgICAgIGlkOiBzdHJpbmdcbiAgICAgICAgY2h1bmtzOiBzdHJpbmdbXVxuICAgICAgICBuYW1lOiBzdHJpbmdcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIXNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbikge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyBtYW5pZmVzdCBmb3IgU2VydmVyIEFjdGlvbnMuJylcbiAgfVxuXG4gIHJldHVybiBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24uc2VydmVyTW9kdWxlTWFwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdEZvclJzYygpOiBEZWVwUmVhZG9ubHk8Q2xpZW50UmVmZXJlbmNlTWFuaWZlc3RGb3JSc2M+IHtcbiAgY29uc3Qgc2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uID0gKGdsb2JhbFRoaXMgYXMgYW55KVtcbiAgICBTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT05cbiAgXSBhcyB7XG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZTogRGVlcFJlYWRvbmx5PFxuICAgICAgUmVjb3JkPHN0cmluZywgQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3Q+XG4gICAgPlxuICB9XG5cbiAgaWYgKCFzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24pIHtcbiAgICB0aHJvdyBuZXcgSW52YXJpYW50RXJyb3IoJ01pc3NpbmcgbWFuaWZlc3QgZm9yIFNlcnZlciBBY3Rpb25zLicpXG4gIH1cblxuICBjb25zdCB7IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UgfSA9IHNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvblxuICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcblxuICBpZiAoIXdvcmtTdG9yZSkge1xuICAgIC8vIElmIHRoZXJlJ3Mgbm8gd29yayBzdG9yZSBkZWZpbmVkLCB3ZSBjYW4gYXNzdW1lIHRoYXQgYSBjbGllbnQgcmVmZXJlbmNlXG4gICAgLy8gbWFuaWZlc3QgaXMgbmVlZGVkIGR1cmluZyBtb2R1bGUgZXZhbHVhdGlvbiwgZS5nLiB0byBjcmVhdGUgYSBzZXJ2ZXJcbiAgICAvLyBhY3Rpb24gdXNpbmcgYSBoaWdoZXItb3JkZXIgZnVuY3Rpb24uIFRoaXMgbWlnaHQgYWxzbyB1c2UgY2xpZW50XG4gICAgLy8gY29tcG9uZW50cyB3aGljaCBuZWVkIHRvIGJlIHNlcmlhbGl6ZWQgYnkgRmxpZ2h0LCBhbmQgdGhlcmVmb3JlIGNsaWVudFxuICAgIC8vIHJlZmVyZW5jZXMgbmVlZCB0byBiZSByZXNvbHZhYmxlLiBUbyBtYWtlIHRoaXMgd29yaywgd2UncmUgcmV0dXJuaW5nIGFcbiAgICAvLyBtZXJnZWQgbWFuaWZlc3QgYWNyb3NzIGFsbCBwYWdlcy4gVGhpcyBpcyBmaW5lIGFzIGxvbmcgYXMgdGhlIG1vZHVsZSBJRHNcbiAgICAvLyBhcmUgbm90IHBhZ2Ugc3BlY2lmaWMsIHdoaWNoIHRoZXkgYXJlIG5vdCBmb3IgV2VicGFjay4gVE9ETzogRml4IHRoaXMgaW5cbiAgICAvLyBUdXJib3BhY2suXG4gICAgcmV0dXJuIG1lcmdlQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzKGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UpXG4gIH1cblxuICBjb25zdCBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCA9XG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZVt3b3JrU3RvcmUucm91dGVdXG5cbiAgaWYgKCFjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCkge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgIGBNaXNzaW5nIENsaWVudCBSZWZlcmVuY2UgTWFuaWZlc3QgZm9yICR7d29ya1N0b3JlLnJvdXRlfS5gXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBY3Rpb25FbmNyeXB0aW9uS2V5KCkge1xuICBpZiAoX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5KSB7XG4gICAgcmV0dXJuIF9fbmV4dF9sb2FkZWRfYWN0aW9uX2tleVxuICB9XG5cbiAgY29uc3Qgc2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uID0gKGdsb2JhbFRoaXMgYXMgYW55KVtcbiAgICBTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT05cbiAgXSBhcyB7XG4gICAgc2VydmVyQWN0aW9uc01hbmlmZXN0OiBEZWVwUmVhZG9ubHk8QWN0aW9uTWFuaWZlc3Q+XG4gIH1cblxuICBpZiAoIXNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbikge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyBtYW5pZmVzdCBmb3IgU2VydmVyIEFjdGlvbnMuJylcbiAgfVxuXG4gIGNvbnN0IHJhd0tleSA9XG4gICAgcHJvY2Vzcy5lbnYuTkVYVF9TRVJWRVJfQUNUSU9OU19FTkNSWVBUSU9OX0tFWSB8fFxuICAgIHNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbi5zZXJ2ZXJBY3Rpb25zTWFuaWZlc3QuZW5jcnlwdGlvbktleVxuXG4gIGlmIChyYXdLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyBlbmNyeXB0aW9uIGtleSBmb3IgU2VydmVyIEFjdGlvbnMnKVxuICB9XG5cbiAgX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgJ3JhdycsXG4gICAgc3RyaW5nVG9VaW50OEFycmF5KGF0b2IocmF3S2V5KSksXG4gICAgJ0FFUy1HQ00nLFxuICAgIHRydWUsXG4gICAgWydlbmNyeXB0JywgJ2RlY3J5cHQnXVxuICApXG5cbiAgcmV0dXJuIF9fbmV4dF9sb2FkZWRfYWN0aW9uX2tleVxufVxuXG5mdW5jdGlvbiBtZXJnZUNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyhcbiAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZTogRGVlcFJlYWRvbmx5PFxuICAgIFJlY29yZDxzdHJpbmcsIENsaWVudFJlZmVyZW5jZU1hbmlmZXN0PlxuICA+XG4pOiBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdEZvclJzYyB7XG4gIGNvbnN0IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyA9IE9iamVjdC52YWx1ZXMoXG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZSBhcyBSZWNvcmQ8c3RyaW5nLCBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdD5cbiAgKVxuXG4gIGNvbnN0IG1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0OiBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdEZvclJzYyA9IHtcbiAgICBjbGllbnRNb2R1bGVzOiB7fSxcbiAgICBlZGdlUnNjTW9kdWxlTWFwcGluZzoge30sXG4gICAgcnNjTW9kdWxlTWFwcGluZzoge30sXG4gIH1cblxuICBmb3IgKGNvbnN0IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0IG9mIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cykge1xuICAgIG1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0LmNsaWVudE1vZHVsZXMgPSB7XG4gICAgICAuLi5tZXJnZWRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5jbGllbnRNb2R1bGVzLFxuICAgICAgLi4uY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QuY2xpZW50TW9kdWxlcyxcbiAgICB9XG4gICAgbWVyZ2VkQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3QuZWRnZVJzY01vZHVsZU1hcHBpbmcgPSB7XG4gICAgICAuLi5tZXJnZWRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5lZGdlUnNjTW9kdWxlTWFwcGluZyxcbiAgICAgIC4uLmNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LmVkZ2VSc2NNb2R1bGVNYXBwaW5nLFxuICAgIH1cbiAgICBtZXJnZWRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5yc2NNb2R1bGVNYXBwaW5nID0ge1xuICAgICAgLi4ubWVyZ2VkQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3QucnNjTW9kdWxlTWFwcGluZyxcbiAgICAgIC4uLmNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LnJzY01vZHVsZU1hcHBpbmcsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0XG59XG4iXSwibmFtZXMiOlsiYXJyYXlCdWZmZXJUb1N0cmluZyIsImRlY3J5cHQiLCJlbmNyeXB0IiwiZ2V0QWN0aW9uRW5jcnlwdGlvbktleSIsImdldENsaWVudFJlZmVyZW5jZU1hbmlmZXN0Rm9yUnNjIiwiZ2V0U2VydmVyTW9kdWxlTWFwIiwic2V0UmVmZXJlbmNlTWFuaWZlc3RzU2luZ2xldG9uIiwic3RyaW5nVG9VaW50OEFycmF5IiwiX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5IiwiYnVmZmVyIiwiYnl0ZXMiLCJVaW50OEFycmF5IiwibGVuIiwiYnl0ZUxlbmd0aCIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImFwcGx5IiwiYmluYXJ5IiwiaSIsImxlbmd0aCIsImFyciIsImNoYXJDb2RlQXQiLCJrZXkiLCJpdiIsImRhdGEiLCJjcnlwdG8iLCJzdWJ0bGUiLCJuYW1lIiwiU0VSVkVSX0FDVElPTl9NQU5JRkVTVFNfU0lOR0xFVE9OIiwiU3ltYm9sIiwiZm9yIiwicGFnZSIsImNsaWVudFJlZmVyZW5jZU1hbmlmZXN0Iiwic2VydmVyQWN0aW9uc01hbmlmZXN0Iiwic2VydmVyTW9kdWxlTWFwIiwiZ2xvYmFsVGhpcyIsImNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UiLCJub3JtYWxpemVBcHBQYXRoIiwic2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uIiwiSW52YXJpYW50RXJyb3IiLCJ3b3JrU3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJtZXJnZUNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyIsInJvdXRlIiwicmF3S2V5IiwicHJvY2VzcyIsImVudiIsIk5FWFRfU0VSVkVSX0FDVElPTlNfRU5DUllQVElPTl9LRVkiLCJlbmNyeXB0aW9uS2V5IiwidW5kZWZpbmVkIiwiaW1wb3J0S2V5IiwiYXRvYiIsImNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyIsIk9iamVjdCIsInZhbHVlcyIsIm1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0IiwiY2xpZW50TW9kdWxlcyIsImVkZ2VSc2NNb2R1bGVNYXBwaW5nIiwicnNjTW9kdWxlTWFwcGluZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/encryption-utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/entry-base.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/entry-base.js ***!
|
||
\****************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("// eslint-disable-next-line import/no-extraneous-dependencies\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 ClientPageRoot: function() {\n return _clientpage.ClientPageRoot;\n },\n ClientSegmentRoot: function() {\n return _clientsegment.ClientSegmentRoot;\n },\n HTTPAccessFallbackBoundary: function() {\n return _errorboundary.HTTPAccessFallbackBoundary;\n },\n LayoutRouter: function() {\n return _layoutrouter.default;\n },\n MetadataBoundary: function() {\n return _boundarycomponents.MetadataBoundary;\n },\n OutletBoundary: function() {\n return _boundarycomponents.OutletBoundary;\n },\n Postpone: function() {\n return _postpone.Postpone;\n },\n RenderFromTemplateContext: function() {\n return _renderfromtemplatecontext.default;\n },\n RootLayoutBoundary: function() {\n return _boundarycomponents.RootLayoutBoundary;\n },\n SegmentViewNode: function() {\n return SegmentViewNode;\n },\n SegmentViewStateNode: function() {\n return SegmentViewStateNode;\n },\n ViewportBoundary: function() {\n return _boundarycomponents.ViewportBoundary;\n },\n actionAsyncStorage: function() {\n return _actionasyncstorageexternal.actionAsyncStorage;\n },\n captureOwnerStack: function() {\n return _react.captureOwnerStack;\n },\n collectSegmentData: function() {\n return _collectsegmentdata.collectSegmentData;\n },\n createMetadataComponents: function() {\n return _metadata.createMetadataComponents;\n },\n createPrerenderParamsForClientSegment: function() {\n return _params.createPrerenderParamsForClientSegment;\n },\n createPrerenderSearchParamsForClientPage: function() {\n return _searchparams.createPrerenderSearchParamsForClientPage;\n },\n createServerParamsForServerSegment: function() {\n return _params.createServerParamsForServerSegment;\n },\n createServerSearchParamsForServerPage: function() {\n return _searchparams.createServerSearchParamsForServerPage;\n },\n createTemporaryReferenceSet: function() {\n return _server.createTemporaryReferenceSet;\n },\n decodeAction: function() {\n return _server.decodeAction;\n },\n decodeFormState: function() {\n return _server.decodeFormState;\n },\n decodeReply: function() {\n return _server.decodeReply;\n },\n patchFetch: function() {\n return patchFetch;\n },\n preconnect: function() {\n return _preloads.preconnect;\n },\n preloadFont: function() {\n return _preloads.preloadFont;\n },\n preloadStyle: function() {\n return _preloads.preloadStyle;\n },\n prerender: function() {\n return _static.unstable_prerender;\n },\n renderToReadableStream: function() {\n return _server.renderToReadableStream;\n },\n serverHooks: function() {\n return _hooksservercontext;\n },\n taintObjectReference: function() {\n return _taint.taintObjectReference;\n },\n workAsyncStorage: function() {\n return _workasyncstorageexternal.workAsyncStorage;\n },\n workUnitAsyncStorage: function() {\n return _workunitasyncstorageexternal.workUnitAsyncStorage;\n }\n});\nconst _server = __webpack_require__(/*! react-server-dom-webpack/server */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\");\nconst _static = __webpack_require__(/*! react-server-dom-webpack/static */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js\");\nconst _react = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\");\nconst _layoutrouter = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../client/components/layout-router */ \"(rsc)/./node_modules/next/dist/client/components/layout-router.js\"));\nconst _renderfromtemplatecontext = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../client/components/render-from-template-context */ \"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js\"));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ./work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _actionasyncstorageexternal = __webpack_require__(/*! ../app-render/action-async-storage.external */ \"../app-render/action-async-storage.external\");\nconst _clientpage = __webpack_require__(/*! ../../client/components/client-page */ \"(rsc)/./node_modules/next/dist/client/components/client-page.js\");\nconst _clientsegment = __webpack_require__(/*! ../../client/components/client-segment */ \"(rsc)/./node_modules/next/dist/client/components/client-segment.js\");\nconst _searchparams = __webpack_require__(/*! ../request/search-params */ \"(rsc)/./node_modules/next/dist/server/request/search-params.js\");\nconst _params = __webpack_require__(/*! ../request/params */ \"(rsc)/./node_modules/next/dist/server/request/params.js\");\nconst _hooksservercontext = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\"));\nconst _errorboundary = __webpack_require__(/*! ../../client/components/http-access-fallback/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\");\nconst _metadata = __webpack_require__(/*! ../../lib/metadata/metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/metadata.js\");\nconst _boundarycomponents = __webpack_require__(/*! ../../lib/framework/boundary-components */ \"(rsc)/./node_modules/next/dist/lib/framework/boundary-components.js\");\nconst _preloads = __webpack_require__(/*! ./rsc/preloads */ \"(rsc)/./node_modules/next/dist/server/app-render/rsc/preloads.js\");\nconst _postpone = __webpack_require__(/*! ./rsc/postpone */ \"(rsc)/./node_modules/next/dist/server/app-render/rsc/postpone.js\");\nconst _taint = __webpack_require__(/*! ./rsc/taint */ \"(rsc)/./node_modules/next/dist/server/app-render/rsc/taint.js\");\nconst _collectsegmentdata = __webpack_require__(/*! ./collect-segment-data */ \"(rsc)/./node_modules/next/dist/server/app-render/collect-segment-data.js\");\nconst _patchfetch = __webpack_require__(/*! ../lib/patch-fetch */ \"(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nlet SegmentViewNode = ()=>null;\nlet SegmentViewStateNode = ()=>null;\nif (true) {\n const mod = __webpack_require__(/*! ../../next-devtools/userspace/app/segment-explorer-node */ \"(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\n SegmentViewNode = mod.SegmentViewNode;\n SegmentViewStateNode = mod.SegmentViewStateNode;\n}\n// hot-reloader modules are not bundled so we need to inject `__next__clear_chunk_cache__`\n// into globalThis from this file which is bundled.\nif (false) {} else {\n // Webpack does not have chunks on the server\n globalThis.__next__clear_chunk_cache__ = null;\n}\nfunction patchFetch() {\n return (0, _patchfetch.patchFetch)({\n workAsyncStorage: _workasyncstorageexternal.workAsyncStorage,\n workUnitAsyncStorage: _workunitasyncstorageexternal.workUnitAsyncStorage\n });\n}\n\n//# sourceMappingURL=entry-base.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FtQ0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGdCQUFnQixtQkFBTyxDQUFDLHFKQUFpQztBQUN6RCxnQkFBZ0IsbUJBQU8sQ0FBQyxxSkFBaUM7QUFDekQsZUFBZSxtQkFBTyxDQUFDLGlHQUFPO0FBQzlCLDZEQUE2RCxtQkFBTyxDQUFDLGdIQUF1QztBQUM1RywwRUFBMEUsbUJBQU8sQ0FBQyw4SUFBc0Q7QUFDeEksa0NBQWtDLG1CQUFPLENBQUMsZ0ZBQTJDO0FBQ3JGLHNDQUFzQyxtQkFBTyxDQUFDLDhFQUFvQztBQUNsRixvQ0FBb0MsbUJBQU8sQ0FBQyxnR0FBNkM7QUFDekYsb0JBQW9CLG1CQUFPLENBQUMsNEdBQXFDO0FBQ2pFLHVCQUF1QixtQkFBTyxDQUFDLGtIQUF3QztBQUN2RSxzQkFBc0IsbUJBQU8sQ0FBQyxnR0FBMEI7QUFDeEQsZ0JBQWdCLG1CQUFPLENBQUMsa0ZBQW1CO0FBQzNDLG9FQUFvRSxtQkFBTyxDQUFDLDhIQUE4QztBQUMxSCx1QkFBdUIsbUJBQU8sQ0FBQyw0SkFBNkQ7QUFDNUYsa0JBQWtCLG1CQUFPLENBQUMsNEZBQTZCO0FBQ3ZELDRCQUE0QixtQkFBTyxDQUFDLG9IQUF5QztBQUM3RSxrQkFBa0IsbUJBQU8sQ0FBQyx3RkFBZ0I7QUFDMUMsa0JBQWtCLG1CQUFPLENBQUMsd0ZBQWdCO0FBQzFDLGVBQWUsbUJBQU8sQ0FBQyxrRkFBYTtBQUNwQyw0QkFBNEIsbUJBQU8sQ0FBQyx3R0FBd0I7QUFDNUQsb0JBQW9CLG1CQUFPLENBQUMsb0ZBQW9CO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQXNDO0FBQzFDLGdCQUFnQixtQkFBTyxDQUFDLG9KQUF5RDtBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFxQixFQUFFLEVBRTFCLENBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9lbnRyeS1iYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQ2xpZW50UGFnZVJvb3Q6IG51bGwsXG4gICAgQ2xpZW50U2VnbWVudFJvb3Q6IG51bGwsXG4gICAgSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnk6IG51bGwsXG4gICAgTGF5b3V0Um91dGVyOiBudWxsLFxuICAgIE1ldGFkYXRhQm91bmRhcnk6IG51bGwsXG4gICAgT3V0bGV0Qm91bmRhcnk6IG51bGwsXG4gICAgUG9zdHBvbmU6IG51bGwsXG4gICAgUmVuZGVyRnJvbVRlbXBsYXRlQ29udGV4dDogbnVsbCxcbiAgICBSb290TGF5b3V0Qm91bmRhcnk6IG51bGwsXG4gICAgU2VnbWVudFZpZXdOb2RlOiBudWxsLFxuICAgIFNlZ21lbnRWaWV3U3RhdGVOb2RlOiBudWxsLFxuICAgIFZpZXdwb3J0Qm91bmRhcnk6IG51bGwsXG4gICAgYWN0aW9uQXN5bmNTdG9yYWdlOiBudWxsLFxuICAgIGNhcHR1cmVPd25lclN0YWNrOiBudWxsLFxuICAgIGNvbGxlY3RTZWdtZW50RGF0YTogbnVsbCxcbiAgICBjcmVhdGVNZXRhZGF0YUNvbXBvbmVudHM6IG51bGwsXG4gICAgY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDogbnVsbCxcbiAgICBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTogbnVsbCxcbiAgICBjcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXQ6IG51bGwsXG4gICAgZGVjb2RlQWN0aW9uOiBudWxsLFxuICAgIGRlY29kZUZvcm1TdGF0ZTogbnVsbCxcbiAgICBkZWNvZGVSZXBseTogbnVsbCxcbiAgICBwYXRjaEZldGNoOiBudWxsLFxuICAgIHByZWNvbm5lY3Q6IG51bGwsXG4gICAgcHJlbG9hZEZvbnQ6IG51bGwsXG4gICAgcHJlbG9hZFN0eWxlOiBudWxsLFxuICAgIHByZXJlbmRlcjogbnVsbCxcbiAgICByZW5kZXJUb1JlYWRhYmxlU3RyZWFtOiBudWxsLFxuICAgIHNlcnZlckhvb2tzOiBudWxsLFxuICAgIHRhaW50T2JqZWN0UmVmZXJlbmNlOiBudWxsLFxuICAgIHdvcmtBc3luY1N0b3JhZ2U6IG51bGwsXG4gICAgd29ya1VuaXRBc3luY1N0b3JhZ2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQ2xpZW50UGFnZVJvb3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2NsaWVudHBhZ2UuQ2xpZW50UGFnZVJvb3Q7XG4gICAgfSxcbiAgICBDbGllbnRTZWdtZW50Um9vdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY2xpZW50c2VnbWVudC5DbGllbnRTZWdtZW50Um9vdDtcbiAgICB9LFxuICAgIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9lcnJvcmJvdW5kYXJ5LkhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5O1xuICAgIH0sXG4gICAgTGF5b3V0Um91dGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9sYXlvdXRyb3V0ZXIuZGVmYXVsdDtcbiAgICB9LFxuICAgIE1ldGFkYXRhQm91bmRhcnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2JvdW5kYXJ5Y29tcG9uZW50cy5NZXRhZGF0YUJvdW5kYXJ5O1xuICAgIH0sXG4gICAgT3V0bGV0Qm91bmRhcnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2JvdW5kYXJ5Y29tcG9uZW50cy5PdXRsZXRCb3VuZGFyeTtcbiAgICB9LFxuICAgIFBvc3Rwb25lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9wb3N0cG9uZS5Qb3N0cG9uZTtcbiAgICB9LFxuICAgIFJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3JlbmRlcmZyb210ZW1wbGF0ZWNvbnRleHQuZGVmYXVsdDtcbiAgICB9LFxuICAgIFJvb3RMYXlvdXRCb3VuZGFyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfYm91bmRhcnljb21wb25lbnRzLlJvb3RMYXlvdXRCb3VuZGFyeTtcbiAgICB9LFxuICAgIFNlZ21lbnRWaWV3Tm9kZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTZWdtZW50Vmlld05vZGU7XG4gICAgfSxcbiAgICBTZWdtZW50Vmlld1N0YXRlTm9kZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTZWdtZW50Vmlld1N0YXRlTm9kZTtcbiAgICB9LFxuICAgIFZpZXdwb3J0Qm91bmRhcnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2JvdW5kYXJ5Y29tcG9uZW50cy5WaWV3cG9ydEJvdW5kYXJ5O1xuICAgIH0sXG4gICAgYWN0aW9uQXN5bmNTdG9yYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9hY3Rpb25hc3luY3N0b3JhZ2VleHRlcm5hbC5hY3Rpb25Bc3luY1N0b3JhZ2U7XG4gICAgfSxcbiAgICBjYXB0dXJlT3duZXJTdGFjazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcmVhY3QuY2FwdHVyZU93bmVyU3RhY2s7XG4gICAgfSxcbiAgICBjb2xsZWN0U2VnbWVudERhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2NvbGxlY3RzZWdtZW50ZGF0YS5jb2xsZWN0U2VnbWVudERhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVNZXRhZGF0YUNvbXBvbmVudHM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX21ldGFkYXRhLmNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50cztcbiAgICB9LFxuICAgIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3BhcmFtcy5jcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50O1xuICAgIH0sXG4gICAgY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc2VhcmNocGFyYW1zLmNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9wYXJhbXMuY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlYXJjaHBhcmFtcy5jcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlO1xuICAgIH0sXG4gICAgY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZXJ2ZXIuY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0O1xuICAgIH0sXG4gICAgZGVjb2RlQWN0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZXJ2ZXIuZGVjb2RlQWN0aW9uO1xuICAgIH0sXG4gICAgZGVjb2RlRm9ybVN0YXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZXJ2ZXIuZGVjb2RlRm9ybVN0YXRlO1xuICAgIH0sXG4gICAgZGVjb2RlUmVwbHk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlcnZlci5kZWNvZGVSZXBseTtcbiAgICB9LFxuICAgIHBhdGNoRmV0Y2g6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGF0Y2hGZXRjaDtcbiAgICB9LFxuICAgIHByZWNvbm5lY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3ByZWxvYWRzLnByZWNvbm5lY3Q7XG4gICAgfSxcbiAgICBwcmVsb2FkRm9udDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcHJlbG9hZHMucHJlbG9hZEZvbnQ7XG4gICAgfSxcbiAgICBwcmVsb2FkU3R5bGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3ByZWxvYWRzLnByZWxvYWRTdHlsZTtcbiAgICB9LFxuICAgIHByZXJlbmRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc3RhdGljLnVuc3RhYmxlX3ByZXJlbmRlcjtcbiAgICB9LFxuICAgIHJlbmRlclRvUmVhZGFibGVTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlcnZlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtO1xuICAgIH0sXG4gICAgc2VydmVySG9va3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2hvb2tzc2VydmVyY29udGV4dDtcbiAgICB9LFxuICAgIHRhaW50T2JqZWN0UmVmZXJlbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF90YWludC50YWludE9iamVjdFJlZmVyZW5jZTtcbiAgICB9LFxuICAgIHdvcmtBc3luY1N0b3JhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrQXN5bmNTdG9yYWdlO1xuICAgIH0sXG4gICAgd29ya1VuaXRBc3luY1N0b3JhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2U7XG4gICAgfVxufSk7XG5jb25zdCBfc2VydmVyID0gcmVxdWlyZShcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zZXJ2ZXJcIik7XG5jb25zdCBfc3RhdGljID0gcmVxdWlyZShcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zdGF0aWNcIik7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfbGF5b3V0cm91dGVyID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXJcIikpO1xuY29uc3QgX3JlbmRlcmZyb210ZW1wbGF0ZWNvbnRleHQgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dFwiKSk7XG5jb25zdCBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9hY3Rpb25hc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2FjdGlvbi1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2NsaWVudHBhZ2UgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXBhZ2VcIik7XG5jb25zdCBfY2xpZW50c2VnbWVudCA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtc2VnbWVudFwiKTtcbmNvbnN0IF9zZWFyY2hwYXJhbXMgPSByZXF1aXJlKFwiLi4vcmVxdWVzdC9zZWFyY2gtcGFyYW1zXCIpO1xuY29uc3QgX3BhcmFtcyA9IHJlcXVpcmUoXCIuLi9yZXF1ZXN0L3BhcmFtc1wiKTtcbmNvbnN0IF9ob29rc3NlcnZlcmNvbnRleHQgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0XCIpKTtcbmNvbnN0IF9lcnJvcmJvdW5kYXJ5ID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5XCIpO1xuY29uc3QgX21ldGFkYXRhID0gcmVxdWlyZShcIi4uLy4uL2xpYi9tZXRhZGF0YS9tZXRhZGF0YVwiKTtcbmNvbnN0IF9ib3VuZGFyeWNvbXBvbmVudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2ZyYW1ld29yay9ib3VuZGFyeS1jb21wb25lbnRzXCIpO1xuY29uc3QgX3ByZWxvYWRzID0gcmVxdWlyZShcIi4vcnNjL3ByZWxvYWRzXCIpO1xuY29uc3QgX3Bvc3Rwb25lID0gcmVxdWlyZShcIi4vcnNjL3Bvc3Rwb25lXCIpO1xuY29uc3QgX3RhaW50ID0gcmVxdWlyZShcIi4vcnNjL3RhaW50XCIpO1xuY29uc3QgX2NvbGxlY3RzZWdtZW50ZGF0YSA9IHJlcXVpcmUoXCIuL2NvbGxlY3Qtc2VnbWVudC1kYXRhXCIpO1xuY29uc3QgX3BhdGNoZmV0Y2ggPSByZXF1aXJlKFwiLi4vbGliL3BhdGNoLWZldGNoXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbihub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3ApO1xufVxuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgICAgIH07XG4gICAgfVxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5nZXQob2JqKTtcbiAgICB9XG4gICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgX19wcm90b19fOiBudWxsXG4gICAgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmxldCBTZWdtZW50Vmlld05vZGUgPSAoKT0+bnVsbDtcbmxldCBTZWdtZW50Vmlld1N0YXRlTm9kZSA9ICgpPT5udWxsO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgY29uc3QgbW9kID0gcmVxdWlyZSgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZScpO1xuICAgIFNlZ21lbnRWaWV3Tm9kZSA9IG1vZC5TZWdtZW50Vmlld05vZGU7XG4gICAgU2VnbWVudFZpZXdTdGF0ZU5vZGUgPSBtb2QuU2VnbWVudFZpZXdTdGF0ZU5vZGU7XG59XG4vLyBob3QtcmVsb2FkZXIgbW9kdWxlcyBhcmUgbm90IGJ1bmRsZWQgc28gd2UgbmVlZCB0byBpbmplY3QgYF9fbmV4dF9fY2xlYXJfY2h1bmtfY2FjaGVfX2Bcbi8vIGludG8gZ2xvYmFsVGhpcyBmcm9tIHRoaXMgZmlsZSB3aGljaCBpcyBidW5kbGVkLlxuaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgIGdsb2JhbFRoaXMuX19uZXh0X19jbGVhcl9jaHVua19jYWNoZV9fID0gX190dXJib3BhY2tfY2xlYXJfY2h1bmtfY2FjaGVfXztcbn0gZWxzZSB7XG4gICAgLy8gV2VicGFjayBkb2VzIG5vdCBoYXZlIGNodW5rcyBvbiB0aGUgc2VydmVyXG4gICAgZ2xvYmFsVGhpcy5fX25leHRfX2NsZWFyX2NodW5rX2NhY2hlX18gPSBudWxsO1xufVxuZnVuY3Rpb24gcGF0Y2hGZXRjaCgpIHtcbiAgICByZXR1cm4gKDAsIF9wYXRjaGZldGNoLnBhdGNoRmV0Y2gpKHtcbiAgICAgICAgd29ya0FzeW5jU3RvcmFnZTogX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrQXN5bmNTdG9yYWdlLFxuICAgICAgICB3b3JrVW5pdEFzeW5jU3RvcmFnZTogX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2VcbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZW50cnktYmFzZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/interop-default.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/interop-default.js ***!
|
||
\*********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Interop between \"export default\" and \"module.exports\".\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interopDefault\", ({\n enumerable: true,\n get: function() {\n return interopDefault;\n }\n}));\nfunction interopDefault(mod) {\n return mod.default || mod;\n}\n\n//# sourceMappingURL=interop-default.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2ludGVyb3AtZGVmYXVsdC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0RBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2ludGVyb3AtZGVmYXVsdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyb3AgYmV0d2VlbiBcImV4cG9ydCBkZWZhdWx0XCIgYW5kIFwibW9kdWxlLmV4cG9ydHNcIi5cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImludGVyb3BEZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbnRlcm9wRGVmYXVsdDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGludGVyb3BEZWZhdWx0KG1vZCkge1xuICAgIHJldHVybiBtb2QuZGVmYXVsdCB8fCBtb2Q7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVyb3AtZGVmYXVsdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/interop-default.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/react-large-shell-error.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/react-large-shell-error.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// TODO: isWellKnownError -> isNextInternalError\n// isReactLargeShellError -> isWarning\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isReactLargeShellError\", ({\n enumerable: true,\n get: function() {\n return isReactLargeShellError;\n }\n}));\nfunction isReactLargeShellError(error) {\n return typeof error === 'object' && error !== null && 'message' in error && typeof error.message === 'string' && error.message.startsWith('This rendered a large document (>');\n}\n\n//# sourceMappingURL=react-large-shell-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JlYWN0LWxhcmdlLXNoZWxsLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDBEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9yZWFjdC1sYXJnZS1zaGVsbC1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBpc1dlbGxLbm93bkVycm9yIC0+IGlzTmV4dEludGVybmFsRXJyb3Jcbi8vIGlzUmVhY3RMYXJnZVNoZWxsRXJyb3IgLT4gaXNXYXJuaW5nXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzUmVhY3RMYXJnZVNoZWxsRXJyb3JcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzUmVhY3RMYXJnZVNoZWxsRXJyb3I7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpc1JlYWN0TGFyZ2VTaGVsbEVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgJ21lc3NhZ2UnIGluIGVycm9yICYmIHR5cGVvZiBlcnJvci5tZXNzYWdlID09PSAnc3RyaW5nJyAmJiBlcnJvci5tZXNzYWdlLnN0YXJ0c1dpdGgoJ1RoaXMgcmVuZGVyZWQgYSBsYXJnZSBkb2N1bWVudCAoPicpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1sYXJnZS1zaGVsbC1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/react-large-shell-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/rsc/postpone.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/rsc/postpone.js ***!
|
||
\******************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ // When postpone is available in canary React we can switch to importing it directly\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Postpone\", ({\n enumerable: true,\n get: function() {\n return _dynamicrendering.Postpone;\n }\n}));\nconst _dynamicrendering = __webpack_require__(/*! ../dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\n\n//# sourceMappingURL=postpone.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wb3N0cG9uZS5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNENBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMEJBQTBCLG1CQUFPLENBQUMsbUdBQXNCOztBQUV4RCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9yc2MvcG9zdHBvbmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcblxuRmlsZXMgaW4gdGhlIHJzYyBkaXJlY3RvcnkgYXJlIG1lYW50IHRvIGJlIHBhY2thZ2VkIGFzIHBhcnQgb2YgdGhlIFJTQyBncmFwaCB1c2luZyBuZXh0LWFwcC1sb2FkZXIuXG5cbiovIC8vIFdoZW4gcG9zdHBvbmUgaXMgYXZhaWxhYmxlIGluIGNhbmFyeSBSZWFjdCB3ZSBjYW4gc3dpdGNoIHRvIGltcG9ydGluZyBpdCBkaXJlY3RseVxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJQb3N0cG9uZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2R5bmFtaWNyZW5kZXJpbmcuUG9zdHBvbmU7XG4gICAgfVxufSk7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZyA9IHJlcXVpcmUoXCIuLi9keW5hbWljLXJlbmRlcmluZ1wiKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cG9zdHBvbmUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/rsc/postpone.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/rsc/preloads.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/rsc/preloads.js ***!
|
||
\******************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\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 preconnect: function() {\n return preconnect;\n },\n preloadFont: function() {\n return preloadFont;\n },\n preloadStyle: function() {\n return preloadStyle;\n }\n});\nconst _reactdom = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react-dom */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction preloadStyle(href, crossOrigin, nonce) {\n const opts = {\n as: 'style'\n };\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n _reactdom.default.preload(href, opts);\n}\nfunction preloadFont(href, type, crossOrigin, nonce) {\n const opts = {\n as: 'font',\n type\n };\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n _reactdom.default.preload(href, opts);\n}\nfunction preconnect(href, crossOrigin, nonce) {\n const opts = {};\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n ;\n _reactdom.default.preconnect(href, opts);\n}\n\n//# sourceMappingURL=preloads.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wcmVsb2Fkcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSxHQUFnQjtBQUNoQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx5REFBeUQsbUJBQU8sQ0FBQyx5R0FBVztBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wcmVsb2Fkcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXG5GaWxlcyBpbiB0aGUgcnNjIGRpcmVjdG9yeSBhcmUgbWVhbnQgdG8gYmUgcGFja2FnZWQgYXMgcGFydCBvZiB0aGUgUlNDIGdyYXBoIHVzaW5nIG5leHQtYXBwLWxvYWRlci5cblxuKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBwcmVjb25uZWN0OiBudWxsLFxuICAgIHByZWxvYWRGb250OiBudWxsLFxuICAgIHByZWxvYWRTdHlsZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBwcmVjb25uZWN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHByZWNvbm5lY3Q7XG4gICAgfSxcbiAgICBwcmVsb2FkRm9udDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwcmVsb2FkRm9udDtcbiAgICB9LFxuICAgIHByZWxvYWRTdHlsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwcmVsb2FkU3R5bGU7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3Rkb20gPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gcHJlbG9hZFN0eWxlKGhyZWYsIGNyb3NzT3JpZ2luLCBub25jZSkge1xuICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgIGFzOiAnc3R5bGUnXG4gICAgfTtcbiAgICBpZiAodHlwZW9mIGNyb3NzT3JpZ2luID09PSAnc3RyaW5nJykge1xuICAgICAgICBvcHRzLmNyb3NzT3JpZ2luID0gY3Jvc3NPcmlnaW47XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygbm9uY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdHMubm9uY2UgPSBub25jZTtcbiAgICB9XG4gICAgX3JlYWN0ZG9tLmRlZmF1bHQucHJlbG9hZChocmVmLCBvcHRzKTtcbn1cbmZ1bmN0aW9uIHByZWxvYWRGb250KGhyZWYsIHR5cGUsIGNyb3NzT3JpZ2luLCBub25jZSkge1xuICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgIGFzOiAnZm9udCcsXG4gICAgICAgIHR5cGVcbiAgICB9O1xuICAgIGlmICh0eXBlb2YgY3Jvc3NPcmlnaW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdHMuY3Jvc3NPcmlnaW4gPSBjcm9zc09yaWdpbjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBub25jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0cy5ub25jZSA9IG5vbmNlO1xuICAgIH1cbiAgICBfcmVhY3Rkb20uZGVmYXVsdC5wcmVsb2FkKGhyZWYsIG9wdHMpO1xufVxuZnVuY3Rpb24gcHJlY29ubmVjdChocmVmLCBjcm9zc09yaWdpbiwgbm9uY2UpIHtcbiAgICBjb25zdCBvcHRzID0ge307XG4gICAgaWYgKHR5cGVvZiBjcm9zc09yaWdpbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0cy5jcm9zc09yaWdpbiA9IGNyb3NzT3JpZ2luO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG5vbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgICBvcHRzLm5vbmNlID0gbm9uY2U7XG4gICAgfVxuICAgIDtcbiAgICBfcmVhY3Rkb20uZGVmYXVsdC5wcmVjb25uZWN0KGhyZWYsIG9wdHMpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcmVsb2Fkcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/rsc/preloads.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/rsc/taint.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/rsc/taint.js ***!
|
||
\***************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\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 taintObjectReference: function() {\n return taintObjectReference;\n },\n taintUniqueValue: function() {\n return taintUniqueValue;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction notImplemented() {\n throw Object.defineProperty(new Error('Taint can only be used with the taint flag.'), \"__NEXT_ERROR_CODE\", {\n value: \"E354\",\n enumerable: false,\n configurable: true\n });\n}\nconst taintObjectReference = false ? 0 : notImplemented;\nconst taintUniqueValue = false ? 0 : notImplemented;\n\n//# sourceMappingURL=taint.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy90YWludC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSxHQUFnQjtBQUNoQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsNkJBQTZCLE1BQXFDLEdBQUcsQ0FBd0M7QUFDN0cseUJBQXlCLE1BQXFDLEdBQUcsQ0FBb0M7O0FBRXJHIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy90YWludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXG5GaWxlcyBpbiB0aGUgcnNjIGRpcmVjdG9yeSBhcmUgbWVhbnQgdG8gYmUgcGFja2FnZWQgYXMgcGFydCBvZiB0aGUgUlNDIGdyYXBoIHVzaW5nIG5leHQtYXBwLWxvYWRlci5cblxuKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB0YWludE9iamVjdFJlZmVyZW5jZTogbnVsbCxcbiAgICB0YWludFVuaXF1ZVZhbHVlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHRhaW50T2JqZWN0UmVmZXJlbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRhaW50T2JqZWN0UmVmZXJlbmNlO1xuICAgIH0sXG4gICAgdGFpbnRVbmlxdWVWYWx1ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0YWludFVuaXF1ZVZhbHVlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbihub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3ApO1xufVxuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgICAgIH07XG4gICAgfVxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5nZXQob2JqKTtcbiAgICB9XG4gICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgX19wcm90b19fOiBudWxsXG4gICAgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmZ1bmN0aW9uIG5vdEltcGxlbWVudGVkKCkge1xuICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ1RhaW50IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCB0aGUgdGFpbnQgZmxhZy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUzNTRcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuY29uc3QgdGFpbnRPYmplY3RSZWZlcmVuY2UgPSBwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX1JFQUNUID8gX3JlYWN0LmV4cGVyaW1lbnRhbF90YWludE9iamVjdFJlZmVyZW5jZSA6IG5vdEltcGxlbWVudGVkO1xuY29uc3QgdGFpbnRVbmlxdWVWYWx1ZSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfUkVBQ1QgPyBfcmVhY3QuZXhwZXJpbWVudGFsX3RhaW50VW5pcXVlVmFsdWUgOiBub3RJbXBsZW1lbnRlZDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGFpbnQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/rsc/taint.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/app-render/strip-flight-headers.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/strip-flight-headers.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"stripFlightHeaders\", ({\n enumerable: true,\n get: function() {\n return stripFlightHeaders;\n }\n}));\nconst _approuterheaders = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nfunction stripFlightHeaders(headers) {\n for (const header of _approuterheaders.FLIGHT_HEADERS){\n delete headers[header];\n }\n}\n\n//# sourceMappingURL=strip-flight-headers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3N0cmlwLWZsaWdodC1oZWFkZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysc0RBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMEJBQTBCLG1CQUFPLENBQUMsMEhBQTRDO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvc3RyaXAtZmxpZ2h0LWhlYWRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJzdHJpcEZsaWdodEhlYWRlcnNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmlwRmxpZ2h0SGVhZGVycztcbiAgICB9XG59KTtcbmNvbnN0IF9hcHByb3V0ZXJoZWFkZXJzID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVyc1wiKTtcbmZ1bmN0aW9uIHN0cmlwRmxpZ2h0SGVhZGVycyhoZWFkZXJzKSB7XG4gICAgZm9yIChjb25zdCBoZWFkZXIgb2YgX2FwcHJvdXRlcmhlYWRlcnMuRkxJR0hUX0hFQURFUlMpe1xuICAgICAgICBkZWxldGUgaGVhZGVyc1toZWFkZXJdO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RyaXAtZmxpZ2h0LWhlYWRlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/strip-flight-headers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/base-http/helpers.js":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/base-http/helpers.js ***!
|
||
\************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 isNodeNextRequest: function() {\n return isNodeNextRequest;\n },\n isNodeNextResponse: function() {\n return isNodeNextResponse;\n },\n isWebNextRequest: function() {\n return isWebNextRequest;\n },\n isWebNextResponse: function() {\n return isWebNextResponse;\n }\n});\nconst isWebNextRequest = (req)=>\"nodejs\" === 'edge';\nconst isWebNextResponse = (res)=>\"nodejs\" === 'edge';\nconst isNodeNextRequest = (req)=>\"nodejs\" !== 'edge';\nconst isNodeNextResponse = (res)=>\"nodejs\" !== 'edge';\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaGVscGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FLTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZ0NBQWdDLFFBQXdCO0FBQ3hELGlDQUFpQyxRQUF3QjtBQUN6RCxpQ0FBaUMsUUFBd0I7QUFDekQsa0NBQWtDLFFBQXdCOztBQUUxRCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYmFzZS1odHRwL2hlbHBlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc05vZGVOZXh0UmVxdWVzdDogbnVsbCxcbiAgICBpc05vZGVOZXh0UmVzcG9uc2U6IG51bGwsXG4gICAgaXNXZWJOZXh0UmVxdWVzdDogbnVsbCxcbiAgICBpc1dlYk5leHRSZXNwb25zZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc05vZGVOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc05vZGVOZXh0UmVxdWVzdDtcbiAgICB9LFxuICAgIGlzTm9kZU5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc05vZGVOZXh0UmVzcG9uc2U7XG4gICAgfSxcbiAgICBpc1dlYk5leHRSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzV2ViTmV4dFJlcXVlc3Q7XG4gICAgfSxcbiAgICBpc1dlYk5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1dlYk5leHRSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IGlzV2ViTmV4dFJlcXVlc3QgPSAocmVxKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZSc7XG5jb25zdCBpc1dlYk5leHRSZXNwb25zZSA9IChyZXMpPT5wcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJztcbmNvbnN0IGlzTm9kZU5leHRSZXF1ZXN0ID0gKHJlcSk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnO1xuY29uc3QgaXNOb2RlTmV4dFJlc3BvbnNlID0gKHJlcyk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/base-http/helpers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/base-http/index.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/base-http/index.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 BaseNextRequest: function() {\n return BaseNextRequest;\n },\n BaseNextResponse: function() {\n return BaseNextResponse;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ../../client/components/redirect-status-code */ \"(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst _getcookieparser = __webpack_require__(/*! ../api-utils/get-cookie-parser */ \"(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js\");\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, _getcookieparser.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 === _redirectstatuscode.RedirectStatusCode.PermanentRedirect) {\n this.setHeader('Refresh', `0;url=${destination}`);\n }\n return this;\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsNEJBQTRCLG1CQUFPLENBQUMsOEhBQThDO0FBQ2xGLHlCQUF5QixtQkFBTyxDQUFDLDRHQUFnQztBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLE1BQU0sWUFBWTtBQUMzRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYmFzZS1odHRwL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQmFzZU5leHRSZXF1ZXN0OiBudWxsLFxuICAgIEJhc2VOZXh0UmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQmFzZU5leHRSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEJhc2VOZXh0UmVxdWVzdDtcbiAgICB9LFxuICAgIEJhc2VOZXh0UmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQmFzZU5leHRSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWRpcmVjdHN0YXR1c2NvZGUgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGVcIik7XG5jb25zdCBfZ2V0Y29va2llcGFyc2VyID0gcmVxdWlyZShcIi4uL2FwaS11dGlscy9nZXQtY29va2llLXBhcnNlclwiKTtcbmNsYXNzIEJhc2VOZXh0UmVxdWVzdCB7XG4gICAgY29uc3RydWN0b3IobWV0aG9kLCB1cmwsIGJvZHkpe1xuICAgICAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgdGhpcy51cmwgPSB1cmw7XG4gICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgfVxuICAgIC8vIFV0aWxzIGltcGxlbWVudGVkIHVzaW5nIHRoZSBhYnN0cmFjdCBtZXRob2RzIGFib3ZlXG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb29raWVzKSByZXR1cm4gdGhpcy5fY29va2llcztcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nvb2tpZXMgPSAoMCwgX2dldGNvb2tpZXBhcnNlci5nZXRDb29raWVQYXJzZXIpKHRoaXMuaGVhZGVycykoKTtcbiAgICB9XG59XG5jbGFzcyBCYXNlTmV4dFJlc3BvbnNlIHtcbiAgICBjb25zdHJ1Y3RvcihkZXN0aW5hdGlvbil7XG4gICAgICAgIHRoaXMuZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjtcbiAgICB9XG4gICAgLy8gVXRpbHMgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIGFic3RyYWN0IG1ldGhvZHMgYWJvdmVcbiAgICByZWRpcmVjdChkZXN0aW5hdGlvbiwgc3RhdHVzQ29kZSkge1xuICAgICAgICB0aGlzLnNldEhlYWRlcignTG9jYXRpb24nLCBkZXN0aW5hdGlvbik7XG4gICAgICAgIHRoaXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gICAgICAgIC8vIFNpbmNlIElFMTEgZG9lc24ndCBzdXBwb3J0IHRoZSAzMDggaGVhZGVyIGFkZCBiYWNrd2FyZHNcbiAgICAgICAgLy8gY29tcGF0aWJpbGl0eSB1c2luZyByZWZyZXNoIGhlYWRlclxuICAgICAgICBpZiAoc3RhdHVzQ29kZSA9PT0gX3JlZGlyZWN0c3RhdHVzY29kZS5SZWRpcmVjdFN0YXR1c0NvZGUuUGVybWFuZW50UmVkaXJlY3QpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0SGVhZGVyKCdSZWZyZXNoJywgYDA7dXJsPSR7ZGVzdGluYXRpb259YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/base-http/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/base-http/node.js":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/base-http/node.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 NodeNextRequest: function() {\n return NodeNextRequest;\n },\n NodeNextResponse: function() {\n return NodeNextResponse;\n }\n});\nconst _apiutils = __webpack_require__(/*! ../api-utils */ \"(rsc)/./node_modules/next/dist/server/api-utils/index.js\");\nconst _requestmeta = __webpack_require__(/*! ../request-meta */ \"(rsc)/./node_modules/next/dist/server/request-meta.js\");\nconst _index = __webpack_require__(/*! ./index */ \"(rsc)/./node_modules/next/dist/server/base-http/index.js\");\nlet prop;\nclass NodeNextRequest extends _index.BaseNextRequest {\n static #_ = prop = _NEXT_REQUEST_META = _requestmeta.NEXT_REQUEST_META;\n constructor(_req){\n var _this__req;\n super(_req.method.toUpperCase(), _req.url, _req), this._req = _req, this.headers = this._req.headers, this.fetchMetrics = (_this__req = this._req) == null ? void 0 : _this__req.fetchMetrics, this[_NEXT_REQUEST_META] = this._req[_requestmeta.NEXT_REQUEST_META] || {}, this.streaming = false;\n }\n get originalRequest() {\n // Need to mimic these changes to the original req object for places where we use it:\n // render.tsx, api/ssg requests\n this._req[_requestmeta.NEXT_REQUEST_META] = this[_requestmeta.NEXT_REQUEST_META];\n this._req.url = this.url;\n this._req.cookies = this.cookies;\n return this._req;\n }\n set originalRequest(value) {\n this._req = value;\n }\n /**\n * Returns the request body as a Web Readable Stream. The body here can only\n * be read once as the body will start flowing as soon as the data handler\n * is attached.\n *\n * @internal\n */ stream() {\n if (this.streaming) {\n throw Object.defineProperty(new Error('Invariant: NodeNextRequest.stream() can only be called once'), \"__NEXT_ERROR_CODE\", {\n value: \"E467\",\n enumerable: false,\n configurable: true\n });\n }\n this.streaming = true;\n return new ReadableStream({\n start: (controller)=>{\n this._req.on('data', (chunk)=>{\n controller.enqueue(new Uint8Array(chunk));\n });\n this._req.on('end', ()=>{\n controller.close();\n });\n this._req.on('error', (err)=>{\n controller.error(err);\n });\n }\n });\n }\n}\nclass NodeNextResponse extends _index.BaseNextResponse {\n get originalResponse() {\n if (_apiutils.SYMBOL_CLEARED_COOKIES in this) {\n this._res[_apiutils.SYMBOL_CLEARED_COOKIES] = this[_apiutils.SYMBOL_CLEARED_COOKIES];\n }\n return this._res;\n }\n constructor(_res){\n super(_res), this._res = _res, this.textBody = undefined;\n }\n get sent() {\n return this._res.finished || this._res.headersSent;\n }\n get statusCode() {\n return this._res.statusCode;\n }\n set statusCode(value) {\n this._res.statusCode = value;\n }\n get statusMessage() {\n return this._res.statusMessage;\n }\n set statusMessage(value) {\n this._res.statusMessage = value;\n }\n setHeader(name, value) {\n this._res.setHeader(name, value);\n return this;\n }\n removeHeader(name) {\n this._res.removeHeader(name);\n return this;\n }\n getHeaderValues(name) {\n const values = this._res.getHeader(name);\n if (values === undefined) return undefined;\n return (Array.isArray(values) ? values : [\n values\n ]).map((value)=>value.toString());\n }\n hasHeader(name) {\n return this._res.hasHeader(name);\n }\n getHeader(name) {\n const values = this.getHeaderValues(name);\n return Array.isArray(values) ? values.join(',') : undefined;\n }\n getHeaders() {\n return this._res.getHeaders();\n }\n appendHeader(name, value) {\n const currentValues = this.getHeaderValues(name) ?? [];\n if (!currentValues.includes(value)) {\n this._res.setHeader(name, [\n ...currentValues,\n value\n ]);\n }\n return this;\n }\n body(value) {\n this.textBody = value;\n return this;\n }\n send() {\n this._res.end(this.textBody);\n }\n onClose(callback) {\n this.originalResponse.on('close', callback);\n }\n}\nvar _NEXT_REQUEST_META;\n\n//# sourceMappingURL=node.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvbm9kZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQkFBa0IsbUJBQU8sQ0FBQyw4RUFBYztBQUN4QyxxQkFBcUIsbUJBQU8sQ0FBQyw4RUFBaUI7QUFDOUMsZUFBZSxtQkFBTyxDQUFDLHlFQUFTO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpUkFBaVI7QUFDalI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYmFzZS1odHRwL25vZGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBOb2RlTmV4dFJlcXVlc3Q6IG51bGwsXG4gICAgTm9kZU5leHRSZXNwb25zZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBOb2RlTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTm9kZU5leHRSZXF1ZXN0O1xuICAgIH0sXG4gICAgTm9kZU5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOb2RlTmV4dFJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgX2FwaXV0aWxzID0gcmVxdWlyZShcIi4uL2FwaS11dGlsc1wiKTtcbmNvbnN0IF9yZXF1ZXN0bWV0YSA9IHJlcXVpcmUoXCIuLi9yZXF1ZXN0LW1ldGFcIik7XG5jb25zdCBfaW5kZXggPSByZXF1aXJlKFwiLi9pbmRleFwiKTtcbmxldCBwcm9wO1xuY2xhc3MgTm9kZU5leHRSZXF1ZXN0IGV4dGVuZHMgX2luZGV4LkJhc2VOZXh0UmVxdWVzdCB7XG4gICAgc3RhdGljICNfID0gcHJvcCA9IF9ORVhUX1JFUVVFU1RfTUVUQSA9IF9yZXF1ZXN0bWV0YS5ORVhUX1JFUVVFU1RfTUVUQTtcbiAgICBjb25zdHJ1Y3RvcihfcmVxKXtcbiAgICAgICAgdmFyIF90aGlzX19yZXE7XG4gICAgICAgIHN1cGVyKF9yZXEubWV0aG9kLnRvVXBwZXJDYXNlKCksIF9yZXEudXJsLCBfcmVxKSwgdGhpcy5fcmVxID0gX3JlcSwgdGhpcy5oZWFkZXJzID0gdGhpcy5fcmVxLmhlYWRlcnMsIHRoaXMuZmV0Y2hNZXRyaWNzID0gKF90aGlzX19yZXEgPSB0aGlzLl9yZXEpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19fcmVxLmZldGNoTWV0cmljcywgdGhpc1tfTkVYVF9SRVFVRVNUX01FVEFdID0gdGhpcy5fcmVxW19yZXF1ZXN0bWV0YS5ORVhUX1JFUVVFU1RfTUVUQV0gfHwge30sIHRoaXMuc3RyZWFtaW5nID0gZmFsc2U7XG4gICAgfVxuICAgIGdldCBvcmlnaW5hbFJlcXVlc3QoKSB7XG4gICAgICAgIC8vIE5lZWQgdG8gbWltaWMgdGhlc2UgY2hhbmdlcyB0byB0aGUgb3JpZ2luYWwgcmVxIG9iamVjdCBmb3IgcGxhY2VzIHdoZXJlIHdlIHVzZSBpdDpcbiAgICAgICAgLy8gcmVuZGVyLnRzeCwgYXBpL3NzZyByZXF1ZXN0c1xuICAgICAgICB0aGlzLl9yZXFbX3JlcXVlc3RtZXRhLk5FWFRfUkVRVUVTVF9NRVRBXSA9IHRoaXNbX3JlcXVlc3RtZXRhLk5FWFRfUkVRVUVTVF9NRVRBXTtcbiAgICAgICAgdGhpcy5fcmVxLnVybCA9IHRoaXMudXJsO1xuICAgICAgICB0aGlzLl9yZXEuY29va2llcyA9IHRoaXMuY29va2llcztcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcTtcbiAgICB9XG4gICAgc2V0IG9yaWdpbmFsUmVxdWVzdCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yZXEgPSB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJlcXVlc3QgYm9keSBhcyBhIFdlYiBSZWFkYWJsZSBTdHJlYW0uIFRoZSBib2R5IGhlcmUgY2FuIG9ubHlcbiAgICogYmUgcmVhZCBvbmNlIGFzIHRoZSBib2R5IHdpbGwgc3RhcnQgZmxvd2luZyBhcyBzb29uIGFzIHRoZSBkYXRhIGhhbmRsZXJcbiAgICogaXMgYXR0YWNoZWQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi8gc3RyZWFtKCkge1xuICAgICAgICBpZiAodGhpcy5zdHJlYW1pbmcpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogTm9kZU5leHRSZXF1ZXN0LnN0cmVhbSgpIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU0NjdcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RyZWFtaW5nID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgICAgICBzdGFydDogKGNvbnRyb2xsZXIpPT57XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVxLm9uKCdkYXRhJywgKGNodW5rKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoY2h1bmspKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXEub24oJ2VuZCcsICgpPT57XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXEub24oJ2Vycm9yJywgKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5jbGFzcyBOb2RlTmV4dFJlc3BvbnNlIGV4dGVuZHMgX2luZGV4LkJhc2VOZXh0UmVzcG9uc2Uge1xuICAgIGdldCBvcmlnaW5hbFJlc3BvbnNlKCkge1xuICAgICAgICBpZiAoX2FwaXV0aWxzLlNZTUJPTF9DTEVBUkVEX0NPT0tJRVMgaW4gdGhpcykge1xuICAgICAgICAgICAgdGhpcy5fcmVzW19hcGl1dGlscy5TWU1CT0xfQ0xFQVJFRF9DT09LSUVTXSA9IHRoaXNbX2FwaXV0aWxzLlNZTUJPTF9DTEVBUkVEX0NPT0tJRVNdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXM7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKF9yZXMpe1xuICAgICAgICBzdXBlcihfcmVzKSwgdGhpcy5fcmVzID0gX3JlcywgdGhpcy50ZXh0Qm9keSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZ2V0IHNlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXMuZmluaXNoZWQgfHwgdGhpcy5fcmVzLmhlYWRlcnNTZW50O1xuICAgIH1cbiAgICBnZXQgc3RhdHVzQ29kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlcy5zdGF0dXNDb2RlO1xuICAgIH1cbiAgICBzZXQgc3RhdHVzQ29kZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yZXMuc3RhdHVzQ29kZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgc3RhdHVzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlcy5zdGF0dXNNZXNzYWdlO1xuICAgIH1cbiAgICBzZXQgc3RhdHVzTWVzc2FnZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yZXMuc3RhdHVzTWVzc2FnZSA9IHZhbHVlO1xuICAgIH1cbiAgICBzZXRIZWFkZXIobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5fcmVzLnNldEhlYWRlcihuYW1lLCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICByZW1vdmVIZWFkZXIobmFtZSkge1xuICAgICAgICB0aGlzLl9yZXMucmVtb3ZlSGVhZGVyKG5hbWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZ2V0SGVhZGVyVmFsdWVzKG5hbWUpIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5fcmVzLmdldEhlYWRlcihuYW1lKTtcbiAgICAgICAgaWYgKHZhbHVlcyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gKEFycmF5LmlzQXJyYXkodmFsdWVzKSA/IHZhbHVlcyA6IFtcbiAgICAgICAgICAgIHZhbHVlc1xuICAgICAgICBdKS5tYXAoKHZhbHVlKT0+dmFsdWUudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGhhc0hlYWRlcihuYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXMuaGFzSGVhZGVyKG5hbWUpO1xuICAgIH1cbiAgICBnZXRIZWFkZXIobmFtZSkge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldEhlYWRlclZhbHVlcyhuYW1lKTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWVzKSA/IHZhbHVlcy5qb2luKCcsJykgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGdldEhlYWRlcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXMuZ2V0SGVhZGVycygpO1xuICAgIH1cbiAgICBhcHBlbmRIZWFkZXIobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlcyA9IHRoaXMuZ2V0SGVhZGVyVmFsdWVzKG5hbWUpID8/IFtdO1xuICAgICAgICBpZiAoIWN1cnJlbnRWYWx1ZXMuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXMuc2V0SGVhZGVyKG5hbWUsIFtcbiAgICAgICAgICAgICAgICAuLi5jdXJyZW50VmFsdWVzLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgYm9keSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnRleHRCb2R5ID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBzZW5kKCkge1xuICAgICAgICB0aGlzLl9yZXMuZW5kKHRoaXMudGV4dEJvZHkpO1xuICAgIH1cbiAgICBvbkNsb3NlKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMub3JpZ2luYWxSZXNwb25zZS5vbignY2xvc2UnLCBjYWxsYmFjayk7XG4gICAgfVxufVxudmFyIF9ORVhUX1JFUVVFU1RfTUVUQTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9kZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/base-http/node.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/client-component-renderer-logger.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/client-component-renderer-logger.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 getClientComponentLoaderMetrics: function() {\n return getClientComponentLoaderMetrics;\n },\n wrapClientComponentLoader: function() {\n return wrapClientComponentLoader;\n }\n});\n// Combined load times for loading client components\nlet clientComponentLoadStart = 0;\nlet clientComponentLoadTimes = 0;\nlet clientComponentLoadCount = 0;\nfunction wrapClientComponentLoader(ComponentMod) {\n if (!('performance' in globalThis)) {\n return ComponentMod.__next_app__;\n }\n return {\n require: (...args)=>{\n const startTime = performance.now();\n if (clientComponentLoadStart === 0) {\n clientComponentLoadStart = startTime;\n }\n try {\n clientComponentLoadCount += 1;\n return ComponentMod.__next_app__.require(...args);\n } finally{\n clientComponentLoadTimes += performance.now() - startTime;\n }\n },\n loadChunk: (...args)=>{\n const startTime = performance.now();\n const result = ComponentMod.__next_app__.loadChunk(...args);\n // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity.\n // We only need to know when it's settled.\n result.finally(()=>{\n clientComponentLoadTimes += performance.now() - startTime;\n });\n return result;\n }\n };\n}\nfunction getClientComponentLoaderMetrics(options = {}) {\n const metrics = clientComponentLoadStart === 0 ? undefined : {\n clientComponentLoadStart,\n clientComponentLoadTimes,\n clientComponentLoadCount\n };\n if (options.reset) {\n clientComponentLoadStart = 0;\n clientComponentLoadTimes = 0;\n clientComponentLoadCount = 0;\n }\n return metrics;\n}\n\n//# sourceMappingURL=client-component-renderer-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3M6IG51bGwsXG4gICAgd3JhcENsaWVudENvbXBvbmVudExvYWRlcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3M7XG4gICAgfSxcbiAgICB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXI7XG4gICAgfVxufSk7XG4vLyBDb21iaW5lZCBsb2FkIHRpbWVzIGZvciBsb2FkaW5nIGNsaWVudCBjb21wb25lbnRzXG5sZXQgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID0gMDtcbmxldCBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgPSAwO1xubGV0IGNsaWVudENvbXBvbmVudExvYWRDb3VudCA9IDA7XG5mdW5jdGlvbiB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyKENvbXBvbmVudE1vZCkge1xuICAgIGlmICghKCdwZXJmb3JtYW5jZScgaW4gZ2xvYmFsVGhpcykpIHtcbiAgICAgICAgcmV0dXJuIENvbXBvbmVudE1vZC5fX25leHRfYXBwX187XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmU6ICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgICAgICBpZiAoY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID0gc3RhcnRUaW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkQ291bnQgKz0gMTtcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29tcG9uZW50TW9kLl9fbmV4dF9hcHBfXy5yZXF1aXJlKC4uLmFyZ3MpO1xuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIGNsaWVudENvbXBvbmVudExvYWRUaW1lcyArPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9hZENodW5rOiAoLi4uYXJncyk9PntcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gQ29tcG9uZW50TW9kLl9fbmV4dF9hcHBfXy5sb2FkQ2h1bmsoLi4uYXJncyk7XG4gICAgICAgICAgICAvLyBBdm9pZCB3cmFwcGluZyBgbG9hZENodW5rYCdzIHJlc3VsdCBpbiBhbiBleHRyYSBwcm9taXNlIGluIGNhc2Ugc29tZXRoaW5nIGxpa2UgUmVhY3QgZGVwZW5kcyBvbiBpdHMgaWRlbnRpdHkuXG4gICAgICAgICAgICAvLyBXZSBvbmx5IG5lZWQgdG8ga25vdyB3aGVuIGl0J3Mgc2V0dGxlZC5cbiAgICAgICAgICAgIHJlc3VsdC5maW5hbGx5KCgpPT57XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzICs9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3Mob3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgbWV0cmljcyA9IGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9PT0gMCA/IHVuZGVmaW5lZCA6IHtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0LFxuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMsXG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRDb3VudFxuICAgIH07XG4gICAgaWYgKG9wdGlvbnMucmVzZXQpIHtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID0gMDtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzID0gMDtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZENvdW50ID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIG1ldHJpY3M7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/client-component-renderer-logger.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createDedupedByCallsiteServerErrorLoggerDev\", ({\n enumerable: true,\n get: function() {\n return createDedupedByCallsiteServerErrorLoggerDev;\n }\n}));\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nconst errorRef = {\n current: null\n};\n// React.cache is currently only available in canary/experimental React channels.\nconst cache = typeof _react.cache === 'function' ? _react.cache : (fn)=>fn;\n// When Cache Components is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = false ? 0 : console.warn;\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n(key)=>{\n try {\n logErrorOrWarn(errorRef.current);\n } finally{\n errorRef.current = null;\n }\n});\nfunction createDedupedByCallsiteServerErrorLoggerDev(getMessage) {\n return function logDedupedError(...args) {\n const message = getMessage(...args);\n if (true) {\n var _stack;\n const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split('\\n');\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message);\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4];\n errorRef.current = message;\n flushCurrentErrorIfNew(key);\n }\n } else {}\n };\n}\n\n//# sourceMappingURL=create-deduped-by-callsite-server-error-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0VBQThFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLE1BQW1DLEdBQUcsQ0FBYTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsS0FBSyxFQUVOO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXZcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXY7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuY29uc3QgZXJyb3JSZWYgPSB7XG4gICAgY3VycmVudDogbnVsbFxufTtcbi8vIFJlYWN0LmNhY2hlIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBjYW5hcnkvZXhwZXJpbWVudGFsIFJlYWN0IGNoYW5uZWxzLlxuY29uc3QgY2FjaGUgPSB0eXBlb2YgX3JlYWN0LmNhY2hlID09PSAnZnVuY3Rpb24nID8gX3JlYWN0LmNhY2hlIDogKGZuKT0+Zm47XG4vLyBXaGVuIENhY2hlIENvbXBvbmVudHMgaXMgZW5hYmxlZCwgd2UgcmVjb3JkIHRoZXNlIGFzIGVycm9ycyBzbyB0aGF0IHRoZXlcbi8vIGFyZSBjYXB0dXJlZCBieSB0aGUgZGV2IG92ZXJsYXkgYXMgaXQncyBtb3JlIGNyaXRpY2FsIHRvIGZpeCB0aGVzZVxuLy8gd2hlbiBlbmFibGVkLlxuY29uc3QgbG9nRXJyb3JPcldhcm4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUyA/IGNvbnNvbGUuZXJyb3IgOiBjb25zb2xlLndhcm47XG4vLyBXZSBkb24ndCB3YW50IHRvIGRlZHVwZSBhY3Jvc3MgcmVxdWVzdHMuXG4vLyBUaGUgZGV2ZWxvcGVyIG1pZ2h0J3ZlIGp1c3QgYXR0ZW1wdGVkIHRvIGZpeCB0aGUgd2FybmluZyBzbyB3ZSBzaG91bGQgd2FybiBhZ2FpbiBpZiBpdCBzdGlsbCBoYXBwZW5zLlxuY29uc3QgZmx1c2hDdXJyZW50RXJyb3JJZk5ldyA9IGNhY2hlKC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gY2FjaGUga2V5XG4oa2V5KT0+e1xuICAgIHRyeSB7XG4gICAgICAgIGxvZ0Vycm9yT3JXYXJuKGVycm9yUmVmLmN1cnJlbnQpO1xuICAgIH0gZmluYWxseXtcbiAgICAgICAgZXJyb3JSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBjcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KGdldE1lc3NhZ2UpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gbG9nRGVkdXBlZEVycm9yKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGdldE1lc3NhZ2UoLi4uYXJncyk7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgX3N0YWNrO1xuICAgICAgICAgICAgY29uc3QgY2FsbFN0YWNrRnJhbWVzID0gKF9zdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgIGlmIChjYWxsU3RhY2tGcmFtZXMgPT09IHVuZGVmaW5lZCB8fCBjYWxsU3RhY2tGcmFtZXMubGVuZ3RoIDwgNCkge1xuICAgICAgICAgICAgICAgIGxvZ0Vycm9yT3JXYXJuKG1lc3NhZ2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBFcnJvcjpcbiAgICAgICAgICAgICAgICAvLyAgIGxvZ0RlZHVwZWRFcnJvclxuICAgICAgICAgICAgICAgIC8vICAgYXN5bmNBcGlCZWluZ0FjY2Vzc2VkU3luY2hyb25vdXNseVxuICAgICAgICAgICAgICAgIC8vICAgPHVzZXJsYW5kIGNhbGxzaXRlPlxuICAgICAgICAgICAgICAgIC8vIFRPRE86IFRoaXMgYnJlYWtzIGlmIHNvdXJjZW1hcHMgd2l0aCBpZ25vcmUgbGlzdHMgYXJlIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gY2FsbFN0YWNrRnJhbWVzWzRdO1xuICAgICAgICAgICAgICAgIGVycm9yUmVmLmN1cnJlbnQgPSBtZXNzYWdlO1xuICAgICAgICAgICAgICAgIGZsdXNoQ3VycmVudEVycm9ySWZOZXcoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvZ0Vycm9yT3JXYXJuKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/dynamic-rendering-utils.js ***!
|
||
\******************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 isHangingPromiseRejectionError: function() {\n return isHangingPromiseRejectionError;\n },\n makeDevtoolsIOAwarePromise: function() {\n return makeDevtoolsIOAwarePromise;\n },\n makeHangingPromise: function() {\n return makeHangingPromise;\n }\n});\nfunction isHangingPromiseRejectionError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === HANGING_PROMISE_REJECTION;\n}\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';\nclass HangingPromiseRejectionError extends Error {\n constructor(route, expression){\n super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;\n }\n}\nconst abortListenersBySignal = new WeakMap();\nfunction makeHangingPromise(signal, route, expression) {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression));\n } else {\n const hangingPromise = new Promise((_, reject)=>{\n const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression));\n let currentListeners = abortListenersBySignal.get(signal);\n if (currentListeners) {\n currentListeners.push(boundRejection);\n } else {\n const listeners = [\n boundRejection\n ];\n abortListenersBySignal.set(signal, listeners);\n signal.addEventListener('abort', ()=>{\n for(let i = 0; i < listeners.length; i++){\n listeners[i]();\n }\n }, {\n once: true\n });\n }\n });\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject);\n return hangingPromise;\n }\n}\nfunction ignoreReject() {}\nfunction makeDevtoolsIOAwarePromise(underlying) {\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise((resolve)=>{\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(()=>{\n resolve(underlying);\n }, 0);\n });\n}\n\n//# sourceMappingURL=dynamic-rendering-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9keW5hbWljLXJlbmRlcmluZy11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxZQUFZLHNHQUFzRyxZQUFZLCtLQUErSyxNQUFNO0FBQ3pWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsc0JBQXNCO0FBQ3pEO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvZHluYW1pYy1yZW5kZXJpbmctdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3I6IG51bGwsXG4gICAgbWFrZURldnRvb2xzSU9Bd2FyZVByb21pc2U6IG51bGwsXG4gICAgbWFrZUhhbmdpbmdQcm9taXNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3I7XG4gICAgfSxcbiAgICBtYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBtYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZTtcbiAgICB9LFxuICAgIG1ha2VIYW5naW5nUHJvbWlzZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBtYWtlSGFuZ2luZ1Byb21pc2U7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3IoZXJyKSB7XG4gICAgaWYgKHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8IGVyciA9PT0gbnVsbCB8fCAhKCdkaWdlc3QnIGluIGVycikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZXJyLmRpZ2VzdCA9PT0gSEFOR0lOR19QUk9NSVNFX1JFSkVDVElPTjtcbn1cbmNvbnN0IEhBTkdJTkdfUFJPTUlTRV9SRUpFQ1RJT04gPSAnSEFOR0lOR19QUk9NSVNFX1JFSkVDVElPTic7XG5jbGFzcyBIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHJvdXRlLCBleHByZXNzaW9uKXtcbiAgICAgICAgc3VwZXIoYER1cmluZyBwcmVyZW5kZXJpbmcsICR7ZXhwcmVzc2lvbn0gcmVqZWN0cyB3aGVuIHRoZSBwcmVyZW5kZXIgaXMgY29tcGxldGUuIFR5cGljYWxseSB0aGVzZSBlcnJvcnMgYXJlIGhhbmRsZWQgYnkgUmVhY3QgYnV0IGlmIHlvdSBtb3ZlICR7ZXhwcmVzc2lvbn0gdG8gYSBkaWZmZXJlbnQgY29udGV4dCBieSB1c2luZyBcXGBzZXRUaW1lb3V0XFxgLCBcXGBhZnRlclxcYCwgb3Igc2ltaWxhciBmdW5jdGlvbnMgeW91IG1heSBvYnNlcnZlIHRoaXMgZXJyb3IgYW5kIHlvdSBzaG91bGQgaGFuZGxlIGl0IGluIHRoYXQgY29udGV4dC4gVGhpcyBvY2N1cnJlZCBhdCByb3V0ZSBcIiR7cm91dGV9XCIuYCksIHRoaXMucm91dGUgPSByb3V0ZSwgdGhpcy5leHByZXNzaW9uID0gZXhwcmVzc2lvbiwgdGhpcy5kaWdlc3QgPSBIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OO1xuICAgIH1cbn1cbmNvbnN0IGFib3J0TGlzdGVuZXJzQnlTaWduYWwgPSBuZXcgV2Vha01hcCgpO1xuZnVuY3Rpb24gbWFrZUhhbmdpbmdQcm9taXNlKHNpZ25hbCwgcm91dGUsIGV4cHJlc3Npb24pIHtcbiAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yKHJvdXRlLCBleHByZXNzaW9uKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaGFuZ2luZ1Byb21pc2UgPSBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KT0+e1xuICAgICAgICAgICAgY29uc3QgYm91bmRSZWplY3Rpb24gPSByZWplY3QuYmluZChudWxsLCBuZXcgSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbikpO1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRMaXN0ZW5lcnMgPSBhYm9ydExpc3RlbmVyc0J5U2lnbmFsLmdldChzaWduYWwpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRMaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50TGlzdGVuZXJzLnB1c2goYm91bmRSZWplY3Rpb24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ZW5lcnMgPSBbXG4gICAgICAgICAgICAgICAgICAgIGJvdW5kUmVqZWN0aW9uXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBhYm9ydExpc3RlbmVyc0J5U2lnbmFsLnNldChzaWduYWwsIGxpc3RlbmVycyk7XG4gICAgICAgICAgICAgICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgKCk9PntcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnNbaV0oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gV2UgYXJlIGZpbmUgaWYgbm8gb25lIGFjdHVhbGx5IGF3YWl0cyB0aGlzIHByb21pc2UuIFdlIHNob3VsZG4ndCBjb25zaWRlciB0aGlzIGFuIHVuaGFuZGxlZCByZWplY3Rpb24gc29cbiAgICAgICAgLy8gd2UgYXR0YWNoIGEgbm9vcCBjYXRjaCBoYW5kbGVyIGhlcmUgdG8gc3VwcHJlc3MgdGhpcyB3YXJuaW5nLiBJZiB5b3UgYWN0dWFsbHkgYXdhaXQgc29tZXdoZXJlIG9yIGNvbnN0cnVjdFxuICAgICAgICAvLyB5b3VyIG93biBwcm9taXNlIG91dCBvZiBpdCB5b3UnbGwgbmVlZCB0byBlbnN1cmUgeW91IGhhbmRsZSB0aGUgZXJyb3Igd2hlbiBpdCByZWplY3RzLlxuICAgICAgICBoYW5naW5nUHJvbWlzZS5jYXRjaChpZ25vcmVSZWplY3QpO1xuICAgICAgICByZXR1cm4gaGFuZ2luZ1Byb21pc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gaWdub3JlUmVqZWN0KCkge31cbmZ1bmN0aW9uIG1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKHVuZGVybHlpbmcpIHtcbiAgICAvLyBpbiBSZWFjdCBEZXZUb29scyBpZiB3ZSByZXNvbHZlIGluIGEgc2V0VGltZW91dCB3ZSB3aWxsIG9ic2VydmVcbiAgICAvLyB0aGUgcHJvbWlzZSByZXNvbHV0aW9uIGFzIHNvbWV0aGluZyB0aGF0IGNhbiBzdXNwZW5kIGEgYm91bmRhcnkgb3Igcm9vdC5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIC8vIE11c3QgdXNlIHNldFRpbWVvdXQgdG8gYmUgY29uc2lkZXJlZCBJTyBSZWFjdCBEZXZUb29scy4gc2V0SW1tZWRpYXRlIHdpbGwgbm90IHdvcmsuXG4gICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgIHJlc29sdmUodW5kZXJseWluZyk7XG4gICAgICAgIH0sIDApO1xuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1keW5hbWljLXJlbmRlcmluZy11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/instrumentation/utils.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/instrumentation/utils.js ***!
|
||
\****************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRevalidateReason\", ({\n enumerable: true,\n get: function() {\n return getRevalidateReason;\n }\n}));\nfunction getRevalidateReason(params) {\n if (params.isOnDemandRevalidate) {\n return 'on-demand';\n }\n if (params.isRevalidate) {\n return 'stale';\n }\n return undefined;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9pbnN0cnVtZW50YXRpb24vdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix1REFBc0Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2luc3RydW1lbnRhdGlvbi91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldFJldmFsaWRhdGVSZWFzb25cIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFJldmFsaWRhdGVSZWFzb247XG4gICAgfVxufSk7XG5mdW5jdGlvbiBnZXRSZXZhbGlkYXRlUmVhc29uKHBhcmFtcykge1xuICAgIGlmIChwYXJhbXMuaXNPbkRlbWFuZFJldmFsaWRhdGUpIHtcbiAgICAgICAgcmV0dXJuICdvbi1kZW1hbmQnO1xuICAgIH1cbiAgICBpZiAocGFyYW1zLmlzUmV2YWxpZGF0ZSkge1xuICAgICAgICByZXR1cm4gJ3N0YWxlJztcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/instrumentation/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/app-dir-module.js":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/app-dir-module.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 getComponentTypeModule: function() {\n return getComponentTypeModule;\n },\n getLayoutOrPageModule: function() {\n return getLayoutOrPageModule;\n }\n});\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\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] === _segment.DEFAULT_SEGMENT_KEY;\n let mod = undefined;\n let modType = undefined;\n let filePath = undefined;\n if (isLayout) {\n mod = await layout[0]();\n modType = 'layout';\n filePath = layout[1];\n } else if (isPage) {\n mod = await page[0]();\n modType = 'page';\n filePath = page[1];\n } else if (isDefaultPage) {\n mod = await defaultPage[0]();\n modType = 'page';\n filePath = defaultPage[1];\n }\n return {\n mod,\n modType,\n filePath\n };\n}\nasync function getComponentTypeModule(loaderTree, moduleType) {\n const { [moduleType]: module1 } = loaderTree[2];\n if (typeof module1 !== 'undefined') {\n return await module1[0]();\n }\n return undefined;\n}\n\n//# sourceMappingURL=app-dir-module.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvYXBwLWRpci1tb2R1bGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsc0ZBQTBCO0FBQ25EO0FBQ0EsWUFBWSw0QkFBNEI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHdCQUF3QjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvYXBwLWRpci1tb2R1bGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRDb21wb25lbnRUeXBlTW9kdWxlOiBudWxsLFxuICAgIGdldExheW91dE9yUGFnZU1vZHVsZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRDb21wb25lbnRUeXBlTW9kdWxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudFR5cGVNb2R1bGU7XG4gICAgfSxcbiAgICBnZXRMYXlvdXRPclBhZ2VNb2R1bGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0TGF5b3V0T3JQYWdlTW9kdWxlO1xuICAgIH1cbn0pO1xuY29uc3QgX3NlZ21lbnQgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50XCIpO1xuYXN5bmMgZnVuY3Rpb24gZ2V0TGF5b3V0T3JQYWdlTW9kdWxlKGxvYWRlclRyZWUpIHtcbiAgICBjb25zdCB7IGxheW91dCwgcGFnZSwgZGVmYXVsdFBhZ2UgfSA9IGxvYWRlclRyZWVbMl07XG4gICAgY29uc3QgaXNMYXlvdXQgPSB0eXBlb2YgbGF5b3V0ICE9PSAndW5kZWZpbmVkJztcbiAgICBjb25zdCBpc1BhZ2UgPSB0eXBlb2YgcGFnZSAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgY29uc3QgaXNEZWZhdWx0UGFnZSA9IHR5cGVvZiBkZWZhdWx0UGFnZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbG9hZGVyVHJlZVswXSA9PT0gX3NlZ21lbnQuREVGQVVMVF9TRUdNRU5UX0tFWTtcbiAgICBsZXQgbW9kID0gdW5kZWZpbmVkO1xuICAgIGxldCBtb2RUeXBlID0gdW5kZWZpbmVkO1xuICAgIGxldCBmaWxlUGF0aCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoaXNMYXlvdXQpIHtcbiAgICAgICAgbW9kID0gYXdhaXQgbGF5b3V0WzBdKCk7XG4gICAgICAgIG1vZFR5cGUgPSAnbGF5b3V0JztcbiAgICAgICAgZmlsZVBhdGggPSBsYXlvdXRbMV07XG4gICAgfSBlbHNlIGlmIChpc1BhZ2UpIHtcbiAgICAgICAgbW9kID0gYXdhaXQgcGFnZVswXSgpO1xuICAgICAgICBtb2RUeXBlID0gJ3BhZ2UnO1xuICAgICAgICBmaWxlUGF0aCA9IHBhZ2VbMV07XG4gICAgfSBlbHNlIGlmIChpc0RlZmF1bHRQYWdlKSB7XG4gICAgICAgIG1vZCA9IGF3YWl0IGRlZmF1bHRQYWdlWzBdKCk7XG4gICAgICAgIG1vZFR5cGUgPSAncGFnZSc7XG4gICAgICAgIGZpbGVQYXRoID0gZGVmYXVsdFBhZ2VbMV07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1vZCxcbiAgICAgICAgbW9kVHlwZSxcbiAgICAgICAgZmlsZVBhdGhcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29tcG9uZW50VHlwZU1vZHVsZShsb2FkZXJUcmVlLCBtb2R1bGVUeXBlKSB7XG4gICAgY29uc3QgeyBbbW9kdWxlVHlwZV06IG1vZHVsZTEgfSA9IGxvYWRlclRyZWVbMl07XG4gICAgaWYgKHR5cGVvZiBtb2R1bGUxICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gYXdhaXQgbW9kdWxlMVswXSgpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtZGlyLW1vZHVsZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/app-dir-module.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/cache-control.js":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/cache-control.js ***!
|
||
\************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getCacheControlHeader\", ({\n enumerable: true,\n get: function() {\n return getCacheControlHeader;\n }\n}));\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nfunction getCacheControlHeader({ revalidate, expire }) {\n const swrHeader = typeof revalidate === 'number' && expire !== undefined && revalidate < expire ? `, stale-while-revalidate=${expire - 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}${swrHeader}`;\n }\n return `s-maxage=${_constants.CACHE_ONE_YEAR}${swrHeader}`;\n}\n\n//# sourceMappingURL=cache-control.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2FjaGUtY29udHJvbC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlEQUF3RDtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxpQ0FBaUMsb0JBQW9CO0FBQ3JELGtJQUFrSSxvQkFBb0I7QUFDdEo7QUFDQTtBQUNBLE1BQU07QUFDTiwyQkFBMkIsV0FBVyxFQUFFLFVBQVU7QUFDbEQ7QUFDQSx1QkFBdUIsMEJBQTBCLEVBQUUsVUFBVTtBQUM3RDs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2NhY2hlLWNvbnRyb2wuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRDYWNoZUNvbnRyb2xIZWFkZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldENhY2hlQ29udHJvbEhlYWRlcjtcbiAgICB9XG59KTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIGdldENhY2hlQ29udHJvbEhlYWRlcih7IHJldmFsaWRhdGUsIGV4cGlyZSB9KSB7XG4gICAgY29uc3Qgc3dySGVhZGVyID0gdHlwZW9mIHJldmFsaWRhdGUgPT09ICdudW1iZXInICYmIGV4cGlyZSAhPT0gdW5kZWZpbmVkICYmIHJldmFsaWRhdGUgPCBleHBpcmUgPyBgLCBzdGFsZS13aGlsZS1yZXZhbGlkYXRlPSR7ZXhwaXJlIC0gcmV2YWxpZGF0ZX1gIDogJyc7XG4gICAgaWYgKHJldmFsaWRhdGUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuICdwcml2YXRlLCBuby1jYWNoZSwgbm8tc3RvcmUsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXZhbGlkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gYHMtbWF4YWdlPSR7cmV2YWxpZGF0ZX0ke3N3ckhlYWRlcn1gO1xuICAgIH1cbiAgICByZXR1cm4gYHMtbWF4YWdlPSR7X2NvbnN0YW50cy5DQUNIRV9PTkVfWUVBUn0ke3N3ckhlYWRlcn1gO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jYWNoZS1jb250cm9sLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/cache-control.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/clone-response.js":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/clone-response.js ***!
|
||
\*************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"cloneResponse\", ({\n enumerable: true,\n get: function() {\n return cloneResponse;\n }\n}));\nconst noop = ()=>{};\nlet registry;\nif (globalThis.FinalizationRegistry) {\n registry = new FinalizationRegistry((weakRef)=>{\n const stream = weakRef.deref();\n if (stream && !stream.locked) {\n stream.cancel('Response object has been garbage collected').then(noop);\n }\n });\n}\nfunction cloneResponse(original) {\n // If the response has no body, then we can just return the original response\n // twice because it's immutable.\n if (!original.body) {\n return [\n original,\n original\n ];\n }\n const [body1, body2] = original.body.tee();\n const cloned1 = new Response(body1, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers\n });\n Object.defineProperty(cloned1, 'url', {\n value: original.url,\n // How the original response.url behaves\n configurable: true,\n enumerable: true,\n writable: false\n });\n // The Fetch Standard allows users to skip consuming the response body by\n // relying on garbage collection to release connection resources.\n // https://github.com/nodejs/undici?tab=readme-ov-file#garbage-collection\n //\n // To cancel the stream you then need to cancel both resulting branches.\n // Teeing a stream will generally lock it for the duration, preventing other\n // readers from locking it.\n // https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/tee\n // cloned2 is stored in a react cache and cloned for subsequent requests.\n // It is the original request, and is is garbage collected by a\n // FinalizationRegistry in Undici, but since we're tee-ing the stream\n // ourselves, we need to cancel clone1's stream (the response returned from\n // our dedupe fetch) when clone1 is reclaimed, otherwise we leak memory.\n if (registry && cloned1.body) {\n registry.register(cloned1, new WeakRef(cloned1.body));\n }\n const cloned2 = new Response(body2, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers\n });\n Object.defineProperty(cloned2, 'url', {\n value: original.url,\n // How the original response.url behaves\n configurable: true,\n enumerable: true,\n writable: false\n });\n return [\n cloned1,\n cloned2\n ];\n}\n\n//# sourceMappingURL=clone-response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2xvbmUtcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixpREFBZ0Q7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2Nsb25lLXJlc3BvbnNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY2xvbmVSZXNwb25zZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY2xvbmVSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IG5vb3AgPSAoKT0+e307XG5sZXQgcmVnaXN0cnk7XG5pZiAoZ2xvYmFsVGhpcy5GaW5hbGl6YXRpb25SZWdpc3RyeSkge1xuICAgIHJlZ2lzdHJ5ID0gbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KCh3ZWFrUmVmKT0+e1xuICAgICAgICBjb25zdCBzdHJlYW0gPSB3ZWFrUmVmLmRlcmVmKCk7XG4gICAgICAgIGlmIChzdHJlYW0gJiYgIXN0cmVhbS5sb2NrZWQpIHtcbiAgICAgICAgICAgIHN0cmVhbS5jYW5jZWwoJ1Jlc3BvbnNlIG9iamVjdCBoYXMgYmVlbiBnYXJiYWdlIGNvbGxlY3RlZCcpLnRoZW4obm9vcCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNsb25lUmVzcG9uc2Uob3JpZ2luYWwpIHtcbiAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaGFzIG5vIGJvZHksIHRoZW4gd2UgY2FuIGp1c3QgcmV0dXJuIHRoZSBvcmlnaW5hbCByZXNwb25zZVxuICAgIC8vIHR3aWNlIGJlY2F1c2UgaXQncyBpbW11dGFibGUuXG4gICAgaWYgKCFvcmlnaW5hbC5ib2R5KSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBvcmlnaW5hbCxcbiAgICAgICAgICAgIG9yaWdpbmFsXG4gICAgICAgIF07XG4gICAgfVxuICAgIGNvbnN0IFtib2R5MSwgYm9keTJdID0gb3JpZ2luYWwuYm9keS50ZWUoKTtcbiAgICBjb25zdCBjbG9uZWQxID0gbmV3IFJlc3BvbnNlKGJvZHkxLCB7XG4gICAgICAgIHN0YXR1czogb3JpZ2luYWwuc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0OiBvcmlnaW5hbC5zdGF0dXNUZXh0LFxuICAgICAgICBoZWFkZXJzOiBvcmlnaW5hbC5oZWFkZXJzXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNsb25lZDEsICd1cmwnLCB7XG4gICAgICAgIHZhbHVlOiBvcmlnaW5hbC51cmwsXG4gICAgICAgIC8vIEhvdyB0aGUgb3JpZ2luYWwgcmVzcG9uc2UudXJsIGJlaGF2ZXNcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2VcbiAgICB9KTtcbiAgICAvLyBUaGUgRmV0Y2ggU3RhbmRhcmQgYWxsb3dzIHVzZXJzIHRvIHNraXAgY29uc3VtaW5nIHRoZSByZXNwb25zZSBib2R5IGJ5XG4gICAgLy8gcmVseWluZyBvbiBnYXJiYWdlIGNvbGxlY3Rpb24gdG8gcmVsZWFzZSBjb25uZWN0aW9uIHJlc291cmNlcy5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL3VuZGljaT90YWI9cmVhZG1lLW92LWZpbGUjZ2FyYmFnZS1jb2xsZWN0aW9uXG4gICAgLy9cbiAgICAvLyBUbyBjYW5jZWwgdGhlIHN0cmVhbSB5b3UgdGhlbiBuZWVkIHRvIGNhbmNlbCBib3RoIHJlc3VsdGluZyBicmFuY2hlcy5cbiAgICAvLyBUZWVpbmcgYSBzdHJlYW0gd2lsbCBnZW5lcmFsbHkgbG9jayBpdCBmb3IgdGhlIGR1cmF0aW9uLCBwcmV2ZW50aW5nIG90aGVyXG4gICAgLy8gcmVhZGVycyBmcm9tIGxvY2tpbmcgaXQuXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1JlYWRhYmxlU3RyZWFtL3RlZVxuICAgIC8vIGNsb25lZDIgaXMgc3RvcmVkIGluIGEgcmVhY3QgY2FjaGUgYW5kIGNsb25lZCBmb3Igc3Vic2VxdWVudCByZXF1ZXN0cy5cbiAgICAvLyBJdCBpcyB0aGUgb3JpZ2luYWwgcmVxdWVzdCwgYW5kIGlzIGlzIGdhcmJhZ2UgY29sbGVjdGVkIGJ5IGFcbiAgICAvLyBGaW5hbGl6YXRpb25SZWdpc3RyeSBpbiBVbmRpY2ksIGJ1dCBzaW5jZSB3ZSdyZSB0ZWUtaW5nIHRoZSBzdHJlYW1cbiAgICAvLyBvdXJzZWx2ZXMsIHdlIG5lZWQgdG8gY2FuY2VsIGNsb25lMSdzIHN0cmVhbSAodGhlIHJlc3BvbnNlIHJldHVybmVkIGZyb21cbiAgICAvLyBvdXIgZGVkdXBlIGZldGNoKSB3aGVuIGNsb25lMSBpcyByZWNsYWltZWQsIG90aGVyd2lzZSB3ZSBsZWFrIG1lbW9yeS5cbiAgICBpZiAocmVnaXN0cnkgJiYgY2xvbmVkMS5ib2R5KSB7XG4gICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKGNsb25lZDEsIG5ldyBXZWFrUmVmKGNsb25lZDEuYm9keSkpO1xuICAgIH1cbiAgICBjb25zdCBjbG9uZWQyID0gbmV3IFJlc3BvbnNlKGJvZHkyLCB7XG4gICAgICAgIHN0YXR1czogb3JpZ2luYWwuc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0OiBvcmlnaW5hbC5zdGF0dXNUZXh0LFxuICAgICAgICBoZWFkZXJzOiBvcmlnaW5hbC5oZWFkZXJzXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNsb25lZDIsICd1cmwnLCB7XG4gICAgICAgIHZhbHVlOiBvcmlnaW5hbC51cmwsXG4gICAgICAgIC8vIEhvdyB0aGUgb3JpZ2luYWwgcmVzcG9uc2UudXJsIGJlaGF2ZXNcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4gW1xuICAgICAgICBjbG9uZWQxLFxuICAgICAgICBjbG9uZWQyXG4gICAgXTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xvbmUtcmVzcG9uc2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/clone-response.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/dedupe-fetch.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/dedupe-fetch.js ***!
|
||
\***********************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Based on https://github.com/facebook/react/blob/d4e78c42a94be027b4dc7ed2659a5fddfbf9bd4e/packages/react/src/ReactFetch.js\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createDedupeFetch\", ({\n enumerable: true,\n get: function() {\n return createDedupeFetch;\n }\n}));\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _cloneresponse = __webpack_require__(/*! ./clone-response */ \"(rsc)/./node_modules/next/dist/server/lib/clone-response.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nconst simpleCacheKey = '[\"GET\",[],null,\"follow\",null,null,null,null]' // generateCacheKey(new Request('https://blank'));\n;\nfunction 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}\nfunction createDedupeFetch(originalFetch) {\n const getCacheEntries = _react.cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- url is the cache key\n (url)=>[]);\n return function dedupeFetch(resource, options) {\n if (options && options.signal) {\n // If we're passed a signal, 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 }\n // Normalize the Request\n let url;\n let 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 const request = typeof resource === 'string' || resource instanceof URL ? new Request(resource, options) : resource;\n if (request.method !== 'GET' && request.method !== 'HEAD' || 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 const cacheEntries = getCacheEntries(url);\n for(let i = 0, j = cacheEntries.length; i < j; i += 1){\n const [key, promise] = cacheEntries[i];\n if (key === cacheKey) {\n return promise.then(()=>{\n const response = cacheEntries[i][2];\n if (!response) throw Object.defineProperty(new _invarianterror.InvariantError('No cached response'), \"__NEXT_ERROR_CODE\", {\n value: \"E579\",\n enumerable: false,\n configurable: true\n });\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(response);\n cacheEntries[i][2] = cloned2;\n return cloned1;\n });\n }\n }\n // We pass the original arguments here in case normalizing the Request\n // doesn't include all the options in this environment.\n const promise = originalFetch(resource, options);\n const entry = [\n cacheKey,\n promise,\n null\n ];\n cacheEntries.push(entry);\n return promise.then((response)=>{\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(response);\n entry[2] = cloned2;\n return cloned1;\n });\n };\n}\n\n//# sourceMappingURL=dedupe-fetch.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZGVkdXBlLWZldGNoLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixxREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRix1REFBdUQsbUJBQU8sQ0FBQyxpR0FBTztBQUN0RSx1QkFBdUIsbUJBQU8sQ0FBQyxxRkFBa0I7QUFDakQsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxPQUFPO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2RlZHVwZS1mZXRjaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9ibG9iL2Q0ZTc4YzQyYTk0YmUwMjdiNGRjN2VkMjY1OWE1ZmRkZmJmOWJkNGUvcGFja2FnZXMvcmVhY3Qvc3JjL1JlYWN0RmV0Y2guanNcbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZURlZHVwZUZldGNoXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEZWR1cGVGZXRjaDtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX2Nsb25lcmVzcG9uc2UgPSByZXF1aXJlKFwiLi9jbG9uZS1yZXNwb25zZVwiKTtcbmNvbnN0IF9pbnZhcmlhbnRlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvclwiKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuY29uc3Qgc2ltcGxlQ2FjaGVLZXkgPSAnW1wiR0VUXCIsW10sbnVsbCxcImZvbGxvd1wiLG51bGwsbnVsbCxudWxsLG51bGxdJyAvLyBnZW5lcmF0ZUNhY2hlS2V5KG5ldyBSZXF1ZXN0KCdodHRwczovL2JsYW5rJykpO1xuO1xuZnVuY3Rpb24gZ2VuZXJhdGVDYWNoZUtleShyZXF1ZXN0KSB7XG4gICAgLy8gV2UgcGljayB0aGUgZmllbGRzIHRoYXQgZ29lcyBpbnRvIHRoZSBrZXkgdXNlZCB0byBkZWR1cGUgcmVxdWVzdHMuXG4gICAgLy8gV2UgZG9uJ3QgaW5jbHVkZSB0aGUgYGNhY2hlYCBmaWVsZCwgYmVjYXVzZSB3ZSBlbmQgdXAgdXNpbmcgd2hhdGV2ZXJcbiAgICAvLyBjYWNoaW5nIHJlc3VsdGVkIGZyb20gdGhlIGZpcnN0IHJlcXVlc3QuXG4gICAgLy8gTm90YWJseSB3ZSBjdXJyZW50bHkgZG9uJ3QgY29uc2lkZXIgbm9uLXN0YW5kYXJkIChvciBmdXR1cmUpIG9wdGlvbnMuXG4gICAgLy8gVGhpcyBtaWdodCBub3QgYmUgc2FmZS4gVE9ETzogd2FybiBmb3Igbm9uLXN0YW5kYXJkIGV4dGVuc2lvbnMgZGlmZmVyaW5nLlxuICAgIC8vIElGIFlPVSBDSEFOR0UgVEhJUyBVUERBVEUgVEhFIHNpbXBsZUNhY2hlS2V5IEFCT1ZFLlxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgIHJlcXVlc3QubWV0aG9kLFxuICAgICAgICBBcnJheS5mcm9tKHJlcXVlc3QuaGVhZGVycy5lbnRyaWVzKCkpLFxuICAgICAgICByZXF1ZXN0Lm1vZGUsXG4gICAgICAgIHJlcXVlc3QucmVkaXJlY3QsXG4gICAgICAgIHJlcXVlc3QuY3JlZGVudGlhbHMsXG4gICAgICAgIHJlcXVlc3QucmVmZXJyZXIsXG4gICAgICAgIHJlcXVlc3QucmVmZXJyZXJQb2xpY3ksXG4gICAgICAgIHJlcXVlc3QuaW50ZWdyaXR5XG4gICAgXSk7XG59XG5mdW5jdGlvbiBjcmVhdGVEZWR1cGVGZXRjaChvcmlnaW5hbEZldGNoKSB7XG4gICAgY29uc3QgZ2V0Q2FjaGVFbnRyaWVzID0gX3JlYWN0LmNhY2hlKC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gdXJsIGlzIHRoZSBjYWNoZSBrZXlcbiAgICAodXJsKT0+W10pO1xuICAgIHJldHVybiBmdW5jdGlvbiBkZWR1cGVGZXRjaChyZXNvdXJjZSwgb3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNpZ25hbCkge1xuICAgICAgICAgICAgLy8gSWYgd2UncmUgcGFzc2VkIGEgc2lnbmFsLCB0aGVuIHdlIGFzc3VtZSB0aGF0XG4gICAgICAgICAgICAvLyBzb21lb25lIGVsc2UgY29udHJvbHMgdGhlIGxpZmV0aW1lIG9mIHRoaXMgb2JqZWN0IGFuZCBvcHRzIG91dCBvZlxuICAgICAgICAgICAgLy8gY2FjaGluZy4gSXQncyBlZmZlY3RpdmVseSB0aGUgb3B0LW91dCBtZWNoYW5pc20uXG4gICAgICAgICAgICAvLyBJZGVhbGx5IHdlIHNob3VsZCBiZSBhYmxlIHRvIGNoZWNrIHRoaXMgb24gdGhlIFJlcXVlc3QgYnV0XG4gICAgICAgICAgICAvLyBpdCBhbHdheXMgZ2V0cyBpbml0aWFsaXplZCB3aXRoIGl0cyBvd24gc2lnbmFsIHNvIHdlIGRvbid0XG4gICAgICAgICAgICAvLyBrbm93IGlmIGl0J3Mgc3VwcG9zZWQgdG8gb3ZlcnJpZGUgLSB1bmxlc3Mgd2UgYWxzbyBvdmVycmlkZSB0aGVcbiAgICAgICAgICAgIC8vIFJlcXVlc3QgY29uc3RydWN0b3IuXG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxGZXRjaChyZXNvdXJjZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTm9ybWFsaXplIHRoZSBSZXF1ZXN0XG4gICAgICAgIGxldCB1cmw7XG4gICAgICAgIGxldCBjYWNoZUtleTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXNvdXJjZSA9PT0gJ3N0cmluZycgJiYgIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIC8vIEZhc3QgcGF0aC5cbiAgICAgICAgICAgIGNhY2hlS2V5ID0gc2ltcGxlQ2FjaGVLZXk7XG4gICAgICAgICAgICB1cmwgPSByZXNvdXJjZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgcmVxdWVzdC5cbiAgICAgICAgICAgIC8vIGlmIHJlc291cmNlIGlzIG5vdCBhIHN0cmluZyBvciBhIFVSTCAoaXRzIGFuIGluc3RhbmNlIG9mIFJlcXVlc3QpXG4gICAgICAgICAgICAvLyB0aGVuIGRvIG5vdCBpbnN0YW50aWF0ZSBhIG5ldyBSZXF1ZXN0IGJ1dCBpbnN0ZWFkXG4gICAgICAgICAgICAvLyByZXVzZSB0aGUgcmVxdWVzdCBhcyB0byBub3QgZGlzdHVyYiB0aGUgYm9keSBpbiB0aGUgZXZlbnQgaXQncyBhIFJlYWRhYmxlU3RyZWFtLlxuICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IHR5cGVvZiByZXNvdXJjZSA9PT0gJ3N0cmluZycgfHwgcmVzb3VyY2UgaW5zdGFuY2VvZiBVUkwgPyBuZXcgUmVxdWVzdChyZXNvdXJjZSwgb3B0aW9ucykgOiByZXNvdXJjZTtcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxdWVzdC5tZXRob2QgIT09ICdIRUFEJyB8fCByZXF1ZXN0LmtlZXBhbGl2ZSkge1xuICAgICAgICAgICAgICAgIC8vIFdlIGN1cnJlbnRseSBkb24ndCBkZWR1cGUgcmVxdWVzdHMgdGhhdCBtaWdodCBoYXZlIHNpZGUtZWZmZWN0cy4gVGhvc2VcbiAgICAgICAgICAgICAgICAvLyBoYXZlIHRvIGJlIGV4cGxpY2l0bHkgY2FjaGVkLiBXZSBhc3N1bWUgdGhhdCB0aGUgcmVxdWVzdCBkb2Vzbid0IGhhdmUgYVxuICAgICAgICAgICAgICAgIC8vIGJvZHkgaWYgaXQncyBHRVQgb3IgSEVBRC5cbiAgICAgICAgICAgICAgICAvLyBrZWVwYWxpdmUgZ2V0cyB0cmVhdGVkIHRoZSBzYW1lIGFzIGlmIHlvdSBwYXNzZWQgYSBjdXN0b20gY2FjaGUgc2lnbmFsLlxuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbEZldGNoKHJlc291cmNlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhY2hlS2V5ID0gZ2VuZXJhdGVDYWNoZUtleShyZXF1ZXN0KTtcbiAgICAgICAgICAgIHVybCA9IHJlcXVlc3QudXJsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNhY2hlRW50cmllcyA9IGdldENhY2hlRW50cmllcyh1cmwpO1xuICAgICAgICBmb3IobGV0IGkgPSAwLCBqID0gY2FjaGVFbnRyaWVzLmxlbmd0aDsgaSA8IGo7IGkgKz0gMSl7XG4gICAgICAgICAgICBjb25zdCBba2V5LCBwcm9taXNlXSA9IGNhY2hlRW50cmllc1tpXTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IGNhY2hlS2V5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGNhY2hlRW50cmllc1tpXVsyXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZSkgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ05vIGNhY2hlZCByZXNwb25zZScpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU1NzlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyBXZSdyZSBjbG9uaW5nIHRoZSByZXNwb25zZSB1c2luZyB0aGlzIHV0aWxpdHkgYmVjYXVzZSB0aGVyZSBleGlzdHNcbiAgICAgICAgICAgICAgICAgICAgLy8gYSBidWcgaW4gdGhlIHVuZGljaSBsaWJyYXJ5IGFyb3VuZCByZXNwb25zZSBjbG9uaW5nLiBTZWUgdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIGZvbGxvd2luZyBwdWxsIHJlcXVlc3QgZm9yIG1vcmUgZGV0YWlsczpcbiAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL3B1bGwvNzMyNzRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW2Nsb25lZDEsIGNsb25lZDJdID0gKDAsIF9jbG9uZXJlc3BvbnNlLmNsb25lUmVzcG9uc2UpKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVFbnRyaWVzW2ldWzJdID0gY2xvbmVkMjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNsb25lZDE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gV2UgcGFzcyB0aGUgb3JpZ2luYWwgYXJndW1lbnRzIGhlcmUgaW4gY2FzZSBub3JtYWxpemluZyB0aGUgUmVxdWVzdFxuICAgICAgICAvLyBkb2Vzbid0IGluY2x1ZGUgYWxsIHRoZSBvcHRpb25zIGluIHRoaXMgZW52aXJvbm1lbnQuXG4gICAgICAgIGNvbnN0IHByb21pc2UgPSBvcmlnaW5hbEZldGNoKHJlc291cmNlLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgZW50cnkgPSBbXG4gICAgICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgICAgIHByb21pc2UsXG4gICAgICAgICAgICBudWxsXG4gICAgICAgIF07XG4gICAgICAgIGNhY2hlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbigocmVzcG9uc2UpPT57XG4gICAgICAgICAgICAvLyBXZSdyZSBjbG9uaW5nIHRoZSByZXNwb25zZSB1c2luZyB0aGlzIHV0aWxpdHkgYmVjYXVzZSB0aGVyZSBleGlzdHNcbiAgICAgICAgICAgIC8vIGEgYnVnIGluIHRoZSB1bmRpY2kgbGlicmFyeSBhcm91bmQgcmVzcG9uc2UgY2xvbmluZy4gU2VlIHRoZVxuICAgICAgICAgICAgLy8gZm9sbG93aW5nIHB1bGwgcmVxdWVzdCBmb3IgbW9yZSBkZXRhaWxzOlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL3B1bGwvNzMyNzRcbiAgICAgICAgICAgIGNvbnN0IFtjbG9uZWQxLCBjbG9uZWQyXSA9ICgwLCBfY2xvbmVyZXNwb25zZS5jbG9uZVJlc3BvbnNlKShyZXNwb25zZSk7XG4gICAgICAgICAgICBlbnRyeVsyXSA9IGNsb25lZDI7XG4gICAgICAgICAgICByZXR1cm4gY2xvbmVkMTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVkdXBlLWZldGNoLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/dedupe-fetch.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/etag.js":
|
||
/*!***************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/etag.js ***!
|
||
\***************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <me@traviswebb.com>\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 */ \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 fnv1a52: function() {\n return fnv1a52;\n },\n generateETag: function() {\n return generateETag;\n }\n});\nconst 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};\n\n//# sourceMappingURL=etag.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZXRhZy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2V0YWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGTlYtMWEgSGFzaCBpbXBsZW1lbnRhdGlvblxuICogQGF1dGhvciBUcmF2aXMgV2ViYiAodGp3ZWJiKSA8bWVAdHJhdmlzd2ViYi5jb20+XG4gKlxuICogUG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3Rqd2ViYi9mbnYtcGx1cy9ibG9iL21hc3Rlci9pbmRleC5qc1xuICpcbiAqIFNpbXBsaWZpZWQsIG9wdGltaXplZCBhbmQgYWRkIG1vZGlmaWVkIGZvciA1MiBiaXQsIHdoaWNoIHByb3ZpZGVzIGEgbGFyZ2VyIGhhc2ggc3BhY2VcbiAqIGFuZCBzdGlsbCBtYWtpbmcgdXNlIG9mIEphdmFzY3JpcHQncyA1My1iaXQgaW50ZWdlciBzcGFjZS5cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGZudjFhNTI6IG51bGwsXG4gICAgZ2VuZXJhdGVFVGFnOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGZudjFhNTI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZm52MWE1MjtcbiAgICB9LFxuICAgIGdlbmVyYXRlRVRhZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZW5lcmF0ZUVUYWc7XG4gICAgfVxufSk7XG5jb25zdCBmbnYxYTUyID0gKHN0cik9PntcbiAgICBjb25zdCBsZW4gPSBzdHIubGVuZ3RoO1xuICAgIGxldCBpID0gMCwgdDAgPSAwLCB2MCA9IDB4MjMyNSwgdDEgPSAwLCB2MSA9IDB4ODQyMiwgdDIgPSAwLCB2MiA9IDB4OWNlNCwgdDMgPSAwLCB2MyA9IDB4Y2JmMjtcbiAgICB3aGlsZShpIDwgbGVuKXtcbiAgICAgICAgdjAgXj0gc3RyLmNoYXJDb2RlQXQoaSsrKTtcbiAgICAgICAgdDAgPSB2MCAqIDQzNTtcbiAgICAgICAgdDEgPSB2MSAqIDQzNTtcbiAgICAgICAgdDIgPSB2MiAqIDQzNTtcbiAgICAgICAgdDMgPSB2MyAqIDQzNTtcbiAgICAgICAgdDIgKz0gdjAgPDwgODtcbiAgICAgICAgdDMgKz0gdjEgPDwgODtcbiAgICAgICAgdDEgKz0gdDAgPj4+IDE2O1xuICAgICAgICB2MCA9IHQwICYgNjU1MzU7XG4gICAgICAgIHQyICs9IHQxID4+PiAxNjtcbiAgICAgICAgdjEgPSB0MSAmIDY1NTM1O1xuICAgICAgICB2MyA9IHQzICsgKHQyID4+PiAxNikgJiA2NTUzNTtcbiAgICAgICAgdjIgPSB0MiAmIDY1NTM1O1xuICAgIH1cbiAgICByZXR1cm4gKHYzICYgMTUpICogMjgxNDc0OTc2NzEwNjU2ICsgdjIgKiA0Mjk0OTY3Mjk2ICsgdjEgKiA2NTUzNiArICh2MCBeIHYzID4+IDQpO1xufTtcbmNvbnN0IGdlbmVyYXRlRVRhZyA9IChwYXlsb2FkLCB3ZWFrID0gZmFsc2UpPT57XG4gICAgY29uc3QgcHJlZml4ID0gd2VhayA/ICdXL1wiJyA6ICdcIic7XG4gICAgcmV0dXJuIHByZWZpeCArIGZudjFhNTIocGF5bG9hZCkudG9TdHJpbmcoMzYpICsgcGF5bG9hZC5sZW5ndGgudG9TdHJpbmcoMzYpICsgJ1wiJztcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWV0YWcuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/etag.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/experimental/ppr.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/experimental/ppr.js ***!
|
||
\***************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * If set to `incremental`, only those leaf pages that export\n * `experimental_ppr = true` will have partial prerendering enabled. If any\n * page exports this value as `false` or does not export it at all will not\n * have partial prerendering enabled. If set to a boolean, the options for\n * `experimental_ppr` will be ignored.\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 checkIsAppPPREnabled: function() {\n return checkIsAppPPREnabled;\n },\n checkIsRoutePPREnabled: function() {\n return checkIsRoutePPREnabled;\n }\n});\nfunction checkIsAppPPREnabled(config) {\n // If the config is undefined, partial prerendering is disabled.\n if (typeof config === 'undefined') return false;\n // If the config is a boolean, use it directly.\n if (typeof config === 'boolean') return config;\n // If the config is a string, it must be 'incremental' to enable partial\n // prerendering.\n if (config === 'incremental') return true;\n return false;\n}\nfunction checkIsRoutePPREnabled(config, appConfig) {\n // If the config is undefined, partial prerendering is disabled.\n if (typeof config === 'undefined') return false;\n // If the config is a boolean, use it directly.\n if (typeof config === 'boolean') return config;\n // If the config is a string, it must be 'incremental' to enable partial\n // prerendering.\n if (config === 'incremental' && appConfig.experimental_ppr === true) {\n return true;\n }\n return false;\n}\n\n//# sourceMappingURL=ppr.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZXhwZXJpbWVudGFsL3Bwci5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9leHBlcmltZW50YWwvcHByLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSWYgc2V0IHRvIGBpbmNyZW1lbnRhbGAsIG9ubHkgdGhvc2UgbGVhZiBwYWdlcyB0aGF0IGV4cG9ydFxuICogYGV4cGVyaW1lbnRhbF9wcHIgPSB0cnVlYCB3aWxsIGhhdmUgcGFydGlhbCBwcmVyZW5kZXJpbmcgZW5hYmxlZC4gSWYgYW55XG4gKiBwYWdlIGV4cG9ydHMgdGhpcyB2YWx1ZSBhcyBgZmFsc2VgIG9yIGRvZXMgbm90IGV4cG9ydCBpdCBhdCBhbGwgd2lsbCBub3RcbiAqIGhhdmUgcGFydGlhbCBwcmVyZW5kZXJpbmcgZW5hYmxlZC4gSWYgc2V0IHRvIGEgYm9vbGVhbiwgdGhlIG9wdGlvbnMgZm9yXG4gKiBgZXhwZXJpbWVudGFsX3BwcmAgd2lsbCBiZSBpZ25vcmVkLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY2hlY2tJc0FwcFBQUkVuYWJsZWQ6IG51bGwsXG4gICAgY2hlY2tJc1JvdXRlUFBSRW5hYmxlZDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjaGVja0lzQXBwUFBSRW5hYmxlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjaGVja0lzQXBwUFBSRW5hYmxlZDtcbiAgICB9LFxuICAgIGNoZWNrSXNSb3V0ZVBQUkVuYWJsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY2hlY2tJc1JvdXRlUFBSRW5hYmxlZDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGNoZWNrSXNBcHBQUFJFbmFibGVkKGNvbmZpZykge1xuICAgIC8vIElmIHRoZSBjb25maWcgaXMgdW5kZWZpbmVkLCBwYXJ0aWFsIHByZXJlbmRlcmluZyBpcyBkaXNhYmxlZC5cbiAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBmYWxzZTtcbiAgICAvLyBJZiB0aGUgY29uZmlnIGlzIGEgYm9vbGVhbiwgdXNlIGl0IGRpcmVjdGx5LlxuICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnYm9vbGVhbicpIHJldHVybiBjb25maWc7XG4gICAgLy8gSWYgdGhlIGNvbmZpZyBpcyBhIHN0cmluZywgaXQgbXVzdCBiZSAnaW5jcmVtZW50YWwnIHRvIGVuYWJsZSBwYXJ0aWFsXG4gICAgLy8gcHJlcmVuZGVyaW5nLlxuICAgIGlmIChjb25maWcgPT09ICdpbmNyZW1lbnRhbCcpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGNoZWNrSXNSb3V0ZVBQUkVuYWJsZWQoY29uZmlnLCBhcHBDb25maWcpIHtcbiAgICAvLyBJZiB0aGUgY29uZmlnIGlzIHVuZGVmaW5lZCwgcGFydGlhbCBwcmVyZW5kZXJpbmcgaXMgZGlzYWJsZWQuXG4gICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gSWYgdGhlIGNvbmZpZyBpcyBhIGJvb2xlYW4sIHVzZSBpdCBkaXJlY3RseS5cbiAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gY29uZmlnO1xuICAgIC8vIElmIHRoZSBjb25maWcgaXMgYSBzdHJpbmcsIGl0IG11c3QgYmUgJ2luY3JlbWVudGFsJyB0byBlbmFibGUgcGFydGlhbFxuICAgIC8vIHByZXJlbmRlcmluZy5cbiAgICBpZiAoY29uZmlnID09PSAnaW5jcmVtZW50YWwnICYmIGFwcENvbmZpZy5leHBlcmltZW50YWxfcHByID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBwci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/experimental/ppr.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/lru-cache.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/lru-cache.js ***!
|
||
\********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Node in the doubly-linked list used for LRU tracking.\n * Each node represents a cache entry with bidirectional pointers.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"LRUCache\", ({\n enumerable: true,\n get: function() {\n return LRUCache;\n }\n}));\nclass LRUNode {\n constructor(key, data, size){\n this.prev = null;\n this.next = null;\n this.key = key;\n this.data = data;\n this.size = size;\n }\n}\n/**\n * Sentinel node used for head/tail boundaries.\n * These nodes don't contain actual cache data but simplify list operations.\n */ class SentinelNode {\n constructor(){\n this.prev = null;\n this.next = null;\n }\n}\nclass LRUCache {\n constructor(maxSize, calculateSize){\n this.cache = new Map();\n this.totalSize = 0;\n this.maxSize = maxSize;\n this.calculateSize = calculateSize;\n // Create sentinel nodes to simplify doubly-linked list operations\n // HEAD <-> TAIL (empty list)\n this.head = new SentinelNode();\n this.tail = new SentinelNode();\n this.head.next = this.tail;\n this.tail.prev = this.head;\n }\n /**\n * Adds a node immediately after the head (marks as most recently used).\n * Used when inserting new items or when an item is accessed.\n * PRECONDITION: node must be disconnected (prev/next should be null)\n */ addToHead(node) {\n node.prev = this.head;\n node.next = this.head.next;\n // head.next is always non-null (points to tail or another node)\n this.head.next.prev = node;\n this.head.next = node;\n }\n /**\n * Removes a node from its current position in the doubly-linked list.\n * Updates the prev/next pointers of adjacent nodes to maintain list integrity.\n * PRECONDITION: node must be connected (prev/next are non-null)\n */ removeNode(node) {\n // Connected nodes always have non-null prev/next\n node.prev.next = node.next;\n node.next.prev = node.prev;\n }\n /**\n * Moves an existing node to the head position (marks as most recently used).\n * This is the core LRU operation - accessed items become most recent.\n */ moveToHead(node) {\n this.removeNode(node);\n this.addToHead(node);\n }\n /**\n * Removes and returns the least recently used node (the one before tail).\n * This is called during eviction when the cache exceeds capacity.\n * PRECONDITION: cache is not empty (ensured by caller)\n */ removeTail() {\n const lastNode = this.tail.prev;\n // tail.prev is always non-null and always LRUNode when cache is not empty\n this.removeNode(lastNode);\n return lastNode;\n }\n /**\n * Sets a key-value pair in the cache.\n * If the key exists, updates the value and moves to head.\n * If new, adds at head and evicts from tail if necessary.\n *\n * Time Complexity:\n * - O(1) for uniform item sizes\n * - O(k) where k is the number of items evicted (can be O(N) for variable sizes)\n */ set(key, value) {\n const size = (this.calculateSize == null ? void 0 : this.calculateSize.call(this, value)) ?? 1;\n if (size > this.maxSize) {\n console.warn('Single item size exceeds maxSize');\n return;\n }\n const existing = this.cache.get(key);\n if (existing) {\n // Update existing node: adjust size and move to head (most recent)\n existing.data = value;\n this.totalSize = this.totalSize - existing.size + size;\n existing.size = size;\n this.moveToHead(existing);\n } else {\n // Add new node at head (most recent position)\n const newNode = new LRUNode(key, value, size);\n this.cache.set(key, newNode);\n this.addToHead(newNode);\n this.totalSize += size;\n }\n // Evict least recently used items until under capacity\n while(this.totalSize > this.maxSize && this.cache.size > 0){\n const tail = this.removeTail();\n this.cache.delete(tail.key);\n this.totalSize -= tail.size;\n }\n }\n /**\n * Checks if a key exists in the cache.\n * This is a pure query operation - does NOT update LRU order.\n *\n * Time Complexity: O(1)\n */ has(key) {\n return this.cache.has(key);\n }\n /**\n * Retrieves a value by key and marks it as most recently used.\n * Moving to head maintains the LRU property for future evictions.\n *\n * Time Complexity: O(1)\n */ get(key) {\n const node = this.cache.get(key);\n if (!node) return undefined;\n // Mark as most recently used by moving to head\n this.moveToHead(node);\n return node.data;\n }\n /**\n * Returns an iterator over the cache entries. The order is outputted in the\n * order of most recently used to least recently used.\n */ *[Symbol.iterator]() {\n let current = this.head.next;\n while(current && current !== this.tail){\n // Between head and tail, current is always LRUNode\n const node = current;\n yield [\n node.key,\n node.data\n ];\n current = current.next;\n }\n }\n /**\n * Removes a specific key from the cache.\n * Updates both the hash map and doubly-linked list.\n *\n * Time Complexity: O(1)\n */ remove(key) {\n const node = this.cache.get(key);\n if (!node) return;\n this.removeNode(node);\n this.cache.delete(key);\n this.totalSize -= node.size;\n }\n /**\n * Returns the number of items in the cache.\n */ get size() {\n return this.cache.size;\n }\n /**\n * Returns the current total size of all cached items.\n * This uses the custom size calculation if provided.\n */ get currentSize() {\n return this.totalSize;\n }\n}\n\n//# sourceMappingURL=lru-cache.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvbHJ1LWNhY2hlLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDRDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvbHJ1LWNhY2hlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTm9kZSBpbiB0aGUgZG91Ymx5LWxpbmtlZCBsaXN0IHVzZWQgZm9yIExSVSB0cmFja2luZy5cbiAqIEVhY2ggbm9kZSByZXByZXNlbnRzIGEgY2FjaGUgZW50cnkgd2l0aCBiaWRpcmVjdGlvbmFsIHBvaW50ZXJzLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTFJVQ2FjaGVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIExSVUNhY2hlO1xuICAgIH1cbn0pO1xuY2xhc3MgTFJVTm9kZSB7XG4gICAgY29uc3RydWN0b3Ioa2V5LCBkYXRhLCBzaXplKXtcbiAgICAgICAgdGhpcy5wcmV2ID0gbnVsbDtcbiAgICAgICAgdGhpcy5uZXh0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5rZXkgPSBrZXk7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHNpemU7XG4gICAgfVxufVxuLyoqXG4gKiBTZW50aW5lbCBub2RlIHVzZWQgZm9yIGhlYWQvdGFpbCBib3VuZGFyaWVzLlxuICogVGhlc2Ugbm9kZXMgZG9uJ3QgY29udGFpbiBhY3R1YWwgY2FjaGUgZGF0YSBidXQgc2ltcGxpZnkgbGlzdCBvcGVyYXRpb25zLlxuICovIGNsYXNzIFNlbnRpbmVsTm9kZSB7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgdGhpcy5wcmV2ID0gbnVsbDtcbiAgICAgICAgdGhpcy5uZXh0ID0gbnVsbDtcbiAgICB9XG59XG5jbGFzcyBMUlVDYWNoZSB7XG4gICAgY29uc3RydWN0b3IobWF4U2l6ZSwgY2FsY3VsYXRlU2l6ZSl7XG4gICAgICAgIHRoaXMuY2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMudG90YWxTaXplID0gMDtcbiAgICAgICAgdGhpcy5tYXhTaXplID0gbWF4U2l6ZTtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVTaXplID0gY2FsY3VsYXRlU2l6ZTtcbiAgICAgICAgLy8gQ3JlYXRlIHNlbnRpbmVsIG5vZGVzIHRvIHNpbXBsaWZ5IGRvdWJseS1saW5rZWQgbGlzdCBvcGVyYXRpb25zXG4gICAgICAgIC8vIEhFQUQgPC0+IFRBSUwgKGVtcHR5IGxpc3QpXG4gICAgICAgIHRoaXMuaGVhZCA9IG5ldyBTZW50aW5lbE5vZGUoKTtcbiAgICAgICAgdGhpcy50YWlsID0gbmV3IFNlbnRpbmVsTm9kZSgpO1xuICAgICAgICB0aGlzLmhlYWQubmV4dCA9IHRoaXMudGFpbDtcbiAgICAgICAgdGhpcy50YWlsLnByZXYgPSB0aGlzLmhlYWQ7XG4gICAgfVxuICAgIC8qKlxuICAgKiBBZGRzIGEgbm9kZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgaGVhZCAobWFya3MgYXMgbW9zdCByZWNlbnRseSB1c2VkKS5cbiAgICogVXNlZCB3aGVuIGluc2VydGluZyBuZXcgaXRlbXMgb3Igd2hlbiBhbiBpdGVtIGlzIGFjY2Vzc2VkLlxuICAgKiBQUkVDT05ESVRJT046IG5vZGUgbXVzdCBiZSBkaXNjb25uZWN0ZWQgKHByZXYvbmV4dCBzaG91bGQgYmUgbnVsbClcbiAgICovIGFkZFRvSGVhZChub2RlKSB7XG4gICAgICAgIG5vZGUucHJldiA9IHRoaXMuaGVhZDtcbiAgICAgICAgbm9kZS5uZXh0ID0gdGhpcy5oZWFkLm5leHQ7XG4gICAgICAgIC8vIGhlYWQubmV4dCBpcyBhbHdheXMgbm9uLW51bGwgKHBvaW50cyB0byB0YWlsIG9yIGFub3RoZXIgbm9kZSlcbiAgICAgICAgdGhpcy5oZWFkLm5leHQucHJldiA9IG5vZGU7XG4gICAgICAgIHRoaXMuaGVhZC5uZXh0ID0gbm9kZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJlbW92ZXMgYSBub2RlIGZyb20gaXRzIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGRvdWJseS1saW5rZWQgbGlzdC5cbiAgICogVXBkYXRlcyB0aGUgcHJldi9uZXh0IHBvaW50ZXJzIG9mIGFkamFjZW50IG5vZGVzIHRvIG1haW50YWluIGxpc3QgaW50ZWdyaXR5LlxuICAgKiBQUkVDT05ESVRJT046IG5vZGUgbXVzdCBiZSBjb25uZWN0ZWQgKHByZXYvbmV4dCBhcmUgbm9uLW51bGwpXG4gICAqLyByZW1vdmVOb2RlKG5vZGUpIHtcbiAgICAgICAgLy8gQ29ubmVjdGVkIG5vZGVzIGFsd2F5cyBoYXZlIG5vbi1udWxsIHByZXYvbmV4dFxuICAgICAgICBub2RlLnByZXYubmV4dCA9IG5vZGUubmV4dDtcbiAgICAgICAgbm9kZS5uZXh0LnByZXYgPSBub2RlLnByZXY7XG4gICAgfVxuICAgIC8qKlxuICAgKiBNb3ZlcyBhbiBleGlzdGluZyBub2RlIHRvIHRoZSBoZWFkIHBvc2l0aW9uIChtYXJrcyBhcyBtb3N0IHJlY2VudGx5IHVzZWQpLlxuICAgKiBUaGlzIGlzIHRoZSBjb3JlIExSVSBvcGVyYXRpb24gLSBhY2Nlc3NlZCBpdGVtcyBiZWNvbWUgbW9zdCByZWNlbnQuXG4gICAqLyBtb3ZlVG9IZWFkKG5vZGUpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVOb2RlKG5vZGUpO1xuICAgICAgICB0aGlzLmFkZFRvSGVhZChub2RlKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJlbW92ZXMgYW5kIHJldHVybnMgdGhlIGxlYXN0IHJlY2VudGx5IHVzZWQgbm9kZSAodGhlIG9uZSBiZWZvcmUgdGFpbCkuXG4gICAqIFRoaXMgaXMgY2FsbGVkIGR1cmluZyBldmljdGlvbiB3aGVuIHRoZSBjYWNoZSBleGNlZWRzIGNhcGFjaXR5LlxuICAgKiBQUkVDT05ESVRJT046IGNhY2hlIGlzIG5vdCBlbXB0eSAoZW5zdXJlZCBieSBjYWxsZXIpXG4gICAqLyByZW1vdmVUYWlsKCkge1xuICAgICAgICBjb25zdCBsYXN0Tm9kZSA9IHRoaXMudGFpbC5wcmV2O1xuICAgICAgICAvLyB0YWlsLnByZXYgaXMgYWx3YXlzIG5vbi1udWxsIGFuZCBhbHdheXMgTFJVTm9kZSB3aGVuIGNhY2hlIGlzIG5vdCBlbXB0eVxuICAgICAgICB0aGlzLnJlbW92ZU5vZGUobGFzdE5vZGUpO1xuICAgICAgICByZXR1cm4gbGFzdE5vZGU7XG4gICAgfVxuICAgIC8qKlxuICAgKiBTZXRzIGEga2V5LXZhbHVlIHBhaXIgaW4gdGhlIGNhY2hlLlxuICAgKiBJZiB0aGUga2V5IGV4aXN0cywgdXBkYXRlcyB0aGUgdmFsdWUgYW5kIG1vdmVzIHRvIGhlYWQuXG4gICAqIElmIG5ldywgYWRkcyBhdCBoZWFkIGFuZCBldmljdHMgZnJvbSB0YWlsIGlmIG5lY2Vzc2FyeS5cbiAgICpcbiAgICogVGltZSBDb21wbGV4aXR5OlxuICAgKiAtIE8oMSkgZm9yIHVuaWZvcm0gaXRlbSBzaXplc1xuICAgKiAtIE8oaykgd2hlcmUgayBpcyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGV2aWN0ZWQgKGNhbiBiZSBPKE4pIGZvciB2YXJpYWJsZSBzaXplcylcbiAgICovIHNldChrZXksIHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHNpemUgPSAodGhpcy5jYWxjdWxhdGVTaXplID09IG51bGwgPyB2b2lkIDAgOiB0aGlzLmNhbGN1bGF0ZVNpemUuY2FsbCh0aGlzLCB2YWx1ZSkpID8/IDE7XG4gICAgICAgIGlmIChzaXplID4gdGhpcy5tYXhTaXplKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1NpbmdsZSBpdGVtIHNpemUgZXhjZWVkcyBtYXhTaXplJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmNhY2hlLmdldChrZXkpO1xuICAgICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBleGlzdGluZyBub2RlOiBhZGp1c3Qgc2l6ZSBhbmQgbW92ZSB0byBoZWFkIChtb3N0IHJlY2VudClcbiAgICAgICAgICAgIGV4aXN0aW5nLmRhdGEgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudG90YWxTaXplID0gdGhpcy50b3RhbFNpemUgLSBleGlzdGluZy5zaXplICsgc2l6ZTtcbiAgICAgICAgICAgIGV4aXN0aW5nLnNpemUgPSBzaXplO1xuICAgICAgICAgICAgdGhpcy5tb3ZlVG9IZWFkKGV4aXN0aW5nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEFkZCBuZXcgbm9kZSBhdCBoZWFkIChtb3N0IHJlY2VudCBwb3NpdGlvbilcbiAgICAgICAgICAgIGNvbnN0IG5ld05vZGUgPSBuZXcgTFJVTm9kZShrZXksIHZhbHVlLCBzaXplKTtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgbmV3Tm9kZSk7XG4gICAgICAgICAgICB0aGlzLmFkZFRvSGVhZChuZXdOb2RlKTtcbiAgICAgICAgICAgIHRoaXMudG90YWxTaXplICs9IHNpemU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRXZpY3QgbGVhc3QgcmVjZW50bHkgdXNlZCBpdGVtcyB1bnRpbCB1bmRlciBjYXBhY2l0eVxuICAgICAgICB3aGlsZSh0aGlzLnRvdGFsU2l6ZSA+IHRoaXMubWF4U2l6ZSAmJiB0aGlzLmNhY2hlLnNpemUgPiAwKXtcbiAgICAgICAgICAgIGNvbnN0IHRhaWwgPSB0aGlzLnJlbW92ZVRhaWwoKTtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUuZGVsZXRlKHRhaWwua2V5KTtcbiAgICAgICAgICAgIHRoaXMudG90YWxTaXplIC09IHRhaWwuc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogQ2hlY2tzIGlmIGEga2V5IGV4aXN0cyBpbiB0aGUgY2FjaGUuXG4gICAqIFRoaXMgaXMgYSBwdXJlIHF1ZXJ5IG9wZXJhdGlvbiAtIGRvZXMgTk9UIHVwZGF0ZSBMUlUgb3JkZXIuXG4gICAqXG4gICAqIFRpbWUgQ29tcGxleGl0eTogTygxKVxuICAgKi8gaGFzKGtleSkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWNoZS5oYXMoa2V5KTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHJpZXZlcyBhIHZhbHVlIGJ5IGtleSBhbmQgbWFya3MgaXQgYXMgbW9zdCByZWNlbnRseSB1c2VkLlxuICAgKiBNb3ZpbmcgdG8gaGVhZCBtYWludGFpbnMgdGhlIExSVSBwcm9wZXJ0eSBmb3IgZnV0dXJlIGV2aWN0aW9ucy5cbiAgICpcbiAgICogVGltZSBDb21wbGV4aXR5OiBPKDEpXG4gICAqLyBnZXQoa2V5KSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmNhY2hlLmdldChrZXkpO1xuICAgICAgICBpZiAoIW5vZGUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIE1hcmsgYXMgbW9zdCByZWNlbnRseSB1c2VkIGJ5IG1vdmluZyB0byBoZWFkXG4gICAgICAgIHRoaXMubW92ZVRvSGVhZChub2RlKTtcbiAgICAgICAgcmV0dXJuIG5vZGUuZGF0YTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciB0aGUgY2FjaGUgZW50cmllcy4gVGhlIG9yZGVyIGlzIG91dHB1dHRlZCBpbiB0aGVcbiAgICogb3JkZXIgb2YgbW9zdCByZWNlbnRseSB1c2VkIHRvIGxlYXN0IHJlY2VudGx5IHVzZWQuXG4gICAqLyAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGxldCBjdXJyZW50ID0gdGhpcy5oZWFkLm5leHQ7XG4gICAgICAgIHdoaWxlKGN1cnJlbnQgJiYgY3VycmVudCAhPT0gdGhpcy50YWlsKXtcbiAgICAgICAgICAgIC8vIEJldHdlZW4gaGVhZCBhbmQgdGFpbCwgY3VycmVudCBpcyBhbHdheXMgTFJVTm9kZVxuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGN1cnJlbnQ7XG4gICAgICAgICAgICB5aWVsZCBbXG4gICAgICAgICAgICAgICAgbm9kZS5rZXksXG4gICAgICAgICAgICAgICAgbm9kZS5kYXRhXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogUmVtb3ZlcyBhIHNwZWNpZmljIGtleSBmcm9tIHRoZSBjYWNoZS5cbiAgICogVXBkYXRlcyBib3RoIHRoZSBoYXNoIG1hcCBhbmQgZG91Ymx5LWxpbmtlZCBsaXN0LlxuICAgKlxuICAgKiBUaW1lIENvbXBsZXhpdHk6IE8oMSlcbiAgICovIHJlbW92ZShrZXkpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuY2FjaGUuZ2V0KGtleSk7XG4gICAgICAgIGlmICghbm9kZSkgcmV0dXJuO1xuICAgICAgICB0aGlzLnJlbW92ZU5vZGUobm9kZSk7XG4gICAgICAgIHRoaXMuY2FjaGUuZGVsZXRlKGtleSk7XG4gICAgICAgIHRoaXMudG90YWxTaXplIC09IG5vZGUuc2l6ZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgY2FjaGUuXG4gICAqLyBnZXQgc2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGUuc2l6ZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdG90YWwgc2l6ZSBvZiBhbGwgY2FjaGVkIGl0ZW1zLlxuICAgKiBUaGlzIHVzZXMgdGhlIGN1c3RvbSBzaXplIGNhbGN1bGF0aW9uIGlmIHByb3ZpZGVkLlxuICAgKi8gZ2V0IGN1cnJlbnRTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b3RhbFNpemU7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1scnUtY2FjaGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/lru-cache.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/patch-fetch.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 NEXT_PATCH_SYMBOL: function() {\n return NEXT_PATCH_SYMBOL;\n },\n createPatchedFetcher: function() {\n return createPatchedFetcher;\n },\n patchFetch: function() {\n return patchFetch;\n },\n validateRevalidate: function() {\n return validateRevalidate;\n },\n validateTags: function() {\n return validateTags;\n }\n});\nconst _constants = __webpack_require__(/*! ./trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _tracer = __webpack_require__(/*! ./trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants1 = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _dedupefetch = __webpack_require__(/*! ./dedupe-fetch */ \"(rsc)/./node_modules/next/dist/server/lib/dedupe-fetch.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _responsecache = __webpack_require__(/*! ../response-cache */ \"(rsc)/./node_modules/next/dist/server/response-cache/index.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _cloneresponse = __webpack_require__(/*! ./clone-response */ \"(rsc)/./node_modules/next/dist/server/lib/clone-response.js\");\nconst isEdgeRuntime = \"nodejs\" === 'edge';\nconst NEXT_PATCH_SYMBOL = Symbol.for('next-patch');\nfunction isFetchPatched() {\n return globalThis[NEXT_PATCH_SYMBOL] === true;\n}\nfunction validateRevalidate(revalidateVal, route) {\n try {\n let normalizedRevalidate = undefined;\n if (revalidateVal === false) {\n normalizedRevalidate = _constants1.INFINITE_CACHE;\n } else if (typeof revalidateVal === 'number' && !isNaN(revalidateVal) && revalidateVal > -1) {\n normalizedRevalidate = revalidateVal;\n } else if (typeof revalidateVal !== 'undefined') {\n throw Object.defineProperty(new Error(`Invalid revalidate value \"${revalidateVal}\" on \"${route}\", must be a non-negative number or false`), \"__NEXT_ERROR_CODE\", {\n value: \"E179\",\n enumerable: false,\n configurable: true\n });\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(let i = 0; i < tags.length; i++){\n const tag = tags[i];\n if (typeof tag !== 'string') {\n invalidTags.push({\n tag,\n reason: 'invalid type, must be a string'\n });\n } else if (tag.length > _constants1.NEXT_CACHE_TAG_MAX_LENGTH) {\n invalidTags.push({\n tag,\n reason: `exceeded max length of ${_constants1.NEXT_CACHE_TAG_MAX_LENGTH}`\n });\n } else {\n validTags.push(tag);\n }\n if (validTags.length > _constants1.NEXT_CACHE_TAG_MAX_ITEMS) {\n console.warn(`Warning: exceeded max tag count for ${description}, dropped tags:`, tags.slice(i).join(', '));\n break;\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}\nfunction trackFetchMetric(workStore, ctx) {\n if (!workStore.shouldTrackFetchMetrics) {\n return;\n }\n workStore.fetchMetrics ??= [];\n workStore.fetchMetrics.push({\n ...ctx,\n end: performance.timeOrigin + performance.now(),\n idx: workStore.nextFetchId || 0\n });\n}\nasync function createCachedPrerenderResponse(res, cacheKey, incrementalCacheContext, incrementalCache, revalidate, handleUnlock) {\n // We are prerendering at build time or revalidate time with cacheComponents so we\n // need to buffer the response so we can guarantee it can be read in a\n // microtask.\n const bodyBuffer = await res.arrayBuffer();\n const fetchedData = {\n headers: Object.fromEntries(res.headers.entries()),\n body: Buffer.from(bodyBuffer).toString('base64'),\n status: res.status,\n url: res.url\n };\n // We can skip setting the serverComponentsHmrCache because we aren't in dev\n // mode.\n if (incrementalCacheContext) {\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate\n }, incrementalCacheContext);\n }\n await handleUnlock();\n // We return a new Response to the caller.\n return new Response(bodyBuffer, {\n headers: res.headers,\n status: res.status,\n statusText: res.statusText\n });\n}\nasync function createCachedDynamicResponse(workStore, res, cacheKey, incrementalCacheContext, incrementalCache, serverComponentsHmrCache, revalidate, input, handleUnlock) {\n // We're cloning the response using this utility because there exists a bug in\n // the undici library around response cloning. See the following pull request\n // for more details: https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(res);\n // We are dynamically rendering including dev mode. We want to return the\n // response to the caller as soon as possible because it might stream over a\n // very long time.\n const cacheSetPromise = cloned1.arrayBuffer().then(async (arrayBuffer)=>{\n const bodyBuffer = Buffer.from(arrayBuffer);\n const fetchedData = {\n headers: Object.fromEntries(cloned1.headers.entries()),\n body: bodyBuffer.toString('base64'),\n status: cloned1.status,\n url: cloned1.url\n };\n serverComponentsHmrCache == null ? void 0 : serverComponentsHmrCache.set(cacheKey, fetchedData);\n if (incrementalCacheContext) {\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate\n }, incrementalCacheContext);\n }\n }).catch((error)=>console.warn(`Failed to set fetch cache`, input, error)).finally(handleUnlock);\n const pendingRevalidateKey = `cache-set-${cacheKey}`;\n workStore.pendingRevalidates ??= {};\n if (pendingRevalidateKey in workStore.pendingRevalidates) {\n // there is already a pending revalidate entry that we need to await to\n // avoid race conditions\n await workStore.pendingRevalidates[pendingRevalidateKey];\n }\n workStore.pendingRevalidates[pendingRevalidateKey] = cacheSetPromise.finally(()=>{\n var _workStore_pendingRevalidates;\n // If the pending revalidate is not present in the store, then we have\n // nothing to delete.\n if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) {\n return;\n }\n delete workStore.pendingRevalidates[pendingRevalidateKey];\n });\n return cloned2;\n}\nfunction createPatchedFetcher(originFetch, { workAsyncStorage, workUnitAsyncStorage }) {\n // Create the patched fetch function.\n const patched = async function fetch(input, init) {\n var _init_method, _init_next;\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 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 = (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next.internal) === true;\n const hideSpan = process.env.NEXT_OTEL_FETCH_DISABLED === '1';\n // We don't track fetch metrics for internal fetches\n // so it's not critical that we have a start time, as it won't be recorded.\n // This is to workaround a flaky issue where performance APIs might\n // not be available and will require follow-up investigation.\n const fetchStart = isInternal ? undefined : performance.timeOrigin + performance.now();\n const workStore = workAsyncStorage.getStore();\n const workUnitStore = workUnitAsyncStorage.getStore();\n // During static generation we track cache reads so we can reason about when they fill\n let cacheSignal = workUnitStore ? (0, _workunitasyncstorageexternal.getCacheSignal)(workUnitStore) : null;\n if (cacheSignal) {\n cacheSignal.beginRead();\n }\n const result = (0, _tracer.getTracer)().trace(isInternal ? _constants.NextNodeServerSpan.internalFetch : _constants.AppRenderSpan.fetch, {\n hideSpan,\n kind: _tracer.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 // If this is an internal fetch, we should not do any special treatment.\n if (isInternal) {\n return originFetch(input, init);\n }\n // If the workStore is not available, we can't do any\n // special treatment of fetch, therefore fallback to the original\n // fetch implementation.\n if (!workStore) {\n return originFetch(input, init);\n }\n // We should also fallback to the original fetch implementation if we\n // are in draft mode, it does not constitute a static generation.\n if (workStore.isDraftMode) {\n return originFetch(input, init);\n }\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 let finalRevalidate = 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 const originalFetchRevalidate = getNextField('revalidate');\n let currentFetchRevalidate = originalFetchRevalidate;\n const tags = validateTags(getNextField('tags') || [], `fetch ${input.toString()}`);\n let revalidateStore;\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n // TODO: Stop accumulating tags in client prerender. (fallthrough)\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n revalidateStore = workUnitStore;\n break;\n case 'request':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n if (revalidateStore) {\n if (Array.isArray(tags)) {\n // Collect tags onto parent caches or parent prerenders.\n const collectedTags = revalidateStore.tags ?? (revalidateStore.tags = []);\n for (const tag of tags){\n if (!collectedTags.includes(tag)) {\n collectedTags.push(tag);\n }\n }\n }\n }\n const implicitTags = workUnitStore == null ? void 0 : workUnitStore.implicitTags;\n let pageFetchCacheMode = workStore.fetchCache;\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'unstable-cache':\n // Inside unstable-cache we treat it the same as force-no-store on\n // the page.\n pageFetchCacheMode = 'force-no-store';\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n break;\n default:\n workUnitStore;\n }\n }\n const isUsingNoStore = !!workStore.isUnstableNoStore;\n let currentFetchCacheConfig = getRequestMeta('cache');\n let cacheReason = '';\n let cacheWarning;\n if (typeof currentFetchCacheConfig === 'string' && typeof currentFetchRevalidate !== 'undefined') {\n // If the revalidate value conflicts with the cache value, we should warn the user and unset the conflicting values.\n const isConflictingRevalidate = // revalidate: 0 and cache: force-cache\n currentFetchCacheConfig === 'force-cache' && currentFetchRevalidate === 0 || // revalidate: >0 or revalidate: false and cache: no-store\n currentFetchCacheConfig === 'no-store' && (currentFetchRevalidate > 0 || currentFetchRevalidate === false);\n if (isConflictingRevalidate) {\n cacheWarning = `Specified \"cache: ${currentFetchCacheConfig}\" and \"revalidate: ${currentFetchRevalidate}\", only one should be specified.`;\n currentFetchCacheConfig = undefined;\n currentFetchRevalidate = undefined;\n }\n }\n const hasExplicitFetchCacheOptOut = // fetch config itself signals not to cache\n currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store' || // the fetch isn't explicitly caching and the segment level cache config signals not to cache\n // note: `pageFetchCacheMode` is also set by being in an unstable_cache context.\n pageFetchCacheMode === 'force-no-store' || pageFetchCacheMode === 'only-no-store';\n // If no explicit fetch cache mode is set, but dynamic = `force-dynamic` is set,\n // we shouldn't consider caching the fetch. This is because the `dynamic` cache\n // is considered a \"top-level\" cache mode, whereas something like `fetchCache` is more\n // fine-grained. Top-level modes are responsible for setting reasonable defaults for the\n // other configurations.\n const noFetchConfigAndForceDynamic = !pageFetchCacheMode && !currentFetchCacheConfig && !currentFetchRevalidate && workStore.forceDynamic;\n if (// force-cache was specified without a revalidate value. We set the revalidate value to false\n // which will signal the cache to not revalidate\n currentFetchCacheConfig === 'force-cache' && typeof currentFetchRevalidate === 'undefined') {\n currentFetchRevalidate = false;\n } else if (hasExplicitFetchCacheOptOut || noFetchConfigAndForceDynamic) {\n currentFetchRevalidate = 0;\n }\n if (currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store') {\n cacheReason = `cache: ${currentFetchCacheConfig}`;\n }\n finalRevalidate = validateRevalidate(currentFetchRevalidate, workStore.route);\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 /**\n * We automatically disable fetch caching under the following conditions:\n * - Fetch cache configs are not set. Specifically:\n * - A page fetch cache mode is not set (export const fetchCache=...)\n * - A fetch cache mode is not set in the fetch call (fetch(url, { cache: ... }))\n * or the fetch cache mode is set to 'default'\n * - A fetch revalidate value is not set in the fetch call (fetch(url, { revalidate: ... }))\n * - OR the fetch comes after a configuration that triggered dynamic rendering (e.g., reading cookies())\n * and the fetch was considered uncacheable (e.g., POST method or has authorization headers)\n */ const hasNoExplicitCacheConfig = // eslint-disable-next-line eqeqeq\n pageFetchCacheMode == undefined && // eslint-disable-next-line eqeqeq\n (currentFetchCacheConfig == undefined || // when considering whether to opt into the default \"no-cache\" fetch semantics,\n // a \"default\" cache config should be treated the same as no cache config\n currentFetchCacheConfig === 'default') && // eslint-disable-next-line eqeqeq\n currentFetchRevalidate == undefined;\n let autoNoCache = Boolean((hasUnCacheableHeader || isUnCacheableMethod) && (revalidateStore == null ? void 0 : revalidateStore.revalidate) === 0);\n let isImplicitBuildTimeCache = false;\n if (!autoNoCache && hasNoExplicitCacheConfig) {\n // We don't enable automatic no-cache behavior during build-time\n // prerendering so that we can still leverage the fetch cache between\n // export workers.\n if (workStore.isBuildTimePrerendering) {\n isImplicitBuildTimeCache = true;\n } else {\n autoNoCache = true;\n }\n }\n // If we have no cache config, and we're in Dynamic I/O prerendering,\n // it'll be a dynamic call. We don't have to issue that dynamic call.\n if (hasNoExplicitCacheConfig && workUnitStore !== undefined) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n // While we don't want to do caching in the client scope we know the\n // fetch will be dynamic for cacheComponents so we may as well avoid the\n // call here. (fallthrough)\n case 'prerender-client':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n switch(pageFetchCacheMode){\n case 'force-no-store':\n {\n cacheReason = 'fetchCache = force-no-store';\n break;\n }\n case 'only-no-store':\n {\n if (currentFetchCacheConfig === 'force-cache' || typeof finalRevalidate !== 'undefined' && finalRevalidate > 0) {\n throw Object.defineProperty(new Error(`cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`), \"__NEXT_ERROR_CODE\", {\n value: \"E448\",\n enumerable: false,\n configurable: true\n });\n }\n cacheReason = 'fetchCache = only-no-store';\n break;\n }\n case 'only-cache':\n {\n if (currentFetchCacheConfig === 'no-store') {\n throw Object.defineProperty(new Error(`cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`), \"__NEXT_ERROR_CODE\", {\n value: \"E521\",\n enumerable: false,\n configurable: true\n });\n }\n break;\n }\n case 'force-cache':\n {\n if (typeof currentFetchRevalidate === 'undefined' || currentFetchRevalidate === 0) {\n cacheReason = 'fetchCache = force-cache';\n finalRevalidate = _constants1.INFINITE_CACHE;\n }\n break;\n }\n case 'default-cache':\n case 'default-no-store':\n case 'auto':\n case undefined:\n break;\n default:\n pageFetchCacheMode;\n }\n if (typeof finalRevalidate === 'undefined') {\n if (pageFetchCacheMode === 'default-cache' && !isUsingNoStore) {\n finalRevalidate = _constants1.INFINITE_CACHE;\n cacheReason = 'fetchCache = default-cache';\n } else if (pageFetchCacheMode === 'default-no-store') {\n finalRevalidate = 0;\n cacheReason = 'fetchCache = default-no-store';\n } else if (isUsingNoStore) {\n finalRevalidate = 0;\n cacheReason = 'noStore call';\n } else if (autoNoCache) {\n finalRevalidate = 0;\n cacheReason = 'auto no cache';\n } else {\n // TODO: should we consider this case an invariant?\n cacheReason = 'auto cache';\n finalRevalidate = revalidateStore ? revalidateStore.revalidate : _constants1.INFINITE_CACHE;\n }\n } else if (!cacheReason) {\n cacheReason = `revalidate: ${finalRevalidate}`;\n }\n if (// when force static is configured we don't bail from\n // `revalidate: 0` values\n !(workStore.forceStatic && finalRevalidate === 0) && // we don't consider autoNoCache to switch to dynamic for ISR\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 revalidateStore && finalRevalidate < revalidateStore.revalidate) {\n // If we were setting the revalidate value to 0, we should try to\n // postpone instead first.\n if (finalRevalidate === 0) {\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\n // We only want to set the revalidate store's revalidate time if it\n // was explicitly set for the fetch call, i.e.\n // originalFetchRevalidate.\n if (revalidateStore && originalFetchRevalidate === finalRevalidate) {\n revalidateStore.revalidate = finalRevalidate;\n }\n }\n const isCacheableRevalidate = typeof finalRevalidate === 'number' && finalRevalidate > 0;\n let cacheKey;\n const { incrementalCache } = workStore;\n let isHmrRefresh = false;\n let serverComponentsHmrCache;\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n case 'cache':\n case 'private-cache':\n isHmrRefresh = workUnitStore.isHmrRefresh ?? false;\n serverComponentsHmrCache = workUnitStore.serverComponentsHmrCache;\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n if (incrementalCache && (isCacheableRevalidate || serverComponentsHmrCache)) {\n try {\n cacheKey = await incrementalCache.generateCacheKey(fetchUrl, isRequestInput ? input : init);\n } catch (err) {\n console.error(`Failed to generate cache key for`, input);\n }\n }\n const fetchIdx = workStore.nextFetchId ?? 1;\n workStore.nextFetchId = fetchIdx + 1;\n let handleUnlock = ()=>{};\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 { _ogBody, body, signal, ...otherInput } = init;\n init = {\n ...otherInput,\n body: _ogBody || body,\n signal: isStale ? undefined : signal\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 && fetchStart) {\n trackFetchMetric(workStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason: cacheReasonOverride || cacheReason,\n cacheStatus: finalRevalidate === 0 || cacheReasonOverride ? 'skip' : 'miss',\n cacheWarning,\n status: res.status,\n method: clonedInit.method || 'GET'\n });\n }\n if (res.status === 200 && incrementalCache && cacheKey && (isCacheableRevalidate || serverComponentsHmrCache)) {\n const normalizedRevalidate = finalRevalidate >= _constants1.INFINITE_CACHE ? _constants1.CACHE_ONE_YEAR : finalRevalidate;\n const incrementalCacheConfig = isCacheableRevalidate ? {\n fetchCache: true,\n fetchUrl,\n fetchIdx,\n tags,\n isImplicitBuildTimeCache\n } : undefined;\n switch(workUnitStore == null ? void 0 : workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n return createCachedPrerenderResponse(res, cacheKey, incrementalCacheConfig, incrementalCache, normalizedRevalidate, handleUnlock);\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case undefined:\n return createCachedDynamicResponse(workStore, res, cacheKey, incrementalCacheConfig, incrementalCache, serverComponentsHmrCache, normalizedRevalidate, input, handleUnlock);\n default:\n workUnitStore;\n }\n }\n // we had response that we determined shouldn't be cached so we return it\n // and don't cache it. This also needs to unlock the cache lock we acquired.\n await handleUnlock();\n return res;\n }).catch((error)=>{\n handleUnlock();\n throw error;\n });\n };\n let cacheReasonOverride;\n let isForegroundRevalidate = false;\n let isHmrRefreshCache = false;\n if (cacheKey && incrementalCache) {\n let cachedFetchData;\n if (isHmrRefresh && serverComponentsHmrCache) {\n cachedFetchData = serverComponentsHmrCache.get(cacheKey);\n isHmrRefreshCache = true;\n }\n if (isCacheableRevalidate && !cachedFetchData) {\n handleUnlock = await incrementalCache.lock(cacheKey);\n const entry = workStore.isOnDemandRevalidate ? null : await incrementalCache.get(cacheKey, {\n kind: _responsecache.IncrementalCacheKind.FETCH,\n revalidate: finalRevalidate,\n fetchUrl,\n fetchIdx,\n tags,\n softTags: implicitTags == null ? void 0 : implicitTags.tags\n });\n if (hasNoExplicitCacheConfig && workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n // We sometimes use the cache to dedupe fetches that do not\n // specify a cache configuration. In these cases we want to\n // make sure we still exclude them from prerenders if\n // cacheComponents is on so we introduce an artificial task boundary\n // here.\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\n break;\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\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 === _responsecache.CachedRouteKind.FETCH) {\n // when stale and is revalidating we wait for fresh data\n // so the revalidated entry has the updated data\n if (workStore.isRevalidate && entry.isStale) {\n isForegroundRevalidate = true;\n } else {\n if (entry.isStale) {\n workStore.pendingRevalidates ??= {};\n if (!workStore.pendingRevalidates[cacheKey]) {\n const pendingRevalidate = doOriginalFetch(true).then(async (response)=>({\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n })).finally(()=>{\n workStore.pendingRevalidates ??= {};\n delete workStore.pendingRevalidates[cacheKey || ''];\n });\n // Attach the empty catch here so we don't get a \"unhandled\n // promise rejection\" warning.\n pendingRevalidate.catch(console.error);\n workStore.pendingRevalidates[cacheKey] = pendingRevalidate;\n }\n }\n cachedFetchData = entry.value.data;\n }\n }\n }\n if (cachedFetchData) {\n if (fetchStart) {\n trackFetchMetric(workStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason,\n cacheStatus: isHmrRefreshCache ? 'hmr' : 'hit',\n cacheWarning,\n status: cachedFetchData.status || 200,\n method: (init == null ? void 0 : init.method) || 'GET'\n });\n }\n const response = new Response(Buffer.from(cachedFetchData.body, 'base64'), {\n headers: cachedFetchData.headers,\n status: cachedFetchData.status\n });\n Object.defineProperty(response, 'url', {\n value: cachedFetchData.url\n });\n return response;\n }\n }\n if (workStore.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 (cache === 'no-store') {\n // If enabled, we should bail out of static generation.\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `no-store fetch ${input} ${workStore.route}`);\n }\n const hasNextConfig = 'next' in init;\n const { next = {} } = init;\n if (typeof next.revalidate === 'number' && revalidateStore && next.revalidate < revalidateStore.revalidate) {\n if (next.revalidate === 0) {\n // If enabled, we should bail out of static generation.\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'prerender-legacy':\n case 'prerender-ppr':\n break;\n default:\n workUnitStore;\n }\n }\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\n if (!workStore.forceStatic || next.revalidate !== 0) {\n revalidateStore.revalidate = next.revalidate;\n }\n }\n if (hasNextConfig) delete init.next;\n }\n // if we are revalidating the whole page via time or on-demand and\n // the fetch cache entry is stale we should still de-dupe the\n // origin hit if it's a cache-able entry\n if (cacheKey && isForegroundRevalidate) {\n const pendingRevalidateKey = cacheKey;\n workStore.pendingRevalidates ??= {};\n let pendingRevalidate = workStore.pendingRevalidates[pendingRevalidateKey];\n if (pendingRevalidate) {\n const revalidatedResult = await pendingRevalidate;\n return new Response(revalidatedResult.body, {\n headers: revalidatedResult.headers,\n status: revalidatedResult.status,\n statusText: revalidatedResult.statusText\n });\n }\n // We used to just resolve the Response and clone it however for\n // static generation with cacheComponents we need the response to be able to\n // be resolved in a microtask and cloning the response will never have\n // a body that can resolve in a microtask in node (as observed through\n // experimentation) So instead we await the body and then when it is\n // available we construct manually cloned Response objects with the\n // body as an ArrayBuffer. This will be resolvable in a microtask\n // making it compatible with cacheComponents.\n const pendingResponse = doOriginalFetch(true, cacheReasonOverride)// We're cloning the response using this utility because there\n // exists a bug in the undici library around response cloning.\n // See the following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n .then(_cloneresponse.cloneResponse);\n pendingRevalidate = pendingResponse.then(async (responses)=>{\n const response = responses[0];\n return {\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n };\n }).finally(()=>{\n var _workStore_pendingRevalidates;\n // If the pending revalidate is not present in the store, then\n // we have nothing to delete.\n if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) {\n return;\n }\n delete workStore.pendingRevalidates[pendingRevalidateKey];\n });\n // Attach the empty catch here so we don't get a \"unhandled promise\n // rejection\" warning\n pendingRevalidate.catch(()=>{});\n workStore.pendingRevalidates[pendingRevalidateKey] = pendingRevalidate;\n return pendingResponse.then((responses)=>responses[1]);\n } else {\n return doOriginalFetch(false, cacheReasonOverride);\n }\n });\n if (cacheSignal) {\n try {\n return await result;\n } finally{\n if (cacheSignal) {\n cacheSignal.endRead();\n }\n }\n }\n return result;\n };\n // Attach the necessary properties to the patched fetch function.\n // We don't use this to determine if the fetch function has been patched,\n // but for external consumers to determine if the fetch function has been\n // patched.\n patched.__nextPatched = true;\n patched.__nextGetStaticStore = ()=>workAsyncStorage;\n patched._nextOriginalFetch = originFetch;\n globalThis[NEXT_PATCH_SYMBOL] = true;\n // Assign the function name also as a name property, so that it's preserved\n // even when mangling is enabled.\n Object.defineProperty(patched, 'name', {\n value: 'fetch',\n writable: false\n });\n return patched;\n}\nfunction patchFetch(options) {\n // If we've already patched fetch, we should not patch it again.\n if (isFetchPatched()) return;\n // Grab the original fetch function. We'll attach this so we can use it in\n // the patched fetch function.\n const original = (0, _dedupefetch.createDedupeFetch)(globalThis.fetch);\n // Set the global fetch to the patched fetch.\n globalThis.fetch = createPatchedFetcher(original, options);\n}\n\n//# sourceMappingURL=patch-fetch.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcGF0Y2gtZmV0Y2guanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsdUZBQW1CO0FBQzlDLGdCQUFnQixtQkFBTyxDQUFDLGlGQUFnQjtBQUN4QyxvQkFBb0IsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDakQsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxxQkFBcUIsbUJBQU8sQ0FBQyxpRkFBZ0I7QUFDN0Msc0NBQXNDLG1CQUFPLENBQUMsMEZBQWdEO0FBQzlGLHVCQUF1QixtQkFBTyxDQUFDLHdGQUFtQjtBQUNsRCxtQkFBbUIsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDaEQsdUJBQXVCLG1CQUFPLENBQUMscUZBQWtCO0FBQ2pELHNCQUFzQixRQUF3QjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1YsK0VBQStFLGNBQWMsUUFBUSxNQUFNO0FBQzNHO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLGlCQUFpQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFVBQVU7QUFDVjtBQUNBO0FBQ0Esa0RBQWtELHND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Q0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3BhdGNoLWZldGNoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTkVYVF9QQVRDSF9TWU1CT0w6IG51bGwsXG4gICAgY3JlYXRlUGF0Y2hlZEZldGNoZXI6IG51bGwsXG4gICAgcGF0Y2hGZXRjaDogbnVsbCxcbiAgICB2YWxpZGF0ZVJldmFsaWRhdGU6IG51bGwsXG4gICAgdmFsaWRhdGVUYWdzOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5FWFRfUEFUQ0hfU1lNQk9MOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUEFUQ0hfU1lNQk9MO1xuICAgIH0sXG4gICAgY3JlYXRlUGF0Y2hlZEZldGNoZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUGF0Y2hlZEZldGNoZXI7XG4gICAgfSxcbiAgICBwYXRjaEZldGNoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBhdGNoRmV0Y2g7XG4gICAgfSxcbiAgICB2YWxpZGF0ZVJldmFsaWRhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVSZXZhbGlkYXRlO1xuICAgIH0sXG4gICAgdmFsaWRhdGVUYWdzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlVGFncztcbiAgICB9XG59KTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfdHJhY2VyID0gcmVxdWlyZShcIi4vdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX2NvbnN0YW50czEgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzID0gcmVxdWlyZShcIi4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzXCIpO1xuY29uc3QgX2RlZHVwZWZldGNoID0gcmVxdWlyZShcIi4vZGVkdXBlLWZldGNoXCIpO1xuY29uc3QgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9yZXNwb25zZWNhY2hlID0gcmVxdWlyZShcIi4uL3Jlc3BvbnNlLWNhY2hlXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuY29uc3QgX2Nsb25lcmVzcG9uc2UgPSByZXF1aXJlKFwiLi9jbG9uZS1yZXNwb25zZVwiKTtcbmNvbnN0IGlzRWRnZVJ1bnRpbWUgPSBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJztcbmNvbnN0IE5FWFRfUEFUQ0hfU1lNQk9MID0gU3ltYm9sLmZvcignbmV4dC1wYXRjaCcpO1xuZnVuY3Rpb24gaXNGZXRjaFBhdGNoZWQoKSB7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXNbTkVYVF9QQVRDSF9TWU1CT0xdID09PSB0cnVlO1xufVxuZnVuY3Rpb24gdmFsaWRhdGVSZXZhbGlkYXRlKHJldmFsaWRhdGVWYWwsIHJvdXRlKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IG5vcm1hbGl6ZWRSZXZhbGlkYXRlID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAocmV2YWxpZGF0ZVZhbCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRSZXZhbGlkYXRlID0gX2NvbnN0YW50czEuSU5GSU5JVEVfQ0FDSEU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldmFsaWRhdGVWYWwgPT09ICdudW1iZXInICYmICFpc05hTihyZXZhbGlkYXRlVmFsKSAmJiByZXZhbGlkYXRlVmFsID4gLTEpIHtcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRSZXZhbGlkYXRlID0gcmV2YWxpZGF0ZVZhbDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmV2YWxpZGF0ZVZhbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFsaWQgcmV2YWxpZGF0ZSB2YWx1ZSBcIiR7cmV2YWxpZGF0ZVZhbH1cIiBvbiBcIiR7cm91dGV9XCIsIG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyIG9yIGZhbHNlYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUxNzlcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub3JtYWxpemVkUmV2YWxpZGF0ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gaGFuZGxlIGNsaWVudCBjb21wb25lbnQgZXJyb3IgZnJvbSBhdHRlbXB0aW5nIHRvIGNoZWNrIHJldmFsaWRhdGUgdmFsdWVcbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yICYmIGVyci5tZXNzYWdlLmluY2x1ZGVzKCdJbnZhbGlkIHJldmFsaWRhdGUnKSkge1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufVxuZnVuY3Rpb24gdmFsaWRhdGVUYWdzKHRhZ3MsIGRlc2NyaXB0aW9uKSB7XG4gICAgY29uc3QgdmFsaWRUYWdzID0gW107XG4gICAgY29uc3QgaW52YWxpZFRhZ3MgPSBbXTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IHRhZyA9IHRhZ3NbaV07XG4gICAgICAgIGlmICh0eXBlb2YgdGFnICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaW52YWxpZFRhZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgIHJlYXNvbjogJ2ludmFsaWQgdHlwZSwgbXVzdCBiZSBhIHN0cmluZydcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRhZy5sZW5ndGggPiBfY29uc3RhbnRzMS5ORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIKSB7XG4gICAgICAgICAgICBpbnZhbGlkVGFncy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgcmVhc29uOiBgZXhjZWVkZWQgbWF4IGxlbmd0aCBvZiAke19jb25zdGFudHMxLk5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEh9YFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWxpZFRhZ3MucHVzaCh0YWcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWxpZFRhZ3MubGVuZ3RoID4gX2NvbnN0YW50czEuTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFdhcm5pbmc6IGV4Y2VlZGVkIG1heCB0YWcgY291bnQgZm9yICR7ZGVzY3JpcHRpb259LCBkcm9wcGVkIHRhZ3M6YCwgdGFncy5zbGljZShpKS5qb2luKCcsICcpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChpbnZhbGlkVGFncy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgV2FybmluZzogaW52YWxpZCB0YWdzIHBhc3NlZCB0byAke2Rlc2NyaXB0aW9ufTogYCk7XG4gICAgICAgIGZvciAoY29uc3QgeyB0YWcsIHJlYXNvbiB9IG9mIGludmFsaWRUYWdzKXtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGB0YWc6IFwiJHt0YWd9XCIgJHtyZWFzb259YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkVGFncztcbn1cbmZ1bmN0aW9uIHRyYWNrRmV0Y2hNZXRyaWMod29ya1N0b3JlLCBjdHgpIHtcbiAgICBpZiAoIXdvcmtTdG9yZS5zaG91bGRUcmFja0ZldGNoTWV0cmljcykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHdvcmtTdG9yZS5mZXRjaE1ldHJpY3MgPz89IFtdO1xuICAgIHdvcmtTdG9yZS5mZXRjaE1ldHJpY3MucHVzaCh7XG4gICAgICAgIC4uLmN0eCxcbiAgICAgICAgZW5kOiBwZXJmb3JtYW5jZS50aW1lT3JpZ2luICsgcGVyZm9ybWFuY2Uubm93KCksXG4gICAgICAgIGlkeDogd29ya1N0b3JlLm5leHRGZXRjaElkIHx8IDBcbiAgICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUNhY2hlZFByZXJlbmRlclJlc3BvbnNlKHJlcywgY2FjaGVLZXksIGluY3JlbWVudGFsQ2FjaGVDb250ZXh0LCBpbmNyZW1lbnRhbENhY2hlLCByZXZhbGlkYXRlLCBoYW5kbGVVbmxvY2spIHtcbiAgICAvLyBXZSBhcmUgcHJlcmVuZGVyaW5nIGF0IGJ1aWxkIHRpbWUgb3IgcmV2YWxpZGF0ZSB0aW1lIHdpdGggY2FjaGVDb21wb25lbnRzIHNvIHdlXG4gICAgLy8gbmVlZCB0byBidWZmZXIgdGhlIHJlc3BvbnNlIHNvIHdlIGNhbiBndWFyYW50ZWUgaXQgY2FuIGJlIHJlYWQgaW4gYVxuICAgIC8vIG1pY3JvdGFzay5cbiAgICBjb25zdCBib2R5QnVmZmVyID0gYXdhaXQgcmVzLmFycmF5QnVmZmVyKCk7XG4gICAgY29uc3QgZmV0Y2hlZERhdGEgPSB7XG4gICAgICAgIGhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyhyZXMuaGVhZGVycy5lbnRyaWVzKCkpLFxuICAgICAgICBib2R5OiBCdWZmZXIuZnJvbShib2R5QnVmZmVyKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgIHN0YXR1czogcmVzLnN0YXR1cyxcbiAgICAgICAgdXJsOiByZXMudXJsXG4gICAgfTtcbiAgICAvLyBXZSBjYW4gc2tpcCBzZXR0aW5nIHRoZSBzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUgYmVjYXVzZSB3ZSBhcmVuJ3QgaW4gZGV2XG4gICAgLy8gbW9kZS5cbiAgICBpZiAoaW5jcmVtZW50YWxDYWNoZUNvbnRleHQpIHtcbiAgICAgICAgYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5zZXQoY2FjaGVLZXksIHtcbiAgICAgICAgICAgIGtpbmQ6IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5GRVRDSCxcbiAgICAgICAgICAgIGRhdGE6IGZldGNoZWREYXRhLFxuICAgICAgICAgICAgcmV2YWxpZGF0ZVxuICAgICAgICB9LCBpbmNyZW1lbnRhbENhY2hlQ29udGV4dCk7XG4gICAgfVxuICAgIGF3YWl0IGhhbmRsZVVubG9jaygpO1xuICAgIC8vIFdlIHJldHVybiBhIG5ldyBSZXNwb25zZSB0byB0aGUgY2FsbGVyLlxuICAgIHJldHVybiBuZXcgUmVzcG9uc2UoYm9keUJ1ZmZlciwge1xuICAgICAgICBoZWFkZXJzOiByZXMuaGVhZGVycyxcbiAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0OiByZXMuc3RhdHVzVGV4dFxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2FjaGVkRHluYW1pY1Jlc3BvbnNlKHdvcmtTdG9yZSwgcmVzLCBjYWNoZUtleSwgaW5jcmVtZW50YWxDYWNoZUNvbnRleHQsIGluY3JlbWVudGFsQ2FjaGUsIHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZSwgcmV2YWxpZGF0ZSwgaW5wdXQsIGhhbmRsZVVubG9jaykge1xuICAgIC8vIFdlJ3JlIGNsb25pbmcgdGhlIHJlc3BvbnNlIHVzaW5nIHRoaXMgdXRpbGl0eSBiZWNhdXNlIHRoZXJlIGV4aXN0cyBhIGJ1ZyBpblxuICAgIC8vIHRoZSB1bmRpY2kgbGlicmFyeSBhcm91bmQgcmVzcG9uc2UgY2xvbmluZy4gU2VlIHRoZSBmb2xsb3dpbmcgcHVsbCByZXF1ZXN0XG4gICAgLy8gZm9yIG1vcmUgZGV0YWlsczogaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL3B1bGwvNzMyNzRcbiAgICBjb25zdCBbY2xvbmVkMSwgY2xvbmVkMl0gPSAoMCwgX2Nsb25lcmVzcG9uc2UuY2xvbmVSZXNwb25zZSkocmVzKTtcbiAgICAvLyBXZSBhcmUgZHluYW1pY2FsbHkgcmVuZGVyaW5nIGluY2x1ZGluZyBkZXYgbW9kZS4gV2Ugd2FudCB0byByZXR1cm4gdGhlXG4gICAgLy8gcmVzcG9uc2UgdG8gdGhlIGNhbGxlciBhcyBzb29uIGFzIHBvc3NpYmxlIGJlY2F1c2UgaXQgbWlnaHQgc3RyZWFtIG92ZXIgYVxuICAgIC8vIHZlcnkgbG9uZyB0aW1lLlxuICAgIGNvbnN0IGNhY2hlU2V0UHJvbWlzZSA9IGNsb25lZDEuYXJyYXlCdWZmZXIoKS50aGVuKGFzeW5jIChhcnJheUJ1ZmZlcik9PntcbiAgICAgICAgY29uc3QgYm9keUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGFycmF5QnVmZmVyKTtcbiAgICAgICAgY29uc3QgZmV0Y2hlZERhdGEgPSB7XG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuZnJvbUVudHJpZXMoY2xvbmVkMS5oZWFkZXJzLmVudHJpZXMoKSksXG4gICAgICAgICAgICBib2R5OiBib2R5QnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgICAgIHN0YXR1czogY2xvbmVkMS5zdGF0dXMsXG4gICAgICAgICAgICB1cmw6IGNsb25lZDEudXJsXG4gICAgICAgIH07XG4gICAgICAgIHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZSA9PSBudWxsID8gdm9pZCAwIDogc2VydmVyQ29tcG9uZW50c0htckNhY2hlLnNldChjYWNoZUtleSwgZmV0Y2hlZERhdGEpO1xuICAgICAgICBpZiAoaW5jcmVtZW50YWxDYWNoZUNvbnRleHQpIHtcbiAgICAgICAgICAgIGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuc2V0KGNhY2hlS2V5LCB7XG4gICAgICAgICAgICAgICAga2luZDogX3Jlc3BvbnNlY2FjaGUuQ2FjaGVkUm91dGVLaW5kLkZFVENILFxuICAgICAgICAgICAgICAgIGRhdGE6IGZldGNoZWREYXRhLFxuICAgICAgICAgICAgICAgIHJldmFsaWRhdGVcbiAgICAgICAgICAgIH0sIGluY3JlbWVudGFsQ2FjaGVDb250ZXh0KTtcbiAgICAgICAgfVxuICAgIH0pLmNhdGNoKChlcnJvcik9PmNvbnNvbGUud2FybihgRmFpbGVkIHRvIHNldCBmZXRjaCBjYWNoZWAsIGlucHV0LCBlcnJvcikpLmZpbmFsbHkoaGFuZGxlVW5sb2NrKTtcbiAgICBjb25zdCBwZW5kaW5nUmV2YWxpZGF0ZUtleSA9IGBjYWNoZS1zZXQtJHtjYWNoZUtleX1gO1xuICAgIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXMgPz89IHt9O1xuICAgIGlmIChwZW5kaW5nUmV2YWxpZGF0ZUtleSBpbiB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzKSB7XG4gICAgICAgIC8vIHRoZXJlIGlzIGFscmVhZHkgYSBwZW5kaW5nIHJldmFsaWRhdGUgZW50cnkgdGhhdCB3ZSBuZWVkIHRvIGF3YWl0IHRvXG4gICAgICAgIC8vIGF2b2lkIHJhY2UgY29uZGl0aW9uc1xuICAgICAgICBhd2FpdCB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW3BlbmRpbmdSZXZhbGlkYXRlS2V5XTtcbiAgICB9XG4gICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV0gPSBjYWNoZVNldFByb21pc2UuZmluYWxseSgoKT0+e1xuICAgICAgICB2YXIgX3dvcmtTdG9yZV9wZW5kaW5nUmV2YWxpZGF0ZXM7XG4gICAgICAgIC8vIElmIHRoZSBwZW5kaW5nIHJldmFsaWRhdGUgaXMgbm90IHByZXNlbnQgaW4gdGhlIHN0b3JlLCB0aGVuIHdlIGhhdmVcbiAgICAgICAgLy8gbm90aGluZyB0byBkZWxldGUuXG4gICAgICAgIGlmICghKChfd29ya1N0b3JlX3BlbmRpbmdSZXZhbGlkYXRlcyA9IHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXMpID09IG51bGwgPyB2b2lkIDAgOiBfd29ya1N0b3JlX3BlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV0pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbcGVuZGluZ1JldmFsaWRhdGVLZXldO1xuICAgIH0pO1xuICAgIHJldHVybiBjbG9uZWQyO1xufVxuZnVuY3Rpb24gY3JlYXRlUGF0Y2hlZEZldGNoZXIob3JpZ2luRmV0Y2gsIHsgd29ya0FzeW5jU3RvcmFnZSwgd29ya1VuaXRBc3luY1N0b3JhZ2UgfSkge1xuICAgIC8vIENyZWF0ZSB0aGUgcGF0Y2hlZCBmZXRjaCBmdW5jdGlvbi5cbiAgICBjb25zdCBwYXRjaGVkID0gYXN5bmMgZnVuY3Rpb24gZmV0Y2goaW5wdXQsIGluaXQpIHtcbiAgICAgICAgdmFyIF9pbml0X21ldGhvZCwgX2luaXRfbmV4dDtcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwoaW5wdXQgaW5zdGFuY2VvZiBSZXF1ZXN0ID8gaW5wdXQudXJsIDogaW5wdXQpO1xuICAgICAgICAgICAgdXJsLnVzZXJuYW1lID0gJyc7XG4gICAgICAgICAgICB1cmwucGFzc3dvcmQgPSAnJztcbiAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgLy8gRXJyb3IgY2F1c2VkIGJ5IG1hbGZvcm1lZCBVUkwgc2hvdWxkIGJlIGhhbmRsZWQgYnkgbmF0aXZlIGZldGNoXG4gICAgICAgICAgICB1cmwgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmV0Y2hVcmwgPSAodXJsID09IG51bGwgPyB2b2lkIDAgOiB1cmwuaHJlZikgPz8gJyc7XG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfbWV0aG9kID0gaW5pdC5tZXRob2QpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9tZXRob2QudG9VcHBlckNhc2UoKSkgfHwgJ0dFVCc7XG4gICAgICAgIC8vIERvIGNyZWF0ZSBhIG5ldyBzcGFuIHRyYWNlIGZvciBpbnRlcm5hbCBmZXRjaGVzIGluIHRoZVxuICAgICAgICAvLyBub24tdmVyYm9zZSBtb2RlLlxuICAgICAgICBjb25zdCBpc0ludGVybmFsID0gKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IChfaW5pdF9uZXh0ID0gaW5pdC5uZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX2luaXRfbmV4dC5pbnRlcm5hbCkgPT09IHRydWU7XG4gICAgICAgIGNvbnN0IGhpZGVTcGFuID0gcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX0ZFVENIX0RJU0FCTEVEID09PSAnMSc7XG4gICAgICAgIC8vIFdlIGRvbid0IHRyYWNrIGZldGNoIG1ldHJpY3MgZm9yIGludGVybmFsIGZldGNoZXNcbiAgICAgICAgLy8gc28gaXQncyBub3QgY3JpdGljYWwgdGhhdCB3ZSBoYXZlIGEgc3RhcnQgdGltZSwgYXMgaXQgd29uJ3QgYmUgcmVjb3JkZWQuXG4gICAgICAgIC8vIFRoaXMgaXMgdG8gd29ya2Fyb3VuZCBhIGZsYWt5IGlzc3VlIHdoZXJlIHBlcmZvcm1hbmNlIEFQSXMgbWlnaHRcbiAgICAgICAgLy8gbm90IGJlIGF2YWlsYWJsZSBhbmQgd2lsbCByZXF1aXJlIGZvbGxvdy11cCBpbnZlc3RpZ2F0aW9uLlxuICAgICAgICBjb25zdCBmZXRjaFN0YXJ0ID0gaXNJbnRlcm5hbCA/IHVuZGVmaW5lZCA6IHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4gKyBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgY29uc3Qgd29ya1N0b3JlID0gd29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgLy8gRHVyaW5nIHN0YXRpYyBnZW5lcmF0aW9uIHdlIHRyYWNrIGNhY2hlIHJlYWRzIHNvIHdlIGNhbiByZWFzb24gYWJvdXQgd2hlbiB0aGV5IGZpbGxcbiAgICAgICAgbGV0IGNhY2hlU2lnbmFsID0gd29ya1VuaXRTdG9yZSA/ICgwLCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC5nZXRDYWNoZVNpZ25hbCkod29ya1VuaXRTdG9yZSkgOiBudWxsO1xuICAgICAgICBpZiAoY2FjaGVTaWduYWwpIHtcbiAgICAgICAgICAgIGNhY2hlU2lnbmFsLmJlZ2luUmVhZCgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS50cmFjZShpc0ludGVybmFsID8gX2NvbnN0YW50cy5OZXh0Tm9kZVNlcnZlclNwYW4uaW50ZXJuYWxGZXRjaCA6IF9jb25zdGFudHMuQXBwUmVuZGVyU3Bhbi5mZXRjaCwge1xuICAgICAgICAgICAgaGlkZVNwYW4sXG4gICAgICAgICAgICBraW5kOiBfdHJhY2VyLlNwYW5LaW5kLkNMSUVOVCxcbiAgICAgICAgICAgIHNwYW5OYW1lOiBbXG4gICAgICAgICAgICAgICAgJ2ZldGNoJyxcbiAgICAgICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICAgICAgZmV0Y2hVcmxcbiAgICAgICAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKSxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAnaHR0cC51cmwnOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAnaHR0cC5tZXRob2QnOiBtZXRob2QsXG4gICAgICAgICAgICAgICAgJ25ldC5wZWVyLm5hbWUnOiB1cmwgPT0gbnVsbCA/IHZvaWQgMCA6IHVybC5ob3N0bmFtZSxcbiAgICAgICAgICAgICAgICAnbmV0LnBlZXIucG9ydCc6ICh1cmwgPT0gbnVsbCA/IHZvaWQgMCA6IHVybC5wb3J0KSB8fCB1bmRlZmluZWRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgYXN5bmMgKCk9PntcbiAgICAgICAgICAgIHZhciBfZ2V0UmVxdWVzdE1ldGE7XG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGFuIGludGVybmFsIGZldGNoLCB3ZSBzaG91bGQgbm90IGRvIGFueSBzcGVjaWFsIHRyZWF0bWVudC5cbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbkZldGNoKGlucHV0LCBpbml0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSB3b3JrU3RvcmUgaXMgbm90IGF2YWlsYWJsZSwgd2UgY2FuJ3QgZG8gYW55XG4gICAgICAgICAgICAvLyBzcGVjaWFsIHRyZWF0bWVudCBvZiBmZXRjaCwgdGhlcmVmb3JlIGZhbGxiYWNrIHRvIHRoZSBvcmlnaW5hbFxuICAgICAgICAgICAgLy8gZmV0Y2ggaW1wbGVtZW50YXRpb24uXG4gICAgICAgICAgICBpZiAoIXdvcmtTdG9yZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5GZXRjaChpbnB1dCwgaW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXZSBzaG91bGQgYWxzbyBmYWxsYmFjayB0byB0aGUgb3JpZ2luYWwgZmV0Y2ggaW1wbGVtZW50YXRpb24gaWYgd2VcbiAgICAgICAgICAgIC8vIGFyZSBpbiBkcmFmdCBtb2RlLCBpdCBkb2VzIG5vdCBjb25zdGl0dXRlIGEgc3RhdGljIGdlbmVyYXRpb24uXG4gICAgICAgICAgICBpZiAod29ya1N0b3JlLmlzRHJhZnRNb2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbkZldGNoKGlucHV0LCBpbml0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzUmVxdWVzdElucHV0ID0gaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgaW5wdXQubWV0aG9kID09PSAnc3RyaW5nJztcbiAgICAgICAgICAgIGNvbnN0IGdldFJlcXVlc3RNZXRhID0gKGZpZWxkKT0+e1xuICAgICAgICAgICAgICAgIC8vIElmIHJlcXVlc3QgaW5wdXQgaXMgcHJlc2VudCBidXQgaW5pdCBpcyBub3QsIHJldHJpZXZlIGZyb20gaW5wdXQgZmlyc3QuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBpbml0ID09IG51bGwgPyB2b2lkIDAgOiBpbml0W2ZpZWxkXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgfHwgKGlzUmVxdWVzdElucHV0ID8gaW5wdXRbZmllbGRdIDogbnVsbCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0IGZpbmFsUmV2YWxpZGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGdldE5leHRGaWVsZCA9IChmaWVsZCk9PntcbiAgICAgICAgICAgICAgICB2YXIgX2luaXRfbmV4dCwgX2luaXRfbmV4dDEsIF9pbnB1dF9uZXh0O1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IChfaW5pdF9uZXh0ID0gaW5pdC5uZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX2luaXRfbmV4dFtmaWVsZF0pICE9PSAndW5kZWZpbmVkJyA/IGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IChfaW5pdF9uZXh0MSA9IGluaXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X25leHQxW2ZpZWxkXSA6IGlzUmVxdWVzdElucHV0ID8gKF9pbnB1dF9uZXh0ID0gaW5wdXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbnB1dF9uZXh0W2ZpZWxkXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvLyBSZXF1ZXN0SW5pdCBkb2Vzbid0IGtlZXAgZXh0cmEgZmllbGRzIGUuZy4gbmV4dCBzbyBpdCdzXG4gICAgICAgICAgICAvLyBvbmx5IGF2YWlsYWJsZSBpZiBpbml0IGlzIHVzZWQgc2VwYXJhdGVcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsRmV0Y2hSZXZhbGlkYXRlID0gZ2V0TmV4dEZpZWxkKCdyZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICBsZXQgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9IG9yaWdpbmFsRmV0Y2hSZXZhbGlkYXRlO1xuICAgICAgICAgICAgY29uc3QgdGFncyA9IHZhbGlkYXRlVGFncyhnZXROZXh0RmllbGQoJ3RhZ3MnKSB8fCBbXSwgYGZldGNoICR7aW5wdXQudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgICAgIGxldCByZXZhbGlkYXRlU3RvcmU7XG4gICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IFN0b3AgYWNjdW11bGF0aW5nIHRhZ3MgaW4gY2xpZW50IHByZXJlbmRlci4gKGZhbGx0aHJvdWdoKVxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZVN0b3JlID0gd29ya1VuaXRTdG9yZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXZhbGlkYXRlU3RvcmUpIHtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0YWdzKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBDb2xsZWN0IHRhZ3Mgb250byBwYXJlbnQgY2FjaGVzIG9yIHBhcmVudCBwcmVyZW5kZXJzLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xsZWN0ZWRUYWdzID0gcmV2YWxpZGF0ZVN0b3JlLnRhZ3MgPz8gKHJldmFsaWRhdGVTdG9yZS50YWdzID0gW10pO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRhZyBvZiB0YWdzKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY29sbGVjdGVkVGFncy5pbmNsdWRlcyh0YWcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGVkVGFncy5wdXNoKHRhZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpbXBsaWNpdFRhZ3MgPSB3b3JrVW5pdFN0b3JlID09IG51bGwgPyB2b2lkIDAgOiB3b3JrVW5pdFN0b3JlLmltcGxpY2l0VGFncztcbiAgICAgICAgICAgIGxldCBwYWdlRmV0Y2hDYWNoZU1vZGUgPSB3b3JrU3RvcmUuZmV0Y2hDYWNoZTtcbiAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluc2lkZSB1bnN0YWJsZS1jYWNoZSB3ZSB0cmVhdCBpdCB0aGUgc2FtZSBhcyBmb3JjZS1uby1zdG9yZSBvblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHBhZ2UuXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlRmV0Y2hDYWNoZU1vZGUgPSAnZm9yY2Utbm8tc3RvcmUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaXNVc2luZ05vU3RvcmUgPSAhIXdvcmtTdG9yZS5pc1Vuc3RhYmxlTm9TdG9yZTtcbiAgICAgICAgICAgIGxldCBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9IGdldFJlcXVlc3RNZXRhKCdjYWNoZScpO1xuICAgICAgICAgICAgbGV0IGNhY2hlUmVhc29uID0gJyc7XG4gICAgICAgICAgICBsZXQgY2FjaGVXYXJuaW5nO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHJldmFsaWRhdGUgdmFsdWUgY29uZmxpY3RzIHdpdGggdGhlIGNhY2hlIHZhbHVlLCB3ZSBzaG91bGQgd2FybiB0aGUgdXNlciBhbmQgdW5zZXQgdGhlIGNvbmZsaWN0aW5nIHZhbHVlcy5cbiAgICAgICAgICAgICAgICBjb25zdCBpc0NvbmZsaWN0aW5nUmV2YWxpZGF0ZSA9IC8vIHJldmFsaWRhdGU6IDAgYW5kIGNhY2hlOiBmb3JjZS1jYWNoZVxuICAgICAgICAgICAgICAgIGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnZm9yY2UtY2FjaGUnICYmIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09IDAgfHwgLy8gcmV2YWxpZGF0ZTogPjAgb3IgcmV2YWxpZGF0ZTogZmFsc2UgYW5kIGNhY2hlOiBuby1zdG9yZVxuICAgICAgICAgICAgICAgIGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnbm8tc3RvcmUnICYmIChjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID4gMCB8fCBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID09PSBmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzQ29uZmxpY3RpbmdSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlV2FybmluZyA9IGBTcGVjaWZpZWQgXCJjYWNoZTogJHtjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZ31cIiBhbmQgXCJyZXZhbGlkYXRlOiAke2N1cnJlbnRGZXRjaFJldmFsaWRhdGV9XCIsIG9ubHkgb25lIHNob3VsZCBiZSBzcGVjaWZpZWQuYDtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaGFzRXhwbGljaXRGZXRjaENhY2hlT3B0T3V0ID0gLy8gZmV0Y2ggY29uZmlnIGl0c2VsZiBzaWduYWxzIG5vdCB0byBjYWNoZVxuICAgICAgICAgICAgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICduby1jYWNoZScgfHwgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICduby1zdG9yZScgfHwgLy8gdGhlIGZldGNoIGlzbid0IGV4cGxpY2l0bHkgY2FjaGluZyBhbmQgdGhlIHNlZ21lbnQgbGV2ZWwgY2FjaGUgY29uZmlnIHNpZ25hbHMgbm90IHRvIGNhY2hlXG4gICAgICAgICAgICAvLyBub3RlOiBgcGFnZUZldGNoQ2FjaGVNb2RlYCBpcyBhbHNvIHNldCBieSBiZWluZyBpbiBhbiB1bnN0YWJsZV9jYWNoZSBjb250ZXh0LlxuICAgICAgICAgICAgcGFnZUZldGNoQ2FjaGVNb2RlID09PSAnZm9yY2Utbm8tc3RvcmUnIHx8IHBhZ2VGZXRjaENhY2hlTW9kZSA9PT0gJ29ubHktbm8tc3RvcmUnO1xuICAgICAgICAgICAgLy8gSWYgbm8gZXhwbGljaXQgZmV0Y2ggY2FjaGUgbW9kZSBpcyBzZXQsIGJ1dCBkeW5hbWljID0gYGZvcmNlLWR5bmFtaWNgIGlzIHNldCxcbiAgICAgICAgICAgIC8vIHdlIHNob3VsZG4ndCBjb25zaWRlciBjYWNoaW5nIHRoZSBmZXRjaC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBgZHluYW1pY2AgY2FjaGVcbiAgICAgICAgICAgIC8vIGlzIGNvbnNpZGVyZWQgYSBcInRvcC1sZXZlbFwiIGNhY2hlIG1vZGUsIHdoZXJlYXMgc29tZXRoaW5nIGxpa2UgYGZldGNoQ2FjaGVgIGlzIG1vcmVcbiAgICAgICAgICAgIC8vIGZpbmUtZ3JhaW5lZC4gVG9wLWxldmVsIG1vZGVzIGFyZSByZXNwb25zaWJsZSBmb3Igc2V0dGluZyByZWFzb25hYmxlIGRlZmF1bHRzIGZvciB0aGVcbiAgICAgICAgICAgIC8vIG90aGVyIGNvbmZpZ3VyYXRpb25zLlxuICAgICAgICAgICAgY29uc3Qgbm9GZXRjaENvbmZpZ0FuZEZvcmNlRHluYW1pYyA9ICFwYWdlRmV0Y2hDYWNoZU1vZGUgJiYgIWN1cnJlbnRGZXRjaENhY2hlQ29uZmlnICYmICFjdXJyZW50RmV0Y2hSZXZhbGlkYXRlICYmIHdvcmtTdG9yZS5mb3JjZUR5bmFtaWM7XG4gICAgICAgICAgICBpZiAoLy8gZm9yY2UtY2FjaGUgd2FzIHNwZWNpZmllZCB3aXRob3V0IGEgcmV2YWxpZGF0ZSB2YWx1ZS4gV2Ugc2V0IHRoZSByZXZhbGlkYXRlIHZhbHVlIHRvIGZhbHNlXG4gICAgICAgICAgICAvLyB3aGljaCB3aWxsIHNpZ25hbCB0aGUgY2FjaGUgdG8gbm90IHJldmFsaWRhdGVcbiAgICAgICAgICAgIGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnZm9yY2UtY2FjaGUnICYmIHR5cGVvZiBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzRXhwbGljaXRGZXRjaENhY2hlT3B0T3V0IHx8IG5vRmV0Y2hDb25maWdBbmRGb3JjZUR5bmFtaWMpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ25vLWNhY2hlJyB8fCBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ25vLXN0b3JlJykge1xuICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gYGNhY2hlOiAke2N1cnJlbnRGZXRjaENhY2hlQ29uZmlnfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbFJldmFsaWRhdGUgPSB2YWxpZGF0ZVJldmFsaWRhdGUoY3VycmVudEZldGNoUmV2YWxpZGF0ZSwgd29ya1N0b3JlLnJvdXRlKTtcbiAgICAgICAgICAgIGNvbnN0IF9oZWFkZXJzID0gZ2V0UmVxdWVzdE1ldGEoJ2hlYWRlcnMnKTtcbiAgICAgICAgICAgIGNvbnN0IGluaXRIZWFkZXJzID0gdHlwZW9mIChfaGVhZGVycyA9PSBudWxsID8gdm9pZCAwIDogX2hlYWRlcnMuZ2V0KSA9PT0gJ2Z1bmN0aW9uJyA/IF9oZWFkZXJzIDogbmV3IEhlYWRlcnMoX2hlYWRlcnMgfHwge30pO1xuICAgICAgICAgICAgY29uc3QgaGFzVW5DYWNoZWFibGVIZWFkZXIgPSBpbml0SGVhZGVycy5nZXQoJ2F1dGhvcml6YXRpb24nKSB8fCBpbml0SGVhZGVycy5nZXQoJ2Nvb2tpZScpO1xuICAgICAgICAgICAgY29uc3QgaXNVbkNhY2hlYWJsZU1ldGhvZCA9ICFbXG4gICAgICAgICAgICAgICAgJ2dldCcsXG4gICAgICAgICAgICAgICAgJ2hlYWQnXG4gICAgICAgICAgICBdLmluY2x1ZGVzKCgoX2dldFJlcXVlc3RNZXRhID0gZ2V0UmVxdWVzdE1ldGEoJ21ldGhvZCcpKSA9PSBudWxsID8gdm9pZCAwIDogX2dldFJlcXVlc3RNZXRhLnRvTG93ZXJDYXNlKCkpIHx8ICdnZXQnKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgKiBXZSBhdXRvbWF0aWNhbGx5IGRpc2FibGUgZmV0Y2ggY2FjaGluZyB1bmRlciB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gICAgICAgICAqIC0gRmV0Y2ggY2FjaGUgY29uZmlncyBhcmUgbm90IHNldC4gU3BlY2lmaWNhbGx5OlxuICAgICAgICAgKiAgICAtIEEgcGFnZSBmZXRjaCBjYWNoZSBtb2RlIGlzIG5vdCBzZXQgKGV4cG9ydCBjb25zdCBmZXRjaENhY2hlPS4uLilcbiAgICAgICAgICogICAgLSBBIGZldGNoIGNhY2hlIG1vZGUgaXMgbm90IHNldCBpbiB0aGUgZmV0Y2ggY2FsbCAoZmV0Y2godXJsLCB7IGNhY2hlOiAuLi4gfSkpXG4gICAgICAgICAqICAgICAgb3IgdGhlIGZldGNoIGNhY2hlIG1vZGUgaXMgc2V0IHRvICdkZWZhdWx0J1xuICAgICAgICAgKiAgICAtIEEgZmV0Y2ggcmV2YWxpZGF0ZSB2YWx1ZSBpcyBub3Qgc2V0IGluIHRoZSBmZXRjaCBjYWxsIChmZXRjaCh1cmwsIHsgcmV2YWxpZGF0ZTogLi4uIH0pKVxuICAgICAgICAgKiAtIE9SIHRoZSBmZXRjaCBjb21lcyBhZnRlciBhIGNvbmZpZ3VyYXRpb24gdGhhdCB0cmlnZ2VyZWQgZHluYW1pYyByZW5kZXJpbmcgKGUuZy4sIHJlYWRpbmcgY29va2llcygpKVxuICAgICAgICAgKiAgIGFuZCB0aGUgZmV0Y2ggd2FzIGNvbnNpZGVyZWQgdW5jYWNoZWFibGUgKGUuZy4sIFBPU1QgbWV0aG9kIG9yIGhhcyBhdXRob3JpemF0aW9uIGhlYWRlcnMpXG4gICAgICAgICAqLyBjb25zdCBoYXNOb0V4cGxpY2l0Q2FjaGVDb25maWcgPSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgICAgICAgICBwYWdlRmV0Y2hDYWNoZU1vZGUgPT0gdW5kZWZpbmVkICYmIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgICAgIChjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PSB1bmRlZmluZWQgfHwgLy8gd2hlbiBjb25zaWRlcmluZyB3aGV0aGVyIHRvIG9wdCBpbnRvIHRoZSBkZWZhdWx0IFwibm8tY2FjaGVcIiBmZXRjaCBzZW1hbnRpY3MsXG4gICAgICAgICAgICAvLyBhIFwiZGVmYXVsdFwiIGNhY2hlIGNvbmZpZyBzaG91bGQgYmUgdHJlYXRlZCB0aGUgc2FtZSBhcyBubyBjYWNoZSBjb25maWdcbiAgICAgICAgICAgIGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnZGVmYXVsdCcpICYmIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgICAgIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgbGV0IGF1dG9Ob0NhY2hlID0gQm9vbGVhbigoaGFzVW5DYWNoZWFibGVIZWFkZXIgfHwgaXNVbkNhY2hlYWJsZU1ldGhvZCkgJiYgKHJldmFsaWRhdGVTdG9yZSA9PSBudWxsID8gdm9pZCAwIDogcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUpID09PSAwKTtcbiAgICAgICAgICAgIGxldCBpc0ltcGxpY2l0QnVpbGRUaW1lQ2FjaGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICghYXV0b05vQ2FjaGUgJiYgaGFzTm9FeHBsaWNpdENhY2hlQ29uZmlnKSB7XG4gICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgZW5hYmxlIGF1dG9tYXRpYyBuby1jYWNoZSBiZWhhdmlvciBkdXJpbmcgYnVpbGQtdGltZVxuICAgICAgICAgICAgICAgIC8vIHByZXJlbmRlcmluZyBzbyB0aGF0IHdlIGNhbiBzdGlsbCBsZXZlcmFnZSB0aGUgZmV0Y2ggY2FjaGUgYmV0d2VlblxuICAgICAgICAgICAgICAgIC8vIGV4cG9ydCB3b3JrZXJzLlxuICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNJbXBsaWNpdEJ1aWxkVGltZUNhY2hlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhdXRvTm9DYWNoZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBubyBjYWNoZSBjb25maWcsIGFuZCB3ZSdyZSBpbiBEeW5hbWljIEkvTyBwcmVyZW5kZXJpbmcsXG4gICAgICAgICAgICAvLyBpdCdsbCBiZSBhIGR5bmFtaWMgY2FsbC4gV2UgZG9uJ3QgaGF2ZSB0byBpc3N1ZSB0aGF0IGR5bmFtaWMgY2FsbC5cbiAgICAgICAgICAgIGlmIChoYXNOb0V4cGxpY2l0Q2FjaGVDb25maWcgJiYgd29ya1VuaXRTdG9yZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hpbGUgd2UgZG9uJ3Qgd2FudCB0byBkbyBjYWNoaW5nIGluIHRoZSBjbGllbnQgc2NvcGUgd2Uga25vdyB0aGVcbiAgICAgICAgICAgICAgICAgICAgLy8gZmV0Y2ggd2lsbCBiZSBkeW5hbWljIGZvciBjYWNoZUNvbXBvbmVudHMgc28gd2UgbWF5IGFzIHdlbGwgYXZvaWQgdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIGNhbGwgaGVyZS4gKGZhbGx0aHJvdWdoKVxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZVNpZ25hbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsLmVuZFJlYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVNpZ25hbCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgd29ya1N0b3JlLnJvdXRlLCAnZmV0Y2goKScpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoKHBhZ2VGZXRjaENhY2hlTW9kZSl7XG4gICAgICAgICAgICAgICAgY2FzZSAnZm9yY2Utbm8tc3RvcmUnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9ICdmZXRjaENhY2hlID0gZm9yY2Utbm8tc3RvcmUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdvbmx5LW5vLXN0b3JlJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnZm9yY2UtY2FjaGUnIHx8IHR5cGVvZiBmaW5hbFJldmFsaWRhdGUgIT09ICd1bmRlZmluZWQnICYmIGZpbmFsUmV2YWxpZGF0ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBjYWNoZTogJ2ZvcmNlLWNhY2hlJyB1c2VkIG9uIGZldGNoIGZvciAke2ZldGNoVXJsfSB3aXRoICdleHBvcnQgY29uc3QgZmV0Y2hDYWNoZSA9ICdvbmx5LW5vLXN0b3JlJ2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTQ0OFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9ICdmZXRjaENhY2hlID0gb25seS1uby1zdG9yZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ29ubHktY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICduby1zdG9yZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBjYWNoZTogJ25vLXN0b3JlJyB1c2VkIG9uIGZldGNoIGZvciAke2ZldGNoVXJsfSB3aXRoICdleHBvcnQgY29uc3QgZmV0Y2hDYWNoZSA9ICdvbmx5LWNhY2hlJ2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTUyMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ2ZvcmNlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID09PSAndW5kZWZpbmVkJyB8fCBjdXJyZW50RmV0Y2hSZXZhbGlkYXRlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnZmV0Y2hDYWNoZSA9IGZvcmNlLWNhY2hlJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbFJldmFsaWRhdGUgPSBfY29uc3RhbnRzMS5JTkZJTklURV9DQUNIRTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnZGVmYXVsdC1jYWNoZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZGVmYXVsdC1uby1zdG9yZSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnYXV0byc6XG4gICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHBhZ2VGZXRjaENhY2hlTW9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgZmluYWxSZXZhbGlkYXRlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGlmIChwYWdlRmV0Y2hDYWNoZU1vZGUgPT09ICdkZWZhdWx0LWNhY2hlJyAmJiAhaXNVc2luZ05vU3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gX2NvbnN0YW50czEuSU5GSU5JVEVfQ0FDSEU7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2ZldGNoQ2FjaGUgPSBkZWZhdWx0LWNhY2hlJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhZ2VGZXRjaENhY2hlTW9kZSA9PT0gJ2RlZmF1bHQtbm8tc3RvcmUnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2ZldGNoQ2FjaGUgPSBkZWZhdWx0LW5vLXN0b3JlJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVXNpbmdOb1N0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ25vU3RvcmUgY2FsbCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhdXRvTm9DYWNoZSkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbFJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9ICdhdXRvIG5vIGNhY2hlJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBzaG91bGQgd2UgY29uc2lkZXIgdGhpcyBjYXNlIGFuIGludmFyaWFudD9cbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnYXV0byBjYWNoZSc7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IHJldmFsaWRhdGVTdG9yZSA/IHJldmFsaWRhdGVTdG9yZS5yZXZhbGlkYXRlIDogX2NvbnN0YW50czEuSU5GSU5JVEVfQ0FDSEU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghY2FjaGVSZWFzb24pIHtcbiAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9IGByZXZhbGlkYXRlOiAke2ZpbmFsUmV2YWxpZGF0ZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKC8vIHdoZW4gZm9yY2Ugc3RhdGljIGlzIGNvbmZpZ3VyZWQgd2UgZG9uJ3QgYmFpbCBmcm9tXG4gICAgICAgICAgICAvLyBgcmV2YWxpZGF0ZTogMGAgdmFsdWVzXG4gICAgICAgICAgICAhKHdvcmtTdG9yZS5mb3JjZVN0YXRpYyAmJiBmaW5hbFJldmFsaWRhdGUgPT09IDApICYmIC8vIHdlIGRvbid0IGNvbnNpZGVyIGF1dG9Ob0NhY2hlIHRvIHN3aXRjaCB0byBkeW5hbWljIGZvciBJU1JcbiAgICAgICAgICAgICFhdXRvTm9DYWNoZSAmJiAvLyBJZiB0aGUgcmV2YWxpZGF0ZSB2YWx1ZSBpc24ndCBjdXJyZW50bHkgc2V0IG9yIHRoZSB2YWx1ZSBpcyBsZXNzXG4gICAgICAgICAgICAvLyB0aGFuIHRoZSBjdXJyZW50IHJldmFsaWRhdGUgdmFsdWUsIHdlIHNob3VsZCB1cGRhdGUgdGhlIHJldmFsaWRhdGVcbiAgICAgICAgICAgIC8vIHZhbHVlLlxuICAgICAgICAgICAgcmV2YWxpZGF0ZVN0b3JlICYmIGZpbmFsUmV2YWxpZGF0ZSA8IHJldmFsaWRhdGVTdG9yZS5yZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgd2Ugd2VyZSBzZXR0aW5nIHRoZSByZXZhbGlkYXRlIHZhbHVlIHRvIDAsIHdlIHNob3VsZCB0cnkgdG9cbiAgICAgICAgICAgICAgICAvLyBwb3N0cG9uZSBpbnN0ZWFkIGZpcnN0LlxuICAgICAgICAgICAgICAgIGlmIChmaW5hbFJldmFsaWRhdGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVTaWduYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsLmVuZFJlYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgd29ya1N0b3JlLnJvdXRlLCAnZmV0Y2goKScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLm1hcmtDdXJyZW50U2NvcGVBc0R5bmFtaWMpKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSwgYHJldmFsaWRhdGU6IDAgZmV0Y2ggJHtpbnB1dH0gJHt3b3JrU3RvcmUucm91dGV9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFdlIG9ubHkgd2FudCB0byBzZXQgdGhlIHJldmFsaWRhdGUgc3RvcmUncyByZXZhbGlkYXRlIHRpbWUgaWYgaXRcbiAgICAgICAgICAgICAgICAvLyB3YXMgZXhwbGljaXRseSBzZXQgZm9yIHRoZSBmZXRjaCBjYWxsLCBpLmUuXG4gICAgICAgICAgICAgICAgLy8gb3JpZ2luYWxGZXRjaFJldmFsaWRhdGUuXG4gICAgICAgICAgICAgICAgaWYgKHJldmFsaWRhdGVTdG9yZSAmJiBvcmlnaW5hbEZldGNoUmV2YWxpZGF0ZSA9PT0gZmluYWxSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGVTdG9yZS5yZXZhbGlkYXRlID0gZmluYWxSZXZhbGlkYXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSA9IHR5cGVvZiBmaW5hbFJldmFsaWRhdGUgPT09ICdudW1iZXInICYmIGZpbmFsUmV2YWxpZGF0ZSA+IDA7XG4gICAgICAgICAgICBsZXQgY2FjaGVLZXk7XG4gICAgICAgICAgICBjb25zdCB7IGluY3JlbWVudGFsQ2FjaGUgfSA9IHdvcmtTdG9yZTtcbiAgICAgICAgICAgIGxldCBpc0htclJlZnJlc2ggPSBmYWxzZTtcbiAgICAgICAgICAgIGxldCBzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGU7XG4gICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSG1yUmVmcmVzaCA9IHdvcmtVbml0U3RvcmUuaXNIbXJSZWZyZXNoID8/IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyQ29tcG9uZW50c0htckNhY2hlID0gd29ya1VuaXRTdG9yZS5zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGluY3JlbWVudGFsQ2FjaGUgJiYgKGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSB8fCBzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUpKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVLZXkgPSBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLmdlbmVyYXRlQ2FjaGVLZXkoZmV0Y2hVcmwsIGlzUmVxdWVzdElucHV0ID8gaW5wdXQgOiBpbml0KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGdlbmVyYXRlIGNhY2hlIGtleSBmb3JgLCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZmV0Y2hJZHggPSB3b3JrU3RvcmUubmV4dEZldGNoSWQgPz8gMTtcbiAgICAgICAgICAgIHdvcmtTdG9yZS5uZXh0RmV0Y2hJZCA9IGZldGNoSWR4ICsgMTtcbiAgICAgICAgICAgIGxldCBoYW5kbGVVbmxvY2sgPSAoKT0+e307XG4gICAgICAgICAgICBjb25zdCBkb09yaWdpbmFsRmV0Y2ggPSBhc3luYyAoaXNTdGFsZSwgY2FjaGVSZWFzb25PdmVycmlkZSk9PntcbiAgICAgICAgICAgICAgICBjb25zdCByZXF1ZXN0SW5wdXRGaWVsZHMgPSBbXG4gICAgICAgICAgICAgICAgICAgICdjYWNoZScsXG4gICAgICAgICAgICAgICAgICAgICdjcmVkZW50aWFscycsXG4gICAgICAgICAgICAgICAgICAgICdoZWFkZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ludGVncml0eScsXG4gICAgICAgICAgICAgICAgICAgICdrZWVwYWxpdmUnLFxuICAgICAgICAgICAgICAgICAgICAnbWV0aG9kJyxcbiAgICAgICAgICAgICAgICAgICAgJ21vZGUnLFxuICAgICAgICAgICAgICAgICAgICAncmVkaXJlY3QnLFxuICAgICAgICAgICAgICAgICAgICAncmVmZXJyZXInLFxuICAgICAgICAgICAgICAgICAgICAncmVmZXJyZXJQb2xpY3knLFxuICAgICAgICAgICAgICAgICAgICAnd2luZG93JyxcbiAgICAgICAgICAgICAgICAgICAgJ2R1cGxleCcsXG4gICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IHBhc3MgdGhyb3VnaCBzaWduYWwgd2hlbiByZXZhbGlkYXRpbmdcbiAgICAgICAgICAgICAgICAgICAgLi4uaXNTdGFsZSA/IFtdIDogW1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZ25hbCdcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVxdWVzdElucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcUlucHV0ID0gaW5wdXQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiByZXFJbnB1dC5fb2dCb2R5IHx8IHJlcUlucHV0LmJvZHlcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiByZXF1ZXN0SW5wdXRGaWVsZHMpe1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBjdXN0b20gZmllbGRzXG4gICAgICAgICAgICAgICAgICAgICAgICByZXFPcHRpb25zW2ZpZWxkXSA9IHJlcUlucHV0W2ZpZWxkXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IG5ldyBSZXF1ZXN0KHJlcUlucHV0LnVybCwgcmVxT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgX29nQm9keSwgYm9keSwgc2lnbmFsLCAuLi5vdGhlcklucHV0IH0gPSBpbml0O1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ub3RoZXJJbnB1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IF9vZ0JvZHkgfHwgYm9keSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbDogaXNTdGFsZSA/IHVuZGVmaW5lZCA6IHNpZ25hbFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBhZGQgbWV0YWRhdGEgdG8gaW5pdCB3aXRob3V0IGVkaXRpbmcgdGhlIG9yaWdpbmFsXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmVkSW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaW5pdCxcbiAgICAgICAgICAgICAgICAgICAgbmV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uaW5pdCA9PSBudWxsID8gdm9pZCAwIDogaW5pdC5uZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hUeXBlOiAnb3JpZ2luJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoSWR4XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5GZXRjaChpbnB1dCwgY2xvbmVkSW5pdCkudGhlbihhc3luYyAocmVzKT0+e1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzU3RhbGUgJiYgZmV0Y2hTdGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tGZXRjaE1ldHJpYyh3b3JrU3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogZmV0Y2hTdGFydCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGZldGNoVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uOiBjYWNoZVJlYXNvbk92ZXJyaWRlIHx8IGNhY2hlUmVhc29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU3RhdHVzOiBmaW5hbFJldmFsaWRhdGUgPT09IDAgfHwgY2FjaGVSZWFzb25PdmVycmlkZSA/ICdza2lwJyA6ICdtaXNzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogY2xvbmVkSW5pdC5tZXRob2QgfHwgJ0dFVCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSAyMDAgJiYgaW5jcmVtZW50YWxDYWNoZSAmJiBjYWNoZUtleSAmJiAoaXNDYWNoZWFibGVSZXZhbGlkYXRlIHx8IHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRSZXZhbGlkYXRlID0gZmluYWxSZXZhbGlkYXRlID49IF9jb25zdGFudHMxLklORklOSVRFX0NBQ0hFID8gX2NvbnN0YW50czEuQ0FDSEVfT05FX1lFQVIgOiBmaW5hbFJldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmNyZW1lbnRhbENhY2hlQ29uZmlnID0gaXNDYWNoZWFibGVSZXZhbGlkYXRlID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoQ2FjaGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hJZHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFncyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ltcGxpY2l0QnVpbGRUaW1lQ2FjaGVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZSA9PSBudWxsID8gdm9pZCAwIDogd29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNhY2hlZFByZXJlbmRlclJlc3BvbnNlKHJlcywgY2FjaGVLZXksIGluY3JlbWVudGFsQ2FjaGVDb25maWcsIGluY3JlbWVudGFsQ2FjaGUsIG5vcm1hbGl6ZWRSZXZhbGlkYXRlLCBoYW5kbGVVbmxvY2spO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDYWNoZWREeW5hbWljUmVzcG9uc2Uod29ya1N0b3JlLCByZXMsIGNhY2hlS2V5LCBpbmNyZW1lbnRhbENhY2hlQ29uZmlnLCBpbmNyZW1lbnRhbENhY2hlLCBzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUsIG5vcm1hbGl6ZWRSZXZhbGlkYXRlLCBpbnB1dCwgaGFuZGxlVW5sb2NrKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhZCByZXNwb25zZSB0aGF0IHdlIGRldGVybWluZWQgc2hvdWxkbid0IGJlIGNhY2hlZCBzbyB3ZSByZXR1cm4gaXRcbiAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGRvbid0IGNhY2hlIGl0LiBUaGlzIGFsc28gbmVlZHMgdG8gdW5sb2NrIHRoZSBjYWNoZSBsb2NrIHdlIGFjcXVpcmVkLlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVVbmxvY2soKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyb3IpPT57XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZVVubG9jaygpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBsZXQgY2FjaGVSZWFzb25PdmVycmlkZTtcbiAgICAgICAgICAgIGxldCBpc0ZvcmVncm91bmRSZXZhbGlkYXRlID0gZmFsc2U7XG4gICAgICAgICAgICBsZXQgaXNIbXJSZWZyZXNoQ2FjaGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChjYWNoZUtleSAmJiBpbmNyZW1lbnRhbENhY2hlKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNhY2hlZEZldGNoRGF0YTtcbiAgICAgICAgICAgICAgICBpZiAoaXNIbXJSZWZyZXNoICYmIHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZSkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZWRGZXRjaERhdGEgPSBzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgaXNIbXJSZWZyZXNoQ2FjaGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNDYWNoZWFibGVSZXZhbGlkYXRlICYmICFjYWNoZWRGZXRjaERhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlVW5sb2NrID0gYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5sb2NrKGNhY2hlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSB3b3JrU3RvcmUuaXNPbkRlbWFuZFJldmFsaWRhdGUgPyBudWxsIDogYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5nZXQoY2FjaGVLZXksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IF9yZXNwb25zZWNhY2hlLkluY3JlbWVudGFsQ2FjaGVLaW5kLkZFVENILFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogZmluYWxSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZXRjaElkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBzb2Z0VGFnczogaW1wbGljaXRUYWdzID09IG51bGwgPyB2b2lkIDAgOiBpbXBsaWNpdFRhZ3MudGFnc1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc05vRXhwbGljaXRDYWNoZUNvbmZpZyAmJiB3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugc29tZXRpbWVzIHVzZSB0aGUgY2FjaGUgdG8gZGVkdXBlIGZldGNoZXMgdGhhdCBkbyBub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lmeSBhIGNhY2hlIGNvbmZpZ3VyYXRpb24uIEluIHRoZXNlIGNhc2VzIHdlIHdhbnQgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHdlIHN0aWxsIGV4Y2x1ZGUgdGhlbSBmcm9tIHByZXJlbmRlcnMgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FjaGVDb21wb25lbnRzIGlzIG9uIHNvIHdlIGludHJvZHVjZSBhbiBhcnRpZmljaWFsIHRhc2sgYm91bmRhcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgKDAsIF9zY2hlZHVsZXIud2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2spKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVVbmxvY2soKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIGRldiwgaW5jcmVtZW50YWwgY2FjaGUgcmVzcG9uc2Ugd2lsbCBiZSBudWxsIGluIGNhc2UgdGhlIGJyb3dzZXIgYWRkcyBgY2FjaGUtY29udHJvbDogbm8tY2FjaGVgIGluIHRoZSByZXF1ZXN0IGhlYWRlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uT3ZlcnJpZGUgPSAnY2FjaGUtY29udHJvbDogbm8tY2FjaGUgKGhhcmQgcmVmcmVzaCknO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICgoZW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IGVudHJ5LnZhbHVlKSAmJiBlbnRyeS52YWx1ZS5raW5kID09PSBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuRkVUQ0gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gc3RhbGUgYW5kIGlzIHJldmFsaWRhdGluZyB3ZSB3YWl0IGZvciBmcmVzaCBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB0aGUgcmV2YWxpZGF0ZWQgZW50cnkgaGFzIHRoZSB1cGRhdGVkIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuaXNSZXZhbGlkYXRlICYmIGVudHJ5LmlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZvcmVncm91bmRSZXZhbGlkYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyA/Pz0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1tjYWNoZUtleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBlbmRpbmdSZXZhbGlkYXRlID0gZG9PcmlnaW5hbEZldGNoKHRydWUpLnRoZW4oYXN5bmMgKHJlc3BvbnNlKT0+KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogYXdhaXQgcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6IHJlc3BvbnNlLnN0YXR1c1RleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXMgPz89IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW2NhY2hlS2V5IHx8ICcnXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXR0YWNoIHRoZSBlbXB0eSBjYXRjaCBoZXJlIHNvIHdlIGRvbid0IGdldCBhIFwidW5oYW5kbGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9taXNlIHJlamVjdGlvblwiIHdhcm5pbmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nUmV2YWxpZGF0ZS5jYXRjaChjb25zb2xlLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbY2FjaGVLZXldID0gcGVuZGluZ1JldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVkRmV0Y2hEYXRhID0gZW50cnkudmFsdWUuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY2FjaGVkRmV0Y2hEYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmZXRjaFN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFja0ZldGNoTWV0cmljKHdvcmtTdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBmZXRjaFN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXM6IGlzSG1yUmVmcmVzaENhY2hlID8gJ2htcicgOiAnaGl0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVdhcm5pbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBjYWNoZWRGZXRjaERhdGEuc3RhdHVzIHx8IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IChpbml0ID09IG51bGwgPyB2b2lkIDAgOiBpbml0Lm1ldGhvZCkgfHwgJ0dFVCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKEJ1ZmZlci5mcm9tKGNhY2hlZEZldGNoRGF0YS5ib2R5LCAnYmFzZTY0JyksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IGNhY2hlZEZldGNoRGF0YS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBjYWNoZWRGZXRjaERhdGEuc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzcG9uc2UsICd1cmwnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY2FjaGVkRmV0Y2hEYXRhLnVybFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uICYmIGluaXQgJiYgdHlwZW9mIGluaXQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjYWNoZSB9ID0gaW5pdDtcbiAgICAgICAgICAgICAgICAvLyBEZWxldGUgYGNhY2hlYCBwcm9wZXJ0eSBhcyBDbG91ZGZsYXJlIFdvcmtlcnMgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgICAgICAgICAgICAgIGlmIChpc0VkZ2VSdW50aW1lKSBkZWxldGUgaW5pdC5jYWNoZTtcbiAgICAgICAgICAgICAgICBpZiAoY2FjaGUgPT09ICduby1zdG9yZScpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgZW5hYmxlZCwgd2Ugc2hvdWxkIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZVNpZ25hbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTaWduYWwuZW5kUmVhZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTaWduYWwgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHdvcmtVbml0U3RvcmUucmVuZGVyU2lnbmFsLCB3b3JrU3RvcmUucm91dGUsICdmZXRjaCgpJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcubWFya0N1cnJlbnRTY29wZUFzRHluYW1pYykod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlLCBgbm8tc3RvcmUgZmV0Y2ggJHtpbnB1dH0gJHt3b3JrU3RvcmUucm91dGV9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc05leHRDb25maWcgPSAnbmV4dCcgaW4gaW5pdDtcbiAgICAgICAgICAgICAgICBjb25zdCB7IG5leHQgPSB7fSB9ID0gaW5pdDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG5leHQucmV2YWxpZGF0ZSA9PT0gJ251bWJlcicgJiYgcmV2YWxpZGF0ZVN0b3JlICYmIG5leHQucmV2YWxpZGF0ZSA8IHJldmFsaWRhdGVTdG9yZS5yZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0LnJldmFsaWRhdGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIGVuYWJsZWQsIHdlIHNob3VsZCBiYWlsIG91dCBvZiBzdGF0aWMgZ2VuZXJhdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgd29ya1N0b3JlLnJvdXRlLCAnZmV0Y2goKScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLm1hcmtDdXJyZW50U2NvcGVBc0R5bmFtaWMpKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSwgYHJldmFsaWRhdGU6IDAgZmV0Y2ggJHtpbnB1dH0gJHt3b3JrU3RvcmUucm91dGV9YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF3b3JrU3RvcmUuZm9yY2VTdGF0aWMgfHwgbmV4dC5yZXZhbGlkYXRlICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlU3RvcmUucmV2YWxpZGF0ZSA9IG5leHQucmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaGFzTmV4dENvbmZpZykgZGVsZXRlIGluaXQubmV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGlmIHdlIGFyZSByZXZhbGlkYXRpbmcgdGhlIHdob2xlIHBhZ2UgdmlhIHRpbWUgb3Igb24tZGVtYW5kIGFuZFxuICAgICAgICAgICAgLy8gdGhlIGZldGNoIGNhY2hlIGVudHJ5IGlzIHN0YWxlIHdlIHNob3VsZCBzdGlsbCBkZS1kdXBlIHRoZVxuICAgICAgICAgICAgLy8gb3JpZ2luIGhpdCBpZiBpdCdzIGEgY2FjaGUtYWJsZSBlbnRyeVxuICAgICAgICAgICAgaWYgKGNhY2hlS2V5ICYmIGlzRm9yZWdyb3VuZFJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwZW5kaW5nUmV2YWxpZGF0ZUtleSA9IGNhY2hlS2V5O1xuICAgICAgICAgICAgICAgIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXMgPz89IHt9O1xuICAgICAgICAgICAgICAgIGxldCBwZW5kaW5nUmV2YWxpZGF0ZSA9IHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbcGVuZGluZ1JldmFsaWRhdGVLZXldO1xuICAgICAgICAgICAgICAgIGlmIChwZW5kaW5nUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXZhbGlkYXRlZFJlc3VsdCA9IGF3YWl0IHBlbmRpbmdSZXZhbGlkYXRlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKHJldmFsaWRhdGVkUmVzdWx0LmJvZHksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJldmFsaWRhdGVkUmVzdWx0LmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJldmFsaWRhdGVkUmVzdWx0LnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6IHJldmFsaWRhdGVkUmVzdWx0LnN0YXR1c1RleHRcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFdlIHVzZWQgdG8ganVzdCByZXNvbHZlIHRoZSBSZXNwb25zZSBhbmQgY2xvbmUgaXQgaG93ZXZlciBmb3JcbiAgICAgICAgICAgICAgICAvLyBzdGF0aWMgZ2VuZXJhdGlvbiB3aXRoIGNhY2hlQ29tcG9uZW50cyB3ZSBuZWVkIHRoZSByZXNwb25zZSB0byBiZSBhYmxlIHRvXG4gICAgICAgICAgICAgICAgLy8gYmUgcmVzb2x2ZWQgaW4gYSBtaWNyb3Rhc2sgYW5kIGNsb25pbmcgdGhlIHJlc3BvbnNlIHdpbGwgbmV2ZXIgaGF2ZVxuICAgICAgICAgICAgICAgIC8vIGEgYm9keSB0aGF0IGNhbiByZXNvbHZlIGluIGEgbWljcm90YXNrIGluIG5vZGUgKGFzIG9ic2VydmVkIHRocm91Z2hcbiAgICAgICAgICAgICAgICAvLyBleHBlcmltZW50YXRpb24pIFNvIGluc3RlYWQgd2UgYXdhaXQgdGhlIGJvZHkgYW5kIHRoZW4gd2hlbiBpdCBpc1xuICAgICAgICAgICAgICAgIC8vIGF2YWlsYWJsZSB3ZSBjb25zdHJ1Y3QgbWFudWFsbHkgY2xvbmVkIFJlc3BvbnNlIG9iamVjdHMgd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAvLyBib2R5IGFzIGFuIEFycmF5QnVmZmVyLiBUaGlzIHdpbGwgYmUgcmVzb2x2YWJsZSBpbiBhIG1pY3JvdGFza1xuICAgICAgICAgICAgICAgIC8vIG1ha2luZyBpdCBjb21wYXRpYmxlIHdpdGggY2FjaGVDb21wb25lbnRzLlxuICAgICAgICAgICAgICAgIGNvbnN0IHBlbmRpbmdSZXNwb25zZSA9IGRvT3JpZ2luYWxGZXRjaCh0cnVlLCBjYWNoZVJlYXNvbk92ZXJyaWRlKS8vIFdlJ3JlIGNsb25pbmcgdGhlIHJlc3BvbnNlIHVzaW5nIHRoaXMgdXRpbGl0eSBiZWNhdXNlIHRoZXJlXG4gICAgICAgICAgICAgICAgLy8gZXhpc3RzIGEgYnVnIGluIHRoZSB1bmRpY2kgbGlicmFyeSBhcm91bmQgcmVzcG9uc2UgY2xvbmluZy5cbiAgICAgICAgICAgICAgICAvLyBTZWUgdGhlIGZvbGxvd2luZyBwdWxsIHJlcXVlc3QgZm9yIG1vcmUgZGV0YWlsczpcbiAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC83MzI3NFxuICAgICAgICAgICAgICAgIC50aGVuKF9jbG9uZXJlc3BvbnNlLmNsb25lUmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdSZXZhbGlkYXRlID0gcGVuZGluZ1Jlc3BvbnNlLnRoZW4oYXN5bmMgKHJlc3BvbnNlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSByZXNwb25zZXNbMF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgdmFyIF93b3JrU3RvcmVfcGVuZGluZ1JldmFsaWRhdGVzO1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcGVuZGluZyByZXZhbGlkYXRlIGlzIG5vdCBwcmVzZW50IGluIHRoZSBzdG9yZSwgdGhlblxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIG5vdGhpbmcgdG8gZGVsZXRlLlxuICAgICAgICAgICAgICAgICAgICBpZiAoISgoX3dvcmtTdG9yZV9wZW5kaW5nUmV2YWxpZGF0ZXMgPSB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzKSA9PSBudWxsID8gdm9pZCAwIDogX3dvcmtTdG9yZV9wZW5kaW5nUmV2YWxpZGF0ZXNbcGVuZGluZ1JldmFsaWRhdGVLZXldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW3BlbmRpbmdSZXZhbGlkYXRlS2V5XTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyBBdHRhY2ggdGhlIGVtcHR5IGNhdGNoIGhlcmUgc28gd2UgZG9uJ3QgZ2V0IGEgXCJ1bmhhbmRsZWQgcHJvbWlzZVxuICAgICAgICAgICAgICAgIC8vIHJlamVjdGlvblwiIHdhcm5pbmdcbiAgICAgICAgICAgICAgICBwZW5kaW5nUmV2YWxpZGF0ZS5jYXRjaCgoKT0+e30pO1xuICAgICAgICAgICAgICAgIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbcGVuZGluZ1JldmFsaWRhdGVLZXldID0gcGVuZGluZ1JldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBlbmRpbmdSZXNwb25zZS50aGVuKChyZXNwb25zZXMpPT5yZXNwb25zZXNbMV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9PcmlnaW5hbEZldGNoKGZhbHNlLCBjYWNoZVJlYXNvbk92ZXJyaWRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjYWNoZVNpZ25hbCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzdWx0O1xuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIGlmIChjYWNoZVNpZ25hbCkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVNpZ25hbC5lbmRSZWFkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICAvLyBBdHRhY2ggdGhlIG5lY2Vzc2FyeSBwcm9wZXJ0aWVzIHRvIHRoZSBwYXRjaGVkIGZldGNoIGZ1bmN0aW9uLlxuICAgIC8vIFdlIGRvbid0IHVzZSB0aGlzIHRvIGRldGVybWluZSBpZiB0aGUgZmV0Y2ggZnVuY3Rpb24gaGFzIGJlZW4gcGF0Y2hlZCxcbiAgICAvLyBidXQgZm9yIGV4dGVybmFsIGNvbnN1bWVycyB0byBkZXRlcm1pbmUgaWYgdGhlIGZldGNoIGZ1bmN0aW9uIGhhcyBiZWVuXG4gICAgLy8gcGF0Y2hlZC5cbiAgICBwYXRjaGVkLl9fbmV4dFBhdGNoZWQgPSB0cnVlO1xuICAgIHBhdGNoZWQuX19uZXh0R2V0U3RhdGljU3RvcmUgPSAoKT0+d29ya0FzeW5jU3RvcmFnZTtcbiAgICBwYXRjaGVkLl9uZXh0T3JpZ2luYWxGZXRjaCA9IG9yaWdpbkZldGNoO1xuICAgIGdsb2JhbFRoaXNbTkVYVF9QQVRDSF9TWU1CT0xdID0gdHJ1ZTtcbiAgICAvLyBBc3NpZ24gdGhlIGZ1bmN0aW9uIG5hbWUgYWxzbyBhcyBhIG5hbWUgcHJvcGVydHksIHNvIHRoYXQgaXQncyBwcmVzZXJ2ZWRcbiAgICAvLyBldmVuIHdoZW4gbWFuZ2xpbmcgaXMgZW5hYmxlZC5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocGF0Y2hlZCwgJ25hbWUnLCB7XG4gICAgICAgIHZhbHVlOiAnZmV0Y2gnLFxuICAgICAgICB3cml0YWJsZTogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4gcGF0Y2hlZDtcbn1cbmZ1bmN0aW9uIHBhdGNoRmV0Y2gob3B0aW9ucykge1xuICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgcGF0Y2hlZCBmZXRjaCwgd2Ugc2hvdWxkIG5vdCBwYXRjaCBpdCBhZ2Fpbi5cbiAgICBpZiAoaXNGZXRjaFBhdGNoZWQoKSkgcmV0dXJuO1xuICAgIC8vIEdyYWIgdGhlIG9yaWdpbmFsIGZldGNoIGZ1bmN0aW9uLiBXZSdsbCBhdHRhY2ggdGhpcyBzbyB3ZSBjYW4gdXNlIGl0IGluXG4gICAgLy8gdGhlIHBhdGNoZWQgZmV0Y2ggZnVuY3Rpb24uXG4gICAgY29uc3Qgb3JpZ2luYWwgPSAoMCwgX2RlZHVwZWZldGNoLmNyZWF0ZURlZHVwZUZldGNoKShnbG9iYWxUaGlzLmZldGNoKTtcbiAgICAvLyBTZXQgdGhlIGdsb2JhbCBmZXRjaCB0byB0aGUgcGF0Y2hlZCBmZXRjaC5cbiAgICBnbG9iYWxUaGlzLmZldGNoID0gY3JlYXRlUGF0Y2hlZEZldGNoZXIob3JpZ2luYWwsIG9wdGlvbnMpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYXRjaC1mZXRjaC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/router-utils/is-postpone.js ***!
|
||
\***********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isPostpone\", ({\n enumerable: true,\n get: function() {\n return isPostpone;\n }\n}));\nconst REACT_POSTPONE_TYPE = Symbol.for('react.postpone');\nfunction isPostpone(error) {\n return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE;\n}\n\n//# sourceMappingURL=is-postpone.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOENBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9yb3V0ZXItdXRpbHMvaXMtcG9zdHBvbmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc1Bvc3Rwb25lXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1Bvc3Rwb25lO1xuICAgIH1cbn0pO1xuY29uc3QgUkVBQ1RfUE9TVFBPTkVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnBvc3Rwb25lJyk7XG5mdW5jdGlvbiBpc1Bvc3Rwb25lKGVycm9yKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgZXJyb3IuJCR0eXBlb2YgPT09IFJFQUNUX1BPU1RQT05FX1RZUEU7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXBvc3Rwb25lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/server-action-request-meta.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/server-action-request-meta.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 getIsPossibleServerAction: function() {\n return getIsPossibleServerAction;\n },\n getServerActionRequestMetadata: function() {\n return getServerActionRequestMetadata;\n }\n});\nconst _approuterheaders = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nfunction getServerActionRequestMetadata(req) {\n let actionId;\n let contentType;\n if (req.headers instanceof Headers) {\n actionId = req.headers.get(_approuterheaders.ACTION_HEADER) ?? null;\n contentType = req.headers.get('content-type');\n } else {\n actionId = req.headers[_approuterheaders.ACTION_HEADER] ?? 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 const isPossibleServerAction = Boolean(isFetchAction || isURLEncodedAction || isMultipartAction);\n return {\n actionId,\n isURLEncodedAction,\n isMultipartAction,\n isFetchAction,\n isPossibleServerAction\n };\n}\nfunction getIsPossibleServerAction(req) {\n return getServerActionRequestMetadata(req).isPossibleServerAction;\n}\n\n//# sourceMappingURL=server-action-request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvc2VydmVyLWFjdGlvbi1yZXF1ZXN0LW1ldGEuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsMEJBQTBCLG1CQUFPLENBQUMsMEhBQTRDO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9zZXJ2ZXItYWN0aW9uLXJlcXVlc3QtbWV0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldElzUG9zc2libGVTZXJ2ZXJBY3Rpb246IG51bGwsXG4gICAgZ2V0U2VydmVyQWN0aW9uUmVxdWVzdE1ldGFkYXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldElzUG9zc2libGVTZXJ2ZXJBY3Rpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0SXNQb3NzaWJsZVNlcnZlckFjdGlvbjtcbiAgICB9LFxuICAgIGdldFNlcnZlckFjdGlvblJlcXVlc3RNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRTZXJ2ZXJBY3Rpb25SZXF1ZXN0TWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfYXBwcm91dGVyaGVhZGVycyA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIik7XG5mdW5jdGlvbiBnZXRTZXJ2ZXJBY3Rpb25SZXF1ZXN0TWV0YWRhdGEocmVxKSB7XG4gICAgbGV0IGFjdGlvbklkO1xuICAgIGxldCBjb250ZW50VHlwZTtcbiAgICBpZiAocmVxLmhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSB7XG4gICAgICAgIGFjdGlvbklkID0gcmVxLmhlYWRlcnMuZ2V0KF9hcHByb3V0ZXJoZWFkZXJzLkFDVElPTl9IRUFERVIpID8/IG51bGw7XG4gICAgICAgIGNvbnRlbnRUeXBlID0gcmVxLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBhY3Rpb25JZCA9IHJlcS5oZWFkZXJzW19hcHByb3V0ZXJoZWFkZXJzLkFDVElPTl9IRUFERVJdID8/IG51bGw7XG4gICAgICAgIGNvbnRlbnRUeXBlID0gcmVxLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID8/IG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGlzVVJMRW5jb2RlZEFjdGlvbiA9IEJvb2xlYW4ocmVxLm1ldGhvZCA9PT0gJ1BPU1QnICYmIGNvbnRlbnRUeXBlID09PSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk7XG4gICAgY29uc3QgaXNNdWx0aXBhcnRBY3Rpb24gPSBCb29sZWFuKHJlcS5tZXRob2QgPT09ICdQT1NUJyAmJiAoY29udGVudFR5cGUgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoJ211bHRpcGFydC9mb3JtLWRhdGEnKSkpO1xuICAgIGNvbnN0IGlzRmV0Y2hBY3Rpb24gPSBCb29sZWFuKGFjdGlvbklkICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGFjdGlvbklkID09PSAnc3RyaW5nJyAmJiByZXEubWV0aG9kID09PSAnUE9TVCcpO1xuICAgIGNvbnN0IGlzUG9zc2libGVTZXJ2ZXJBY3Rpb24gPSBCb29sZWFuKGlzRmV0Y2hBY3Rpb24gfHwgaXNVUkxFbmNvZGVkQWN0aW9uIHx8IGlzTXVsdGlwYXJ0QWN0aW9uKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBhY3Rpb25JZCxcbiAgICAgICAgaXNVUkxFbmNvZGVkQWN0aW9uLFxuICAgICAgICBpc011bHRpcGFydEFjdGlvbixcbiAgICAgICAgaXNGZXRjaEFjdGlvbixcbiAgICAgICAgaXNQb3NzaWJsZVNlcnZlckFjdGlvblxuICAgIH07XG59XG5mdW5jdGlvbiBnZXRJc1Bvc3NpYmxlU2VydmVyQWN0aW9uKHJlcSkge1xuICAgIHJldHVybiBnZXRTZXJ2ZXJBY3Rpb25SZXF1ZXN0TWV0YWRhdGEocmVxKS5pc1Bvc3NpYmxlU2VydmVyQWN0aW9uO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItYWN0aW9uLXJlcXVlc3QtbWV0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/server-action-request-meta.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/source-maps.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/source-maps.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 devirtualizeReactServerURL: function() {\n return devirtualizeReactServerURL;\n },\n filterStackFrameDEV: function() {\n return filterStackFrameDEV;\n },\n findApplicableSourceMapPayload: function() {\n return findApplicableSourceMapPayload;\n },\n findSourceMapURLDEV: function() {\n return findSourceMapURLDEV;\n },\n ignoreListAnonymousStackFramesIfSandwiched: function() {\n return ignoreListAnonymousStackFramesIfSandwiched;\n },\n sourceMapIgnoreListsEverything: function() {\n return sourceMapIgnoreListsEverything;\n }\n});\nconst _lrucache = __webpack_require__(/*! ./lru-cache */ \"(rsc)/./node_modules/next/dist/server/lib/lru-cache.js\");\nvar _process_versions_node;\nfunction noSourceMap() {\n return undefined;\n}\n// Edge runtime does not implement `module`\nconst nativeFindSourceMap = false ? 0 : (__webpack_require__(/*! module */ \"module\").findSourceMap);\nfunction sourceMapIgnoreListsEverything(sourceMap) {\n return sourceMap.ignoreList !== undefined && sourceMap.sources.length === sourceMap.ignoreList.length;\n}\nfunction findApplicableSourceMapPayload(line0, column0, payload) {\n if ('sections' in payload) {\n if (payload.sections.length === 0) {\n return undefined;\n }\n // Sections must not overlap and must be sorted: https://tc39.es/source-map/#section-object\n // Therefore the last section that has an offset less than or equal to the frame is the applicable one.\n const sections = payload.sections;\n let left = 0;\n let right = sections.length - 1;\n let result = null;\n while(left <= right){\n // fast Math.floor\n const middle = ~~((left + right) / 2);\n const section = sections[middle];\n const offset = section.offset;\n if (offset.line < line0 || offset.line === line0 && offset.column <= column0) {\n result = section;\n left = middle + 1;\n } else {\n right = middle - 1;\n }\n }\n return result === null ? undefined : result.map;\n } else {\n return payload;\n }\n}\nconst didWarnAboutInvalidSourceMapDEV = new Set();\nconst findSourceMap = true && ((_process_versions_node = process.versions.node) == null ? void 0 : _process_versions_node.startsWith('18')) ? noSourceMap : nativeFindSourceMap;\nfunction filterStackFrameDEV(sourceURL, functionName, line1, column1) {\n if (sourceURL === '') {\n // The default implementation filters out <anonymous> stack frames\n // but we want to retain them because current Server Components and\n // built-in Components in parent stacks don't have source location.\n // Filter out frames that show up in Promises to get good names in React's\n // Server Request track until we come up with a better heuristic.\n return functionName !== 'new Promise';\n }\n if (sourceURL.startsWith('node:') || sourceURL.includes('node_modules')) {\n return false;\n }\n try {\n // Node.js loads source maps eagerly so this call is cheap.\n // TODO: ESM sourcemaps are O(1) but CommonJS sourcemaps are O(Number of CJS modules).\n // Make sure this doesn't adversely affect performance when CJS is used by Next.js.\n const sourceMap = findSourceMap(sourceURL);\n if (sourceMap === undefined) {\n // No source map assoicated.\n // TODO: Node.js types should reflect that `findSourceMap` can return `undefined`.\n return true;\n }\n const sourceMapPayload = findApplicableSourceMapPayload(line1 - 1, column1 - 1, sourceMap.payload);\n if (sourceMapPayload === undefined) {\n // No source map section applicable to the frame.\n return true;\n }\n return !sourceMapIgnoreListsEverything(sourceMapPayload);\n } catch (cause) {\n if (true) {\n // TODO: Share cache with patch-error-inspect\n if (!didWarnAboutInvalidSourceMapDEV.has(sourceURL)) {\n didWarnAboutInvalidSourceMapDEV.add(sourceURL);\n // We should not log an actual error instance here because that will re-enter\n // this codepath during error inspection and could lead to infinite recursion.\n console.error(`${sourceURL}: Invalid source map. Only conformant source maps can be used to filter stack frames. Cause: ${cause}`);\n }\n }\n return true;\n }\n}\nconst invalidSourceMap = Symbol('invalid-source-map');\nconst sourceMapURLs = new _lrucache.LRUCache(512 * 1024 * 1024, (url)=>url === invalidSourceMap ? // so that we don't create a huge cache with empty source maps.\n 8 * 1024 : url.length);\nfunction findSourceMapURLDEV(scriptNameOrSourceURL) {\n let sourceMapURL = sourceMapURLs.get(scriptNameOrSourceURL);\n if (sourceMapURL === undefined) {\n let sourceMapPayload;\n try {\n var _findSourceMap;\n sourceMapPayload = (_findSourceMap = findSourceMap(scriptNameOrSourceURL)) == null ? void 0 : _findSourceMap.payload;\n } catch (cause) {\n console.error(`${scriptNameOrSourceURL}: Invalid source map. Only conformant source maps can be used to find the original code. Cause: ${cause}`);\n }\n if (sourceMapPayload === undefined) {\n sourceMapURL = invalidSourceMap;\n } else {\n // TODO: Might be more efficient to extract the relevant section from Index Maps.\n // Unclear if that search is worth the smaller payload we have to stringify.\n const sourceMapJSON = JSON.stringify(sourceMapPayload);\n const sourceMapURLData = Buffer.from(sourceMapJSON, 'utf8').toString('base64');\n sourceMapURL = `data:application/json;base64,${sourceMapURLData}`;\n }\n sourceMapURLs.set(scriptNameOrSourceURL, sourceMapURL);\n }\n return sourceMapURL === invalidSourceMap ? null : sourceMapURL;\n}\nfunction devirtualizeReactServerURL(sourceURL) {\n if (sourceURL.startsWith('about://React/')) {\n // about://React/Server/file://<filename>?42 => file://<filename>\n const envIdx = sourceURL.indexOf('/', 'about://React/'.length);\n const suffixIdx = sourceURL.lastIndexOf('?');\n if (envIdx > -1 && suffixIdx > -1) {\n return decodeURI(sourceURL.slice(envIdx + 1, suffixIdx));\n }\n }\n return sourceURL;\n}\nfunction isAnonymousFrameLikelyJSNative(methodName) {\n // Anonymous frames can also be produced in React parent stacks either from\n // host components or Server Components. We don't want to ignore those.\n // This could hide user-space methods that are named like native JS methods but\n // should you really do that?\n return(// e.g. JSON.parse\n methodName.startsWith('JSON.') || // E.g. Promise.withResolves\n methodName.startsWith('Function.') || // various JS built-ins\n methodName.startsWith('Promise.') || methodName.startsWith('Array.') || methodName.startsWith('Set.') || methodName.startsWith('Map.'));\n}\nfunction ignoreListAnonymousStackFramesIfSandwiched(frames, isAnonymousFrame, isIgnoredFrame, getMethodName, /** only passes frames for which `isAnonymousFrame` and their method is a native JS method or `isIgnoredFrame` return true */ ignoreFrame) {\n for(let i = 1; i < frames.length; i++){\n const currentFrame = frames[i];\n if (!(isAnonymousFrame(currentFrame) && isAnonymousFrameLikelyJSNative(getMethodName(currentFrame)))) {\n continue;\n }\n const previousFrameIsIgnored = isIgnoredFrame(frames[i - 1]);\n if (previousFrameIsIgnored && i < frames.length - 1) {\n let ignoreSandwich = false;\n let j = i + 1;\n for(j; j < frames.length; j++){\n const nextFrame = frames[j];\n const nextFrameIsAnonymous = isAnonymousFrame(nextFrame) && isAnonymousFrameLikelyJSNative(getMethodName(nextFrame));\n if (nextFrameIsAnonymous) {\n continue;\n }\n const nextFrameIsIgnored = isIgnoredFrame(nextFrame);\n if (nextFrameIsIgnored) {\n ignoreSandwich = true;\n break;\n }\n }\n if (ignoreSandwich) {\n for(i; i < j; i++){\n ignoreFrame(frames[i]);\n }\n }\n }\n }\n}\n\n//# sourceMappingURL=source-maps.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvc291cmNlLW1hcHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBT0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQkFBa0IsbUJBQU8sQ0FBQywyRUFBYTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLE1BQW1DLEdBQUcsQ0FBVyxHQUFHLDJEQUErQjtBQUMvRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixLQUFxQztBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixZQUFZLElBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsVUFBVSwrRkFBK0YsTUFBTTtBQUNoSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsNkJBQTZCLHNCQUFzQixrR0FBa0csTUFBTTtBQUMzSjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsU0FBUyxpQkFBaUI7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsT0FBTztBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9zb3VyY2UtbWFwcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGRldmlydHVhbGl6ZVJlYWN0U2VydmVyVVJMOiBudWxsLFxuICAgIGZpbHRlclN0YWNrRnJhbWVERVY6IG51bGwsXG4gICAgZmluZEFwcGxpY2FibGVTb3VyY2VNYXBQYXlsb2FkOiBudWxsLFxuICAgIGZpbmRTb3VyY2VNYXBVUkxERVY6IG51bGwsXG4gICAgaWdub3JlTGlzdEFub255bW91c1N0YWNrRnJhbWVzSWZTYW5kd2ljaGVkOiBudWxsLFxuICAgIHNvdXJjZU1hcElnbm9yZUxpc3RzRXZlcnl0aGluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBkZXZpcnR1YWxpemVSZWFjdFNlcnZlclVSTDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkZXZpcnR1YWxpemVSZWFjdFNlcnZlclVSTDtcbiAgICB9LFxuICAgIGZpbHRlclN0YWNrRnJhbWVERVY6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZmlsdGVyU3RhY2tGcmFtZURFVjtcbiAgICB9LFxuICAgIGZpbmRBcHBsaWNhYmxlU291cmNlTWFwUGF5bG9hZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmaW5kQXBwbGljYWJsZVNvdXJjZU1hcFBheWxvYWQ7XG4gICAgfSxcbiAgICBmaW5kU291cmNlTWFwVVJMREVWOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZpbmRTb3VyY2VNYXBVUkxERVY7XG4gICAgfSxcbiAgICBpZ25vcmVMaXN0QW5vbnltb3VzU3RhY2tGcmFtZXNJZlNhbmR3aWNoZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaWdub3JlTGlzdEFub255bW91c1N0YWNrRnJhbWVzSWZTYW5kd2ljaGVkO1xuICAgIH0sXG4gICAgc291cmNlTWFwSWdub3JlTGlzdHNFdmVyeXRoaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZU1hcElnbm9yZUxpc3RzRXZlcnl0aGluZztcbiAgICB9XG59KTtcbmNvbnN0IF9scnVjYWNoZSA9IHJlcXVpcmUoXCIuL2xydS1jYWNoZVwiKTtcbnZhciBfcHJvY2Vzc192ZXJzaW9uc19ub2RlO1xuZnVuY3Rpb24gbm9Tb3VyY2VNYXAoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbi8vIEVkZ2UgcnVudGltZSBkb2VzIG5vdCBpbXBsZW1lbnQgYG1vZHVsZWBcbmNvbnN0IG5hdGl2ZUZpbmRTb3VyY2VNYXAgPSBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJyA/IG5vU291cmNlTWFwIDogcmVxdWlyZSgnbW9kdWxlJykuZmluZFNvdXJjZU1hcDtcbmZ1bmN0aW9uIHNvdXJjZU1hcElnbm9yZUxpc3RzRXZlcnl0aGluZyhzb3VyY2VNYXApIHtcbiAgICByZXR1cm4gc291cmNlTWFwLmlnbm9yZUxpc3QgIT09IHVuZGVmaW5lZCAmJiBzb3VyY2VNYXAuc291cmNlcy5sZW5ndGggPT09IHNvdXJjZU1hcC5pZ25vcmVMaXN0Lmxlbmd0aDtcbn1cbmZ1bmN0aW9uIGZpbmRBcHBsaWNhYmxlU291cmNlTWFwUGF5bG9hZChsaW5lMCwgY29sdW1uMCwgcGF5bG9hZCkge1xuICAgIGlmICgnc2VjdGlvbnMnIGluIHBheWxvYWQpIHtcbiAgICAgICAgaWYgKHBheWxvYWQuc2VjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIFNlY3Rpb25zIG11c3Qgbm90IG92ZXJsYXAgYW5kIG11c3QgYmUgc29ydGVkOiBodHRwczovL3RjMzkuZXMvc291cmNlLW1hcC8jc2VjdGlvbi1vYmplY3RcbiAgICAgICAgLy8gVGhlcmVmb3JlIHRoZSBsYXN0IHNlY3Rpb24gdGhhdCBoYXMgYW4gb2Zmc2V0IGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgZnJhbWUgaXMgdGhlIGFwcGxpY2FibGUgb25lLlxuICAgICAgICBjb25zdCBzZWN0aW9ucyA9IHBheWxvYWQuc2VjdGlvbnM7XG4gICAgICAgIGxldCBsZWZ0ID0gMDtcbiAgICAgICAgbGV0IHJpZ2h0ID0gc2VjdGlvbnMubGVuZ3RoIC0gMTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG4gICAgICAgIHdoaWxlKGxlZnQgPD0gcmlnaHQpe1xuICAgICAgICAgICAgLy8gZmFzdCBNYXRoLmZsb29yXG4gICAgICAgICAgICBjb25zdCBtaWRkbGUgPSB+figobGVmdCArIHJpZ2h0KSAvIDIpO1xuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25zW21pZGRsZV07XG4gICAgICAgICAgICBjb25zdCBvZmZzZXQgPSBzZWN0aW9uLm9mZnNldDtcbiAgICAgICAgICAgIGlmIChvZmZzZXQubGluZSA8IGxpbmUwIHx8IG9mZnNldC5saW5lID09PSBsaW5lMCAmJiBvZmZzZXQuY29sdW1uIDw9IGNvbHVtbjApIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWN0aW9uO1xuICAgICAgICAgICAgICAgIGxlZnQgPSBtaWRkbGUgKyAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByaWdodCA9IG1pZGRsZSAtIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHJlc3VsdC5tYXA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgfVxufVxuY29uc3QgZGlkV2FybkFib3V0SW52YWxpZFNvdXJjZU1hcERFViA9IG5ldyBTZXQoKTtcbmNvbnN0IGZpbmRTb3VyY2VNYXAgPSBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdub2RlanMnICYmICgoX3Byb2Nlc3NfdmVyc2lvbnNfbm9kZSA9IHByb2Nlc3MudmVyc2lvbnMubm9kZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9wcm9jZXNzX3ZlcnNpb25zX25vZGUuc3RhcnRzV2l0aCgnMTgnKSkgPyBub1NvdXJjZU1hcCA6IG5hdGl2ZUZpbmRTb3VyY2VNYXA7XG5mdW5jdGlvbiBmaWx0ZXJTdGFja0ZyYW1lREVWKHNvdXJjZVVSTCwgZnVuY3Rpb25OYW1lLCBsaW5lMSwgY29sdW1uMSkge1xuICAgIGlmIChzb3VyY2VVUkwgPT09ICcnKSB7XG4gICAgICAgIC8vIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZpbHRlcnMgb3V0IDxhbm9ueW1vdXM+IHN0YWNrIGZyYW1lc1xuICAgICAgICAvLyBidXQgd2Ugd2FudCB0byByZXRhaW4gdGhlbSBiZWNhdXNlIGN1cnJlbnQgU2VydmVyIENvbXBvbmVudHMgYW5kXG4gICAgICAgIC8vIGJ1aWx0LWluIENvbXBvbmVudHMgaW4gcGFyZW50IHN0YWNrcyBkb24ndCBoYXZlIHNvdXJjZSBsb2NhdGlvbi5cbiAgICAgICAgLy8gRmlsdGVyIG91dCBmcmFtZXMgdGhhdCBzaG93IHVwIGluIFByb21pc2VzIHRvIGdldCBnb29kIG5hbWVzIGluIFJlYWN0J3NcbiAgICAgICAgLy8gU2VydmVyIFJlcXVlc3QgdHJhY2sgdW50aWwgd2UgY29tZSB1cCB3aXRoIGEgYmV0dGVyIGhldXJpc3RpYy5cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uTmFtZSAhPT0gJ25ldyBQcm9taXNlJztcbiAgICB9XG4gICAgaWYgKHNvdXJjZVVSTC5zdGFydHNXaXRoKCdub2RlOicpIHx8IHNvdXJjZVVSTC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyBOb2RlLmpzIGxvYWRzIHNvdXJjZSBtYXBzIGVhZ2VybHkgc28gdGhpcyBjYWxsIGlzIGNoZWFwLlxuICAgICAgICAvLyBUT0RPOiBFU00gc291cmNlbWFwcyBhcmUgTygxKSBidXQgQ29tbW9uSlMgc291cmNlbWFwcyBhcmUgTyhOdW1iZXIgb2YgQ0pTIG1vZHVsZXMpLlxuICAgICAgICAvLyBNYWtlIHN1cmUgdGhpcyBkb2Vzbid0IGFkdmVyc2VseSBhZmZlY3QgcGVyZm9ybWFuY2Ugd2hlbiBDSlMgaXMgdXNlZCBieSBOZXh0LmpzLlxuICAgICAgICBjb25zdCBzb3VyY2VNYXAgPSBmaW5kU291cmNlTWFwKHNvdXJjZVVSTCk7XG4gICAgICAgIGlmIChzb3VyY2VNYXAgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gTm8gc291cmNlIG1hcCBhc3NvaWNhdGVkLlxuICAgICAgICAgICAgLy8gVE9ETzogTm9kZS5qcyB0eXBlcyBzaG91bGQgcmVmbGVjdCB0aGF0IGBmaW5kU291cmNlTWFwYCBjYW4gcmV0dXJuIGB1bmRlZmluZWRgLlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc291cmNlTWFwUGF5bG9hZCA9IGZpbmRBcHBsaWNhYmxlU291cmNlTWFwUGF5bG9hZChsaW5lMSAtIDEsIGNvbHVtbjEgLSAxLCBzb3VyY2VNYXAucGF5bG9hZCk7XG4gICAgICAgIGlmIChzb3VyY2VNYXBQYXlsb2FkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIE5vIHNvdXJjZSBtYXAgc2VjdGlvbiBhcHBsaWNhYmxlIHRvIHRoZSBmcmFtZS5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhc291cmNlTWFwSWdub3JlTGlzdHNFdmVyeXRoaW5nKHNvdXJjZU1hcFBheWxvYWQpO1xuICAgIH0gY2F0Y2ggKGNhdXNlKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBTaGFyZSBjYWNoZSB3aXRoIHBhdGNoLWVycm9yLWluc3BlY3RcbiAgICAgICAgICAgIGlmICghZGlkV2FybkFib3V0SW52YWxpZFNvdXJjZU1hcERFVi5oYXMoc291cmNlVVJMKSkge1xuICAgICAgICAgICAgICAgIGRpZFdhcm5BYm91dEludmFsaWRTb3VyY2VNYXBERVYuYWRkKHNvdXJjZVVSTCk7XG4gICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG5vdCBsb2cgYW4gYWN0dWFsIGVycm9yIGluc3RhbmNlIGhlcmUgYmVjYXVzZSB0aGF0IHdpbGwgcmUtZW50ZXJcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGVwYXRoIGR1cmluZyBlcnJvciBpbnNwZWN0aW9uIGFuZCBjb3VsZCBsZWFkIHRvIGluZmluaXRlIHJlY3Vyc2lvbi5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGAke3NvdXJjZVVSTH06IEludmFsaWQgc291cmNlIG1hcC4gT25seSBjb25mb3JtYW50IHNvdXJjZSBtYXBzIGNhbiBiZSB1c2VkIHRvIGZpbHRlciBzdGFjayBmcmFtZXMuIENhdXNlOiAke2NhdXNlfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbmNvbnN0IGludmFsaWRTb3VyY2VNYXAgPSBTeW1ib2woJ2ludmFsaWQtc291cmNlLW1hcCcpO1xuY29uc3Qgc291cmNlTWFwVVJMcyA9IG5ldyBfbHJ1Y2FjaGUuTFJVQ2FjaGUoNTEyICogMTAyNCAqIDEwMjQsICh1cmwpPT51cmwgPT09IGludmFsaWRTb3VyY2VNYXAgPyAvLyBzbyB0aGF0IHdlIGRvbid0IGNyZWF0ZSBhIGh1Z2UgY2FjaGUgd2l0aCBlbXB0eSBzb3VyY2UgbWFwcy5cbiAgICA4ICogMTAyNCA6IHVybC5sZW5ndGgpO1xuZnVuY3Rpb24gZmluZFNvdXJjZU1hcFVSTERFVihzY3JpcHROYW1lT3JTb3VyY2VVUkwpIHtcbiAgICBsZXQgc291cmNlTWFwVVJMID0gc291cmNlTWFwVVJMcy5nZXQoc2NyaXB0TmFtZU9yU291cmNlVVJMKTtcbiAgICBpZiAoc291cmNlTWFwVVJMID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGV0IHNvdXJjZU1hcFBheWxvYWQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgX2ZpbmRTb3VyY2VNYXA7XG4gICAgICAgICAgICBzb3VyY2VNYXBQYXlsb2FkID0gKF9maW5kU291cmNlTWFwID0gZmluZFNvdXJjZU1hcChzY3JpcHROYW1lT3JTb3VyY2VVUkwpKSA9PSBudWxsID8gdm9pZCAwIDogX2ZpbmRTb3VyY2VNYXAucGF5bG9hZDtcbiAgICAgICAgfSBjYXRjaCAoY2F1c2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYCR7c2NyaXB0TmFtZU9yU291cmNlVVJMfTogSW52YWxpZCBzb3VyY2UgbWFwLiBPbmx5IGNvbmZvcm1hbnQgc291cmNlIG1hcHMgY2FuIGJlIHVzZWQgdG8gZmluZCB0aGUgb3JpZ2luYWwgY29kZS4gQ2F1c2U6ICR7Y2F1c2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvdXJjZU1hcFBheWxvYWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc291cmNlTWFwVVJMID0gaW52YWxpZFNvdXJjZU1hcDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRPRE86IE1pZ2h0IGJlIG1vcmUgZWZmaWNpZW50IHRvIGV4dHJhY3QgdGhlIHJlbGV2YW50IHNlY3Rpb24gZnJvbSBJbmRleCBNYXBzLlxuICAgICAgICAgICAgLy8gVW5jbGVhciBpZiB0aGF0IHNlYXJjaCBpcyB3b3J0aCB0aGUgc21hbGxlciBwYXlsb2FkIHdlIGhhdmUgdG8gc3RyaW5naWZ5LlxuICAgICAgICAgICAgY29uc3Qgc291cmNlTWFwSlNPTiA9IEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcFBheWxvYWQpO1xuICAgICAgICAgICAgY29uc3Qgc291cmNlTWFwVVJMRGF0YSA9IEJ1ZmZlci5mcm9tKHNvdXJjZU1hcEpTT04sICd1dGY4JykudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgICAgICAgc291cmNlTWFwVVJMID0gYGRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsJHtzb3VyY2VNYXBVUkxEYXRhfWA7XG4gICAgICAgIH1cbiAgICAgICAgc291cmNlTWFwVVJMcy5zZXQoc2NyaXB0TmFtZU9yU291cmNlVVJMLCBzb3VyY2VNYXBVUkwpO1xuICAgIH1cbiAgICByZXR1cm4gc291cmNlTWFwVVJMID09PSBpbnZhbGlkU291cmNlTWFwID8gbnVsbCA6IHNvdXJjZU1hcFVSTDtcbn1cbmZ1bmN0aW9uIGRldmlydHVhbGl6ZVJlYWN0U2VydmVyVVJMKHNvdXJjZVVSTCkge1xuICAgIGlmIChzb3VyY2VVUkwuc3RhcnRzV2l0aCgnYWJvdXQ6Ly9SZWFjdC8nKSkge1xuICAgICAgICAvLyBhYm91dDovL1JlYWN0L1NlcnZlci9maWxlOi8vPGZpbGVuYW1lPj80MiA9PiBmaWxlOi8vPGZpbGVuYW1lPlxuICAgICAgICBjb25zdCBlbnZJZHggPSBzb3VyY2VVUkwuaW5kZXhPZignLycsICdhYm91dDovL1JlYWN0LycubGVuZ3RoKTtcbiAgICAgICAgY29uc3Qgc3VmZml4SWR4ID0gc291cmNlVVJMLmxhc3RJbmRleE9mKCc/Jyk7XG4gICAgICAgIGlmIChlbnZJZHggPiAtMSAmJiBzdWZmaXhJZHggPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIGRlY29kZVVSSShzb3VyY2VVUkwuc2xpY2UoZW52SWR4ICsgMSwgc3VmZml4SWR4KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHNvdXJjZVVSTDtcbn1cbmZ1bmN0aW9uIGlzQW5vbnltb3VzRnJhbWVMaWtlbHlKU05hdGl2ZShtZXRob2ROYW1lKSB7XG4gICAgLy8gQW5vbnltb3VzIGZyYW1lcyBjYW4gYWxzbyBiZSBwcm9kdWNlZCBpbiBSZWFjdCBwYXJlbnQgc3RhY2tzIGVpdGhlciBmcm9tXG4gICAgLy8gaG9zdCBjb21wb25lbnRzIG9yIFNlcnZlciBDb21wb25lbnRzLiBXZSBkb24ndCB3YW50IHRvIGlnbm9yZSB0aG9zZS5cbiAgICAvLyBUaGlzIGNvdWxkIGhpZGUgdXNlci1zcGFjZSBtZXRob2RzIHRoYXQgYXJlIG5hbWVkIGxpa2UgbmF0aXZlIEpTIG1ldGhvZHMgYnV0XG4gICAgLy8gc2hvdWxkIHlvdSByZWFsbHkgZG8gdGhhdD9cbiAgICByZXR1cm4oLy8gZS5nLiBKU09OLnBhcnNlXG4gICAgbWV0aG9kTmFtZS5zdGFydHNXaXRoKCdKU09OLicpIHx8IC8vIEUuZy4gUHJvbWlzZS53aXRoUmVzb2x2ZXNcbiAgICBtZXRob2ROYW1lLnN0YXJ0c1dpdGgoJ0Z1bmN0aW9uLicpIHx8IC8vIHZhcmlvdXMgSlMgYnVpbHQtaW5zXG4gICAgbWV0aG9kTmFtZS5zdGFydHNXaXRoKCdQcm9taXNlLicpIHx8IG1ldGhvZE5hbWUuc3RhcnRzV2l0aCgnQXJyYXkuJykgfHwgbWV0aG9kTmFtZS5zdGFydHNXaXRoKCdTZXQuJykgfHwgbWV0aG9kTmFtZS5zdGFydHNXaXRoKCdNYXAuJykpO1xufVxuZnVuY3Rpb24gaWdub3JlTGlzdEFub255bW91c1N0YWNrRnJhbWVzSWZTYW5kd2ljaGVkKGZyYW1lcywgaXNBbm9ueW1vdXNGcmFtZSwgaXNJZ25vcmVkRnJhbWUsIGdldE1ldGhvZE5hbWUsIC8qKiBvbmx5IHBhc3NlcyBmcmFtZXMgZm9yIHdoaWNoIGBpc0Fub255bW91c0ZyYW1lYCBhbmQgdGhlaXIgbWV0aG9kIGlzIGEgbmF0aXZlIEpTIG1ldGhvZCBvciBgaXNJZ25vcmVkRnJhbWVgIHJldHVybiB0cnVlICovIGlnbm9yZUZyYW1lKSB7XG4gICAgZm9yKGxldCBpID0gMTsgaSA8IGZyYW1lcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRGcmFtZSA9IGZyYW1lc1tpXTtcbiAgICAgICAgaWYgKCEoaXNBbm9ueW1vdXNGcmFtZShjdXJyZW50RnJhbWUpICYmIGlzQW5vbnltb3VzRnJhbWVMaWtlbHlKU05hdGl2ZShnZXRNZXRob2ROYW1lKGN1cnJlbnRGcmFtZSkpKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJldmlvdXNGcmFtZUlzSWdub3JlZCA9IGlzSWdub3JlZEZyYW1lKGZyYW1lc1tpIC0gMV0pO1xuICAgICAgICBpZiAocHJldmlvdXNGcmFtZUlzSWdub3JlZCAmJiBpIDwgZnJhbWVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGxldCBpZ25vcmVTYW5kd2ljaCA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGogPSBpICsgMTtcbiAgICAgICAgICAgIGZvcihqOyBqIDwgZnJhbWVzLmxlbmd0aDsgaisrKXtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0RnJhbWUgPSBmcmFtZXNbal07XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYW1lSXNBbm9ueW1vdXMgPSBpc0Fub255bW91c0ZyYW1lKG5leHRGcmFtZSkgJiYgaXNBbm9ueW1vdXNGcmFtZUxpa2VseUpTTmF0aXZlKGdldE1ldGhvZE5hbWUobmV4dEZyYW1lKSk7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRGcmFtZUlzQW5vbnltb3VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0RnJhbWVJc0lnbm9yZWQgPSBpc0lnbm9yZWRGcmFtZShuZXh0RnJhbWUpO1xuICAgICAgICAgICAgICAgIGlmIChuZXh0RnJhbWVJc0lnbm9yZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWdub3JlU2FuZHdpY2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaWdub3JlU2FuZHdpY2gpIHtcbiAgICAgICAgICAgICAgICBmb3IoaTsgaSA8IGo7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZUZyYW1lKGZyYW1lc1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2UtbWFwcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/source-maps.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/streaming-metadata.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/streaming-metadata.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 isHtmlBotRequest: function() {\n return isHtmlBotRequest;\n },\n shouldServeStreamingMetadata: function() {\n return shouldServeStreamingMetadata;\n }\n});\nconst _isbot = __webpack_require__(/*! ../../shared/lib/router/utils/is-bot */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nfunction shouldServeStreamingMetadata(userAgent, htmlLimitedBots) {\n const blockingMetadataUARegex = new RegExp(htmlLimitedBots || _isbot.HTML_LIMITED_BOT_UA_RE_STRING, 'i');\n // Only block metadata for HTML-limited bots\n if (userAgent && blockingMetadataUARegex.test(userAgent)) {\n return false;\n }\n return true;\n}\nfunction isHtmlBotRequest(req) {\n const ua = req.headers['user-agent'] || '';\n const botType = (0, _isbot.getBotType)(ua);\n return botType === 'html';\n}\n\n//# sourceMappingURL=streaming-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvc3RyZWFtaW5nLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGVBQWUsbUJBQU8sQ0FBQyw4R0FBc0M7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9zdHJlYW1pbmctbWV0YWRhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc0h0bWxCb3RSZXF1ZXN0OiBudWxsLFxuICAgIHNob3VsZFNlcnZlU3RyZWFtaW5nTWV0YWRhdGE6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNIdG1sQm90UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0h0bWxCb3RSZXF1ZXN0O1xuICAgIH0sXG4gICAgc2hvdWxkU2VydmVTdHJlYW1pbmdNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzaG91bGRTZXJ2ZVN0cmVhbWluZ01ldGFkYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX2lzYm90ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdFwiKTtcbmZ1bmN0aW9uIHNob3VsZFNlcnZlU3RyZWFtaW5nTWV0YWRhdGEodXNlckFnZW50LCBodG1sTGltaXRlZEJvdHMpIHtcbiAgICBjb25zdCBibG9ja2luZ01ldGFkYXRhVUFSZWdleCA9IG5ldyBSZWdFeHAoaHRtbExpbWl0ZWRCb3RzIHx8IF9pc2JvdC5IVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORywgJ2knKTtcbiAgICAvLyBPbmx5IGJsb2NrIG1ldGFkYXRhIGZvciBIVE1MLWxpbWl0ZWQgYm90c1xuICAgIGlmICh1c2VyQWdlbnQgJiYgYmxvY2tpbmdNZXRhZGF0YVVBUmVnZXgudGVzdCh1c2VyQWdlbnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBpc0h0bWxCb3RSZXF1ZXN0KHJlcSkge1xuICAgIGNvbnN0IHVhID0gcmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSB8fCAnJztcbiAgICBjb25zdCBib3RUeXBlID0gKDAsIF9pc2JvdC5nZXRCb3RUeXBlKSh1YSk7XG4gICAgcmV0dXJuIGJvdFR5cGUgPT09ICdodG1sJztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RyZWFtaW5nLW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/streaming-metadata.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/trace/constants.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/trace/constants.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \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 AppRenderSpan: function() {\n return AppRenderSpan;\n },\n AppRouteRouteHandlersSpan: function() {\n return AppRouteRouteHandlersSpan;\n },\n BaseServerSpan: function() {\n return BaseServerSpan;\n },\n LoadComponentsSpan: function() {\n return LoadComponentsSpan;\n },\n LogSpanAllowList: function() {\n return LogSpanAllowList;\n },\n MiddlewareSpan: function() {\n return MiddlewareSpan;\n },\n NextNodeServerSpan: function() {\n return NextNodeServerSpan;\n },\n NextServerSpan: function() {\n return NextServerSpan;\n },\n NextVanillaSpanAllowlist: function() {\n return NextVanillaSpanAllowlist;\n },\n NodeSpan: function() {\n return NodeSpan;\n },\n RenderSpan: function() {\n return RenderSpan;\n },\n ResolveMetadataSpan: function() {\n return ResolveMetadataSpan;\n },\n RouterSpan: function() {\n return RouterSpan;\n },\n StartServerSpan: function() {\n return StartServerSpan;\n }\n});\nvar BaseServerSpan = /*#__PURE__*/ 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 return BaseServerSpan;\n}(BaseServerSpan || {});\nvar LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n return LoadComponentsSpan;\n}(LoadComponentsSpan || {});\nvar NextServerSpan = /*#__PURE__*/ function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n return NextServerSpan;\n}(NextServerSpan || {});\nvar NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"createComponentTree\"] = \"NextNodeServer.createComponentTree\";\n NextNodeServerSpan[\"clientComponentLoading\"] = \"NextNodeServer.clientComponentLoading\";\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[\"startResponse\"] = \"NextNodeServer.startResponse\";\n // nested inner span, does not require parent scope name\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n return NextNodeServerSpan;\n}(NextNodeServerSpan || {});\nvar StartServerSpan = /*#__PURE__*/ function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n return StartServerSpan;\n}(StartServerSpan || {});\nvar RenderSpan = /*#__PURE__*/ 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 return RenderSpan;\n}(RenderSpan || {});\nvar AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n return AppRenderSpan;\n}(AppRenderSpan || {});\nvar RouterSpan = /*#__PURE__*/ function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n return RouterSpan;\n}(RouterSpan || {});\nvar NodeSpan = /*#__PURE__*/ function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n return NodeSpan;\n}(NodeSpan || {});\nvar AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n return AppRouteRouteHandlersSpan;\n}(AppRouteRouteHandlersSpan || {});\nvar ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n return ResolveMetadataSpan;\n}(ResolveMetadataSpan || {});\nvar MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) {\n MiddlewareSpan[\"execute\"] = \"Middleware.execute\";\n return MiddlewareSpan;\n}(MiddlewareSpan || {});\nconst NextVanillaSpanAllowlist = [\n \"Middleware.execute\",\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.createComponentTree\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\",\n \"NextNodeServer.startResponse\",\n \"NextNodeServer.clientComponentLoading\"\n];\nconst LogSpanAllowList = [\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.clientComponentLoading\"\n];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUE0QztBQUM1Qyw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBZUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMscUJBQXFCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxxQkFBcUI7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzQkFBc0I7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG9CQUFvQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGVBQWU7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxnQ0FBZ0M7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBCQUEwQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFCQUFxQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGFpbnMgcHJlZGVmaW5lZCBjb25zdGFudHMgZm9yIHRoZSB0cmFjZSBzcGFuIG5hbWUgaW4gbmV4dC9zZXJ2ZXIuXG4gKlxuICogQ3VycmVudGx5LCBuZXh0L3NlcnZlci90cmFjZXIgaXMgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb25seSBmb3IgdHJhY2tpbmdcbiAqIG5leHQuanMncyBpbXBsZW1lbnRhdGlvbiBvbmx5IHdpdGgga25vd24gc3BhbiBuYW1lcyBkZWZpbmVkIGhlcmUuXG4gKiovIC8vIGVzbGludCB0eXBlc2NyaXB0IGhhcyBhIGJ1ZyB3aXRoIFRTIGVudW1zXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1zaGFkb3cgKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBBcHBSZW5kZXJTcGFuOiBudWxsLFxuICAgIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW46IG51bGwsXG4gICAgQmFzZVNlcnZlclNwYW46IG51bGwsXG4gICAgTG9hZENvbXBvbmVudHNTcGFuOiBudWxsLFxuICAgIExvZ1NwYW5BbGxvd0xpc3Q6IG51bGwsXG4gICAgTWlkZGxld2FyZVNwYW46IG51bGwsXG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuOiBudWxsLFxuICAgIE5leHRTZXJ2ZXJTcGFuOiBudWxsLFxuICAgIE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdDogbnVsbCxcbiAgICBOb2RlU3BhbjogbnVsbCxcbiAgICBSZW5kZXJTcGFuOiBudWxsLFxuICAgIFJlc29sdmVNZXRhZGF0YVNwYW46IG51bGwsXG4gICAgUm91dGVyU3BhbjogbnVsbCxcbiAgICBTdGFydFNlcnZlclNwYW46IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQXBwUmVuZGVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcHBSZW5kZXJTcGFuO1xuICAgIH0sXG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuO1xuICAgIH0sXG4gICAgQmFzZVNlcnZlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQmFzZVNlcnZlclNwYW47XG4gICAgfSxcbiAgICBMb2FkQ29tcG9uZW50c1NwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTG9hZENvbXBvbmVudHNTcGFuO1xuICAgIH0sXG4gICAgTG9nU3BhbkFsbG93TGlzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBMb2dTcGFuQWxsb3dMaXN0O1xuICAgIH0sXG4gICAgTWlkZGxld2FyZVNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTWlkZGxld2FyZVNwYW47XG4gICAgfSxcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dE5vZGVTZXJ2ZXJTcGFuO1xuICAgIH0sXG4gICAgTmV4dFNlcnZlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dFNlcnZlclNwYW47XG4gICAgfSxcbiAgICBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0O1xuICAgIH0sXG4gICAgTm9kZVNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTm9kZVNwYW47XG4gICAgfSxcbiAgICBSZW5kZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbmRlclNwYW47XG4gICAgfSxcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlc29sdmVNZXRhZGF0YVNwYW47XG4gICAgfSxcbiAgICBSb3V0ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJvdXRlclNwYW47XG4gICAgfSxcbiAgICBTdGFydFNlcnZlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU3RhcnRTZXJ2ZXJTcGFuO1xuICAgIH1cbn0pO1xudmFyIEJhc2VTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihCYXNlU2VydmVyU3Bhbikge1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wiaGFuZGxlUmVxdWVzdFwiXSA9IFwiQmFzZVNlcnZlci5oYW5kbGVSZXF1ZXN0XCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJydW5cIl0gPSBcIkJhc2VTZXJ2ZXIucnVuXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJwaXBlXCJdID0gXCJCYXNlU2VydmVyLnBpcGVcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcImdldFN0YXRpY0hUTUxcIl0gPSBcIkJhc2VTZXJ2ZXIuZ2V0U3RhdGljSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyVG9SZXNwb25zZVdpdGhDb21wb25lbnRzXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvUmVzcG9uc2VXaXRoQ29tcG9uZW50c1wiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyVG9SZXNwb25zZVwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb1Jlc3BvbnNlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb0hUTUxcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9IVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JUb1Jlc3BvbnNlXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yVG9SZXNwb25zZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JUb0hUTUxcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JUb0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlcjQwNFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXI0MDRcIjtcbiAgICByZXR1cm4gQmFzZVNlcnZlclNwYW47XG59KEJhc2VTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBMb2FkQ29tcG9uZW50c1NwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKExvYWRDb21wb25lbnRzU3Bhbikge1xuICAgIExvYWRDb21wb25lbnRzU3BhbltcImxvYWREZWZhdWx0RXJyb3JDb21wb25lbnRzXCJdID0gXCJMb2FkQ29tcG9uZW50cy5sb2FkRGVmYXVsdEVycm9yQ29tcG9uZW50c1wiO1xuICAgIExvYWRDb21wb25lbnRzU3BhbltcImxvYWRDb21wb25lbnRzXCJdID0gXCJMb2FkQ29tcG9uZW50cy5sb2FkQ29tcG9uZW50c1wiO1xuICAgIHJldHVybiBMb2FkQ29tcG9uZW50c1NwYW47XG59KExvYWRDb21wb25lbnRzU3BhbiB8fCB7fSk7XG52YXIgTmV4dFNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE5leHRTZXJ2ZXJTcGFuKSB7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiZ2V0U2VydmVyXCJdID0gXCJOZXh0U2VydmVyLmdldFNlcnZlclwiO1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiZ2V0U2VydmVyUmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0U2VydmVyUmVxdWVzdEhhbmRsZXJcIjtcbiAgICBOZXh0U2VydmVyU3BhbltcImNyZWF0ZVNlcnZlclwiXSA9IFwiY3JlYXRlU2VydmVyLmNyZWF0ZVNlcnZlclwiO1xuICAgIHJldHVybiBOZXh0U2VydmVyU3Bhbjtcbn0oTmV4dFNlcnZlclNwYW4gfHwge30pO1xudmFyIE5leHROb2RlU2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTmV4dE5vZGVTZXJ2ZXJTcGFuKSB7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiY29tcHJlc3Npb25cIl0gPSBcIk5leHROb2RlU2VydmVyLmNvbXByZXNzaW9uXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0QnVpbGRJZFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0QnVpbGRJZFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImNyZWF0ZUNvbXBvbmVudFRyZWVcIl0gPSBcIk5leHROb2RlU2VydmVyLmNyZWF0ZUNvbXBvbmVudFRyZWVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjbGllbnRDb21wb25lbnRMb2FkaW5nXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5jbGllbnRDb21wb25lbnRMb2FkaW5nXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRMYXlvdXRPclBhZ2VNb2R1bGVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZVN0YXRpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVTdGF0aWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZUZzU3RhdGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZUZzU3RhdGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVQdWJsaWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlUHVibGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVJbWFnZVJvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVJbWFnZVJvdXRlcy5yb3V0ZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInNlbmRSZW5kZXJSZXN1bHRcIl0gPSBcIk5leHROb2RlU2VydmVyLnNlbmRSZW5kZXJSZXN1bHRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJwcm94eVJlcXVlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLnByb3h5UmVxdWVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJ1bkFwaVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucnVuQXBpXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJIVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJIVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiaW1hZ2VPcHRpbWl6ZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLmltYWdlT3B0aW1pemVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0UGFnZVBhdGhcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFBhZ2VQYXRoXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0Um91dGVzTWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFJvdXRlc01hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZmluZFBhZ2VDb21wb25lbnRzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5maW5kUGFnZUNvbXBvbmVudHNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRGb250TWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldEZvbnRNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFNlcnZlckNvbXBvbmVudE1hbmlmZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRTZXJ2ZXJDb21wb25lbnRNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlclRvSFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyVG9IVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckVycm9yXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JUb0hUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckVycm9yVG9IVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyNDA0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXI0MDRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJzdGFydFJlc3BvbnNlXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5zdGFydFJlc3BvbnNlXCI7XG4gICAgLy8gbmVzdGVkIGlubmVyIHNwYW4sIGRvZXMgbm90IHJlcXVpcmUgcGFyZW50IHNjb3BlIG5hbWVcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyb3V0ZVwiXSA9IFwicm91dGVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJvblByb3h5UmVxXCJdID0gXCJvblByb3h5UmVxXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiYXBpUmVzb2x2ZXJcIl0gPSBcImFwaVJlc29sdmVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiaW50ZXJuYWxGZXRjaFwiXSA9IFwiaW50ZXJuYWxGZXRjaFwiO1xuICAgIHJldHVybiBOZXh0Tm9kZVNlcnZlclNwYW47XG59KE5leHROb2RlU2VydmVyU3BhbiB8fCB7fSk7XG52YXIgU3RhcnRTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihTdGFydFNlcnZlclNwYW4pIHtcbiAgICBTdGFydFNlcnZlclNwYW5bXCJzdGFydFNlcnZlclwiXSA9IFwic3RhcnRTZXJ2ZXIuc3RhcnRTZXJ2ZXJcIjtcbiAgICByZXR1cm4gU3RhcnRTZXJ2ZXJTcGFuO1xufShTdGFydFNlcnZlclNwYW4gfHwge30pO1xudmFyIFJlbmRlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJlbmRlclNwYW4pIHtcbiAgICBSZW5kZXJTcGFuW1wiZ2V0U2VydmVyU2lkZVByb3BzXCJdID0gXCJSZW5kZXIuZ2V0U2VydmVyU2lkZVByb3BzXCI7XG4gICAgUmVuZGVyU3BhbltcImdldFN0YXRpY1Byb3BzXCJdID0gXCJSZW5kZXIuZ2V0U3RhdGljUHJvcHNcIjtcbiAgICBSZW5kZXJTcGFuW1wicmVuZGVyVG9TdHJpbmdcIl0gPSBcIlJlbmRlci5yZW5kZXJUb1N0cmluZ1wiO1xuICAgIFJlbmRlclNwYW5bXCJyZW5kZXJEb2N1bWVudFwiXSA9IFwiUmVuZGVyLnJlbmRlckRvY3VtZW50XCI7XG4gICAgUmVuZGVyU3BhbltcImNyZWF0ZUJvZHlSZXN1bHRcIl0gPSBcIlJlbmRlci5jcmVhdGVCb2R5UmVzdWx0XCI7XG4gICAgcmV0dXJuIFJlbmRlclNwYW47XG59KFJlbmRlclNwYW4gfHwge30pO1xudmFyIEFwcFJlbmRlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEFwcFJlbmRlclNwYW4pIHtcbiAgICBBcHBSZW5kZXJTcGFuW1wicmVuZGVyVG9TdHJpbmdcIl0gPSBcIkFwcFJlbmRlci5yZW5kZXJUb1N0cmluZ1wiO1xuICAgIEFwcFJlbmRlclNwYW5bXCJyZW5kZXJUb1JlYWRhYmxlU3RyZWFtXCJdID0gXCJBcHBSZW5kZXIucmVuZGVyVG9SZWFkYWJsZVN0cmVhbVwiO1xuICAgIEFwcFJlbmRlclNwYW5bXCJnZXRCb2R5UmVzdWx0XCJdID0gXCJBcHBSZW5kZXIuZ2V0Qm9keVJlc3VsdFwiO1xuICAgIEFwcFJlbmRlclNwYW5bXCJmZXRjaFwiXSA9IFwiQXBwUmVuZGVyLmZldGNoXCI7XG4gICAgcmV0dXJuIEFwcFJlbmRlclNwYW47XG59KEFwcFJlbmRlclNwYW4gfHwge30pO1xudmFyIFJvdXRlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJvdXRlclNwYW4pIHtcbiAgICBSb3V0ZXJTcGFuW1wiZXhlY3V0ZVJvdXRlXCJdID0gXCJSb3V0ZXIuZXhlY3V0ZVJvdXRlXCI7XG4gICAgcmV0dXJuIFJvdXRlclNwYW47XG59KFJvdXRlclNwYW4gfHwge30pO1xudmFyIE5vZGVTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihOb2RlU3Bhbikge1xuICAgIE5vZGVTcGFuW1wicnVuSGFuZGxlclwiXSA9IFwiTm9kZS5ydW5IYW5kbGVyXCI7XG4gICAgcmV0dXJuIE5vZGVTcGFuO1xufShOb2RlU3BhbiB8fCB7fSk7XG52YXIgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3Bhbikge1xuICAgIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW5bXCJydW5IYW5kbGVyXCJdID0gXCJBcHBSb3V0ZVJvdXRlSGFuZGxlcnMucnVuSGFuZGxlclwiO1xuICAgIHJldHVybiBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuO1xufShBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuIHx8IHt9KTtcbnZhciBSZXNvbHZlTWV0YWRhdGFTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSZXNvbHZlTWV0YWRhdGFTcGFuKSB7XG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbltcImdlbmVyYXRlTWV0YWRhdGFcIl0gPSBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZU1ldGFkYXRhXCI7XG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbltcImdlbmVyYXRlVmlld3BvcnRcIl0gPSBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZVZpZXdwb3J0XCI7XG4gICAgcmV0dXJuIFJlc29sdmVNZXRhZGF0YVNwYW47XG59KFJlc29sdmVNZXRhZGF0YVNwYW4gfHwge30pO1xudmFyIE1pZGRsZXdhcmVTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihNaWRkbGV3YXJlU3Bhbikge1xuICAgIE1pZGRsZXdhcmVTcGFuW1wiZXhlY3V0ZVwiXSA9IFwiTWlkZGxld2FyZS5leGVjdXRlXCI7XG4gICAgcmV0dXJuIE1pZGRsZXdhcmVTcGFuO1xufShNaWRkbGV3YXJlU3BhbiB8fCB7fSk7XG5jb25zdCBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QgPSBbXG4gICAgXCJNaWRkbGV3YXJlLmV4ZWN1dGVcIixcbiAgICBcIkJhc2VTZXJ2ZXIuaGFuZGxlUmVxdWVzdFwiLFxuICAgIFwiUmVuZGVyLmdldFNlcnZlclNpZGVQcm9wc1wiLFxuICAgIFwiUmVuZGVyLmdldFN0YXRpY1Byb3BzXCIsXG4gICAgXCJBcHBSZW5kZXIuZmV0Y2hcIixcbiAgICBcIkFwcFJlbmRlci5nZXRCb2R5UmVzdWx0XCIsXG4gICAgXCJSZW5kZXIucmVuZGVyRG9jdW1lbnRcIixcbiAgICBcIk5vZGUucnVuSGFuZGxlclwiLFxuICAgIFwiQXBwUm91dGVSb3V0ZUhhbmRsZXJzLnJ1bkhhbmRsZXJcIixcbiAgICBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZU1ldGFkYXRhXCIsXG4gICAgXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVWaWV3cG9ydFwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY3JlYXRlQ29tcG9uZW50VHJlZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZmluZFBhZ2VDb21wb25lbnRzXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5nZXRMYXlvdXRPclBhZ2VNb2R1bGVcIixcbiAgICBcIk5leHROb2RlU2VydmVyLnN0YXJ0UmVzcG9uc2VcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmNsaWVudENvbXBvbmVudExvYWRpbmdcIlxuXTtcbmNvbnN0IExvZ1NwYW5BbGxvd0xpc3QgPSBbXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5maW5kUGFnZUNvbXBvbmVudHNcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmNyZWF0ZUNvbXBvbmVudFRyZWVcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmNsaWVudENvbXBvbmVudExvYWRpbmdcIlxuXTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/trace/tracer.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 BubbledError: function() {\n return BubbledError;\n },\n SpanKind: function() {\n return SpanKind;\n },\n SpanStatusCode: function() {\n return SpanStatusCode;\n },\n getTracer: function() {\n return getTracer;\n },\n isBubbledError: function() {\n return isBubbledError;\n }\n});\nconst _constants = __webpack_require__(/*! ./constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _isthenable = __webpack_require__(/*! ../../../shared/lib/is-thenable */ \"(rsc)/./node_modules/next/dist/shared/lib/is-thenable.js\");\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 (false) {} else {\n try {\n api = __webpack_require__(/*! @opentelemetry/api */ \"(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n } catch (err) {\n api = __webpack_require__(/*! next/dist/compiled/@opentelemetry/api */ \"(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n }\n}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nclass BubbledError extends Error {\n constructor(bubble, result){\n super(), this.bubble = bubble, this.result = result;\n }\n}\nfunction isBubbledError(error) {\n if (typeof error !== 'object' || error === null) return false;\n return error instanceof BubbledError;\n}\nconst closeSpanWithError = (span, error)=>{\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true);\n } else {\n if (error) {\n span.recordException(error);\n span.setAttribute('error.type', error.name);\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++;\nconst clientTraceDataSetter = {\n set (carrier, key, value) {\n carrier.push({\n key,\n value\n });\n }\n};\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 getTracePropagationData() {\n const activeContext = context.active();\n const entries = [];\n propagation.inject(activeContext, entries, clientTraceDataSetter);\n return entries;\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 const spanName = options.spanName ?? type;\n if (!_constants.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) {\n return fn();\n }\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 = (context == null ? void 0 : context.active()) ?? 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 startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined;\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || '')) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, {\n start: startTime,\n end: performance.now()\n });\n }\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 ((0, _isthenable.isThenable)(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.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 setRootSpanAttribute(key, value) {\n const spanId = context.active().getValue(rootSpanIdKey);\n const attributes = rootSpanAttributesStore.get(spanId);\n if (attributes) {\n attributes.set(key, value);\n }\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n\n//# sourceMappingURL=tracer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdHJhY2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG1CQUFtQixtQkFBTyxDQUFDLGlGQUFhO0FBQ3hDLG9CQUFvQixtQkFBTyxDQUFDLGlHQUFpQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRjtBQUNBLGNBQWMsbUJBQU8sQ0FBQywrRkFBb0I7QUFDMUMsTUFBTTtBQUNOLGNBQWMsbUJBQU8sQ0FBQyxrSEFBdUM7QUFDN0Q7QUFDQTtBQUNBLFFBQVEsc0VBQXNFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLHlDQUF5QyxRQUFRLG9GQUFvRjtBQUNwTDtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLHVHQUF1RztBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEVBQThFO0FBQzlFO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIsc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdHJhY2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQnViYmxlZEVycm9yOiBudWxsLFxuICAgIFNwYW5LaW5kOiBudWxsLFxuICAgIFNwYW5TdGF0dXNDb2RlOiBudWxsLFxuICAgIGdldFRyYWNlcjogbnVsbCxcbiAgICBpc0J1YmJsZWRFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBCdWJibGVkRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQnViYmxlZEVycm9yO1xuICAgIH0sXG4gICAgU3BhbktpbmQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU3BhbktpbmQ7XG4gICAgfSxcbiAgICBTcGFuU3RhdHVzQ29kZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTcGFuU3RhdHVzQ29kZTtcbiAgICB9LFxuICAgIGdldFRyYWNlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRUcmFjZXI7XG4gICAgfSxcbiAgICBpc0J1YmJsZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0J1YmJsZWRFcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi9jb25zdGFudHNcIik7XG5jb25zdCBfaXN0aGVuYWJsZSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvbGliL2lzLXRoZW5hYmxlXCIpO1xubGV0IGFwaTtcbi8vIHdlIHdhbnQgdG8gYWxsb3cgdXNlcnMgdG8gdXNlIHRoZWlyIG93biB2ZXJzaW9uIG9mIEBvcGVudGVsZW1ldHJ5L2FwaSBpZiB0aGV5XG4vLyB3YW50IHRvLCBzbyB3ZSB0cnkgdG8gcmVxdWlyZSBpdCBmaXJzdCwgYW5kIGlmIGl0IGZhaWxzIHdlIGZhbGwgYmFjayB0byB0aGVcbi8vIHZlcnNpb24gdGhhdCBpcyBidW5kbGVkIHdpdGggTmV4dC5qc1xuLy8gdGhpcyBpcyBiZWNhdXNlIEBvcGVudGVsZW1ldHJ5L2FwaSBoYXMgdG8gYmUgc3luY2VkIHdpdGggdGhlIHZlcnNpb24gb2Zcbi8vIEBvcGVudGVsZW1ldHJ5L3RyYWNpbmcgdGhhdCBpcyB1c2VkLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBmb3JjZSB1c2VycyB0byB1c2Vcbi8vIHRoZSB2ZXJzaW9uIHRoYXQgaXMgYnVuZGxlZCB3aXRoIE5leHQuanMuXG4vLyB0aGUgQVBJIGlzIH5zdGFibGUsIHNvIHRoaXMgc2hvdWxkIGJlIGZpbmVcbmlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgIGFwaSA9IHJlcXVpcmUoJ0BvcGVudGVsZW1ldHJ5L2FwaScpO1xufSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgICBhcGkgPSByZXF1aXJlKCdAb3BlbnRlbGVtZXRyeS9hcGknKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgYXBpID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaScpO1xuICAgIH1cbn1cbmNvbnN0IHsgY29udGV4dCwgcHJvcGFnYXRpb24sIHRyYWNlLCBTcGFuU3RhdHVzQ29kZSwgU3BhbktpbmQsIFJPT1RfQ09OVEVYVCB9ID0gYXBpO1xuY2xhc3MgQnViYmxlZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKGJ1YmJsZSwgcmVzdWx0KXtcbiAgICAgICAgc3VwZXIoKSwgdGhpcy5idWJibGUgPSBidWJibGUsIHRoaXMucmVzdWx0ID0gcmVzdWx0O1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlzQnViYmxlZEVycm9yKGVycm9yKSB7XG4gICAgaWYgKHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgfHwgZXJyb3IgPT09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gZXJyb3IgaW5zdGFuY2VvZiBCdWJibGVkRXJyb3I7XG59XG5jb25zdCBjbG9zZVNwYW5XaXRoRXJyb3IgPSAoc3BhbiwgZXJyb3IpPT57XG4gICAgaWYgKGlzQnViYmxlZEVycm9yKGVycm9yKSAmJiBlcnJvci5idWJibGUpIHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ25leHQuYnViYmxlJywgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICBzcGFuLnJlY29yZEV4Y2VwdGlvbihlcnJvcik7XG4gICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZXJyb3IudHlwZScsIGVycm9yLm5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHNwYW4uc2V0U3RhdHVzKHtcbiAgICAgICAgICAgIGNvZGU6IFNwYW5TdGF0dXNDb2RlLkVSUk9SLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IgPT0gbnVsbCA/IHZvaWQgMCA6IGVycm9yLm1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNwYW4uZW5kKCk7XG59O1xuLyoqIHdlIHVzZSB0aGlzIG1hcCB0byBwcm9wYWdhdGUgYXR0cmlidXRlcyBmcm9tIG5lc3RlZCBzcGFucyB0byB0aGUgdG9wIHNwYW4gKi8gY29uc3Qgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUgPSBuZXcgTWFwKCk7XG5jb25zdCByb290U3BhbklkS2V5ID0gYXBpLmNyZWF0ZUNvbnRleHRLZXkoJ25leHQucm9vdFNwYW5JZCcpO1xubGV0IGxhc3RTcGFuSWQgPSAwO1xuY29uc3QgZ2V0U3BhbklkID0gKCk9Pmxhc3RTcGFuSWQrKztcbmNvbnN0IGNsaWVudFRyYWNlRGF0YVNldHRlciA9IHtcbiAgICBzZXQgKGNhcnJpZXIsIGtleSwgdmFsdWUpIHtcbiAgICAgICAgY2Fycmllci5wdXNoKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5jbGFzcyBOZXh0VHJhY2VySW1wbCB7XG4gICAgLyoqXG4gICAqIFJldHVybnMgYW4gaW5zdGFuY2UgdG8gdGhlIHRyYWNlIHdpdGggY29uZmlndXJlZCBuYW1lLlxuICAgKiBTaW5jZSB3cmFwIC8gdHJhY2UgY2FuIGJlIGRlZmluZWQgaW4gYW55IHBsYWNlIHByaW9yIHRvIGFjdHVhbCB0cmFjZSBzdWJzY3JpYmVyIGluaXRpYWxpemF0aW9uLFxuICAgKiBUaGlzIHNob3VsZCBiZSBsYXppbHkgZXZhbHVhdGVkLlxuICAgKi8gZ2V0VHJhY2VySW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0cmFjZS5nZXRUcmFjZXIoJ25leHQuanMnLCAnMC4wLjEnKTtcbiAgICB9XG4gICAgZ2V0Q29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfVxuICAgIGdldFRyYWNlUHJvcGFnYXRpb25EYXRhKCkge1xuICAgICAgICBjb25zdCBhY3RpdmVDb250ZXh0ID0gY29udGV4dC5hY3RpdmUoKTtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IFtdO1xuICAgICAgICBwcm9wYWdhdGlvbi5pbmplY3QoYWN0aXZlQ29udGV4dCwgZW50cmllcywgY2xpZW50VHJhY2VEYXRhU2V0dGVyKTtcbiAgICAgICAgcmV0dXJuIGVudHJpZXM7XG4gICAgfVxuICAgIGdldEFjdGl2ZVNjb3BlU3BhbigpIHtcbiAgICAgICAgcmV0dXJuIHRyYWNlLmdldFNwYW4oY29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogY29udGV4dC5hY3RpdmUoKSk7XG4gICAgfVxuICAgIHdpdGhQcm9wYWdhdGVkQ29udGV4dChjYXJyaWVyLCBmbiwgZ2V0dGVyKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUNvbnRleHQgPSBjb250ZXh0LmFjdGl2ZSgpO1xuICAgICAgICBpZiAodHJhY2UuZ2V0U3BhbkNvbnRleHQoYWN0aXZlQ29udGV4dCkpIHtcbiAgICAgICAgICAgIC8vIEFjdGl2ZSBzcGFuIGlzIGFscmVhZHkgc2V0LCB0b28gbGF0ZSB0byBwcm9wYWdhdGUuXG4gICAgICAgICAgICByZXR1cm4gZm4oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZW1vdGVDb250ZXh0ID0gcHJvcGFnYXRpb24uZXh0cmFjdChhY3RpdmVDb250ZXh0LCBjYXJyaWVyLCBnZXR0ZXIpO1xuICAgICAgICByZXR1cm4gY29udGV4dC53aXRoKHJlbW90ZUNvbnRleHQsIGZuKTtcbiAgICB9XG4gICAgdHJhY2UoLi4uYXJncykge1xuICAgICAgICB2YXIgX3RyYWNlX2dldFNwYW5Db250ZXh0O1xuICAgICAgICBjb25zdCBbdHlwZSwgZm5Pck9wdGlvbnMsIGZuT3JFbXB0eV0gPSBhcmdzO1xuICAgICAgICAvLyBjb2VyY2Ugb3B0aW9ucyBmb3JtIG92ZXJsb2FkXG4gICAgICAgIGNvbnN0IHsgZm4sIG9wdGlvbnMgfSA9IHR5cGVvZiBmbk9yT3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJyA/IHtcbiAgICAgICAgICAgIGZuOiBmbk9yT3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHt9XG4gICAgICAgIH0gOiB7XG4gICAgICAgICAgICBmbjogZm5PckVtcHR5LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIC4uLmZuT3JPcHRpb25zXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHNwYW5OYW1lID0gb3B0aW9ucy5zcGFuTmFtZSA/PyB0eXBlO1xuICAgICAgICBpZiAoIV9jb25zdGFudHMuTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0LmluY2x1ZGVzKHR5cGUpICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9WRVJCT1NFICE9PSAnMScgfHwgb3B0aW9ucy5oaWRlU3Bhbikge1xuICAgICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHJ5aW5nIHRvIGdldCBhY3RpdmUgc2NvcGVkIHNwYW4gdG8gYXNzaWduIHBhcmVudC4gSWYgb3B0aW9uIHNwZWNpZmllcyBwYXJlbnQgc3BhbiBtYW51YWxseSwgd2lsbCB0cnkgdG8gdXNlIGl0LlxuICAgICAgICBsZXQgc3BhbkNvbnRleHQgPSB0aGlzLmdldFNwYW5Db250ZXh0KChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnBhcmVudFNwYW4pID8/IHRoaXMuZ2V0QWN0aXZlU2NvcGVTcGFuKCkpO1xuICAgICAgICBsZXQgaXNSb290U3BhbiA9IGZhbHNlO1xuICAgICAgICBpZiAoIXNwYW5Db250ZXh0KSB7XG4gICAgICAgICAgICBzcGFuQ29udGV4dCA9IChjb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBjb250ZXh0LmFjdGl2ZSgpKSA/PyBST09UX0NPTlRFWFQ7XG4gICAgICAgICAgICBpc1Jvb3RTcGFuID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICgoX3RyYWNlX2dldFNwYW5Db250ZXh0ID0gdHJhY2UuZ2V0U3BhbkNvbnRleHQoc3BhbkNvbnRleHQpKSA9PSBudWxsID8gdm9pZCAwIDogX3RyYWNlX2dldFNwYW5Db250ZXh0LmlzUmVtb3RlKSB7XG4gICAgICAgICAgICBpc1Jvb3RTcGFuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzcGFuSWQgPSBnZXRTcGFuSWQoKTtcbiAgICAgICAgb3B0aW9ucy5hdHRyaWJ1dGVzID0ge1xuICAgICAgICAgICAgJ25leHQuc3Bhbl9uYW1lJzogc3Bhbk5hbWUsXG4gICAgICAgICAgICAnbmV4dC5zcGFuX3R5cGUnOiB0eXBlLFxuICAgICAgICAgICAgLi4ub3B0aW9ucy5hdHRyaWJ1dGVzXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBjb250ZXh0LndpdGgoc3BhbkNvbnRleHQuc2V0VmFsdWUocm9vdFNwYW5JZEtleSwgc3BhbklkKSwgKCk9PnRoaXMuZ2V0VHJhY2VySW5zdGFuY2UoKS5zdGFydEFjdGl2ZVNwYW4oc3Bhbk5hbWUsIG9wdGlvbnMsIChzcGFuKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9ICdwZXJmb3JtYW5jZScgaW4gZ2xvYmFsVGhpcyAmJiAnbWVhc3VyZScgaW4gcGVyZm9ybWFuY2UgPyBnbG9iYWxUaGlzLnBlcmZvcm1hbmNlLm5vdygpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9uQ2xlYW51cCA9ICgpPT57XG4gICAgICAgICAgICAgICAgICAgIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLmRlbGV0ZShzcGFuSWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRUaW1lICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9QRVJGT1JNQU5DRV9QUkVGSVggJiYgX2NvbnN0YW50cy5Mb2dTcGFuQWxsb3dMaXN0LmluY2x1ZGVzKHR5cGUgfHwgJycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZS5tZWFzdXJlKGAke3Byb2Nlc3MuZW52Lk5FWFRfT1RFTF9QRVJGT1JNQU5DRV9QUkVGSVh9Om5leHQtJHsodHlwZS5zcGxpdCgnLicpLnBvcCgpIHx8ICcnKS5yZXBsYWNlKC9bQS1aXS9nLCAobWF0Y2gpPT4nLScgKyBtYXRjaC50b0xvd2VyQ2FzZSgpKX1gLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IHBlcmZvcm1hbmNlLm5vdygpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKGlzUm9vdFNwYW4pIHtcbiAgICAgICAgICAgICAgICAgICAgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuc2V0KHNwYW5JZCwgbmV3IE1hcChPYmplY3QuZW50cmllcyhvcHRpb25zLmF0dHJpYnV0ZXMgPz8ge30pKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm4oc3BhbiwgKGVycik9PmNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBmbihzcGFuKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCgwLCBfaXN0aGVuYWJsZS5pc1RoZW5hYmxlKShyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIGVycm9yIG1ha2Ugc3VyZSBpdCB0aHJvd3NcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmVlZCB0byBwYXNzIGRvd24gdGhlIHByb21pc2UgcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0IGNvdWxkIGJlIHJlYWN0IHN0cmVhbSByZXNwb25zZSB3aXRoIGVycm9yIHsgZXJyb3IsIHN0cmVhbSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuZmluYWxseShvbkNsZWFudXApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xlYW51cCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG4gICAgd3JhcCguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHRyYWNlciA9IHRoaXM7XG4gICAgICAgIGNvbnN0IFtuYW1lLCBvcHRpb25zLCBmbl0gPSBhcmdzLmxlbmd0aCA9PT0gMyA/IGFyZ3MgOiBbXG4gICAgICAgICAgICBhcmdzWzBdLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICBhcmdzWzFdXG4gICAgICAgIF07XG4gICAgICAgIGlmICghX2NvbnN0YW50cy5OZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QuaW5jbHVkZXMobmFtZSkgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1ZFUkJPU0UgIT09ICcxJykge1xuICAgICAgICAgICAgcmV0dXJuIGZuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGxldCBvcHRpb25zT2JqID0gb3B0aW9ucztcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09iaiA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zT2JqID0gb3B0aW9uc09iai5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGFzdEFyZ0lkID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBjb25zdCBjYiA9IGFyZ3VtZW50c1tsYXN0QXJnSWRdO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjYiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjb3BlQm91bmRDYiA9IHRyYWNlci5nZXRDb250ZXh0KCkuYmluZChjb250ZXh0LmFjdGl2ZSgpLCBjYik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYWNlci50cmFjZShuYW1lLCBvcHRpb25zT2JqLCAoX3NwYW4sIGRvbmUpPT57XG4gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50c1tsYXN0QXJnSWRdID0gZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb25lID09IG51bGwgPyB2b2lkIDAgOiBkb25lKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2NvcGVCb3VuZENiLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhY2VyLnRyYWNlKG5hbWUsIG9wdGlvbnNPYmosICgpPT5mbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhcnRTcGFuKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgW3R5cGUsIG9wdGlvbnNdID0gYXJncztcbiAgICAgICAgY29uc3Qgc3BhbkNvbnRleHQgPSB0aGlzLmdldFNwYW5Db250ZXh0KChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnBhcmVudFNwYW4pID8/IHRoaXMuZ2V0QWN0aXZlU2NvcGVTcGFuKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFjZXJJbnN0YW5jZSgpLnN0YXJ0U3Bhbih0eXBlLCBvcHRpb25zLCBzcGFuQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFNwYW5Db250ZXh0KHBhcmVudFNwYW4pIHtcbiAgICAgICAgY29uc3Qgc3BhbkNvbnRleHQgPSBwYXJlbnRTcGFuID8gdHJhY2Uuc2V0U3Bhbihjb250ZXh0LmFjdGl2ZSgpLCBwYXJlbnRTcGFuKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHNwYW5Db250ZXh0O1xuICAgIH1cbiAgICBnZXRSb290U3BhbkF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGNvbnRleHQuYWN0aXZlKCkuZ2V0VmFsdWUocm9vdFNwYW5JZEtleSk7XG4gICAgICAgIHJldHVybiByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5nZXQoc3BhbklkKTtcbiAgICB9XG4gICAgc2V0Um9vdFNwYW5BdHRyaWJ1dGUoa2V5LCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBzcGFuSWQgPSBjb250ZXh0LmFjdGl2ZSgpLmdldFZhbHVlKHJvb3RTcGFuSWRLZXkpO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZ2V0KHNwYW5JZCk7XG4gICAgICAgIGlmIChhdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmNvbnN0IGdldFRyYWNlciA9ICgoKT0+e1xuICAgIGNvbnN0IHRyYWNlciA9IG5ldyBOZXh0VHJhY2VySW1wbCgpO1xuICAgIHJldHVybiAoKT0+dHJhY2VyO1xufSkoKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHJhY2VyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/pipe-readable.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/pipe-readable.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 isAbortError: function() {\n return isAbortError;\n },\n pipeToNodeResponse: function() {\n return pipeToNodeResponse;\n }\n});\nconst _nextrequest = __webpack_require__(/*! ./web/spec-extension/adapters/next-request */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\");\nconst _detachedpromise = __webpack_require__(/*! ../lib/detached-promise */ \"(rsc)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _tracer = __webpack_require__(/*! ./lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ./lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _clientcomponentrendererlogger = __webpack_require__(/*! ./client-component-renderer-logger */ \"(rsc)/./node_modules/next/dist/server/client-component-renderer-logger.js\");\nfunction isAbortError(e) {\n return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === _nextrequest.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 _detachedpromise.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 _detachedpromise.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 if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) {\n const metrics = (0, _clientcomponentrendererlogger.getClientComponentLoaderMetrics)();\n if (metrics) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, {\n start: metrics.clientComponentLoadStart,\n end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes\n });\n }\n }\n res.flushHeaders();\n (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.startResponse, {\n spanName: 'start response'\n }, ()=>undefined);\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 _detachedpromise.DetachedPromise();\n }\n } catch (err) {\n res.end();\n throw Object.defineProperty(new Error('failed to write chunk to response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E321\",\n enumerable: false,\n configurable: true\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, _nextrequest.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 Object.defineProperty(new Error('failed to pipe response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E180\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=pipe-readable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9waXBlLXJlYWRhYmxlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQixtQkFBTyxDQUFDLHFJQUE0QztBQUN6RSx5QkFBeUIsbUJBQU8sQ0FBQyx1RkFBeUI7QUFDMUQsZ0JBQWdCLG1CQUFPLENBQUMscUZBQW9CO0FBQzVDLG1CQUFtQixtQkFBTyxDQUFDLDJGQUF1QjtBQUNsRCx1Q0FBdUMsbUJBQU8sQ0FBQyxxSEFBb0M7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUNBQXlDO0FBQ3hGO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IscUJBQXFCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcGlwZS1yZWFkYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzQWJvcnRFcnJvcjogbnVsbCxcbiAgICBwaXBlVG9Ob2RlUmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNBYm9ydEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQWJvcnRFcnJvcjtcbiAgICB9LFxuICAgIHBpcGVUb05vZGVSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwaXBlVG9Ob2RlUmVzcG9uc2U7XG4gICAgfVxufSk7XG5jb25zdCBfbmV4dHJlcXVlc3QgPSByZXF1aXJlKFwiLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0XCIpO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiKTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi9saWIvdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfY2xpZW50Y29tcG9uZW50cmVuZGVyZXJsb2dnZXIgPSByZXF1aXJlKFwiLi9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlclwiKTtcbmZ1bmN0aW9uIGlzQWJvcnRFcnJvcihlKSB7XG4gICAgcmV0dXJuIChlID09IG51bGwgPyB2b2lkIDAgOiBlLm5hbWUpID09PSAnQWJvcnRFcnJvcicgfHwgKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUubmFtZSkgPT09IF9uZXh0cmVxdWVzdC5SZXNwb25zZUFib3J0ZWROYW1lO1xufVxuZnVuY3Rpb24gY3JlYXRlV3JpdGVyRnJvbVJlc3BvbnNlKHJlcywgd2FpdFVudGlsRm9yRW5kKSB7XG4gICAgbGV0IHN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAvLyBDcmVhdGUgYSBwcm9taXNlIHRoYXQgd2lsbCByZXNvbHZlIG9uY2UgdGhlIHJlc3BvbnNlIGhhcyBkcmFpbmVkLiBTZWVcbiAgICAvLyBodHRwczovL25vZGVqcy5vcmcvYXBpL3N0cmVhbS5odG1sI3N0cmVhbV9ldmVudF9kcmFpblxuICAgIGxldCBkcmFpbmVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgZnVuY3Rpb24gb25EcmFpbigpIHtcbiAgICAgICAgZHJhaW5lZC5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJlcy5vbignZHJhaW4nLCBvbkRyYWluKTtcbiAgICAvLyBJZiB0aGUgZmluaXNoIGV2ZW50IGZpcmVzLCBpdCBtZWFucyB3ZSBzaG91bGRuJ3QgYmxvY2sgYW5kIHdhaXQgZm9yIHRoZVxuICAgIC8vIGRyYWluIGV2ZW50LlxuICAgIHJlcy5vbmNlKCdjbG9zZScsICgpPT57XG4gICAgICAgIHJlcy5vZmYoJ2RyYWluJywgb25EcmFpbik7XG4gICAgICAgIGRyYWluZWQucmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIC8vIENyZWF0ZSBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgb25jZSB0aGUgcmVzcG9uc2UgaGFzIGZpbmlzaGVkLiBTZWVcbiAgICAvLyBodHRwczovL25vZGVqcy5vcmcvYXBpL2h0dHAuaHRtbCNldmVudC1maW5pc2hfMVxuICAgIGNvbnN0IGZpbmlzaGVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgcmVzLm9uY2UoJ2ZpbmlzaCcsICgpPT57XG4gICAgICAgIGZpbmlzaGVkLnJlc29sdmUoKTtcbiAgICB9KTtcbiAgICAvLyBDcmVhdGUgYSB3cml0YWJsZSBzdHJlYW0gdGhhdCB3aWxsIHdyaXRlIHRvIHRoZSByZXNwb25zZS5cbiAgICByZXR1cm4gbmV3IFdyaXRhYmxlU3RyZWFtKHtcbiAgICAgICAgd3JpdGU6IGFzeW5jIChjaHVuayk9PntcbiAgICAgICAgICAgIC8vIFlvdSdkIHRoaW5rIHdlJ2Qgd2FudCB0byB1c2UgYHN0YXJ0YCBpbnN0ZWFkIG9mIHBsYWNpbmcgdGhpcyBpbiBgd3JpdGVgXG4gICAgICAgICAgICAvLyBidXQgdGhpcyBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgYWN0dWFsbHkgZmx1c2ggdGhlIGhlYWRlcnMgdW50aWwgd2UndmVcbiAgICAgICAgICAgIC8vIHN0YXJ0ZWQgd3JpdGluZyBjaHVua3MuXG4gICAgICAgICAgICBpZiAoIXN0YXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICBzdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9QRVJGT1JNQU5DRV9QUkVGSVgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWV0cmljcyA9ICgwLCBfY2xpZW50Y29tcG9uZW50cmVuZGVyZXJsb2dnZXIuZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljcykoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldHJpY3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoYCR7cHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWH06bmV4dC1jbGllbnQtY29tcG9uZW50LWxvYWRpbmdgLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IG1ldHJpY3MuY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogbWV0cmljcy5jbGllbnRDb21wb25lbnRMb2FkU3RhcnQgKyBtZXRyaWNzLmNsaWVudENvbXBvbmVudExvYWRUaW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzLmZsdXNoSGVhZGVycygpO1xuICAgICAgICAgICAgICAgICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS50cmFjZShfY29uc3RhbnRzLk5leHROb2RlU2VydmVyU3Bhbi5zdGFydFJlc3BvbnNlLCB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW5OYW1lOiAnc3RhcnQgcmVzcG9uc2UnXG4gICAgICAgICAgICAgICAgfSwgKCk9PnVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9rID0gcmVzLndyaXRlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAvLyBBZGRlZCBieSB0aGUgYGNvbXByZXNzaW9uYCBtaWRkbGV3YXJlLCB0aGlzIGlzIGEgZnVuY3Rpb24gdGhhdCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gZmx1c2ggdGhlIHBhcnRpYWxseS1jb21wcmVzc2VkIHJlc3BvbnNlIHRvIHRoZSBjbGllbnQuXG4gICAgICAgICAgICAgICAgaWYgKCdmbHVzaCcgaW4gcmVzICYmIHR5cGVvZiByZXMuZmx1c2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmZsdXNoKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB3cml0ZSByZXR1cm5zIGZhbHNlLCBpdCBtZWFucyB0aGVyZSdzIHNvbWUgYmFja3ByZXNzdXJlLCBzb1xuICAgICAgICAgICAgICAgIC8vIHdhaXQgdW50aWwgaXQncyBzdHJlYW1lZCBiZWZvcmUgY29udGludWluZy5cbiAgICAgICAgICAgICAgICBpZiAoIW9rKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGRyYWluZWQucHJvbWlzZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGRyYWluZWQgcHJvbWlzZSBzbyB0aGF0IHdlIGNhbiB3YWl0IGZvciB0aGUgbmV4dCBkcmFpbiBldmVudC5cbiAgICAgICAgICAgICAgICAgICAgZHJhaW5lZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdmYWlsZWQgdG8gd3JpdGUgY2h1bmsgdG8gcmVzcG9uc2UnLCB7XG4gICAgICAgICAgICAgICAgICAgIGNhdXNlOiBlcnJcbiAgICAgICAgICAgICAgICB9KSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzMjFcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBhYm9ydDogKGVycik9PntcbiAgICAgICAgICAgIGlmIChyZXMud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcmVzLmRlc3Ryb3koZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2U6IGFzeW5jICgpPT57XG4gICAgICAgICAgICAvLyBpZiBhIHdhaXRVbnRpbCBwcm9taXNlIHdhcyBwYXNzZWQsIHdhaXQgZm9yIGl0IHRvIHJlc29sdmUgYmVmb3JlXG4gICAgICAgICAgICAvLyBlbmRpbmcgdGhlIHJlc3BvbnNlLlxuICAgICAgICAgICAgaWYgKHdhaXRVbnRpbEZvckVuZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHdhaXRVbnRpbEZvckVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXMud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgcmV0dXJuIGZpbmlzaGVkLnByb21pc2U7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHBpcGVUb05vZGVSZXNwb25zZShyZWFkYWJsZSwgcmVzLCB3YWl0VW50aWxGb3JFbmQpIHtcbiAgICB0cnkge1xuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaGFzIGFscmVhZHkgZXJyb3JlZCwgdGhlbiBqdXN0IHJldHVybiBub3cuXG4gICAgICAgIGNvbnN0IHsgZXJyb3JlZCwgZGVzdHJveWVkIH0gPSByZXM7XG4gICAgICAgIGlmIChlcnJvcmVkIHx8IGRlc3Ryb3llZCkgcmV0dXJuO1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgQWJvcnRDb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIGFib3J0IHRoZSByZWFkYWJsZSBpZiB0aGVcbiAgICAgICAgLy8gY2xpZW50IGRpc2Nvbm5lY3RzLlxuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gKDAsIF9uZXh0cmVxdWVzdC5jcmVhdGVBYm9ydENvbnRyb2xsZXIpKHJlcyk7XG4gICAgICAgIGNvbnN0IHdyaXRlciA9IGNyZWF0ZVdyaXRlckZyb21SZXNwb25zZShyZXMsIHdhaXRVbnRpbEZvckVuZCk7XG4gICAgICAgIGF3YWl0IHJlYWRhYmxlLnBpcGVUbyh3cml0ZXIsIHtcbiAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWxcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIElmIHRoaXMgaXNuJ3QgcmVsYXRlZCB0byBhbiBhYm9ydCBlcnJvciwgcmUtdGhyb3cgaXQuXG4gICAgICAgIGlmIChpc0Fib3J0RXJyb3IoZXJyKSkgcmV0dXJuO1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdmYWlsZWQgdG8gcGlwZSByZXNwb25zZScsIHtcbiAgICAgICAgICAgIGNhdXNlOiBlcnJcbiAgICAgICAgfSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTE4MFwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1waXBlLXJlYWRhYmxlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/pipe-readable.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/render-result.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/render-result.js ***!
|
||
\********************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderResult;\n }\n}));\nconst _nodewebstreamshelper = __webpack_require__(/*! ./stream-utils/node-web-streams-helper */ \"(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\");\nconst _pipereadable = __webpack_require__(/*! ./pipe-readable */ \"(rsc)/./node_modules/next/dist/server/pipe-readable.js\");\nconst _invarianterror = __webpack_require__(/*! ../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nclass RenderResult {\n static #_ = /**\n * A render result that represents an empty response. This is used to\n * represent a response that was not found or was already sent.\n */ this.EMPTY = new RenderResult(null, {\n metadata: {},\n contentType: null\n });\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @param contentType the content type of the response\n * @returns a new RenderResult instance\n */ static fromStatic(value, contentType) {\n return new RenderResult(value, {\n metadata: {},\n contentType\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 // If the response is null, return an empty string. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return '';\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new _invarianterror.InvariantError('dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E732\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToString)(this.readable);\n }\n return this.response;\n }\n /**\n * Returns a readable stream of the response.\n */ get readable() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n if (typeof this.response === 'string') {\n return (0, _nodewebstreamshelper.streamFromString)(this.response);\n }\n if (Buffer.isBuffer(this.response)) {\n return (0, _nodewebstreamshelper.streamFromBuffer)(this.response);\n }\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return (0, _nodewebstreamshelper.chainStreams)(...this.response);\n }\n return this.response;\n }\n /**\n * Coerces the response to an array of streams. This will convert the response\n * to an array of streams if it is not already one.\n *\n * @returns An array of streams\n */ coerce() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return [];\n }\n if (typeof this.response === 'string') {\n return [\n (0, _nodewebstreamshelper.streamFromString)(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n return this.response;\n } else if (Buffer.isBuffer(this.response)) {\n return [\n (0, _nodewebstreamshelper.streamFromBuffer)(this.response)\n ];\n } else {\n return [\n this.response\n ];\n }\n }\n /**\n * Unshifts 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 start of the array. When this response is piped, all of the streams\n * will be piped one after the other.\n *\n * @param readable The new stream to unshift\n */ unshift(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the start of the array.\n this.response.unshift(readable);\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 */ push(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the end of the array.\n this.response.push(readable);\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, _pipereadable.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, _pipereadable.pipeToNodeResponse)(this.readable, res, this.waitUntil);\n }\n}\n\n//# sourceMappingURL=render-result.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZW5kZXItcmVzdWx0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOEJBQThCLG1CQUFPLENBQUMsNkhBQXdDO0FBQzlFLHNCQUFzQixtQkFBTyxDQUFDLCtFQUFpQjtBQUMvQyx3QkFBd0IsbUJBQU8sQ0FBQyxtR0FBK0I7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0EsU0FBUztBQUNUO0FBQ0EsNEJBQTRCLGtDQUFrQztBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVuZGVyLXJlc3VsdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbmRlclJlc3VsdDtcbiAgICB9XG59KTtcbmNvbnN0IF9ub2Rld2Vic3RyZWFtc2hlbHBlciA9IHJlcXVpcmUoXCIuL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlclwiKTtcbmNvbnN0IF9waXBlcmVhZGFibGUgPSByZXF1aXJlKFwiLi9waXBlLXJlYWRhYmxlXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuY2xhc3MgUmVuZGVyUmVzdWx0IHtcbiAgICBzdGF0aWMgI18gPSAvKipcbiAgICogQSByZW5kZXIgcmVzdWx0IHRoYXQgcmVwcmVzZW50cyBhbiBlbXB0eSByZXNwb25zZS4gVGhpcyBpcyB1c2VkIHRvXG4gICAqIHJlcHJlc2VudCBhIHJlc3BvbnNlIHRoYXQgd2FzIG5vdCBmb3VuZCBvciB3YXMgYWxyZWFkeSBzZW50LlxuICAgKi8gdGhpcy5FTVBUWSA9IG5ldyBSZW5kZXJSZXN1bHQobnVsbCwge1xuICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIGNvbnRlbnRUeXBlOiBudWxsXG4gICAgfSk7XG4gICAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgUmVuZGVyUmVzdWx0IGluc3RhbmNlIGZyb20gYSBzdGF0aWMgcmVzcG9uc2UuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgc3RhdGljIHJlc3BvbnNlIHZhbHVlXG4gICAqIEBwYXJhbSBjb250ZW50VHlwZSB0aGUgY29udGVudCB0eXBlIG9mIHRoZSByZXNwb25zZVxuICAgKiBAcmV0dXJucyBhIG5ldyBSZW5kZXJSZXN1bHQgaW5zdGFuY2VcbiAgICovIHN0YXRpYyBmcm9tU3RhdGljKHZhbHVlLCBjb250ZW50VHlwZSkge1xuICAgICAgICByZXR1cm4gbmV3IFJlbmRlclJlc3VsdCh2YWx1ZSwge1xuICAgICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICAgICAgY29udGVudFR5cGVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHJlc3BvbnNlLCB7IGNvbnRlbnRUeXBlLCB3YWl0VW50aWwsIG1ldGFkYXRhIH0pe1xuICAgICAgICB0aGlzLnJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgICAgIHRoaXMuY29udGVudFR5cGUgPSBjb250ZW50VHlwZTtcbiAgICAgICAgdGhpcy5tZXRhZGF0YSA9IG1ldGFkYXRhO1xuICAgICAgICB0aGlzLndhaXRVbnRpbCA9IHdhaXRVbnRpbDtcbiAgICB9XG4gICAgYXNzaWduTWV0YWRhdGEobWV0YWRhdGEpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm1ldGFkYXRhLCBtZXRhZGF0YSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJlc3BvbnNlIGlzIG51bGwuIEl0IGNhbiBiZSBudWxsIGlmIHRoZSByZXNwb25zZSB3YXNcbiAgICogbm90IGZvdW5kIG9yIHdhcyBhbHJlYWR5IHNlbnQuXG4gICAqLyBnZXQgaXNOdWxsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZSA9PT0gbnVsbDtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgZmFsc2UgaWYgdGhlIHJlc3BvbnNlIGlzIGEgc3RyaW5nLiBJdCBjYW4gYmUgYSBzdHJpbmcgaWYgdGhlIHBhZ2VcbiAgICogd2FzIHByZXJlbmRlcmVkLiBJZiBpdCdzIG5vdCwgdGhlbiBpdCB3YXMgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5LlxuICAgKi8gZ2V0IGlzRHluYW1pYygpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLnJlc3BvbnNlICE9PSAnc3RyaW5nJztcbiAgICB9XG4gICAgdG9VbmNodW5rZWRTdHJpbmcoc3RyZWFtID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBudWxsLCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLiBUaGlzIGJlaGF2aW9yIGlzXG4gICAgICAgICAgICAvLyBpbnRlbnRpb25hbCBhcyB3ZSdyZSBub3cgcHJvdmlkaW5nIHRoZSBgUmVuZGVyUmVzdWx0LkVNUFRZYCB2YWx1ZS5cbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzcG9uc2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdkeW5hbWljIHJlc3BvbnNlcyBjYW5ub3QgYmUgdW5jaHVua2VkLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3MzJcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtVG9TdHJpbmcpKHRoaXMucmVhZGFibGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3BvbnNlO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyBhIHJlYWRhYmxlIHN0cmVhbSBvZiB0aGUgcmVzcG9uc2UuXG4gICAqLyBnZXQgcmVhZGFibGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgbnVsbCwgcmV0dXJuIGFuIGVtcHR5IHN0cmVhbS4gVGhpcyBiZWhhdmlvciBpc1xuICAgICAgICAgICAgLy8gaW50ZW50aW9uYWwgYXMgd2UncmUgbm93IHByb3ZpZGluZyB0aGUgYFJlbmRlclJlc3VsdC5FTVBUWWAgdmFsdWUuXG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtRnJvbVN0cmluZykodGhpcy5yZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcih0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtRnJvbUJ1ZmZlcikodGhpcy5yZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIGFuIGFycmF5IG9mIHN0cmVhbXMsIHRoZW4gY2hhaW4gdGhlbSB0b2dldGhlci5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLmNoYWluU3RyZWFtcykoLi4udGhpcy5yZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuICAgIC8qKlxuICAgKiBDb2VyY2VzIHRoZSByZXNwb25zZSB0byBhbiBhcnJheSBvZiBzdHJlYW1zLiBUaGlzIHdpbGwgY29udmVydCB0aGUgcmVzcG9uc2VcbiAgICogdG8gYW4gYXJyYXkgb2Ygc3RyZWFtcyBpZiBpdCBpcyBub3QgYWxyZWFkeSBvbmUuXG4gICAqXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0cmVhbXNcbiAgICovIGNvZXJjZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBudWxsLCByZXR1cm4gYW4gZW1wdHkgc3RyZWFtLiBUaGlzIGJlaGF2aW9yIGlzXG4gICAgICAgICAgICAvLyBpbnRlbnRpb25hbCBhcyB3ZSdyZSBub3cgcHJvdmlkaW5nIHRoZSBgUmVuZGVyUmVzdWx0LkVNUFRZYCB2YWx1ZS5cbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzcG9uc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtRnJvbVN0cmluZykodGhpcy5yZXNwb25zZSlcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoQnVmZmVyLmlzQnVmZmVyKHRoaXMucmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtRnJvbUJ1ZmZlcikodGhpcy5yZXNwb25zZSlcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAqIFVuc2hpZnRzIGEgbmV3IHN0cmVhbSB0byB0aGUgcmVzcG9uc2UuIFRoaXMgd2lsbCBjb252ZXJ0IHRoZSByZXNwb25zZSB0byBhblxuICAgKiBhcnJheSBvZiBzdHJlYW1zIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG9uZSBhbmQgd2lsbCBhZGQgdGhlIG5ldyBzdHJlYW0gdG9cbiAgICogdGhlIHN0YXJ0IG9mIHRoZSBhcnJheS4gV2hlbiB0aGlzIHJlc3BvbnNlIGlzIHBpcGVkLCBhbGwgb2YgdGhlIHN0cmVhbXNcbiAgICogd2lsbCBiZSBwaXBlZCBvbmUgYWZ0ZXIgdGhlIG90aGVyLlxuICAgKlxuICAgKiBAcGFyYW0gcmVhZGFibGUgVGhlIG5ldyBzdHJlYW0gdG8gdW5zaGlmdFxuICAgKi8gdW5zaGlmdChyZWFkYWJsZSkge1xuICAgICAgICAvLyBDb2VyY2UgdGhlIHJlc3BvbnNlIHRvIGFuIGFycmF5IG9mIHN0cmVhbXMuXG4gICAgICAgIHRoaXMucmVzcG9uc2UgPSB0aGlzLmNvZXJjZSgpO1xuICAgICAgICAvLyBBZGQgdGhlIG5ldyBzdHJlYW0gdG8gdGhlIHN0YXJ0IG9mIHRoZSBhcnJheS5cbiAgICAgICAgdGhpcy5yZXNwb25zZS51bnNoaWZ0KHJlYWRhYmxlKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIENoYWlucyBhIG5ldyBzdHJlYW0gdG8gdGhlIHJlc3BvbnNlLiBUaGlzIHdpbGwgY29udmVydCB0aGUgcmVzcG9uc2UgdG8gYW5cbiAgICogYXJyYXkgb2Ygc3RyZWFtcyBpZiBpdCBpcyBub3QgYWxyZWFkeSBvbmUgYW5kIHdpbGwgYWRkIHRoZSBuZXcgc3RyZWFtIHRvXG4gICAqIHRoZSBlbmQuIFdoZW4gdGhpcyByZXNwb25zZSBpcyBwaXBlZCwgYWxsIG9mIHRoZSBzdHJlYW1zIHdpbGwgYmUgcGlwZWRcbiAgICogb25lIGFmdGVyIHRoZSBvdGhlci5cbiAgICpcbiAgICogQHBhcmFtIHJlYWRhYmxlIFRoZSBuZXcgc3RyZWFtIHRvIGNoYWluXG4gICAqLyBwdXNoKHJlYWRhYmxlKSB7XG4gICAgICAgIC8vIENvZXJjZSB0aGUgcmVzcG9uc2UgdG8gYW4gYXJyYXkgb2Ygc3RyZWFtcy5cbiAgICAgICAgdGhpcy5yZXNwb25zZSA9IHRoaXMuY29lcmNlKCk7XG4gICAgICAgIC8vIEFkZCB0aGUgbmV3IHN0cmVhbSB0byB0aGUgZW5kIG9mIHRoZSBhcnJheS5cbiAgICAgICAgdGhpcy5yZXNwb25zZS5wdXNoKHJlYWRhYmxlKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFBpcGVzIHRoZSByZXNwb25zZSB0byBhIHdyaXRhYmxlIHN0cmVhbS4gVGhpcyB3aWxsIGNsb3NlL2NhbmNlbCB0aGVcbiAgICogd3JpdGFibGUgc3RyZWFtIGlmIGFuIGVycm9yIGlzIGVuY291bnRlcmVkLiBJZiB0aGlzIGRvZXNuJ3QgdGhyb3csIHRoZW5cbiAgICogdGhlIHdyaXRhYmxlIHN0cmVhbSB3aWxsIGJlIGNsb3NlZCBvciBhYm9ydGVkLlxuICAgKlxuICAgKiBAcGFyYW0gd3JpdGFibGUgV3JpdGFibGUgc3RyZWFtIHRvIHBpcGUgdGhlIHJlc3BvbnNlIHRvXG4gICAqLyBhc3luYyBwaXBlVG8od3JpdGFibGUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVhZGFibGUucGlwZVRvKHdyaXRhYmxlLCB7XG4gICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBjbG9zZSB0aGUgd3JpdGFibGUgc3RyZWFtIG91cnNlbHZlcyBzbyB0aGF0IHdlIGNhbiB3YWl0XG4gICAgICAgICAgICAgICAgLy8gZm9yIHRoZSB3YWl0VW50aWwgcHJvbWlzZSB0byByZXNvbHZlIGJlZm9yZSBjbG9zaW5nIGl0LiBJZiBhbiBlcnJvclxuICAgICAgICAgICAgICAgIC8vIGlzIGVuY291bnRlcmVkLCB3ZSdsbCBhYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFtIGlmIHdlIHN3YWxsb3dlZCB0aGVcbiAgICAgICAgICAgICAgICAvLyBlcnJvci5cbiAgICAgICAgICAgICAgICBwcmV2ZW50Q2xvc2U6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSB3YWl0VW50aWwgcHJvbWlzZSwgd2FpdCBmb3IgaXQgdG8gcmVzb2x2ZSBiZWZvcmVcbiAgICAgICAgICAgIC8vIGNsb3NpbmcgdGhlIHdyaXRhYmxlIHN0cmVhbS5cbiAgICAgICAgICAgIGlmICh0aGlzLndhaXRVbnRpbCkgYXdhaXQgdGhpcy53YWl0VW50aWw7XG4gICAgICAgICAgICAvLyBDbG9zZSB0aGUgd3JpdGFibGUgc3RyZWFtLlxuICAgICAgICAgICAgYXdhaXQgd3JpdGFibGUuY2xvc2UoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGFuIGFib3J0IGVycm9yLCB3ZSBzaG91bGQgYWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSAoYXMgd2VcbiAgICAgICAgICAgIC8vIHRvb2sgb3duZXJzaGlwIG9mIGl0IHdoZW4gd2Ugc3RhcnRlZCBwaXBpbmcpLiBXZSBkb24ndCBuZWVkIHRvIHJlLXRocm93XG4gICAgICAgICAgICAvLyBiZWNhdXNlIHdlIGhhbmRsZWQgdGhlIGVycm9yLlxuICAgICAgICAgICAgaWYgKCgwLCBfcGlwZXJlYWRhYmxlLmlzQWJvcnRFcnJvcikoZXJyKSkge1xuICAgICAgICAgICAgICAgIC8vIEFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuXG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGFibGUuYWJvcnQoZXJyKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXZSdyZSBub3QgYWJvcnRpbmcgdGhlIHdyaXRlciBoZXJlIGFzIHdoZW4gdGhpcyBtZXRob2QgdGhyb3dzIGl0J3Mgbm90XG4gICAgICAgICAgICAvLyBjbGVhciBhcyB0byBob3cgc28gdGhlIGNhbGxlciBzaG91bGQgYXNzdW1lIGl0J3MgdGhlaXIgcmVzcG9uc2liaWxpdHlcbiAgICAgICAgICAgIC8vIHRvIGNsZWFuIHVwIHRoZSB3cml0ZXIuXG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAqIFBpcGVzIHRoZSByZXNwb25zZSB0byBhIG5vZGUgcmVzcG9uc2UuIFRoaXMgd2lsbCBjbG9zZS9jYW5jZWwgdGhlIG5vZGVcbiAgICogcmVzcG9uc2UgaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuXG4gICAqXG4gICAqIEBwYXJhbSByZXNcbiAgICovIGFzeW5jIHBpcGVUb05vZGVSZXNwb25zZShyZXMpIHtcbiAgICAgICAgYXdhaXQgKDAsIF9waXBlcmVhZGFibGUucGlwZVRvTm9kZVJlc3BvbnNlKSh0aGlzLnJlYWRhYmxlLCByZXMsIHRoaXMud2FpdFVudGlsKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbmRlci1yZXN1bHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/render-result.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/request-meta.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/server/request-meta.js ***!
|
||
\*******************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/* eslint-disable no-redeclare */ \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 NEXT_REQUEST_META: function() {\n return NEXT_REQUEST_META;\n },\n addRequestMeta: function() {\n return addRequestMeta;\n },\n getRequestMeta: function() {\n return getRequestMeta;\n },\n removeRequestMeta: function() {\n return removeRequestMeta;\n },\n setRequestMeta: function() {\n return setRequestMeta;\n }\n});\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}\nfunction setRequestMeta(req, meta) {\n req[NEXT_REQUEST_META] = meta;\n return meta;\n}\nfunction addRequestMeta(request, key, value) {\n const meta = getRequestMeta(request);\n meta[key] = value;\n return setRequestMeta(request, meta);\n}\nfunction removeRequestMeta(request, key) {\n const meta = getRequestMeta(request);\n delete meta[key];\n return setRequestMeta(request, meta);\n}\n\n//# sourceMappingURL=request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGEuanMiLCJtYXBwaW5ncyI6IkFBQUEsa0NBQStDO0FBQy9DLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC1tZXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlZGVjbGFyZSAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE5FWFRfUkVRVUVTVF9NRVRBOiBudWxsLFxuICAgIGFkZFJlcXVlc3RNZXRhOiBudWxsLFxuICAgIGdldFJlcXVlc3RNZXRhOiBudWxsLFxuICAgIHJlbW92ZVJlcXVlc3RNZXRhOiBudWxsLFxuICAgIHNldFJlcXVlc3RNZXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5FWFRfUkVRVUVTVF9NRVRBOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUkVRVUVTVF9NRVRBO1xuICAgIH0sXG4gICAgYWRkUmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWRkUmVxdWVzdE1ldGE7XG4gICAgfSxcbiAgICBnZXRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRSZXF1ZXN0TWV0YTtcbiAgICB9LFxuICAgIHJlbW92ZVJlcXVlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZVJlcXVlc3RNZXRhO1xuICAgIH0sXG4gICAgc2V0UmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGE7XG4gICAgfVxufSk7XG5jb25zdCBORVhUX1JFUVVFU1RfTUVUQSA9IFN5bWJvbC5mb3IoJ05leHRJbnRlcm5hbFJlcXVlc3RNZXRhJyk7XG5mdW5jdGlvbiBnZXRSZXF1ZXN0TWV0YShyZXEsIGtleSkge1xuICAgIGNvbnN0IG1ldGEgPSByZXFbTkVYVF9SRVFVRVNUX01FVEFdIHx8IHt9O1xuICAgIHJldHVybiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyA/IG1ldGFba2V5XSA6IG1ldGE7XG59XG5mdW5jdGlvbiBzZXRSZXF1ZXN0TWV0YShyZXEsIG1ldGEpIHtcbiAgICByZXFbTkVYVF9SRVFVRVNUX01FVEFdID0gbWV0YTtcbiAgICByZXR1cm4gbWV0YTtcbn1cbmZ1bmN0aW9uIGFkZFJlcXVlc3RNZXRhKHJlcXVlc3QsIGtleSwgdmFsdWUpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0UmVxdWVzdE1ldGEocmVxdWVzdCk7XG4gICAgbWV0YVtrZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIHNldFJlcXVlc3RNZXRhKHJlcXVlc3QsIG1ldGEpO1xufVxuZnVuY3Rpb24gcmVtb3ZlUmVxdWVzdE1ldGEocmVxdWVzdCwga2V5KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldFJlcXVlc3RNZXRhKHJlcXVlc3QpO1xuICAgIGRlbGV0ZSBtZXRhW2tleV07XG4gICAgcmV0dXJuIHNldFJlcXVlc3RNZXRhKHJlcXVlc3QsIG1ldGEpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LW1ldGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request-meta.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/request/fallback-params.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/request/fallback-params.js ***!
|
||
\******************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getFallbackRouteParams\", ({\n enumerable: true,\n get: function() {\n return getFallbackRouteParams;\n }\n}));\nconst _routematcher = __webpack_require__(/*! ../../shared/lib/router/utils/route-matcher */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ../../shared/lib/router/utils/route-regex */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction getParamKeys(page) {\n const pattern = (0, _routeregex.getRouteRegex)(page);\n const matcher = (0, _routematcher.getRouteMatcher)(pattern);\n // Get the default list of allowed params.\n return Object.keys(matcher(page));\n}\nfunction getFallbackRouteParams(pageOrKeys) {\n let keys;\n if (typeof pageOrKeys === 'string') {\n keys = getParamKeys(pageOrKeys);\n } else {\n keys = pageOrKeys;\n }\n // If there are no keys, we can return early.\n if (keys.length === 0) return null;\n const params = new Map();\n // As we're creating unique keys for each of the dynamic route params, we only\n // need to generate a unique ID once per request because each of the keys will\n // be also be unique.\n const uniqueID = Math.random().toString(16).slice(2);\n for (const key of keys){\n params.set(key, `%%drp:${key}:${uniqueID}%%`);\n }\n return params;\n}\n\n//# sourceMappingURL=fallback-params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2ZhbGxiYWNrLXBhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDBEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLHNCQUFzQixtQkFBTyxDQUFDLDRIQUE2QztBQUMzRSxvQkFBb0IsbUJBQU8sQ0FBQyx3SEFBMkM7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsSUFBSSxHQUFHLFNBQVM7QUFDakQ7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2ZhbGxiYWNrLXBhcmFtcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldEZhbGxiYWNrUm91dGVQYXJhbXNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldEZhbGxiYWNrUm91dGVQYXJhbXM7XG4gICAgfVxufSk7XG5jb25zdCBfcm91dGVtYXRjaGVyID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXJcIik7XG5jb25zdCBfcm91dGVyZWdleCA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1yZWdleFwiKTtcbmZ1bmN0aW9uIGdldFBhcmFtS2V5cyhwYWdlKSB7XG4gICAgY29uc3QgcGF0dGVybiA9ICgwLCBfcm91dGVyZWdleC5nZXRSb3V0ZVJlZ2V4KShwYWdlKTtcbiAgICBjb25zdCBtYXRjaGVyID0gKDAsIF9yb3V0ZW1hdGNoZXIuZ2V0Um91dGVNYXRjaGVyKShwYXR0ZXJuKTtcbiAgICAvLyBHZXQgdGhlIGRlZmF1bHQgbGlzdCBvZiBhbGxvd2VkIHBhcmFtcy5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMobWF0Y2hlcihwYWdlKSk7XG59XG5mdW5jdGlvbiBnZXRGYWxsYmFja1JvdXRlUGFyYW1zKHBhZ2VPcktleXMpIHtcbiAgICBsZXQga2V5cztcbiAgICBpZiAodHlwZW9mIHBhZ2VPcktleXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGtleXMgPSBnZXRQYXJhbUtleXMocGFnZU9yS2V5cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAga2V5cyA9IHBhZ2VPcktleXM7XG4gICAgfVxuICAgIC8vIElmIHRoZXJlIGFyZSBubyBrZXlzLCB3ZSBjYW4gcmV0dXJuIGVhcmx5LlxuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IE1hcCgpO1xuICAgIC8vIEFzIHdlJ3JlIGNyZWF0aW5nIHVuaXF1ZSBrZXlzIGZvciBlYWNoIG9mIHRoZSBkeW5hbWljIHJvdXRlIHBhcmFtcywgd2Ugb25seVxuICAgIC8vIG5lZWQgdG8gZ2VuZXJhdGUgYSB1bmlxdWUgSUQgb25jZSBwZXIgcmVxdWVzdCBiZWNhdXNlIGVhY2ggb2YgdGhlIGtleXMgd2lsbFxuICAgIC8vIGJlIGFsc28gYmUgdW5pcXVlLlxuICAgIGNvbnN0IHVuaXF1ZUlEID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygxNikuc2xpY2UoMik7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cyl7XG4gICAgICAgIHBhcmFtcy5zZXQoa2V5LCBgJSVkcnA6JHtrZXl9OiR7dW5pcXVlSUR9JSVgKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmFsbGJhY2stcGFyYW1zLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/fallback-params.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/request/params.js":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/request/params.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 createParamsFromClient: function() {\n return createParamsFromClient;\n },\n createPrerenderParamsForClientSegment: function() {\n return createPrerenderParamsForClientSegment;\n },\n createServerParamsForMetadata: function() {\n return createServerParamsForMetadata;\n },\n createServerParamsForRoute: function() {\n return createServerParamsForRoute;\n },\n createServerParamsForServerSegment: function() {\n return createServerParamsForServerSegment;\n }\n});\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _dynamicaccessasyncstorageexternal = __webpack_require__(/*! ../app-render/dynamic-access-async-storage.external */ \"../app-render/dynamic-access-async-storage.external\");\nfunction createParamsFromClient(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E736\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E770\",\n enumerable: false,\n configurable: true\n });\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nconst createServerParamsForMetadata = createServerParamsForServerSegment;\nfunction createServerParamsForRoute(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForRoute should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E738\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderParams(underlyingParams, workUnitStore);\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createServerParamsForServerSegment(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForServerSegment should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E743\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderParams(underlyingParams, workUnitStore);\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createPrerenderParamsForClientSegment(underlyingParams) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing workStore in createPrerenderParamsForClientSegment'), \"__NEXT_ERROR_CODE\", {\n value: \"E773\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams) {\n for(let key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object \"dynamic\". Since\n // we are in cacheComponents mode we encode this as a promise that never\n // resolves.\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`params`');\n }\n }\n }\n break;\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderParamsForClientSegment should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E734\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'prerender-runtime':\n case 'request':\n break;\n default:\n workUnitStore;\n }\n }\n // We're prerendering in a mode that does not abort. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve(underlyingParams);\n}\nfunction createStaticPrerenderParams(underlyingParams, workStore, prerenderStore) {\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object \"dynamic\". Since\n // we are in cacheComponents mode we encode this as a promise that never\n // resolves.\n return makeHangingParams(underlyingParams, workStore, prerenderStore);\n }\n }\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n return makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n }\n break;\n }\n case 'prerender-legacy':\n break;\n default:\n prerenderStore;\n }\n if (false) {} else {\n return makeUntrackedExoticParams(underlyingParams);\n }\n}\nfunction createRuntimePrerenderParams(underlyingParams, workUnitStore) {\n return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, false ? 0 : makeUntrackedExoticParams(underlyingParams));\n}\nfunction createRenderParamsInProd(underlyingParams) {\n if (false) {}\n return makeUntrackedExoticParams(underlyingParams);\n}\nfunction createRenderParamsInDev(underlyingParams, devFallbackParams, workStore) {\n let hasFallbackParams = false;\n if (devFallbackParams) {\n for(let key in underlyingParams){\n if (devFallbackParams.has(key)) {\n hasFallbackParams = true;\n break;\n }\n }\n }\n if (false) {}\n return makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, hasFallbackParams, workStore);\n}\nconst CachedParams = new WeakMap();\nconst fallbackParamsProxyHandler = {\n get: function get(target, prop, receiver) {\n if (prop === 'then' || prop === 'catch' || prop === 'finally') {\n const originalMethod = _reflect.ReflectAdapter.get(target, prop, receiver);\n return ({\n [prop]: (...args)=>{\n const store = _dynamicaccessasyncstorageexternal.dynamicAccessAsyncStorage.getStore();\n if (store) {\n store.abortController.abort(Object.defineProperty(new Error(`Accessed fallback \\`params\\` during prerendering.`), \"__NEXT_ERROR_CODE\", {\n value: \"E691\",\n enumerable: false,\n configurable: true\n }));\n }\n return new Proxy(originalMethod.apply(target, args), fallbackParamsProxyHandler);\n }\n })[prop];\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n};\nfunction makeHangingParams(underlyingParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = new Proxy((0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`params`'), fallbackParamsProxyHandler);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const augmentedUnderlying = {\n ...underlyingParams\n };\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(augmentedUnderlying);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n if (fallbackParams.has(prop)) {\n Object.defineProperty(augmentedUnderlying, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when cacheComponents is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n enumerable: true\n });\n Object.defineProperty(promise, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when cacheComponents is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n }\n });\n return promise;\n}\nfunction makeUntrackedExoticParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n });\n return promise;\n}\nfunction makeUntrackedParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, hasFallbackParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = hasFallbackParams ? (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingParams) : Promise.resolve(underlyingParams);\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n promise[prop] = underlyingParams[prop];\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticParamsWithDevWarnings`, but just\n// logging the sync access without actually defining the params on the promise.\nfunction makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, hasFallbackParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = hasFallbackParams ? (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingParams) : Promise.resolve(underlyingParams);\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n if (workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev, we need to advance out of\n // the Prerender environment when we read Request data synchronously.\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore);\n }\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createParamsAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createParamsAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E307\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E482\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQ0FBa0MsbUJBQU8sQ0FBQyxnRkFBMkM7QUFDckYsaUJBQWlCLG1CQUFPLENBQUMsNEhBQXdDO0FBQ2pFLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxzQ0FBc0MsbUJBQU8sQ0FBQywwRkFBZ0Q7QUFDOUYsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFLHNCQUFzQixtQkFBTyxDQUFDLDhHQUFzQztBQUNwRSwrQkFBK0IsbUJBQU8sQ0FBQyxvR0FBNEI7QUFDbkUsa0RBQWtELG1CQUFPLENBQUMsa0pBQW1EO0FBQzdHLDJDQUEyQyxtQkFBTyxDQUFDLGdIQUFxRDtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0Esb0JBQW9CLElBQXNDO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsS0FBSyxFQUVOO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFD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YyxXQUFXLGNBQWM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDJCQUEyQjtBQUMxRCx3Q0FBd0MsY0FBYztBQUN0RDtBQUNBLDBDQUEwQyxrQ0FBa0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QvcGFyYW1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlUGFyYW1zRnJvbUNsaWVudDogbnVsbCxcbiAgICBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50OiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY3JlYXRlUGFyYW1zRnJvbUNsaWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50O1xuICAgIH0sXG4gICAgY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50O1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDtcbiAgICB9XG59KTtcbmNvbnN0IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuY29uc3QgX3JlZmxlY3R1dGlscyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3JlZmxlY3QtdXRpbHNcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzID0gcmVxdWlyZShcIi4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzXCIpO1xuY29uc3QgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIgPSByZXF1aXJlKFwiLi4vY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlclwiKTtcbmNvbnN0IF9keW5hbWljYWNjZXNzYXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLWFjY2Vzcy1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuZnVuY3Rpb24gY3JlYXRlUGFyYW1zRnJvbUNsaWVudCh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YXRpY1ByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVBhcmFtc0Zyb21DbGllbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzM2XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIHJ1bnRpbWUgcHJlcmVuZGVyLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc3MFwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2VtYW50aWNhbGx5IHdlIG9ubHkgbmVlZCB0aGUgZGV2IHRyYWNraW5nIHdoZW4gcnVubmluZyBpbiBgbmV4dCBkZXZgXG4gICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSB5b3Ugd291bGQgbmV2ZXIgdXNlIG5leHQgZGV2IHdpdGggcHJvZHVjdGlvbiBOT0RFX0VOViB3ZSB1c2UgdGhpc1xuICAgICAgICAgICAgICAgICAgICAvLyBhcyBhIHByb3h5IHNvIHdlIGNhbiBzdGF0aWNhbGx5IGV4Y2x1ZGUgdGhpcyBjb2RlIGZyb20gcHJvZHVjdGlvbiBidWlsZHMuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRldkZhbGxiYWNrUGFyYW1zID0gd29ya1VuaXRTdG9yZS5kZXZGYWxsYmFja1BhcmFtcztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclBhcmFtc0luRGV2KHVuZGVybHlpbmdQYXJhbXMsIGRldkZhbGxiYWNrUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXNJblByb2QodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgICgwLCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKTtcbn1cbmNvbnN0IGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhID0gY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDtcbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhdGljUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGUgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzM4XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUnVudGltZVByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyBTZW1hbnRpY2FsbHkgd2Ugb25seSBuZWVkIHRoZSBkZXYgdHJhY2tpbmcgd2hlbiBydW5uaW5nIGluIGBuZXh0IGRldmBcbiAgICAgICAgICAgICAgICAgICAgLy8gYnV0IHNpbmNlIHlvdSB3b3VsZCBuZXZlciB1c2UgbmV4dCBkZXYgd2l0aCBwcm9kdWN0aW9uIE5PREVfRU5WIHdlIHVzZSB0aGlzXG4gICAgICAgICAgICAgICAgICAgIC8vIGFzIGEgcHJveHkgc28gd2UgY2FuIHN0YXRpY2FsbHkgZXhjbHVkZSB0aGlzIGNvZGUgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGV2RmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmRldkZhbGxiYWNrUGFyYW1zO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zSW5EZXYodW5kZXJseWluZ1BhcmFtcywgZGV2RmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclBhcmFtc0luUHJvZCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpO1xufVxuZnVuY3Rpb24gY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudCh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YXRpY1ByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzQzXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUnVudGltZVByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyBTZW1hbnRpY2FsbHkgd2Ugb25seSBuZWVkIHRoZSBkZXYgdHJhY2tpbmcgd2hlbiBydW5uaW5nIGluIGBuZXh0IGRldmBcbiAgICAgICAgICAgICAgICAgICAgLy8gYnV0IHNpbmNlIHlvdSB3b3VsZCBuZXZlciB1c2UgbmV4dCBkZXYgd2l0aCBwcm9kdWN0aW9uIE5PREVfRU5WIHdlIHVzZSB0aGlzXG4gICAgICAgICAgICAgICAgICAgIC8vIGFzIGEgcHJveHkgc28gd2UgY2FuIHN0YXRpY2FsbHkgZXhjbHVkZSB0aGlzIGNvZGUgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGV2RmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmRldkZhbGxiYWNrUGFyYW1zO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zSW5EZXYodW5kZXJseWluZ1BhcmFtcywgZGV2RmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclBhcmFtc0luUHJvZCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpO1xufVxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudCh1bmRlcmx5aW5nUGFyYW1zKSB7XG4gICAgY29uc3Qgd29ya1N0b3JlID0gX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKCF3b3JrU3RvcmUpIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ01pc3Npbmcgd29ya1N0b3JlIGluIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFNzczXCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXM7XG4gICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcihsZXQga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBwYXJhbXMgb2JqZWN0IGhhcyBvbmUgb3IgbW9yZSBmYWxsYmFjayBwYXJhbXMsIHNvIHdlIG5lZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBjb25zaWRlciB0aGUgYXdhaXRpbmcgb2YgdGhpcyBwYXJhbXMgb2JqZWN0IFwiZHluYW1pY1wiLiBTaW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBpbiBjYWNoZUNvbXBvbmVudHMgbW9kZSB3ZSBlbmNvZGUgdGhpcyBhcyBhIHByb21pc2UgdGhhdCBuZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlc29sdmVzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHdvcmtVbml0U3RvcmUucmVuZGVyU2lnbmFsLCB3b3JrU3RvcmUucm91dGUsICdgcGFyYW1zYCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzM0XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgZG9lcyBub3QgYWJvcnQuIFdlIHJlc29sdmUgdGhlIHByb21pc2Ugd2l0aG91dFxuICAgIC8vIGFueSB0cmFja2luZyBiZWNhdXNlIHdlJ3JlIGp1c3QgdHJhbnNwb3J0aW5nIGEgdmFsdWUgZnJvbSBzZXJ2ZXIgdG8gY2xpZW50IHdoZXJlIHRoZSB0cmFja2luZ1xuICAgIC8vIHdpbGwgYmUgYXBwbGllZC5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xufVxuZnVuY3Rpb24gY3JlYXRlU3RhdGljUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBzd2l0Y2gocHJlcmVuZGVyU3RvcmUudHlwZSl7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrUGFyYW1zID0gcHJlcmVuZGVyU3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtcztcbiAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yKGNvbnN0IGtleSBpbiB1bmRlcmx5aW5nUGFyYW1zKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgcGFyYW1zIG9iamVjdCBoYXMgb25lIG9yIG1vcmUgZmFsbGJhY2sgcGFyYW1zLCBzbyB3ZSBuZWVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gY29uc2lkZXIgdGhlIGF3YWl0aW5nIG9mIHRoaXMgcGFyYW1zIG9iamVjdCBcImR5bmFtaWNcIi4gU2luY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgaW4gY2FjaGVDb21wb25lbnRzIG1vZGUgd2UgZW5jb2RlIHRoaXMgYXMgYSBwcm9taXNlIHRoYXQgbmV2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXNvbHZlcy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZUhhbmdpbmdQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrUGFyYW1zID0gcHJlcmVuZGVyU3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtcztcbiAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yKGNvbnN0IGtleSBpbiB1bmRlcmx5aW5nUGFyYW1zKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcywgZmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmU7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUykge1xuICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZFBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVSdW50aW1lUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtVbml0U3RvcmUpIHtcbiAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5nLmRlbGF5VW50aWxSdW50aW1lU3RhZ2UpKHdvcmtVbml0U3RvcmUsIHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTID8gbWFrZVVudHJhY2tlZFBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSA6IG1ha2VVbnRyYWNrZWRFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcykpO1xufVxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGFyYW1zSW5Qcm9kKHVuZGVybHlpbmdQYXJhbXMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NBQ0hFX0NPTVBPTkVOVFMpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRQYXJhbXModW5kZXJseWluZ1BhcmFtcyk7XG4gICAgfVxuICAgIHJldHVybiBtYWtlVW50cmFja2VkRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpO1xufVxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGFyYW1zSW5EZXYodW5kZXJseWluZ1BhcmFtcywgZGV2RmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGxldCBoYXNGYWxsYmFja1BhcmFtcyA9IGZhbHNlO1xuICAgIGlmIChkZXZGYWxsYmFja1BhcmFtcykge1xuICAgICAgICBmb3IobGV0IGtleSBpbiB1bmRlcmx5aW5nUGFyYW1zKXtcbiAgICAgICAgICAgIGlmIChkZXZGYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGhhc0ZhbGxiYWNrUGFyYW1zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NBQ0hFX0NPTVBPTkVOVFMpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VEeW5hbWljYWxseVRyYWNrZWRQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgaGFzRmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgfVxuICAgIHJldHVybiBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdQYXJhbXMsIGhhc0ZhbGxiYWNrUGFyYW1zLCB3b3JrU3RvcmUpO1xufVxuY29uc3QgQ2FjaGVkUGFyYW1zID0gbmV3IFdlYWtNYXAoKTtcbmNvbnN0IGZhbGxiYWNrUGFyYW1zUHJveHlIYW5kbGVyID0ge1xuICAgIGdldDogZnVuY3Rpb24gZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgaWYgKHByb3AgPT09ICd0aGVuJyB8fCBwcm9wID09PSAnY2F0Y2gnIHx8IHByb3AgPT09ICdmaW5hbGx5Jykge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICByZXR1cm4gKHtcbiAgICAgICAgICAgICAgICBbcHJvcF06ICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdG9yZSA9IF9keW5hbWljYWNjZXNzYXN5bmNzdG9yYWdlZXh0ZXJuYWwuZHluYW1pY0FjY2Vzc0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLmFib3J0Q29udHJvbGxlci5hYm9ydChPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBBY2Nlc3NlZCBmYWxsYmFjayBcXGBwYXJhbXNcXGAgZHVyaW5nIHByZXJlbmRlcmluZy5gKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTY5MVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJveHkob3JpZ2luYWxNZXRob2QuYXBwbHkodGFyZ2V0LCBhcmdzKSwgZmFsbGJhY2tQYXJhbXNQcm94eUhhbmRsZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pW3Byb3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgfVxufTtcbmZ1bmN0aW9uIG1ha2VIYW5naW5nUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm94eSgoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHByZXJlbmRlclN0b3JlLnJlbmRlclNpZ25hbCwgd29ya1N0b3JlLnJvdXRlLCAnYHBhcmFtc2AnKSwgZmFsbGJhY2tQYXJhbXNQcm94eUhhbmRsZXIpO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlRXJyb3JpbmdFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcywgZmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgYXVnbWVudGVkVW5kZXJseWluZyA9IHtcbiAgICAgICAgLi4udW5kZXJseWluZ1BhcmFtc1xuICAgIH07XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShhdWdtZW50ZWRVbmRlcmx5aW5nKTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXVnbWVudGVkVW5kZXJseWluZywgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdwYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIG1vc3QgZHluYW1pYyBBUElzIHdlIGFsc28gdGhyb3cgaWYgYGR5bmFtaWMgPSBcImVycm9yXCJgIGhvd2V2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBwYXJhbXMgaXMgb25seSBkeW5hbWljIHdoZW4gd2UncmUgZ2VuZXJhdGluZyBhIGZhbGxiYWNrIHNoZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgZXZlbiB3aGVuIGBkeW5hbWljID0gXCJlcnJvclwiYCB3ZSBzdGlsbCBzdXBwb3J0IGdlbmVyYXRpbmcgZHluYW1pY1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFsbGJhY2sgc2hlbGxzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIGNvbW1lbnQgd2hlbiBjYWNoZUNvbXBvbmVudHMgaXMgdGhlIGRlZmF1bHQgc2luY2UgdGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgbm8gYGR5bmFtaWMgPSBcImVycm9yXCJgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gbW9zdCBkeW5hbWljIEFQSXMgd2UgYWxzbyB0aHJvdyBpZiBgZHluYW1pYyA9IFwiZXJyb3JcImAgaG93ZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHBhcmFtcyBpcyBvbmx5IGR5bmFtaWMgd2hlbiB3ZSdyZSBnZW5lcmF0aW5nIGEgZmFsbGJhY2sgc2hlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBldmVuIHdoZW4gYGR5bmFtaWMgPSBcImVycm9yXCJgIHdlIHN0aWxsIHN1cHBvcnQgZ2VuZXJhdGluZyBkeW5hbWljXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsYmFjayBzaGVsbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHRoaXMgY29tbWVudCB3aGVuIGNhY2hlQ29tcG9uZW50cyBpcyB0aGUgZGVmYXVsdCBzaW5jZSB0aGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSBubyBgZHluYW1pYyA9IFwiZXJyb3JcImBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBjYWNoZUNvbXBvbmVudHMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZFBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgaGFzRmFsbGJhY2tQYXJhbXMsIHN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBoYXNGYWxsYmFja1BhcmFtcyA/ICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKSh1bmRlcmx5aW5nUGFyYW1zKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgICAgICB1bnByb3hpZWRQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5hZGQocHJvcCk7XG4gICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IHdhcyBwcm94aWVkIHRvIHRoZSBwcm9taXNlIGluc3RhbmNlXG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgncGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYC4uLnBhcmFtc2Agb3Igc2ltaWxhciBleHByZXNzaW9uJztcbiAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgdW5wcm94aWVkUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG4vLyBTaW1pbGFyIHRvIGBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljUGFyYW1zV2l0aERldldhcm5pbmdzYCwgYnV0IGp1c3Rcbi8vIGxvZ2dpbmcgdGhlIHN5bmMgYWNjZXNzIHdpdGhvdXQgYWN0dWFsbHkgZGVmaW5pbmcgdGhlIHBhcmFtcyBvbiB0aGUgcHJvbWlzZS5cbmZ1bmN0aW9uIG1ha2VEeW5hbWljYWxseVRyYWNrZWRQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgaGFzRmFsbGJhY2tQYXJhbXMsIHN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBoYXNGYWxsYmFja1BhcmFtcyA/ICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKSh1bmRlcmx5aW5nUGFyYW1zKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgICAgICB1bnByb3hpZWRQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5hZGQocHJvcCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICgvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCB3YXMgcHJveGllZCB0byB0aGUgcHJvbWlzZSBpbnN0YW5jZVxuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICB3YXJuRm9yU3luY0FjY2VzcyhzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYC4uLnBhcmFtc2Agb3Igc2ltaWxhciBleHByZXNzaW9uJztcbiAgICAgICAgICAgIHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24oc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcykge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUucHJlcmVuZGVyUGhhc2UgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSdyZSByZW5kZXJpbmcgZHluYW1pY2FsbHkgaW4gZGV2LCB3ZSBuZWVkIHRvIGFkdmFuY2Ugb3V0IG9mXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBQcmVyZW5kZXIgZW52aXJvbm1lbnQgd2hlbiB3ZSByZWFkIFJlcXVlc3QgZGF0YSBzeW5jaHJvbm91c2x5LlxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYpKHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBJbiBhbGwgY2FzZXMgd2Ugd2FybiBub3JtYWxseVxuICAgIGlmIChtaXNzaW5nUHJvcGVydGllcyAmJiBtaXNzaW5nUHJvcGVydGllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24ocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB3YXJuRm9yU3luY0FjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgfVxufVxuY29uc3Qgd2FybkZvclN5bmNBY2Nlc3MgPSAoMCwgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIuY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldikoY3JlYXRlUGFyYW1zQWNjZXNzRXJyb3IpO1xuY29uc3Qgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbiA9ICgwLCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlci5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcik7XG5mdW5jdGlvbiBjcmVhdGVQYXJhbXNBY2Nlc3NFcnJvcihyb3V0ZSwgZXhwcmVzc2lvbikge1xuICAgIGNvbnN0IHByZWZpeCA9IHJvdXRlID8gYFJvdXRlIFwiJHtyb3V0ZX1cIiBgIDogJ1RoaXMgcm91dGUgJztcbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgJHtwcmVmaXh9dXNlZCAke2V4cHJlc3Npb259LiBgICsgYFxcYHBhcmFtc1xcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHByb3BlcnRpZXMuIGAgKyBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUzMDdcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlSW5jb21wbGV0ZUVudW1lcmF0aW9uRXJyb3Iocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgKyBgXFxgcGFyYW1zXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgcHJvcGVydGllcy4gYCArIGBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgd2VyZSBub3QgYXZhaWxhYmxlIHRocm91Z2ggZW51bWVyYXRpb24gYCArIGBiZWNhdXNlIHRoZXkgY29uZmxpY3Qgd2l0aCBidWlsdGluIHByb3BlcnR5IG5hbWVzOiBgICsgYCR7ZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzKG1pc3NpbmdQcm9wZXJ0aWVzKX0uIGAgKyBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkU0ODJcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzKHByb3BlcnRpZXMpIHtcbiAgICBzd2l0Y2gocHJvcGVydGllcy5sZW5ndGgpe1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignRXhwZWN0ZWQgZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzIHRvIGJlIGNhbGxlZCB3aXRoIGEgbm9uLWVtcHR5IGxpc3Qgb2Ygc3RyaW5ncy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTUzMVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYGA7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYCBhbmQgXFxgJHtwcm9wZXJ0aWVzWzFdfVxcYGA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoIC0gMTsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYFxcYCR7cHJvcGVydGllc1tpXX1cXGAsIGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICs9IGAsIGFuZCBcXGAke3Byb3BlcnRpZXNbcHJvcGVydGllcy5sZW5ndGggLSAxXX1cXGBgO1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcmFtcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/params.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/request/pathname.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/request/pathname.js ***!
|
||
\***********************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createServerPathnameForMetadata\", ({\n enumerable: true,\n get: function() {\n return createServerPathnameForMetadata;\n }\n}));\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction createServerPathnameForMetadata(underlyingPathname, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n {\n return createPrerenderPathname(underlyingPathname, workStore, workUnitStore);\n }\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerPathnameForMetadata should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E740\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, createRenderPathname(underlyingPathname));\n case 'request':\n return createRenderPathname(underlyingPathname);\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createPrerenderPathname(underlyingPathname, workStore, prerenderStore) {\n switch(prerenderStore.type){\n case 'prerender-client':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderPathname was called inside a client component scope.'), \"__NEXT_ERROR_CODE\", {\n value: \"E694\",\n enumerable: false,\n configurable: true\n });\n case 'prerender':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`pathname`');\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n return makeErroringPathname(workStore, prerenderStore.dynamicTracking);\n }\n break;\n }\n case 'prerender-legacy':\n break;\n default:\n prerenderStore;\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return Promise.resolve(underlyingPathname);\n}\nfunction makeErroringPathname(workStore, dynamicTracking) {\n let reject = null;\n const promise = new Promise((_, re)=>{\n reject = re;\n });\n const originalThen = promise.then.bind(promise);\n // We instrument .then so that we can generate a tracking event only if you actually\n // await this promise, not just that it is created.\n promise.then = (onfulfilled, onrejected)=>{\n if (reject) {\n try {\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, 'metadata relative url resolving', dynamicTracking);\n } catch (error) {\n reject(error);\n reject = null;\n }\n }\n return originalThen(onfulfilled, onrejected);\n };\n // We wrap in a noop proxy to trick the runtime into thinking it\n // isn't a native promise (it's not really). This is so that awaiting\n // the promise will call the `then` property triggering the lazy postpone\n return new Proxy(promise, {});\n}\nfunction createRenderPathname(underlyingPathname) {\n return Promise.resolve(underlyingPathname);\n}\n\n//# sourceMappingURL=pathname.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhdGhuYW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsbUVBQWtFO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLHNDQUFzQyxtQkFBTyxDQUFDLDBGQUFnRDtBQUM5RiwrQkFBK0IsbUJBQU8sQ0FBQyxvR0FBNEI7QUFDbkUsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC9wYXRobmFtZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZVNlcnZlclBhdGhuYW1lRm9yTWV0YWRhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclBhdGhuYW1lRm9yTWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZyA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nXCIpO1xuY29uc3QgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJQYXRobmFtZUZvck1ldGFkYXRhKHVuZGVybHlpbmdQYXRobmFtZSwgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclBhdGhuYW1lKHVuZGVybHlpbmdQYXRobmFtZSwgd29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VydmVyUGF0aG5hbWVGb3JNZXRhZGF0YSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3NDBcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmcuZGVsYXlVbnRpbFJ1bnRpbWVTdGFnZSkod29ya1VuaXRTdG9yZSwgY3JlYXRlUmVuZGVyUGF0aG5hbWUodW5kZXJseWluZ1BhdGhuYW1lKSk7XG4gICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGF0aG5hbWUodW5kZXJseWluZ1BhdGhuYW1lKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAoMCwgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCk7XG59XG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJQYXRobmFtZSh1bmRlcmx5aW5nUGF0aG5hbWUsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBzd2l0Y2gocHJlcmVuZGVyU3RvcmUudHlwZSl7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVByZXJlbmRlclBhdGhuYW1lIHdhcyBjYWxsZWQgaW5zaWRlIGEgY2xpZW50IGNvbXBvbmVudCBzY29wZS4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTY5NFwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSBwcmVyZW5kZXJTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcyAmJiBmYWxsYmFja1BhcmFtcy5zaXplID4gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsIHdvcmtTdG9yZS5yb3V0ZSwgJ2BwYXRobmFtZWAnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrUGFyYW1zID0gcHJlcmVuZGVyU3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtcztcbiAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMgJiYgZmFsbGJhY2tQYXJhbXMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VFcnJvcmluZ1BhdGhuYW1lKHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBwcmVyZW5kZXJTdG9yZTtcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgaGF2ZSBhbnkgZmFsbGJhY2sgcGFyYW1zIHNvIHdlIGhhdmUgYW4gZW50aXJlbHkgc3RhdGljIHNhZmUgcGFyYW1zIG9iamVjdFxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhdGhuYW1lKTtcbn1cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ1BhdGhuYW1lKHdvcmtTdG9yZSwgZHluYW1pY1RyYWNraW5nKSB7XG4gICAgbGV0IHJlamVjdCA9IG51bGw7XG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChfLCByZSk9PntcbiAgICAgICAgcmVqZWN0ID0gcmU7XG4gICAgfSk7XG4gICAgY29uc3Qgb3JpZ2luYWxUaGVuID0gcHJvbWlzZS50aGVuLmJpbmQocHJvbWlzZSk7XG4gICAgLy8gV2UgaW5zdHJ1bWVudCAudGhlbiBzbyB0aGF0IHdlIGNhbiBnZW5lcmF0ZSBhIHRyYWNraW5nIGV2ZW50IG9ubHkgaWYgeW91IGFjdHVhbGx5XG4gICAgLy8gYXdhaXQgdGhpcyBwcm9taXNlLCBub3QganVzdCB0aGF0IGl0IGlzIGNyZWF0ZWQuXG4gICAgcHJvbWlzZS50aGVuID0gKG9uZnVsZmlsbGVkLCBvbnJlamVjdGVkKT0+e1xuICAgICAgICBpZiAocmVqZWN0KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCAnbWV0YWRhdGEgcmVsYXRpdmUgdXJsIHJlc29sdmluZycsIGR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgcmVqZWN0ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3JpZ2luYWxUaGVuKG9uZnVsZmlsbGVkLCBvbnJlamVjdGVkKTtcbiAgICB9O1xuICAgIC8vIFdlIHdyYXAgaW4gYSBub29wIHByb3h5IHRvIHRyaWNrIHRoZSBydW50aW1lIGludG8gdGhpbmtpbmcgaXRcbiAgICAvLyBpc24ndCBhIG5hdGl2ZSBwcm9taXNlIChpdCdzIG5vdCByZWFsbHkpLiBUaGlzIGlzIHNvIHRoYXQgYXdhaXRpbmdcbiAgICAvLyB0aGUgcHJvbWlzZSB3aWxsIGNhbGwgdGhlIGB0aGVuYCBwcm9wZXJ0eSB0cmlnZ2VyaW5nIHRoZSBsYXp5IHBvc3Rwb25lXG4gICAgcmV0dXJuIG5ldyBQcm94eShwcm9taXNlLCB7fSk7XG59XG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJQYXRobmFtZSh1bmRlcmx5aW5nUGF0aG5hbWUpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXRobmFtZSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhdGhuYW1lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/pathname.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/request/search-params.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/request/search-params.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 createPrerenderSearchParamsForClientPage: function() {\n return createPrerenderSearchParamsForClientPage;\n },\n createSearchParamsFromClient: function() {\n return createSearchParamsFromClient;\n },\n createServerSearchParamsForMetadata: function() {\n return createServerSearchParamsForMetadata;\n },\n createServerSearchParamsForServerPage: function() {\n return createServerSearchParamsForServerPage;\n },\n makeErroringSearchParamsForUseCache: function() {\n return makeErroringSearchParamsForUseCache;\n }\n});\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/utils.js\");\nfunction createSearchParamsFromClient(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderSearchParams(workStore, workUnitStore);\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E769\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E739\",\n enumerable: false,\n configurable: true\n });\n case 'request':\n return createRenderSearchParams(underlyingSearchParams, workStore);\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nconst createServerSearchParamsForMetadata = createServerSearchParamsForServerPage;\nfunction createServerSearchParamsForServerPage(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderSearchParams(workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E747\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore);\n case 'request':\n return createRenderSearchParams(underlyingSearchParams, workStore);\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createPrerenderSearchParamsForClientPage(workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n // We're prerendering in a mode that aborts (cacheComponents) and should stall\n // the promise to ensure the RSC side is considered dynamic\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`');\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E768\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E746\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n return Promise.resolve({});\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createStaticPrerenderSearchParams(workStore, prerenderStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n // We are in a cacheComponents (PPR or otherwise) prerender\n return makeHangingSearchParams(workStore, prerenderStore);\n case 'prerender-ppr':\n case 'prerender-legacy':\n // We are in a legacy static generation and need to interrupt the\n // prerender when search params are accessed.\n return makeErroringExoticSearchParams(workStore, prerenderStore);\n default:\n return prerenderStore;\n }\n}\nfunction createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) {\n return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, false ? 0 : makeUntrackedExoticSearchParams(underlyingSearchParams));\n}\nfunction createRenderSearchParams(underlyingSearchParams, workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n } else {\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n if (false) {}\n return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore);\n } else {}\n }\n}\nconst CachedSearchParams = new WeakMap();\nconst CachedSearchParamsForUseCache = new WeakMap();\nfunction makeHangingSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(prerenderStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`');\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n default:\n {\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n }\n });\n CachedSearchParams.set(prerenderStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringExoticSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const underlyingSearchParams = {};\n // For search params we don't construct a ReactPromise because we want to interrupt\n // rendering on any property access that was not set from outside and so we only want\n // to have properties like value and status if React sets them.\n const promise = Promise.resolve(underlyingSearchParams);\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n default:\n {\n if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n },\n has (target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests trigger dynamic. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string') {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return false;\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys () {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n });\n CachedSearchParams.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringSearchParamsForUseCache(workStore) {\n const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve({});\n const proxiedPromise = new Proxy(promise, {\n get: function get(target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it. We know it\n // isn't a dynamic access because it can only be something that was\n // previously written to the promise and thus not an underlying\n // searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get);\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has: function has(target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests throw an error. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has);\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys: function ownKeys() {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys);\n }\n });\n CachedSearchParamsForUseCache.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeUntrackedExoticSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (!_reflectutils.wellKnownProperties.has(prop)) {\n Object.defineProperty(promise, prop, {\n get () {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore);\n }\n return underlyingSearchParams[prop];\n },\n set (value) {\n Object.defineProperty(promise, prop, {\n value,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n return promise;\n}\nfunction makeUntrackedSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying\n // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender\n // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking\n // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger\n // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce\n // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise.\n let promiseInitialized = false;\n const proxiedUnderlying = new Proxy(underlyingSearchParams, {\n get (target, prop, receiver) {\n if (typeof prop === 'string' && promiseInitialized) {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n if (store.dynamicShouldError) {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n return Reflect.ownKeys(target);\n }\n });\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams);\n promise.then(()=>{\n promiseInitialized = true;\n });\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n Object.defineProperty(promise, prop, {\n get () {\n return proxiedUnderlying[prop];\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (prop === 'then' && store.dynamicShouldError) {\n const expression = '`searchParams.then`';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but\n// just logging the sync access without actually defining the search params on\n// the promise.\nfunction makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n if (workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev, we need to advance out of\n // the Prerender environment when we read Request data synchronously.\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore);\n }\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createSearchAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E249\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E2\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=search-params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsNEhBQXdDO0FBQ2pFLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxzQ0FBc0MsbUJBQU8sQ0FBQywwRkFBZ0Q7QUFDOUYsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxrREFBa0QsbUJBQU8sQ0FBQyxrSkFBbUQ7QUFDN0csc0JBQXNCLG1CQUFPLENBQUMsOEdBQXNDO0FBQ3BFLGVBQWUsbUJBQU8sQ0FBQyx1RUFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFD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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0Esc0NBQXNDLGdCQUFnQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0MsOENBQThDLE9BQU8sT0FBTyxXQUFXO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0MsOENBQThDLE9BQU8sT0FBTyxXQUFXLHlOQUF5TiwrQ0FBK0M7QUFDL1U7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBLHdCQUF3QixjQUFjLFdBQVcsY0FBYztBQUMvRDtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsMkJBQTJCO0FBQzFELHdDQUF3QyxjQUFjO0FBQ3REO0FBQ0EsMENBQTBDLGtDQUFrQztBQUM1RTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC9zZWFyY2gtcGFyYW1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTogbnVsbCxcbiAgICBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50OiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U6IG51bGwsXG4gICAgbWFrZUVycm9yaW5nU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlO1xuICAgIH0sXG4gICAgY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50O1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U7XG4gICAgfSxcbiAgICBtYWtlRXJyb3JpbmdTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZTtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWZsZWN0ID0gcmVxdWlyZShcIi4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0XCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZ1wiKTtcbmNvbnN0IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzID0gcmVxdWlyZShcIi4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzXCIpO1xuY29uc3QgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIgPSByZXF1aXJlKFwiLi4vY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlclwiKTtcbmNvbnN0IF9yZWZsZWN0dXRpbHMgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi91dGlscy9yZWZsZWN0LXV0aWxzXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG5mdW5jdGlvbiBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhdGljUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gYSBydW50aW1lIHByZXJlbmRlci4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3NjlcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzM5XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAoMCwgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCk7XG59XG5jb25zdCBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YSA9IGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhdGljUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3NDdcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSdW50aW1lUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgICgwLCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2Uod29ya1N0b3JlKSB7XG4gICAgaWYgKHdvcmtTdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAgIC8vIGRpY3Rpb25hcnkgb2JqZWN0LlxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgLy8gV2UncmUgcHJlcmVuZGVyaW5nIGluIGEgbW9kZSB0aGF0IGFib3J0cyAoY2FjaGVDb21wb25lbnRzKSBhbmQgc2hvdWxkIHN0YWxsXG4gICAgICAgICAgICAgICAgLy8gdGhlIHByb21pc2UgdG8gZW5zdXJlIHRoZSBSU0Mgc2lkZSBpcyBjb25zaWRlcmVkIGR5bmFtaWNcbiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgd29ya1N0b3JlLnJvdXRlLCAnYHNlYXJjaFBhcmFtc2AnKTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIHJ1bnRpbWUgcHJlcmVuZGVyLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc2OFwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3NDZcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgICgwLCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVN0YXRpY1ByZXJlbmRlclNlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgaWYgKHdvcmtTdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAgIC8vIGRpY3Rpb25hcnkgb2JqZWN0LlxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9XG4gICAgc3dpdGNoKHByZXJlbmRlclN0b3JlLnR5cGUpe1xuICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIC8vIFdlIGFyZSBpbiBhIGNhY2hlQ29tcG9uZW50cyAoUFBSIG9yIG90aGVyd2lzZSkgcHJlcmVuZGVyXG4gICAgICAgICAgICByZXR1cm4gbWFrZUhhbmdpbmdTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgIC8vIFdlIGFyZSBpbiBhIGxlZ2FjeSBzdGF0aWMgZ2VuZXJhdGlvbiBhbmQgbmVlZCB0byBpbnRlcnJ1cHQgdGhlXG4gICAgICAgICAgICAvLyBwcmVyZW5kZXIgd2hlbiBzZWFyY2ggcGFyYW1zIGFyZSBhY2Nlc3NlZC5cbiAgICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdFeG90aWNTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gcHJlcmVuZGVyU3RvcmU7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlUnVudGltZVByZXJlbmRlclNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrVW5pdFN0b3JlKSB7XG4gICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZy5kZWxheVVudGlsUnVudGltZVN0YWdlKSh3b3JrVW5pdFN0b3JlLCBwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUyA/IG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykgOiBtYWtlVW50cmFja2VkRXhvdGljU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBpZiAod29ya1N0b3JlLmZvcmNlU3RhdGljKSB7XG4gICAgICAgIC8vIFdoZW4gdXNpbmcgZm9yY2VTdGF0aWMgd2Ugb3ZlcnJpZGUgYWxsIG90aGVyIGxvZ2ljIGFuZCBhbHdheXMganVzdCByZXR1cm4gYW4gZW1wdHlcbiAgICAgICAgLy8gZGljdGlvbmFyeSBvYmplY3QuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgLy8gU2VtYW50aWNhbGx5IHdlIG9ubHkgbmVlZCB0aGUgZGV2IHRyYWNraW5nIHdoZW4gcnVubmluZyBpbiBgbmV4dCBkZXZgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgeW91IHdvdWxkIG5ldmVyIHVzZSBuZXh0IGRldiB3aXRoIHByb2R1Y3Rpb24gTk9ERV9FTlYgd2UgdXNlIHRoaXNcbiAgICAgICAgICAgIC8vIGFzIGEgcHJveHkgc28gd2UgY2FuIHN0YXRpY2FsbHkgZXhjbHVkZSB0aGlzIGNvZGUgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcy5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUykge1xuICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmNvbnN0IENhY2hlZFNlYXJjaFBhcmFtcyA9IG5ldyBXZWFrTWFwKCk7XG5jb25zdCBDYWNoZWRTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZSA9IG5ldyBXZWFrTWFwKCk7XG5mdW5jdGlvbiBtYWtlSGFuZ2luZ1NlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldChwcmVyZW5kZXJTdG9yZSk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsIHdvcmtTdG9yZS5yb3V0ZSwgJ2BzZWFyY2hQYXJhbXNgJyk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKHByb21pc2UsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByb21pc2UgaGFzIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuIHdlIG11c3QgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgaXQgaXNuJ3QgYSBkeW5hbWljIGFjY2VzcyBiZWNhdXNlIGl0IGNhbiBvbmx5IGJlIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHByZXZpb3VzbHkgd3JpdHRlbiB0byB0aGUgcHJvbWlzZSBhbmQgdGh1cyBub3QgYW4gdW5kZXJseWluZyBzZWFyY2hQYXJhbSB2YWx1ZVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGF3YWl0IHNlYXJjaFBhcmFtc2AsIGBzZWFyY2hQYXJhbXMudGhlbmAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLmFubm90YXRlRHluYW1pY0FjY2VzcykoZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXR1cyc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHVzZShzZWFyY2hQYXJhbXMpYCwgYHNlYXJjaFBhcmFtcy5zdGF0dXNgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5hbm5vdGF0ZUR5bmFtaWNBY2Nlc3MpKGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHByZXJlbmRlclN0b3JlLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUVycm9yaW5nRXhvdGljU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHdvcmtTdG9yZSk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCB1bmRlcmx5aW5nU2VhcmNoUGFyYW1zID0ge307XG4gICAgLy8gRm9yIHNlYXJjaCBwYXJhbXMgd2UgZG9uJ3QgY29uc3RydWN0IGEgUmVhY3RQcm9taXNlIGJlY2F1c2Ugd2Ugd2FudCB0byBpbnRlcnJ1cHRcbiAgICAvLyByZW5kZXJpbmcgb24gYW55IHByb3BlcnR5IGFjY2VzcyB0aGF0IHdhcyBub3Qgc2V0IGZyb20gb3V0c2lkZSBhbmQgc28gd2Ugb25seSB3YW50XG4gICAgLy8gdG8gaGF2ZSBwcm9wZXJ0aWVzIGxpa2UgdmFsdWUgYW5kIHN0YXR1cyBpZiBSZWFjdCBzZXRzIHRoZW0uXG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5oYXNPd24ocHJvbWlzZSwgcHJvcCkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgcHJvbWlzZSBoYXMgdGhpcyBwcm9wZXJ0eSBkaXJlY3RseS4gd2UgbXVzdCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgLy8gV2Uga25vdyBpdCBpc24ndCBhIGR5bmFtaWMgYWNjZXNzIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgLy8gdGhhdCB3YXMgcHJldmlvdXNseSB3cml0dGVuIHRvIHRoZSBwcm9taXNlIGFuZCB0aHVzIG5vdCBhbiB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtIHZhbHVlXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaChwcm9wKXtcbiAgICAgICAgICAgICAgICBjYXNlICd0aGVuJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgYXdhaXQgc2VhcmNoUGFyYW1zYCwgYHNlYXJjaFBhcmFtcy50aGVuYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGNhY2hlQ29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdzdGF0dXMnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2B1c2Uoc2VhcmNoUGFyYW1zKWAsIGBzZWFyY2hQYXJhbXMuc3RhdHVzYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGNhY2hlQ29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnICYmICFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGNhY2hlQ29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGV4cGVjdCBrZXkgY2hlY2tpbmcgdG8gYmUgdXNlZCBleGNlcHQgZm9yIHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvZlxuICAgICAgICAgICAgLy8gc2VhcmNoUGFyYW1zIHNvIHdlIG1ha2UgYWxsIGhhcyB0ZXN0cyB0cmlnZ2VyIGR5bmFtaWMuIHRoaXMgbWVhbnMgdGhhdCBgcHJvbWlzZS50aGVuYFxuICAgICAgICAgICAgLy8gY2FuIHJlc29sdmUgdG8gdGhlIHRoZW4gZnVuY3Rpb24gb24gdGhlIFByb21pc2UgcHJvdG90eXBlIGJ1dCAndGhlbicgaW4gcHJvbWlzZSB3aWxsIGFzc3VtZVxuICAgICAgICAgICAgLy8geW91IGFyZSB0ZXN0aW5nIHdoZXRoZXIgdGhlIHNlYXJjaFBhcmFtcyBoYXMgYSAndGhlbicgcHJvcGVydHkuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSkoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAoKSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2B7Li4uc2VhcmNoUGFyYW1zfWAsIGBPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGNhY2hlQ29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHdvcmtTdG9yZSwgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ1NlYXJjaFBhcmFtc0ZvclVzZUNhY2hlKHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtc0ZvclVzZUNhY2hlLmdldCh3b3JrU3RvcmUpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihwcm9taXNlLCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBwcm9taXNlIGhhcyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5LiB3ZSBtdXN0IHJldHVybiBpdC4gV2Uga25vdyBpdFxuICAgICAgICAgICAgICAgIC8vIGlzbid0IGEgZHluYW1pYyBhY2Nlc3MgYmVjYXVzZSBpdCBjYW4gb25seSBiZSBzb21ldGhpbmcgdGhhdCB3YXNcbiAgICAgICAgICAgICAgICAvLyBwcmV2aW91c2x5IHdyaXR0ZW4gdG8gdGhlIHByb21pc2UgYW5kIHRodXMgbm90IGFuIHVuZGVybHlpbmdcbiAgICAgICAgICAgICAgICAvLyBzZWFyY2hQYXJhbSB2YWx1ZVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnICYmIChwcm9wID09PSAndGhlbicgfHwgIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpKSB7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGUpKHdvcmtTdG9yZSwgZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhczogZnVuY3Rpb24gaGFzKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgZXhwZWN0IGtleSBjaGVja2luZyB0byBiZSB1c2VkIGV4Y2VwdCBmb3IgdGVzdGluZyB0aGUgZXhpc3RlbmNlIG9mXG4gICAgICAgICAgICAvLyBzZWFyY2hQYXJhbXMgc28gd2UgbWFrZSBhbGwgaGFzIHRlc3RzIHRocm93IGFuIGVycm9yLiB0aGlzIG1lYW5zIHRoYXQgYHByb21pc2UudGhlbmBcbiAgICAgICAgICAgIC8vIGNhbiByZXNvbHZlIHRvIHRoZSB0aGVuIGZ1bmN0aW9uIG9uIHRoZSBQcm9taXNlIHByb3RvdHlwZSBidXQgJ3RoZW4nIGluIHByb21pc2Ugd2lsbCBhc3N1bWVcbiAgICAgICAgICAgIC8vIHlvdSBhcmUgdGVzdGluZyB3aGV0aGVyIHRoZSBzZWFyY2hQYXJhbXMgaGFzIGEgJ3RoZW4nIHByb3BlcnR5LlxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiAocHJvcCA9PT0gJ3RoZW4nIHx8ICFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSkge1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dGb3JTZWFyY2hQYXJhbXNBY2Nlc3NJblVzZUNhY2hlKSh3b3JrU3RvcmUsIGhhcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXM6IGZ1bmN0aW9uIG93bktleXMoKSB7XG4gICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZSkod29ya1N0b3JlLCBvd25LZXlzKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtc0ZvclVzZUNhY2hlLnNldCh3b3JrU3RvcmUsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlVW50cmFja2VkRXhvdGljU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2Ugc2VhcmNoUGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHByb21pc2UpO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmICghX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKSh3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZXJseWluZ1NlYXJjaFBhcmFtc1twcm9wXTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHByb21pc2UpO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgLy8gV2UgaGF2ZSBhbiB1bmZvcnR1bmF0ZSBzZXF1ZW5jZSBvZiBldmVudHMgdGhhdCByZXF1aXJlcyB0aGlzIGluaXRpYWxpemF0aW9uIGxvZ2ljLiBXZSB3YW50IHRvIGluc3RydW1lbnQgdGhlIHVuZGVybHlpbmdcbiAgICAvLyBzZWFyY2hQYXJhbXMgb2JqZWN0IHRvIGRldGVjdCBpZiB5b3UgYXJlIGFjY2Vzc2luZyB2YWx1ZXMgaW4gZGV2LiBUaGlzIGlzIHVzZWQgZm9yIHdhcm5pbmdzIGFuZCBmb3IgdGhpbmdzIGxpa2UgdGhlIHN0YXRpYyBwcmVyZW5kZXJcbiAgICAvLyBpbmRpY2F0b3IuIEhvd2V2ZXIgd2hlbiB3ZSBwYXNzIHRoaXMgcHJveHkgdG8gb3VyIFByb21pc2UucmVzb2x2ZSgpIGJlbG93IHRoZSBWTSBjaGVja3MgaWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzIGEgcHJvbWlzZSBieSBsb29raW5nXG4gICAgLy8gYXQgdGhlIGAudGhlbmAgcHJvcGVydHkuIFRvIG91ciBkeW5hbWljIHRyYWNraW5nIGxvZ2ljIHRoaXMgaXMgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBhIGB0aGVuYCBzZWFyY2hQYXJhbSBhbmQgc28gd2Ugd291bGQgbm9ybWFsbHkgdHJpZ2dlclxuICAgIC8vIGR5bmFtaWMgdHJhY2tpbmcuIEhvd2V2ZXIgd2Uga25vdyB0aGF0IHRoaXMgLnRoZW4gaXMgbm90IHJlYWwgZHluYW1pYyBhY2Nlc3MsIGl0J3MganVzdCBob3cgdGhlbmFibGVzIHJlc29sdmUgaW4gc2VxdWVuY2UuIFNvIHdlIGludHJvZHVjZVxuICAgIC8vIHRoaXMgaW5pdGlhbGl6YXRpb24gY29uY2VwdCBzbyB3ZSBvbWl0IHRoZSBkeW5hbWljIGNoZWNrIHVudGlsIGFmdGVyIHdlJ3ZlIGNvbnN0cnVjdGVkIG91ciByZXNvbHZlZCBwcm9taXNlLlxuICAgIGxldCBwcm9taXNlSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBwcm94aWVkVW5kZXJseWluZyA9IG5ldyBQcm94eSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiBwcm9taXNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIpKHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgey4uLnNlYXJjaFBhcmFtc31gLCBgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHNlYXJjaFBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZSkodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgcHJvbWlzZS50aGVuKCgpPT57XG4gICAgICAgIHByb21pc2VJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgICAgICB1bnByb3hpZWRQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5hZGQocHJvcCk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm94aWVkVW5kZXJseWluZ1twcm9wXTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldCAobmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ3RoZW4nICYmIHN0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHNlYXJjaFBhcmFtcy50aGVuYCc7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICghX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJiAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8IC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgICAgIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCkgPT09IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5kZWxldGUocHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBoYXMgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICghX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJiAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8IC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgICAgIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCkgPT09IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuLy8gU2ltaWxhciB0byBgbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5nc2AsIGJ1dFxuLy8ganVzdCBsb2dnaW5nIHRoZSBzeW5jIGFjY2VzcyB3aXRob3V0IGFjdHVhbGx5IGRlZmluaW5nIHRoZSBzZWFyY2ggcGFyYW1zIG9uXG4vLyB0aGUgcHJvbWlzZS5cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgc3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJveGllZFByb3BlcnRpZXMgPSBuZXcgU2V0KCk7XG4gICAgY29uc3QgdW5wcm94aWVkUHJvcGVydGllcyA9IFtdO1xuICAgIGNvbnN0IHByb21pc2UgPSAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZSkodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgICAgICB1bnByb3hpZWRQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5hZGQocHJvcCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICghX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJiAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8IC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgICAgIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCkgPT09IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICB3YXJuRm9yU3luY0FjY2VzcyhzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApICYmIChwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkgfHwgLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgZG9lc24ndCBleGlzdCBvbiB0aGUgcHJvbWlzZSBub3JcbiAgICAgICAgICAgICAgICAvLyB0aGUgdW5kZXJseWluZyBzZWFyY2hQYXJhbXMuXG4gICAgICAgICAgICAgICAgUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKSA9PT0gZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgd2FybkZvclN5bmNBY2Nlc3Moc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgdW5wcm94aWVkUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKSB7XG4gICAgLy8gSW4gYWxsIGNhc2VzIHdlIHdhcm4gbm9ybWFsbHlcbiAgICBpZiAobWlzc2luZ1Byb3BlcnRpZXMgJiYgbWlzc2luZ1Byb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICB3YXJuRm9ySW5jb21wbGV0ZUVudW1lcmF0aW9uKHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgd2FybkZvclN5bmNBY2Nlc3Mocm91dGUsIGV4cHJlc3Npb24pO1xuICAgIH1cbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnByZXJlbmRlclBoYXNlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UncmUgcmVuZGVyaW5nIGR5bmFtaWNhbGx5IGluIGRldiwgd2UgbmVlZCB0byBhZHZhbmNlIG91dCBvZlxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgUHJlcmVuZGVyIGVudmlyb25tZW50IHdoZW4gd2UgcmVhZCBSZXF1ZXN0IGRhdGEgc3luY2hyb25vdXNseS5cbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2KSh3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5jb25zdCB3YXJuRm9yU3luY0FjY2VzcyA9ICgwLCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlci5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShjcmVhdGVTZWFyY2hBY2Nlc3NFcnJvcik7XG5jb25zdCB3YXJuRm9ySW5jb21wbGV0ZUVudW1lcmF0aW9uID0gKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKTtcbmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaEFjY2Vzc0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgKyBgXFxgc2VhcmNoUGFyYW1zXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgcHJvcGVydGllcy4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTI0OVwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBzZWFyY2hQYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB3ZXJlIG5vdCBhdmFpbGFibGUgdGhyb3VnaCBlbnVtZXJhdGlvbiBgICsgYGJlY2F1c2UgdGhleSBjb25mbGljdCB3aXRoIGJ1aWx0aW4gb3Igd2VsbC1rbm93biBwcm9wZXJ0eSBuYW1lczogYCArIGAke2Rlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyhtaXNzaW5nUHJvcGVydGllcyl9LiBgICsgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMlwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMocHJvcGVydGllcykge1xuICAgIHN3aXRjaChwcm9wZXJ0aWVzLmxlbmd0aCl7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdFeHBlY3RlZCBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMgdG8gYmUgY2FsbGVkIHdpdGggYSBub24tZW1wdHkgbGlzdCBvZiBzdHJpbmdzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTMxXCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgYDtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgIGFuZCBcXGAke3Byb3BlcnRpZXNbMV19XFxgYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgXFxgJHtwcm9wZXJ0aWVzW2ldfVxcYCwgYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYCwgYW5kIFxcYCR7cHJvcGVydGllc1twcm9wZXJ0aWVzLmxlbmd0aCAtIDFdfVxcYGA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VhcmNoLXBhcmFtcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/search-params.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/request/utils.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/request/utils.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 isRequestAPICallableInsideAfter: function() {\n return isRequestAPICallableInsideAfter;\n },\n throwForSearchParamsAccessInUseCache: function() {\n return throwForSearchParamsAccessInUseCache;\n },\n throwWithStaticGenerationBailoutError: function() {\n return throwWithStaticGenerationBailoutError;\n },\n throwWithStaticGenerationBailoutErrorWithDynamicError: function() {\n return throwWithStaticGenerationBailoutErrorWithDynamicError;\n }\n});\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _aftertaskasyncstorageexternal = __webpack_require__(/*! ../app-render/after-task-async-storage.external */ \"../app-render/after-task-async-storage.external\");\nfunction throwWithStaticGenerationBailoutError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E576\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E543\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwForSearchParamsAccessInUseCache(workStore, constructorOpt) {\n const error = Object.defineProperty(new Error(`Route ${workStore.route} used \"searchParams\" inside \"use cache\". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \"searchParams\" outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E779\",\n enumerable: false,\n configurable: true\n });\n Error.captureStackTrace(error, constructorOpt);\n workStore.invalidDynamicUsageError ??= error;\n throw error;\n}\nfunction isRequestAPICallableInsideAfter() {\n const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore();\n return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action';\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW9DZ0JBLCtCQUErQjtlQUEvQkE7O0lBZEFDLG9DQUFvQztlQUFwQ0E7O0lBbEJBQyxxQ0FBcUM7ZUFBckNBOztJQVNBQyxxREFBcUQ7ZUFBckRBOzs7cURBYnNCOzJEQUNBO0FBRy9CLFNBQVNELHNDQUNkRSxLQUFhLEVBQ2JDLFVBQWtCO0lBRWxCLE1BQU0scUJBRUwsQ0FGSyxJQUFJQyx5QkFBQUEscUJBQXFCLENBQzdCLENBQUMsTUFBTSxFQUFFRixNQUFNLGlEQUFpRCxFQUFFQyxXQUFXLDBIQUEwSCxDQUFDLEdBRHBNO2VBQUE7b0JBQUE7c0JBQUE7SUFFTjtBQUNGO0FBRU8sU0FBU0Ysc0RBQ2RDLEtBQWEsRUFDYkMsVUFBa0I7SUFFbEIsTUFBTSxxQkFFTCxDQUZLLElBQUlDLHlCQUFBQSxxQkFBcUIsQ0FDN0IsQ0FBQyxNQUFNLEVBQUVGLE1BQU0sNEVBQTRFLEVBQUVDLFdBQVcsMEhBQTBILENBQUMsR0FEL047ZUFBQTtvQkFBQTtzQkFBQTtJQUVOO0FBQ0Y7QUFFTyxTQUFTSixxQ0FDZE0sU0FBb0IsRUFDcEJDLGNBQXdCO0lBRXhCLE1BQU1DLFFBQVEscUJBRWIsQ0FGYSxJQUFJQyxNQUNoQixDQUFDLE1BQU0sRUFBRUgsVUFBVUgsS0FBSyxDQUFDLHVYQUF1WCxDQUFDLEdBRHJZO2VBQUE7b0JBQUE7c0JBQUE7SUFFZDtJQUVBTSxNQUFNQyxpQkFBaUIsQ0FBQ0YsT0FBT0Q7SUFDL0JELFVBQVVLLHdCQUF3QixLQUFLSDtJQUV2QyxNQUFNQTtBQUNSO0FBRU8sU0FBU1Q7SUFDZCxNQUFNYSxpQkFBaUJDLCtCQUFBQSxxQkFBcUIsQ0FBQ0MsUUFBUTtJQUNyRCxPQUFPRixDQUFBQSxrQkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsZUFBZ0JHLGtCQUFBQSxNQUF1QjtBQUNoRCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL3NlcnZlci9yZXF1ZXN0L3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRpY0dlbkJhaWxvdXRFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQnXG5pbXBvcnQgeyBhZnRlclRhc2tBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL2FmdGVyLXRhc2stYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB0eXBlIHsgV29ya1N0b3JlIH0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmdcbik6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICBgUm91dGUgJHtyb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcihcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiBuZXZlciB7XG4gIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gICAgYFJvdXRlICR7cm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZShcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGNvbnN0cnVjdG9yT3B0OiBGdW5jdGlvblxuKTogbmV2ZXIge1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJzZWFyY2hQYXJhbXNcIiBpbnNpZGUgXCJ1c2UgY2FjaGVcIi4gQWNjZXNzaW5nIGR5bmFtaWMgcmVxdWVzdCBkYXRhIGluc2lkZSBhIGNhY2hlIHNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQuIElmIHlvdSBuZWVkIHNvbWUgc2VhcmNoIHBhcmFtcyBpbnNpZGUgYSBjYWNoZWQgZnVuY3Rpb24gYXdhaXQgXCJzZWFyY2hQYXJhbXNcIiBvdXRzaWRlIG9mIHRoZSBjYWNoZWQgZnVuY3Rpb24gYW5kIHBhc3Mgb25seSB0aGUgcmVxdWlyZWQgc2VhcmNoIHBhcmFtcyBhcyBhcmd1bWVudHMgdG8gdGhlIGNhY2hlZCBmdW5jdGlvbi4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXJlcXVlc3QtaW4tdXNlLWNhY2hlYFxuICApXG5cbiAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyb3IsIGNvbnN0cnVjdG9yT3B0KVxuICB3b3JrU3RvcmUuaW52YWxpZER5bmFtaWNVc2FnZUVycm9yID8/PSBlcnJvclxuXG4gIHRocm93IGVycm9yXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyKCkge1xuICBjb25zdCBhZnRlclRhc2tTdG9yZSA9IGFmdGVyVGFza0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIHJldHVybiBhZnRlclRhc2tTdG9yZT8ucm9vdFRhc2tTcGF3blBoYXNlID09PSAnYWN0aW9uJ1xufVxuIl0sIm5hbWVzIjpbImlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIiLCJ0aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGUiLCJ0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yIiwidGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IiLCJyb3V0ZSIsImV4cHJlc3Npb24iLCJTdGF0aWNHZW5CYWlsb3V0RXJyb3IiLCJ3b3JrU3RvcmUiLCJjb25zdHJ1Y3Rvck9wdCIsImVycm9yIiwiRXJyb3IiLCJjYXB0dXJlU3RhY2tUcmFjZSIsImludmFsaWREeW5hbWljVXNhZ2VFcnJvciIsImFmdGVyVGFza1N0b3JlIiwiYWZ0ZXJUYXNrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJyb290VGFza1NwYXduUGhhc2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/response-cache/index.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/response-cache/index.js ***!
|
||
\***************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return ResponseCache;\n }\n}));\n0 && 0;\nconst _batcher = __webpack_require__(/*! ../../lib/batcher */ \"(rsc)/./node_modules/next/dist/lib/batcher.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/response-cache/utils.js\");\n_export_star(__webpack_require__(/*! ./types */ \"(rsc)/./node_modules/next/dist/server/response-cache/types.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\nclass ResponseCache {\n constructor(minimal_mode){\n this.batcher = _batcher.Batcher.create({\n // Ensure on-demand revalidate doesn't block normal requests, it should be\n // safe to run an on-demand revalidate for the same key as a normal request.\n cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`,\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: _scheduler.scheduleOnNextTick\n });\n this.minimal_mode = minimal_mode;\n }\n async get(key, responseGenerator, context) {\n // If there is no key for the cache, we can't possibly look this up in the\n // cache so just return the result of the response generator.\n if (!key) {\n return responseGenerator({\n hasResolved: false,\n previousCacheEntry: null\n });\n }\n const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false, waitUntil } = context;\n const response = await this.batcher.batch({\n key,\n isOnDemandRevalidate\n }, (cacheKey, resolve)=>{\n const prom = (async ()=>{\n var _this_previousCacheItem;\n // We keep the previous cache entry around to leverage when the\n // incremental cache is disabled in minimal mode.\n if (this.minimal_mode && ((_this_previousCacheItem = this.previousCacheItem) == null ? void 0 : _this_previousCacheItem.key) === cacheKey && this.previousCacheItem.expiresAt > Date.now()) {\n return this.previousCacheItem.entry;\n }\n // Coerce the kindHint into a given kind for the incremental cache.\n const kind = (0, _utils.routeKindToIncrementalCacheKind)(context.routeKind);\n let resolved = false;\n let cachedResponse = null;\n try {\n cachedResponse = !this.minimal_mode ? await incrementalCache.get(key, {\n kind,\n isRoutePPREnabled: context.isRoutePPREnabled,\n isFallback\n }) : null;\n if (cachedResponse && !isOnDemandRevalidate) {\n resolve(cachedResponse);\n resolved = true;\n if (!cachedResponse.isStale || context.isPrefetch) {\n // The cached value is still valid, so we don't need\n // to update it yet.\n return null;\n }\n }\n const cacheEntry = await responseGenerator({\n hasResolved: resolved,\n previousCacheEntry: cachedResponse,\n isRevalidating: true\n });\n // If the cache entry couldn't be generated, we don't want to cache\n // the result.\n if (!cacheEntry) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n const resolveValue = await (0, _utils.fromResponseCacheEntry)({\n ...cacheEntry,\n isMiss: !cachedResponse\n });\n if (!resolveValue) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n // For on-demand revalidate wait to resolve until cache is set.\n // Otherwise resolve now.\n if (!isOnDemandRevalidate && !resolved) {\n resolve(resolveValue);\n resolved = true;\n }\n // We want to persist the result only if it has a cache control value\n // defined.\n if (resolveValue.cacheControl) {\n if (this.minimal_mode) {\n this.previousCacheItem = {\n key: cacheKey,\n entry: resolveValue,\n expiresAt: Date.now() + 1000\n };\n } else {\n await incrementalCache.set(key, resolveValue.value, {\n cacheControl: resolveValue.cacheControl,\n isRoutePPREnabled,\n isFallback\n });\n }\n }\n return resolveValue;\n } catch (err) {\n // When a path is erroring we automatically re-set the existing cache\n // with new revalidate and expire times to prevent non-stop retrying.\n if (cachedResponse == null ? void 0 : cachedResponse.cacheControl) {\n const newRevalidate = Math.min(Math.max(cachedResponse.cacheControl.revalidate || 3, 3), 30);\n const newExpire = cachedResponse.cacheControl.expire === undefined ? undefined : Math.max(newRevalidate + 3, cachedResponse.cacheControl.expire);\n await incrementalCache.set(key, cachedResponse.value, {\n cacheControl: {\n revalidate: newRevalidate,\n expire: newExpire\n },\n isRoutePPREnabled,\n isFallback\n });\n }\n // While revalidating in the background we can't reject as we already\n // resolved the cache entry so log the error here.\n if (resolved) {\n console.error(err);\n return null;\n }\n // We haven't resolved yet, so let's throw to indicate an error.\n throw err;\n }\n })();\n // we need to ensure background revalidates are\n // passed to waitUntil\n if (waitUntil) {\n waitUntil(prom);\n }\n return prom;\n });\n return (0, _utils.toResponseCacheEntry)(response);\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLEtBQUssQ0FBNEI7QUFDakMsaUJBQWlCLG1CQUFPLENBQUMsd0VBQW1CO0FBQzVDLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxlQUFlLG1CQUFPLENBQUMsOEVBQVM7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLDhFQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsMkJBQTJCLE1BQU0sSUFBSSxHQUFHLGlDQUFpQztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxnQkFBZ0IsMkdBQTJHO0FBQzNIO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlc3BvbnNlQ2FjaGU7XG4gICAgfVxufSk7XG4wICYmIF9fZXhwb3J0KHJlcXVpcmUoXCIuL3R5cGVzXCIpKTtcbmNvbnN0IF9iYXRjaGVyID0gcmVxdWlyZShcIi4uLy4uL2xpYi9iYXRjaGVyXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG5fZXhwb3J0X3N0YXIocmVxdWlyZShcIi4vdHlwZXNcIiksIGV4cG9ydHMpO1xuZnVuY3Rpb24gX2V4cG9ydF9zdGFyKGZyb20sIHRvKSB7XG4gICAgT2JqZWN0LmtleXMoZnJvbSkuZm9yRWFjaChmdW5jdGlvbihrKSB7XG4gICAgICAgIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRvLCBrKSkge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRvLCBrLCB7XG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbVtrXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmcm9tO1xufVxuY2xhc3MgUmVzcG9uc2VDYWNoZSB7XG4gICAgY29uc3RydWN0b3IobWluaW1hbF9tb2RlKXtcbiAgICAgICAgdGhpcy5iYXRjaGVyID0gX2JhdGNoZXIuQmF0Y2hlci5jcmVhdGUoe1xuICAgICAgICAgICAgLy8gRW5zdXJlIG9uLWRlbWFuZCByZXZhbGlkYXRlIGRvZXNuJ3QgYmxvY2sgbm9ybWFsIHJlcXVlc3RzLCBpdCBzaG91bGQgYmVcbiAgICAgICAgICAgIC8vIHNhZmUgdG8gcnVuIGFuIG9uLWRlbWFuZCByZXZhbGlkYXRlIGZvciB0aGUgc2FtZSBrZXkgYXMgYSBub3JtYWwgcmVxdWVzdC5cbiAgICAgICAgICAgIGNhY2hlS2V5Rm46ICh7IGtleSwgaXNPbkRlbWFuZFJldmFsaWRhdGUgfSk9PmAke2tleX0tJHtpc09uRGVtYW5kUmV2YWxpZGF0ZSA/ICcxJyA6ICcwJ31gLFxuICAgICAgICAgICAgLy8gV2Ugd2FpdCB0byBkbyBhbnkgYXN5bmMgd29yayB1bnRpbCBhZnRlciB3ZSd2ZSBhZGRlZCBvdXIgcHJvbWlzZSB0b1xuICAgICAgICAgICAgLy8gYHBlbmRpbmdSZXNwb25zZXNgIHRvIGVuc3VyZSB0aGF0IGFueSBhbnkgb3RoZXIgY2FsbHMgd2lsbCByZXVzZSB0aGVcbiAgICAgICAgICAgIC8vIHNhbWUgcHJvbWlzZSB1bnRpbCB3ZSd2ZSBmdWxseSBmaW5pc2hlZCBvdXIgd29yay5cbiAgICAgICAgICAgIHNjaGVkdWxlckZuOiBfc2NoZWR1bGVyLnNjaGVkdWxlT25OZXh0VGlja1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5taW5pbWFsX21vZGUgPSBtaW5pbWFsX21vZGU7XG4gICAgfVxuICAgIGFzeW5jIGdldChrZXksIHJlc3BvbnNlR2VuZXJhdG9yLCBjb250ZXh0KSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGtleSBmb3IgdGhlIGNhY2hlLCB3ZSBjYW4ndCBwb3NzaWJseSBsb29rIHRoaXMgdXAgaW4gdGhlXG4gICAgICAgIC8vIGNhY2hlIHNvIGp1c3QgcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIHJlc3BvbnNlIGdlbmVyYXRvci5cbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZUdlbmVyYXRvcih7XG4gICAgICAgICAgICAgICAgaGFzUmVzb2x2ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzQ2FjaGVFbnRyeTogbnVsbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBpbmNyZW1lbnRhbENhY2hlLCBpc09uRGVtYW5kUmV2YWxpZGF0ZSA9IGZhbHNlLCBpc0ZhbGxiYWNrID0gZmFsc2UsIGlzUm91dGVQUFJFbmFibGVkID0gZmFsc2UsIHdhaXRVbnRpbCB9ID0gY29udGV4dDtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJhdGNoZXIuYmF0Y2goe1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGVcbiAgICAgICAgfSwgKGNhY2hlS2V5LCByZXNvbHZlKT0+e1xuICAgICAgICAgICAgY29uc3QgcHJvbSA9IChhc3luYyAoKT0+e1xuICAgICAgICAgICAgICAgIHZhciBfdGhpc19wcmV2aW91c0NhY2hlSXRlbTtcbiAgICAgICAgICAgICAgICAvLyBXZSBrZWVwIHRoZSBwcmV2aW91cyBjYWNoZSBlbnRyeSBhcm91bmQgdG8gbGV2ZXJhZ2Ugd2hlbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnRhbCBjYWNoZSBpcyBkaXNhYmxlZCBpbiBtaW5pbWFsIG1vZGUuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbF9tb2RlICYmICgoX3RoaXNfcHJldmlvdXNDYWNoZUl0ZW0gPSB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfcHJldmlvdXNDYWNoZUl0ZW0ua2V5KSA9PT0gY2FjaGVLZXkgJiYgdGhpcy5wcmV2aW91c0NhY2hlSXRlbS5leHBpcmVzQXQgPiBEYXRlLm5vdygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtLmVudHJ5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBDb2VyY2UgdGhlIGtpbmRIaW50IGludG8gYSBnaXZlbiBraW5kIGZvciB0aGUgaW5jcmVtZW50YWwgY2FjaGUuXG4gICAgICAgICAgICAgICAgY29uc3Qga2luZCA9ICgwLCBfdXRpbHMucm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZCkoY29udGV4dC5yb3V0ZUtpbmQpO1xuICAgICAgICAgICAgICAgIGxldCByZXNvbHZlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxldCBjYWNoZWRSZXNwb25zZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSAhdGhpcy5taW5pbWFsX21vZGUgPyBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLmdldChrZXksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZDogY29udGV4dC5pc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgfSkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzcG9uc2UgJiYgIWlzT25EZW1hbmRSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGNhY2hlZFJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2FjaGVkUmVzcG9uc2UuaXNTdGFsZSB8fCBjb250ZXh0LmlzUHJlZmV0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgY2FjaGVkIHZhbHVlIGlzIHN0aWxsIHZhbGlkLCBzbyB3ZSBkb24ndCBuZWVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gdXBkYXRlIGl0IHlldC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYWNoZUVudHJ5ID0gYXdhaXQgcmVzcG9uc2VHZW5lcmF0b3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFzUmVzb2x2ZWQ6IHJlc29sdmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDYWNoZUVudHJ5OiBjYWNoZWRSZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUmV2YWxpZGF0aW5nOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2FjaGUgZW50cnkgY291bGRuJ3QgYmUgZ2VuZXJhdGVkLCB3ZSBkb24ndCB3YW50IHRvIGNhY2hlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZXN1bHQuXG4gICAgICAgICAgICAgICAgICAgIGlmICghY2FjaGVFbnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5zZXQgdGhlIHByZXZpb3VzIGNhY2hlIGl0ZW0gaWYgaXQgd2FzIHNldC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbmltYWxfbW9kZSkgdGhpcy5wcmV2aW91c0NhY2hlSXRlbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVWYWx1ZSA9IGF3YWl0ICgwLCBfdXRpbHMuZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY2FjaGVFbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTWlzczogIWNhY2hlZFJlc3BvbnNlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc29sdmVWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5zZXQgdGhlIHByZXZpb3VzIGNhY2hlIGl0ZW0gaWYgaXQgd2FzIHNldC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbmltYWxfbW9kZSkgdGhpcy5wcmV2aW91c0NhY2hlSXRlbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIEZvciBvbi1kZW1hbmQgcmV2YWxpZGF0ZSB3YWl0IHRvIHJlc29sdmUgdW50aWwgY2FjaGUgaXMgc2V0LlxuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UgcmVzb2x2ZSBub3cuXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNPbkRlbWFuZFJldmFsaWRhdGUgJiYgIXJlc29sdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc29sdmVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBwZXJzaXN0IHRoZSByZXN1bHQgb25seSBpZiBpdCBoYXMgYSBjYWNoZSBjb250cm9sIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIC8vIGRlZmluZWQuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlVmFsdWUuY2FjaGVDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsX21vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNhY2hlS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeTogcmVzb2x2ZVZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyAxMDAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5zZXQoa2V5LCByZXNvbHZlVmFsdWUudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiByZXNvbHZlVmFsdWUuY2FjaGVDb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlVmFsdWU7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gYSBwYXRoIGlzIGVycm9yaW5nIHdlIGF1dG9tYXRpY2FsbHkgcmUtc2V0IHRoZSBleGlzdGluZyBjYWNoZVxuICAgICAgICAgICAgICAgICAgICAvLyB3aXRoIG5ldyByZXZhbGlkYXRlIGFuZCBleHBpcmUgdGltZXMgdG8gcHJldmVudCBub24tc3RvcCByZXRyeWluZy5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlZFJlc3BvbnNlID09IG51bGwgPyB2b2lkIDAgOiBjYWNoZWRSZXNwb25zZS5jYWNoZUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1JldmFsaWRhdGUgPSBNYXRoLm1pbihNYXRoLm1heChjYWNoZWRSZXNwb25zZS5jYWNoZUNvbnRyb2wucmV2YWxpZGF0ZSB8fCAzLCAzKSwgMzApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3RXhwaXJlID0gY2FjaGVkUmVzcG9uc2UuY2FjaGVDb250cm9sLmV4cGlyZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogTWF0aC5tYXgobmV3UmV2YWxpZGF0ZSArIDMsIGNhY2hlZFJlc3BvbnNlLmNhY2hlQ29udHJvbC5leHBpcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5zZXQoa2V5LCBjYWNoZWRSZXNwb25zZS52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBuZXdSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IG5ld0V4cGlyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gV2hpbGUgcmV2YWxpZGF0aW5nIGluIHRoZSBiYWNrZ3JvdW5kIHdlIGNhbid0IHJlamVjdCBhcyB3ZSBhbHJlYWR5XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlc29sdmVkIHRoZSBjYWNoZSBlbnRyeSBzbyBsb2cgdGhlIGVycm9yIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZW4ndCByZXNvbHZlZCB5ZXQsIHNvIGxldCdzIHRocm93IHRvIGluZGljYXRlIGFuIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gZW5zdXJlIGJhY2tncm91bmQgcmV2YWxpZGF0ZXMgYXJlXG4gICAgICAgICAgICAvLyBwYXNzZWQgdG8gd2FpdFVudGlsXG4gICAgICAgICAgICBpZiAod2FpdFVudGlsKSB7XG4gICAgICAgICAgICAgICAgd2FpdFVudGlsKHByb20pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHByb207XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKDAsIF91dGlscy50b1Jlc3BvbnNlQ2FjaGVFbnRyeSkocmVzcG9uc2UpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/response-cache/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/response-cache/types.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/response-cache/types.js ***!
|
||
\***************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 CachedRouteKind: function() {\n return CachedRouteKind;\n },\n IncrementalCacheKind: function() {\n return IncrementalCacheKind;\n }\n});\nvar CachedRouteKind = /*#__PURE__*/ function(CachedRouteKind) {\n CachedRouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n CachedRouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n CachedRouteKind[\"PAGES\"] = \"PAGES\";\n CachedRouteKind[\"FETCH\"] = \"FETCH\";\n CachedRouteKind[\"REDIRECT\"] = \"REDIRECT\";\n CachedRouteKind[\"IMAGE\"] = \"IMAGE\";\n return CachedRouteKind;\n}({});\nvar IncrementalCacheKind = /*#__PURE__*/ function(IncrementalCacheKind) {\n IncrementalCacheKind[\"APP_PAGE\"] = \"APP_PAGE\";\n IncrementalCacheKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n IncrementalCacheKind[\"PAGES\"] = \"PAGES\";\n IncrementalCacheKind[\"FETCH\"] = \"FETCH\";\n IncrementalCacheKind[\"IMAGE\"] = \"IMAGE\";\n return IncrementalCacheKind;\n}({});\n\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS90eXBlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3R5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQ2FjaGVkUm91dGVLaW5kOiBudWxsLFxuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIENhY2hlZFJvdXRlS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBDYWNoZWRSb3V0ZUtpbmQ7XG4gICAgfSxcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJbmNyZW1lbnRhbENhY2hlS2luZDtcbiAgICB9XG59KTtcbnZhciBDYWNoZWRSb3V0ZUtpbmQgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKENhY2hlZFJvdXRlS2luZCkge1xuICAgIENhY2hlZFJvdXRlS2luZFtcIkFQUF9QQUdFXCJdID0gXCJBUFBfUEFHRVwiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiUEFHRVNcIl0gPSBcIlBBR0VTXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiRkVUQ0hcIl0gPSBcIkZFVENIXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiUkVESVJFQ1RcIl0gPSBcIlJFRElSRUNUXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiSU1BR0VcIl0gPSBcIklNQUdFXCI7XG4gICAgcmV0dXJuIENhY2hlZFJvdXRlS2luZDtcbn0oe30pO1xudmFyIEluY3JlbWVudGFsQ2FjaGVLaW5kID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihJbmNyZW1lbnRhbENhY2hlS2luZCkge1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJBUFBfUk9VVEVcIl0gPSBcIkFQUF9ST1VURVwiO1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiUEFHRVNcIl0gPSBcIlBBR0VTXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJGRVRDSFwiXSA9IFwiRkVUQ0hcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIklNQUdFXCJdID0gXCJJTUFHRVwiO1xuICAgIHJldHVybiBJbmNyZW1lbnRhbENhY2hlS2luZDtcbn0oe30pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10eXBlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/response-cache/types.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/response-cache/utils.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/response-cache/utils.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 fromResponseCacheEntry: function() {\n return fromResponseCacheEntry;\n },\n routeKindToIncrementalCacheKind: function() {\n return routeKindToIncrementalCacheKind;\n },\n toResponseCacheEntry: function() {\n return toResponseCacheEntry;\n }\n});\nconst _types = __webpack_require__(/*! ./types */ \"(rsc)/./node_modules/next/dist/server/response-cache/types.js\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../render-result */ \"(rsc)/./node_modules/next/dist/server/render-result.js\"));\nconst _routekind = __webpack_require__(/*! ../route-kind */ \"(rsc)/./node_modules/next/dist/server/route-kind.js\");\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nasync function fromResponseCacheEntry(cacheEntry) {\n var _cacheEntry_value, _cacheEntry_value1;\n return {\n ...cacheEntry,\n value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n pageData: cacheEntry.value.pageData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status\n } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n postponed: cacheEntry.value.postponed,\n rscData: cacheEntry.value.rscData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n segmentData: cacheEntry.value.segmentData\n } : cacheEntry.value\n };\n}\nasync function toResponseCacheEntry(response) {\n var _response_value, _response_value1;\n if (!response) return null;\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n cacheControl: response.cacheControl,\n value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status\n } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER),\n rscData: response.value.rscData,\n headers: response.value.headers,\n status: response.value.status,\n postponed: response.value.postponed,\n segmentData: response.value.segmentData\n } : response.value\n };\n}\nfunction routeKindToIncrementalCacheKind(routeKind) {\n switch(routeKind){\n case _routekind.RouteKind.PAGES:\n return _types.IncrementalCacheKind.PAGES;\n case _routekind.RouteKind.APP_PAGE:\n return _types.IncrementalCacheKind.APP_PAGE;\n case _routekind.RouteKind.IMAGE:\n return _types.IncrementalCacheKind.IMAGE;\n case _routekind.RouteKind.APP_ROUTE:\n return _types.IncrementalCacheKind.APP_ROUTE;\n case _routekind.RouteKind.PAGES_API:\n // Pages Router API routes are not cached in the incremental cache.\n throw Object.defineProperty(new Error(`Unexpected route kind ${routeKind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E64\",\n enumerable: false,\n configurable: true\n });\n default:\n return routeKind;\n }\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGVBQWUsbUJBQU8sQ0FBQyw4RUFBUztBQUNoQyw2REFBNkQsbUJBQU8sQ0FBQyxnRkFBa0I7QUFDdkYsbUJBQW1CLG1CQUFPLENBQUMsMEVBQWU7QUFDMUMsbUJBQW1CLG1CQUFPLENBQUMsNEVBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxVQUFVO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVzcG9uc2UtY2FjaGUvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5OiBudWxsLFxuICAgIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQ6IG51bGwsXG4gICAgdG9SZXNwb25zZUNhY2hlRW50cnk6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5O1xuICAgIH0sXG4gICAgcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kO1xuICAgIH0sXG4gICAgdG9SZXNwb25zZUNhY2hlRW50cnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdG9SZXNwb25zZUNhY2hlRW50cnk7XG4gICAgfVxufSk7XG5jb25zdCBfdHlwZXMgPSByZXF1aXJlKFwiLi90eXBlc1wiKTtcbmNvbnN0IF9yZW5kZXJyZXN1bHQgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi4vcmVuZGVyLXJlc3VsdFwiKSk7XG5jb25zdCBfcm91dGVraW5kID0gcmVxdWlyZShcIi4uL3JvdXRlLWtpbmRcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uLy4uL2xpYi9jb25zdGFudHNcIik7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGZyb21SZXNwb25zZUNhY2hlRW50cnkoY2FjaGVFbnRyeSkge1xuICAgIHZhciBfY2FjaGVFbnRyeV92YWx1ZSwgX2NhY2hlRW50cnlfdmFsdWUxO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNhY2hlRW50cnksXG4gICAgICAgIHZhbHVlOiAoKF9jYWNoZUVudHJ5X3ZhbHVlID0gY2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X3ZhbHVlLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTID8ge1xuICAgICAgICAgICAga2luZDogX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgICAgIGh0bWw6IGF3YWl0IGNhY2hlRW50cnkudmFsdWUuaHRtbC50b1VuY2h1bmtlZFN0cmluZyh0cnVlKSxcbiAgICAgICAgICAgIHBhZ2VEYXRhOiBjYWNoZUVudHJ5LnZhbHVlLnBhZ2VEYXRhLFxuICAgICAgICAgICAgaGVhZGVyczogY2FjaGVFbnRyeS52YWx1ZS5oZWFkZXJzLFxuICAgICAgICAgICAgc3RhdHVzOiBjYWNoZUVudHJ5LnZhbHVlLnN0YXR1c1xuICAgICAgICB9IDogKChfY2FjaGVFbnRyeV92YWx1ZTEgPSBjYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlRW50cnlfdmFsdWUxLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFID8ge1xuICAgICAgICAgICAga2luZDogX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgICAgIGh0bWw6IGF3YWl0IGNhY2hlRW50cnkudmFsdWUuaHRtbC50b1VuY2h1bmtlZFN0cmluZyh0cnVlKSxcbiAgICAgICAgICAgIHBvc3Rwb25lZDogY2FjaGVFbnRyeS52YWx1ZS5wb3N0cG9uZWQsXG4gICAgICAgICAgICByc2NEYXRhOiBjYWNoZUVudHJ5LnZhbHVlLnJzY0RhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiBjYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGNhY2hlRW50cnkudmFsdWUuc3RhdHVzLFxuICAgICAgICAgICAgc2VnbWVudERhdGE6IGNhY2hlRW50cnkudmFsdWUuc2VnbWVudERhdGFcbiAgICAgICAgfSA6IGNhY2hlRW50cnkudmFsdWVcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gdG9SZXNwb25zZUNhY2hlRW50cnkocmVzcG9uc2UpIHtcbiAgICB2YXIgX3Jlc3BvbnNlX3ZhbHVlLCBfcmVzcG9uc2VfdmFsdWUxO1xuICAgIGlmICghcmVzcG9uc2UpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIGlzTWlzczogcmVzcG9uc2UuaXNNaXNzLFxuICAgICAgICBpc1N0YWxlOiByZXNwb25zZS5pc1N0YWxlLFxuICAgICAgICBjYWNoZUNvbnRyb2w6IHJlc3BvbnNlLmNhY2hlQ29udHJvbCxcbiAgICAgICAgdmFsdWU6ICgoX3Jlc3BvbnNlX3ZhbHVlID0gcmVzcG9uc2UudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzcG9uc2VfdmFsdWUua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgaHRtbDogX3JlbmRlcnJlc3VsdC5kZWZhdWx0LmZyb21TdGF0aWMocmVzcG9uc2UudmFsdWUuaHRtbCwgX2NvbnN0YW50cy5IVE1MX0NPTlRFTlRfVFlQRV9IRUFERVIpLFxuICAgICAgICAgICAgcGFnZURhdGE6IHJlc3BvbnNlLnZhbHVlLnBhZ2VEYXRhLFxuICAgICAgICAgICAgaGVhZGVyczogcmVzcG9uc2UudmFsdWUuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2UudmFsdWUuc3RhdHVzXG4gICAgICAgIH0gOiAoKF9yZXNwb25zZV92YWx1ZTEgPSByZXNwb25zZS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNwb25zZV92YWx1ZTEua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICAgICAgaHRtbDogX3JlbmRlcnJlc3VsdC5kZWZhdWx0LmZyb21TdGF0aWMocmVzcG9uc2UudmFsdWUuaHRtbCwgX2NvbnN0YW50cy5IVE1MX0NPTlRFTlRfVFlQRV9IRUFERVIpLFxuICAgICAgICAgICAgcnNjRGF0YTogcmVzcG9uc2UudmFsdWUucnNjRGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnZhbHVlLnN0YXR1cyxcbiAgICAgICAgICAgIHBvc3Rwb25lZDogcmVzcG9uc2UudmFsdWUucG9zdHBvbmVkLFxuICAgICAgICAgICAgc2VnbWVudERhdGE6IHJlc3BvbnNlLnZhbHVlLnNlZ21lbnREYXRhXG4gICAgICAgIH0gOiByZXNwb25zZS52YWx1ZVxuICAgIH07XG59XG5mdW5jdGlvbiByb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kKHJvdXRlS2luZCkge1xuICAgIHN3aXRjaChyb3V0ZUtpbmQpe1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLlBBR0VTOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5QQUdFUztcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5BUFBfUEFHRTpcbiAgICAgICAgICAgIHJldHVybiBfdHlwZXMuSW5jcmVtZW50YWxDYWNoZUtpbmQuQVBQX1BBR0U7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuSU1BR0U6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLklNQUdFO1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLkFQUF9ST1VURTpcbiAgICAgICAgICAgIHJldHVybiBfdHlwZXMuSW5jcmVtZW50YWxDYWNoZUtpbmQuQVBQX1JPVVRFO1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLlBBR0VTX0FQSTpcbiAgICAgICAgICAgIC8vIFBhZ2VzIFJvdXRlciBBUEkgcm91dGVzIGFyZSBub3QgY2FjaGVkIGluIHRoZSBpbmNyZW1lbnRhbCBjYWNoZS5cbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgcm91dGUga2luZCAke3JvdXRlS2luZH1gKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTY0XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiByb3V0ZUtpbmQ7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/response-cache/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/route-kind.js":
|
||
/*!*****************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-kind.js ***!
|
||
\*****************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouteKind\", ({\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n}));\nvar RouteKind = /*#__PURE__*/ function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\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 */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */ RouteKind[\"IMAGE\"] = \"IMAGE\";\n return RouteKind;\n}({});\n\n//# sourceMappingURL=route-kind.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNkNBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLElBQUksRUFBRSxHQUFHO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixJQUFJLEVBQUUsR0FBRztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUm91dGVLaW5kXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSb3V0ZUtpbmQ7XG4gICAgfVxufSk7XG52YXIgUm91dGVLaW5kID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSb3V0ZUtpbmQpIHtcbiAgICAvKipcbiAgICogYFBBR0VTYCByZXByZXNlbnRzIGFsbCB0aGUgUmVhY3QgcGFnZXMgdGhhdCBhcmUgdW5kZXIgYHBhZ2VzL2AuXG4gICAqLyBSb3V0ZUtpbmRbXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICAvKipcbiAgICogYFBBR0VTX0FQSWAgcmVwcmVzZW50cyBhbGwgdGhlIEFQSSByb3V0ZXMgdW5kZXIgYHBhZ2VzL2FwaS9gLlxuICAgKi8gUm91dGVLaW5kW1wiUEFHRVNfQVBJXCJdID0gXCJQQUdFU19BUElcIjtcbiAgICAvKipcbiAgICogYEFQUF9QQUdFYCByZXByZXNlbnRzIGFsbCB0aGUgUmVhY3QgcGFnZXMgdGhhdCBhcmUgdW5kZXIgYGFwcC9gIHdpdGggdGhlXG4gICAqIGZpbGVuYW1lIG9mIGBwYWdlLntqLHR9c3sseH1gLlxuICAgKi8gUm91dGVLaW5kW1wiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgLyoqXG4gICAqIGBBUFBfUk9VVEVgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIGFuZCBtZXRhZGF0YSByb3V0ZXMgdGhhdCBhcmUgdW5kZXIgYGFwcC9gIHdpdGggdGhlXG4gICAqIGZpbGVuYW1lIG9mIGByb3V0ZS57aix0fXN7LHh9YC5cbiAgICovIFJvdXRlS2luZFtcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG4gICAgLyoqXG4gICAqIGBJTUFHRWAgcmVwcmVzZW50cyBhbGwgdGhlIGltYWdlcyB0aGF0IGFyZSBnZW5lcmF0ZWQgYnkgYG5leHQvaW1hZ2VgLlxuICAgKi8gUm91dGVLaW5kW1wiSU1BR0VcIl0gPSBcIklNQUdFXCI7XG4gICAgcmV0dXJuIFJvdXRlS2luZDtcbn0oe30pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1raW5kLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-kind.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js":
|
||
/*!****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js ***!
|
||
\****************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].ReactDOM;\n\n//# sourceMappingURL=react-dom.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1kb20uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix3TEFBZ0Y7O0FBRWhGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1kb20uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1yc2MnXS5SZWFjdERPTTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtZG9tLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js":
|
||
/*!****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js ***!
|
||
\****************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].ReactJsxDevRuntime;\n\n//# sourceMappingURL=react-jsx-dev-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixrTUFBMEY7O0FBRTFGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1yc2MnXS5SZWFjdEpzeERldlJ1bnRpbWU7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWpzeC1kZXYtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js":
|
||
/*!************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js ***!
|
||
\************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].ReactJsxRuntime;\n\n//# sourceMappingURL=react-jsx-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1qc3gtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLCtMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvcnNjL3JlYWN0LWpzeC1ydW50aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3QtcnNjJ10uUmVhY3RKc3hSdW50aW1lO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1qc3gtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js":
|
||
/*!**************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js ***!
|
||
\**************************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].ReactServerDOMWebpackServer;\n\n//# sourceMappingURL=react-server-dom-webpack-server.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMk1BQW1HOztBQUVuRyIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9yc2MvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLXNlcnZlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ3JlYWN0LXJzYyddLlJlYWN0U2VydmVyRE9NV2VicGFja1NlcnZlcjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLXNlcnZlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js":
|
||
/*!**************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js ***!
|
||
\**************************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].ReactServerDOMWebpackStatic;\n\n//# sourceMappingURL=react-server-dom-webpack-static.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc3RhdGljLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMk1BQW1HOztBQUVuRyIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9yc2MvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLXN0YXRpYy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ3JlYWN0LXJzYyddLlJlYWN0U2VydmVyRE9NV2VicGFja1N0YXRpYztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLXN0YXRpYy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js ***!
|
||
\************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\").vendored[\"react-rsc\"].React;\n\n//# sourceMappingURL=react.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLHFMQUE2RTs7QUFFN0UiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvcnNjL3JlYWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3QtcnNjJ10uUmVhY3Q7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/send-payload.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/server/send-payload.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 sendEtagResponse: function() {\n return sendEtagResponse;\n },\n sendRenderResult: function() {\n return sendRenderResult;\n }\n});\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _etag = __webpack_require__(/*! ./lib/etag */ \"(rsc)/./node_modules/next/dist/server/lib/etag.js\");\nconst _fresh = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/fresh */ \"(rsc)/./node_modules/next/dist/compiled/fresh/index.js\"));\nconst _cachecontrol = __webpack_require__(/*! ./lib/cache-control */ \"(rsc)/./node_modules/next/dist/server/lib/cache-control.js\");\nconst _constants = __webpack_require__(/*! ../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction sendEtagResponse(req, res, etag) {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */ res.setHeader('ETag', etag);\n }\n if ((0, _fresh.default)(req.headers, {\n etag\n })) {\n res.statusCode = 304;\n res.end();\n return true;\n }\n return false;\n}\nasync function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl }) {\n if ((0, _utils.isResSent)(res)) {\n return;\n }\n if (poweredByHeader && result.contentType === _constants.HTML_CONTENT_TYPE_HEADER) {\n res.setHeader('X-Powered-By', 'Next.js');\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));\n }\n const payload = result.isDynamic ? null : result.toUnchunkedString();\n if (generateEtags && payload !== null) {\n const etag = (0, _etag.generateETag)(payload);\n if (sendEtagResponse(req, res, etag)) {\n return;\n }\n }\n if (!res.getHeader('Content-Type') && result.contentType) {\n res.setHeader('Content-Type', result.contentType);\n }\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload));\n }\n if (req.method === 'HEAD') {\n res.end(null);\n return;\n }\n if (payload !== null) {\n res.end(payload);\n return;\n }\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res);\n}\n\n//# sourceMappingURL=send-payload.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZW5kLXBheWxvYWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZUFBZSxtQkFBTyxDQUFDLCtFQUFxQjtBQUM1QyxjQUFjLG1CQUFPLENBQUMscUVBQVk7QUFDbEMsc0RBQXNELG1CQUFPLENBQUMsd0ZBQTBCO0FBQ3hGLHNCQUFzQixtQkFBTyxDQUFDLHVGQUFxQjtBQUNuRCxtQkFBbUIsbUJBQU8sQ0FBQyx5RUFBa0I7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLGdFQUFnRTtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZW5kLXBheWxvYWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzZW5kRXRhZ1Jlc3BvbnNlOiBudWxsLFxuICAgIHNlbmRSZW5kZXJSZXN1bHQ6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgc2VuZEV0YWdSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZW5kRXRhZ1Jlc3BvbnNlO1xuICAgIH0sXG4gICAgc2VuZFJlbmRlclJlc3VsdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZW5kUmVuZGVyUmVzdWx0O1xuICAgIH1cbn0pO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvdXRpbHNcIik7XG5jb25zdCBfZXRhZyA9IHJlcXVpcmUoXCIuL2xpYi9ldGFnXCIpO1xuY29uc3QgX2ZyZXNoID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9mcmVzaFwiKSk7XG5jb25zdCBfY2FjaGVjb250cm9sID0gcmVxdWlyZShcIi4vbGliL2NhY2hlLWNvbnRyb2xcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL2xpYi9jb25zdGFudHNcIik7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHNlbmRFdGFnUmVzcG9uc2UocmVxLCByZXMsIGV0YWcpIHtcbiAgICBpZiAoZXRhZykge1xuICAgICAgICAvKipcbiAgICAgKiBUaGUgc2VydmVyIGdlbmVyYXRpbmcgYSAzMDQgcmVzcG9uc2UgTVVTVCBnZW5lcmF0ZSBhbnkgb2YgdGhlXG4gICAgICogZm9sbG93aW5nIGhlYWRlciBmaWVsZHMgdGhhdCB3b3VsZCBoYXZlIGJlZW4gc2VudCBpbiBhIDIwMCAoT0spXG4gICAgICogcmVzcG9uc2UgdG8gdGhlIHNhbWUgcmVxdWVzdDogQ2FjaGUtQ29udHJvbCwgQ29udGVudC1Mb2NhdGlvbiwgRGF0ZSxcbiAgICAgKiBFVGFnLCBFeHBpcmVzLCBhbmQgVmFyeS4gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzIjc2VjdGlvbi00LjFcbiAgICAgKi8gcmVzLnNldEhlYWRlcignRVRhZycsIGV0YWcpO1xuICAgIH1cbiAgICBpZiAoKDAsIF9mcmVzaC5kZWZhdWx0KShyZXEuaGVhZGVycywge1xuICAgICAgICBldGFnXG4gICAgfSkpIHtcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAzMDQ7XG4gICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHNlbmRSZW5kZXJSZXN1bHQoeyByZXEsIHJlcywgcmVzdWx0LCBnZW5lcmF0ZUV0YWdzLCBwb3dlcmVkQnlIZWFkZXIsIGNhY2hlQ29udHJvbCB9KSB7XG4gICAgaWYgKCgwLCBfdXRpbHMuaXNSZXNTZW50KShyZXMpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHBvd2VyZWRCeUhlYWRlciAmJiByZXN1bHQuY29udGVudFR5cGUgPT09IF9jb25zdGFudHMuSFRNTF9DT05URU5UX1RZUEVfSEVBREVSKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ1gtUG93ZXJlZC1CeScsICdOZXh0LmpzJyk7XG4gICAgfVxuICAgIC8vIElmIGNhY2hlIGNvbnRyb2wgaXMgYWxyZWFkeSBzZXQgb24gdGhlIHJlc3BvbnNlIHdlIGRvbid0XG4gICAgLy8gb3ZlcnJpZGUgaXQgdG8gYWxsb3cgdXNlcnMgdG8gY3VzdG9taXplIGl0IHZpYSBuZXh0LmNvbmZpZ1xuICAgIGlmIChjYWNoZUNvbnRyb2wgJiYgIXJlcy5nZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnKSkge1xuICAgICAgICByZXMuc2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJywgKDAsIF9jYWNoZWNvbnRyb2wuZ2V0Q2FjaGVDb250cm9sSGVhZGVyKShjYWNoZUNvbnRyb2wpKTtcbiAgICB9XG4gICAgY29uc3QgcGF5bG9hZCA9IHJlc3VsdC5pc0R5bmFtaWMgPyBudWxsIDogcmVzdWx0LnRvVW5jaHVua2VkU3RyaW5nKCk7XG4gICAgaWYgKGdlbmVyYXRlRXRhZ3MgJiYgcGF5bG9hZCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBldGFnID0gKDAsIF9ldGFnLmdlbmVyYXRlRVRhZykocGF5bG9hZCk7XG4gICAgICAgIGlmIChzZW5kRXRhZ1Jlc3BvbnNlKHJlcSwgcmVzLCBldGFnKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghcmVzLmdldEhlYWRlcignQ29udGVudC1UeXBlJykgJiYgcmVzdWx0LmNvbnRlbnRUeXBlKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsIHJlc3VsdC5jb250ZW50VHlwZSk7XG4gICAgfVxuICAgIGlmIChwYXlsb2FkKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJywgQnVmZmVyLmJ5dGVMZW5ndGgocGF5bG9hZCkpO1xuICAgIH1cbiAgICBpZiAocmVxLm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgICAgIHJlcy5lbmQobnVsbCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHBheWxvYWQgIT09IG51bGwpIHtcbiAgICAgICAgcmVzLmVuZChwYXlsb2FkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBQaXBlIHRoZSByZW5kZXIgcmVzdWx0IHRvIHRoZSByZXNwb25zZSBhZnRlciB3ZSBnZXQgYSB3cml0ZXIgZm9yIGl0LlxuICAgIGF3YWl0IHJlc3VsdC5waXBlVG9Ob2RlUmVzcG9uc2UocmVzKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VuZC1wYXlsb2FkLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/send-payload.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/stream-utils/encoded-tags.js ***!
|
||
\********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ENCODED_TAGS\", ({\n enumerable: true,\n get: function() {\n return ENCODED_TAGS;\n }\n}));\nconst ENCODED_TAGS = {\n // opening tags do not have the closing `>` since they can contain other attributes such as `<body className=''>`\n OPENING: {\n // <html\n HTML: new Uint8Array([\n 60,\n 104,\n 116,\n 109,\n 108\n ]),\n // <body\n BODY: new Uint8Array([\n 60,\n 98,\n 111,\n 100,\n 121\n ])\n },\n CLOSED: {\n // </head>\n HEAD: new Uint8Array([\n 60,\n 47,\n 104,\n 101,\n 97,\n 100,\n 62\n ]),\n // </body>\n BODY: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62\n ]),\n // </html>\n HTML: new Uint8Array([\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ]),\n // </body></html>\n BODY_AND_HTML: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62,\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ])\n },\n META: {\n // Only the match the prefix cause the suffix can be different wether it's xml compatible or not \">\" or \"/>\"\n // <meta name=\"«nxt-icon»\"\n // This is a special mark that will be replaced by the icon insertion script tag.\n ICON_MARK: new Uint8Array([\n 60,\n 109,\n 101,\n 116,\n 97,\n 32,\n 110,\n 97,\n 109,\n 101,\n 61,\n 34,\n 194,\n 171,\n 110,\n 120,\n 116,\n 45,\n 105,\n 99,\n 111,\n 110,\n 194,\n 187,\n 34\n ])\n }\n};\n\n//# sourceMappingURL=encoded-tags.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvZW5jb2RlZC10YWdzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZ0RBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvc3RyZWFtLXV0aWxzL2VuY29kZWQtdGFncy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkVOQ09ERURfVEFHU1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRU5DT0RFRF9UQUdTO1xuICAgIH1cbn0pO1xuY29uc3QgRU5DT0RFRF9UQUdTID0ge1xuICAgIC8vIG9wZW5pbmcgdGFncyBkbyBub3QgaGF2ZSB0aGUgY2xvc2luZyBgPmAgc2luY2UgdGhleSBjYW4gY29udGFpbiBvdGhlciBhdHRyaWJ1dGVzIHN1Y2ggYXMgYDxib2R5IGNsYXNzTmFtZT0nJz5gXG4gICAgT1BFTklORzoge1xuICAgICAgICAvLyA8aHRtbFxuICAgICAgICBIVE1MOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwOFxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPGJvZHlcbiAgICAgICAgQk9EWTogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA5OCxcbiAgICAgICAgICAgIDExMSxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDEyMVxuICAgICAgICBdKVxuICAgIH0sXG4gICAgQ0xPU0VEOiB7XG4gICAgICAgIC8vIDwvaGVhZD5cbiAgICAgICAgSEVBRDogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgNjJcbiAgICAgICAgXSksXG4gICAgICAgIC8vIDwvYm9keT5cbiAgICAgICAgQk9EWTogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDk4LFxuICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMTIxLFxuICAgICAgICAgICAgNjJcbiAgICAgICAgXSksXG4gICAgICAgIC8vIDwvaHRtbD5cbiAgICAgICAgSFRNTDogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwOCxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8L2JvZHk+PC9odG1sPlxuICAgICAgICBCT0RZX0FORF9IVE1MOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgOTgsXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAxMjEsXG4gICAgICAgICAgICA2MixcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDgsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKVxuICAgIH0sXG4gICAgTUVUQToge1xuICAgICAgICAvLyBPbmx5IHRoZSBtYXRjaCB0aGUgcHJlZml4IGNhdXNlIHRoZSBzdWZmaXggY2FuIGJlIGRpZmZlcmVudCB3ZXRoZXIgaXQncyB4bWwgY29tcGF0aWJsZSBvciBub3QgXCI+XCIgb3IgXCIvPlwiXG4gICAgICAgIC8vIDxtZXRhIG5hbWU9XCLCq254dC1pY29uwrtcIlxuICAgICAgICAvLyBUaGlzIGlzIGEgc3BlY2lhbCBtYXJrIHRoYXQgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgaWNvbiBpbnNlcnRpb24gc2NyaXB0IHRhZy5cbiAgICAgICAgSUNPTl9NQVJLOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgMzIsXG4gICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICA5NyxcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgIDYxLFxuICAgICAgICAgICAgMzQsXG4gICAgICAgICAgICAxOTQsXG4gICAgICAgICAgICAxNzEsXG4gICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICAxMjAsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICA0NSxcbiAgICAgICAgICAgIDEwNSxcbiAgICAgICAgICAgIDk5LFxuICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgMTEwLFxuICAgICAgICAgICAgMTk0LFxuICAgICAgICAgICAgMTg3LFxuICAgICAgICAgICAgMzRcbiAgICAgICAgXSlcbiAgICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lbmNvZGVkLXRhZ3MuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/stream-utils/node-web-streams-helper.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 chainStreams: function() {\n return chainStreams;\n },\n continueDynamicHTMLResume: function() {\n return continueDynamicHTMLResume;\n },\n continueDynamicPrerender: function() {\n return continueDynamicPrerender;\n },\n continueFizzStream: function() {\n return continueFizzStream;\n },\n continueStaticPrerender: function() {\n return continueStaticPrerender;\n },\n createBufferedTransformStream: function() {\n return createBufferedTransformStream;\n },\n createDocumentClosingStream: function() {\n return createDocumentClosingStream;\n },\n createRootLayoutValidatorStream: function() {\n return createRootLayoutValidatorStream;\n },\n renderToInitialFizzStream: function() {\n return renderToInitialFizzStream;\n },\n streamFromBuffer: function() {\n return streamFromBuffer;\n },\n streamFromString: function() {\n return streamFromString;\n },\n streamToBuffer: function() {\n return streamToBuffer;\n },\n streamToString: function() {\n return streamToString;\n }\n});\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ../lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _detachedpromise = __webpack_require__(/*! ../../lib/detached-promise */ \"(rsc)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _encodedtags = __webpack_require__(/*! ./encoded-tags */ \"(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\");\nconst _uint8arrayhelpers = __webpack_require__(/*! ./uint8array-helpers */ \"(rsc)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\");\nconst _constants1 = __webpack_require__(/*! ../../shared/lib/errors/constants */ \"(rsc)/./node_modules/next/dist/shared/lib/errors/constants.js\");\nconst _outputexportprefetchencoding = __webpack_require__(/*! ../../shared/lib/segment-cache/output-export-prefetch-encoding */ \"(rsc)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\");\nfunction voidCatch() {\n// this catcher is designed to be used with pipeTo where we expect the underlying\n// pipe implementation to forward errors but we don't want the pipeTo promise to reject\n// and be unhandled\n}\n// We can share the same encoder instance everywhere\n// Notably we cannot do the same for TextDecoder because it is stateful\n// when handling streaming data\nconst encoder = new TextEncoder();\nfunction chainStreams(...streams) {\n // If we have no streams, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n if (streams.length === 0) {\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n // If we only have 1 stream we fast path it by returning just this stream\n if (streams.length === 1) {\n return streams[0];\n }\n const { readable, writable } = new TransformStream();\n // We always initiate pipeTo immediately. We know we have at least 2 streams\n // so we need to avoid closing the writable when this one finishes.\n let promise = streams[0].pipeTo(writable, {\n preventClose: true\n });\n let i = 1;\n for(; i < streams.length - 1; i++){\n const nextStream = streams[i];\n promise = promise.then(()=>nextStream.pipeTo(writable, {\n preventClose: true\n }));\n }\n // We can omit the length check because we halted before the last stream and there\n // is at least two streams so the lastStream here will always be defined\n const lastStream = streams[i];\n promise = promise.then(()=>lastStream.pipeTo(writable));\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(voidCatch);\n return readable;\n}\nfunction streamFromString(str) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(encoder.encode(str));\n controller.close();\n }\n });\n}\nfunction streamFromBuffer(chunk) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(chunk);\n controller.close();\n }\n });\n}\nasync function streamToBuffer(stream) {\n const reader = stream.getReader();\n const chunks = [];\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n }\n return Buffer.concat(chunks);\n}\nasync function streamToString(stream, signal) {\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n let string = '';\n for await (const chunk of stream){\n if (signal == null ? void 0 : signal.aborted) {\n return string;\n }\n string += decoder.decode(chunk, {\n stream: true\n });\n }\n string += decoder.decode();\n return string;\n}\nfunction createBufferedTransformStream() {\n let bufferedChunks = [];\n let bufferByteLength = 0;\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 _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n const chunk = new Uint8Array(bufferByteLength);\n let copiedBytes = 0;\n for(let i = 0; i < bufferedChunks.length; i++){\n const bufferedChunk = bufferedChunks[i];\n chunk.set(bufferedChunk, copiedBytes);\n copiedBytes += bufferedChunk.byteLength;\n }\n // We just wrote all the buffered chunks so we need to reset the bufferedChunks array\n // and our bufferByteLength to prepare for the next round of buffered chunks\n bufferedChunks.length = 0;\n bufferByteLength = 0;\n controller.enqueue(chunk);\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 bufferedChunks.push(chunk);\n bufferByteLength += chunk.byteLength;\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 createPrefetchCommentStream(isBuildTimePrerendering, buildId) {\n // Insert an extra comment at the beginning of the HTML document. This must\n // come after the DOCTYPE, which is inserted by React.\n //\n // The first chunk sent by React will contain the doctype. After that, we can\n // pass through the rest of the chunks as-is.\n let didTransformFirstChunk = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (isBuildTimePrerendering && !didTransformFirstChunk) {\n didTransformFirstChunk = true;\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n const chunkStr = decoder.decode(chunk, {\n stream: true\n });\n const updatedChunkStr = (0, _outputexportprefetchencoding.insertBuildIdComment)(chunkStr, buildId);\n controller.enqueue(encoder.encode(updatedChunkStr));\n return;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return (0, _tracer.getTracer)().trace(_constants.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nfunction createMetadataTransformStream(insert) {\n let chunkIndex = -1;\n let isMarkRemoved = false;\n return new TransformStream({\n async transform (chunk, controller) {\n let iconMarkIndex = -1;\n let closedHeadIndex = -1;\n chunkIndex++;\n if (isMarkRemoved) {\n controller.enqueue(chunk);\n return;\n }\n let iconMarkLength = 0;\n // Only search for the closed head tag once\n if (iconMarkIndex === -1) {\n iconMarkIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.META.ICON_MARK);\n if (iconMarkIndex === -1) {\n controller.enqueue(chunk);\n return;\n } else {\n // When we found the `<meta name=\"«nxt-icon»\"` tag prefix, we will remove it from the chunk.\n // Its close tag could either be `/>` or `>`, checking the next char to ensure we cover both cases.\n iconMarkLength = _encodedtags.ENCODED_TAGS.META.ICON_MARK.length;\n // Check if next char is /, this is for xml mode.\n if (chunk[iconMarkIndex + iconMarkLength] === 47) {\n iconMarkLength += 2;\n } else {\n // The last char is `>`\n iconMarkLength++;\n }\n }\n }\n // Check if icon mark is inside <head> tag in the first chunk.\n if (chunkIndex === 0) {\n closedHeadIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n if (iconMarkIndex !== -1) {\n // The mark icon is located in the 1st chunk before the head tag.\n // We do not need to insert the script tag in this case because it's in the head.\n // Just remove the icon mark from the chunk.\n if (iconMarkIndex < closedHeadIndex) {\n const replaced = new Uint8Array(chunk.length - iconMarkLength);\n // Remove the icon mark from the chunk.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex);\n chunk = replaced;\n } else {\n // The icon mark is after the head tag, replace and insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(encodedInsertion, iconMarkIndex);\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n }\n isMarkRemoved = true;\n }\n // If there's no icon mark located, it will be handled later when if present in the following chunks.\n } else {\n // When it's appeared in the following chunks, we'll need to\n // remove the mark and then insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n // Replace the icon mark with the hoist script or empty string.\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n // Set the first part of the chunk, before the icon mark.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n // Set the insertion after the icon mark.\n replaced.set(encodedInsertion, iconMarkIndex);\n // Set the rest of the chunk after the icon mark.\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n isMarkRemoved = true;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction createHeadInsertionTransformStream(insert) {\n let inserted = false;\n // We need to track if this transform saw any bytes because if it didn't\n // we won't want to insert any server HTML at all\n let hasBytes = false;\n return new TransformStream({\n async transform (chunk, controller) {\n hasBytes = true;\n const insertion = await insert();\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n controller.enqueue(encodedInsertion);\n }\n controller.enqueue(chunk);\n } else {\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = <head><meta charset=\"utf-8\"></head>\n // insertion = <script>...</script>\n // output = <head><meta charset=\"utf-8\"> [ <script>...</script> ] </head>\n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, index));\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, index);\n // Append the rest of the chunk\n insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n } else {\n controller.enqueue(chunk);\n }\n inserted = true;\n } else {\n // This will happens in PPR rendering during next start, when the page is partially rendered.\n // When the page resumes, the head tag will be found in the middle of the chunk.\n // Where we just need to append the insertion and chunk to the current stream.\n // e.g.\n // PPR-static: <head>...</head><body> [ resume content ] </body>\n // PPR-resume: [ insertion ] [ rest content ]\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n controller.enqueue(chunk);\n inserted = true;\n }\n }\n },\n async flush (controller) {\n // Check before closing if there's anything remaining to insert.\n if (hasBytes) {\n const insertion = await insert();\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\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 flush = (controller)=>{\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.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}\nfunction createFlightDataInjectionTransformStream(stream, delayDataUntilFirstHtmlChunk) {\n let htmlStreamFinished = false;\n let pull = null;\n let donePulling = false;\n function startOrContinuePulling(controller) {\n if (!pull) {\n pull = startPulling(controller);\n }\n return pull;\n }\n async function startPulling(controller) {\n const reader = stream.getReader();\n if (delayDataUntilFirstHtmlChunk) {\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 // We don't start reading until we've left the current Task to ensure\n // that it's inserted after flushing the shell. Note that this implementation\n // might get stale if impl details of Fizz change in the future.\n await (0, _scheduler.atLeastOneTask)();\n }\n try {\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n donePulling = true;\n return;\n }\n // We want to prioritize HTML over RSC data.\n // The SSR render is based on the same RSC stream, so when we get a new RSC chunk,\n // we're likely to produce an HTML chunk as well, so give it a chance to flush first.\n if (!delayDataUntilFirstHtmlChunk && !htmlStreamFinished) {\n await (0, _scheduler.atLeastOneTask)();\n }\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n }\n }\n return new TransformStream({\n start (controller) {\n if (!delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n flush (controller) {\n htmlStreamFinished = true;\n if (donePulling) {\n return;\n }\n return startOrContinuePulling(controller);\n }\n });\n}\nconst CLOSE_TAG = '</body></html>';\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() {\n let foundSuffix = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk);\n }\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\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 (chunk.length === _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) {\n return;\n }\n // Write out the part before the suffix.\n const before = chunk.slice(0, index);\n controller.enqueue(before);\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 (chunk.length > _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) {\n // Write out the part after the suffix.\n const after = chunk.slice(index + _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);\n controller.enqueue(after);\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(_encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n }\n });\n}\nfunction createStripDocumentClosingTagsTransform() {\n return new TransformStream({\n transform (chunk, controller) {\n // We rely on the assumption that chunks will never break across a code unit.\n // This is reasonable because we currently concat all of React's output from a single\n // flush into one chunk before streaming it forward which means the chunk will represent\n // a single coherent utf-8 string. This is not safe to use if we change our streaming to no\n // longer do this large buffered chunk\n if ((0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML)) {\n // the entire chunk is the closing tags; return without enqueueing anything.\n return;\n }\n // We assume these tags will go at together at the end of the document and that\n // they won't appear anywhere else in the document. This is not really a safe assumption\n // but until we revamp our streaming infra this is a performant way to string the tags\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY);\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML);\n controller.enqueue(chunk);\n }\n });\n}\nfunction createRootLayoutValidatorStream() {\n let foundHtml = false;\n let foundBody = false;\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 && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.HTML) > -1) {\n foundHtml = true;\n }\n if (!foundBody && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.BODY) > -1) {\n foundBody = true;\n }\n controller.enqueue(chunk);\n },\n flush (controller) {\n const missingTags = [];\n if (!foundHtml) missingTags.push('html');\n if (!foundBody) missingTags.push('body');\n if (!missingTags.length) return;\n controller.enqueue(encoder.encode(`<html id=\"__next_error__\">\n <template\n data-next-error-message=\"Missing ${missingTags.map((c)=>`<${c}>`).join(missingTags.length > 1 ? ' and ' : '')} tags in the root layout.\\nRead more at https://nextjs.org/docs/messages/missing-root-layout-tags\"\n data-next-error-digest=\"${_constants1.MISSING_ROOT_TAGS_ERROR}\"\n data-next-error-stack=\"\"\n ></template>\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, isBuildTimePrerendering, buildId, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) {\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null;\n // If we're generating static HTML we need to wait for it to resolve before continuing.\n if (isStaticGeneration) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Add build id comment to start of the HTML document (in export mode)\n createPrefetchCommentStream(isBuildTimePrerendering, buildId),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\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 ? createFlightDataInjectionTransformStream(inlinedDataStream, true) : null,\n // Validate the root layout for missing html or body tags\n validateRootLayout ? createRootLayoutValidatorStream() : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(),\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 createHeadInsertionTransformStream(getServerInsertedHTML)\n ]);\n}\nasync function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream()).pipeThrough(createStripDocumentClosingTagsTransform())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata));\n}\nasync function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, isBuildTimePrerendering, buildId }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Add build id comment to start of the HTML document (in export mode)\n .pipeThrough(createPrefetchCommentStream(isBuildTimePrerendering, buildId))// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, true))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nasync function continueDynamicHTMLResume(renderStream, { delayDataUntilFirstHtmlChunk, inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata }) {\n return renderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createFlightDataInjectionTransformStream(inlinedDataStream, delayDataUntilFirstHtmlChunk))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nfunction createDocumentClosingStream() {\n return streamFromString(CLOSE_TAG);\n}\n\n//# sourceMappingURL=node-web-streams-helper.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBY0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGdCQUFnQixtQkFBTyxDQUFDLHNGQUFxQjtBQUM3QyxtQkFBbUIsbUJBQU8sQ0FBQyw0RkFBd0I7QUFDbkQseUJBQXlCLG1CQUFPLENBQUMsMEZBQTRCO0FBQzdELG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxxQkFBcUIsbUJBQU8sQ0FBQywwRkFBZ0I7QUFDN0MsMkJBQTJCLG1CQUFPLENBQUMsc0dBQXNCO0FBQ3pELG9CQUFvQixtQkFBTyxDQUFDLHdHQUFtQztBQUMvRCxzQ0FBc0MsbUJBQU8sQ0FBQyxrS0FBZ0U7QUFDOUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxQkFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxVQUFVLHdCQUF3QjtBQUNsQztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsMkJBQTJCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLHFDQUFxQyx3Q0FBd0M7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixjQUFjO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQ7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQseUJBQXlCLEVBQUUsaURBQWlEO0FBQzdILHdDQUF3QyxvQ0FBb0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELHVKQUF1SjtBQUN6TTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQsa0RBQWtEO0FBQzdHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQsdUdBQXVHO0FBQ2pLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQsbUdBQW1HO0FBQzVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjaGFpblN0cmVhbXM6IG51bGwsXG4gICAgY29udGludWVEeW5hbWljSFRNTFJlc3VtZTogbnVsbCxcbiAgICBjb250aW51ZUR5bmFtaWNQcmVyZW5kZXI6IG51bGwsXG4gICAgY29udGludWVGaXp6U3RyZWFtOiBudWxsLFxuICAgIGNvbnRpbnVlU3RhdGljUHJlcmVuZGVyOiBudWxsLFxuICAgIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtOiBudWxsLFxuICAgIGNyZWF0ZURvY3VtZW50Q2xvc2luZ1N0cmVhbTogbnVsbCxcbiAgICBjcmVhdGVSb290TGF5b3V0VmFsaWRhdG9yU3RyZWFtOiBudWxsLFxuICAgIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW06IG51bGwsXG4gICAgc3RyZWFtRnJvbUJ1ZmZlcjogbnVsbCxcbiAgICBzdHJlYW1Gcm9tU3RyaW5nOiBudWxsLFxuICAgIHN0cmVhbVRvQnVmZmVyOiBudWxsLFxuICAgIHN0cmVhbVRvU3RyaW5nOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNoYWluU3RyZWFtczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjaGFpblN0cmVhbXM7XG4gICAgfSxcbiAgICBjb250aW51ZUR5bmFtaWNIVE1MUmVzdW1lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRpbnVlRHluYW1pY0hUTUxSZXN1bWU7XG4gICAgfSxcbiAgICBjb250aW51ZUR5bmFtaWNQcmVyZW5kZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29udGludWVEeW5hbWljUHJlcmVuZGVyO1xuICAgIH0sXG4gICAgY29udGludWVGaXp6U3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRpbnVlRml6elN0cmVhbTtcbiAgICB9LFxuICAgIGNvbnRpbnVlU3RhdGljUHJlcmVuZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRpbnVlU3RhdGljUHJlcmVuZGVyO1xuICAgIH0sXG4gICAgY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW07XG4gICAgfSxcbiAgICBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRG9jdW1lbnRDbG9zaW5nU3RyZWFtO1xuICAgIH0sXG4gICAgY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVSb290TGF5b3V0VmFsaWRhdG9yU3RyZWFtO1xuICAgIH0sXG4gICAgcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtO1xuICAgIH0sXG4gICAgc3RyZWFtRnJvbUJ1ZmZlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJlYW1Gcm9tQnVmZmVyO1xuICAgIH0sXG4gICAgc3RyZWFtRnJvbVN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJlYW1Gcm9tU3RyaW5nO1xuICAgIH0sXG4gICAgc3RyZWFtVG9CdWZmZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyZWFtVG9CdWZmZXI7XG4gICAgfSxcbiAgICBzdHJlYW1Ub1N0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJlYW1Ub1N0cmluZztcbiAgICB9XG59KTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi4vbGliL3RyYWNlL3RyYWNlclwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vbGliL3RyYWNlL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9kZXRhY2hlZHByb21pc2UgPSByZXF1aXJlKFwiLi4vLi4vbGliL2RldGFjaGVkLXByb21pc2VcIik7XG5jb25zdCBfc2NoZWR1bGVyID0gcmVxdWlyZShcIi4uLy4uL2xpYi9zY2hlZHVsZXJcIik7XG5jb25zdCBfZW5jb2RlZHRhZ3MgPSByZXF1aXJlKFwiLi9lbmNvZGVkLXRhZ3NcIik7XG5jb25zdCBfdWludDhhcnJheWhlbHBlcnMgPSByZXF1aXJlKFwiLi91aW50OGFycmF5LWhlbHBlcnNcIik7XG5jb25zdCBfY29uc3RhbnRzMSA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2Vycm9ycy9jb25zdGFudHNcIik7XG5jb25zdCBfb3V0cHV0ZXhwb3J0cHJlZmV0Y2hlbmNvZGluZyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQtY2FjaGUvb3V0cHV0LWV4cG9ydC1wcmVmZXRjaC1lbmNvZGluZ1wiKTtcbmZ1bmN0aW9uIHZvaWRDYXRjaCgpIHtcbi8vIHRoaXMgY2F0Y2hlciBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggcGlwZVRvIHdoZXJlIHdlIGV4cGVjdCB0aGUgdW5kZXJseWluZ1xuLy8gcGlwZSBpbXBsZW1lbnRhdGlvbiB0byBmb3J3YXJkIGVycm9ycyBidXQgd2UgZG9uJ3Qgd2FudCB0aGUgcGlwZVRvIHByb21pc2UgdG8gcmVqZWN0XG4vLyBhbmQgYmUgdW5oYW5kbGVkXG59XG4vLyBXZSBjYW4gc2hhcmUgdGhlIHNhbWUgZW5jb2RlciBpbnN0YW5jZSBldmVyeXdoZXJlXG4vLyBOb3RhYmx5IHdlIGNhbm5vdCBkbyB0aGUgc2FtZSBmb3IgVGV4dERlY29kZXIgYmVjYXVzZSBpdCBpcyBzdGF0ZWZ1bFxuLy8gd2hlbiBoYW5kbGluZyBzdHJlYW1pbmcgZGF0YVxuY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuZnVuY3Rpb24gY2hhaW5TdHJlYW1zKC4uLnN0cmVhbXMpIHtcbiAgICAvLyBJZiB3ZSBoYXZlIG5vIHN0cmVhbXMsIHJldHVybiBhbiBlbXB0eSBzdHJlYW0uIFRoaXMgYmVoYXZpb3IgaXNcbiAgICAvLyBpbnRlbnRpb25hbCBhcyB3ZSdyZSBub3cgcHJvdmlkaW5nIHRoZSBgUmVuZGVyUmVzdWx0LkVNUFRZYCB2YWx1ZS5cbiAgICBpZiAoc3RyZWFtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8vIElmIHdlIG9ubHkgaGF2ZSAxIHN0cmVhbSB3ZSBmYXN0IHBhdGggaXQgYnkgcmV0dXJuaW5nIGp1c3QgdGhpcyBzdHJlYW1cbiAgICBpZiAoc3RyZWFtcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbXNbMF07XG4gICAgfVxuICAgIGNvbnN0IHsgcmVhZGFibGUsIHdyaXRhYmxlIH0gPSBuZXcgVHJhbnNmb3JtU3RyZWFtKCk7XG4gICAgLy8gV2UgYWx3YXlzIGluaXRpYXRlIHBpcGVUbyBpbW1lZGlhdGVseS4gV2Uga25vdyB3ZSBoYXZlIGF0IGxlYXN0IDIgc3RyZWFtc1xuICAgIC8vIHNvIHdlIG5lZWQgdG8gYXZvaWQgY2xvc2luZyB0aGUgd3JpdGFibGUgd2hlbiB0aGlzIG9uZSBmaW5pc2hlcy5cbiAgICBsZXQgcHJvbWlzZSA9IHN0cmVhbXNbMF0ucGlwZVRvKHdyaXRhYmxlLCB7XG4gICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgIH0pO1xuICAgIGxldCBpID0gMTtcbiAgICBmb3IoOyBpIDwgc3RyZWFtcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICBjb25zdCBuZXh0U3RyZWFtID0gc3RyZWFtc1tpXTtcbiAgICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoKT0+bmV4dFN0cmVhbS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgICAgICAgICBwcmV2ZW50Q2xvc2U6IHRydWVcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG4gICAgLy8gV2UgY2FuIG9taXQgdGhlIGxlbmd0aCBjaGVjayBiZWNhdXNlIHdlIGhhbHRlZCBiZWZvcmUgdGhlIGxhc3Qgc3RyZWFtIGFuZCB0aGVyZVxuICAgIC8vIGlzIGF0IGxlYXN0IHR3byBzdHJlYW1zIHNvIHRoZSBsYXN0U3RyZWFtIGhlcmUgd2lsbCBhbHdheXMgYmUgZGVmaW5lZFxuICAgIGNvbnN0IGxhc3RTdHJlYW0gPSBzdHJlYW1zW2ldO1xuICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oKCk9Pmxhc3RTdHJlYW0ucGlwZVRvKHdyaXRhYmxlKSk7XG4gICAgLy8gQ2F0Y2ggYW55IGVycm9ycyBmcm9tIHRoZSBzdHJlYW1zIGFuZCBpZ25vcmUgdGhlbSwgdGhleSB3aWxsIGJlIGhhbmRsZWRcbiAgICAvLyBieSB3aGF0ZXZlciBpcyBjb25zdW1pbmcgdGhlIHJlYWRhYmxlIHN0cmVhbS5cbiAgICBwcm9taXNlLmNhdGNoKHZvaWRDYXRjaCk7XG4gICAgcmV0dXJuIHJlYWRhYmxlO1xufVxuZnVuY3Rpb24gc3RyZWFtRnJvbVN0cmluZyhzdHIpIHtcbiAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShzdHIpKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gc3RyZWFtRnJvbUJ1ZmZlcihjaHVuaykge1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gc3RyZWFtVG9CdWZmZXIoc3RyZWFtKSB7XG4gICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpO1xuICAgIGNvbnN0IGNodW5rcyA9IFtdO1xuICAgIHdoaWxlKHRydWUpe1xuICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2h1bmtzLnB1c2godmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChjaHVua3MpO1xufVxuYXN5bmMgZnVuY3Rpb24gc3RyZWFtVG9TdHJpbmcoc3RyZWFtLCBzaWduYWwpIHtcbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCd1dGYtOCcsIHtcbiAgICAgICAgZmF0YWw6IHRydWVcbiAgICB9KTtcbiAgICBsZXQgc3RyaW5nID0gJyc7XG4gICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBzdHJlYW0pe1xuICAgICAgICBpZiAoc2lnbmFsID09IG51bGwgPyB2b2lkIDAgOiBzaWduYWwuYWJvcnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICBzdHJpbmcgKz0gZGVjb2Rlci5kZWNvZGUoY2h1bmssIHtcbiAgICAgICAgICAgIHN0cmVhbTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RyaW5nICs9IGRlY29kZXIuZGVjb2RlKCk7XG4gICAgcmV0dXJuIHN0cmluZztcbn1cbmZ1bmN0aW9uIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkge1xuICAgIGxldCBidWZmZXJlZENodW5rcyA9IFtdO1xuICAgIGxldCBidWZmZXJCeXRlTGVuZ3RoID0gMDtcbiAgICBsZXQgcGVuZGluZztcbiAgICBjb25zdCBmbHVzaCA9IChjb250cm9sbGVyKT0+e1xuICAgICAgICAvLyBJZiB3ZSBhbHJlYWR5IGhhdmUgYSBwZW5kaW5nIGZsdXNoLCB0aGVuIHJldHVybiBlYXJseS5cbiAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybjtcbiAgICAgICAgY29uc3QgZGV0YWNoZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgcGVuZGluZyA9IGRldGFjaGVkO1xuICAgICAgICAoMCwgX3NjaGVkdWxlci5zY2hlZHVsZUltbWVkaWF0ZSkoKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgVWludDhBcnJheShidWZmZXJCeXRlTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBsZXQgY29waWVkQnl0ZXMgPSAwO1xuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBidWZmZXJlZENodW5rcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlcmVkQ2h1bmsgPSBidWZmZXJlZENodW5rc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgY2h1bmsuc2V0KGJ1ZmZlcmVkQ2h1bmssIGNvcGllZEJ5dGVzKTtcbiAgICAgICAgICAgICAgICAgICAgY29waWVkQnl0ZXMgKz0gYnVmZmVyZWRDaHVuay5ieXRlTGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IHdyb3RlIGFsbCB0aGUgYnVmZmVyZWQgY2h1bmtzIHNvIHdlIG5lZWQgdG8gcmVzZXQgdGhlIGJ1ZmZlcmVkQ2h1bmtzIGFycmF5XG4gICAgICAgICAgICAgICAgLy8gYW5kIG91ciBidWZmZXJCeXRlTGVuZ3RoIHRvIHByZXBhcmUgZm9yIHRoZSBuZXh0IHJvdW5kIG9mIGJ1ZmZlcmVkIGNodW5rc1xuICAgICAgICAgICAgICAgIGJ1ZmZlcmVkQ2h1bmtzLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgYnVmZmVyQnl0ZUxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgIC8vIElmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBlbnF1ZXVpbmcgaXQgY2FuJ3QgYmUgZHVlIHRvIHRoaXNcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybWVycyBmYXVsdC4gSXQncyBsaWtlbHkgZHVlIHRvIHRoZSBjb250cm9sbGVyIGJlaW5nXG4gICAgICAgICAgICAvLyBlcnJvcmVkIGR1ZSB0byB0aGUgc3RyZWFtIGJlaW5nIGNhbmNlbGxlZC5cbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBwZW5kaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGRldGFjaGVkLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIENvbWJpbmUgdGhlIHByZXZpb3VzIGJ1ZmZlciB3aXRoIHRoZSBuZXcgY2h1bmsuXG4gICAgICAgICAgICBidWZmZXJlZENodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgIGJ1ZmZlckJ5dGVMZW5ndGggKz0gY2h1bmsuYnl0ZUxlbmd0aDtcbiAgICAgICAgICAgIC8vIEZsdXNoIHRoZSBidWZmZXIgdG8gdGhlIGNvbnRyb2xsZXIuXG4gICAgICAgICAgICBmbHVzaChjb250cm9sbGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgZmx1c2ggKCkge1xuICAgICAgICAgICAgaWYgKCFwZW5kaW5nKSByZXR1cm47XG4gICAgICAgICAgICByZXR1cm4gcGVuZGluZy5wcm9taXNlO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVQcmVmZXRjaENvbW1lbnRTdHJlYW0oaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQpIHtcbiAgICAvLyBJbnNlcnQgYW4gZXh0cmEgY29tbWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBIVE1MIGRvY3VtZW50LiBUaGlzIG11c3RcbiAgICAvLyBjb21lIGFmdGVyIHRoZSBET0NUWVBFLCB3aGljaCBpcyBpbnNlcnRlZCBieSBSZWFjdC5cbiAgICAvL1xuICAgIC8vIFRoZSBmaXJzdCBjaHVuayBzZW50IGJ5IFJlYWN0IHdpbGwgY29udGFpbiB0aGUgZG9jdHlwZS4gQWZ0ZXIgdGhhdCwgd2UgY2FuXG4gICAgLy8gcGFzcyB0aHJvdWdoIHRoZSByZXN0IG9mIHRoZSBjaHVua3MgYXMtaXMuXG4gICAgbGV0IGRpZFRyYW5zZm9ybUZpcnN0Q2h1bmsgPSBmYWxzZTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGlmIChpc0J1aWxkVGltZVByZXJlbmRlcmluZyAmJiAhZGlkVHJhbnNmb3JtRmlyc3RDaHVuaykge1xuICAgICAgICAgICAgICAgIGRpZFRyYW5zZm9ybUZpcnN0Q2h1bmsgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jywge1xuICAgICAgICAgICAgICAgICAgICBmYXRhbDogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rU3RyID0gZGVjb2Rlci5kZWNvZGUoY2h1bmssIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyZWFtOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZENodW5rU3RyID0gKDAsIF9vdXRwdXRleHBvcnRwcmVmZXRjaGVuY29kaW5nLmluc2VydEJ1aWxkSWRDb21tZW50KShjaHVua1N0ciwgYnVpbGRJZCk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHVwZGF0ZWRDaHVua1N0cikpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW0oeyBSZWFjdERPTVNlcnZlciwgZWxlbWVudCwgc3RyZWFtT3B0aW9ucyB9KSB7XG4gICAgcmV0dXJuICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS50cmFjZShfY29uc3RhbnRzLkFwcFJlbmRlclNwYW4ucmVuZGVyVG9SZWFkYWJsZVN0cmVhbSwgYXN5bmMgKCk9PlJlYWN0RE9NU2VydmVyLnJlbmRlclRvUmVhZGFibGVTdHJlYW0oZWxlbWVudCwgc3RyZWFtT3B0aW9ucykpO1xufVxuZnVuY3Rpb24gY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oaW5zZXJ0KSB7XG4gICAgbGV0IGNodW5rSW5kZXggPSAtMTtcbiAgICBsZXQgaXNNYXJrUmVtb3ZlZCA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgbGV0IGljb25NYXJrSW5kZXggPSAtMTtcbiAgICAgICAgICAgIGxldCBjbG9zZWRIZWFkSW5kZXggPSAtMTtcbiAgICAgICAgICAgIGNodW5rSW5kZXgrKztcbiAgICAgICAgICAgIGlmIChpc01hcmtSZW1vdmVkKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgaWNvbk1hcmtMZW5ndGggPSAwO1xuICAgICAgICAgICAgLy8gT25seSBzZWFyY2ggZm9yIHRoZSBjbG9zZWQgaGVhZCB0YWcgb25jZVxuICAgICAgICAgICAgaWYgKGljb25NYXJrSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWNvbk1hcmtJbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLk1FVEEuSUNPTl9NQVJLKTtcbiAgICAgICAgICAgICAgICBpZiAoaWNvbk1hcmtJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgZm91bmQgdGhlIGA8bWV0YSBuYW1lPVwiwqtueHQtaWNvbsK7XCJgIHRhZyBwcmVmaXgsIHdlIHdpbGwgcmVtb3ZlIGl0IGZyb20gdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICAvLyBJdHMgY2xvc2UgdGFnIGNvdWxkIGVpdGhlciBiZSBgLz5gIG9yIGA+YCwgY2hlY2tpbmcgdGhlIG5leHQgY2hhciB0byBlbnN1cmUgd2UgY292ZXIgYm90aCBjYXNlcy5cbiAgICAgICAgICAgICAgICAgICAgaWNvbk1hcmtMZW5ndGggPSBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLk1FVEEuSUNPTl9NQVJLLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgbmV4dCBjaGFyIGlzIC8sIHRoaXMgaXMgZm9yIHhtbCBtb2RlLlxuICAgICAgICAgICAgICAgICAgICBpZiAoY2h1bmtbaWNvbk1hcmtJbmRleCArIGljb25NYXJrTGVuZ3RoXSA9PT0gNDcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25NYXJrTGVuZ3RoICs9IDI7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbGFzdCBjaGFyIGlzIGA+YFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbk1hcmtMZW5ndGgrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGljb24gbWFyayBpcyBpbnNpZGUgPGhlYWQ+IHRhZyBpbiB0aGUgZmlyc3QgY2h1bmsuXG4gICAgICAgICAgICBpZiAoY2h1bmtJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNsb3NlZEhlYWRJbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5IRUFEKTtcbiAgICAgICAgICAgICAgICBpZiAoaWNvbk1hcmtJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG1hcmsgaWNvbiBpcyBsb2NhdGVkIGluIHRoZSAxc3QgY2h1bmsgYmVmb3JlIHRoZSBoZWFkIHRhZy5cbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gbm90IG5lZWQgdG8gaW5zZXJ0IHRoZSBzY3JpcHQgdGFnIGluIHRoaXMgY2FzZSBiZWNhdXNlIGl0J3MgaW4gdGhlIGhlYWQuXG4gICAgICAgICAgICAgICAgICAgIC8vIEp1c3QgcmVtb3ZlIHRoZSBpY29uIG1hcmsgZnJvbSB0aGUgY2h1bmsuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpY29uTWFya0luZGV4IDwgY2xvc2VkSGVhZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXBsYWNlZCA9IG5ldyBVaW50OEFycmF5KGNodW5rLmxlbmd0aCAtIGljb25NYXJrTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgaWNvbiBtYXJrIGZyb20gdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KDAsIGljb25NYXJrSW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheShpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGgpLCBpY29uTWFya0luZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rID0gcmVwbGFjZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgaWNvbiBtYXJrIGlzIGFmdGVyIHRoZSBoZWFkIHRhZywgcmVwbGFjZSBhbmQgaW5zZXJ0IHRoZSBzY3JpcHQgdGFnIGF0IHRoYXQgcG9zaXRpb24uXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5zZXJ0aW9uTGVuZ3RoID0gZW5jb2RlZEluc2VydGlvbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXBsYWNlZCA9IG5ldyBVaW50OEFycmF5KGNodW5rLmxlbmd0aCAtIGljb25NYXJrTGVuZ3RoICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheSgwLCBpY29uTWFya0luZGV4KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoZW5jb2RlZEluc2VydGlvbiwgaWNvbk1hcmtJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoaWNvbk1hcmtJbmRleCArIGljb25NYXJrTGVuZ3RoKSwgaWNvbk1hcmtJbmRleCArIGluc2VydGlvbkxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaHVuayA9IHJlcGxhY2VkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlzTWFya1JlbW92ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gaWNvbiBtYXJrIGxvY2F0ZWQsIGl0IHdpbGwgYmUgaGFuZGxlZCBsYXRlciB3aGVuIGlmIHByZXNlbnQgaW4gdGhlIGZvbGxvd2luZyBjaHVua3MuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFdoZW4gaXQncyBhcHBlYXJlZCBpbiB0aGUgZm9sbG93aW5nIGNodW5rcywgd2UnbGwgbmVlZCB0b1xuICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgbWFyayBhbmQgdGhlbiBpbnNlcnQgdGhlIHNjcmlwdCB0YWcgYXQgdGhhdCBwb3NpdGlvbi5cbiAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkSW5zZXJ0aW9uID0gZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb25MZW5ndGggPSBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBpY29uIG1hcmsgd2l0aCB0aGUgaG9pc3Qgc2NyaXB0IG9yIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICAgICAgICBjb25zdCByZXBsYWNlZCA9IG5ldyBVaW50OEFycmF5KGNodW5rLmxlbmd0aCAtIGljb25NYXJrTGVuZ3RoICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGNodW5rLCBiZWZvcmUgdGhlIGljb24gbWFyay5cbiAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoMCwgaWNvbk1hcmtJbmRleCkpO1xuICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgaW5zZXJ0aW9uIGFmdGVyIHRoZSBpY29uIG1hcmsuXG4gICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGVuY29kZWRJbnNlcnRpb24sIGljb25NYXJrSW5kZXgpO1xuICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgcmVzdCBvZiB0aGUgY2h1bmsgYWZ0ZXIgdGhlIGljb24gbWFyay5cbiAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoaWNvbk1hcmtJbmRleCArIGljb25NYXJrTGVuZ3RoKSwgaWNvbk1hcmtJbmRleCArIGluc2VydGlvbkxlbmd0aCk7XG4gICAgICAgICAgICAgICAgY2h1bmsgPSByZXBsYWNlZDtcbiAgICAgICAgICAgICAgICBpc01hcmtSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oaW5zZXJ0KSB7XG4gICAgbGV0IGluc2VydGVkID0gZmFsc2U7XG4gICAgLy8gV2UgbmVlZCB0byB0cmFjayBpZiB0aGlzIHRyYW5zZm9ybSBzYXcgYW55IGJ5dGVzIGJlY2F1c2UgaWYgaXQgZGlkbid0XG4gICAgLy8gd2Ugd29uJ3Qgd2FudCB0byBpbnNlcnQgYW55IHNlcnZlciBIVE1MIGF0IGFsbFxuICAgIGxldCBoYXNCeXRlcyA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaGFzQnl0ZXMgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3QgaW5zZXJ0aW9uID0gYXdhaXQgaW5zZXJ0KCk7XG4gICAgICAgICAgICBpZiAoaW5zZXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2RlZEluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFRPRE8gKEBFdGhhbi1BcnJvd29vZCk6IFJlcGxhY2UgdGhlIGdlbmVyaWMgYGluZGV4T2ZVaW50OEFycmF5YCBtZXRob2Qgd2l0aCBzb21ldGhpbmcgZmluZWx5IHR1bmVkIGZvciB0aGUgc3Vic2V0IG9mIHRoaW5ncyBhY3R1YWxseSBiZWluZyBjaGVja2VkIGZvci5cbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5IRUFEKTtcbiAgICAgICAgICAgICAgICAvLyBJbiBmdWxseSBzdGF0aWMgcmVuZGVyaW5nIG9yIG5vbiBQUFIgcmVuZGVyaW5nIGNhc2VzOlxuICAgICAgICAgICAgICAgIC8vIGAvaGVhZD5gIHdpbGwgYWx3YXlzIGJlIGZvdW5kIGluIHRoZSBjaHVuayBpbiBmaXJzdCBjaHVuayByZW5kZXJpbmcuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkSW5zZXJ0aW9uID0gZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgdG90YWwgY291bnQgb2YgdGhlIGJ5dGVzIGluIHRoZSBjaHVuayBhbmQgdGhlIGluc2VydGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZS5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2h1bmsgPSA8aGVhZD48bWV0YSBjaGFyc2V0PVwidXRmLThcIj48L2hlYWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnNlcnRpb24gPSA8c2NyaXB0Pi4uLjwvc2NyaXB0PlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3V0cHV0ID0gPGhlYWQ+PG1ldGEgY2hhcnNldD1cInV0Zi04XCI+IFsgPHNjcmlwdD4uLi48L3NjcmlwdD4gXSA8L2hlYWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRlZEhlYWRDb250ZW50ID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoICsgZW5jb2RlZEluc2VydGlvbi5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBjaHVuaywgYmVmb3JlIHRoZSBoZWFkIHRhZ1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoY2h1bmsuc2xpY2UoMCwgaW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgc2VydmVyIGluc2VydGVkIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydGVkSGVhZENvbnRlbnQuc2V0KGVuY29kZWRJbnNlcnRpb24sIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgcmVzdCBvZiB0aGUgY2h1bmtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydGVkSGVhZENvbnRlbnQuc2V0KGNodW5rLnNsaWNlKGluZGV4KSwgaW5kZXggKyBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoaW5zZXJ0ZWRIZWFkQ29udGVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGluc2VydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgaGFwcGVucyBpbiBQUFIgcmVuZGVyaW5nIGR1cmluZyBuZXh0IHN0YXJ0LCB3aGVuIHRoZSBwYWdlIGlzIHBhcnRpYWxseSByZW5kZXJlZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgcGFnZSByZXN1bWVzLCB0aGUgaGVhZCB0YWcgd2lsbCBiZSBmb3VuZCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjaHVuay5cbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlcmUgd2UganVzdCBuZWVkIHRvIGFwcGVuZCB0aGUgaW5zZXJ0aW9uIGFuZCBjaHVuayB0byB0aGUgY3VycmVudCBzdHJlYW0uXG4gICAgICAgICAgICAgICAgICAgIC8vIGUuZy5cbiAgICAgICAgICAgICAgICAgICAgLy8gUFBSLXN0YXRpYzogPGhlYWQ+Li4uPC9oZWFkPjxib2R5PiBbIHJlc3VtZSBjb250ZW50IF0gPC9ib2R5PlxuICAgICAgICAgICAgICAgICAgICAvLyBQUFItcmVzdW1lOiBbIGluc2VydGlvbiBdIFsgcmVzdCBjb250ZW50IF1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc2VydGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGluc2VydGlvbikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAgICAgICAgIGluc2VydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBiZWZvcmUgY2xvc2luZyBpZiB0aGVyZSdzIGFueXRoaW5nIHJlbWFpbmluZyB0byBpbnNlcnQuXG4gICAgICAgICAgICBpZiAoaGFzQnl0ZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbi8vIFN1ZmZpeCBhZnRlciBtYWluIGJvZHkgY29udGVudCAtIHNjcmlwdHMgYmVmb3JlIDwvYm9keT4sXG4vLyBidXQgd2FpdCBmb3IgdGhlIG1ham9yIGNodW5rcyB0byBiZSBlbnF1ZXVlZC5cbmZ1bmN0aW9uIGNyZWF0ZURlZmVycmVkU3VmZml4U3RyZWFtKHN1ZmZpeCkge1xuICAgIGxldCBmbHVzaGVkID0gZmFsc2U7XG4gICAgbGV0IHBlbmRpbmc7XG4gICAgY29uc3QgZmx1c2ggPSAoY29udHJvbGxlcik9PntcbiAgICAgICAgY29uc3QgZGV0YWNoZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgcGVuZGluZyA9IGRldGFjaGVkO1xuICAgICAgICAoMCwgX3NjaGVkdWxlci5zY2hlZHVsZUltbWVkaWF0ZSkoKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHN1ZmZpeCkpO1xuICAgICAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgLy8gSWYgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGVucXVldWluZyBpdCBjYW4ndCBiZSBkdWUgdG8gdGhpc1xuICAgICAgICAgICAgLy8gdHJhbnNmb3JtZXJzIGZhdWx0LiBJdCdzIGxpa2VseSBkdWUgdG8gdGhlIGNvbnRyb2xsZXIgYmVpbmdcbiAgICAgICAgICAgIC8vIGVycm9yZWQgZHVlIHRvIHRoZSBzdHJlYW0gYmVpbmcgY2FuY2VsbGVkLlxuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIHBlbmRpbmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWQucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZmx1c2hlZCwgd2UncmUgZG9uZS5cbiAgICAgICAgICAgIGlmIChmbHVzaGVkKSByZXR1cm47XG4gICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZmx1c2ggdG8gaGFwcGVuLlxuICAgICAgICAgICAgZmx1c2hlZCA9IHRydWU7XG4gICAgICAgICAgICBmbHVzaChjb250cm9sbGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGlmIChwZW5kaW5nKSByZXR1cm4gcGVuZGluZy5wcm9taXNlO1xuICAgICAgICAgICAgaWYgKGZsdXNoZWQpIHJldHVybjtcbiAgICAgICAgICAgIC8vIEZsdXNoIG5vdy5cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShzdWZmaXgpKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlRmxpZ2h0RGF0YUluamVjdGlvblRyYW5zZm9ybVN0cmVhbShzdHJlYW0sIGRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspIHtcbiAgICBsZXQgaHRtbFN0cmVhbUZpbmlzaGVkID0gZmFsc2U7XG4gICAgbGV0IHB1bGwgPSBudWxsO1xuICAgIGxldCBkb25lUHVsbGluZyA9IGZhbHNlO1xuICAgIGZ1bmN0aW9uIHN0YXJ0T3JDb250aW51ZVB1bGxpbmcoY29udHJvbGxlcikge1xuICAgICAgICBpZiAoIXB1bGwpIHtcbiAgICAgICAgICAgIHB1bGwgPSBzdGFydFB1bGxpbmcoY29udHJvbGxlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHB1bGw7XG4gICAgfVxuICAgIGFzeW5jIGZ1bmN0aW9uIHN0YXJ0UHVsbGluZyhjb250cm9sbGVyKSB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgICAgICAgaWYgKGRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmspIHtcbiAgICAgICAgICAgIC8vIE5PVEU6IHN0cmVhbWluZyBmbHVzaFxuICAgICAgICAgICAgLy8gV2UgYXJlIGJ1ZmZlcmluZyBoZXJlIGZvciB0aGUgaW5saW5lZCBkYXRhIHN0cmVhbSBiZWNhdXNlIHRoZVxuICAgICAgICAgICAgLy8gXCJzaGVsbFwiIHN0cmVhbSBtaWdodCBiZSBjaHVua2VuaXplZCBhZ2FpbiBieSB0aGUgdW5kZXJseWluZyBzdHJlYW1cbiAgICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9uLCBlLmcuIHdpdGggYSBzcGVjaWZpYyBoaWdoLXdhdGVyIG1hcmsuIFRvIGVuc3VyZSBpdCdzXG4gICAgICAgICAgICAvLyB0aGUgc2FmZSB0aW1pbmcgdG8gcGlwZSB0aGUgZGF0YSBzdHJlYW0sIHRoaXMgZXh0cmEgdGljayBpc1xuICAgICAgICAgICAgLy8gbmVjZXNzYXJ5LlxuICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgc3RhcnQgcmVhZGluZyB1bnRpbCB3ZSd2ZSBsZWZ0IHRoZSBjdXJyZW50IFRhc2sgdG8gZW5zdXJlXG4gICAgICAgICAgICAvLyB0aGF0IGl0J3MgaW5zZXJ0ZWQgYWZ0ZXIgZmx1c2hpbmcgdGhlIHNoZWxsLiBOb3RlIHRoYXQgdGhpcyBpbXBsZW1lbnRhdGlvblxuICAgICAgICAgICAgLy8gbWlnaHQgZ2V0IHN0YWxlIGlmIGltcGwgZGV0YWlscyBvZiBGaXp6IGNoYW5nZSBpbiB0aGUgZnV0dXJlLlxuICAgICAgICAgICAgYXdhaXQgKDAsIF9zY2hlZHVsZXIuYXRMZWFzdE9uZVRhc2spKCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHdoaWxlKHRydWUpe1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICAgICAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9uZVB1bGxpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gcHJpb3JpdGl6ZSBIVE1MIG92ZXIgUlNDIGRhdGEuXG4gICAgICAgICAgICAgICAgLy8gVGhlIFNTUiByZW5kZXIgaXMgYmFzZWQgb24gdGhlIHNhbWUgUlNDIHN0cmVhbSwgc28gd2hlbiB3ZSBnZXQgYSBuZXcgUlNDIGNodW5rLFxuICAgICAgICAgICAgICAgIC8vIHdlJ3JlIGxpa2VseSB0byBwcm9kdWNlIGFuIEhUTUwgY2h1bmsgYXMgd2VsbCwgc28gZ2l2ZSBpdCBhIGNoYW5jZSB0byBmbHVzaCBmaXJzdC5cbiAgICAgICAgICAgICAgICBpZiAoIWRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmsgJiYgIWh0bWxTdHJlYW1GaW5pc2hlZCkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCAoMCwgX3NjaGVkdWxlci5hdExlYXN0T25lVGFzaykoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgaWYgKCFkZWxheURhdGFVbnRpbEZpcnN0SHRtbENodW5rKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRPckNvbnRpbnVlUHVsbGluZyhjb250cm9sbGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIC8vIFN0YXJ0IHRoZSBzdHJlYW1pbmcgaWYgaXQgaGFzbid0IGFscmVhZHkgYmVlbiBzdGFydGVkIHlldC5cbiAgICAgICAgICAgIGlmIChkZWxheURhdGFVbnRpbEZpcnN0SHRtbENodW5rKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRPckNvbnRpbnVlUHVsbGluZyhjb250cm9sbGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGh0bWxTdHJlYW1GaW5pc2hlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoZG9uZVB1bGxpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RhcnRPckNvbnRpbnVlUHVsbGluZyhjb250cm9sbGVyKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuY29uc3QgQ0xPU0VfVEFHID0gJzwvYm9keT48L2h0bWw+Jztcbi8qKlxuICogVGhpcyB0cmFuc2Zvcm0gc3RyZWFtIG1vdmVzIHRoZSBzdWZmaXggdG8gdGhlIGVuZCBvZiB0aGUgc3RyZWFtLCBzbyByZXN1bHRzXG4gKiBsaWtlIGA8L2JvZHk+PC9odG1sPjxzY3JpcHQ+Li4uPC9zY3JpcHQ+YCB3aWxsIGJlIHRyYW5zZm9ybWVkIHRvXG4gKiBgPHNjcmlwdD4uLi48L3NjcmlwdD48L2JvZHk+PC9odG1sPmAuXG4gKi8gZnVuY3Rpb24gY3JlYXRlTW92ZVN1ZmZpeFN0cmVhbSgpIHtcbiAgICBsZXQgZm91bmRTdWZmaXggPSBmYWxzZTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGlmIChmb3VuZFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGZvdW5kU3VmZml4ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgd2hvbGUgY2h1bmsgaXMgdGhlIHN1ZmZpeCwgdGhlbiBkb24ndCB3cml0ZSBhbnl0aGluZywgaXQgd2lsbFxuICAgICAgICAgICAgICAgIC8vIGJlIHdyaXR0ZW4gaW4gdGhlIGZsdXNoLlxuICAgICAgICAgICAgICAgIGlmIChjaHVuay5sZW5ndGggPT09IF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBwYXJ0IGJlZm9yZSB0aGUgc3VmZml4LlxuICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IGNodW5rLnNsaWNlKDAsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoYmVmb3JlKTtcbiAgICAgICAgICAgICAgICAvLyBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgc3VmZml4IGlzIGluIHRoZSBtaWRkbGUgb2YgdGhlIGNodW5rLCB3ZSBuZWVkXG4gICAgICAgICAgICAgICAgLy8gdG8gc3BsaXQgdGhlIGNodW5rIGludG8gdHdvIHBhcnRzLlxuICAgICAgICAgICAgICAgIGlmIChjaHVuay5sZW5ndGggPiBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MLmxlbmd0aCArIGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdyaXRlIG91dCB0aGUgcGFydCBhZnRlciB0aGUgc3VmZml4LlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZnRlciA9IGNodW5rLnNsaWNlKGluZGV4ICsgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoYWZ0ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIEV2ZW4gaWYgd2UgZGlkbid0IGZpbmQgdGhlIHN1ZmZpeCwgdGhlIEhUTUwgaXMgbm90IHZhbGlkIGlmIHdlIGRvbid0XG4gICAgICAgICAgICAvLyBhZGQgaXQsIHNvIGluc2VydCBpdCBhdCB0aGUgZW5kLlxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVTdHJpcERvY3VtZW50Q2xvc2luZ1RhZ3NUcmFuc2Zvcm0oKSB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBXZSByZWx5IG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgY2h1bmtzIHdpbGwgbmV2ZXIgYnJlYWsgYWNyb3NzIGEgY29kZSB1bml0LlxuICAgICAgICAgICAgLy8gVGhpcyBpcyByZWFzb25hYmxlIGJlY2F1c2Ugd2UgY3VycmVudGx5IGNvbmNhdCBhbGwgb2YgUmVhY3QncyBvdXRwdXQgZnJvbSBhIHNpbmdsZVxuICAgICAgICAgICAgLy8gZmx1c2ggaW50byBvbmUgY2h1bmsgYmVmb3JlIHN0cmVhbWluZyBpdCBmb3J3YXJkIHdoaWNoIG1lYW5zIHRoZSBjaHVuayB3aWxsIHJlcHJlc2VudFxuICAgICAgICAgICAgLy8gYSBzaW5nbGUgY29oZXJlbnQgdXRmLTggc3RyaW5nLiBUaGlzIGlzIG5vdCBzYWZlIHRvIHVzZSBpZiB3ZSBjaGFuZ2Ugb3VyIHN0cmVhbWluZyB0byBub1xuICAgICAgICAgICAgLy8gbG9uZ2VyIGRvIHRoaXMgbGFyZ2UgYnVmZmVyZWQgY2h1bmtcbiAgICAgICAgICAgIGlmICgoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzKShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTCkgfHwgKDAsIF91aW50OGFycmF5aGVscGVycy5pc0VxdWl2YWxlbnRVaW50OEFycmF5cykoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFkpIHx8ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaXNFcXVpdmFsZW50VWludDhBcnJheXMpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5IVE1MKSkge1xuICAgICAgICAgICAgICAgIC8vIHRoZSBlbnRpcmUgY2h1bmsgaXMgdGhlIGNsb3NpbmcgdGFnczsgcmV0dXJuIHdpdGhvdXQgZW5xdWV1ZWluZyBhbnl0aGluZy5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXZSBhc3N1bWUgdGhlc2UgdGFncyB3aWxsIGdvIGF0IHRvZ2V0aGVyIGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50IGFuZCB0aGF0XG4gICAgICAgICAgICAvLyB0aGV5IHdvbid0IGFwcGVhciBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC4gVGhpcyBpcyBub3QgcmVhbGx5IGEgc2FmZSBhc3N1bXB0aW9uXG4gICAgICAgICAgICAvLyBidXQgdW50aWwgd2UgcmV2YW1wIG91ciBzdHJlYW1pbmcgaW5mcmEgdGhpcyBpcyBhIHBlcmZvcm1hbnQgd2F5IHRvIHN0cmluZyB0aGUgdGFnc1xuICAgICAgICAgICAgY2h1bmsgPSAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLnJlbW92ZUZyb21VaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWSk7XG4gICAgICAgICAgICBjaHVuayA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMucmVtb3ZlRnJvbVVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5IVE1MKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW0oKSB7XG4gICAgbGV0IGZvdW5kSHRtbCA9IGZhbHNlO1xuICAgIGxldCBmb3VuZEJvZHkgPSBmYWxzZTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIGFzeW5jIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIFBlZWsgaW50byB0aGUgc3RyZWFtZWQgY2h1bmsgdG8gc2VlIGlmIHRoZSB0YWdzIGFyZSBwcmVzZW50LlxuICAgICAgICAgICAgaWYgKCFmb3VuZEh0bWwgJiYgKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuT1BFTklORy5IVE1MKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRIdG1sID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZm91bmRCb2R5ICYmICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLk9QRU5JTkcuQk9EWSkgPiAtMSkge1xuICAgICAgICAgICAgICAgIGZvdW5kQm9keSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29uc3QgbWlzc2luZ1RhZ3MgPSBbXTtcbiAgICAgICAgICAgIGlmICghZm91bmRIdG1sKSBtaXNzaW5nVGFncy5wdXNoKCdodG1sJyk7XG4gICAgICAgICAgICBpZiAoIWZvdW5kQm9keSkgbWlzc2luZ1RhZ3MucHVzaCgnYm9keScpO1xuICAgICAgICAgICAgaWYgKCFtaXNzaW5nVGFncy5sZW5ndGgpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShgPGh0bWwgaWQ9XCJfX25leHRfZXJyb3JfX1wiPlxuICAgICAgICAgICAgPHRlbXBsYXRlXG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1lcnJvci1tZXNzYWdlPVwiTWlzc2luZyAke21pc3NpbmdUYWdzLm1hcCgoYyk9PmA8JHtjfT5gKS5qb2luKG1pc3NpbmdUYWdzLmxlbmd0aCA+IDEgPyAnIGFuZCAnIDogJycpfSB0YWdzIGluIHRoZSByb290IGxheW91dC5cXG5SZWFkIG1vcmUgYXQgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlzc2luZy1yb290LWxheW91dC10YWdzXCJcbiAgICAgICAgICAgICAgZGF0YS1uZXh0LWVycm9yLWRpZ2VzdD1cIiR7X2NvbnN0YW50czEuTUlTU0lOR19ST09UX1RBR1NfRVJST1J9XCJcbiAgICAgICAgICAgICAgZGF0YS1uZXh0LWVycm9yLXN0YWNrPVwiXCJcbiAgICAgICAgICAgID48L3RlbXBsYXRlPlxuICAgICAgICAgIGApKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY2hhaW5UcmFuc2Zvcm1lcnMocmVhZGFibGUsIHRyYW5zZm9ybWVycykge1xuICAgIGxldCBzdHJlYW0gPSByZWFkYWJsZTtcbiAgICBmb3IgKGNvbnN0IHRyYW5zZm9ybWVyIG9mIHRyYW5zZm9ybWVycyl7XG4gICAgICAgIGlmICghdHJhbnNmb3JtZXIpIGNvbnRpbnVlO1xuICAgICAgICBzdHJlYW0gPSBzdHJlYW0ucGlwZVRocm91Z2godHJhbnNmb3JtZXIpO1xuICAgIH1cbiAgICByZXR1cm4gc3RyZWFtO1xufVxuYXN5bmMgZnVuY3Rpb24gY29udGludWVGaXp6U3RyZWFtKHJlbmRlclN0cmVhbSwgeyBzdWZmaXgsIGlubGluZWREYXRhU3RyZWFtLCBpc1N0YXRpY0dlbmVyYXRpb24sIGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nLCBidWlsZElkLCBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwsIGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEsIHZhbGlkYXRlUm9vdExheW91dCB9KSB7XG4gICAgLy8gU3VmZml4IGl0c2VsZiBtaWdodCBjb250YWluIGNsb3NlIHRhZ3MgYXQgdGhlIGVuZCwgc28gd2UgbmVlZCB0byBzcGxpdCBpdC5cbiAgICBjb25zdCBzdWZmaXhVbmNsb3NlZCA9IHN1ZmZpeCA/IHN1ZmZpeC5zcGxpdChDTE9TRV9UQUcsIDEpWzBdIDogbnVsbDtcbiAgICAvLyBJZiB3ZSdyZSBnZW5lcmF0aW5nIHN0YXRpYyBIVE1MIHdlIG5lZWQgdG8gd2FpdCBmb3IgaXQgdG8gcmVzb2x2ZSBiZWZvcmUgY29udGludWluZy5cbiAgICBpZiAoaXNTdGF0aWNHZW5lcmF0aW9uKSB7XG4gICAgICAgIGF3YWl0IHJlbmRlclN0cmVhbS5hbGxSZWFkeTtcbiAgICB9XG4gICAgcmV0dXJuIGNoYWluVHJhbnNmb3JtZXJzKHJlbmRlclN0cmVhbSwgW1xuICAgICAgICAvLyBCdWZmZXIgZXZlcnl0aGluZyB0byBhdm9pZCBmbHVzaGluZyB0b28gZnJlcXVlbnRseVxuICAgICAgICBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpLFxuICAgICAgICAvLyBBZGQgYnVpbGQgaWQgY29tbWVudCB0byBzdGFydCBvZiB0aGUgSFRNTCBkb2N1bWVudCAoaW4gZXhwb3J0IG1vZGUpXG4gICAgICAgIGNyZWF0ZVByZWZldGNoQ29tbWVudFN0cmVhbShpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCksXG4gICAgICAgIC8vIFRyYW5zZm9ybSBtZXRhZGF0YVxuICAgICAgICBjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhKSxcbiAgICAgICAgLy8gSW5zZXJ0IHN1ZmZpeCBjb250ZW50XG4gICAgICAgIHN1ZmZpeFVuY2xvc2VkICE9IG51bGwgJiYgc3VmZml4VW5jbG9zZWQubGVuZ3RoID4gMCA/IGNyZWF0ZURlZmVycmVkU3VmZml4U3RyZWFtKHN1ZmZpeFVuY2xvc2VkKSA6IG51bGwsXG4gICAgICAgIC8vIEluc2VydCB0aGUgaW5saW5lZCBkYXRhIChGbGlnaHQgZGF0YSwgZm9ybSBzdGF0ZSwgZXRjLikgc3RyZWFtIGludG8gdGhlIEhUTUxcbiAgICAgICAgaW5saW5lZERhdGFTdHJlYW0gPyBjcmVhdGVGbGlnaHREYXRhSW5qZWN0aW9uVHJhbnNmb3JtU3RyZWFtKGlubGluZWREYXRhU3RyZWFtLCB0cnVlKSA6IG51bGwsXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSByb290IGxheW91dCBmb3IgbWlzc2luZyBodG1sIG9yIGJvZHkgdGFnc1xuICAgICAgICB2YWxpZGF0ZVJvb3RMYXlvdXQgPyBjcmVhdGVSb290TGF5b3V0VmFsaWRhdG9yU3RyZWFtKCkgOiBudWxsLFxuICAgICAgICAvLyBDbG9zZSB0YWdzIHNob3VsZCBhbHdheXMgYmUgZGVmZXJyZWQgdG8gdGhlIGVuZFxuICAgICAgICBjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCksXG4gICAgICAgIC8vIFNwZWNpYWwgaGVhZCBpbnNlcnRpb25zXG4gICAgICAgIC8vIFRPRE8tQVBQOiBJbnNlcnQgc2VydmVyIHNpZGUgaHRtbCB0byBlbmQgb2YgaGVhZCBpbiBhcHAgbGF5b3V0IHJlbmRlcmluZywgdG8gYXZvaWRcbiAgICAgICAgLy8gaHlkcmF0aW9uIGVycm9ycy4gUmVtb3ZlIHRoaXMgb25jZSBpdCdzIHJlYWR5IHRvIGJlIGhhbmRsZWQgYnkgcmVhY3QgaXRzZWxmLlxuICAgICAgICBjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTClcbiAgICBdKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcihwcmVyZW5kZXJTdHJlYW0sIHsgZ2V0U2VydmVySW5zZXJ0ZWRIVE1MLCBnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhIH0pIHtcbiAgICByZXR1cm4gcHJlcmVuZGVyU3RyZWFtLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSkucGlwZVRocm91Z2goY3JlYXRlU3RyaXBEb2N1bWVudENsb3NpbmdUYWdzVHJhbnNmb3JtKCkpLy8gSW5zZXJ0IGdlbmVyYXRlZCB0YWdzIHRvIGhlYWRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpKS8vIFRyYW5zZm9ybSBtZXRhZGF0YVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhKSk7XG59XG5hc3luYyBmdW5jdGlvbiBjb250aW51ZVN0YXRpY1ByZXJlbmRlcihwcmVyZW5kZXJTdHJlYW0sIHsgaW5saW5lZERhdGFTdHJlYW0sIGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSwgaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQgfSkge1xuICAgIHJldHVybiBwcmVyZW5kZXJTdHJlYW0vLyBCdWZmZXIgZXZlcnl0aGluZyB0byBhdm9pZCBmbHVzaGluZyB0b28gZnJlcXVlbnRseVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpKS8vIEFkZCBidWlsZCBpZCBjb21tZW50IHRvIHN0YXJ0IG9mIHRoZSBIVE1MIGRvY3VtZW50IChpbiBleHBvcnQgbW9kZSlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlUHJlZmV0Y2hDb21tZW50U3RyZWFtKGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nLCBidWlsZElkKSkvLyBJbnNlcnQgZ2VuZXJhdGVkIHRhZ3MgdG8gaGVhZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVIZWFkSW5zZXJ0aW9uVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkSFRNTCkpLy8gVHJhbnNmb3JtIG1ldGFkYXRhXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEpKS8vIEluc2VydCB0aGUgaW5saW5lZCBkYXRhIChGbGlnaHQgZGF0YSwgZm9ybSBzdGF0ZSwgZXRjLikgc3RyZWFtIGludG8gdGhlIEhUTUxcbiAgICAucGlwZVRocm91Z2goY3JlYXRlRmxpZ2h0RGF0YUluamVjdGlvblRyYW5zZm9ybVN0cmVhbShpbmxpbmVkRGF0YVN0cmVhbSwgdHJ1ZSkpLy8gQ2xvc2UgdGFncyBzaG91bGQgYWx3YXlzIGJlIGRlZmVycmVkIHRvIHRoZSBlbmRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTW92ZVN1ZmZpeFN0cmVhbSgpKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlRHluYW1pY0hUTUxSZXN1bWUocmVuZGVyU3RyZWFtLCB7IGRlbGF5RGF0YVVudGlsRmlyc3RIdG1sQ2h1bmssIGlubGluZWREYXRhU3RyZWFtLCBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwsIGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEgfSkge1xuICAgIHJldHVybiByZW5kZXJTdHJlYW0vLyBCdWZmZXIgZXZlcnl0aGluZyB0byBhdm9pZCBmbHVzaGluZyB0b28gZnJlcXVlbnRseVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpKS8vIEluc2VydCBnZW5lcmF0ZWQgdGFncyB0byBoZWFkXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKSkvLyBUcmFuc2Zvcm0gbWV0YWRhdGFcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSkpLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVGbGlnaHREYXRhSW5qZWN0aW9uVHJhbnNmb3JtU3RyZWFtKGlubGluZWREYXRhU3RyZWFtLCBkZWxheURhdGFVbnRpbEZpcnN0SHRtbENodW5rKSkvLyBDbG9zZSB0YWdzIHNob3VsZCBhbHdheXMgYmUgZGVmZXJyZWQgdG8gdGhlIGVuZFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNb3ZlU3VmZml4U3RyZWFtKCkpO1xufVxuZnVuY3Rpb24gY3JlYXRlRG9jdW1lbnRDbG9zaW5nU3RyZWFtKCkge1xuICAgIHJldHVybiBzdHJlYW1Gcm9tU3RyaW5nKENMT1NFX1RBRyk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vZGUtd2ViLXN0cmVhbXMtaGVscGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/stream-utils/uint8array-helpers.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Find the starting index of Uint8Array `b` within Uint8Array `a`.\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 indexOfUint8Array: function() {\n return indexOfUint8Array;\n },\n isEquivalentUint8Arrays: function() {\n return isEquivalentUint8Arrays;\n },\n removeFromUint8Array: function() {\n return removeFromUint8Array;\n }\n});\nfunction indexOfUint8Array(a, b) {\n if (b.length === 0) return 0;\n if (a.length === 0 || b.length > a.length) return -1;\n // start iterating through `a`\n for(let i = 0; i <= a.length - b.length; i++){\n let completeMatch = true;\n // from index `i`, iterate through `b` and check for mismatch\n for(let j = 0; j < b.length; j++){\n // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`.\n if (a[i + j] !== b[j]) {\n completeMatch = false;\n break;\n }\n }\n if (completeMatch) {\n return i;\n }\n }\n return -1;\n}\nfunction isEquivalentUint8Arrays(a, b) {\n if (a.length !== b.length) return false;\n for(let i = 0; i < a.length; i++){\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\nfunction removeFromUint8Array(a, b) {\n const tagIndex = indexOfUint8Array(a, b);\n if (tagIndex === 0) return a.subarray(b.length);\n if (tagIndex > -1) {\n const removed = new Uint8Array(a.length - b.length);\n removed.set(a.slice(0, tagIndex));\n removed.set(a.slice(tagIndex + b.length), tagIndex);\n return removed;\n } else {\n return a;\n }\n}\n\n//# sourceMappingURL=uint8array-helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvdWludDhhcnJheS1oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTtBQUNBLHVCQUF1QixjQUFjO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsY0FBYztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvdWludDhhcnJheS1oZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmluZCB0aGUgc3RhcnRpbmcgaW5kZXggb2YgVWludDhBcnJheSBgYmAgd2l0aGluIFVpbnQ4QXJyYXkgYGFgLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaW5kZXhPZlVpbnQ4QXJyYXk6IG51bGwsXG4gICAgaXNFcXVpdmFsZW50VWludDhBcnJheXM6IG51bGwsXG4gICAgcmVtb3ZlRnJvbVVpbnQ4QXJyYXk6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaW5kZXhPZlVpbnQ4QXJyYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW5kZXhPZlVpbnQ4QXJyYXk7XG4gICAgfSxcbiAgICBpc0VxdWl2YWxlbnRVaW50OEFycmF5czogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0VxdWl2YWxlbnRVaW50OEFycmF5cztcbiAgICB9LFxuICAgIHJlbW92ZUZyb21VaW50OEFycmF5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZUZyb21VaW50OEFycmF5O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaW5kZXhPZlVpbnQ4QXJyYXkoYSwgYikge1xuICAgIGlmIChiLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG4gICAgaWYgKGEubGVuZ3RoID09PSAwIHx8IGIubGVuZ3RoID4gYS5sZW5ndGgpIHJldHVybiAtMTtcbiAgICAvLyBzdGFydCBpdGVyYXRpbmcgdGhyb3VnaCBgYWBcbiAgICBmb3IobGV0IGkgPSAwOyBpIDw9IGEubGVuZ3RoIC0gYi5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGxldCBjb21wbGV0ZU1hdGNoID0gdHJ1ZTtcbiAgICAgICAgLy8gZnJvbSBpbmRleCBgaWAsIGl0ZXJhdGUgdGhyb3VnaCBgYmAgYW5kIGNoZWNrIGZvciBtaXNtYXRjaFxuICAgICAgICBmb3IobGV0IGogPSAwOyBqIDwgYi5sZW5ndGg7IGorKyl7XG4gICAgICAgICAgICAvLyBpZiB0aGUgdmFsdWVzIGRvIG5vdCBtYXRjaCwgdGhlbiB0aGlzIGlzbid0IGEgY29tcGxldGUgbWF0Y2gsIGV4aXQgYGJgIGl0ZXJhdGlvbiBlYXJseSBhbmQgaXRlcmF0ZSB0byBuZXh0IGluZGV4IG9mIGBhYC5cbiAgICAgICAgICAgIGlmIChhW2kgKyBqXSAhPT0gYltqXSkge1xuICAgICAgICAgICAgICAgIGNvbXBsZXRlTWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY29tcGxldGVNYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xO1xufVxuZnVuY3Rpb24gaXNFcXVpdmFsZW50VWludDhBcnJheXMoYSwgYikge1xuICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gcmVtb3ZlRnJvbVVpbnQ4QXJyYXkoYSwgYikge1xuICAgIGNvbnN0IHRhZ0luZGV4ID0gaW5kZXhPZlVpbnQ4QXJyYXkoYSwgYik7XG4gICAgaWYgKHRhZ0luZGV4ID09PSAwKSByZXR1cm4gYS5zdWJhcnJheShiLmxlbmd0aCk7XG4gICAgaWYgKHRhZ0luZGV4ID4gLTEpIHtcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IG5ldyBVaW50OEFycmF5KGEubGVuZ3RoIC0gYi5sZW5ndGgpO1xuICAgICAgICByZW1vdmVkLnNldChhLnNsaWNlKDAsIHRhZ0luZGV4KSk7XG4gICAgICAgIHJlbW92ZWQuc2V0KGEuc2xpY2UodGFnSW5kZXggKyBiLmxlbmd0aCksIHRhZ0luZGV4KTtcbiAgICAgICAgcmV0dXJuIHJlbW92ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGE7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11aW50OGFycmF5LWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/web/error.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/error.js ***!
|
||
\****************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 PageSignatureError: function() {\n return PageSignatureError;\n },\n RemovedPageError: function() {\n return RemovedPageError;\n },\n RemovedUAError: function() {\n return RemovedUAError;\n }\n});\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}\n\n//# sourceMappingURL=error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLGtCQUFrQixNQUFNO0FBQ3hCLGlDQUFpQyxLQUFLO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIFBhZ2VTaWduYXR1cmVFcnJvcjogbnVsbCxcbiAgICBSZW1vdmVkUGFnZUVycm9yOiBudWxsLFxuICAgIFJlbW92ZWRVQUVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFBhZ2VTaWduYXR1cmVFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQYWdlU2lnbmF0dXJlRXJyb3I7XG4gICAgfSxcbiAgICBSZW1vdmVkUGFnZUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbW92ZWRQYWdlRXJyb3I7XG4gICAgfSxcbiAgICBSZW1vdmVkVUFFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZW1vdmVkVUFFcnJvcjtcbiAgICB9XG59KTtcbmNsYXNzIFBhZ2VTaWduYXR1cmVFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcih7IHBhZ2UgfSl7XG4gICAgICAgIHN1cGVyKGBUaGUgbWlkZGxld2FyZSBcIiR7cGFnZX1cIiBhY2NlcHRzIGFuIGFzeW5jIEFQSSBkaXJlY3RseSB3aXRoIHRoZSBmb3JtOlxuICBcbiAgZXhwb3J0IGZ1bmN0aW9uIG1pZGRsZXdhcmUocmVxdWVzdCwgZXZlbnQpIHtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLnJlZGlyZWN0KCcvbmV3LWxvY2F0aW9uJylcbiAgfVxuICBcbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLW5ldy1zaWduYXR1cmVcbiAgYCk7XG4gICAgfVxufVxuY2xhc3MgUmVtb3ZlZFBhZ2VFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcihgVGhlIHJlcXVlc3QucGFnZSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBcXGBVUkxQYXR0ZXJuXFxgLlxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVxdWVzdC1wYWdlXG4gIGApO1xuICAgIH1cbn1cbmNsYXNzIFJlbW92ZWRVQUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKGBUaGUgcmVxdWVzdC51YSBoYXMgYmVlbiByZW1vdmVkIGluIGZhdm91ciBvZiBcXGB1c2VyQWdlbnRcXGAgZnVuY3Rpb24uXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1wYXJzZS11c2VyLWFnZW50XG4gIGApO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/web/next-url.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/next-url.js ***!
|
||
\*******************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextURL\", ({\n enumerable: true,\n get: function() {\n return NextURL;\n }\n}));\nconst _detectdomainlocale = __webpack_require__(/*! ../../shared/lib/i18n/detect-domain-locale */ \"(rsc)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\");\nconst _formatnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/format-next-pathname-info */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\");\nconst _gethostname = __webpack_require__(/*! ../../shared/lib/get-hostname */ \"(rsc)/./node_modules/next/dist/shared/lib/get-hostname.js\");\nconst _getnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/get-next-pathname-info */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\");\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, _getnextpathnameinfo.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, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.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, _formatnextpathnameinfo.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 Object.defineProperty(new TypeError(`The NextURL configuration includes no locale \"${locale}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E597\",\n enumerable: false,\n configurable: true\n });\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}\n\n//# sourceMappingURL=next-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvbmV4dC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiw0QkFBNEIsbUJBQU8sQ0FBQywwSEFBNEM7QUFDaEYsZ0NBQWdDLG1CQUFPLENBQUMsb0pBQXlEO0FBQ2pHLHFCQUFxQixtQkFBTyxDQUFDLGdHQUErQjtBQUM1RCw2QkFBNkIsbUJBQU8sQ0FBQyw4SUFBc0Q7QUFDM0YscUdBQXFHLEVBQUU7QUFDdkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixTQUE4QztBQUN0RTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1R0FBdUcsT0FBTztBQUM5RztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGNBQWMsSUFBSSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNFQUFzRSxNQUFNO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL25leHQtdXJsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTmV4dFVSTFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dFVSTDtcbiAgICB9XG59KTtcbmNvbnN0IF9kZXRlY3Rkb21haW5sb2NhbGUgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlXCIpO1xuY29uc3QgX2Zvcm1hdG5leHRwYXRobmFtZWluZm8gPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mb1wiKTtcbmNvbnN0IF9nZXRob3N0bmFtZSA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2dldC1ob3N0bmFtZVwiKTtcbmNvbnN0IF9nZXRuZXh0cGF0aG5hbWVpbmZvID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1uZXh0LXBhdGhuYW1lLWluZm9cIik7XG5jb25zdCBSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUgPSAvKD8hXmh0dHBzPzpcXC9cXC8pKDEyNyg/OlxcLig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykpezN9fFxcWzo6MVxcXXxsb2NhbGhvc3QpLztcbmZ1bmN0aW9uIHBhcnNlVVJMKHVybCwgYmFzZSkge1xuICAgIHJldHVybiBuZXcgVVJMKFN0cmluZyh1cmwpLnJlcGxhY2UoUkVHRVhfTE9DQUxIT1NUX0hPU1ROQU1FLCAnbG9jYWxob3N0JyksIGJhc2UgJiYgU3RyaW5nKGJhc2UpLnJlcGxhY2UoUkVHRVhfTE9DQUxIT1NUX0hPU1ROQU1FLCAnbG9jYWxob3N0JykpO1xufVxuY29uc3QgSW50ZXJuYWwgPSBTeW1ib2woJ05leHRVUkxJbnRlcm5hbCcpO1xuY2xhc3MgTmV4dFVSTCB7XG4gICAgY29uc3RydWN0b3IoaW5wdXQsIGJhc2VPck9wdHMsIG9wdHMpe1xuICAgICAgICBsZXQgYmFzZTtcbiAgICAgICAgbGV0IG9wdGlvbnM7XG4gICAgICAgIGlmICh0eXBlb2YgYmFzZU9yT3B0cyA9PT0gJ29iamVjdCcgJiYgJ3BhdGhuYW1lJyBpbiBiYXNlT3JPcHRzIHx8IHR5cGVvZiBiYXNlT3JPcHRzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgYmFzZSA9IGJhc2VPck9wdHM7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0cyB8fCB7fTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRzIHx8IGJhc2VPck9wdHMgfHwge307XG4gICAgICAgIH1cbiAgICAgICAgdGhpc1tJbnRlcm5hbF0gPSB7XG4gICAgICAgICAgICB1cmw6IHBhcnNlVVJMKGlucHV0LCBiYXNlID8/IG9wdGlvbnMuYmFzZSksXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICAgICAgYmFzZVBhdGg6ICcnXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYW5hbHl6ZSgpO1xuICAgIH1cbiAgICBhbmFseXplKCkge1xuICAgICAgICB2YXIgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4sIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZywgX3RoaXNfSW50ZXJuYWxfZG9tYWluTG9jYWxlLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bjEsIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZzE7XG4gICAgICAgIGNvbnN0IGluZm8gPSAoMCwgX2dldG5leHRwYXRobmFtZWluZm8uZ2V0TmV4dFBhdGhuYW1lSW5mbykodGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lLCB7XG4gICAgICAgICAgICBuZXh0Q29uZmlnOiB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcsXG4gICAgICAgICAgICBwYXJzZURhdGE6ICFwcm9jZXNzLmVudi5fX05FWFRfTk9fTUlERExFV0FSRV9VUkxfTk9STUFMSVpFLFxuICAgICAgICAgICAgaTE4blByb3ZpZGVyOiB0aGlzW0ludGVybmFsXS5vcHRpb25zLmkxOG5Qcm92aWRlclxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaG9zdG5hbWUgPSAoMCwgX2dldGhvc3RuYW1lLmdldEhvc3RuYW1lKSh0aGlzW0ludGVybmFsXS51cmwsIHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaGVhZGVycyk7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmRvbWFpbkxvY2FsZSA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaTE4blByb3ZpZGVyID8gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5pMThuUHJvdmlkZXIuZGV0ZWN0RG9tYWluTG9jYWxlKGhvc3RuYW1lKSA6ICgwLCBfZGV0ZWN0ZG9tYWlubG9jYWxlLmRldGVjdERvbWFpbkxvY2FsZSkoKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZyA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biA9IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4uZG9tYWlucywgaG9zdG5hbWUpO1xuICAgICAgICBjb25zdCBkZWZhdWx0TG9jYWxlID0gKChfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUgPSB0aGlzW0ludGVybmFsXS5kb21haW5Mb2NhbGUpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUuZGVmYXVsdExvY2FsZSkgfHwgKChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcxID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuMSA9IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZzEuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuMS5kZWZhdWx0TG9jYWxlKTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lID0gaW5mby5wYXRobmFtZTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uZGVmYXVsdExvY2FsZSA9IGRlZmF1bHRMb2NhbGU7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoID0gaW5mby5iYXNlUGF0aCA/PyAnJztcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYnVpbGRJZCA9IGluZm8uYnVpbGRJZDtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0ubG9jYWxlID0gaW5mby5sb2NhbGUgPz8gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udHJhaWxpbmdTbGFzaCA9IGluZm8udHJhaWxpbmdTbGFzaDtcbiAgICB9XG4gICAgZm9ybWF0UGF0aG5hbWUoKSB7XG4gICAgICAgIHJldHVybiAoMCwgX2Zvcm1hdG5leHRwYXRobmFtZWluZm8uZm9ybWF0TmV4dFBhdGhuYW1lSW5mbykoe1xuICAgICAgICAgICAgYmFzZVBhdGg6IHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoLFxuICAgICAgICAgICAgYnVpbGRJZDogdGhpc1tJbnRlcm5hbF0uYnVpbGRJZCxcbiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6ICF0aGlzW0ludGVybmFsXS5vcHRpb25zLmZvcmNlTG9jYWxlID8gdGhpc1tJbnRlcm5hbF0uZGVmYXVsdExvY2FsZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxvY2FsZTogdGhpc1tJbnRlcm5hbF0ubG9jYWxlLFxuICAgICAgICAgICAgcGF0aG5hbWU6IHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSxcbiAgICAgICAgICAgIHRyYWlsaW5nU2xhc2g6IHRoaXNbSW50ZXJuYWxdLnRyYWlsaW5nU2xhc2hcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZvcm1hdFNlYXJjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2g7XG4gICAgfVxuICAgIGdldCBidWlsZElkKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uYnVpbGRJZDtcbiAgICB9XG4gICAgc2V0IGJ1aWxkSWQoYnVpbGRJZCkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS5idWlsZElkID0gYnVpbGRJZDtcbiAgICB9XG4gICAgZ2V0IGxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmxvY2FsZSA/PyAnJztcbiAgICB9XG4gICAgc2V0IGxvY2FsZShsb2NhbGUpIHtcbiAgICAgICAgdmFyIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWc7XG4gICAgICAgIGlmICghdGhpc1tJbnRlcm5hbF0ubG9jYWxlIHx8ICEoKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZyA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biA9IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4ubG9jYWxlcy5pbmNsdWRlcyhsb2NhbGUpKSkge1xuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBUeXBlRXJyb3IoYFRoZSBOZXh0VVJMIGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgbm8gbG9jYWxlIFwiJHtsb2NhbGV9XCJgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTU5N1wiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpc1tJbnRlcm5hbF0ubG9jYWxlID0gbG9jYWxlO1xuICAgIH1cbiAgICBnZXQgZGVmYXVsdExvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmRlZmF1bHRMb2NhbGU7XG4gICAgfVxuICAgIGdldCBkb21haW5Mb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5kb21haW5Mb2NhbGU7XG4gICAgfVxuICAgIGdldCBzZWFyY2hQYXJhbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBnZXQgaG9zdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0O1xuICAgIH1cbiAgICBzZXQgaG9zdCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaG9zdCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaG9zdG5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuaG9zdG5hbWU7XG4gICAgfVxuICAgIHNldCBob3N0bmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaG9zdG5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHBvcnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucG9ydDtcbiAgICB9XG4gICAgc2V0IHBvcnQodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBvcnQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHByb3RvY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnByb3RvY29sO1xuICAgIH1cbiAgICBzZXQgcHJvdG9jb2wodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnByb3RvY29sID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBocmVmKCkge1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHRoaXMuZm9ybWF0UGF0aG5hbWUoKTtcbiAgICAgICAgY29uc3Qgc2VhcmNoID0gdGhpcy5mb3JtYXRTZWFyY2goKTtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMucHJvdG9jb2x9Ly8ke3RoaXMuaG9zdH0ke3BhdGhuYW1lfSR7c2VhcmNofSR7dGhpcy5oYXNofWA7XG4gICAgfVxuICAgIHNldCBocmVmKHVybCkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwgPSBwYXJzZVVSTCh1cmwpO1xuICAgICAgICB0aGlzLmFuYWx5emUoKTtcbiAgICB9XG4gICAgZ2V0IG9yaWdpbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5vcmlnaW47XG4gICAgfVxuICAgIGdldCBwYXRobmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZTtcbiAgICB9XG4gICAgc2V0IHBhdGhuYW1lKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaGFzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5oYXNoO1xuICAgIH1cbiAgICBzZXQgaGFzaCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaGFzaCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgc2VhcmNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaDtcbiAgICB9XG4gICAgc2V0IHNlYXJjaCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwYXNzd29yZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wYXNzd29yZDtcbiAgICB9XG4gICAgc2V0IHBhc3N3b3JkKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXNzd29yZCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgdXNlcm5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwudXNlcm5hbWU7XG4gICAgfVxuICAgIHNldCB1c2VybmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwudXNlcm5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGJhc2VQYXRoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGg7XG4gICAgfVxuICAgIHNldCBiYXNlUGF0aCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS5iYXNlUGF0aCA9IHZhbHVlLnN0YXJ0c1dpdGgoJy8nKSA/IHZhbHVlIDogYC8ke3ZhbHVlfWA7XG4gICAgfVxuICAgIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ocmVmO1xuICAgIH1cbiAgICB0b0pTT04oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhyZWY7XG4gICAgfVxuICAgIFtTeW1ib2wuZm9yKCdlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b20nKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBocmVmOiB0aGlzLmhyZWYsXG4gICAgICAgICAgICBvcmlnaW46IHRoaXMub3JpZ2luLFxuICAgICAgICAgICAgcHJvdG9jb2w6IHRoaXMucHJvdG9jb2wsXG4gICAgICAgICAgICB1c2VybmFtZTogdGhpcy51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB0aGlzLnBhc3N3b3JkLFxuICAgICAgICAgICAgaG9zdDogdGhpcy5ob3N0LFxuICAgICAgICAgICAgaG9zdG5hbWU6IHRoaXMuaG9zdG5hbWUsXG4gICAgICAgICAgICBwb3J0OiB0aGlzLnBvcnQsXG4gICAgICAgICAgICBwYXRobmFtZTogdGhpcy5wYXRobmFtZSxcbiAgICAgICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2gsXG4gICAgICAgICAgICBzZWFyY2hQYXJhbXM6IHRoaXMuc2VhcmNoUGFyYW1zLFxuICAgICAgICAgICAgaGFzaDogdGhpcy5oYXNoXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNsb25lKCkge1xuICAgICAgICByZXR1cm4gbmV3IE5leHRVUkwoU3RyaW5nKHRoaXMpLCB0aGlzW0ludGVybmFsXS5vcHRpb25zKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5leHQtdXJsLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/next-url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/headers.js":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/spec-extension/adapters/headers.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 HeadersAdapter: function() {\n return HeadersAdapter;\n },\n ReadonlyHeadersError: function() {\n return ReadonlyHeadersError;\n }\n});\nconst _reflect = __webpack_require__(/*! ./reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nclass 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.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.ReflectAdapter.get(target, original, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return _reflect.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.ReflectAdapter.set(target, original ?? prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'symbol') return _reflect.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.ReflectAdapter.has(target, original);\n },\n deleteProperty (target, prop) {\n if (typeof prop === 'symbol') return _reflect.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.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.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}\n\n//# sourceMappingURL=headers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQywrRkFBVztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9oZWFkZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgSGVhZGVyc0FkYXB0ZXI6IG51bGwsXG4gICAgUmVhZG9ubHlIZWFkZXJzRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgSGVhZGVyc0FkYXB0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSGVhZGVyc0FkYXB0ZXI7XG4gICAgfSxcbiAgICBSZWFkb25seUhlYWRlcnNFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZWFkb25seUhlYWRlcnNFcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWZsZWN0ID0gcmVxdWlyZShcIi4vcmVmbGVjdFwiKTtcbmNsYXNzIFJlYWRvbmx5SGVhZGVyc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKCdIZWFkZXJzIGNhbm5vdCBiZSBtb2RpZmllZC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvaGVhZGVycycpO1xuICAgIH1cbiAgICBzdGF0aWMgY2FsbGFibGUoKSB7XG4gICAgICAgIHRocm93IG5ldyBSZWFkb25seUhlYWRlcnNFcnJvcigpO1xuICAgIH1cbn1cbmNsYXNzIEhlYWRlcnNBZGFwdGVyIGV4dGVuZHMgSGVhZGVycyB7XG4gICAgY29uc3RydWN0b3IoaGVhZGVycyl7XG4gICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgb3ZlcnJpZGRlbiB0aGUgbWV0aG9kcyB0aGF0IHdvdWxkIGJlIGNhbGxlZCwgc28gd2UncmUganVzdFxuICAgICAgICAvLyBjYWxsaW5nIHRoZSBzdXBlciBjb25zdHJ1Y3RvciB0byBlbnN1cmUgdGhhdCB0aGUgaW5zdGFuY2VvZiBjaGVjayB3b3Jrcy5cbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gbmV3IFByb3h5KGhlYWRlcnMsIHtcbiAgICAgICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgICAgIC8vIEJlY2F1c2UgdGhpcyBpcyBqdXN0IGFuIG9iamVjdCwgd2UgZXhwZWN0IHRoYXQgYWxsIFwiZ2V0XCIgb3BlcmF0aW9uc1xuICAgICAgICAgICAgICAgIC8vIGFyZSBmb3IgcHJvcGVydGllcy4gSWYgaXQncyBhIFwiZ2V0XCIgZm9yIGEgc3ltYm9sLCB3ZSdsbCBqdXN0IHJldHVyblxuICAgICAgICAgICAgICAgIC8vIHRoZSBzeW1ib2wuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3ltYm9sJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBsb3dlcmNhc2VkID0gcHJvcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIC8vIExldCdzIGZpbmQgdGhlIG9yaWdpbmFsIGNhc2luZyBvZiB0aGUga2V5LiBUaGlzIGFzc3VtZXMgdGhhdCB0aGVyZSBpc1xuICAgICAgICAgICAgICAgIC8vIG5vIG1peGVkIGNhc2Uga2V5cyAoZS5nLiBcIkNvbnRlbnQtVHlwZVwiIGFuZCBcImNvbnRlbnQtdHlwZVwiKSBpbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIG9iamVjdC5cbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKG8pPT5vLnRvTG93ZXJDYXNlKCkgPT09IGxvd2VyY2FzZWQpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZG9lc24ndCBleGlzdCwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9yaWdpbmFsID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCByZXR1cm4gdGhlIHZhbHVlLlxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBvcmlnaW5hbCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzeW1ib2wnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBsb3dlcmNhc2VkID0gcHJvcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIC8vIExldCdzIGZpbmQgdGhlIG9yaWdpbmFsIGNhc2luZyBvZiB0aGUga2V5LiBUaGlzIGFzc3VtZXMgdGhhdCB0aGVyZSBpc1xuICAgICAgICAgICAgICAgIC8vIG5vIG1peGVkIGNhc2Uga2V5cyAoZS5nLiBcIkNvbnRlbnQtVHlwZVwiIGFuZCBcImNvbnRlbnQtdHlwZVwiKSBpbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIG9iamVjdC5cbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKG8pPT5vLnRvTG93ZXJDYXNlKCkgPT09IGxvd2VyY2FzZWQpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZG9lc24ndCBleGlzdCwgdXNlIHRoZSBwcm9wIGFzIHRoZSBrZXkuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIG9yaWdpbmFsID8/IHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzeW1ib2wnKSByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbG93ZXJjYXNlZCA9IHByb3AudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAvLyBMZXQncyBmaW5kIHRoZSBvcmlnaW5hbCBjYXNpbmcgb2YgdGhlIGtleS4gVGhpcyBhc3N1bWVzIHRoYXQgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAvLyBubyBtaXhlZCBjYXNlIGtleXMgKGUuZy4gXCJDb250ZW50LVR5cGVcIiBhbmQgXCJjb250ZW50LXR5cGVcIikgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gaGVhZGVycyBvYmplY3QuXG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBPYmplY3Qua2V5cyhoZWFkZXJzKS5maW5kKChvKT0+by50b0xvd2VyQ2FzZSgpID09PSBsb3dlcmNhc2VkKTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgY2FzaW5nIGRvZXNuJ3QgZXhpc3QsIHJldHVybiBmYWxzZS5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9yaWdpbmFsID09PSAndW5kZWZpbmVkJykgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCByZXR1cm4gdHJ1ZS5cbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgb3JpZ2luYWwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlbGV0ZVByb3BlcnR5ICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzeW1ib2wnKSByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb3dlcmNhc2VkID0gcHJvcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIC8vIExldCdzIGZpbmQgdGhlIG9yaWdpbmFsIGNhc2luZyBvZiB0aGUga2V5LiBUaGlzIGFzc3VtZXMgdGhhdCB0aGVyZSBpc1xuICAgICAgICAgICAgICAgIC8vIG5vIG1peGVkIGNhc2Uga2V5cyAoZS5nLiBcIkNvbnRlbnQtVHlwZVwiIGFuZCBcImNvbnRlbnQtdHlwZVwiKSBpbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIG9iamVjdC5cbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKG8pPT5vLnRvTG93ZXJDYXNlKCkgPT09IGxvd2VyY2FzZWQpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZG9lc24ndCBleGlzdCwgcmV0dXJuIHRydWUuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCBkZWxldGUgdGhlIHByb3BlcnR5LlxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIG9yaWdpbmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBTZWFscyBhIEhlYWRlcnMgaW5zdGFuY2UgdG8gcHJldmVudCBtb2RpZmljYXRpb24gYnkgdGhyb3dpbmcgYW4gZXJyb3Igd2hlblxuICAgKiBhbnkgbXV0YXRpbmcgbWV0aG9kIGlzIGNhbGxlZC5cbiAgICovIHN0YXRpYyBzZWFsKGhlYWRlcnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm94eShoZWFkZXJzLCB7XG4gICAgICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2FwcGVuZCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NldCc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVhZG9ubHlIZWFkZXJzRXJyb3IuY2FsbGFibGU7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBNZXJnZXMgYSBoZWFkZXIgdmFsdWUgaW50byBhIHN0cmluZy4gVGhpcyBzdG9yZXMgbXVsdGlwbGUgdmFsdWVzIGFzIGFuXG4gICAqIGFycmF5LCBzbyB3ZSBuZWVkIHRvIG1lcmdlIHRoZW0gaW50byBhIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIGEgaGVhZGVyIHZhbHVlXG4gICAqIEByZXR1cm5zIGEgbWVyZ2VkIGhlYWRlciB2YWx1ZSAoYSBzdHJpbmcpXG4gICAqLyBtZXJnZSh2YWx1ZSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZS5qb2luKCcsICcpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIC8qKlxuICAgKiBDcmVhdGVzIGEgSGVhZGVycyBpbnN0YW5jZSBmcm9tIGEgcGxhaW4gb2JqZWN0IG9yIGEgSGVhZGVycyBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGhlYWRlcnMgYSBwbGFpbiBvYmplY3Qgb3IgYSBIZWFkZXJzIGluc3RhbmNlXG4gICAqIEByZXR1cm5zIGEgaGVhZGVycyBpbnN0YW5jZVxuICAgKi8gc3RhdGljIGZyb20oaGVhZGVycykge1xuICAgICAgICBpZiAoaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpIHJldHVybiBoZWFkZXJzO1xuICAgICAgICByZXR1cm4gbmV3IEhlYWRlcnNBZGFwdGVyKGhlYWRlcnMpO1xuICAgIH1cbiAgICBhcHBlbmQobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmhlYWRlcnNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbbmFtZV0gPSBbXG4gICAgICAgICAgICAgICAgZXhpc3RpbmcsXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZykpIHtcbiAgICAgICAgICAgIGV4aXN0aW5nLnB1c2godmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVsZXRlKG5hbWUpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuaGVhZGVyc1tuYW1lXTtcbiAgICB9XG4gICAgZ2V0KG5hbWUpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmhlYWRlcnNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSByZXR1cm4gdGhpcy5tZXJnZSh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBoYXMobmFtZSkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuaGVhZGVyc1tuYW1lXSAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgfVxuICAgIHNldChuYW1lLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLmhlYWRlcnNbbmFtZV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgZm9yRWFjaChjYWxsYmFja2ZuLCB0aGlzQXJnKSB7XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiB0aGlzLmVudHJpZXMoKSl7XG4gICAgICAgICAgICBjYWxsYmFja2ZuLmNhbGwodGhpc0FyZywgdmFsdWUsIG5hbWUsIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgICplbnRyaWVzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpKXtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIC8vIFdlIGFzc2VydCBoZXJlIHRoYXQgdGhpcyBpcyBhIHN0cmluZyBiZWNhdXNlIHdlIGdvdCBpdCBmcm9tIHRoZVxuICAgICAgICAgICAgLy8gT2JqZWN0LmtleXMoKSBjYWxsIGFib3ZlLlxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChuYW1lKTtcbiAgICAgICAgICAgIHlpZWxkIFtcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgfVxuICAgICprZXlzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpKXtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHlpZWxkIG5hbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnZhbHVlcygpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5oZWFkZXJzKSl7XG4gICAgICAgICAgICAvLyBXZSBhc3NlcnQgaGVyZSB0aGF0IHRoaXMgaXMgYSBzdHJpbmcgYmVjYXVzZSB3ZSBnb3QgaXQgZnJvbSB0aGVcbiAgICAgICAgICAgIC8vIE9iamVjdC5rZXlzKCkgY2FsbCBhYm92ZS5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRyaWVzKCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWFkZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/headers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/spec-extension/adapters/next-request.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 NextRequestAdapter: function() {\n return NextRequestAdapter;\n },\n ResponseAborted: function() {\n return ResponseAborted;\n },\n ResponseAbortedName: function() {\n return ResponseAbortedName;\n },\n createAbortController: function() {\n return createAbortController;\n },\n signalFromNodeResponse: function() {\n return signalFromNodeResponse;\n }\n});\nconst _requestmeta = __webpack_require__(/*! ../../../request-meta */ \"(rsc)/./node_modules/next/dist/server/request-meta.js\");\nconst _utils = __webpack_require__(/*! ../../utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _request = __webpack_require__(/*! ../request */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _helpers = __webpack_require__(/*! ../../../base-http/helpers */ \"(rsc)/./node_modules/next/dist/server/base-http/helpers.js\");\nconst ResponseAbortedName = 'ResponseAborted';\nclass ResponseAborted extends Error {\n constructor(...args){\n super(...args), this.name = ResponseAbortedName;\n }\n}\nfunction 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}\nfunction 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 if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n false) {} else if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n true && (0, _helpers.isNodeNextRequest)(request)) {\n return NextRequestAdapter.fromNodeNextRequest(request, signal);\n } else {\n throw Object.defineProperty(new Error('Invariant: Unsupported NextRequest type'), \"__NEXT_ERROR_CODE\", {\n value: \"E345\",\n enumerable: false,\n configurable: true\n });\n }\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, _requestmeta.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.NextRequest(url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...signal.aborted ? {} : {\n body\n }\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.NextRequest(request.url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal: request.request.signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...request.request.signal.aborted ? {} : {\n body\n }\n });\n }\n}\n\n//# sourceMappingURL=next-request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQixtQkFBTyxDQUFDLG9GQUF1QjtBQUNwRCxlQUFlLG1CQUFPLENBQUMsdUVBQWE7QUFDcEMsaUJBQWlCLG1CQUFPLENBQUMsdUZBQVk7QUFDckMsaUJBQWlCLG1CQUFPLENBQUMsOEZBQTRCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxQkFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0EsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBOEUsRUFBRSxFQUUvRSxDQUFDO0FBQ1Y7QUFDQSxRQUFRLEtBQW1DO0FBQzNDO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTmV4dFJlcXVlc3RBZGFwdGVyOiBudWxsLFxuICAgIFJlc3BvbnNlQWJvcnRlZDogbnVsbCxcbiAgICBSZXNwb25zZUFib3J0ZWROYW1lOiBudWxsLFxuICAgIGNyZWF0ZUFib3J0Q29udHJvbGxlcjogbnVsbCxcbiAgICBzaWduYWxGcm9tTm9kZVJlc3BvbnNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5leHRSZXF1ZXN0QWRhcHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0UmVxdWVzdEFkYXB0ZXI7XG4gICAgfSxcbiAgICBSZXNwb25zZUFib3J0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzcG9uc2VBYm9ydGVkO1xuICAgIH0sXG4gICAgUmVzcG9uc2VBYm9ydGVkTmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZUFib3J0ZWROYW1lO1xuICAgIH0sXG4gICAgY3JlYXRlQWJvcnRDb250cm9sbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUFib3J0Q29udHJvbGxlcjtcbiAgICB9LFxuICAgIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2lnbmFsRnJvbU5vZGVSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9yZXF1ZXN0bWV0YSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9yZXF1ZXN0LW1ldGFcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHNcIik7XG5jb25zdCBfcmVxdWVzdCA9IHJlcXVpcmUoXCIuLi9yZXF1ZXN0XCIpO1xuY29uc3QgX2hlbHBlcnMgPSByZXF1aXJlKFwiLi4vLi4vLi4vYmFzZS1odHRwL2hlbHBlcnNcIik7XG5jb25zdCBSZXNwb25zZUFib3J0ZWROYW1lID0gJ1Jlc3BvbnNlQWJvcnRlZCc7XG5jbGFzcyBSZXNwb25zZUFib3J0ZWQgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoLi4uYXJncyl7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3MpLCB0aGlzLm5hbWUgPSBSZXNwb25zZUFib3J0ZWROYW1lO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZUFib3J0Q29udHJvbGxlcihyZXNwb25zZSkge1xuICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgLy8gSWYgYGZpbmlzaGAgZmlyZXMgZmlyc3QsIHRoZW4gYHJlcy5lbmQoKWAgaGFzIGJlZW4gY2FsbGVkIGFuZCB0aGUgY2xvc2UgaXNcbiAgICAvLyBqdXN0IHVzIGZpbmlzaGluZyB0aGUgc3RyZWFtIG9uIG91ciBzaWRlLiBJZiBgY2xvc2VgIGZpcmVzIGZpcnN0LCB0aGVuIHdlXG4gICAgLy8ga25vdyB0aGUgY2xpZW50IGRpc2Nvbm5lY3RlZCBiZWZvcmUgd2UgZmluaXNoZWQuXG4gICAgcmVzcG9uc2Uub25jZSgnY2xvc2UnLCAoKT0+e1xuICAgICAgICBpZiAocmVzcG9uc2Uud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICBjb250cm9sbGVyLmFib3J0KG5ldyBSZXNwb25zZUFib3J0ZWQoKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbnRyb2xsZXI7XG59XG5mdW5jdGlvbiBzaWduYWxGcm9tTm9kZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgY29uc3QgeyBlcnJvcmVkLCBkZXN0cm95ZWQgfSA9IHJlc3BvbnNlO1xuICAgIGlmIChlcnJvcmVkIHx8IGRlc3Ryb3llZCkge1xuICAgICAgICByZXR1cm4gQWJvcnRTaWduYWwuYWJvcnQoZXJyb3JlZCA/PyBuZXcgUmVzcG9uc2VBYm9ydGVkKCkpO1xuICAgIH1cbiAgICBjb25zdCB7IHNpZ25hbCB9ID0gY3JlYXRlQWJvcnRDb250cm9sbGVyKHJlc3BvbnNlKTtcbiAgICByZXR1cm4gc2lnbmFsO1xufVxuY2xhc3MgTmV4dFJlcXVlc3RBZGFwdGVyIHtcbiAgICBzdGF0aWMgZnJvbUJhc2VOZXh0UmVxdWVzdChyZXF1ZXN0LCBzaWduYWwpIHtcbiAgICAgICAgaWYgKC8vIFRoZSB0eXBlIGNoZWNrIGhlcmUgZW5zdXJlcyB0aGF0IGByZXFgIGlzIGNvcnJlY3RseSB0eXBlZCwgYW5kIHRoZVxuICAgICAgICAvLyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjaGVjayBwcm92aWRlcyBkZWFkIGNvZGUgZWxpbWluYXRpb24uXG4gICAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnICYmICgwLCBfaGVscGVycy5pc1dlYk5leHRSZXF1ZXN0KShyZXF1ZXN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0QWRhcHRlci5mcm9tV2ViTmV4dFJlcXVlc3QocmVxdWVzdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoLy8gVGhlIHR5cGUgY2hlY2sgaGVyZSBlbnN1cmVzIHRoYXQgYHJlcWAgaXMgY29ycmVjdGx5IHR5cGVkLCBhbmQgdGhlXG4gICAgICAgIC8vIGVudmlyb25tZW50IHZhcmlhYmxlIGNoZWNrIHByb3ZpZGVzIGRlYWQgY29kZSBlbGltaW5hdGlvbi5cbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgKDAsIF9oZWxwZXJzLmlzTm9kZU5leHRSZXF1ZXN0KShyZXF1ZXN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0QWRhcHRlci5mcm9tTm9kZU5leHRSZXF1ZXN0KHJlcXVlc3QsIHNpZ25hbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IFVuc3VwcG9ydGVkIE5leHRSZXF1ZXN0IHR5cGUnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTM0NVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGZyb21Ob2RlTmV4dFJlcXVlc3QocmVxdWVzdCwgc2lnbmFsKSB7XG4gICAgICAgIC8vIEhFQUQgYW5kIEdFVCByZXF1ZXN0cyBjYW4gbm90IGhhdmUgYSBib2R5LlxuICAgICAgICBsZXQgYm9keSA9IG51bGw7XG4gICAgICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxdWVzdC5tZXRob2QgIT09ICdIRUFEJyAmJiByZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0aGlzIGlzIGhhbmRsZWQgYnkgdW5kaWNpLCB3aGVuIHN0cmVhbXMvd2ViIGxhbmQgdXNlIGl0IGluc3RlYWRcbiAgICAgICAgICAgIGJvZHkgPSByZXF1ZXN0LmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgaWYgKHJlcXVlc3QudXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBHcmFiIHRoZSBmdWxsIFVSTCBmcm9tIHRoZSByZXF1ZXN0IG1ldGFkYXRhLlxuICAgICAgICAgICAgY29uc3QgYmFzZSA9ICgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcXVlc3QsICdpbml0VVJMJyk7XG4gICAgICAgICAgICBpZiAoIWJhc2UgfHwgIWJhc2Uuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgVVJMIGNvbnN0cnVjdGlvbiByZWxpZXMgb24gdGhlIGZhY3QgdGhhdCB0aGUgVVJMIHByb3ZpZGVkXG4gICAgICAgICAgICAgICAgLy8gaXMgYWJzb2x1dGUsIHdlIG5lZWQgdG8gcHJvdmlkZSBhIGJhc2UgVVJMLiBXZSBjYW4ndCB1c2UgdGhlIHJlcXVlc3RcbiAgICAgICAgICAgICAgICAvLyBVUkwgYmVjYXVzZSBpdCdzIHJlbGF0aXZlLCBzbyB3ZSB1c2UgYSBkdW1teSBVUkwgaW5zdGVhZC5cbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsLCAnaHR0cDovL24nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCwgYmFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBfcmVxdWVzdC5OZXh0UmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLmZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgICAgICAgIGR1cGxleDogJ2hhbGYnLFxuICAgICAgICAgICAgc2lnbmFsLFxuICAgICAgICAgICAgLy8gZ2VvXG4gICAgICAgICAgICAvLyBpcFxuICAgICAgICAgICAgLy8gbmV4dENvbmZpZ1xuICAgICAgICAgICAgLy8gYm9keSBjYW4gbm90IGJlIHBhc3NlZCBpZiByZXF1ZXN0IHdhcyBhYm9ydGVkXG4gICAgICAgICAgICAvLyBvciB3ZSBnZXQgYSBSZXF1ZXN0IGJvZHkgd2FzIGRpc3R1cmJlZCBlcnJvclxuICAgICAgICAgICAgLi4uc2lnbmFsLmFib3J0ZWQgPyB7fSA6IHtcbiAgICAgICAgICAgICAgICBib2R5XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbVdlYk5leHRSZXF1ZXN0KHJlcXVlc3QpIHtcbiAgICAgICAgLy8gSEVBRCBhbmQgR0VUIHJlcXVlc3RzIGNhbiBub3QgaGF2ZSBhIGJvZHkuXG4gICAgICAgIGxldCBib2R5ID0gbnVsbDtcbiAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnKSB7XG4gICAgICAgICAgICBib2R5ID0gcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgX3JlcXVlc3QuTmV4dFJlcXVlc3QocmVxdWVzdC51cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLmZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgICAgICAgIGR1cGxleDogJ2hhbGYnLFxuICAgICAgICAgICAgc2lnbmFsOiByZXF1ZXN0LnJlcXVlc3Quc2lnbmFsLFxuICAgICAgICAgICAgLy8gZ2VvXG4gICAgICAgICAgICAvLyBpcFxuICAgICAgICAgICAgLy8gbmV4dENvbmZpZ1xuICAgICAgICAgICAgLy8gYm9keSBjYW4gbm90IGJlIHBhc3NlZCBpZiByZXF1ZXN0IHdhcyBhYm9ydGVkXG4gICAgICAgICAgICAvLyBvciB3ZSBnZXQgYSBSZXF1ZXN0IGJvZHkgd2FzIGRpc3R1cmJlZCBlcnJvclxuICAgICAgICAgICAgLi4ucmVxdWVzdC5yZXF1ZXN0LnNpZ25hbC5hYm9ydGVkID8ge30gOiB7XG4gICAgICAgICAgICAgICAgYm9keVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5leHQtcmVxdWVzdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js ***!
|
||
\******************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ReflectAdapter\", ({\n enumerable: true,\n get: function() {\n return ReflectAdapter;\n }\n}));\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}\n\n//# sourceMappingURL=reflect.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlZmxlY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWZsZWN0QWRhcHRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXI7XG4gICAgfVxufSk7XG5jbGFzcyBSZWZsZWN0QWRhcHRlciB7XG4gICAgc3RhdGljIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5iaW5kKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBzdGF0aWMgc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgfVxuICAgIHN0YXRpYyBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgIH1cbiAgICBzdGF0aWMgZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KHRhcmdldCwgcHJvcCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWZsZWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/spec-extension/cookies.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 RequestCookies: function() {\n return _cookies.RequestCookies;\n },\n ResponseCookies: function() {\n return _cookies.ResponseCookies;\n },\n stringifyCookie: function() {\n return _cookies.stringifyCookie;\n }\n});\nconst _cookies = __webpack_require__(/*! next/dist/compiled/@edge-runtime/cookies */ \"(rsc)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\");\n\n//# sourceMappingURL=cookies.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vY29va2llcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLHdIQUEwQzs7QUFFbkUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9jb29raWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUmVxdWVzdENvb2tpZXM6IG51bGwsXG4gICAgUmVzcG9uc2VDb29raWVzOiBudWxsLFxuICAgIHN0cmluZ2lmeUNvb2tpZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBSZXF1ZXN0Q29va2llczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29va2llcy5SZXF1ZXN0Q29va2llcztcbiAgICB9LFxuICAgIFJlc3BvbnNlQ29va2llczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29va2llcy5SZXNwb25zZUNvb2tpZXM7XG4gICAgfSxcbiAgICBzdHJpbmdpZnlDb29raWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2Nvb2tpZXMuc3RyaW5naWZ5Q29va2llO1xuICAgIH1cbn0pO1xuY29uc3QgX2Nvb2tpZXMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llc1wiKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29va2llcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/spec-extension/request.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 INTERNALS: function() {\n return INTERNALS;\n },\n NextRequest: function() {\n return NextRequest;\n }\n});\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"(rsc)/./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _error = __webpack_require__(/*! ../error */ \"(rsc)/./node_modules/next/dist/server/web/error.js\");\nconst _cookies = __webpack_require__(/*! ./cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\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.validateURL)(url);\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (true) {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half';\n }\n }\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _nexturl.NextURL(url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies.RequestCookies(this.headers),\n nextUrl,\n url: false ? 0 : nextUrl.toString()\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\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 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.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.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVxdWVzdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQywwRUFBYTtBQUN0QyxlQUFlLG1CQUFPLENBQUMsb0VBQVU7QUFDakMsZUFBZSxtQkFBTyxDQUFDLG9FQUFVO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLHNGQUFXO0FBQ3BDO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxJQUFtQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLE1BQThDLEdBQUcsQ0FBRztBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVxdWVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIElOVEVSTkFMUzogbnVsbCxcbiAgICBOZXh0UmVxdWVzdDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBJTlRFUk5BTFM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSU5URVJOQUxTO1xuICAgIH0sXG4gICAgTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3Q7XG4gICAgfVxufSk7XG5jb25zdCBfbmV4dHVybCA9IHJlcXVpcmUoXCIuLi9uZXh0LXVybFwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi91dGlsc1wiKTtcbmNvbnN0IF9lcnJvciA9IHJlcXVpcmUoXCIuLi9lcnJvclwiKTtcbmNvbnN0IF9jb29raWVzID0gcmVxdWlyZShcIi4vY29va2llc1wiKTtcbmNvbnN0IElOVEVSTkFMUyA9IFN5bWJvbCgnaW50ZXJuYWwgcmVxdWVzdCcpO1xuY2xhc3MgTmV4dFJlcXVlc3QgZXh0ZW5kcyBSZXF1ZXN0IHtcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCwgaW5pdCA9IHt9KXtcbiAgICAgICAgY29uc3QgdXJsID0gdHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJyAmJiAndXJsJyBpbiBpbnB1dCA/IGlucHV0LnVybCA6IFN0cmluZyhpbnB1dCk7XG4gICAgICAgICgwLCBfdXRpbHMudmFsaWRhdGVVUkwpKHVybCk7XG4gICAgICAgIC8vIG5vZGUgUmVxdWVzdCBpbnN0YW5jZSByZXF1aXJlcyBkdXBsZXggb3B0aW9uIHdoZW4gYSBib2R5XG4gICAgICAgIC8vIGlzIHByZXNlbnQgb3IgaXQgZXJyb3JzLCB3ZSBkb24ndCBoYW5kbGUgdGhpcyBmb3JcbiAgICAgICAgLy8gUmVxdWVzdCBiZWluZyBwYXNzZWQgaW4gc2luY2UgaXQgd291bGQgaGF2ZSBhbHJlYWR5XG4gICAgICAgIC8vIGVycm9yZWQgaWYgdGhpcyB3YXNuJ3QgY29uZmlndXJlZFxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScpIHtcbiAgICAgICAgICAgIGlmIChpbml0LmJvZHkgJiYgaW5pdC5kdXBsZXggIT09ICdoYWxmJykge1xuICAgICAgICAgICAgICAgIGluaXQuZHVwbGV4ID0gJ2hhbGYnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QpIHN1cGVyKGlucHV0LCBpbml0KTtcbiAgICAgICAgZWxzZSBzdXBlcih1cmwsIGluaXQpO1xuICAgICAgICBjb25zdCBuZXh0VXJsID0gbmV3IF9uZXh0dXJsLk5leHRVUkwodXJsLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLnRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMpKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBuZXh0Q29uZmlnOiBpbml0Lm5leHRDb25maWdcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXNbSU5URVJOQUxTXSA9IHtcbiAgICAgICAgICAgIGNvb2tpZXM6IG5ldyBfY29va2llcy5SZXF1ZXN0Q29va2llcyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgbmV4dFVybCxcbiAgICAgICAgICAgIHVybDogcHJvY2Vzcy5lbnYuX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSA/IHVybCA6IG5leHRVcmwudG9TdHJpbmcoKVxuICAgICAgICB9O1xuICAgIH1cbiAgICBbU3ltYm9sLmZvcignZWRnZS1ydW50aW1lLmluc3BlY3QuY3VzdG9tJyldKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29va2llczogdGhpcy5jb29raWVzLFxuICAgICAgICAgICAgbmV4dFVybDogdGhpcy5uZXh0VXJsLFxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICAgIC8vIHJlc3Qgb2YgcHJvcHMgY29tZSBmcm9tIFJlcXVlc3RcbiAgICAgICAgICAgIGJvZHlVc2VkOiB0aGlzLmJvZHlVc2VkLFxuICAgICAgICAgICAgY2FjaGU6IHRoaXMuY2FjaGUsXG4gICAgICAgICAgICBjcmVkZW50aWFsczogdGhpcy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLmRlc3RpbmF0aW9uLFxuICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBpbnRlZ3JpdHk6IHRoaXMuaW50ZWdyaXR5LFxuICAgICAgICAgICAga2VlcGFsaXZlOiB0aGlzLmtlZXBhbGl2ZSxcbiAgICAgICAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgICAgICByZWRpcmVjdDogdGhpcy5yZWRpcmVjdCxcbiAgICAgICAgICAgIHJlZmVycmVyOiB0aGlzLnJlZmVycmVyLFxuICAgICAgICAgICAgcmVmZXJyZXJQb2xpY3k6IHRoaXMucmVmZXJyZXJQb2xpY3ksXG4gICAgICAgICAgICBzaWduYWw6IHRoaXMuc2lnbmFsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldCBjb29raWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJTlRFUk5BTFNdLmNvb2tpZXM7XG4gICAgfVxuICAgIGdldCBuZXh0VXJsKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJTlRFUk5BTFNdLm5leHRVcmw7XG4gICAgfVxuICAgIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBgcGFnZWAgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgYFVSTFBhdHRlcm5gLlxuICAgKiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVxdWVzdC1wYWdlXG4gICAqLyBnZXQgcGFnZSgpIHtcbiAgICAgICAgdGhyb3cgbmV3IF9lcnJvci5SZW1vdmVkUGFnZUVycm9yKCk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBgdWFgIGhhcyBiZWVuIHJlbW92ZWQgaW4gZmF2b3VyIG9mIFxcYHVzZXJBZ2VudFxcYCBmdW5jdGlvbi5cbiAgICogUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXBhcnNlLXVzZXItYWdlbnRcbiAgICovIGdldCB1YSgpIHtcbiAgICAgICAgdGhyb3cgbmV3IF9lcnJvci5SZW1vdmVkVUFFcnJvcigpO1xuICAgIH1cbiAgICBnZXQgdXJsKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJTlRFUk5BTFNdLnVybDtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/server/web/utils.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/utils.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 fromNodeOutgoingHttpHeaders: function() {\n return fromNodeOutgoingHttpHeaders;\n },\n normalizeNextQueryParam: function() {\n return normalizeNextQueryParam;\n },\n splitCookiesString: function() {\n return splitCookiesString;\n },\n toNodeOutgoingHttpHeaders: function() {\n return toNodeOutgoingHttpHeaders;\n },\n validateURL: function() {\n return validateURL;\n }\n});\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nfunction 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}\nfunction 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}\nfunction 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}\nfunction validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw Object.defineProperty(new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E61\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction normalizeNextQueryParam(key) {\n const prefixes = [\n _constants.NEXT_QUERY_PARAM_PREFIX,\n _constants.NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length);\n }\n }\n return null;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsNEVBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0U7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sbUVBQW1FLFlBQVk7QUFDL0U7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVyczogbnVsbCxcbiAgICBub3JtYWxpemVOZXh0UXVlcnlQYXJhbTogbnVsbCxcbiAgICBzcGxpdENvb2tpZXNTdHJpbmc6IG51bGwsXG4gICAgdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVyczogbnVsbCxcbiAgICB2YWxpZGF0ZVVSTDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzO1xuICAgIH0sXG4gICAgbm9ybWFsaXplTmV4dFF1ZXJ5UGFyYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplTmV4dFF1ZXJ5UGFyYW07XG4gICAgfSxcbiAgICBzcGxpdENvb2tpZXNTdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3BsaXRDb29raWVzU3RyaW5nO1xuICAgIH0sXG4gICAgdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVyczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzO1xuICAgIH0sXG4gICAgdmFsaWRhdGVVUkw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVVUkw7XG4gICAgfVxufSk7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uLy4uL2xpYi9jb25zdGFudHNcIik7XG5mdW5jdGlvbiBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMobm9kZUhlYWRlcnMpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobm9kZUhlYWRlcnMpKXtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIF07XG4gICAgICAgIGZvciAobGV0IHYgb2YgdmFsdWVzKXtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ3VuZGVmaW5lZCcpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHYgPSB2LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoZWFkZXJzLmFwcGVuZChrZXksIHYpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoZWFkZXJzO1xufVxuZnVuY3Rpb24gc3BsaXRDb29raWVzU3RyaW5nKGNvb2tpZXNTdHJpbmcpIHtcbiAgICB2YXIgY29va2llc1N0cmluZ3MgPSBbXTtcbiAgICB2YXIgcG9zID0gMDtcbiAgICB2YXIgc3RhcnQ7XG4gICAgdmFyIGNoO1xuICAgIHZhciBsYXN0Q29tbWE7XG4gICAgdmFyIG5leHRTdGFydDtcbiAgICB2YXIgY29va2llc1NlcGFyYXRvckZvdW5kO1xuICAgIGZ1bmN0aW9uIHNraXBXaGl0ZXNwYWNlKCkge1xuICAgICAgICB3aGlsZShwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiAvXFxzLy50ZXN0KGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykpKXtcbiAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm90U3BlY2lhbENoYXIoKSB7XG4gICAgICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICAgICAgcmV0dXJuIGNoICE9PSAnPScgJiYgY2ggIT09ICc7JyAmJiBjaCAhPT0gJywnO1xuICAgIH1cbiAgICB3aGlsZShwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCl7XG4gICAgICAgIHN0YXJ0ID0gcG9zO1xuICAgICAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSBmYWxzZTtcbiAgICAgICAgd2hpbGUoc2tpcFdoaXRlc3BhY2UoKSl7XG4gICAgICAgICAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgICAgICAgICBpZiAoY2ggPT09ICcsJykge1xuICAgICAgICAgICAgICAgIC8vICcsJyBpcyBhIGNvb2tpZSBzZXBhcmF0b3IgaWYgd2UgaGF2ZSBsYXRlciBmaXJzdCAnPScsIG5vdCAnOycgb3IgJywnXG4gICAgICAgICAgICAgICAgbGFzdENvbW1hID0gcG9zO1xuICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgICAgIHNraXBXaGl0ZXNwYWNlKCk7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gcG9zO1xuICAgICAgICAgICAgICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIG5vdFNwZWNpYWxDaGFyKCkpe1xuICAgICAgICAgICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gY3VycmVudGx5IHNwZWNpYWwgY2hhcmFjdGVyXG4gICAgICAgICAgICAgICAgaWYgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykgPT09ICc9Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBmb3VuZCBjb29raWVzIHNlcGFyYXRvclxuICAgICAgICAgICAgICAgICAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAvLyBwb3MgaXMgaW5zaWRlIHRoZSBuZXh0IGNvb2tpZSwgc28gYmFjayB1cCBhbmQgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgICAgICBwb3MgPSBuZXh0U3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZXNTdHJpbmdzLnB1c2goY29va2llc1N0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGxhc3RDb21tYSkpO1xuICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHBvcztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBpbiBwYXJhbSAnLCcgb3IgcGFyYW0gc2VwYXJhdG9yICc7JyxcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgY29udGludWUgZnJvbSB0aGF0IGNvbW1hXG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IGxhc3RDb21tYSArIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvb2tpZXNTZXBhcmF0b3JGb3VuZCB8fCBwb3MgPj0gY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvb2tpZXNTdHJpbmdzLnB1c2goY29va2llc1N0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGNvb2tpZXNTdHJpbmcubGVuZ3RoKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvb2tpZXNTdHJpbmdzO1xufVxuZnVuY3Rpb24gdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyhoZWFkZXJzKSB7XG4gICAgY29uc3Qgbm9kZUhlYWRlcnMgPSB7fTtcbiAgICBjb25zdCBjb29raWVzID0gW107XG4gICAgaWYgKGhlYWRlcnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgaGVhZGVycy5lbnRyaWVzKCkpe1xuICAgICAgICAgICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBtYXkgaGF2ZSBnb3R0ZW4gYSBjb21tYSBqb2luZWQgc3RyaW5nIG9mIGNvb2tpZXMsIG9yIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgLy8gc2V0LWNvb2tpZSBoZWFkZXJzLiBXZSBuZWVkIHRvIG1lcmdlIHRoZW0gaW50byBvbmUgaGVhZGVyIGFycmF5XG4gICAgICAgICAgICAgICAgLy8gdG8gcmVwcmVzZW50IGFsbCB0aGUgY29va2llcy5cbiAgICAgICAgICAgICAgICBjb29raWVzLnB1c2goLi4uc3BsaXRDb29raWVzU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICAgICAgbm9kZUhlYWRlcnNba2V5XSA9IGNvb2tpZXMubGVuZ3RoID09PSAxID8gY29va2llc1swXSA6IGNvb2tpZXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5vZGVIZWFkZXJzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm9kZUhlYWRlcnM7XG59XG5mdW5jdGlvbiB2YWxpZGF0ZVVSTCh1cmwpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gU3RyaW5nKG5ldyBVUkwoU3RyaW5nKHVybCkpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBVUkwgaXMgbWFsZm9ybWVkIFwiJHtTdHJpbmcodXJsKX1cIi4gUGxlYXNlIHVzZSBvbmx5IGFic29sdXRlIFVSTHMgLSBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXJlbGF0aXZlLXVybHNgLCB7XG4gICAgICAgICAgICBjYXVzZTogZXJyb3JcbiAgICAgICAgfSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTYxXCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBub3JtYWxpemVOZXh0UXVlcnlQYXJhbShrZXkpIHtcbiAgICBjb25zdCBwcmVmaXhlcyA9IFtcbiAgICAgICAgX2NvbnN0YW50cy5ORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCxcbiAgICAgICAgX2NvbnN0YW50cy5ORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYXG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IHByZWZpeCBvZiBwcmVmaXhlcyl7XG4gICAgICAgIGlmIChrZXkgIT09IHByZWZpeCAmJiBrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/deep-freeze.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/deep-freeze.js ***!
|
||
\**********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"deepFreeze\", ({\n enumerable: true,\n get: function() {\n return deepFreeze;\n }\n}));\nfunction deepFreeze(obj) {\n // If the object is already frozen, there's no need to freeze it again.\n if (Object.isFrozen(obj)) return obj;\n // An array is an object, but we also want to freeze each element in the array\n // as well.\n if (Array.isArray(obj)) {\n for (const item of obj){\n if (!item || typeof item !== 'object') continue;\n deepFreeze(item);\n }\n return Object.freeze(obj);\n }\n for (const value of Object.values(obj)){\n if (!value || typeof value !== 'object') continue;\n deepFreeze(value);\n }\n return Object.freeze(obj);\n} //# sourceMappingURL=deep-freeze.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZGVlcC1mcmVlemUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FVZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQTZCQyxHQUFNO0lBQ2pELHVFQUF1RTtJQUN2RSxJQUFJQyxPQUFPQyxRQUFRLENBQUNGLE1BQU0sT0FBT0E7SUFFakMsOEVBQThFO0lBQzlFLFdBQVc7SUFDWCxJQUFJRyxNQUFNQyxPQUFPLENBQUNKLE1BQU07UUFDdEIsS0FBSyxNQUFNSyxRQUFRTCxJQUFLO1lBQ3RCLElBQUksQ0FBQ0ssUUFBUSxPQUFPQSxTQUFTLFVBQVU7WUFDdkNOLFdBQVdNO1FBQ2I7UUFFQSxPQUFPSixPQUFPSyxNQUFNLENBQUNOO0lBQ3ZCO0lBRUEsS0FBSyxNQUFNTyxTQUFTTixPQUFPTyxNQUFNLENBQUNSLEtBQU07UUFDdEMsSUFBSSxDQUFDTyxTQUFTLE9BQU9BLFVBQVUsVUFBVTtRQUN6Q1IsV0FBV1E7SUFDYjtJQUVBLE9BQU9OLE9BQU9LLE1BQU0sQ0FBQ047QUFDdkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9zaGFyZWQvbGliL2RlZXAtZnJlZXplLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5IH0gZnJvbSAnLi9kZWVwLXJlYWRvbmx5J1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGZyZWV6ZXMgYW4gb2JqZWN0IGFuZCBhbGwgb2YgaXRzIHByb3BlcnRpZXMuIFRoaXMgcHJldmVudHMgdGhlXG4gKiBvYmplY3QgZnJvbSBiZWluZyBtb2RpZmllZCBhdCBydW50aW1lLiBXaGVuIHRoZSBKUyBydW50aW1lIGlzIHJ1bm5pbmcgaW5cbiAqIHN0cmljdCBtb2RlLCBhbnkgYXR0ZW1wdHMgdG8gbW9kaWZ5IGEgZnJvemVuIG9iamVjdCB3aWxsIHRocm93IGFuIGVycm9yLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2ZyZWV6ZVxuICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGZyZWV6ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBGcmVlemU8VCBleHRlbmRzIG9iamVjdD4ob2JqOiBUKTogRGVlcFJlYWRvbmx5PFQ+IHtcbiAgLy8gSWYgdGhlIG9iamVjdCBpcyBhbHJlYWR5IGZyb3plbiwgdGhlcmUncyBubyBuZWVkIHRvIGZyZWV6ZSBpdCBhZ2Fpbi5cbiAgaWYgKE9iamVjdC5pc0Zyb3plbihvYmopKSByZXR1cm4gb2JqIGFzIERlZXBSZWFkb25seTxUPlxuXG4gIC8vIEFuIGFycmF5IGlzIGFuIG9iamVjdCwgYnV0IHdlIGFsc28gd2FudCB0byBmcmVlemUgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheVxuICAvLyBhcyB3ZWxsLlxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIG9iaikge1xuICAgICAgaWYgKCFpdGVtIHx8IHR5cGVvZiBpdGVtICE9PSAnb2JqZWN0JykgY29udGludWVcbiAgICAgIGRlZXBGcmVlemUoaXRlbSlcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShvYmopIGFzIERlZXBSZWFkb25seTxUPlxuICB9XG5cbiAgZm9yIChjb25zdCB2YWx1ZSBvZiBPYmplY3QudmFsdWVzKG9iaikpIHtcbiAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIGNvbnRpbnVlXG4gICAgZGVlcEZyZWV6ZSh2YWx1ZSlcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iaikgYXMgRGVlcFJlYWRvbmx5PFQ+XG59XG4iXSwibmFtZXMiOlsiZGVlcEZyZWV6ZSIsIm9iaiIsIk9iamVjdCIsImlzRnJvemVuIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbSIsImZyZWV6ZSIsInZhbHVlIiwidmFsdWVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/deep-freeze.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/errors/constants.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/errors/constants.js ***!
|
||
\***************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"MISSING_ROOT_TAGS_ERROR\", ({\n enumerable: true,\n get: function() {\n return MISSING_ROOT_TAGS_ERROR;\n }\n}));\nconst MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7OzJEQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSwwQkFBMEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvc2hhcmVkL2xpYi9lcnJvcnMvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBNSVNTSU5HX1JPT1RfVEFHU19FUlJPUiA9ICdORVhUX01JU1NJTkdfUk9PVF9UQUdTJ1xuIl0sIm5hbWVzIjpbIk1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/errors/constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js":
|
||
/*!************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/escape-regexp.js ***!
|
||
\************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// regexp is based on https://github.com/sindresorhus/escape-string-regexp\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"escapeStringRegexp\", ({\n enumerable: true,\n get: function() {\n return escapeStringRegexp;\n }\n}));\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXNjYXBlLXJlZ2V4cC5qcyIsIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7Ozs7O3NEQUkxREE7OztlQUFBQTs7O0FBSGhCLE1BQU1DLGNBQWM7QUFDcEIsTUFBTUMsa0JBQWtCO0FBRWpCLFNBQVNGLG1CQUFtQkcsR0FBVztJQUM1QywrR0FBK0c7SUFDL0csSUFBSUYsWUFBWUcsSUFBSSxDQUFDRCxNQUFNO1FBQ3pCLE9BQU9BLElBQUlFLE9BQU8sQ0FBQ0gsaUJBQWlCO0lBQ3RDO0lBQ0EsT0FBT0M7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL3NoYXJlZC9saWIvZXNjYXBlLXJlZ2V4cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWdleHAgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9lc2NhcGUtc3RyaW5nLXJlZ2V4cFxuY29uc3QgcmVIYXNSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9cbmNvbnN0IHJlUmVwbGFjZVJlZ0V4cCA9IC9bfFxcXFx7fSgpW1xcXV4kKyo/Li1dL2dcblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVN0cmluZ1JlZ2V4cChzdHI6IHN0cmluZykge1xuICAvLyBzZWUgYWxzbzogaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi8yZGEwMjRjM2I0Zjk5NDdhNDg1MTc2MzlkZTc1NjA0NTdjZDRlYzZjL2VzY2FwZVJlZ0V4cC5qcyNMMjNcbiAgaWYgKHJlSGFzUmVnRXhwLnRlc3Qoc3RyKSkge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShyZVJlcGxhY2VSZWdFeHAsICdcXFxcJCYnKVxuICB9XG4gIHJldHVybiBzdHJcbn1cbiJdLCJuYW1lcyI6WyJlc2NhcGVTdHJpbmdSZWdleHAiLCJyZUhhc1JlZ0V4cCIsInJlUmVwbGFjZVJlZ0V4cCIsInN0ciIsInRlc3QiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/get-hostname.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/get-hostname.js ***!
|
||
\***********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getHostname\", ({\n enumerable: true,\n get: function() {\n return getHostname;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBUWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxZQUNkQyxNQUFvQyxFQUNwQ0MsT0FBNkI7SUFFN0IsMkVBQTJFO0lBQzNFLFlBQVk7SUFDWixJQUFJQztJQUNKLElBQUlELENBQUFBLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNFLElBQUFBLEtBQVEsQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDSixRQUFRRSxJQUFJLEdBQUc7UUFDakRELFdBQVdELFFBQVFFLElBQUksQ0FBQ0csUUFBUSxHQUFHQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUNyRCxPQUFPLElBQUlQLE9BQU9FLFFBQVEsRUFBRTtRQUMxQkEsV0FBV0YsT0FBT0UsUUFBUTtJQUM1QixPQUFPO0lBRVAsT0FBT0EsU0FBU00sV0FBVztBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3V0Z29pbmdIdHRwSGVhZGVycyB9IGZyb20gJ2h0dHAnXG5cbi8qKlxuICogVGFrZXMgYW4gb2JqZWN0IHdpdGggYSBob3N0bmFtZSBwcm9wZXJ0eSAobGlrZSBhIHBhcnNlZCBVUkwpIGFuZCBzb21lXG4gKiBoZWFkZXJzIHRoYXQgbWF5IGNvbnRhaW4gSG9zdCBhbmQgcmV0dXJucyB0aGUgcHJlZmVycmVkIGhvc3RuYW1lLlxuICogQHBhcmFtIHBhcnNlZCBBbiBvYmplY3QgY29udGFpbmluZyBhIGhvc3RuYW1lIHByb3BlcnR5LlxuICogQHBhcmFtIGhlYWRlcnMgQSBkaWN0aW9uYXJ5IHdpdGggaGVhZGVycyBjb250YWluaW5nIGEgYGhvc3RgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9zdG5hbWUoXG4gIHBhcnNlZDogeyBob3N0bmFtZT86IHN0cmluZyB8IG51bGwgfSxcbiAgaGVhZGVycz86IE91dGdvaW5nSHR0cEhlYWRlcnNcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIC8vIEdldCB0aGUgaG9zdG5hbWUgZnJvbSB0aGUgaGVhZGVycyBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB1c2UgdGhlIHBhcnNlZFxuICAvLyBob3N0bmFtZS5cbiAgbGV0IGhvc3RuYW1lOiBzdHJpbmdcbiAgaWYgKGhlYWRlcnM/Lmhvc3QgJiYgIUFycmF5LmlzQXJyYXkoaGVhZGVycy5ob3N0KSkge1xuICAgIGhvc3RuYW1lID0gaGVhZGVycy5ob3N0LnRvU3RyaW5nKCkuc3BsaXQoJzonLCAxKVswXVxuICB9IGVsc2UgaWYgKHBhcnNlZC5ob3N0bmFtZSkge1xuICAgIGhvc3RuYW1lID0gcGFyc2VkLmhvc3RuYW1lXG4gIH0gZWxzZSByZXR1cm5cblxuICByZXR1cm4gaG9zdG5hbWUudG9Mb3dlckNhc2UoKVxufVxuIl0sIm5hbWVzIjpbImdldEhvc3RuYW1lIiwicGFyc2VkIiwiaGVhZGVycyIsImhvc3RuYW1lIiwiaG9zdCIsIkFycmF5IiwiaXNBcnJheSIsInRvU3RyaW5nIiwic3BsaXQiLCJ0b0xvd2VyQ2FzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/get-hostname.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js ***!
|
||
\************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"detectDomainLocale\", ({\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n}));\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3NEQUVnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQ2RDLFdBQXFDLEVBQ3JDQyxRQUFpQixFQUNqQkMsY0FBdUI7SUFFdkIsSUFBSSxDQUFDRixhQUFhO0lBRWxCLElBQUlFLGdCQUFnQjtRQUNsQkEsaUJBQWlCQSxlQUFlQyxXQUFXO0lBQzdDO0lBRUEsS0FBSyxNQUFNQyxRQUFRSixZQUFhO1lBRVBJLGNBSXJCQTtRQUxGLHlCQUF5QjtRQUN6QixNQUFNQyxpQkFBQUEsQ0FBaUJELGVBQUFBLEtBQUtFLE1BQUFBLEtBQU0sZ0JBQVhGLGFBQWFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUNKLFdBQVc7UUFDaEUsSUFDRUYsYUFBYUksa0JBQ2JILG1CQUFtQkUsS0FBS0ksYUFBYSxDQUFDTCxXQUFXLFFBQ2pEQyxnQkFBQUEsS0FBS0ssT0FBQUEsS0FBTyxnQkFBWkwsY0FBY00sSUFBSSxDQUFDLENBQUNDLFNBQVdBLE9BQU9SLFdBQVcsT0FBT0QsZUFBQUEsR0FDeEQ7WUFDQSxPQUFPRTtRQUNUO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9zaGFyZWQvbGliL2kxOG4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEb21haW5Mb2NhbGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvY29uZmlnLXNoYXJlZCdcblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdERvbWFpbkxvY2FsZShcbiAgZG9tYWluSXRlbXM/OiByZWFkb25seSBEb21haW5Mb2NhbGVbXSxcbiAgaG9zdG5hbWU/OiBzdHJpbmcsXG4gIGRldGVjdGVkTG9jYWxlPzogc3RyaW5nXG4pIHtcbiAgaWYgKCFkb21haW5JdGVtcykgcmV0dXJuXG5cbiAgaWYgKGRldGVjdGVkTG9jYWxlKSB7XG4gICAgZGV0ZWN0ZWRMb2NhbGUgPSBkZXRlY3RlZExvY2FsZS50b0xvd2VyQ2FzZSgpXG4gIH1cblxuICBmb3IgKGNvbnN0IGl0ZW0gb2YgZG9tYWluSXRlbXMpIHtcbiAgICAvLyByZW1vdmUgcG9ydCBpZiBwcmVzZW50XG4gICAgY29uc3QgZG9tYWluSG9zdG5hbWUgPSBpdGVtLmRvbWFpbj8uc3BsaXQoJzonLCAxKVswXS50b0xvd2VyQ2FzZSgpXG4gICAgaWYgKFxuICAgICAgaG9zdG5hbWUgPT09IGRvbWFpbkhvc3RuYW1lIHx8XG4gICAgICBkZXRlY3RlZExvY2FsZSA9PT0gaXRlbS5kZWZhdWx0TG9jYWxlLnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgIGl0ZW0ubG9jYWxlcz8uc29tZSgobG9jYWxlKSA9PiBsb2NhbGUudG9Mb3dlckNhc2UoKSA9PT0gZGV0ZWN0ZWRMb2NhbGUpXG4gICAgKSB7XG4gICAgICByZXR1cm4gaXRlbVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImRldGVjdERvbWFpbkxvY2FsZSIsImRvbWFpbkl0ZW1zIiwiaG9zdG5hbWUiLCJkZXRlY3RlZExvY2FsZSIsInRvTG93ZXJDYXNlIiwiaXRlbSIsImRvbWFpbkhvc3RuYW1lIiwiZG9tYWluIiwic3BsaXQiLCJkZWZhdWx0TG9jYWxlIiwibG9jYWxlcyIsInNvbWUiLCJsb2NhbGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***!
|
||
\*************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeLocalePath\", ({\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n}));\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */ const cache = new WeakMap();\nfunction normalizeLocalePath(pathname, locales) {\n // If locales is undefined, return the pathname as is.\n if (!locales) return {\n pathname\n };\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales);\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale)=>locale.toLowerCase());\n cache.set(locales, lowercasedLocales);\n }\n let detectedLocale;\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 there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return {\n pathname\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 = lowercasedLocales.indexOf(segment);\n if (index < 0) return {\n pathname\n };\n // Return the case-sensitive locale.\n detectedLocale = locales[index];\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/';\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFxQmdCQTs7O2VBQUFBOzs7QUFoQmhCOzs7O0NBSUMsR0FDRCxNQUFNQyxRQUFRLElBQUlDO0FBV1gsU0FBU0Ysb0JBQ2RHLFFBQWdCLEVBQ2hCQyxPQUEyQjtJQUUzQixzREFBc0Q7SUFDdEQsSUFBSSxDQUFDQSxTQUFTLE9BQU87UUFBRUQ7SUFBUztJQUVoQyxpRUFBaUU7SUFDakUsSUFBSUUsb0JBQW9CSixNQUFNSyxHQUFHLENBQUNGO0lBQ2xDLElBQUksQ0FBQ0MsbUJBQW1CO1FBQ3RCQSxvQkFBb0JELFFBQVFHLEdBQUcsQ0FBQyxDQUFDQyxTQUFXQSxPQUFPQyxXQUFXO1FBQzlEUixNQUFNUyxHQUFHLENBQUNOLFNBQVNDO0lBQ3JCO0lBRUEsSUFBSU07SUFFSixvRUFBb0U7SUFDcEUseUVBQXlFO0lBQ3pFLE1BQU1DLFdBQVdULFNBQVNVLEtBQUssQ0FBQyxLQUFLO0lBRXJDLDBFQUEwRTtJQUMxRSxVQUFVO0lBQ1YsSUFBSSxDQUFDRCxRQUFRLENBQUMsRUFBRSxFQUFFLE9BQU87UUFBRVQ7SUFBUztJQUVwQywwREFBMEQ7SUFDMUQsTUFBTVcsVUFBVUYsUUFBUSxDQUFDLEVBQUUsQ0FBQ0gsV0FBVztJQUV2Qyx5RUFBeUU7SUFDekUsbUNBQW1DO0lBQ25DLE1BQU1NLFFBQVFWLGtCQUFrQlcsT0FBTyxDQUFDRjtJQUN4QyxJQUFJQyxRQUFRLEdBQUcsT0FBTztRQUFFWjtJQUFTO0lBRWpDLG9DQUFvQztJQUNwQ1EsaUJBQWlCUCxPQUFPLENBQUNXLE1BQU07SUFFL0IsZ0RBQWdEO0lBQ2hEWixXQUFXQSxTQUFTYyxLQUFLLENBQUNOLGVBQWVPLE1BQU0sR0FBRyxNQUFNO0lBRXhELE9BQU87UUFBRWY7UUFBVVE7SUFBZTtBQUNwQyIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGF0aExvY2FsZSB7XG4gIGRldGVjdGVkTG9jYWxlPzogc3RyaW5nXG4gIHBhdGhuYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBBIGNhY2hlIG9mIGxvd2VyY2FzZWQgbG9jYWxlcyBmb3IgZWFjaCBsaXN0IG9mIGxvY2FsZXMuIFRoaXMgaXMgc3RvcmVkIGFzIGFcbiAqIFdlYWtNYXAgc28gaWYgdGhlIGxvY2FsZXMgYXJlIGdhcmJhZ2UgY29sbGVjdGVkLCB0aGUgY2FjaGUgZW50cnkgd2lsbCBiZVxuICogcmVtb3ZlZCBhcyB3ZWxsLlxuICovXG5jb25zdCBjYWNoZSA9IG5ldyBXZWFrTWFwPHJlYWRvbmx5IHN0cmluZ1tdLCByZWFkb25seSBzdHJpbmdbXT4oKVxuXG4vKipcbiAqIEZvciBhIHBhdGhuYW1lIHRoYXQgbWF5IGluY2x1ZGUgYSBsb2NhbGUgZnJvbSBhIGxpc3Qgb2YgbG9jYWxlcywgaXRcbiAqIHJlbW92ZXMgdGhlIGxvY2FsZSBmcm9tIHRoZSBwYXRobmFtZSByZXR1cm5pbmcgaXQgYWxvbmdzaWRlIHdpdGggdGhlXG4gKiBkZXRlY3RlZCBsb2NhbGUuXG4gKlxuICogQHBhcmFtIHBhdGhuYW1lIEEgcGF0aG5hbWUgdGhhdCBtYXkgaW5jbHVkZSBhIGxvY2FsZS5cbiAqIEBwYXJhbSBsb2NhbGVzIEEgbGlzdCBvZiBsb2NhbGVzLlxuICogQHJldHVybnMgVGhlIGRldGVjdGVkIGxvY2FsZSBhbmQgcGF0aG5hbWUgd2l0aG91dCBsb2NhbGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUxvY2FsZVBhdGgoXG4gIHBhdGhuYW1lOiBzdHJpbmcsXG4gIGxvY2FsZXM/OiByZWFkb25seSBzdHJpbmdbXVxuKTogUGF0aExvY2FsZSB7XG4gIC8vIElmIGxvY2FsZXMgaXMgdW5kZWZpbmVkLCByZXR1cm4gdGhlIHBhdGhuYW1lIGFzIGlzLlxuICBpZiAoIWxvY2FsZXMpIHJldHVybiB7IHBhdGhuYW1lIH1cblxuICAvLyBHZXQgdGhlIGNhY2hlZCBsb3dlcmNhc2VkIGxvY2FsZXMgb3IgY3JlYXRlIGEgbmV3IGNhY2hlIGVudHJ5LlxuICBsZXQgbG93ZXJjYXNlZExvY2FsZXMgPSBjYWNoZS5nZXQobG9jYWxlcylcbiAgaWYgKCFsb3dlcmNhc2VkTG9jYWxlcykge1xuICAgIGxvd2VyY2FzZWRMb2NhbGVzID0gbG9jYWxlcy5tYXAoKGxvY2FsZSkgPT4gbG9jYWxlLnRvTG93ZXJDYXNlKCkpXG4gICAgY2FjaGUuc2V0KGxvY2FsZXMsIGxvd2VyY2FzZWRMb2NhbGVzKVxuICB9XG5cbiAgbGV0IGRldGVjdGVkTG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAvLyBUaGUgZmlyc3Qgc2VnbWVudCB3aWxsIGJlIGVtcHR5LCBiZWNhdXNlIGl0IGhhcyBhIGxlYWRpbmcgYC9gLiBJZlxuICAvLyB0aGVyZSBpcyBubyBmdXJ0aGVyIHNlZ21lbnQsIHRoZXJlIGlzIG5vIGxvY2FsZSAob3IgaXQncyB0aGUgZGVmYXVsdCkuXG4gIGNvbnN0IHNlZ21lbnRzID0gcGF0aG5hbWUuc3BsaXQoJy8nLCAyKVxuXG4gIC8vIElmIHRoZXJlJ3Mgbm8gc2Vjb25kIHNlZ21lbnQgKGllLCB0aGUgcGF0aG5hbWUgaXMganVzdCBgL2ApLCB0aGVyZSdzIG5vXG4gIC8vIGxvY2FsZS5cbiAgaWYgKCFzZWdtZW50c1sxXSkgcmV0dXJuIHsgcGF0aG5hbWUgfVxuXG4gIC8vIFRoZSBzZWNvbmQgc2VnbWVudCB3aWxsIGNvbnRhaW4gdGhlIGxvY2FsZSBwYXJ0IGlmIGFueS5cbiAgY29uc3Qgc2VnbWVudCA9IHNlZ21lbnRzWzFdLnRvTG93ZXJDYXNlKClcblxuICAvLyBTZWUgaWYgdGhlIHNlZ21lbnQgbWF0Y2hlcyBvbmUgb2YgdGhlIGxvY2FsZXMuIElmIGl0IGRvZXNuJ3QsIHRoZXJlIGlzXG4gIC8vIG5vIGxvY2FsZSAob3IgaXQncyB0aGUgZGVmYXVsdCkuXG4gIGNvbnN0IGluZGV4ID0gbG93ZXJjYXNlZExvY2FsZXMuaW5kZXhPZihzZWdtZW50KVxuICBpZiAoaW5kZXggPCAwKSByZXR1cm4geyBwYXRobmFtZSB9XG5cbiAgLy8gUmV0dXJuIHRoZSBjYXNlLXNlbnNpdGl2ZSBsb2NhbGUuXG4gIGRldGVjdGVkTG9jYWxlID0gbG9jYWxlc1tpbmRleF1cblxuICAvLyBSZW1vdmUgdGhlIGAvJHtsb2NhbGV9YCBwYXJ0IG9mIHRoZSBwYXRobmFtZS5cbiAgcGF0aG5hbWUgPSBwYXRobmFtZS5zbGljZShkZXRlY3RlZExvY2FsZS5sZW5ndGggKyAxKSB8fCAnLydcblxuICByZXR1cm4geyBwYXRobmFtZSwgZGV0ZWN0ZWRMb2NhbGUgfVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJjYWNoZSIsIldlYWtNYXAiLCJwYXRobmFtZSIsImxvY2FsZXMiLCJsb3dlcmNhc2VkTG9jYWxlcyIsImdldCIsIm1hcCIsImxvY2FsZSIsInRvTG93ZXJDYXNlIiwic2V0IiwiZGV0ZWN0ZWRMb2NhbGUiLCJzZWdtZW50cyIsInNwbGl0Iiwic2VnbWVudCIsImluZGV4IiwiaW5kZXhPZiIsInNsaWNlIiwibGVuZ3RoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/invariant-error.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"InvariantError\", ({\n enumerable: true,\n get: function() {\n return InvariantError;\n }\n}));\nclass InvariantError extends Error {\n constructor(message, options){\n super(\"Invariant: \" + (message.endsWith('.') ? message : message + '.') + \" This is a bug in Next.js.\", options);\n this.name = 'InvariantError';\n }\n} //# sourceMappingURL=invariant-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHVCQUF1QkM7SUFDbENDLFlBQVlDLE9BQWUsRUFBRUMsT0FBc0IsQ0FBRTtRQUNuRCxLQUFLLENBQ0YsZ0JBQWFELENBQUFBLFFBQVFFLFFBQVEsQ0FBQyxPQUFPRixVQUFVQSxVQUFVLElBQUUsR0FBRSw4QkFDOURDO1FBRUYsSUFBSSxDQUFDRSxJQUFJLEdBQUc7SUFDZDtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEludmFyaWFudEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBFcnJvck9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIGBJbnZhcmlhbnQ6ICR7bWVzc2FnZS5lbmRzV2l0aCgnLicpID8gbWVzc2FnZSA6IG1lc3NhZ2UgKyAnLid9IFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcy5gLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgICB0aGlzLm5hbWUgPSAnSW52YXJpYW50RXJyb3InXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJJbnZhcmlhbnRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwib3B0aW9ucyIsImVuZHNXaXRoIiwibmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/is-plain-object.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFnQkEsbUJBQW1CO2VBQW5CQTs7SUFJQUMsYUFBYTtlQUFiQTs7O0FBSlQsU0FBU0Qsb0JBQW9CRSxLQUFVO0lBQzVDLE9BQU9DLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNKO0FBQ3hDO0FBRU8sU0FBU0QsY0FBY0MsS0FBVTtJQUN0QyxJQUFJRixvQkFBb0JFLFdBQVcsbUJBQW1CO1FBQ3BELE9BQU87SUFDVDtJQUVBLE1BQU1FLFlBQVlELE9BQU9JLGNBQWMsQ0FBQ0w7SUFFeEM7Ozs7Ozs7O0dBUUMsR0FDRCxPQUFPRSxjQUFjLFFBQVFBLFVBQVVJLGNBQWMsQ0FBQztBQUN4RCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/is-plain-object.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/is-thenable.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/is-thenable.js ***!
|
||
\**********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0M7Ozs7OENBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQ2RDLE9BQXVCO0lBRXZCLE9BQ0VBLFlBQVksUUFDWixPQUFPQSxZQUFZLFlBQ25CLFVBQVVBLFdBQ1YsT0FBT0EsUUFBUUMsSUFBSSxLQUFLO0FBRTVCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIHRvIHNlZSBpZiBhIHZhbHVlIGlzIFRoZW5hYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9taXNlIHRoZSBtYXliZS10aGVuYWJsZSB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdGhlbmFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGU8VCA9IHVua25vd24+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+IHwgVFxuKTogcHJvbWlzZSBpcyBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9taXNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHByb21pc2UgPT09ICdvYmplY3QnICYmXG4gICAgJ3RoZW4nIGluIHByb21pc2UgJiZcbiAgICB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc1RoZW5hYmxlIiwicHJvbWlzZSIsInRoZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/is-thenable.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/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 (false) {} else {\n path = __webpack_require__(/*! path */ \"path\");\n}\nmodule.exports = path; //# sourceMappingURL=path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXNvbW9ycGhpYy9wYXRoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7O0NBSUM7QUFDRCxJQUFJQTtBQUVKLElBQUlDLEtBQW1DLEVBQUUsRUFFeEMsTUFBTTtJQUNMRCxPQUFPSSxtQkFBT0EsQ0FBQyxrQkFBTTtBQUN2QjtBQUVBQyxPQUFPQyxPQUFPLEdBQUdOIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvaXNvbW9ycGhpYy9wYXRoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBtb2R1bGUgaXMgZm9yIG5leHQuanMgc2VydmVyIGludGVybmFsIHVzYWdlIG9mIHBhdGggbW9kdWxlLlxuICogSXQgd2lsbCB1c2UgbmF0aXZlIHBhdGggbW9kdWxlIGZvciBub2RlanMgcnVudGltZS5cbiAqIEl0IHdpbGwgdXNlIHBhdGgtYnJvd3NlcmlmeSBwb2x5ZmlsbCBmb3IgZWRnZSBydW50aW1lLlxuICovXG5sZXQgcGF0aFxuXG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgcGF0aCA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9wYXRoLWJyb3dzZXJpZnknKVxufSBlbHNlIHtcbiAgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGhcbiJdLCJuYW1lcyI6WyJwYXRoIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// This has to be a shared module which is shared between client component error boundary and dynamic component\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 BailoutToCSRError: function() {\n return BailoutToCSRError;\n },\n isBailoutToCSRError: function() {\n return isBailoutToCSRError;\n }\n});\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';\nclass BailoutToCSRError extends Error {\n constructor(reason){\n super(\"Bail out to client-side rendering: \" + reason), this.reason = reason, this.digest = BAILOUT_TO_CSR;\n }\n}\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtHQUErRzs7Ozs7Ozs7Ozs7OztJQUlsR0EsaUJBQWlCO2VBQWpCQTs7SUFTR0MsbUJBQW1CO2VBQW5CQTs7O0FBWmhCLE1BQU1DLGlCQUFpQjtBQUdoQixNQUFNRiwwQkFBMEJHO0lBR3JDQyxZQUE0QkMsTUFBYyxDQUFFO1FBQzFDLEtBQUssQ0FBRSx3Q0FBcUNBLFNBQUFBLElBQUFBLENBRGxCQSxNQUFBQSxHQUFBQSxRQUFBQSxJQUFBQSxDQUZaQyxNQUFBQSxHQUFTSjtJQUl6QjtBQUNGO0FBR08sU0FBU0Qsb0JBQW9CTSxHQUFZO0lBQzlDLElBQUksT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsQ0FBRSxhQUFZQSxHQUFBQSxDQUFFLEVBQUk7UUFDakUsT0FBTztJQUNUO0lBRUEsT0FBT0EsSUFBSUQsTUFBTSxLQUFLSjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9zaGFyZWQvbGliL2xhenktZHluYW1pYy9iYWlsb3V0LXRvLWNzci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGhhcyB0byBiZSBhIHNoYXJlZCBtb2R1bGUgd2hpY2ggaXMgc2hhcmVkIGJldHdlZW4gY2xpZW50IGNvbXBvbmVudCBlcnJvciBib3VuZGFyeSBhbmQgZHluYW1pYyBjb21wb25lbnRcbmNvbnN0IEJBSUxPVVRfVE9fQ1NSID0gJ0JBSUxPVVRfVE9fQ0xJRU5UX1NJREVfUkVOREVSSU5HJ1xuXG4vKiogQW4gZXJyb3IgdGhhdCBzaG91bGQgYmUgdGhyb3duIHdoZW4gd2Ugd2FudCB0byBiYWlsIG91dCB0byBjbGllbnQtc2lkZSByZW5kZXJpbmcuICovXG5leHBvcnQgY2xhc3MgQmFpbG91dFRvQ1NSRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBkaWdlc3QgPSBCQUlMT1VUX1RPX0NTUlxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSByZWFzb246IHN0cmluZykge1xuICAgIHN1cGVyKGBCYWlsIG91dCB0byBjbGllbnQtc2lkZSByZW5kZXJpbmc6ICR7cmVhc29ufWApXG4gIH1cbn1cblxuLyoqIENoZWNrcyBpZiBhIHBhc3NlZCBhcmd1bWVudCBpcyBhbiBlcnJvciB0aGF0IGlzIHRocm93biBpZiB3ZSB3YW50IHRvIGJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JhaWxvdXRUb0NTUkVycm9yKGVycjogdW5rbm93bik6IGVyciBpcyBCYWlsb3V0VG9DU1JFcnJvciB7XG4gIGlmICh0eXBlb2YgZXJyICE9PSAnb2JqZWN0JyB8fCBlcnIgPT09IG51bGwgfHwgISgnZGlnZXN0JyBpbiBlcnIpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gZXJyLmRpZ2VzdCA9PT0gQkFJTE9VVF9UT19DU1Jcbn1cbiJdLCJuYW1lcyI6WyJCYWlsb3V0VG9DU1JFcnJvciIsImlzQmFpbG91dFRvQ1NSRXJyb3IiLCJCQUlMT1VUX1RPX0NTUiIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJyZWFzb24iLCJkaWdlc3QiLCJlcnIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQW1CQyxJQUFZO0lBQzdDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQyxPQUFPRCxPQUFRLE1BQUdBO0FBQzNDIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9yIGEgZ2l2ZW4gcGFnZSBwYXRoLCB0aGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBhIGxlYWRpbmcgc2xhc2guXG4gKiBJZiB0aGVyZSBpcyBub3QgYSBsZWFkaW5nIHNsYXNoLCBvbmUgaXMgYWRkZWQsIG90aGVyd2lzZSBpdCBpcyBub29wLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTGVhZGluZ1NsYXNoKHBhdGg6IHN0cmluZykge1xuICByZXR1cm4gcGF0aC5zdGFydHNXaXRoKCcvJykgPyBwYXRoIDogYC8ke3BhdGh9YFxufVxuIl0sIm5hbWVzIjpbImVuc3VyZUxlYWRpbmdTbGFzaCIsInBhdGgiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/add-locale.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction 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, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0FRZ0JBOzs7ZUFBQUE7OzsyQ0FSYzsyQ0FDQTtBQU92QixTQUFTQSxVQUNkQyxJQUFZLEVBQ1pDLE1BQXVCLEVBQ3ZCQyxhQUFzQixFQUN0QkMsWUFBc0I7SUFFdEIsNEVBQTRFO0lBQzVFLHNCQUFzQjtJQUN0QixJQUFJLENBQUNGLFVBQVVBLFdBQVdDLGVBQWUsT0FBT0Y7SUFFaEQsTUFBTUksUUFBUUosS0FBS0ssV0FBVztJQUU5QiwyRUFBMkU7SUFDM0UsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQ0YsY0FBYztRQUNqQixJQUFJRyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQUNGLE9BQU8sU0FBUyxPQUFPSjtRQUN6QyxJQUFJTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixPQUFRLE1BQUdILE9BQU9JLFdBQVcsS0FBTyxPQUFPTDtJQUMvRDtJQUVBLHFDQUFxQztJQUNyQyxPQUFPTyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjUCxNQUFPLE1BQUdDO0FBQ2pDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4vYWRkLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4vcGF0aC1oYXMtcHJlZml4J1xuXG4vKipcbiAqIEZvciBhIGdpdmVuIHBhdGggYW5kIGEgbG9jYWxlLCBpZiB0aGUgbG9jYWxlIGlzIGdpdmVuLCBpdCB3aWxsIHByZWZpeCB0aGVcbiAqIGxvY2FsZS4gVGhlIHBhdGggc2hvdWxkbid0IGJlIGFuIEFQSSBwYXRoLiBJZiBhIGRlZmF1bHQgbG9jYWxlIGlzIGdpdmVuIHRoZVxuICogcHJlZml4IHdpbGwgYmUgb21pdHRlZCBpZiB0aGUgbG9jYWxlIGlzIGFscmVhZHkgdGhlIGRlZmF1bHQgbG9jYWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTG9jYWxlKFxuICBwYXRoOiBzdHJpbmcsXG4gIGxvY2FsZT86IHN0cmluZyB8IGZhbHNlLFxuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nLFxuICBpZ25vcmVQcmVmaXg/OiBib29sZWFuXG4pIHtcbiAgLy8gSWYgbm8gbG9jYWxlIHdhcyBnaXZlbiBvciB0aGUgbG9jYWxlIGlzIHRoZSBkZWZhdWx0IGxvY2FsZSwgd2UgZG9uJ3QgbmVlZFxuICAvLyB0byBwcmVmaXggdGhlIHBhdGguXG4gIGlmICghbG9jYWxlIHx8IGxvY2FsZSA9PT0gZGVmYXVsdExvY2FsZSkgcmV0dXJuIHBhdGhcblxuICBjb25zdCBsb3dlciA9IHBhdGgudG9Mb3dlckNhc2UoKVxuXG4gIC8vIElmIHRoZSBwYXRoIGlzIGFuIEFQSSBwYXRoIG9yIHRoZSBwYXRoIGFscmVhZHkgaGFzIHRoZSBsb2NhbGUgcHJlZml4LCB3ZVxuICAvLyBkb24ndCBuZWVkIHRvIHByZWZpeCB0aGUgcGF0aC5cbiAgaWYgKCFpZ25vcmVQcmVmaXgpIHtcbiAgICBpZiAocGF0aEhhc1ByZWZpeChsb3dlciwgJy9hcGknKSkgcmV0dXJuIHBhdGhcbiAgICBpZiAocGF0aEhhc1ByZWZpeChsb3dlciwgYC8ke2xvY2FsZS50b0xvd2VyQ2FzZSgpfWApKSByZXR1cm4gcGF0aFxuICB9XG5cbiAgLy8gQWRkIHRoZSBsb2NhbGUgcHJlZml4IHRvIHRoZSBwYXRoLlxuICByZXR1cm4gYWRkUGF0aFByZWZpeChwYXRoLCBgLyR7bG9jYWxlfWApXG59XG4iXSwibmFtZXMiOlsiYWRkTG9jYWxlIiwicGF0aCIsImxvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJpZ25vcmVQcmVmaXgiLCJsb3dlciIsInRvTG93ZXJDYXNlIiwicGF0aEhhc1ByZWZpeCIsImFkZFBhdGhQcmVmaXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU1nQkE7OztlQUFBQTs7O3VDQU5VO0FBTW5CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVDLFNBQVNFLFdBQVdDLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogQWRkcyB0aGUgcHJvdmlkZWQgcHJlZml4IHRvIHRoZSBnaXZlbiBwYXRoLiBJdCBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHBhdGhcbiAqIGlzIGluZGVlZCBzdGFydGluZyB3aXRoIGEgc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4Pzogc3RyaW5nKSB7XG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgIXByZWZpeCkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBgJHtwcmVmaXh9JHtwYXRobmFtZX0ke3F1ZXJ5fSR7aGFzaH1gXG59XG4iXSwibmFtZXMiOlsiYWRkUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giLCJwYXJzZVBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathSuffix\", ({\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith('/') || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU9nQkE7OztlQUFBQTs7O3VDQVBVO0FBT25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVHLFdBQVdGLFNBQVNHLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogU2ltaWxhcmx5IHRvIGBhZGRQYXRoUHJlZml4YCwgdGhpcyBmdW5jdGlvbiBhZGRzIGEgc3VmZml4IGF0IHRoZSBlbmQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXRoLiBJdCBhbHNvIHdvcmtzIG9ubHkgZm9yIHBhdGhzIGVuc3VyaW5nIHRoZSBhcmd1bWVudCBzdGFydHNcbiAqIHdpdGggYSBzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhdGhTdWZmaXgocGF0aDogc3RyaW5nLCBzdWZmaXg/OiBzdHJpbmcpIHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhc3VmZml4KSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIGAke3BhdGhuYW1lfSR7c3VmZml4fSR7cXVlcnl9JHtoYXNofWBcbn1cbiJdLCJuYW1lcyI6WyJhZGRQYXRoU3VmZml4IiwicGF0aCIsInN1ZmZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.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 normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.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.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}\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFzQmdCQSxnQkFBZ0I7ZUFBaEJBOztJQW1DQUMsZUFBZTtlQUFmQTs7O2dEQXpEbUI7cUNBQ0o7QUFxQnhCLFNBQVNELGlCQUFpQkUsS0FBYTtJQUM1QyxPQUFPQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQ0xELE1BQU1FLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDakQsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNaLE9BQU9EO1FBQ1Q7UUFFQSxzQkFBc0I7UUFDdEIsSUFBSUksQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZUgsVUFBVTtZQUMzQixPQUFPRDtRQUNUO1FBRUEsaUNBQWlDO1FBQ2pDLElBQUlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSztZQUN0QixPQUFPRDtRQUNUO1FBRUEsdURBQXVEO1FBQ3ZELElBQ0dDLENBQUFBLFlBQVksVUFBVUEsWUFBWSxRQUFNLElBQ3pDQyxVQUFVQyxTQUFTRSxNQUFNLEdBQUcsR0FDNUI7WUFDQSxPQUFPTDtRQUNUO1FBRUEsT0FBVUEsV0FBUyxNQUFHQztJQUN4QixHQUFHO0FBRVA7QUFNTyxTQUFTTixnQkFBZ0JXLEdBQVc7SUFDekMsT0FBT0EsSUFBSUMsT0FBTyxDQUNoQixlQUNBO0FBR0oiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZUxlYWRpbmdTbGFzaCB9IGZyb20gJy4uLy4uL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaCdcbmltcG9ydCB7IGlzR3JvdXBTZWdtZW50IH0gZnJvbSAnLi4vLi4vc2VnbWVudCdcblxuLyoqXG4gKiBOb3JtYWxpemVzIGFuIGFwcCByb3V0ZSBzbyBpdCByZXByZXNlbnRzIHRoZSBhY3R1YWwgcmVxdWVzdCBwYXRoLiBFc3NlbnRpYWxseVxuICogcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uczpcbiAqXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9wYWdlYCB0byBgL2BcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9yb3V0ZWAgdG8gYC9gXG4gKiAtIGAvYCB0byBgL2BcbiAqXG4gKiBAcGFyYW0gcm91dGUgdGhlIGFwcCByb3V0ZSB0byBub3JtYWxpemVcbiAqIEByZXR1cm5zIHRoZSBub3JtYWxpemVkIHBhdGhuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBcHBQYXRoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGVuc3VyZUxlYWRpbmdTbGFzaChcbiAgICByb3V0ZS5zcGxpdCgnLycpLnJlZHVjZSgocGF0aG5hbWUsIHNlZ21lbnQsIGluZGV4LCBzZWdtZW50cykgPT4ge1xuICAgICAgLy8gRW1wdHkgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoIXNlZ21lbnQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIEdyb3VwcyBhcmUgaWdub3JlZC5cbiAgICAgIGlmIChpc0dyb3VwU2VnbWVudChzZWdtZW50KSkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gUGFyYWxsZWwgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoc2VnbWVudFswXSA9PT0gJ0AnKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBzZWdtZW50IChpZiBpdCdzIGEgbGVhZikgc2hvdWxkIGJlIGlnbm9yZWQuXG4gICAgICBpZiAoXG4gICAgICAgIChzZWdtZW50ID09PSAncGFnZScgfHwgc2VnbWVudCA9PT0gJ3JvdXRlJykgJiZcbiAgICAgICAgaW5kZXggPT09IHNlZ21lbnRzLmxlbmd0aCAtIDFcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAke3BhdGhuYW1lfS8ke3NlZ21lbnR9YFxuICAgIH0sICcnKVxuICApXG59XG5cbi8qKlxuICogU3RyaXBzIHRoZSBgLnJzY2AgZXh0ZW5zaW9uIGlmIGl0J3MgaW4gdGhlIHBhdGhuYW1lLlxuICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9uIGZ1bGwgdXJscyBpdCBjaGVja3MgYD9gIGZvciBzZWFyY2hQYXJhbXMgaGFuZGxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSc2NVUkwodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHVybC5yZXBsYWNlKFxuICAgIC9cXC5yc2MoJHxcXD8pLyxcbiAgICAvLyAkMSBlbnN1cmVzIGA/YCBpcyBwcmVzZXJ2ZWRcbiAgICAnJDEnXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVBcHBQYXRoIiwibm9ybWFsaXplUnNjVVJMIiwicm91dGUiLCJlbnN1cmVMZWFkaW5nU2xhc2giLCJzcGxpdCIsInJlZHVjZSIsInBhdGhuYW1lIiwic2VnbWVudCIsImluZGV4Iiwic2VnbWVudHMiLCJpc0dyb3VwU2VnbWVudCIsImxlbmd0aCIsInVybCIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js ***!
|
||
\*************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"formatNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _addpathsuffix = __webpack_require__(/*! ./add-path-suffix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === '/' ? 'index.json' : '.json');\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7OzswREFXZ0JBOzs7ZUFBQUE7OztpREFWb0I7MkNBQ047MkNBQ0E7dUNBQ0o7QUFPbkIsU0FBU0EsdUJBQXVCQyxJQUFrQjtJQUN2RCxJQUFJQyxXQUFXQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUNiRixLQUFLQyxRQUFRLEVBQ2JELEtBQUtHLE1BQU0sRUFDWEgsS0FBS0ksT0FBTyxHQUFHQyxZQUFZTCxLQUFLTSxhQUFhLEVBQzdDTixLQUFLTyxZQUFZO0lBR25CLElBQUlQLEtBQUtJLE9BQU8sSUFBSSxDQUFDSixLQUFLUSxhQUFhLEVBQUU7UUFDdkNQLFdBQVdRLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JSO0lBQ2pDO0lBRUEsSUFBSUQsS0FBS0ksT0FBTyxFQUFFO1FBQ2hCSCxXQUFXUyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUNUQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVixVQUFXLGlCQUFjRCxLQUFLSSxPQUFPLEdBQ25ESixLQUFLQyxRQUFRLEtBQUssTUFBTSxlQUFlO0lBRTNDO0lBRUFBLFdBQVdVLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNWLFVBQVVELEtBQUtZLFFBQVE7SUFDaEQsT0FBTyxDQUFDWixLQUFLSSxPQUFPLElBQUlKLEtBQUtRLGFBQWEsR0FDdEMsQ0FBQ1AsU0FBU1ksUUFBUSxDQUFDLE9BQ2pCSCxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVCxVQUFVLE9BQ3hCQSxXQUNGUSxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CUjtBQUMxQiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmV4dFBhdGhuYW1lSW5mbyB9IGZyb20gJy4vZ2V0LW5leHQtcGF0aG5hbWUtaW5mbydcbmltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuL3JlbW92ZS10cmFpbGluZy1zbGFzaCdcbmltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tICcuL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IGFkZFBhdGhTdWZmaXggfSBmcm9tICcuL2FkZC1wYXRoLXN1ZmZpeCdcbmltcG9ydCB7IGFkZExvY2FsZSB9IGZyb20gJy4vYWRkLWxvY2FsZSdcblxuaW50ZXJmYWNlIEV4dGVuZGVkSW5mbyBleHRlbmRzIE5leHRQYXRobmFtZUluZm8ge1xuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nXG4gIGlnbm9yZVByZWZpeD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE5leHRQYXRobmFtZUluZm8oaW5mbzogRXh0ZW5kZWRJbmZvKSB7XG4gIGxldCBwYXRobmFtZSA9IGFkZExvY2FsZShcbiAgICBpbmZvLnBhdGhuYW1lLFxuICAgIGluZm8ubG9jYWxlLFxuICAgIGluZm8uYnVpbGRJZCA/IHVuZGVmaW5lZCA6IGluZm8uZGVmYXVsdExvY2FsZSxcbiAgICBpbmZvLmlnbm9yZVByZWZpeFxuICApXG5cbiAgaWYgKGluZm8uYnVpbGRJZCB8fCAhaW5mby50cmFpbGluZ1NsYXNoKSB7XG4gICAgcGF0aG5hbWUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxuICB9XG5cbiAgaWYgKGluZm8uYnVpbGRJZCkge1xuICAgIHBhdGhuYW1lID0gYWRkUGF0aFN1ZmZpeChcbiAgICAgIGFkZFBhdGhQcmVmaXgocGF0aG5hbWUsIGAvX25leHQvZGF0YS8ke2luZm8uYnVpbGRJZH1gKSxcbiAgICAgIGluZm8ucGF0aG5hbWUgPT09ICcvJyA/ICdpbmRleC5qc29uJyA6ICcuanNvbidcbiAgICApXG4gIH1cblxuICBwYXRobmFtZSA9IGFkZFBhdGhQcmVmaXgocGF0aG5hbWUsIGluZm8uYmFzZVBhdGgpXG4gIHJldHVybiAhaW5mby5idWlsZElkICYmIGluZm8udHJhaWxpbmdTbGFzaFxuICAgID8gIXBhdGhuYW1lLmVuZHNXaXRoKCcvJylcbiAgICAgID8gYWRkUGF0aFN1ZmZpeChwYXRobmFtZSwgJy8nKVxuICAgICAgOiBwYXRobmFtZVxuICAgIDogcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXROZXh0UGF0aG5hbWVJbmZvIiwiaW5mbyIsInBhdGhuYW1lIiwiYWRkTG9jYWxlIiwibG9jYWxlIiwiYnVpbGRJZCIsInVuZGVmaW5lZCIsImRlZmF1bHRMb2NhbGUiLCJpZ25vcmVQcmVmaXgiLCJ0cmFpbGluZ1NsYXNoIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImFkZFBhdGhTdWZmaXgiLCJhZGRQYXRoUHJlZml4IiwiYmFzZVBhdGgiLCJlbmRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 PARAMETER_PATTERN: function() {\n return PARAMETER_PATTERN;\n },\n getDynamicParam: function() {\n return getDynamicParam;\n },\n parseMatchedParameter: function() {\n return parseMatchedParameter;\n },\n parseParameter: function() {\n return parseParameter;\n }\n});\nfunction getDynamicParam(params, segmentKey, dynamicParamType, pagePath, fallbackRouteParams) {\n let value = params[segmentKey];\n if (fallbackRouteParams && fallbackRouteParams.has(segmentKey)) {\n value = fallbackRouteParams.get(segmentKey);\n } else 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 const isCatchall = dynamicParamType === 'c';\n const isOptionalCatchall = dynamicParamType === 'oc';\n if (isCatchall || isOptionalCatchall) {\n // handle the case where an optional catchall does not have a value,\n // e.g. `/dashboard/[[...slug]]` when requesting `/dashboard`\n if (isOptionalCatchall) {\n return {\n param: segmentKey,\n value: null,\n type: dynamicParamType,\n treeSegment: [\n segmentKey,\n '',\n dynamicParamType\n ]\n };\n }\n // handle the case where a catchall or optional catchall does not have a value,\n // e.g. `/foo/bar/hello` and `@slot/[...catchall]` or `@slot/[[...catchall]]` is matched\n value = pagePath.split('/') // remove the first empty string\n .slice(1) // replace any dynamic params with the actual values\n .flatMap((pathSegment)=>{\n const param = parseParameter(pathSegment);\n var _params_param_key;\n // if the segment matches a param, return the param value\n // otherwise, it's a static segment, so just return that\n return (_params_param_key = params[param.key]) != null ? _params_param_key : param.key;\n });\n return {\n param: segmentKey,\n value,\n type: dynamicParamType,\n // This value always has to be a string.\n treeSegment: [\n segmentKey,\n value.join('/'),\n dynamicParamType\n ]\n };\n }\n }\n return {\n param: segmentKey,\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 segmentKey,\n Array.isArray(value) ? value.join('/') : value,\n dynamicParamType\n ],\n type: dynamicParamType\n };\n}\nconst PARAMETER_PATTERN = /^([^[]*)\\[((?:\\[[^\\]]*\\])|[^\\]]+)\\](.*)$/;\nfunction parseParameter(param) {\n const match = param.match(PARAMETER_PATTERN);\n if (!match) {\n return parseMatchedParameter(param);\n }\n return parseMatchedParameter(match[2]);\n}\nfunction parseMatchedParameter(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} //# sourceMappingURL=get-dynamic-param.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1keW5hbWljLXBhcmFtLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQStGYUEsaUJBQWlCO2VBQWpCQTs7SUFoRkdDLGVBQWU7ZUFBZkE7O0lBbUhBQyxxQkFBcUI7ZUFBckJBOztJQXJCQUMsY0FBYztlQUFkQTs7O0FBOUZULFNBQVNGLGdCQUNkRyxNQUE4QixFQUM5QkMsVUFBa0IsRUFDbEJDLGdCQUF3QyxFQUN4Q0MsUUFBZ0IsRUFDaEJDLG1CQUErQztJQUUvQyxJQUFJQyxRQUFRTCxNQUFNLENBQUNDLFdBQVc7SUFFOUIsSUFBSUcsdUJBQXVCQSxvQkFBb0JFLEdBQUcsQ0FBQ0wsYUFBYTtRQUM5REksUUFBUUQsb0JBQW9CRyxHQUFHLENBQUNOO0lBQ2xDLE9BQU8sSUFBSU8sTUFBTUMsT0FBTyxDQUFDSixRQUFRO1FBQy9CQSxRQUFRQSxNQUFNSyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUMsbUJBQW1CRDtJQUM5QyxPQUFPLElBQUksT0FBT04sVUFBVSxVQUFVO1FBQ3BDQSxRQUFRTyxtQkFBbUJQO0lBQzdCO0lBRUEsSUFBSSxDQUFDQSxPQUFPO1FBQ1YsTUFBTVEsYUFBYVgscUJBQXFCO1FBQ3hDLE1BQU1ZLHFCQUFxQloscUJBQXFCO1FBRWhELElBQUlXLGNBQWNDLG9CQUFvQjtZQUNwQyxvRUFBb0U7WUFDcEUsNkRBQTZEO1lBQzdELElBQUlBLG9CQUFvQjtnQkFDdEIsT0FBTztvQkFDTEMsT0FBT2Q7b0JBQ1BJLE9BQU87b0JBQ1BXLE1BQU1kO29CQUNOZSxhQUFhO3dCQUFDaEI7d0JBQVk7d0JBQUlDO3FCQUFpQjtnQkFDakQ7WUFDRjtZQUVBLCtFQUErRTtZQUMvRSx3RkFBd0Y7WUFDeEZHLFFBQVFGLFNBQ0xlLEtBQUssQ0FBQyxLQUNQLGdDQUFnQzthQUMvQkMsS0FBSyxDQUFDLEdBQ1Asb0RBQW9EO2FBQ25EQyxPQUFPLENBQUMsQ0FBQ0M7Z0JBQ1IsTUFBTU4sUUFBUWhCLGVBQWVzQjtvQkFHdEJyQjtnQkFGUCx5REFBeUQ7Z0JBQ3pELHdEQUF3RDtnQkFDeEQsT0FBT0EsQ0FBQUEsb0JBQUFBLE1BQU0sQ0FBQ2UsTUFBTU8sSUFBRyxLQUFDLE9BQWpCdEIsb0JBQXFCZSxNQUFNTyxHQUFHO1lBQ3ZDO1lBRUYsT0FBTztnQkFDTFAsT0FBT2Q7Z0JBQ1BJO2dCQUNBVyxNQUFNZDtnQkFDTix3Q0FBd0M7Z0JBQ3hDZSxhQUFhO29CQUFDaEI7b0JBQVlJLE1BQU1rQixJQUFJLENBQUM7b0JBQU1yQjtpQkFBaUI7WUFDOUQ7UUFDRjtJQUNGO0lBRUEsT0FBTztRQUNMYSxPQUFPZDtRQUNQLHlDQUF5QztRQUN6Q0ksT0FBT0E7UUFDUCxpREFBaUQ7UUFDakRZLGFBQWE7WUFDWGhCO1lBQ0FPLE1BQU1DLE9BQU8sQ0FBQ0osU0FBU0EsTUFBTWtCLElBQUksQ0FBQyxPQUFPbEI7WUFDekNIO1NBQ0Q7UUFDRGMsTUFBTWQ7SUFDUjtBQUNGO0FBV08sTUFBTU4sb0JBQW9CO0FBYzFCLFNBQVNHLGVBQWVnQixLQUFhO0lBQzFDLE1BQU1TLFFBQVFULE1BQU1TLEtBQUssQ0FBQzVCO0lBRTFCLElBQUksQ0FBQzRCLE9BQU87UUFDVixPQUFPMUIsc0JBQXNCaUI7SUFDL0I7SUFFQSxPQUFPakIsc0JBQXNCMEIsS0FBSyxDQUFDLEVBQUU7QUFDdkM7QUFhTyxTQUFTMUIsc0JBQXNCaUIsS0FBYTtJQUNqRCxNQUFNVSxXQUFXVixNQUFNVyxVQUFVLENBQUMsUUFBUVgsTUFBTVksUUFBUSxDQUFDO0lBQ3pELElBQUlGLFVBQVU7UUFDWlYsUUFBUUEsTUFBTUksS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUMxQjtJQUNBLE1BQU1TLFNBQVNiLE1BQU1XLFVBQVUsQ0FBQztJQUNoQyxJQUFJRSxRQUFRO1FBQ1ZiLFFBQVFBLE1BQU1JLEtBQUssQ0FBQztJQUN0QjtJQUNBLE9BQU87UUFBRUcsS0FBS1A7UUFBT2E7UUFBUUg7SUFBUztBQUN4QyIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtZHluYW1pYy1wYXJhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IER5bmFtaWNQYXJhbSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL2FwcC1yZW5kZXInXG5pbXBvcnQgdHlwZSB7IER5bmFtaWNQYXJhbVR5cGVzU2hvcnQgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB0eXBlIHsgRmFsbGJhY2tSb3V0ZVBhcmFtcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9yZXF1ZXN0L2ZhbGxiYWNrLXBhcmFtcydcblxuLyoqXG4gKlxuICogU2hhcmVkIGxvZ2ljIG9uIGNsaWVudCBhbmQgc2VydmVyIGZvciBjcmVhdGluZyBhIGR5bmFtaWMgcGFyYW0gdmFsdWUuXG4gKlxuICogVGhpcyBjb2RlIG5lZWRzIHRvIGJlIHNoYXJlZCB3aXRoIHRoZSBjbGllbnQgc28gaXQgY2FuIGV4dHJhY3QgZHluYW1pYyByb3V0ZVxuICogcGFyYW1zIGZyb20gdGhlIFVSTCB3aXRob3V0IGEgc2VydmVyIHJlcXVlc3QuXG4gKlxuICogQmVjYXVzZSBldmVyeXRoaW5nIGluIHRoaXMgbW9kdWxlIGlzIHNlbnQgdG8gdGhlIGNsaWVudCwgd2Ugc2hvdWxkIGFpbSB0b1xuICoga2VlcCB0aGlzIGNvZGUgYXMgc2ltcGxlIGFzIHBvc3NpYmxlLiBUaGUgc3BlY2lhbCBjYXNlIGhhbmRsaW5nIGZvciBjYXRjaGFsbFxuICogYW5kIG9wdGlvbmFsIGlzLCBhbGFzLCB1bmZvcnR1bmF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldER5bmFtaWNQYXJhbShcbiAgcGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICBzZWdtZW50S2V5OiBzdHJpbmcsXG4gIGR5bmFtaWNQYXJhbVR5cGU6IER5bmFtaWNQYXJhbVR5cGVzU2hvcnQsXG4gIHBhZ2VQYXRoOiBzdHJpbmcsXG4gIGZhbGxiYWNrUm91dGVQYXJhbXM6IEZhbGxiYWNrUm91dGVQYXJhbXMgfCBudWxsXG4pOiBEeW5hbWljUGFyYW0ge1xuICBsZXQgdmFsdWUgPSBwYXJhbXNbc2VnbWVudEtleV1cblxuICBpZiAoZmFsbGJhY2tSb3V0ZVBhcmFtcyAmJiBmYWxsYmFja1JvdXRlUGFyYW1zLmhhcyhzZWdtZW50S2V5KSkge1xuICAgIHZhbHVlID0gZmFsbGJhY2tSb3V0ZVBhcmFtcy5nZXQoc2VnbWVudEtleSlcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHZhbHVlID0gdmFsdWUubWFwKChpKSA9PiBlbmNvZGVVUklDb21wb25lbnQoaSkpXG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHZhbHVlID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKVxuICB9XG5cbiAgaWYgKCF2YWx1ZSkge1xuICAgIGNvbnN0IGlzQ2F0Y2hhbGwgPSBkeW5hbWljUGFyYW1UeXBlID09PSAnYydcbiAgICBjb25zdCBpc09wdGlvbmFsQ2F0Y2hhbGwgPSBkeW5hbWljUGFyYW1UeXBlID09PSAnb2MnXG5cbiAgICBpZiAoaXNDYXRjaGFsbCB8fCBpc09wdGlvbmFsQ2F0Y2hhbGwpIHtcbiAgICAgIC8vIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhbiBvcHRpb25hbCBjYXRjaGFsbCBkb2VzIG5vdCBoYXZlIGEgdmFsdWUsXG4gICAgICAvLyBlLmcuIGAvZGFzaGJvYXJkL1tbLi4uc2x1Z11dYCB3aGVuIHJlcXVlc3RpbmcgYC9kYXNoYm9hcmRgXG4gICAgICBpZiAoaXNPcHRpb25hbENhdGNoYWxsKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGFyYW06IHNlZ21lbnRLZXksXG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgdHlwZTogZHluYW1pY1BhcmFtVHlwZSxcbiAgICAgICAgICB0cmVlU2VnbWVudDogW3NlZ21lbnRLZXksICcnLCBkeW5hbWljUGFyYW1UeXBlXSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBjYXRjaGFsbCBvciBvcHRpb25hbCBjYXRjaGFsbCBkb2VzIG5vdCBoYXZlIGEgdmFsdWUsXG4gICAgICAvLyBlLmcuIGAvZm9vL2Jhci9oZWxsb2AgYW5kIGBAc2xvdC9bLi4uY2F0Y2hhbGxdYCBvciBgQHNsb3QvW1suLi5jYXRjaGFsbF1dYCBpcyBtYXRjaGVkXG4gICAgICB2YWx1ZSA9IHBhZ2VQYXRoXG4gICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgIC8vIHJlbW92ZSB0aGUgZmlyc3QgZW1wdHkgc3RyaW5nXG4gICAgICAgIC5zbGljZSgxKVxuICAgICAgICAvLyByZXBsYWNlIGFueSBkeW5hbWljIHBhcmFtcyB3aXRoIHRoZSBhY3R1YWwgdmFsdWVzXG4gICAgICAgIC5mbGF0TWFwKChwYXRoU2VnbWVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhcmFtID0gcGFyc2VQYXJhbWV0ZXIocGF0aFNlZ21lbnQpXG4gICAgICAgICAgLy8gaWYgdGhlIHNlZ21lbnQgbWF0Y2hlcyBhIHBhcmFtLCByZXR1cm4gdGhlIHBhcmFtIHZhbHVlXG4gICAgICAgICAgLy8gb3RoZXJ3aXNlLCBpdCdzIGEgc3RhdGljIHNlZ21lbnQsIHNvIGp1c3QgcmV0dXJuIHRoYXRcbiAgICAgICAgICByZXR1cm4gcGFyYW1zW3BhcmFtLmtleV0gPz8gcGFyYW0ua2V5XG4gICAgICAgIH0pXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtOiBzZWdtZW50S2V5LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgdHlwZTogZHluYW1pY1BhcmFtVHlwZSxcbiAgICAgICAgLy8gVGhpcyB2YWx1ZSBhbHdheXMgaGFzIHRvIGJlIGEgc3RyaW5nLlxuICAgICAgICB0cmVlU2VnbWVudDogW3NlZ21lbnRLZXksIHZhbHVlLmpvaW4oJy8nKSwgZHluYW1pY1BhcmFtVHlwZV0sXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwYXJhbTogc2VnbWVudEtleSxcbiAgICAvLyBUaGUgdmFsdWUgdGhhdCBpcyBwYXNzZWQgdG8gdXNlciBjb2RlLlxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAvLyBUaGUgdmFsdWUgdGhhdCBpcyByZW5kZXJlZCBpbiB0aGUgcm91dGVyIHRyZWUuXG4gICAgdHJlZVNlZ21lbnQ6IFtcbiAgICAgIHNlZ21lbnRLZXksXG4gICAgICBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oJy8nKSA6IHZhbHVlLFxuICAgICAgZHluYW1pY1BhcmFtVHlwZSxcbiAgICBdLFxuICAgIHR5cGU6IGR5bmFtaWNQYXJhbVR5cGUsXG4gIH1cbn1cblxuLyoqXG4gKiBSZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB1c2VkIHRvIG1hdGNoIHJvdXRlIHBhcmFtZXRlcnMuXG4gKiBNYXRjaGVzIGJvdGggc2luZ2xlIHBhcmFtZXRlcnMgYW5kIHBhcmFtZXRlciBncm91cHMuXG4gKiBFeGFtcGxlczpcbiAqICAgLSBgW1suLi5zbHVnXV1gIG1hdGNoZXMgcGFyYW1ldGVyIGdyb3VwIHdpdGgga2V5ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogdHJ1ZVxuICogICAtIGBbLi4uc2x1Z11gIG1hdGNoZXMgcGFyYW1ldGVyIGdyb3VwIHdpdGgga2V5ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogZmFsc2VcbiAqICAgLSBgW1tmb29dXWAgbWF0Y2hlcyBwYXJhbWV0ZXIgd2l0aCBrZXkgJ2ZvbycsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlXG4gKiAgIC0gYFtiYXJdYCBtYXRjaGVzIHBhcmFtZXRlciB3aXRoIGtleSAnYmFyJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlXG4gKi9cbmV4cG9ydCBjb25zdCBQQVJBTUVURVJfUEFUVEVSTiA9IC9eKFteW10qKVxcWygoPzpcXFtbXlxcXV0qXFxdKXxbXlxcXV0rKVxcXSguKikkL1xuXG4vKipcbiAqIFBhcnNlcyBhIGdpdmVuIHBhcmFtZXRlciBmcm9tIGEgcm91dGUgdG8gYSBkYXRhIHN0cnVjdHVyZSB0aGF0IGNhbiBiZSB1c2VkXG4gKiB0byBnZW5lcmF0ZSB0aGUgcGFyYW1ldHJpemVkIHJvdXRlLlxuICogRXhhbXBsZXM6XG4gKiAgIC0gYFtbLi4uc2x1Z11dYCAtPiBgeyBrZXk6ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9YFxuICogICAtIGBbLi4uc2x1Z11gIC0+IGB7IGtleTogJ3NsdWcnLCByZXBlYXQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICogICAtIGBbW2Zvb11dYCAtPiBgeyBrZXk6ICdmb28nLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSB9YFxuICogICAtIGBbYmFyXWAgLT4gYHsga2V5OiAnYmFyJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiAgIC0gYGZpenpgIC0+IGB7IGtleTogJ2ZpenonLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogZmFsc2UgfWBcbiAqIEBwYXJhbSBwYXJhbSAtIFRoZSBwYXJhbWV0ZXIgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHBhcmFtZXRlciBhcyBhIGRhdGEgc3RydWN0dXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYXJhbWV0ZXIocGFyYW06IHN0cmluZykge1xuICBjb25zdCBtYXRjaCA9IHBhcmFtLm1hdGNoKFBBUkFNRVRFUl9QQVRURVJOKVxuXG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHBhcmFtKVxuICB9XG5cbiAgcmV0dXJuIHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihtYXRjaFsyXSlcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBtYXRjaGVkIHBhcmFtZXRlciBmcm9tIHRoZSBQQVJBTUVURVJfUEFUVEVSTiByZWdleCB0byBhIGRhdGEgc3RydWN0dXJlIHRoYXQgY2FuIGJlIHVzZWRcbiAqIHRvIGdlbmVyYXRlIHRoZSBwYXJhbWV0cml6ZWQgcm91dGUuXG4gKiBFeGFtcGxlczpcbiAqICAgLSBgWy4uLnNsdWddYCAtPiBgeyBrZXk6ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9YFxuICogICAtIGAuLi5zbHVnYCAtPiBgeyBrZXk6ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogZmFsc2UgfWBcbiAqICAgLSBgW2Zvb11gIC0+IGB7IGtleTogJ2ZvbycsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlIH1gXG4gKiAgIC0gYGJhcmAgLT4gYHsga2V5OiAnYmFyJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiBAcGFyYW0gcGFyYW0gLSBUaGUgbWF0Y2hlZCBwYXJhbWV0ZXIgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHBhcmFtZXRlciBhcyBhIGRhdGEgc3RydWN0dXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHBhcmFtOiBzdHJpbmcpIHtcbiAgY29uc3Qgb3B0aW9uYWwgPSBwYXJhbS5zdGFydHNXaXRoKCdbJykgJiYgcGFyYW0uZW5kc1dpdGgoJ10nKVxuICBpZiAob3B0aW9uYWwpIHtcbiAgICBwYXJhbSA9IHBhcmFtLnNsaWNlKDEsIC0xKVxuICB9XG4gIGNvbnN0IHJlcGVhdCA9IHBhcmFtLnN0YXJ0c1dpdGgoJy4uLicpXG4gIGlmIChyZXBlYXQpIHtcbiAgICBwYXJhbSA9IHBhcmFtLnNsaWNlKDMpXG4gIH1cbiAgcmV0dXJuIHsga2V5OiBwYXJhbSwgcmVwZWF0LCBvcHRpb25hbCB9XG59XG4iXSwibmFtZXMiOlsiUEFSQU1FVEVSX1BBVFRFUk4iLCJnZXREeW5hbWljUGFyYW0iLCJwYXJzZU1hdGNoZWRQYXJhbWV0ZXIiLCJwYXJzZVBhcmFtZXRlciIsInBhcmFtcyIsInNlZ21lbnRLZXkiLCJkeW5hbWljUGFyYW1UeXBlIiwicGFnZVBhdGgiLCJmYWxsYmFja1JvdXRlUGFyYW1zIiwidmFsdWUiLCJoYXMiLCJnZXQiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJpIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiaXNDYXRjaGFsbCIsImlzT3B0aW9uYWxDYXRjaGFsbCIsInBhcmFtIiwidHlwZSIsInRyZWVTZWdtZW50Iiwic3BsaXQiLCJzbGljZSIsImZsYXRNYXAiLCJwYXRoU2VnbWVudCIsImtleSIsImpvaW4iLCJtYXRjaCIsIm9wdGlvbmFsIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwicmVwZWF0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js ***!
|
||
\**********************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n}));\nconst _normalizelocalepath = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _removepathprefix = __webpack_require__(/*! ./remove-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\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, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.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, _normalizelocalepath.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, _normalizelocalepath.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFvRGdCQTs7O2VBQUFBOzs7aURBcERvQjs4Q0FDSDsyQ0FDSDtBQWtEdkIsU0FBU0Esb0JBQ2RDLFFBQWdCLEVBQ2hCQyxPQUFnQjtRQUUwQkE7SUFBMUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsYUFBYSxFQUFFLEdBQUdILENBQUFBLHNCQUFBQSxRQUFRSSxVQUFBQSxLQUFVLE9BQWxCSixzQkFBc0IsQ0FBQztJQUNqRSxNQUFNSyxPQUF5QjtRQUM3Qk47UUFDQUksZUFBZUosYUFBYSxNQUFNQSxTQUFTTyxRQUFRLENBQUMsT0FBT0g7SUFDN0Q7SUFFQSxJQUFJRixZQUFZTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixLQUFLTixRQUFRLEVBQUVFLFdBQVc7UUFDdERJLEtBQUtOLFFBQVEsR0FBR1MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQkgsS0FBS04sUUFBUSxFQUFFRTtRQUNoREksS0FBS0osUUFBUSxHQUFHQTtJQUNsQjtJQUNBLElBQUlRLHVCQUF1QkosS0FBS04sUUFBUTtJQUV4QyxJQUNFTSxLQUFLTixRQUFRLENBQUNXLFVBQVUsQ0FBQyxtQkFDekJMLEtBQUtOLFFBQVEsQ0FBQ08sUUFBUSxDQUFDLFVBQ3ZCO1FBQ0EsTUFBTUssUUFBUU4sS0FBS04sUUFBUSxDQUN4QmEsT0FBTyxDQUFDLG9CQUFvQixJQUM1QkEsT0FBTyxDQUFDLFdBQVcsSUFDbkJDLEtBQUssQ0FBQztRQUVULE1BQU1DLFVBQVVILEtBQUssQ0FBQyxFQUFFO1FBQ3hCTixLQUFLUyxPQUFPLEdBQUdBO1FBQ2ZMLHVCQUNFRSxLQUFLLENBQUMsRUFBRSxLQUFLLFVBQVcsTUFBR0EsTUFBTUksS0FBSyxDQUFDLEdBQUdDLElBQUksQ0FBQyxPQUFTO1FBRTFELHNEQUFzRDtRQUN0RCxrREFBa0Q7UUFDbEQsSUFBSWhCLFFBQVFpQixTQUFTLEtBQUssTUFBTTtZQUM5QlosS0FBS04sUUFBUSxHQUFHVTtRQUNsQjtJQUNGO0lBRUEsNEVBQTRFO0lBQzVFLHlCQUF5QjtJQUN6QixJQUFJUCxNQUFNO1FBQ1IsSUFBSWdCLFNBQVNsQixRQUFRbUIsWUFBWSxHQUM3Qm5CLFFBQVFtQixZQUFZLENBQUNDLE9BQU8sQ0FBQ2YsS0FBS04sUUFBUSxJQUMxQ3NCLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JoQixLQUFLTixRQUFRLEVBQUVHLEtBQUtvQixPQUFPO1FBRW5EakIsS0FBS2tCLE1BQU0sR0FBR0wsT0FBT00sY0FBYztZQUNuQk47UUFBaEJiLEtBQUtOLFFBQVEsR0FBR21CLENBQUFBLG1CQUFBQSxPQUFPbkIsUUFBQUEsS0FBUSxPQUFmbUIsbUJBQW1CYixLQUFLTixRQUFRO1FBRWhELElBQUksQ0FBQ21CLE9BQU9NLGNBQWMsSUFBSW5CLEtBQUtTLE9BQU8sRUFBRTtZQUMxQ0ksU0FBU2xCLFFBQVFtQixZQUFZLEdBQ3pCbkIsUUFBUW1CLFlBQVksQ0FBQ0MsT0FBTyxDQUFDWCx3QkFDN0JZLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JaLHNCQUFzQlAsS0FBS29CLE9BQU87WUFFMUQsSUFBSUosT0FBT00sY0FBYyxFQUFFO2dCQUN6Qm5CLEtBQUtrQixNQUFNLEdBQUdMLE9BQU9NLGNBQWM7WUFDckM7UUFDRjtJQUNGO0lBQ0EsT0FBT25CO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVMb2NhbGVQYXRoIH0gZnJvbSAnLi4vLi4vaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnXG5pbXBvcnQgeyByZW1vdmVQYXRoUHJlZml4IH0gZnJvbSAnLi9yZW1vdmUtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi9wYXRoLWhhcy1wcmVmaXgnXG5pbXBvcnQgdHlwZSB7IEkxOE5Qcm92aWRlciB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9saWIvaTE4bi1wcm92aWRlcidcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIHBhdGggaW4gY2FzZSB0aGUgcGF0aG5hbWUgaW5jbHVkZWQgaXQuXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIGJ1aWxkSWQgZm9yIHdoZW4gdGhlIHBhcnNlZCBVUkwgaXMgYSBkYXRhIFVSTC4gUGFyc2luZyBpdCBjYW4gYmVcbiAgICogZGlzYWJsZWQgd2l0aCB0aGUgYHBhcnNlRGF0YWAgb3B0aW9uLlxuICAgKi9cbiAgYnVpbGRJZD86IHN0cmluZ1xuICAvKipcbiAgICogSWYgdGhlcmUgd2FzIGEgbG9jYWxlIGluIHRoZSBwYXRobmFtZSwgdGhpcyB3aWxsIGhvbGQgaXRzIHZhbHVlLlxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgcHJvY2Vzc2VkIHBhdGhuYW1lIHdpdGhvdXQgYSBiYXNlIHBhdGgsIGxvY2FsZSwgb3IgZGF0YSBVUkwgZWxlbWVudHNcbiAgICogd2hlbiBwYXJzaW5nIGl0IGlzIGVuYWJsZWQuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBBIGJvb2xlYW4gdGVsbGluZyBpZiB0aGUgcGF0aG5hbWUgaGFkIGEgdHJhaWxpbmdTbGFzaC4gVGhpcyBjYW4gYmUgb25seVxuICAgKiB0cnVlIGlmIHRyYWlsaW5nU2xhc2ggaXMgZW5hYmxlZC5cbiAgICovXG4gIHRyYWlsaW5nU2xhc2g/OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZW4gcGFzc2VkIHRvIHRydWUsIHRoaXMgZnVuY3Rpb24gd2lsbCBhbHNvIHBhcnNlIE5leHRqcyBkYXRhIFVSTHMuXG4gICAqL1xuICBwYXJzZURhdGE/OiBib29sZWFuXG4gIC8qKlxuICAgKiBBIHBhcnRpYWwgb2YgdGhlIE5leHQuanMgY29uZmlndXJhdGlvbiB0byBwYXJzZSB0aGUgVVJMLlxuICAgKi9cbiAgbmV4dENvbmZpZz86IHtcbiAgICBiYXNlUGF0aD86IHN0cmluZ1xuICAgIGkxOG4/OiB7IGxvY2FsZXM/OiByZWFkb25seSBzdHJpbmdbXSB9IHwgbnVsbFxuICAgIHRyYWlsaW5nU2xhc2g/OiBib29sZWFuXG4gIH1cblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoaXMgbm9ybWFsaXplciB3aWxsIGJlIHVzZWQgdG8gZGV0ZWN0IHRoZSBsb2NhbGUgaW5zdGVhZCBvZlxuICAgKiB0aGUgZGVmYXVsdCBsb2NhbGUgZGV0ZWN0aW9uLlxuICAgKi9cbiAgaTE4blByb3ZpZGVyPzogSTE4TlByb3ZpZGVyXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0UGF0aG5hbWVJbmZvKFxuICBwYXRobmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBPcHRpb25zXG4pOiBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgY29uc3QgeyBiYXNlUGF0aCwgaTE4biwgdHJhaWxpbmdTbGFzaCB9ID0gb3B0aW9ucy5uZXh0Q29uZmlnID8/IHt9XG4gIGNvbnN0IGluZm86IE5leHRQYXRobmFtZUluZm8gPSB7XG4gICAgcGF0aG5hbWUsXG4gICAgdHJhaWxpbmdTbGFzaDogcGF0aG5hbWUgIT09ICcvJyA/IHBhdGhuYW1lLmVuZHNXaXRoKCcvJykgOiB0cmFpbGluZ1NsYXNoLFxuICB9XG5cbiAgaWYgKGJhc2VQYXRoICYmIHBhdGhIYXNQcmVmaXgoaW5mby5wYXRobmFtZSwgYmFzZVBhdGgpKSB7XG4gICAgaW5mby5wYXRobmFtZSA9IHJlbW92ZVBhdGhQcmVmaXgoaW5mby5wYXRobmFtZSwgYmFzZVBhdGgpXG4gICAgaW5mby5iYXNlUGF0aCA9IGJhc2VQYXRoXG4gIH1cbiAgbGV0IHBhdGhuYW1lTm9EYXRhUHJlZml4ID0gaW5mby5wYXRobmFtZVxuXG4gIGlmIChcbiAgICBpbmZvLnBhdGhuYW1lLnN0YXJ0c1dpdGgoJy9fbmV4dC9kYXRhLycpICYmXG4gICAgaW5mby5wYXRobmFtZS5lbmRzV2l0aCgnLmpzb24nKVxuICApIHtcbiAgICBjb25zdCBwYXRocyA9IGluZm8ucGF0aG5hbWVcbiAgICAgIC5yZXBsYWNlKC9eXFwvX25leHRcXC9kYXRhXFwvLywgJycpXG4gICAgICAucmVwbGFjZSgvXFwuanNvbiQvLCAnJylcbiAgICAgIC5zcGxpdCgnLycpXG5cbiAgICBjb25zdCBidWlsZElkID0gcGF0aHNbMF1cbiAgICBpbmZvLmJ1aWxkSWQgPSBidWlsZElkXG4gICAgcGF0aG5hbWVOb0RhdGFQcmVmaXggPVxuICAgICAgcGF0aHNbMV0gIT09ICdpbmRleCcgPyBgLyR7cGF0aHMuc2xpY2UoMSkuam9pbignLycpfWAgOiAnLydcblxuICAgIC8vIHVwZGF0ZSBwYXRobmFtZSB3aXRoIG5vcm1hbGl6ZWQgaWYgZW5hYmxlZCBhbHRob3VnaFxuICAgIC8vIHdlIHVzZSBub3JtYWxpemVkIHRvIHBvcHVsYXRlIGxvY2FsZSBpbmZvIHN0aWxsXG4gICAgaWYgKG9wdGlvbnMucGFyc2VEYXRhID09PSB0cnVlKSB7XG4gICAgICBpbmZvLnBhdGhuYW1lID0gcGF0aG5hbWVOb0RhdGFQcmVmaXhcbiAgICB9XG4gIH1cblxuICAvLyBJZiBwcm92aWRlZCwgdXNlIHRoZSBsb2NhbGUgcm91dGUgbm9ybWFsaXplciB0byBkZXRlY3QgdGhlIGxvY2FsZSBpbnN0ZWFkXG4gIC8vIG9mIHRoZSBmdW5jdGlvbiBiZWxvdy5cbiAgaWYgKGkxOG4pIHtcbiAgICBsZXQgcmVzdWx0ID0gb3B0aW9ucy5pMThuUHJvdmlkZXJcbiAgICAgID8gb3B0aW9ucy5pMThuUHJvdmlkZXIuYW5hbHl6ZShpbmZvLnBhdGhuYW1lKVxuICAgICAgOiBub3JtYWxpemVMb2NhbGVQYXRoKGluZm8ucGF0aG5hbWUsIGkxOG4ubG9jYWxlcylcblxuICAgIGluZm8ubG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlXG4gICAgaW5mby5wYXRobmFtZSA9IHJlc3VsdC5wYXRobmFtZSA/PyBpbmZvLnBhdGhuYW1lXG5cbiAgICBpZiAoIXJlc3VsdC5kZXRlY3RlZExvY2FsZSAmJiBpbmZvLmJ1aWxkSWQpIHtcbiAgICAgIHJlc3VsdCA9IG9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICAgID8gb3B0aW9ucy5pMThuUHJvdmlkZXIuYW5hbHl6ZShwYXRobmFtZU5vRGF0YVByZWZpeClcbiAgICAgICAgOiBub3JtYWxpemVMb2NhbGVQYXRoKHBhdGhuYW1lTm9EYXRhUHJlZml4LCBpMThuLmxvY2FsZXMpXG5cbiAgICAgIGlmIChyZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgaW5mby5sb2NhbGUgPSByZXN1bHQuZGV0ZWN0ZWRMb2NhbGVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluZm9cbn1cbiJdLCJuYW1lcyI6WyJnZXROZXh0UGF0aG5hbWVJbmZvIiwicGF0aG5hbWUiLCJvcHRpb25zIiwiYmFzZVBhdGgiLCJpMThuIiwidHJhaWxpbmdTbGFzaCIsIm5leHRDb25maWciLCJpbmZvIiwiZW5kc1dpdGgiLCJwYXRoSGFzUHJlZml4IiwicmVtb3ZlUGF0aFByZWZpeCIsInBhdGhuYW1lTm9EYXRhUHJlZml4Iiwic3RhcnRzV2l0aCIsInBhdGhzIiwicmVwbGFjZSIsInNwbGl0IiwiYnVpbGRJZCIsInNsaWNlIiwiam9pbiIsInBhcnNlRGF0YSIsInJlc3VsdCIsImkxOG5Qcm92aWRlciIsImFuYWx5emUiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwibG9jYWxlcyIsImxvY2FsZSIsImRldGVjdGVkTG9jYWxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/html-bots.js ***!
|
||
\*********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n// Note: The pattern [\\w-]+-Google captures all Google crawlers with \"-Google\" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google)\n// as well as crawlers starting with \"Google-\" (e.g., Google-PageRenderer, Google-InspectionTool)\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTML_LIMITED_BOT_UA_RE\", ({\n enumerable: true,\n get: function() {\n return HTML_LIMITED_BOT_UA_RE;\n }\n}));\nconst HTML_LIMITED_BOT_UA_RE = /[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2h0bWwtYm90cy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2R0FBNkc7QUFDN0csc0tBQXNLO0FBQ3RLLGtKQUFrSjtBQUNsSixpR0FBaUc7Ozs7OzBEQUNwRkE7OztlQUFBQTs7O0FBQU4sTUFBTUEseUJBQ1giLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaHRtbC1ib3RzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgcmVnZXggY29udGFpbnMgdGhlIGJvdHMgdGhhdCB3ZSBuZWVkIHRvIGRvIGEgYmxvY2tpbmcgcmVuZGVyIGZvciBhbmQgY2FuJ3Qgc2FmZWx5IHN0cmVhbSB0aGUgcmVzcG9uc2Vcbi8vIGR1ZSB0byBob3cgdGhleSBwYXJzZSB0aGUgRE9NLiBGb3IgZXhhbXBsZSwgdGhleSBtaWdodCBleHBsaWNpdGx5IGNoZWNrIGZvciBtZXRhZGF0YSBpbiB0aGUgYGhlYWRgIHRhZywgc28gd2UgY2FuJ3Qgc3RyZWFtIG1ldGFkYXRhIHRhZ3MgYWZ0ZXIgdGhlIGBoZWFkYCB3YXMgc2VudC5cbi8vIE5vdGU6IFRoZSBwYXR0ZXJuIFtcXHctXSstR29vZ2xlIGNhcHR1cmVzIGFsbCBHb29nbGUgY3Jhd2xlcnMgd2l0aCBcIi1Hb29nbGVcIiBzdWZmaXggKGUuZy4sIE1lZGlhcGFydG5lcnMtR29vZ2xlLCBBZHNCb3QtR29vZ2xlLCBTdG9yZWJvdC1Hb29nbGUpXG4vLyBhcyB3ZWxsIGFzIGNyYXdsZXJzIHN0YXJ0aW5nIHdpdGggXCJHb29nbGUtXCIgKGUuZy4sIEdvb2dsZS1QYWdlUmVuZGVyZXIsIEdvb2dsZS1JbnNwZWN0aW9uVG9vbClcbmV4cG9ydCBjb25zdCBIVE1MX0xJTUlURURfQk9UX1VBX1JFID1cbiAgL1tcXHctXSstR29vZ2xlfEdvb2dsZS1bXFx3LV0rfENocm9tZS1MaWdodGhvdXNlfFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8cmVkZGl0Ym90fGlhX2FyY2hpdmVyfEJpbmdib3R8QmluZ1ByZXZpZXd8YXBwbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxMaW5rZWRJbkJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlld3xZZXRpfGdvb2dsZXdlYmxpZ2h0L2lcbiJdLCJuYW1lcyI6WyJIVE1MX0xJTUlURURfQk9UX1VBX1JFIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.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 INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\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 ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.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 Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2FBLDBCQUEwQjtlQUExQkE7O0lBa0JHQyxtQ0FBbUM7ZUFBbkNBOztJQVhBQywwQkFBMEI7ZUFBMUJBOzs7c0NBVmlCO0FBRzFCLE1BQU1GLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sU0FBU0UsMkJBQTJCQyxJQUFZO0lBQ3JELHdDQUF3QztJQUN4QyxPQUNFQSxLQUNHQyxLQUFLLENBQUMsS0FDTkMsSUFBSSxDQUFDLENBQUNDLFVBQ0xOLDJCQUEyQkssSUFBSSxDQUFDLENBQUNFLElBQU1ELFFBQVFFLFVBQVUsQ0FBQ0QsU0FDdERFO0FBRVo7QUFFTyxTQUFTUixvQ0FBb0NFLElBQVk7SUFDOUQsSUFBSU8sbUJBQ0ZDLFFBQ0FDO0lBRUYsS0FBSyxNQUFNTixXQUFXSCxLQUFLQyxLQUFLLENBQUMsS0FBTTtRQUNyQ08sU0FBU1gsMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRDtRQUNuRSxJQUFJSSxRQUFROztZQUNULENBQUNELG1CQUFtQkUsaUJBQWlCLEdBQUdULEtBQUtDLEtBQUssQ0FBQ08sUUFBUTtZQUM1RDtRQUNGO0lBQ0Y7SUFFQSxJQUFJLENBQUNELHFCQUFxQixDQUFDQyxVQUFVLENBQUNDLGtCQUFrQjtRQUN0RCxNQUFNLHFCQUVMLENBRkssSUFBSUMsTUFDUCxpQ0FBOEJWLE9BQUssc0ZBRGhDO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRjtJQUVBTyxvQkFBb0JJLENBQUFBLEdBQUFBLFVBQUFBLGdCQUFBQSxFQUFpQkosbUJBQW1CLGlEQUFpRDs7SUFFekcsT0FBUUM7UUFDTixLQUFLO1lBQ0gsb0lBQW9JO1lBQ3BJLElBQUlELHNCQUFzQixLQUFLO2dCQUM3QkUsbUJBQW9CLE1BQUdBO1lBQ3pCLE9BQU87Z0JBQ0xBLG1CQUFtQkYsb0JBQW9CLE1BQU1FO1lBQy9DO1lBQ0E7UUFDRixLQUFLO1lBQ0gsdUhBQXVIO1lBQ3ZILElBQUlGLHNCQUFzQixLQUFLO2dCQUM3QixNQUFNLHFCQUVMLENBRkssSUFBSUcsTUFDUCxpQ0FBOEJWLE9BQUssaUVBRGhDOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7WUFDQVMsbUJBQW1CRixrQkFDaEJOLEtBQUssQ0FBQyxLQUNOVyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0YsS0FBSztZQUNILGtJQUFrSTtZQUNsSUwsbUJBQW1CLE1BQU1BO1lBQ3pCO1FBQ0YsS0FBSztZQUNILGlJQUFpSTtZQUVqSSxNQUFNTSx5QkFBeUJSLGtCQUFrQk4sS0FBSyxDQUFDO1lBQ3ZELElBQUljLHVCQUF1QkMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3RDLE1BQU0scUJBRUwsQ0FGSyxJQUFJTixNQUNQLGlDQUE4QlYsT0FBSyxvRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBUyxtQkFBbUJNLHVCQUNoQkgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUNWQyxNQUFNLENBQUNKLGtCQUNQSyxJQUFJLENBQUM7WUFDUjtRQUNGO1lBQ0UsTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUosTUFBTSxpQ0FBVjt1QkFBQTs0QkFBQTs4QkFBQTtZQUF3QztJQUNsRDtJQUVBLE9BQU87UUFBRUg7UUFBbUJFO0lBQWlCO0FBQy9DIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gJy4vYXBwLXBhdGhzJ1xuXG4vLyBvcmRlciBtYXR0ZXJzIGhlcmUsIHRoZSBmaXJzdCBtYXRjaCB3aWxsIGJlIHVzZWRcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyA9IFtcbiAgJyguLikoLi4pJyxcbiAgJyguKScsXG4gICcoLi4pJyxcbiAgJyguLi4pJyxcbl0gYXMgY29uc3RcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KCcvJylcbiAgICAgIC5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgobSkpXG4gICAgICApICE9PSB1bmRlZmluZWRcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocGF0aDogc3RyaW5nKSB7XG4gIGxldCBpbnRlcmNlcHRpbmdSb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG1hcmtlcjogKHR5cGVvZiBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUylbbnVtYmVyXSB8IHVuZGVmaW5lZCxcbiAgICBpbnRlcmNlcHRlZFJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aC5zcGxpdCgnLycpKSB7XG4gICAgbWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSkgPT4gc2VnbWVudC5zdGFydHNXaXRoKG0pKVxuICAgIGlmIChtYXJrZXIpIHtcbiAgICAgIDtbaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGVdID0gcGF0aC5zcGxpdChtYXJrZXIsIDIpXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICghaW50ZXJjZXB0aW5nUm91dGUgfHwgIW1hcmtlciB8fCAhaW50ZXJjZXB0ZWRSb3V0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmBcbiAgICApXG4gIH1cblxuICBpbnRlcmNlcHRpbmdSb3V0ZSA9IG5vcm1hbGl6ZUFwcFBhdGgoaW50ZXJjZXB0aW5nUm91dGUpIC8vIG5vcm1hbGl6ZSB0aGUgcGF0aCwgZS5nLiAvKGJsb2cpL2ZlZWQgLT4gL2ZlZWRcblxuICBzd2l0Y2ggKG1hcmtlcikge1xuICAgIGNhc2UgJyguKSc6XG4gICAgICAvLyAoLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIHdpdGggc2libGluZyByb3V0ZXMsIHNvIHdlIGp1c3QgbmVlZCB0byBhcHBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlIHRvIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyAnLycgKyBpbnRlcmNlcHRlZFJvdXRlXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLiknOlxuICAgICAgLy8gKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgb25lIGxldmVsIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwsIHVzZSAoLikgaW5zdGVhZC5gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZVxuICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAgIC5jb25jYXQoaW50ZXJjZXB0ZWRSb3V0ZSlcbiAgICAgICAgLmpvaW4oJy8nKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4uKSc6XG4gICAgICAvLyAoLi4uKSB3aWxsIG1hdGNoIHRoZSByb3V0ZSBzZWdtZW50IGluIHRoZSByb290IGRpcmVjdG9yeSwgc28gd2UgbmVlZCB0byB1c2UgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlXG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gJy8nICsgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4pKC4uKSc6XG4gICAgICAvLyAoLi4pKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgdHdvIGxldmVscyB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3QgdHdvIHNlZ21lbnRzIG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcblxuICAgICAgY29uc3Qgc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KCcvJylcbiAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsIG9yIG9uZSBsZXZlbCB1cC5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGVcbiAgICAgICAgLnNsaWNlKDAsIC0yKVxuICAgICAgICAuY29uY2F0KGludGVyY2VwdGVkUm91dGUpXG4gICAgICAgIC5qb2luKCcvJylcbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlcicpXG4gIH1cblxuICByZXR1cm4geyBpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZSB9XG59XG4iXSwibmFtZXMiOlsiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoIiwicGF0aCIsInNwbGl0IiwiZmluZCIsInNlZ21lbnQiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsImludGVyY2VwdGluZ1JvdXRlIiwibWFya2VyIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsIkVycm9yIiwibm9ybWFsaXplQXBwUGF0aCIsInNsaWNlIiwiY29uY2F0Iiwiam9pbiIsInNwbGl0SW50ZXJjZXB0aW5nUm91dGUiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.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 HTML_LIMITED_BOT_UA_RE: function() {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE;\n },\n HTML_LIMITED_BOT_UA_RE_STRING: function() {\n return HTML_LIMITED_BOT_UA_RE_STRING;\n },\n getBotType: function() {\n return getBotType;\n },\n isBot: function() {\n return isBot;\n }\n});\nconst _htmlbots = __webpack_require__(/*! ./html-bots */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\");\n// Bot crawler that will spin up a headless browser and execute JS.\n// Only the main Googlebot search crawler executes JavaScript, not other Google crawlers.\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\n// This regex specifically matches \"Googlebot\" but NOT \"Mediapartners-Google\", \"AdsBot-Google\", etc.\nconst HEADLESS_BROWSER_BOT_UA_RE = /Googlebot(?!-)|Googlebot$/i;\nconst HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source;\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nfunction isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nfunction getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n} //# sourceMappingURL=is-bot.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFVU0Esc0JBQXNCO2VBQXRCQSxVQUFBQSxzQkFBc0I7O0lBRmxCQyw2QkFBNkI7ZUFBN0JBOztJQWdCR0MsVUFBVTtlQUFWQTs7SUFKQUMsS0FBSztlQUFMQTs7O3NDQXBCdUI7QUFFdkMsbUVBQW1FO0FBQ25FLHlGQUF5RjtBQUN6Riw0RkFBNEY7QUFDNUYsb0dBQW9HO0FBQ3BHLE1BQU1DLDZCQUE2QjtBQUU1QixNQUFNSCxnQ0FBZ0NELFVBQUFBLHNCQUFzQixDQUFDSyxNQUFNO0FBSTFFLFNBQVNDLFdBQVdDLFNBQWlCO0lBQ25DLE9BQU9ILDJCQUEyQkksSUFBSSxDQUFDRDtBQUN6QztBQUVBLFNBQVNFLG1CQUFtQkYsU0FBaUI7SUFDM0MsT0FBT1AsVUFBQUEsc0JBQXNCLENBQUNRLElBQUksQ0FBQ0Q7QUFDckM7QUFFTyxTQUFTSixNQUFNSSxTQUFpQjtJQUNyQyxPQUFPRCxXQUFXQyxjQUFjRSxtQkFBbUJGO0FBQ3JEO0FBRU8sU0FBU0wsV0FBV0ssU0FBaUI7SUFDMUMsSUFBSUQsV0FBV0MsWUFBWTtRQUN6QixPQUFPO0lBQ1Q7SUFDQSxJQUFJRSxtQkFBbUJGLFlBQVk7UUFDakMsT0FBTztJQUNUO0lBQ0EsT0FBT0c7QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSB9IGZyb20gJy4vaHRtbC1ib3RzJ1xuXG4vLyBCb3QgY3Jhd2xlciB0aGF0IHdpbGwgc3BpbiB1cCBhIGhlYWRsZXNzIGJyb3dzZXIgYW5kIGV4ZWN1dGUgSlMuXG4vLyBPbmx5IHRoZSBtYWluIEdvb2dsZWJvdCBzZWFyY2ggY3Jhd2xlciBleGVjdXRlcyBKYXZhU2NyaXB0LCBub3Qgb3RoZXIgR29vZ2xlIGNyYXdsZXJzLlxuLy8geC1yZWY6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3NlYXJjaC9kb2NzL2NyYXdsaW5nLWluZGV4aW5nL2dvb2dsZS1jb21tb24tY3Jhd2xlcnNcbi8vIFRoaXMgcmVnZXggc3BlY2lmaWNhbGx5IG1hdGNoZXMgXCJHb29nbGVib3RcIiBidXQgTk9UIFwiTWVkaWFwYXJ0bmVycy1Hb29nbGVcIiwgXCJBZHNCb3QtR29vZ2xlXCIsIGV0Yy5cbmNvbnN0IEhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFID0gL0dvb2dsZWJvdCg/IS0pfEdvb2dsZWJvdCQvaVxuXG5leHBvcnQgY29uc3QgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRV9TVFJJTkcgPSBIVE1MX0xJTUlURURfQk9UX1VBX1JFLnNvdXJjZVxuXG5leHBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH1cblxuZnVuY3Rpb24gaXNEb21Cb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUudGVzdCh1c2VyQWdlbnQpXG59XG5cbmZ1bmN0aW9uIGlzSHRtbExpbWl0ZWRCb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSFRNTF9MSU1JVEVEX0JPVF9VQV9SRS50ZXN0KHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm90KHVzZXJBZ2VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0RvbUJvdFVBKHVzZXJBZ2VudCkgfHwgaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdFR5cGUodXNlckFnZW50OiBzdHJpbmcpOiAnZG9tJyB8ICdodG1sJyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc0RvbUJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2RvbSdcbiAgfVxuICBpZiAoaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2h0bWwnXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuIl0sIm5hbWVzIjpbIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiLCJIVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORyIsImdldEJvdFR5cGUiLCJpc0JvdCIsIkhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFIiwic291cmNlIiwiaXNEb21Cb3RVQSIsInVzZXJBZ2VudCIsInRlc3QiLCJpc0h0bWxMaW1pdGVkQm90VUEiLCJ1bmRlZmluZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQzs7Ozs2Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsVUFBVUMsSUFBWTtJQUNwQyxNQUFNQyxZQUFZRCxLQUFLRSxPQUFPLENBQUM7SUFDL0IsTUFBTUMsYUFBYUgsS0FBS0UsT0FBTyxDQUFDO0lBQ2hDLE1BQU1FLFdBQVdELGFBQWEsQ0FBQyxLQUFNRixDQUFBQSxZQUFZLEtBQUtFLGFBQWFGLFNBQUFBLENBQVE7SUFFM0UsSUFBSUcsWUFBWUgsWUFBWSxDQUFDLEdBQUc7UUFDOUIsT0FBTztZQUNMSSxVQUFVTCxLQUFLTSxTQUFTLENBQUMsR0FBR0YsV0FBV0QsYUFBYUY7WUFDcERNLE9BQU9ILFdBQ0hKLEtBQUtNLFNBQVMsQ0FBQ0gsWUFBWUYsWUFBWSxDQUFDLElBQUlBLFlBQVlPLGFBQ3hEO1lBQ0pDLE1BQU1SLFlBQVksQ0FBQyxJQUFJRCxLQUFLVSxLQUFLLENBQUNULGFBQWE7UUFDakQ7SUFDRjtJQUVBLE9BQU87UUFBRUksVUFBVUw7UUFBTU8sT0FBTztRQUFJRSxNQUFNO0lBQUc7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdpdmVuIGEgcGF0aCB0aGlzIGZ1bmN0aW9uIHdpbGwgZmluZCB0aGUgcGF0aG5hbWUsIHF1ZXJ5IGFuZCBoYXNoIGFuZCByZXR1cm5cbiAqIHRoZW0uIFRoaXMgaXMgdXNlZnVsIHRvIHBhcnNlIGZ1bGwgcGF0aHMgb24gdGhlIGNsaWVudCBzaWRlLlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIHBhcnNlIGUuZy4gL2Zvby9iYXI/aWQ9MSNoYXNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc2hJbmRleCA9IHBhdGguaW5kZXhPZignIycpXG4gIGNvbnN0IHF1ZXJ5SW5kZXggPSBwYXRoLmluZGV4T2YoJz8nKVxuICBjb25zdCBoYXNRdWVyeSA9IHF1ZXJ5SW5kZXggPiAtMSAmJiAoaGFzaEluZGV4IDwgMCB8fCBxdWVyeUluZGV4IDwgaGFzaEluZGV4KVxuXG4gIGlmIChoYXNRdWVyeSB8fCBoYXNoSW5kZXggPiAtMSkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXRobmFtZTogcGF0aC5zdWJzdHJpbmcoMCwgaGFzUXVlcnkgPyBxdWVyeUluZGV4IDogaGFzaEluZGV4KSxcbiAgICAgIHF1ZXJ5OiBoYXNRdWVyeVxuICAgICAgICA/IHBhdGguc3Vic3RyaW5nKHF1ZXJ5SW5kZXgsIGhhc2hJbmRleCA+IC0xID8gaGFzaEluZGV4IDogdW5kZWZpbmVkKVxuICAgICAgICA6ICcnLFxuICAgICAgaGFzaDogaGFzaEluZGV4ID4gLTEgPyBwYXRoLnNsaWNlKGhhc2hJbmRleCkgOiAnJyxcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBwYXRobmFtZTogcGF0aCwgcXVlcnk6ICcnLCBoYXNoOiAnJyB9XG59XG4iXSwibmFtZXMiOlsicGFyc2VQYXRoIiwicGF0aCIsImhhc2hJbmRleCIsImluZGV4T2YiLCJxdWVyeUluZGV4IiwiaGFzUXVlcnkiLCJwYXRobmFtZSIsInN1YnN0cmluZyIsInF1ZXJ5IiwidW5kZWZpbmVkIiwiaGFzaCIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQVNnQkE7OztlQUFBQTs7O3VDQVRVO0FBU25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBYztJQUN4RCxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUM1QixPQUFPO0lBQ1Q7SUFFQSxNQUFNLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVSDtJQUMvQixPQUFPRSxhQUFhRCxVQUFVQyxTQUFTRSxVQUFVLENBQUNILFNBQVM7QUFDN0QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBwYXRoIHN0YXJ0cyB3aXRoIGEgZ2l2ZW4gcHJlZml4LiBJdCBlbnN1cmVzIGl0IG1hdGNoZXNcbiAqIGV4YWN0bHkgd2l0aG91dCBjb250YWluaW5nIGV4dHJhIGNoYXJzLiBlLmcuIHByZWZpeCAvZG9jcyBzaG91bGQgcmVwbGFjZVxuICogZm9yIC9kb2NzLCAvZG9jcy8sIC9kb2NzL2EgYnV0IG5vdCAvZG9jc3NzXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBjaGVjayBhZ2FpbnN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aEhhc1ByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUgfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gcGF0aG5hbWUgPT09IHByZWZpeCB8fCBwYXRobmFtZS5zdGFydHNXaXRoKHByZWZpeCArICcvJylcbn1cbiJdLCJuYW1lcyI6WyJwYXRoSGFzUHJlZml4IiwicGF0aCIsInByZWZpeCIsInBhdGhuYW1lIiwicGFyc2VQYXRoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js ***!
|
||
\******************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removePathPrefix\", ({\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction 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, _pathhasprefix.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQVVnQkE7OztlQUFBQTs7OzJDQVZjO0FBVXZCLFNBQVNBLGlCQUFpQkMsSUFBWSxFQUFFQyxNQUFjO0lBQzNELHlFQUF5RTtJQUN6RSwwRUFBMEU7SUFDMUUsa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRixvQkFBb0I7SUFDcEIsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLElBQUksQ0FBQ0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0YsTUFBTUMsU0FBUztRQUNoQyxPQUFPRDtJQUNUO0lBRUEsK0NBQStDO0lBQy9DLE1BQU1HLGdCQUFnQkgsS0FBS0ksS0FBSyxDQUFDSCxPQUFPSSxNQUFNO0lBRTlDLDJFQUEyRTtJQUMzRSxJQUFJRixjQUFjRyxVQUFVLENBQUMsTUFBTTtRQUNqQyxPQUFPSDtJQUNUO0lBRUEsNEVBQTRFO0lBQzVFLG1EQUFtRDtJQUNuRCxPQUFRLE1BQUdBO0FBQ2IiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuL3BhdGgtaGFzLXByZWZpeCdcblxuLyoqXG4gKiBHaXZlbiBhIHBhdGggYW5kIGEgcHJlZml4IGl0IHdpbGwgcmVtb3ZlIHRoZSBwcmVmaXggd2hlbiBpdCBleGlzdHMgaW4gdGhlXG4gKiBnaXZlbiBwYXRoLiBJdCBlbnN1cmVzIGl0IG1hdGNoZXMgZXhhY3RseSB3aXRob3V0IGNvbnRhaW5pbmcgZXh0cmEgY2hhcnNcbiAqIGFuZCBpZiB0aGUgcHJlZml4IGlzIG5vdCB0aGVyZSBpdCB3aWxsIGJlIG5vb3AuXG4gKlxuICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gcmVtb3ZlIHRoZSBwcmVmaXggZnJvbS5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBiZSByZW1vdmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUGF0aFByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gSWYgdGhlIHBhdGggZG9lc24ndCBzdGFydCB3aXRoIHRoZSBwcmVmaXggd2UgY2FuIHJldHVybiBpdCBhcyBpcy4gVGhpc1xuICAvLyBwcm90ZWN0cyB1cyBmcm9tIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHByZWZpeCBpcyBhIHN1YnN0cmluZyBvZiB0aGUgcGF0aFxuICAvLyBwcmVmaXggc3VjaCBhczpcbiAgLy9cbiAgLy8gRm9yIHByZWZpeDogL2Jsb2dcbiAgLy9cbiAgLy8gICAvYmxvZyAtPiB0cnVlXG4gIC8vICAgL2Jsb2cvIC0+IHRydWVcbiAgLy8gICAvYmxvZy8xIC0+IHRydWVcbiAgLy8gICAvYmxvZ2dpbmcgLT4gZmFsc2VcbiAgLy8gICAvYmxvZ2dpbmcvIC0+IGZhbHNlXG4gIC8vICAgL2Jsb2dnaW5nLzEgLT4gZmFsc2VcbiAgaWYgKCFwYXRoSGFzUHJlZml4KHBhdGgsIHByZWZpeCkpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBwcmVmaXggZnJvbSB0aGUgcGF0aCB2aWEgc2xpY2luZy5cbiAgY29uc3Qgd2l0aG91dFByZWZpeCA9IHBhdGguc2xpY2UocHJlZml4Lmxlbmd0aClcblxuICAvLyBJZiB0aGUgcGF0aCB3aXRob3V0IHRoZSBwcmVmaXggc3RhcnRzIHdpdGggYSBgL2Agd2UgY2FuIHJldHVybiBpdCBhcyBpcy5cbiAgaWYgKHdpdGhvdXRQcmVmaXguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIHdpdGhvdXRQcmVmaXhcbiAgfVxuXG4gIC8vIElmIHRoZSBwYXRoIHdpdGhvdXQgdGhlIHByZWZpeCBkb2Vzbid0IHN0YXJ0IHdpdGggYSBgL2Agd2UgbmVlZCB0byBhZGQgaXRcbiAgLy8gYmFjayB0byB0aGUgcGF0aCB0byBtYWtlIHN1cmUgaXQncyBhIHZhbGlkIHBhdGguXG4gIHJldHVybiBgLyR7d2l0aG91dFByZWZpeH1gXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJwYXRoSGFzUHJlZml4Iiwid2l0aG91dFByZWZpeCIsInNsaWNlIiwibGVuZ3RoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***!
|
||
\*********************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0NBTUM7Ozs7dURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUFvQkMsS0FBYTtJQUMvQyxPQUFPQSxNQUFNQyxPQUFPLENBQUMsT0FBTyxPQUFPO0FBQ3JDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIGZvciBhIGdpdmVuIHJvdXRlIG9yIHBhZ2UgcGF0aC4gUHJlc2VydmVzIHRoZVxuICogcm9vdCBwYWdlLiBFeGFtcGxlczpcbiAqICAgLSBgL2Zvby9iYXIvYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9mb28vYmFyYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9gIC0+IGAvYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiByb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpIHx8ICcvJ1xufVxuIl0sIm5hbWVzIjpbInJlbW92ZVRyYWlsaW5nU2xhc2giLCJyb3V0ZSIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-match-utils.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/route-match-utils.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Client-safe utilities for route matching that don't import server-side\n * utilities to avoid bundling issues with Turbopack\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 safeCompile: function() {\n return safeCompile;\n },\n safePathToRegexp: function() {\n return safePathToRegexp;\n },\n safeRegexpToFunction: function() {\n return safeRegexpToFunction;\n },\n safeRouteMatcher: function() {\n return safeRouteMatcher;\n }\n});\nconst _pathtoregexp = __webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js\");\nconst _routepatternnormalizer = __webpack_require__(/*! ../../../../lib/route-pattern-normalizer */ \"(rsc)/./node_modules/next/dist/lib/route-pattern-normalizer.js\");\nfunction safePathToRegexp(route, keys, options) {\n if (typeof route !== 'string') {\n return (0, _pathtoregexp.pathToRegexp)(route, keys, options);\n }\n // Check if normalization is needed and cache the result\n const needsNormalization = (0, _routepatternnormalizer.hasAdjacentParameterIssues)(route);\n const routeToUse = needsNormalization ? (0, _routepatternnormalizer.normalizeAdjacentParameters)(route) : route;\n try {\n return (0, _pathtoregexp.pathToRegexp)(routeToUse, keys, options);\n } catch (error) {\n // Only try normalization if we haven't already normalized\n if (!needsNormalization) {\n try {\n const normalizedRoute = (0, _routepatternnormalizer.normalizeAdjacentParameters)(route);\n return (0, _pathtoregexp.pathToRegexp)(normalizedRoute, keys, options);\n } catch (retryError) {\n // If that doesn't work, fall back to original error\n throw error;\n }\n }\n throw error;\n }\n}\nfunction safeCompile(route, options) {\n // Check if normalization is needed and cache the result\n const needsNormalization = (0, _routepatternnormalizer.hasAdjacentParameterIssues)(route);\n const routeToUse = needsNormalization ? (0, _routepatternnormalizer.normalizeAdjacentParameters)(route) : route;\n try {\n return (0, _pathtoregexp.compile)(routeToUse, options);\n } catch (error) {\n // Only try normalization if we haven't already normalized\n if (!needsNormalization) {\n try {\n const normalizedRoute = (0, _routepatternnormalizer.normalizeAdjacentParameters)(route);\n return (0, _pathtoregexp.compile)(normalizedRoute, options);\n } catch (retryError) {\n // If that doesn't work, fall back to original error\n throw error;\n }\n }\n throw error;\n }\n}\nfunction safeRegexpToFunction(regexp, keys) {\n const originalMatcher = (0, _pathtoregexp.regexpToFunction)(regexp, keys || []);\n return (pathname)=>{\n const result = originalMatcher(pathname);\n if (!result) return false;\n // Clean parameters before returning\n return {\n ...result,\n params: (0, _routepatternnormalizer.stripParameterSeparators)(result.params)\n };\n };\n}\nfunction safeRouteMatcher(matcherFn) {\n return (pathname)=>{\n const result = matcherFn(pathname);\n if (!result) return false;\n // Clean parameters before returning\n return (0, _routepatternnormalizer.stripParameterSeparators)(result);\n };\n} //# sourceMappingURL=route-match-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoLXV0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7Ozs7Ozs7Ozs7O0lBMkRlQSxXQUFXO2VBQVhBOztJQXBDQUMsZ0JBQWdCO2VBQWhCQTs7SUFrRUFDLG9CQUFvQjtlQUFwQkE7O0lBcUJBQyxnQkFBZ0I7ZUFBaEJBOzs7MENBbEdUO29EQUtBO0FBTUEsU0FBU0YsaUJBQ2RHLEtBQStDLEVBQy9DQyxJQUFZLEVBQ1pDLE9BQThDO0lBRTlDLElBQUksT0FBT0YsVUFBVSxVQUFVO1FBQzdCLE9BQU9HLENBQUFBLEdBQUFBLGNBQUFBLFlBQUFBLEVBQWFILE9BQU9DLE1BQU1DO0lBQ25DO0lBRUEsd0RBQXdEO0lBQ3hELE1BQU1FLHFCQUFxQkMsQ0FBQUEsR0FBQUEsd0JBQUFBLDBCQUFBQSxFQUEyQkw7SUFDdEQsTUFBTU0sYUFBYUYscUJBQ2ZHLENBQUFBLEdBQUFBLHdCQUFBQSwyQkFBQUEsRUFBNEJQLFNBQzVCQTtJQUVKLElBQUk7UUFDRixPQUFPRyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhRyxZQUFZTCxNQUFNQztJQUN4QyxFQUFFLE9BQU9NLE9BQU87UUFDZCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDSixvQkFBb0I7WUFDdkIsSUFBSTtnQkFDRixNQUFNSyxrQkFBa0JGLENBQUFBLEdBQUFBLHdCQUFBQSwyQkFBQUEsRUFBNEJQO2dCQUNwRCxPQUFPRyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFZLEVBQUNNLGlCQUFpQlIsTUFBTUM7WUFDN0MsRUFBRSxPQUFPUSxZQUFZO2dCQUNuQixvREFBb0Q7Z0JBQ3BELE1BQU1GO1lBQ1I7UUFDRjtRQUNBLE1BQU1BO0lBQ1I7QUFDRjtBQU1PLFNBQVNaLFlBQ2RJLEtBQWEsRUFDYkUsT0FBZ0Q7SUFFaEQsd0RBQXdEO0lBQ3hELE1BQU1FLHFCQUFxQkMsQ0FBQUEsR0FBQUEsd0JBQUFBLDBCQUFBQSxFQUEyQkw7SUFDdEQsTUFBTU0sYUFBYUYscUJBQ2ZHLENBQUFBLEdBQUFBLHdCQUFBQSwyQkFBQUEsRUFBNEJQLFNBQzVCQTtJQUVKLElBQUk7UUFDRixPQUFPVyxDQUFBQSxHQUFBQSxjQUFBQSxPQUFBQSxFQUFRTCxZQUFZSjtJQUM3QixFQUFFLE9BQU9NLE9BQU87UUFDZCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDSixvQkFBb0I7WUFDdkIsSUFBSTtnQkFDRixNQUFNSyxrQkFBa0JGLENBQUFBLEdBQUFBLHdCQUFBQSwyQkFBQUEsRUFBNEJQO2dCQUNwRCxPQUFPVyxDQUFBQSxHQUFBQSxjQUFBQSxPQUFBQSxFQUFRRixpQkFBaUJQO1lBQ2xDLEVBQUUsT0FBT1EsWUFBWTtnQkFDbkIsb0RBQW9EO2dCQUNwRCxNQUFNRjtZQUNSO1FBQ0Y7UUFDQSxNQUFNQTtJQUNSO0FBQ0Y7QUFLTyxTQUFTVixxQkFFZGMsTUFBYyxFQUFFWCxJQUFZO0lBQzVCLE1BQU1ZLGtCQUFrQkMsQ0FBQUEsR0FBQUEsY0FBQUEsZ0JBQUFBLEVBQW9CRixRQUFRWCxRQUFRLEVBQUU7SUFFOUQsT0FBTyxDQUFDYztRQUNOLE1BQU1DLFNBQVNILGdCQUFnQkU7UUFDL0IsSUFBSSxDQUFDQyxRQUFRLE9BQU87UUFFcEIsb0NBQW9DO1FBQ3BDLE9BQU87WUFDTCxHQUFHQSxNQUFNO1lBQ1RDLFFBQVFDLENBQUFBLEdBQUFBLHdCQUFBQSx3QkFBQUEsRUFBeUJGLE9BQU9DLE1BQU07UUFDaEQ7SUFDRjtBQUNGO0FBTU8sU0FBU2xCLGlCQUNkb0IsU0FBMEM7SUFFMUMsT0FBTyxDQUFDSjtRQUNOLE1BQU1DLFNBQVNHLFVBQVVKO1FBQ3pCLElBQUksQ0FBQ0MsUUFBUSxPQUFPO1FBRXBCLG9DQUFvQztRQUNwQyxPQUFPRSxDQUFBQSxHQUFBQSx3QkFBQUEsd0JBQUFBLEVBQXlCRjtJQUNsQztBQUNGIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xpZW50LXNhZmUgdXRpbGl0aWVzIGZvciByb3V0ZSBtYXRjaGluZyB0aGF0IGRvbid0IGltcG9ydCBzZXJ2ZXItc2lkZVxuICogdXRpbGl0aWVzIHRvIGF2b2lkIGJ1bmRsaW5nIGlzc3VlcyB3aXRoIFR1cmJvcGFja1xuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgS2V5LFxuICBUb2tlbnNUb1JlZ2V4cE9wdGlvbnMsXG4gIFBhcnNlT3B0aW9ucyxcbiAgVG9rZW5zVG9GdW5jdGlvbk9wdGlvbnMsXG59IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cCdcbmltcG9ydCB7XG4gIHBhdGhUb1JlZ2V4cCxcbiAgY29tcGlsZSxcbiAgcmVnZXhwVG9GdW5jdGlvbixcbn0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtdG8tcmVnZXhwJ1xuaW1wb3J0IHtcbiAgaGFzQWRqYWNlbnRQYXJhbWV0ZXJJc3N1ZXMsXG4gIG5vcm1hbGl6ZUFkamFjZW50UGFyYW1ldGVycyxcbiAgc3RyaXBQYXJhbWV0ZXJTZXBhcmF0b3JzLFxufSBmcm9tICcuLi8uLi8uLi8uLi9saWIvcm91dGUtcGF0dGVybi1ub3JtYWxpemVyJ1xuXG4vKipcbiAqIENsaWVudC1zYWZlIHdyYXBwZXIgYXJvdW5kIHBhdGhUb1JlZ2V4cCB0aGF0IGhhbmRsZXMgcGF0aC10by1yZWdleHAgNi4zLjArIHZhbGlkYXRpb24gZXJyb3JzLlxuICogVGhpcyBpbmNsdWRlcyBib3RoIFwiQ2FuIG5vdCByZXBlYXQgd2l0aG91dCBwcmVmaXgvc3VmZml4XCIgYW5kIFwiTXVzdCBoYXZlIHRleHQgYmV0d2VlbiBwYXJhbWV0ZXJzXCIgZXJyb3JzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FmZVBhdGhUb1JlZ2V4cChcbiAgcm91dGU6IHN0cmluZyB8IFJlZ0V4cCB8IEFycmF5PHN0cmluZyB8IFJlZ0V4cD4sXG4gIGtleXM/OiBLZXlbXSxcbiAgb3B0aW9ucz86IFRva2Vuc1RvUmVnZXhwT3B0aW9ucyAmIFBhcnNlT3B0aW9uc1xuKTogUmVnRXhwIHtcbiAgaWYgKHR5cGVvZiByb3V0ZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGF0aFRvUmVnZXhwKHJvdXRlLCBrZXlzLCBvcHRpb25zKVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgbm9ybWFsaXphdGlvbiBpcyBuZWVkZWQgYW5kIGNhY2hlIHRoZSByZXN1bHRcbiAgY29uc3QgbmVlZHNOb3JtYWxpemF0aW9uID0gaGFzQWRqYWNlbnRQYXJhbWV0ZXJJc3N1ZXMocm91dGUpXG4gIGNvbnN0IHJvdXRlVG9Vc2UgPSBuZWVkc05vcm1hbGl6YXRpb25cbiAgICA/IG5vcm1hbGl6ZUFkamFjZW50UGFyYW1ldGVycyhyb3V0ZSlcbiAgICA6IHJvdXRlXG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gcGF0aFRvUmVnZXhwKHJvdXRlVG9Vc2UsIGtleXMsIG9wdGlvbnMpXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gT25seSB0cnkgbm9ybWFsaXphdGlvbiBpZiB3ZSBoYXZlbid0IGFscmVhZHkgbm9ybWFsaXplZFxuICAgIGlmICghbmVlZHNOb3JtYWxpemF0aW9uKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkUm91dGUgPSBub3JtYWxpemVBZGphY2VudFBhcmFtZXRlcnMocm91dGUpXG4gICAgICAgIHJldHVybiBwYXRoVG9SZWdleHAobm9ybWFsaXplZFJvdXRlLCBrZXlzLCBvcHRpb25zKVxuICAgICAgfSBjYXRjaCAocmV0cnlFcnJvcikge1xuICAgICAgICAvLyBJZiB0aGF0IGRvZXNuJ3Qgd29yaywgZmFsbCBiYWNrIHRvIG9yaWdpbmFsIGVycm9yXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuLyoqXG4gKiBDbGllbnQtc2FmZSB3cmFwcGVyIGFyb3VuZCBjb21waWxlIHRoYXQgaGFuZGxlcyBwYXRoLXRvLXJlZ2V4cCA2LjMuMCsgdmFsaWRhdGlvbiBlcnJvcnMuXG4gKiBObyBzZXJ2ZXItc2lkZSBlcnJvciByZXBvcnRpbmcgdG8gYXZvaWQgYnVuZGxpbmcgaXNzdWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FmZUNvbXBpbGUoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBUb2tlbnNUb0Z1bmN0aW9uT3B0aW9ucyAmIFBhcnNlT3B0aW9uc1xuKSB7XG4gIC8vIENoZWNrIGlmIG5vcm1hbGl6YXRpb24gaXMgbmVlZGVkIGFuZCBjYWNoZSB0aGUgcmVzdWx0XG4gIGNvbnN0IG5lZWRzTm9ybWFsaXphdGlvbiA9IGhhc0FkamFjZW50UGFyYW1ldGVySXNzdWVzKHJvdXRlKVxuICBjb25zdCByb3V0ZVRvVXNlID0gbmVlZHNOb3JtYWxpemF0aW9uXG4gICAgPyBub3JtYWxpemVBZGphY2VudFBhcmFtZXRlcnMocm91dGUpXG4gICAgOiByb3V0ZVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGNvbXBpbGUocm91dGVUb1VzZSwgb3B0aW9ucylcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBPbmx5IHRyeSBub3JtYWxpemF0aW9uIGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSBub3JtYWxpemVkXG4gICAgaWYgKCFuZWVkc05vcm1hbGl6YXRpb24pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRSb3V0ZSA9IG5vcm1hbGl6ZUFkamFjZW50UGFyYW1ldGVycyhyb3V0ZSlcbiAgICAgICAgcmV0dXJuIGNvbXBpbGUobm9ybWFsaXplZFJvdXRlLCBvcHRpb25zKVxuICAgICAgfSBjYXRjaCAocmV0cnlFcnJvcikge1xuICAgICAgICAvLyBJZiB0aGF0IGRvZXNuJ3Qgd29yaywgZmFsbCBiYWNrIHRvIG9yaWdpbmFsIGVycm9yXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuLyoqXG4gKiBDbGllbnQtc2FmZSB3cmFwcGVyIGFyb3VuZCByZWdleHBUb0Z1bmN0aW9uIHRoYXQgYXV0b21hdGljYWxseSBjbGVhbnMgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhZmVSZWdleHBUb0Z1bmN0aW9uPFxuICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4sXG4+KHJlZ2V4cDogUmVnRXhwLCBrZXlzPzogS2V5W10pOiAocGF0aG5hbWU6IHN0cmluZykgPT4geyBwYXJhbXM6IFQgfSB8IGZhbHNlIHtcbiAgY29uc3Qgb3JpZ2luYWxNYXRjaGVyID0gcmVnZXhwVG9GdW5jdGlvbjxUPihyZWdleHAsIGtleXMgfHwgW10pXG5cbiAgcmV0dXJuIChwYXRobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gb3JpZ2luYWxNYXRjaGVyKHBhdGhuYW1lKVxuICAgIGlmICghcmVzdWx0KSByZXR1cm4gZmFsc2VcblxuICAgIC8vIENsZWFuIHBhcmFtZXRlcnMgYmVmb3JlIHJldHVybmluZ1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXN1bHQsXG4gICAgICBwYXJhbXM6IHN0cmlwUGFyYW1ldGVyU2VwYXJhdG9ycyhyZXN1bHQucGFyYW1zIGFzIGFueSkgYXMgVCxcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBTYWZlIHdyYXBwZXIgZm9yIHJvdXRlIG1hdGNoZXIgZnVuY3Rpb25zIHRoYXQgYXV0b21hdGljYWxseSBjbGVhbnMgcGFyYW1ldGVycy5cbiAqIFRoaXMgaXMgY2xpZW50LXNhZmUgYW5kIGRvZXNuJ3QgaW1wb3J0IHBhdGgtdG8tcmVnZXhwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FmZVJvdXRlTWF0Y2hlcjxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gIG1hdGNoZXJGbjogKHBhdGhuYW1lOiBzdHJpbmcpID0+IGZhbHNlIHwgVFxuKTogKHBhdGhuYW1lOiBzdHJpbmcpID0+IGZhbHNlIHwgVCB7XG4gIHJldHVybiAocGF0aG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG1hdGNoZXJGbihwYXRobmFtZSlcbiAgICBpZiAoIXJlc3VsdCkgcmV0dXJuIGZhbHNlXG5cbiAgICAvLyBDbGVhbiBwYXJhbWV0ZXJzIGJlZm9yZSByZXR1cm5pbmdcbiAgICByZXR1cm4gc3RyaXBQYXJhbWV0ZXJTZXBhcmF0b3JzKHJlc3VsdCkgYXMgVFxuICB9XG59XG4iXSwibmFtZXMiOlsic2FmZUNvbXBpbGUiLCJzYWZlUGF0aFRvUmVnZXhwIiwic2FmZVJlZ2V4cFRvRnVuY3Rpb24iLCJzYWZlUm91dGVNYXRjaGVyIiwicm91dGUiLCJrZXlzIiwib3B0aW9ucyIsInBhdGhUb1JlZ2V4cCIsIm5lZWRzTm9ybWFsaXphdGlvbiIsImhhc0FkamFjZW50UGFyYW1ldGVySXNzdWVzIiwicm91dGVUb1VzZSIsIm5vcm1hbGl6ZUFkamFjZW50UGFyYW1ldGVycyIsImVycm9yIiwibm9ybWFsaXplZFJvdXRlIiwicmV0cnlFcnJvciIsImNvbXBpbGUiLCJyZWdleHAiLCJvcmlnaW5hbE1hdGNoZXIiLCJyZWdleHBUb0Z1bmN0aW9uIiwicGF0aG5hbWUiLCJyZXN1bHQiLCJwYXJhbXMiLCJzdHJpcFBhcmFtZXRlclNlcGFyYXRvcnMiLCJtYXRjaGVyRm4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-match-utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***!
|
||
\*************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRouteMatcher\", ({\n enumerable: true,\n get: function() {\n return getRouteMatcher;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _routematchutils = __webpack_require__(/*! ./route-match-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-match-utils.js\");\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n const rawMatcher = (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) return false;\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (e) {\n throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), \"__NEXT_ERROR_CODE\", {\n value: \"E528\",\n enumerable: false,\n configurable: true\n });\n }\n };\n const params = {};\n for (const [key, group] of Object.entries(groups)){\n const match = routeMatch[group.pos];\n if (match !== undefined) {\n if (group.repeat) {\n params[key] = match.split('/').map((entry)=>decode(entry));\n } else {\n params[key] = decode(match);\n }\n }\n }\n return params;\n };\n // Wrap with safe matcher to handle parameter cleaning\n return (0, _routematchutils.safeRouteMatcher)(rawMatcher);\n} //# sourceMappingURL=route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXIuanMiLCJtYXBwaW5ncyI6Ijs7OzttREFnQmdCQTs7O2VBQUFBOzs7bUNBZlk7NkNBRUs7QUFhMUIsU0FBU0EsZ0JBQWdCLEtBR1Y7SUFIVSxNQUM5QkMsRUFBRSxFQUNGQyxNQUFNLEVBQ2MsR0FIVTtJQUk5QixNQUFNQyxhQUFhLENBQUNDO1FBQ2xCLE1BQU1DLGFBQWFKLEdBQUdLLElBQUksQ0FBQ0Y7UUFDM0IsSUFBSSxDQUFDQyxZQUFZLE9BQU87UUFFeEIsTUFBTUUsU0FBUyxDQUFDQztZQUNkLElBQUk7Z0JBQ0YsT0FBT0MsbUJBQW1CRDtZQUM1QixFQUFFLFVBQU07Z0JBQ04sTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUUsT0FBQUEsV0FBVyxDQUFDLDJCQUFoQjsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFBd0M7WUFDaEQ7UUFDRjtRQUVBLE1BQU1DLFNBQWlCLENBQUM7UUFDeEIsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDYixRQUFTO1lBQ2pELE1BQU1jLFFBQVFYLFVBQVUsQ0FBQ1EsTUFBTUksR0FBRyxDQUFDO1lBQ25DLElBQUlELFVBQVVFLFdBQVc7Z0JBQ3ZCLElBQUlMLE1BQU1NLE1BQU0sRUFBRTtvQkFDaEJSLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHSSxNQUFNSSxLQUFLLENBQUMsS0FBS0MsR0FBRyxDQUFDLENBQUNDLFFBQVVmLE9BQU9lO2dCQUN2RCxPQUFPO29CQUNMWCxNQUFNLENBQUNDLElBQUksR0FBR0wsT0FBT1M7Z0JBQ3ZCO1lBQ0Y7UUFDRjtRQUVBLE9BQU9MO0lBQ1Q7SUFFQSxzREFBc0Q7SUFDdEQsT0FBT1ksQ0FBQUEsR0FBQUEsaUJBQUFBLGdCQUFBQSxFQUFpQnBCO0FBQzFCIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHcm91cCB9IGZyb20gJy4vcm91dGUtcmVnZXgnXG5pbXBvcnQgeyBEZWNvZGVFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5pbXBvcnQgeyBzYWZlUm91dGVNYXRjaGVyIH0gZnJvbSAnLi9yb3V0ZS1tYXRjaC11dGlscydcblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZU1hdGNoRm4ge1xuICAocGF0aG5hbWU6IHN0cmluZyk6IGZhbHNlIHwgUGFyYW1zXG59XG5cbnR5cGUgUm91dGVNYXRjaGVyT3B0aW9ucyA9IHtcbiAgLy8gV2Ugb25seSB1c2UgdGhlIGV4ZWMgbWV0aG9kIG9mIHRoZSBSZWdFeHAgb2JqZWN0LiBUaGlzIGhlbHBzIHVzIGF2b2lkIHVzaW5nXG4gIC8vIHR5cGUgYXNzZXJ0aW9ucyB0aGF0IHRoZSBwYXNzZWQgaW4gcHJvcGVydGllcyBhcmUgb2YgdGhlIGNvcnJlY3QgdHlwZS5cbiAgcmU6IFBpY2s8UmVnRXhwLCAnZXhlYyc+XG4gIGdyb3VwczogUmVjb3JkPHN0cmluZywgR3JvdXA+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZU1hdGNoZXIoe1xuICByZSxcbiAgZ3JvdXBzLFxufTogUm91dGVNYXRjaGVyT3B0aW9ucyk6IFJvdXRlTWF0Y2hGbiB7XG4gIGNvbnN0IHJhd01hdGNoZXIgPSAocGF0aG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJvdXRlTWF0Y2ggPSByZS5leGVjKHBhdGhuYW1lKVxuICAgIGlmICghcm91dGVNYXRjaCkgcmV0dXJuIGZhbHNlXG5cbiAgICBjb25zdCBkZWNvZGUgPSAocGFyYW06IHN0cmluZykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYXJhbSlcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aHJvdyBuZXcgRGVjb2RlRXJyb3IoJ2ZhaWxlZCB0byBkZWNvZGUgcGFyYW0nKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtczogUGFyYW1zID0ge31cbiAgICBmb3IgKGNvbnN0IFtrZXksIGdyb3VwXSBvZiBPYmplY3QuZW50cmllcyhncm91cHMpKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IHJvdXRlTWF0Y2hbZ3JvdXAucG9zXVxuICAgICAgaWYgKG1hdGNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGdyb3VwLnJlcGVhdCkge1xuICAgICAgICAgIHBhcmFtc1trZXldID0gbWF0Y2guc3BsaXQoJy8nKS5tYXAoKGVudHJ5KSA9PiBkZWNvZGUoZW50cnkpKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhcmFtc1trZXldID0gZGVjb2RlKG1hdGNoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtc1xuICB9XG5cbiAgLy8gV3JhcCB3aXRoIHNhZmUgbWF0Y2hlciB0byBoYW5kbGUgcGFyYW1ldGVyIGNsZWFuaW5nXG4gIHJldHVybiBzYWZlUm91dGVNYXRjaGVyKHJhd01hdGNoZXIpXG59XG4iXSwibmFtZXMiOlsiZ2V0Um91dGVNYXRjaGVyIiwicmUiLCJncm91cHMiLCJyYXdNYXRjaGVyIiwicGF0aG5hbWUiLCJyb3V0ZU1hdGNoIiwiZXhlYyIsImRlY29kZSIsInBhcmFtIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJrZXkiLCJncm91cCIsIk9iamVjdCIsImVudHJpZXMiLCJtYXRjaCIsInBvcyIsInVuZGVmaW5lZCIsInJlcGVhdCIsInNwbGl0IiwibWFwIiwiZW50cnkiLCJzYWZlUm91dGVNYXRjaGVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.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 getNamedMiddlewareRegex: function() {\n return getNamedMiddlewareRegex;\n },\n getNamedRouteRegex: function() {\n return getNamedRouteRegex;\n },\n getRouteRegex: function() {\n return getRouteRegex;\n }\n});\nconst _constants = __webpack_require__(/*! ../../../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _getdynamicparam = __webpack_require__(/*! ./get-dynamic-param */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js\");\nfunction getParametrizedRoute(route, includeSuffix, includePrefix) {\n const groups = {};\n let groupIndex = 1;\n const segments = [];\n for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){\n const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters\n ;\n if (markerMatch && paramMatches && paramMatches[2]) {\n const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + \"([^/]+?)\");\n } else if (paramMatches && paramMatches[2]) {\n const { key, repeat, optional } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n if (includePrefix && paramMatches[1]) {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1]));\n }\n let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)';\n // Remove the leading slash if includePrefix already added it.\n if (includePrefix && paramMatches[1]) {\n s = s.substring(1);\n }\n segments.push(s);\n } else {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(segment));\n }\n // If there's a suffix, add it to the segments if it's enabled.\n if (includeSuffix && paramMatches && paramMatches[3]) {\n segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3]));\n }\n }\n return {\n parameterizedRoute: segments.join(''),\n groups\n };\n}\nfunction getRouteRegex(normalizedRoute, param) {\n let { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = param === void 0 ? {} : param;\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix);\n let re = parameterizedRoute;\n if (!excludeOptionalTrailingSlash) {\n re += '(?:/)?';\n }\n return {\n re: new RegExp(\"^\" + re + \"$\"),\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, backreferenceDuplicateKeys } = param;\n const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(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 const duplicateKey = cleanedKey in routeKeys;\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, _escaperegexp.escapeStringRegexp)(interceptionMarker) : '';\n let pattern;\n if (duplicateKey && backreferenceDuplicateKeys) {\n // Use a backreference to the key to ensure that the key is the same value\n // in each of the placeholders.\n pattern = \"\\\\k<\" + cleanedKey + \">\";\n } else if (repeat) {\n pattern = \"(?<\" + cleanedKey + \">.+?)\";\n } else {\n pattern = \"(?<\" + cleanedKey + \">[^/]+?)\";\n }\n return optional ? \"(?:/\" + interceptionPrefix + pattern + \")?\" : \"/\" + interceptionPrefix + pattern;\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys) {\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n const segments = [];\n for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){\n const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches && paramMatches[2]) {\n // If there's an interception marker, add it to the segments.\n segments.push(getSafeKeyFromSegment({\n getSafeRouteKey,\n interceptionMarker: paramMatches[1],\n segment: paramMatches[2],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined,\n backreferenceDuplicateKeys\n }));\n } else if (paramMatches && paramMatches[2]) {\n // If there's a prefix, add it to the segments if it's enabled.\n if (includePrefix && paramMatches[1]) {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1]));\n }\n let s = getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[2],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined,\n backreferenceDuplicateKeys\n });\n // Remove the leading slash if includePrefix already added it.\n if (includePrefix && paramMatches[1]) {\n s = s.substring(1);\n }\n segments.push(s);\n } else {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(segment));\n }\n // If there's a suffix, add it to the segments if it's enabled.\n if (includeSuffix && paramMatches && paramMatches[3]) {\n segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3]));\n }\n }\n return {\n namedParameterizedRoute: segments.join(''),\n routeKeys\n };\n}\nfunction getNamedRouteRegex(normalizedRoute, options) {\n var _options_includeSuffix, _options_includePrefix, _options_backreferenceDuplicateKeys;\n const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, (_options_includeSuffix = options.includeSuffix) != null ? _options_includeSuffix : false, (_options_includePrefix = options.includePrefix) != null ? _options_includePrefix : false, (_options_backreferenceDuplicateKeys = options.backreferenceDuplicateKeys) != null ? _options_backreferenceDuplicateKeys : false);\n let namedRegex = result.namedParameterizedRoute;\n if (!options.excludeOptionalTrailingSlash) {\n namedRegex += '(?:/)?';\n }\n return {\n ...getRouteRegex(normalizedRoute, options),\n namedRegex: \"^\" + namedRegex + \"$\",\n routeKeys: result.routeKeys\n };\n}\nfunction getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false);\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, false, false, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWlXZ0JBLHVCQUF1QjtlQUF2QkE7O0lBNUJBQyxrQkFBa0I7ZUFBbEJBOztJQTdMQUMsYUFBYTtlQUFiQTs7O3VDQXJJVDtnREFDb0M7MENBQ1I7aURBQ0M7NkNBQ3FCO0FBeUV6RCxTQUFTQyxxQkFDUEMsS0FBYSxFQUNiQyxhQUFzQixFQUN0QkMsYUFBc0I7SUFFdEIsTUFBTUMsU0FBeUMsQ0FBQztJQUNoRCxJQUFJQyxhQUFhO0lBRWpCLE1BQU1DLFdBQXFCLEVBQUU7SUFDN0IsS0FBSyxNQUFNQyxXQUFXQyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CUCxPQUFPUSxLQUFLLENBQUMsR0FBR0MsS0FBSyxDQUFDLEtBQU07UUFDcEUsTUFBTUMsY0FBY0Msb0JBQUFBLDBCQUEwQixDQUFDQyxJQUFJLENBQUMsQ0FBQ0MsSUFDbkRQLFFBQVFRLFVBQVUsQ0FBQ0Q7UUFFckIsTUFBTUUsZUFBZVQsUUFBUVUsS0FBSyxDQUFDQyxpQkFBQUEsaUJBQWlCLEVBQUUsdUJBQXVCOztRQUU3RSxJQUFJUCxlQUFlSyxnQkFBZ0JBLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDbEQsTUFBTSxFQUFFRyxHQUFHLEVBQUVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLGlCQUFBQSxxQkFBQUEsRUFBc0JOLFlBQVksQ0FBQyxFQUFFO1lBQ3ZFWixNQUFNLENBQUNlLElBQUksR0FBRztnQkFBRUksS0FBS2xCO2dCQUFjZ0I7Z0JBQVFEO1lBQVM7WUFDcERkLFNBQVNrQixJQUFJLENBQUUsTUFBR0MsQ0FBQUEsR0FBQUEsY0FBQUEsa0JBQUFBLEVBQW1CZCxlQUFhO1FBQ3BELE9BQU8sSUFBSUssZ0JBQWdCQSxZQUFZLENBQUMsRUFBRSxFQUFFO1lBQzFDLE1BQU0sRUFBRUcs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QUF1QixFQUN2Qm1DLE9BQWtDO1FBS2hDQSx3QkFDQUEsd0JBQ0FBO0lBTEYsTUFBTUMsU0FBU1QsMEJBQ2IzQixpQkFDQW1DLFFBQVFQLGVBQWUsRUFDdkJPLENBQUFBLHlCQUFBQSxRQUFRL0QsYUFBQUEsS0FBYSxPQUFyQitELHlCQUF5QixPQUN6QkEsQ0FBQUEseUJBQUFBLFFBQVE5RCxhQUFBQSxLQUFhLE9BQXJCOEQseUJBQXlCLE9BQ3pCQSxDQUFBQSxzQ0FBQUEsUUFBUWxCLDBCQUFBQSxLQUEwQixPQUFsQ2tCLHNDQUFzQztJQUd4QyxJQUFJRSxhQUFhRCxPQUFPRix1QkFBdUI7SUFDL0MsSUFBSSxDQUFDQyxRQUFRbEMsNEJBQTRCLEVBQUU7UUFDekNvQyxjQUFjO0lBQ2hCO0lBRUEsT0FBTztRQUNMLEdBQUdwRSxjQUFjK0IsaUJBQWlCbUMsUUFBUTtRQUMxQ0UsWUFBYSxNQUFHQSxhQUFXO1FBQzNCdEIsV0FBV3FCLE9BQU9yQixTQUFTO0lBQzdCO0FBQ0Y7QUFNTyxTQUFTaEQsd0JBQ2RpQyxlQUF1QixFQUN2Qm1DLE9BRUM7SUFFRCxNQUFNLEVBQUVyQyxrQkFBa0IsRUFBRSxHQUFHNUIscUJBQzdCOEIsaUJBQ0EsT0FDQTtJQUVGLE1BQU0sRUFBRXNDLFdBQVcsSUFBSSxFQUFFLEdBQUdIO0lBQzVCLElBQUlyQyx1QkFBdUIsS0FBSztRQUM5QixJQUFJeUMsZ0JBQWdCRCxXQUFXLE9BQU87UUFDdEMsT0FBTztZQUNMRCxZQUFhLE9BQUlFLGdCQUFjO1FBQ2pDO0lBQ0Y7SUFFQSxNQUFNLEVBQUVMLHVCQUF1QixFQUFFLEdBQUdQLDBCQUNsQzNCLGlCQUNBLE9BQ0EsT0FDQSxPQUNBO0lBRUYsSUFBSXdDLHVCQUF1QkYsV0FBVyxlQUFlO0lBQ3JELE9BQU87UUFDTEQsWUFBYSxNQUFHSCwwQkFBMEJNLHVCQUFxQjtJQUNqRTtBQUNGIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVgsXG4gIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYLFxufSBmcm9tICcuLi8uLi8uLi8uLi9saWIvY29uc3RhbnRzJ1xuaW1wb3J0IHsgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgfSBmcm9tICcuL2ludGVyY2VwdGlvbi1yb3V0ZXMnXG5pbXBvcnQgeyBlc2NhcGVTdHJpbmdSZWdleHAgfSBmcm9tICcuLi8uLi9lc2NhcGUtcmVnZXhwJ1xuaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vcmVtb3ZlLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgUEFSQU1FVEVSX1BBVFRFUk4sIHBhcnNlTWF0Y2hlZFBhcmFtZXRlciB9IGZyb20gJy4vZ2V0LWR5bmFtaWMtcGFyYW0nXG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXAge1xuICBwb3M6IG51bWJlclxuICByZXBlYXQ6IGJvb2xlYW5cbiAgb3B0aW9uYWw6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVJlZ2V4IHtcbiAgZ3JvdXBzOiB7IFtncm91cE5hbWU6IHN0cmluZ106IEdyb3VwIH1cbiAgcmU6IFJlZ0V4cFxufVxuXG50eXBlIEdldE5hbWVkUm91dGVSZWdleE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZWZpeCB0aGUgcm91dGUga2V5cyB3aXRoIHRoZSBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYXG4gICAqIG9yIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYLiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiBjcmVhdGluZyB0aGVcbiAgICogcm91dGVzLW1hbmlmZXN0IGR1cmluZyB0aGUgYnVpbGQuXG4gICAqL1xuICBwcmVmaXhSb3V0ZUtleXM6IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBzdWZmaXggaW4gdGhlIHJvdXRlIHJlZ2V4LiBUaGlzIG1lYW5zIHRoYXQgd2hlbiB5b3VcbiAgICogaGF2ZSBzb21ldGhpbmcgbGlrZSBgL1suLi5zbHVnXS5qc29uYCB0aGUgYC5qc29uYCBwYXJ0IHdpbGwgYmUgaW5jbHVkZWRcbiAgICogaW4gdGhlIHJlZ2V4LCB5aWVsZGluZyBgLyguKikuanNvbmAgYXMgdGhlIHJlZ2V4LlxuICAgKi9cbiAgaW5jbHVkZVN1ZmZpeD86IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBwcmVmaXggaW4gdGhlIHJvdXRlIHJlZ2V4LiBUaGlzIG1lYW5zIHRoYXQgd2hlbiB5b3VcbiAgICogaGF2ZSBzb21ldGhpbmcgbGlrZSBgL1suLi5zbHVnXS5qc29uYCB0aGUgYC9gIHBhcnQgd2lsbCBiZSBpbmNsdWRlZFxuICAgKiBpbiB0aGUgcmVnZXgsIHlpZWxkaW5nIGBeLyguKikuanNvbiRgIGFzIHRoZSByZWdleC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGludGVyY2VwdGlvbiBtYXJrZXJzIHdpbGwgYWxyZWFkeSBiZSBpbmNsdWRlZCB3aXRob3V0IHRoZSBuZWVkXG4gICAqL1xuICBpbmNsdWRlUHJlZml4PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4Y2x1ZGUgdGhlIG9wdGlvbmFsIHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIHJvdXRlIHJlZ2V4LlxuICAgKi9cbiAgZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBiYWNrdHJhY2sgZHVwbGljYXRlIGtleXMuIFRoaXMgaXMgb25seSByZWxldmFudCB3aGVuIGNyZWF0aW5nXG4gICAqIHRoZSByb3V0ZXMtbWFuaWZlc3QgZHVyaW5nIHRoZSBidWlsZC5cbiAgICovXG4gIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzPzogYm9vbGVhblxufVxuXG50eXBlIEdldFJvdXRlUmVnZXhPcHRpb25zID0ge1xuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIGV4dHJhIHBhcnRzIGluIHRoZSByb3V0ZSByZWdleC4gVGhpcyBtZWFucyB0aGF0IHdoZW4geW91XG4gICAqIGhhdmUgc29tZXRoaW5nIGxpa2UgYC9bLi4uc2x1Z10uanNvbmAgdGhlIGAuanNvbmAgcGFydCB3aWxsIGJlIGluY2x1ZGVkXG4gICAqIGluIHRoZSByZWdleCwgeWllbGRpbmcgYC8oLiopLmpzb25gIGFzIHRoZSByZWdleC5cbiAgICovXG4gIGluY2x1ZGVTdWZmaXg/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgcHJlZml4IGluIHRoZSByb3V0ZSByZWdleC4gVGhpcyBtZWFucyB0aGF0IHdoZW4geW91XG4gICAqIGhhdmUgc29tZXRoaW5nIGxpa2UgYC9bLi4uc2x1Z10uanNvbmAgdGhlIGAvYCBwYXJ0IHdpbGwgYmUgaW5jbHVkZWRcbiAgICogaW4gdGhlIHJlZ2V4LCB5aWVsZGluZyBgXi8oLiopLmpzb24kYCBhcyB0aGUgcmVnZXguXG4gICAqXG4gICAqIE5vdGUgdGhhdCBpbnRlcmNlcHRpb24gbWFya2VycyB3aWxsIGFscmVhZHkgYmUgaW5jbHVkZWQgd2l0aG91dCB0aGUgbmVlZFxuICAgKiBvZiBhZGRpbmcgdGhpcyBvcHRpb24uXG4gICAqL1xuICBpbmNsdWRlUHJlZml4PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4Y2x1ZGUgdGhlIG9wdGlvbmFsIHRyYWlsaW5nIHNsYXNoIGZyb20gdGhlIHJvdXRlIHJlZ2V4LlxuICAgKi9cbiAgZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaD86IGJvb2xlYW5cbn1cblxuZnVuY3Rpb24gZ2V0UGFyYW1ldHJpemVkUm91dGUoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGluY2x1ZGVTdWZmaXg6IGJvb2xlYW4sXG4gIGluY2x1ZGVQcmVmaXg6IGJvb2xlYW5cbikge1xuICBjb25zdCBncm91cHM6IHsgW2dyb3VwTmFtZTogc3RyaW5nXTogR3JvdXAgfSA9IHt9XG4gIGxldCBncm91cEluZGV4ID0gMVxuXG4gIGNvbnN0IHNlZ21lbnRzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoY29uc3Qgc2VnbWVudCBvZiByZW1vdmVUcmFpbGluZ1NsYXNoKHJvdXRlKS5zbGljZSgxKS5zcGxpdCgnLycpKSB7XG4gICAgY29uc3QgbWFya2VyTWF0Y2ggPSBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PlxuICAgICAgc2VnbWVudC5zdGFydHNXaXRoKG0pXG4gICAgKVxuICAgIGNvbnN0IHBhcmFtTWF0Y2hlcyA9IHNlZ21lbnQubWF0Y2goUEFSQU1FVEVSX1BBVFRFUk4pIC8vIENoZWNrIGZvciBwYXJhbWV0ZXJzXG5cbiAgICBpZiAobWFya2VyTWF0Y2ggJiYgcGFyYW1NYXRjaGVzICYmIHBhcmFtTWF0Y2hlc1syXSkge1xuICAgICAgY29uc3QgeyBrZXksIG9wdGlvbmFsLCByZXBlYXQgfSA9IHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihwYXJhbU1hdGNoZXNbMl0pXG4gICAgICBncm91cHNba2V5XSA9IHsgcG9zOiBncm91cEluZGV4KyssIHJlcGVhdCwgb3B0aW9uYWwgfVxuICAgICAgc2VnbWVudHMucHVzaChgLyR7ZXNjYXBlU3RyaW5nUmVnZXhwKG1hcmtlck1hdGNoKX0oW14vXSs/KWApXG4gICAgfSBlbHNlIGlmIChwYXJhbU1hdGNoZXMgJiYgcGFyYW1NYXRjaGVzWzJdKSB7XG4gICAgICBjb25zdCB7IGtleSwgcmVwZWF0LCBvcHRpb25hbCB9ID0gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHBhcmFtTWF0Y2hlc1syXSlcbiAgICAgIGdyb3Vwc1trZXldID0geyBwb3M6IGdyb3VwSW5kZXgrKywgcmVwZWF0LCBvcHRpb25hbCB9XG5cbiAgICAgIGlmIChpbmNsdWRlUHJlZml4ICYmIHBhcmFtTWF0Y2hlc1sxXSkge1xuICAgICAgICBzZWdtZW50cy5wdXNoKGAvJHtlc2NhcGVTdHJpbmdSZWdleHAocGFyYW1NYXRjaGVzWzFdKX1gKVxuICAgICAgfVxuXG4gICAgICBsZXQgcyA9IHJlcGVhdCA/IChvcHRpb25hbCA/ICcoPzovKC4rPykpPycgOiAnLyguKz8pJykgOiAnLyhbXi9dKz8pJ1xuXG4gICAgICAvLyBSZW1vdmUgdGhlIGxlYWRpbmcgc2xhc2ggaWYgaW5jbHVkZVByZWZpeCBhbHJlYWR5IGFkZGVkIGl0LlxuICAgICAgaWYgKGluY2x1ZGVQcmVmaXggJiYgcGFyYW1NYXRjaGVzWzFdKSB7XG4gICAgICAgIHMgPSBzLnN1YnN0cmluZygxKVxuICAgICAgfVxuXG4gICAgICBzZWdtZW50cy5wdXNoKHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNlZ21lbnRzLnB1c2goYC8ke2VzY2FwZVN0cmluZ1JlZ2V4cChzZWdtZW50KX1gKVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlJ3MgYSBzdWZmaXgsIGFkZCBpdCB0byB0aGUgc2VnbWVudHMgaWYgaXQncyBlbmFibGVkLlxuICAgIGlmIChpbmNsdWRlU3VmZml4ICYmIHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbM10pIHtcbiAgICAgIHNlZ21lbnRzLnB1c2goZXNjYXBlU3RyaW5nUmVnZXhwKHBhcmFtTWF0Y2hlc1szXSkpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwYXJhbWV0ZXJpemVkUm91dGU6IHNlZ21lbnRzLmpvaW4oJycpLFxuICAgIGdyb3VwcyxcbiAgfVxufVxuXG4vKipcbiAqIEZyb20gYSBub3JtYWxpemVkIHJvdXRlIHRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgcmVndWxhciBleHByZXNzaW9uIGFuZFxuICogYSBjb3JyZXNwb25kaW5nIGdyb3VwcyBvYmplY3QgaW50ZW5kZWQgdG8gYmUgdXNlZCB0byBzdG9yZSBtYXRjaGluZyBncm91cHNcbiAqIGZyb20gdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlUmVnZXgoXG4gIG5vcm1hbGl6ZWRSb3V0ZTogc3RyaW5nLFxuICB7XG4gICAgaW5jbHVkZVN1ZmZpeCA9IGZhbHNlLFxuICAgIGluY2x1ZGVQcmVmaXggPSBmYWxzZSxcbiAgICBleGNsdWRlT3B0aW9uYWxUcmFpbGluZ1NsYXNoID0gZmFsc2UsXG4gIH06IEdldFJvdXRlUmVnZXhPcHRpb25zID0ge31cbik6IFJvdXRlUmVnZXgge1xuICBjb25zdCB7IHBhcmFtZXRlcml6ZWRSb3V0ZSwgZ3JvdXBzIH0gPSBnZXRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgICBub3JtYWxpemVkUm91dGUsXG4gICAgaW5jbHVkZVN1ZmZpeCxcbiAgICBpbmNsdWRlUHJlZml4XG4gIClcblxuICBsZXQgcmUgPSBwYXJhbWV0ZXJpemVkUm91dGVcbiAgaWYgKCFleGNsdWRlT3B0aW9uYWxUcmFpbGluZ1NsYXNoKSB7XG4gICAgcmUgKz0gJyg/Oi8pPydcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcmU6IG5ldyBSZWdFeHAoYF4ke3JlfSRgKSxcbiAgICBncm91cHM6IGdyb3VwcyxcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIGEgbWluaW1hbCByb3V0ZUtleSB1c2luZyBvbmx5IGEteiBhbmQgbWluaW1hbFxuICogbnVtYmVyIG9mIGNoYXJhY3RlcnMuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkR2V0U2FmZVJvdXRlS2V5KCkge1xuICBsZXQgaSA9IDBcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIGxldCByb3V0ZUtleSA9ICcnXG4gICAgbGV0IGogPSArK2lcbiAgICB3aGlsZSAoaiA+IDApIHtcbiAgICAgIHJvdXRlS2V5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoOTcgKyAoKGogLSAxKSAlIDI2KSlcbiAgICAgIGogPSBNYXRoLmZsb29yKChqIC0gMSkgLyAyNilcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlS2V5XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U2FmZUtleUZyb21TZWdtZW50KHtcbiAgaW50ZXJjZXB0aW9uTWFya2VyLFxuICBnZXRTYWZlUm91dGVLZXksXG4gIHNlZ21lbnQsXG4gIHJvdXRlS2V5cyxcbiAga2V5UHJlZml4LFxuICBiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5cyxcbn06IHtcbiAgaW50ZXJjZXB0aW9uTWFya2VyPzogc3RyaW5nXG4gIGdldFNhZmVSb3V0ZUtleTogKCkgPT4gc3RyaW5nXG4gIHNlZ21lbnQ6IHN0cmluZ1xuICByb3V0ZUtleXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAga2V5UHJlZml4Pzogc3RyaW5nXG4gIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzOiBib29sZWFuXG59KSB7XG4gIGNvbnN0IHsga2V5LCBvcHRpb25hbCwgcmVwZWF0IH0gPSBwYXJzZU1hdGNoZWRQYXJhbWV0ZXIoc2VnbWVudClcblxuICAvLyByZXBsYWNlIGFueSBub24td29yZCBjaGFyYWN0ZXJzIHNpbmNlIHRoZXkgY2FuIGJyZWFrXG4gIC8vIHRoZSBuYW1lZCByZWdleFxuICBsZXQgY2xlYW5lZEtleSA9IGtleS5yZXBsYWNlKC9cXFcvZywgJycpXG5cbiAgaWYgKGtleVByZWZpeCkge1xuICAgIGNsZWFuZWRLZXkgPSBgJHtrZXlQcmVmaXh9JHtjbGVhbmVkS2V5fWBcbiAgfVxuICBsZXQgaW52YWxpZEtleSA9IGZhbHNlXG5cbiAgLy8gY2hlY2sgaWYgdGhlIGtleSBpcyBzdGlsbCBpbnZhbGlkIGFuZCBmYWxsYmFjayB0byB1c2luZyBhIGtub3duXG4gIC8vIHNhZmUga2V5XG4gIGlmIChjbGVhbmVkS2V5Lmxlbmd0aCA9PT0gMCB8fCBjbGVhbmVkS2V5Lmxlbmd0aCA+IDMwKSB7XG4gICAgaW52YWxpZEtleSA9IHRydWVcbiAgfVxuICBpZiAoIWlzTmFOKHBhcnNlSW50KGNsZWFuZWRLZXkuc2xpY2UoMCwgMSkpKSkge1xuICAgIGludmFsaWRLZXkgPSB0cnVlXG4gIH1cblxuICBpZiAoaW52YWxpZEtleSkge1xuICAgIGNsZWFuZWRLZXkgPSBnZXRTYWZlUm91dGVLZXkoKVxuICB9XG5cbiAgY29uc3QgZHVwbGljYXRlS2V5ID0gY2xlYW5lZEtleSBpbiByb3V0ZUtleXNcblxuICBpZiAoa2V5UHJlZml4KSB7XG4gICAgcm91dGVLZXlzW2NsZWFuZWRLZXldID0gYCR7a2V5UHJlZml4fSR7a2V5fWBcbiAgfSBlbHNlIHtcbiAgICByb3V0ZUtleXNbY2xlYW5lZEtleV0gPSBrZXlcbiAgfVxuXG4gIC8vIGlmIHRoZSBzZWdtZW50IGhhcyBhbiBpbnRlcmNlcHRpb24gbWFya2VyLCBtYWtlIHN1cmUgdGhhdCdzIHBhcnQgb2YgdGhlIHJlZ2V4IHBhdHRlcm5cbiAgLy8gdGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgcm91dGUgd2l0aCB0aGUgaW50ZXJjZXB0aW9uIG1hcmtlciBkb2Vzbid0IGluY29ycmVjdGx5IG1hdGNoXG4gIC8vIHRoZSBub24taW50ZXJjZXB0ZWQgcm91dGUgKGllIC9hcHAvKC4pW3VzZXJuYW1lXSBzaG91bGQgbm90IG1hdGNoIC9hcHAvW3VzZXJuYW1lXSlcbiAgY29uc3QgaW50ZXJjZXB0aW9uUHJlZml4ID0gaW50ZXJjZXB0aW9uTWFya2VyXG4gICAgPyBlc2NhcGVTdHJpbmdSZWdleHAoaW50ZXJjZXB0aW9uTWFya2VyKVxuICAgIDogJydcblxuICBsZXQgcGF0dGVybjogc3RyaW5nXG4gIGlmIChkdXBsaWNhdGVLZXkgJiYgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMpIHtcbiAgICAvLyBVc2UgYSBiYWNrcmVmZXJlbmNlIHRvIHRoZSBrZXkgdG8gZW5zdXJlIHRoYXQgdGhlIGtleSBpcyB0aGUgc2FtZSB2YWx1ZVxuICAgIC8vIGluIGVhY2ggb2YgdGhlIHBsYWNlaG9sZGVycy5cbiAgICBwYXR0ZXJuID0gYFxcXFxrPCR7Y2xlYW5lZEtleX0+YFxuICB9IGVsc2UgaWYgKHJlcGVhdCkge1xuICAgIHBhdHRlcm4gPSBgKD88JHtjbGVhbmVkS2V5fT4uKz8pYFxuICB9IGVsc2Uge1xuICAgIHBhdHRlcm4gPSBgKD88JHtjbGVhbmVkS2V5fT5bXi9dKz8pYFxuICB9XG5cbiAgcmV0dXJuIG9wdGlvbmFsXG4gICAgPyBgKD86LyR7aW50ZXJjZXB0aW9uUHJlZml4fSR7cGF0dGVybn0pP2BcbiAgICA6IGAvJHtpbnRlcmNlcHRpb25QcmVmaXh9JHtwYXR0ZXJufWBcbn1cblxuZnVuY3Rpb24gZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgcm91dGU6IHN0cmluZyxcbiAgcHJlZml4Um91dGVLZXlzOiBib29sZWFuLFxuICBpbmNsdWRlU3VmZml4OiBib29sZWFuLFxuICBpbmNsdWRlUHJlZml4OiBib29sZWFuLFxuICBiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5czogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGdldFNhZmVSb3V0ZUtleSA9IGJ1aWxkR2V0U2FmZVJvdXRlS2V5KClcbiAgY29uc3Qgcm91dGVLZXlzOiB7IFtuYW1lZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fVxuXG4gIGNvbnN0IHNlZ21lbnRzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoY29uc3Qgc2VnbWVudCBvZiByZW1vdmVUcmFpbGluZ1NsYXNoKHJvdXRlKS5zbGljZSgxKS5zcGxpdCgnLycpKSB7XG4gICAgY29uc3QgaGFzSW50ZXJjZXB0aW9uTWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuc29tZSgobSkgPT5cbiAgICAgIHNlZ21lbnQuc3RhcnRzV2l0aChtKVxuICAgIClcblxuICAgIGNvbnN0IHBhcmFtTWF0Y2hlcyA9IHNlZ21lbnQubWF0Y2goUEFSQU1FVEVSX1BBVFRFUk4pIC8vIENoZWNrIGZvciBwYXJhbWV0ZXJzXG5cbiAgICBpZiAoaGFzSW50ZXJjZXB0aW9uTWFya2VyICYmIHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbMl0pIHtcbiAgICAgIC8vIElmIHRoZXJlJ3MgYW4gaW50ZXJjZXB0aW9uIG1hcmtlciwgYWRkIGl0IHRvIHRoZSBzZWdtZW50cy5cbiAgICAgIHNlZ21lbnRzLnB1c2goXG4gICAgICAgIGdldFNhZmVLZXlGcm9tU2VnbWVudCh7XG4gICAgICAgICAgZ2V0U2FmZVJvdXRlS2V5LFxuICAgICAgICAgIGludGVyY2VwdGlvbk1hcmtlcjogcGFyYW1NYXRjaGVzWzFdLFxuICAgICAgICAgIHNlZ21lbnQ6IHBhcmFtTWF0Y2hlc1syXSxcbiAgICAgICAgICByb3V0ZUtleXMsXG4gICAgICAgICAga2V5UHJlZml4OiBwcmVmaXhSb3V0ZUtleXNcbiAgICAgICAgICAgID8gTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWFxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChwYXJhbU1hdGNoZXMgJiYgcGFyYW1NYXRjaGVzWzJdKSB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGEgcHJlZml4LCBhZGQgaXQgdG8gdGhlIHNlZ21lbnRzIGlmIGl0J3MgZW5hYmxlZC5cbiAgICAgIGlmIChpbmNsdWRlUHJlZml4ICYmIHBhcmFtTWF0Y2hlc1sxXSkge1xuICAgICAgICBzZWdtZW50cy5wdXNoKGAvJHtlc2NhcGVTdHJpbmdSZWdleHAocGFyYW1NYXRjaGVzWzFdKX1gKVxuICAgICAgfVxuXG4gICAgICBsZXQgcyA9IGdldFNhZmVLZXlGcm9tU2VnbWVudCh7XG4gICAgICAgIGdldFNhZmVSb3V0ZUtleSxcbiAgICAgICAgc2VnbWVudDogcGFyYW1NYXRjaGVzWzJdLFxuICAgICAgICByb3V0ZUtleXMsXG4gICAgICAgIGtleVByZWZpeDogcHJlZml4Um91dGVLZXlzID8gTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVggOiB1bmRlZmluZWQsXG4gICAgICAgIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzLFxuICAgICAgfSlcblxuICAgICAgLy8gUmVtb3ZlIHRoZSBsZWFkaW5nIHNsYXNoIGlmIGluY2x1ZGVQcmVmaXggYWxyZWFkeSBhZGRlZCBpdC5cbiAgICAgIGlmIChpbmNsdWRlUHJlZml4ICYmIHBhcmFtTWF0Y2hlc1sxXSkge1xuICAgICAgICBzID0gcy5zdWJzdHJpbmcoMSlcbiAgICAgIH1cblxuICAgICAgc2VnbWVudHMucHVzaChzKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZWdtZW50cy5wdXNoKGAvJHtlc2NhcGVTdHJpbmdSZWdleHAoc2VnbWVudCl9YClcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSdzIGEgc3VmZml4LCBhZGQgaXQgdG8gdGhlIHNlZ21lbnRzIGlmIGl0J3MgZW5hYmxlZC5cbiAgICBpZiAoaW5jbHVkZVN1ZmZpeCAmJiBwYXJhbU1hdGNoZXMgJiYgcGFyYW1NYXRjaGVzWzNdKSB7XG4gICAgICBzZWdtZW50cy5wdXNoKGVzY2FwZVN0cmluZ1JlZ2V4cChwYXJhbU1hdGNoZXNbM10pKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZWRQYXJhbWV0ZXJpemVkUm91dGU6IHNlZ21lbnRzLmpvaW4oJycpLFxuICAgIHJvdXRlS2V5cyxcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gZXh0ZW5kcyBgZ2V0Um91dGVSZWdleGAgZ2VuZXJhdGluZyBhbHNvIGEgbmFtZWQgcmVnZXhwIHdoZXJlXG4gKiBlYWNoIGdyb3VwIGlzIG5hbWVkIGFsb25nIHdpdGggYSByb3V0ZUtleXMgb2JqZWN0IHRoYXQgaW5kZXhlcyB0aGUgYXNzaWduZWRcbiAqIG5hbWVkIGdyb3VwIHdpdGggaXRzIGNvcnJlc3BvbmRpbmcga2V5LiBXaGVuIHRoZSByb3V0ZUtleXMgbmVlZCB0byBiZVxuICogcHJlZml4ZWQgdG8gdW5pcXVlbHkgaWRlbnRpZnkgaW50ZXJuYWxseSB0aGUgXCJwcmVmaXhSb3V0ZUtleVwiIGFyZyBzaG91bGRcbiAqIGJlIFwidHJ1ZVwiIGN1cnJlbnRseSB0aGlzIGlzIG9ubHkgdGhlIGNhc2Ugd2hlbiBjcmVhdGluZyB0aGUgcm91dGVzLW1hbmlmZXN0XG4gKiBkdXJpbmcgdGhlIGJ1aWxkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROYW1lZFJvdXRlUmVnZXgoXG4gIG5vcm1hbGl6ZWRSb3V0ZTogc3RyaW5nLFxuICBvcHRpb25zOiBHZXROYW1lZFJvdXRlUmVnZXhPcHRpb25zXG4pIHtcbiAgY29uc3QgcmVzdWx0ID0gZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgICBub3JtYWxpemVkUm91dGUsXG4gICAgb3B0aW9ucy5wcmVmaXhSb3V0ZUtleXMsXG4gICAgb3B0aW9ucy5pbmNsdWRlU3VmZml4ID8/IGZhbHNlLFxuICAgIG9wdGlvbnMuaW5jbHVkZVByZWZpeCA/PyBmYWxzZSxcbiAgICBvcHRpb25zLmJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzID8/IGZhbHNlXG4gIClcblxuICBsZXQgbmFtZWRSZWdleCA9IHJlc3VsdC5uYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZVxuICBpZiAoIW9wdGlvbnMuZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaCkge1xuICAgIG5hbWVkUmVnZXggKz0gJyg/Oi8pPydcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uZ2V0Um91dGVSZWdleChub3JtYWxpemVkUm91dGUsIG9wdGlvbnMpLFxuICAgIG5hbWVkUmVnZXg6IGBeJHtuYW1lZFJlZ2V4fSRgLFxuICAgIHJvdXRlS2V5czogcmVzdWx0LnJvdXRlS2V5cyxcbiAgfVxufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIG5hbWVkIHJlZ2V4cC5cbiAqIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNpbmcgZm9yIGJ1aWxkIHRpbWUgb25seS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5hbWVkTWlkZGxld2FyZVJlZ2V4KFxuICBub3JtYWxpemVkUm91dGU6IHN0cmluZyxcbiAgb3B0aW9uczoge1xuICAgIGNhdGNoQWxsPzogYm9vbGVhblxuICB9XG4pIHtcbiAgY29uc3QgeyBwYXJhbWV0ZXJpemVkUm91dGUgfSA9IGdldFBhcmFtZXRyaXplZFJvdXRlKFxuICAgIG5vcm1hbGl6ZWRSb3V0ZSxcbiAgICBmYWxzZSxcbiAgICBmYWxzZVxuICApXG4gIGNvbnN0IHsgY2F0Y2hBbGwgPSB0cnVlIH0gPSBvcHRpb25zXG4gIGlmIChwYXJhbWV0ZXJpemVkUm91dGUgPT09ICcvJykge1xuICAgIGxldCBjYXRjaEFsbFJlZ2V4ID0gY2F0Y2hBbGwgPyAnLionIDogJydcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZWRSZWdleDogYF4vJHtjYXRjaEFsbFJlZ2V4fSRgLFxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHsgbmFtZWRQYXJhbWV0ZXJpemVkUm91dGUgfSA9IGdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUoXG4gICAgbm9ybWFsaXplZFJvdXRlLFxuICAgIGZhbHNlLFxuICAgIGZhbHNlLFxuICAgIGZhbHNlLFxuICAgIGZhbHNlXG4gIClcbiAgbGV0IGNhdGNoQWxsR3JvdXBlZFJlZ2V4ID0gY2F0Y2hBbGwgPyAnKD86KC8uKik/KScgOiAnJ1xuICByZXR1cm4ge1xuICAgIG5hbWVkUmVnZXg6IGBeJHtuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZX0ke2NhdGNoQWxsR3JvdXBlZFJlZ2V4fSRgLFxuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0TmFtZWRNaWRkbGV3YXJlUmVnZXgiLCJnZXROYW1lZFJvdXRlUmVnZXgiLCJnZXRSb3V0ZVJlZ2V4IiwiZ2V0UGFyYW1ldHJpemVkUm91dGUiLCJyb3V0ZSIsImluY2x1ZGVTdWZmaXgiLCJpbmNsdWRlUHJlZml4IiwiZ3JvdXBzIiwiZ3JvdXBJbmRleCIsInNlZ21lbnRzIiwic2VnbWVudCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJzbGljZSIsInNwbGl0IiwibWFya2VyTWF0Y2giLCJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsImZpbmQiLCJtIiwic3RhcnRzV2l0aCIsInBhcmFtTWF0Y2hlcyIsIm1hdGNoIiwiUEFSQU1FVEVSX1BBVFRFUk4iLCJrZXkiLCJvcHRpb25hbCIsInJlcGVhdCIsInBhcnNlTWF0Y2hlZFBhcmFtZXRlciIsInBvcyIsInB1c2giLCJlc2NhcGVTdHJpbmdSZWdleHAiLCJzIiwic3Vic3RyaW5nIiwicGFyYW1ldGVyaXplZFJvdXRlIiwiam9pbiIsIm5vcm1hbGl6ZWRSb3V0ZSIsImV4Y2x1ZGVPcHRpb25hbFRyYWlsaW5nU2xhc2giLCJyZSIsIlJlZ0V4cCIsImJ1aWxkR2V0U2FmZVJvdXRlS2V5IiwiaSIsInJvdXRlS2V5IiwiaiIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsIk1hdGgiLCJmbG9vciIsImdldFNhZmVLZXlGcm9tU2VnbWVudCIsImludGVyY2VwdGlvbk1hcmtlciIsImdldFNhZmVSb3V0ZUtleSIsInJvdXRlS2V5cyIsImtleVByZWZpeCIsImJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzIiwiY2xlYW5lZEtleSIsInJlcGxhY2UiLCJpbnZhbGlkS2V5IiwibGVuZ3RoIiwiaXNOYU4iLCJwYXJzZUludCIsImR1cGxpY2F0ZUtleSIsImludGVyY2VwdGlvblByZWZpeCIsInBhdHRlcm4iLCJnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlIiwicHJlZml4Um91dGVLZXlzIiwiaGFzSW50ZXJjZXB0aW9uTWFya2VyIiwic29tZSIsIk5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVgiLCJ1bmRlZmluZWQiLCJORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCIsIm5hbWVkUGFyYW1ldGVyaXplZFJvdXRlIiwib3B0aW9ucyIsInJlc3VsdCIsIm5hbWVkUmVnZXgiLCJjYXRjaEFsbCIsImNhdGNoQWxsUmVnZXgiLCJjYXRjaEFsbEdyb3VwZWRSZWdleCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js":
|
||
/*!********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js ***!
|
||
\********************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// In output: export mode, the build id is added to the start of the HTML\n// document, directly after the doctype declaration. During a prefetch, the\n// client performs a range request to get the build id, so it can check whether\n// the target page belongs to the same build.\n//\n// The first 64 bytes of the document are requested. The exact number isn't\n// too important; it must be larger than the build id + doctype + closing and\n// ending comment markers, but it doesn't need to match the end of the\n// comment exactly.\n//\n// Build ids are 21 bytes long in the default implementation, though this\n// can be overridden in the Next.js config. For the purposes of this check,\n// it's OK to only match the start of the id, so we'll truncate it if exceeds\n// a certain length.\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 DOC_PREFETCH_RANGE_HEADER_VALUE: function() {\n return DOC_PREFETCH_RANGE_HEADER_VALUE;\n },\n doesExportedHtmlMatchBuildId: function() {\n return doesExportedHtmlMatchBuildId;\n },\n insertBuildIdComment: function() {\n return insertBuildIdComment;\n }\n});\nconst DOCTYPE_PREFIX = '<!DOCTYPE html>' // 15 bytes\n;\nconst MAX_BUILD_ID_LENGTH = 24;\nconst DOC_PREFETCH_RANGE_HEADER_VALUE = 'bytes=0-63';\nfunction escapeBuildId(buildId) {\n // If the build id is longer than the given limit, it's OK for our purposes\n // to only match the beginning.\n const truncated = buildId.slice(0, MAX_BUILD_ID_LENGTH);\n // Replace hyphens with underscores so it doesn't break the HTML comment.\n // (Unlikely, but if this did happen it would break the whole document.)\n return truncated.replace(/-/g, '_');\n}\nfunction insertBuildIdComment(originalHtml, buildId) {\n if (buildId.includes('-->') || // React always inserts a doctype at the start of the document. Skip if it\n // isn't present. Shouldn't happen; suggests an issue elsewhere.\n !originalHtml.startsWith(DOCTYPE_PREFIX)) {\n // Return the original HTML unchanged. This means the document will not\n // be prefetched.\n // TODO: The build id comment is currently only used during prefetches, but\n // if we eventually use this mechanism for regular navigations, we may need\n // to error during build if we fail to insert it for some reason.\n return originalHtml;\n }\n // The comment must be inserted after the doctype.\n return originalHtml.replace(DOCTYPE_PREFIX, DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n}\nfunction doesExportedHtmlMatchBuildId(partialHtmlDocument, buildId) {\n // Check whether the document starts with the expected buildId.\n return partialHtmlDocument.startsWith(DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n} //# sourceMappingURL=output-export-prefetch-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9vdXRwdXQtZXhwb3J0LXByZWZldGNoLWVuY29kaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0UsK0VBQStFO0FBQy9FLDZDQUE2QztBQUM3QyxFQUFFO0FBQ0YsMkVBQTJFO0FBQzNFLDZFQUE2RTtBQUM3RSxzRUFBc0U7QUFDdEUsbUJBQW1CO0FBQ25CLEVBQUU7QUFDRix5RUFBeUU7QUFDekUsMkVBQTJFO0FBQzNFLDZFQUE2RTtBQUM3RSxvQkFBb0I7Ozs7Ozs7Ozs7Ozs7SUFNUEEsK0JBQStCO2VBQS9CQTs7SUFpQ0dDLDRCQUE0QjtlQUE1QkE7O0lBdEJBQyxvQkFBb0I7ZUFBcEJBOzs7QUFmaEIsTUFBTUMsaUJBQWlCLGtCQUFrQixXQUFXOztBQUNwRCxNQUFNQyxzQkFBc0I7QUFHckIsTUFBTUosa0NBQWtDO0FBRS9DLFNBQVNLLGNBQWNDLE9BQWU7SUFDcEMsMkVBQTJFO0lBQzNFLCtCQUErQjtJQUMvQixNQUFNQyxZQUFZRCxRQUFRRSxLQUFLLENBQUMsR0FBR0o7SUFDbkMseUVBQXlFO0lBQ3pFLHdFQUF3RTtJQUN4RSxPQUFPRyxVQUFVRSxPQUFPLENBQUMsTUFBTTtBQUNqQztBQUVPLFNBQVNQLHFCQUFxQlEsWUFBb0IsRUFBRUosT0FBZTtJQUN4RSxJQUNFLFFBQ1FLLFFBQVEsQ0FBQyxVQUNqQiwrQkFGMEQsMkNBRWdCO0lBQzFFLGdFQUFnRTtJQUNoRSxDQUFDRCxhQUFhRSxVQUFVLENBQUNULGlCQUN6QjtRQUNBLHVFQUF1RTtRQUN2RSxpQkFBaUI7UUFDakIsMkVBQTJFO1FBQzNFLDJFQUEyRTtRQUMzRSxpRUFBaUU7UUFDakUsT0FBT087SUFDVDtJQUNBLGtEQUFrRDtJQUNsRCxPQUFPQSxhQUFhRCxPQUFPLENBQ3pCTixnQkFDQUEsaUJBQWlCLFNBQVNFLGNBQWNDLFdBQVc7QUFFdkQ7QUFFTyxTQUFTTCw2QkFDZFksbUJBQTJCLEVBQzNCUCxPQUFlO0lBRWYsK0RBQStEO0lBQy9ELE9BQU9PLG9CQUFvQkQsVUFBVSxDQUNuQ1QsaUJBQWlCLFNBQVNFLGNBQWNDLFdBQVc7QUFFdkQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvc2hhcmVkL2xpYi9zZWdtZW50LWNhY2hlL291dHB1dC1leHBvcnQtcHJlZmV0Y2gtZW5jb2RpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW4gb3V0cHV0OiBleHBvcnQgbW9kZSwgdGhlIGJ1aWxkIGlkIGlzIGFkZGVkIHRvIHRoZSBzdGFydCBvZiB0aGUgSFRNTFxuLy8gZG9jdW1lbnQsIGRpcmVjdGx5IGFmdGVyIHRoZSBkb2N0eXBlIGRlY2xhcmF0aW9uLiBEdXJpbmcgYSBwcmVmZXRjaCwgdGhlXG4vLyBjbGllbnQgcGVyZm9ybXMgYSByYW5nZSByZXF1ZXN0IHRvIGdldCB0aGUgYnVpbGQgaWQsIHNvIGl0IGNhbiBjaGVjayB3aGV0aGVyXG4vLyB0aGUgdGFyZ2V0IHBhZ2UgYmVsb25ncyB0byB0aGUgc2FtZSBidWlsZC5cbi8vXG4vLyBUaGUgZmlyc3QgNjQgYnl0ZXMgb2YgdGhlIGRvY3VtZW50IGFyZSByZXF1ZXN0ZWQuIFRoZSBleGFjdCBudW1iZXIgaXNuJ3Rcbi8vIHRvbyBpbXBvcnRhbnQ7IGl0IG11c3QgYmUgbGFyZ2VyIHRoYW4gdGhlIGJ1aWxkIGlkICsgZG9jdHlwZSArIGNsb3NpbmcgYW5kXG4vLyBlbmRpbmcgY29tbWVudCBtYXJrZXJzLCBidXQgaXQgZG9lc24ndCBuZWVkIHRvIG1hdGNoIHRoZSBlbmQgb2YgdGhlXG4vLyBjb21tZW50IGV4YWN0bHkuXG4vL1xuLy8gQnVpbGQgaWRzIGFyZSAyMSBieXRlcyBsb25nIGluIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLCB0aG91Z2ggdGhpc1xuLy8gY2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIE5leHQuanMgY29uZmlnLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgY2hlY2ssXG4vLyBpdCdzIE9LIHRvIG9ubHkgbWF0Y2ggdGhlIHN0YXJ0IG9mIHRoZSBpZCwgc28gd2UnbGwgdHJ1bmNhdGUgaXQgaWYgZXhjZWVkc1xuLy8gYSBjZXJ0YWluIGxlbmd0aC5cblxuY29uc3QgRE9DVFlQRV9QUkVGSVggPSAnPCFET0NUWVBFIGh0bWw+JyAvLyAxNSBieXRlc1xuY29uc3QgTUFYX0JVSUxEX0lEX0xFTkdUSCA9IDI0XG5cbi8vIFJlcXVlc3QgdGhlIGZpcnN0IDY0IGJ5dGVzLiBUaGUgUmFuZ2UgaGVhZGVyIGlzIGluY2x1c2l2ZSBvZiB0aGUgZW5kIHZhbHVlLlxuZXhwb3J0IGNvbnN0IERPQ19QUkVGRVRDSF9SQU5HRV9IRUFERVJfVkFMVUUgPSAnYnl0ZXM9MC02MydcblxuZnVuY3Rpb24gZXNjYXBlQnVpbGRJZChidWlsZElkOiBzdHJpbmcpIHtcbiAgLy8gSWYgdGhlIGJ1aWxkIGlkIGlzIGxvbmdlciB0aGFuIHRoZSBnaXZlbiBsaW1pdCwgaXQncyBPSyBmb3Igb3VyIHB1cnBvc2VzXG4gIC8vIHRvIG9ubHkgbWF0Y2ggdGhlIGJlZ2lubmluZy5cbiAgY29uc3QgdHJ1bmNhdGVkID0gYnVpbGRJZC5zbGljZSgwLCBNQVhfQlVJTERfSURfTEVOR1RIKVxuICAvLyBSZXBsYWNlIGh5cGhlbnMgd2l0aCB1bmRlcnNjb3JlcyBzbyBpdCBkb2Vzbid0IGJyZWFrIHRoZSBIVE1MIGNvbW1lbnQuXG4gIC8vIChVbmxpa2VseSwgYnV0IGlmIHRoaXMgZGlkIGhhcHBlbiBpdCB3b3VsZCBicmVhayB0aGUgd2hvbGUgZG9jdW1lbnQuKVxuICByZXR1cm4gdHJ1bmNhdGVkLnJlcGxhY2UoLy0vZywgJ18nKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0QnVpbGRJZENvbW1lbnQob3JpZ2luYWxIdG1sOiBzdHJpbmcsIGJ1aWxkSWQ6IHN0cmluZykge1xuICBpZiAoXG4gICAgLy8gU2tpcCBpZiB0aGUgYnVpbGQgaWQgY29udGFpbnMgYSBjbG9zaW5nIGNvbW1lbnQgbWFya2VyLlxuICAgIGJ1aWxkSWQuaW5jbHVkZXMoJy0tPicpIHx8XG4gICAgLy8gUmVhY3QgYWx3YXlzIGluc2VydHMgYSBkb2N0eXBlIGF0IHRoZSBzdGFydCBvZiB0aGUgZG9jdW1lbnQuIFNraXAgaWYgaXRcbiAgICAvLyBpc24ndCBwcmVzZW50LiBTaG91bGRuJ3QgaGFwcGVuOyBzdWdnZXN0cyBhbiBpc3N1ZSBlbHNld2hlcmUuXG4gICAgIW9yaWdpbmFsSHRtbC5zdGFydHNXaXRoKERPQ1RZUEVfUFJFRklYKVxuICApIHtcbiAgICAvLyBSZXR1cm4gdGhlIG9yaWdpbmFsIEhUTUwgdW5jaGFuZ2VkLiBUaGlzIG1lYW5zIHRoZSBkb2N1bWVudCB3aWxsIG5vdFxuICAgIC8vIGJlIHByZWZldGNoZWQuXG4gICAgLy8gVE9ETzogVGhlIGJ1aWxkIGlkIGNvbW1lbnQgaXMgY3VycmVudGx5IG9ubHkgdXNlZCBkdXJpbmcgcHJlZmV0Y2hlcywgYnV0XG4gICAgLy8gaWYgd2UgZXZlbnR1YWxseSB1c2UgdGhpcyBtZWNoYW5pc20gZm9yIHJlZ3VsYXIgbmF2aWdhdGlvbnMsIHdlIG1heSBuZWVkXG4gICAgLy8gdG8gZXJyb3IgZHVyaW5nIGJ1aWxkIGlmIHdlIGZhaWwgdG8gaW5zZXJ0IGl0IGZvciBzb21lIHJlYXNvbi5cbiAgICByZXR1cm4gb3JpZ2luYWxIdG1sXG4gIH1cbiAgLy8gVGhlIGNvbW1lbnQgbXVzdCBiZSBpbnNlcnRlZCBhZnRlciB0aGUgZG9jdHlwZS5cbiAgcmV0dXJuIG9yaWdpbmFsSHRtbC5yZXBsYWNlKFxuICAgIERPQ1RZUEVfUFJFRklYLFxuICAgIERPQ1RZUEVfUFJFRklYICsgJzwhLS0nICsgZXNjYXBlQnVpbGRJZChidWlsZElkKSArICctLT4nXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRvZXNFeHBvcnRlZEh0bWxNYXRjaEJ1aWxkSWQoXG4gIHBhcnRpYWxIdG1sRG9jdW1lbnQ6IHN0cmluZyxcbiAgYnVpbGRJZDogc3RyaW5nXG4pIHtcbiAgLy8gQ2hlY2sgd2hldGhlciB0aGUgZG9jdW1lbnQgc3RhcnRzIHdpdGggdGhlIGV4cGVjdGVkIGJ1aWxkSWQuXG4gIHJldHVybiBwYXJ0aWFsSHRtbERvY3VtZW50LnN0YXJ0c1dpdGgoXG4gICAgRE9DVFlQRV9QUkVGSVggKyAnPCEtLScgKyBlc2NhcGVCdWlsZElkKGJ1aWxkSWQpICsgJy0tPidcbiAgKVxufVxuIl0sIm5hbWVzIjpbIkRPQ19QUkVGRVRDSF9SQU5HRV9IRUFERVJfVkFMVUUiLCJkb2VzRXhwb3J0ZWRIdG1sTWF0Y2hCdWlsZElkIiwiaW5zZXJ0QnVpbGRJZENvbW1lbnQiLCJET0NUWVBFX1BSRUZJWCIsIk1BWF9CVUlMRF9JRF9MRU5HVEgiLCJlc2NhcGVCdWlsZElkIiwiYnVpbGRJZCIsInRydW5jYXRlZCIsInNsaWNlIiwicmVwbGFjZSIsIm9yaWdpbmFsSHRtbCIsImluY2x1ZGVzIiwic3RhcnRzV2l0aCIsInBhcnRpYWxIdG1sRG9jdW1lbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.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 ROOT_SEGMENT_CACHE_KEY: function() {\n return ROOT_SEGMENT_CACHE_KEY;\n },\n ROOT_SEGMENT_REQUEST_KEY: function() {\n return ROOT_SEGMENT_REQUEST_KEY;\n },\n appendSegmentCacheKeyPart: function() {\n return appendSegmentCacheKeyPart;\n },\n appendSegmentRequestKeyPart: function() {\n return appendSegmentRequestKeyPart;\n },\n convertSegmentPathToStaticExportFilename: function() {\n return convertSegmentPathToStaticExportFilename;\n },\n createSegmentCacheKeyPart: function() {\n return createSegmentCacheKeyPart;\n },\n createSegmentRequestKeyPart: function() {\n return createSegmentRequestKeyPart;\n }\n});\nconst _segment = __webpack_require__(/*! ../segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nconst ROOT_SEGMENT_REQUEST_KEY = '';\nconst ROOT_SEGMENT_CACHE_KEY = '';\nfunction createSegmentRequestKeyPart(segment) {\n if (typeof segment === 'string') {\n if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n // The Flight Router State type sometimes includes the search params in\n // the page segment. However, the Segment Cache tracks this as a separate\n // key. So, we strip the search params here, and then add them back when\n // the cache entry is turned back into a FlightRouterState. This is an\n // unfortunate consequence of the FlightRouteState being used both as a\n // transport type and as a cache key; we'll address this once more of the\n // Segment Cache implementation has settled.\n // TODO: We should hoist the search params out of the FlightRouterState\n // type entirely, This is our plan for dynamic route params, too.\n return _segment.PAGE_SEGMENT_KEY;\n }\n const safeName = // But params typically don't include the leading slash. We should use\n // a different encoding to avoid this special case.\n segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment);\n // Since this is not a dynamic segment, it's fully encoded. It does not\n // need to be \"hydrated\" with a param value.\n return safeName;\n }\n const name = segment[0];\n const paramType = segment[2];\n const safeName = encodeToFilesystemAndURLSafeString(name);\n const encodedName = '$' + paramType + '$' + safeName;\n return encodedName;\n}\nfunction appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) {\n // Aside from being filesystem safe, segment keys are also designed so that\n // each segment and parallel route creates its own subdirectory. Roughly in\n // the same shape as the source app directory. This is mostly just for easier\n // debugging (you can open up the build folder and navigate the output); if\n // we wanted to do we could just use a flat structure.\n // Omit the parallel route key for children, since this is the most\n // common case. Saves some bytes (and it's what the app directory does).\n const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : \"@\" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + \"/\" + childRequestKeyPart;\n return parentRequestKey + '/' + slotKey;\n}\nfunction createSegmentCacheKeyPart(requestKeyPart, segment) {\n if (typeof segment === 'string') {\n return requestKeyPart;\n }\n const paramValue = segment[1];\n const safeValue = encodeToFilesystemAndURLSafeString(paramValue);\n return requestKeyPart + '$' + safeValue;\n}\nfunction appendSegmentCacheKeyPart(parentSegmentKey, parallelRouteKey, childCacheKeyPart) {\n const slotKey = parallelRouteKey === 'children' ? childCacheKeyPart : \"@\" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + \"/\" + childCacheKeyPart;\n return parentSegmentKey + '/' + slotKey;\n}\n// Define a regex pattern to match the most common characters found in a route\n// param. It excludes anything that might not be cross-platform filesystem\n// compatible, like |. It does not need to be precise because the fallback is to\n// just base64url-encode the whole parameter, which is fine; we just don't do it\n// by default for compactness, and for easier debugging.\nconst simpleParamValueRegex = /^[a-zA-Z0-9\\-_@]+$/;\nfunction encodeToFilesystemAndURLSafeString(value) {\n if (simpleParamValueRegex.test(value)) {\n return value;\n }\n // If there are any unsafe characters, base64url-encode the entire value.\n // We also add a ! prefix so it doesn't collide with the simple case.\n const base64url = btoa(value).replace(/\\+/g, '-') // Replace '+' with '-'\n .replace(/\\//g, '_') // Replace '/' with '_'\n .replace(/=+$/, '') // Remove trailing '='\n ;\n return '!' + base64url;\n}\nfunction convertSegmentPathToStaticExportFilename(segmentPath) {\n return \"__next\" + segmentPath.replace(/\\//g, '.') + \".txt\";\n} //# sourceMappingURL=segment-value-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9zZWdtZW50LXZhbHVlLWVuY29kaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVlhQSxzQkFBc0I7ZUFBdEJBOztJQURBQyx3QkFBd0I7ZUFBeEJBOztJQXVFR0MseUJBQXlCO2VBQXpCQTs7SUFoQ0FDLDJCQUEyQjtlQUEzQkE7O0lBZ0VBQyx3Q0FBd0M7ZUFBeENBOztJQTVDQUMseUJBQXlCO2VBQXpCQTs7SUF4REFDLDJCQUEyQjtlQUEzQkE7OztxQ0FkaUI7QUFXMUIsTUFBTUwsMkJBQTJCO0FBQ2pDLE1BQU1ELHlCQUF5QjtBQUUvQixTQUFTTSw0QkFDZEMsT0FBaUM7SUFFakMsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsSUFBSUEsUUFBUUMsVUFBVSxDQUFDQyxTQUFBQSxnQkFBZ0IsR0FBRztZQUN4Qyx1RUFBdUU7WUFDdkUseUVBQXlFO1lBQ3pFLHdFQUF3RTtZQUN4RSxzRUFBc0U7WUFDdEUsdUVBQXVFO1lBQ3ZFLHlFQUF5RTtZQUN6RSw0Q0FBNEM7WUFDNUMsdUVBQXVFO1lBQ3ZFLGlFQUFpRTtZQUNqRSxPQUFPQSxTQUFBQSxnQkFBZ0I7UUFDekI7UUFDQSxNQUFNQyxXQUNKLHFFQUFxRSxDQUNDO1FBQ3RFLG1EQUFtRDtRQUNuREgsWUFBWSxnQkFDUixlQUNBSSxtQ0FBbUNKO1FBQ3pDLHVFQUF1RTtRQUN2RSw0Q0FBNEM7UUFDNUMsT0FBT0c7SUFDVDtJQUVBLE1BQU1FLE9BQU9MLE9BQU8sQ0FBQyxFQUFFO0lBQ3ZCLE1BQU1NLFlBQVlOLE9BQU8sQ0FBQyxFQUFFO0lBQzVCLE1BQU1HLFdBQVdDLG1DQUFtQ0M7SUFFcEQsTUFBTUUsY0FBYyxNQUFNRCxZQUFZLE1BQU1IO0lBQzVDLE9BQU9JO0FBQ1Q7QUFFTyxTQUFTWCw0QkFDZFksZ0JBQW1DLEVBQ25DQyxnQkFBd0IsRUFDeEJDLG1CQUEwQztJQUUxQywyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDZFQUE2RTtJQUM3RSwyRUFBMkU7SUFDM0Usc0RBQXNEO0lBRXRELG1FQUFtRTtJQUNuRSx3RUFBd0U7SUFDeEUsTUFBTUMsVUFDSkYscUJBQXFCLGFBQ2pCQyxzQkFDQyxNQUFHTixtQ0FBbUNLLG9CQUFrQixNQUFHQztJQUNsRSxPQUFRRixtQkFBbUIsTUFBTUc7QUFDbkM7QUFFTyxTQUFTYiwwQkFDZGMsY0FBcUMsRUFDckNaLE9BQWlDO0lBRWpDLElBQUksT0FBT0EsWUFBWSxVQUFVO1FBQy9CLE9BQU9ZO0lBQ1Q7SUFDQSxNQUFNQyxhQUFhYixPQUFPLENBQUMsRUFBRTtJQUM3QixNQUFNYyxZQUFZVixtQ0FBbUNTO0lBQ3JELE9BQVFELGlCQUFpQixNQUFNRTtBQUNqQztBQUVPLFNBQVNuQiwwQkFDZG9CLGdCQUFpQyxFQUNqQ04sZ0JBQXdCLEVBQ3hCTyxpQkFBc0M7SUFFdEMsTUFBTUwsVUFDSkYscUJBQXFCLGFBQ2pCTyxvQkFDQyxNQUFHWixtQ0FBbUNLLG9CQUFrQixNQUFHTztJQUNsRSxPQUFRRCxtQkFBbUIsTUFBTUo7QUFDbkM7QUFFQSw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBQzFFLGdGQUFnRjtBQUNoRixnRkFBZ0Y7QUFDaEYsd0RBQXdEO0FBQ3hELE1BQU1NLHdCQUF3QjtBQUU5QixTQUFTYixtQ0FBbUNjLEtBQWE7SUFDdkQsSUFBSUQsc0JBQXNCRSxJQUFJLENBQUNELFFBQVE7UUFDckMsT0FBT0E7SUFDVDtJQUNBLHlFQUF5RTtJQUN6RSxxRUFBcUU7SUFDckUsTUFBTUUsWUFBWUMsS0FBS0gsT0FDcEJJLE9BQU8sQ0FBQyxPQUFPLEtBQUssdUJBQXVCO0tBQzNDQSxPQUFPLENBQUMsT0FBTyxLQUFLLHVCQUF1QjtLQUMzQ0EsT0FBTyxDQUFDLE9BQU8sSUFBSSxzQkFBc0I7O0lBQzVDLE9BQU8sTUFBTUY7QUFDZjtBQUVPLFNBQVN2Qix5Q0FDZDBCLFdBQW1CO0lBRW5CLE9BQVEsV0FBUUEsWUFBWUQsT0FBTyxDQUFDLE9BQU8sT0FBSztBQUNsRCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9zaGFyZWQvbGliL3NlZ21lbnQtY2FjaGUvc2VnbWVudC12YWx1ZS1lbmNvZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZIH0gZnJvbSAnLi4vc2VnbWVudCdcbmltcG9ydCB0eXBlIHsgU2VnbWVudCBhcyBGbGlnaHRSb3V0ZXJTdGF0ZVNlZ21lbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuLy8gVHlwZVNjcmlwdCB0cmljayB0byBzaW11bGF0ZSBvcGFxdWUgdHlwZXMsIGxpa2UgaW4gRmxvdy5cbnR5cGUgT3BhcXVlPEssIFQ+ID0gVCAmIHsgX19icmFuZDogSyB9XG5cbmV4cG9ydCB0eXBlIFNlZ21lbnRSZXF1ZXN0S2V5UGFydCA9IE9wYXF1ZTwnU2VnbWVudFJlcXVlc3RLZXlQYXJ0Jywgc3RyaW5nPlxuZXhwb3J0IHR5cGUgU2VnbWVudFJlcXVlc3RLZXkgPSBPcGFxdWU8J1NlZ21lbnRSZXF1ZXN0S2V5Jywgc3RyaW5nPlxuZXhwb3J0IHR5cGUgU2VnbWVudENhY2hlS2V5UGFydCA9IE9wYXF1ZTwnU2VnbWVudENhY2hlS2V5UGFydCcsIHN0cmluZz5cbmV4cG9ydCB0eXBlIFNlZ21lbnRDYWNoZUtleSA9IE9wYXF1ZTwnU2VnbWVudENhY2hlS2V5Jywgc3RyaW5nPlxuXG5leHBvcnQgY29uc3QgUk9PVF9TRUdNRU5UX1JFUVVFU1RfS0VZID0gJycgYXMgU2VnbWVudFJlcXVlc3RLZXlcbmV4cG9ydCBjb25zdCBST09UX1NFR01FTlRfQ0FDSEVfS0VZID0gJycgYXMgU2VnbWVudENhY2hlS2V5XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWdtZW50UmVxdWVzdEtleVBhcnQoXG4gIHNlZ21lbnQ6IEZsaWdodFJvdXRlclN0YXRlU2VnbWVudFxuKTogU2VnbWVudFJlcXVlc3RLZXlQYXJ0IHtcbiAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoUEFHRV9TRUdNRU5UX0tFWSkpIHtcbiAgICAgIC8vIFRoZSBGbGlnaHQgUm91dGVyIFN0YXRlIHR5cGUgc29tZXRpbWVzIGluY2x1ZGVzIHRoZSBzZWFyY2ggcGFyYW1zIGluXG4gICAgICAvLyB0aGUgcGFnZSBzZWdtZW50LiBIb3dldmVyLCB0aGUgU2VnbWVudCBDYWNoZSB0cmFja3MgdGhpcyBhcyBhIHNlcGFyYXRlXG4gICAgICAvLyBrZXkuIFNvLCB3ZSBzdHJpcCB0aGUgc2VhcmNoIHBhcmFtcyBoZXJlLCBhbmQgdGhlbiBhZGQgdGhlbSBiYWNrIHdoZW5cbiAgICAgIC8vIHRoZSBjYWNoZSBlbnRyeSBpcyB0dXJuZWQgYmFjayBpbnRvIGEgRmxpZ2h0Um91dGVyU3RhdGUuIFRoaXMgaXMgYW5cbiAgICAgIC8vIHVuZm9ydHVuYXRlIGNvbnNlcXVlbmNlIG9mIHRoZSBGbGlnaHRSb3V0ZVN0YXRlIGJlaW5nIHVzZWQgYm90aCBhcyBhXG4gICAgICAvLyB0cmFuc3BvcnQgdHlwZSBhbmQgYXMgYSBjYWNoZSBrZXk7IHdlJ2xsIGFkZHJlc3MgdGhpcyBvbmNlIG1vcmUgb2YgdGhlXG4gICAgICAvLyBTZWdtZW50IENhY2hlIGltcGxlbWVudGF0aW9uIGhhcyBzZXR0bGVkLlxuICAgICAgLy8gVE9ETzogV2Ugc2hvdWxkIGhvaXN0IHRoZSBzZWFyY2ggcGFyYW1zIG91dCBvZiB0aGUgRmxpZ2h0Um91dGVyU3RhdGVcbiAgICAgIC8vIHR5cGUgZW50aXJlbHksIFRoaXMgaXMgb3VyIHBsYW4gZm9yIGR5bmFtaWMgcm91dGUgcGFyYW1zLCB0b28uXG4gICAgICByZXR1cm4gUEFHRV9TRUdNRU5UX0tFWSBhcyBTZWdtZW50UmVxdWVzdEtleVBhcnRcbiAgICB9XG4gICAgY29uc3Qgc2FmZU5hbWUgPVxuICAgICAgLy8gVE9ETzogRmxpZ2h0Um91dGVyU3RhdGUgZW5jb2RlcyBOb3QgRm91bmQgcm91dGVzIGFzIFwiL19ub3QtZm91bmRcIi5cbiAgICAgIC8vIEJ1dCBwYXJhbXMgdHlwaWNhbGx5IGRvbid0IGluY2x1ZGUgdGhlIGxlYWRpbmcgc2xhc2guIFdlIHNob3VsZCB1c2VcbiAgICAgIC8vIGEgZGlmZmVyZW50IGVuY29kaW5nIHRvIGF2b2lkIHRoaXMgc3BlY2lhbCBjYXNlLlxuICAgICAgc2VnbWVudCA9PT0gJy9fbm90LWZvdW5kJ1xuICAgICAgICA/ICdfbm90LWZvdW5kJ1xuICAgICAgICA6IGVuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcoc2VnbWVudClcbiAgICAvLyBTaW5jZSB0aGlzIGlzIG5vdCBhIGR5bmFtaWMgc2VnbWVudCwgaXQncyBmdWxseSBlbmNvZGVkLiBJdCBkb2VzIG5vdFxuICAgIC8vIG5lZWQgdG8gYmUgXCJoeWRyYXRlZFwiIHdpdGggYSBwYXJhbSB2YWx1ZS5cbiAgICByZXR1cm4gc2FmZU5hbWUgYXMgU2VnbWVudFJlcXVlc3RLZXlQYXJ0XG4gIH1cblxuICBjb25zdCBuYW1lID0gc2VnbWVudFswXVxuICBjb25zdCBwYXJhbVR5cGUgPSBzZWdtZW50WzJdXG4gIGNvbnN0IHNhZmVOYW1lID0gZW5jb2RlVG9GaWxlc3lzdGVtQW5kVVJMU2FmZVN0cmluZyhuYW1lKVxuXG4gIGNvbnN0IGVuY29kZWROYW1lID0gJyQnICsgcGFyYW1UeXBlICsgJyQnICsgc2FmZU5hbWVcbiAgcmV0dXJuIGVuY29kZWROYW1lIGFzIFNlZ21lbnRSZXF1ZXN0S2V5UGFydFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kU2VnbWVudFJlcXVlc3RLZXlQYXJ0KFxuICBwYXJlbnRSZXF1ZXN0S2V5OiBTZWdtZW50UmVxdWVzdEtleSxcbiAgcGFyYWxsZWxSb3V0ZUtleTogc3RyaW5nLFxuICBjaGlsZFJlcXVlc3RLZXlQYXJ0OiBTZWdtZW50UmVxdWVzdEtleVBhcnRcbik6IFNlZ21lbnRSZXF1ZXN0S2V5IHtcbiAgLy8gQXNpZGUgZnJvbSBiZWluZyBmaWxlc3lzdGVtIHNhZmUsIHNlZ21lbnQga2V5cyBhcmUgYWxzbyBkZXNpZ25lZCBzbyB0aGF0XG4gIC8vIGVhY2ggc2VnbWVudCBhbmQgcGFyYWxsZWwgcm91dGUgY3JlYXRlcyBpdHMgb3duIHN1YmRpcmVjdG9yeS4gUm91Z2hseSBpblxuICAvLyB0aGUgc2FtZSBzaGFwZSBhcyB0aGUgc291cmNlIGFwcCBkaXJlY3RvcnkuIFRoaXMgaXMgbW9zdGx5IGp1c3QgZm9yIGVhc2llclxuICAvLyBkZWJ1Z2dpbmcgKHlvdSBjYW4gb3BlbiB1cCB0aGUgYnVpbGQgZm9sZGVyIGFuZCBuYXZpZ2F0ZSB0aGUgb3V0cHV0KTsgaWZcbiAgLy8gd2Ugd2FudGVkIHRvIGRvIHdlIGNvdWxkIGp1c3QgdXNlIGEgZmxhdCBzdHJ1Y3R1cmUuXG5cbiAgLy8gT21pdCB0aGUgcGFyYWxsZWwgcm91dGUga2V5IGZvciBjaGlsZHJlbiwgc2luY2UgdGhpcyBpcyB0aGUgbW9zdFxuICAvLyBjb21tb24gY2FzZS4gU2F2ZXMgc29tZSBieXRlcyAoYW5kIGl0J3Mgd2hhdCB0aGUgYXBwIGRpcmVjdG9yeSBkb2VzKS5cbiAgY29uc3Qgc2xvdEtleSA9XG4gICAgcGFyYWxsZWxSb3V0ZUtleSA9PT0gJ2NoaWxkcmVuJ1xuICAgICAgPyBjaGlsZFJlcXVlc3RLZXlQYXJ0XG4gICAgICA6IGBAJHtlbmNvZGVUb0ZpbGVzeXN0ZW1BbmRVUkxTYWZlU3RyaW5nKHBhcmFsbGVsUm91dGVLZXkpfS8ke2NoaWxkUmVxdWVzdEtleVBhcnR9YFxuICByZXR1cm4gKHBhcmVudFJlcXVlc3RLZXkgKyAnLycgKyBzbG90S2V5KSBhcyBTZWdtZW50UmVxdWVzdEtleVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VnbWVudENhY2hlS2V5UGFydChcbiAgcmVxdWVzdEtleVBhcnQ6IFNlZ21lbnRSZXF1ZXN0S2V5UGFydCxcbiAgc2VnbWVudDogRmxpZ2h0Um91dGVyU3RhdGVTZWdtZW50XG4pOiBTZWdtZW50Q2FjaGVLZXlQYXJ0IHtcbiAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiByZXF1ZXN0S2V5UGFydCBhcyBhbnkgYXMgU2VnbWVudENhY2hlS2V5UGFydFxuICB9XG4gIGNvbnN0IHBhcmFtVmFsdWUgPSBzZWdtZW50WzFdXG4gIGNvbnN0IHNhZmVWYWx1ZSA9IGVuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcocGFyYW1WYWx1ZSlcbiAgcmV0dXJuIChyZXF1ZXN0S2V5UGFydCArICckJyArIHNhZmVWYWx1ZSkgYXMgU2VnbWVudENhY2hlS2V5UGFydFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kU2VnbWVudENhY2hlS2V5UGFydChcbiAgcGFyZW50U2VnbWVudEtleTogU2VnbWVudENhY2hlS2V5LFxuICBwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmcsXG4gIGNoaWxkQ2FjaGVLZXlQYXJ0OiBTZWdtZW50Q2FjaGVLZXlQYXJ0XG4pOiBTZWdtZW50Q2FjaGVLZXkge1xuICBjb25zdCBzbG90S2V5ID1cbiAgICBwYXJhbGxlbFJvdXRlS2V5ID09PSAnY2hpbGRyZW4nXG4gICAgICA/IGNoaWxkQ2FjaGVLZXlQYXJ0XG4gICAgICA6IGBAJHtlbmNvZGVUb0ZpbGVzeXN0ZW1BbmRVUkxTYWZlU3RyaW5nKHBhcmFsbGVsUm91dGVLZXkpfS8ke2NoaWxkQ2FjaGVLZXlQYXJ0fWBcbiAgcmV0dXJuIChwYXJlbnRTZWdtZW50S2V5ICsgJy8nICsgc2xvdEtleSkgYXMgU2VnbWVudENhY2hlS2V5XG59XG5cbi8vIERlZmluZSBhIHJlZ2V4IHBhdHRlcm4gdG8gbWF0Y2ggdGhlIG1vc3QgY29tbW9uIGNoYXJhY3RlcnMgZm91bmQgaW4gYSByb3V0ZVxuLy8gcGFyYW0uIEl0IGV4Y2x1ZGVzIGFueXRoaW5nIHRoYXQgbWlnaHQgbm90IGJlIGNyb3NzLXBsYXRmb3JtIGZpbGVzeXN0ZW1cbi8vIGNvbXBhdGlibGUsIGxpa2UgfC4gSXQgZG9lcyBub3QgbmVlZCB0byBiZSBwcmVjaXNlIGJlY2F1c2UgdGhlIGZhbGxiYWNrIGlzIHRvXG4vLyBqdXN0IGJhc2U2NHVybC1lbmNvZGUgdGhlIHdob2xlIHBhcmFtZXRlciwgd2hpY2ggaXMgZmluZTsgd2UganVzdCBkb24ndCBkbyBpdFxuLy8gYnkgZGVmYXVsdCBmb3IgY29tcGFjdG5lc3MsIGFuZCBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbmNvbnN0IHNpbXBsZVBhcmFtVmFsdWVSZWdleCA9IC9eW2EtekEtWjAtOVxcLV9AXSskL1xuXG5mdW5jdGlvbiBlbmNvZGVUb0ZpbGVzeXN0ZW1BbmRVUkxTYWZlU3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcbiAgaWYgKHNpbXBsZVBhcmFtVmFsdWVSZWdleC50ZXN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG4gIC8vIElmIHRoZXJlIGFyZSBhbnkgdW5zYWZlIGNoYXJhY3RlcnMsIGJhc2U2NHVybC1lbmNvZGUgdGhlIGVudGlyZSB2YWx1ZS5cbiAgLy8gV2UgYWxzbyBhZGQgYSAhIHByZWZpeCBzbyBpdCBkb2Vzbid0IGNvbGxpZGUgd2l0aCB0aGUgc2ltcGxlIGNhc2UuXG4gIGNvbnN0IGJhc2U2NHVybCA9IGJ0b2EodmFsdWUpXG4gICAgLnJlcGxhY2UoL1xcKy9nLCAnLScpIC8vIFJlcGxhY2UgJysnIHdpdGggJy0nXG4gICAgLnJlcGxhY2UoL1xcLy9nLCAnXycpIC8vIFJlcGxhY2UgJy8nIHdpdGggJ18nXG4gICAgLnJlcGxhY2UoLz0rJC8sICcnKSAvLyBSZW1vdmUgdHJhaWxpbmcgJz0nXG4gIHJldHVybiAnIScgKyBiYXNlNjR1cmxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTZWdtZW50UGF0aFRvU3RhdGljRXhwb3J0RmlsZW5hbWUoXG4gIHNlZ21lbnRQYXRoOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIHJldHVybiBgX19uZXh0JHtzZWdtZW50UGF0aC5yZXBsYWNlKC9cXC8vZywgJy4nKX0udHh0YFxufVxuIl0sIm5hbWVzIjpbIlJPT1RfU0VHTUVOVF9DQUNIRV9LRVkiLCJST09UX1NFR01FTlRfUkVRVUVTVF9LRVkiLCJhcHBlbmRTZWdtZW50Q2FjaGVLZXlQYXJ0IiwiYXBwZW5kU2VnbWVudFJlcXVlc3RLZXlQYXJ0IiwiY29udmVydFNlZ21lbnRQYXRoVG9TdGF0aWNFeHBvcnRGaWxlbmFtZSIsImNyZWF0ZVNlZ21lbnRDYWNoZUtleVBhcnQiLCJjcmVhdGVTZWdtZW50UmVxdWVzdEtleVBhcnQiLCJzZWdtZW50Iiwic3RhcnRzV2l0aCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJzYWZlTmFtZSIsImVuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmciLCJuYW1lIiwicGFyYW1UeXBlIiwiZW5jb2RlZE5hbWUiLCJwYXJlbnRSZXF1ZXN0S2V5IiwicGFyYWxsZWxSb3V0ZUtleSIsImNoaWxkUmVxdWVzdEtleVBhcnQiLCJzbG90S2V5IiwicmVxdWVzdEtleVBhcnQiLCJwYXJhbVZhbHVlIiwic2FmZVZhbHVlIiwicGFyZW50U2VnbWVudEtleSIsImNoaWxkQ2FjaGVLZXlQYXJ0Iiwic2ltcGxlUGFyYW1WYWx1ZVJlZ2V4IiwidmFsdWUiLCJ0ZXN0IiwiYmFzZTY0dXJsIiwiYnRvYSIsInJlcGxhY2UiLCJzZWdtZW50UGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/segment.js":
|
||
/*!******************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/segment.js ***!
|
||
\******************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9zZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/segment.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/utils.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/utils.js ***!
|
||
\****************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction 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 Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb2FhQSxXQUFXO2VBQVhBOztJQW9CQUMsdUJBQXVCO2VBQXZCQTs7SUFQQUMsaUJBQWlCO2VBQWpCQTs7SUFaQUMsY0FBYztlQUFkQTs7SUFDQUMsaUJBQWlCO2VBQWpCQTs7SUFUQUMsRUFBRTtlQUFGQTs7SUFDQUMsRUFBRTtlQUFGQTs7SUFsWEFDLFVBQVU7ZUFBVkE7O0lBc1FHQyxRQUFRO2VBQVJBOztJQStCQUMsY0FBYztlQUFkQTs7SUFYQUMsaUJBQWlCO2VBQWpCQTs7SUFLQUMsTUFBTTtlQUFOQTs7SUFQSEMsYUFBYTtlQUFiQTs7SUFtQkdDLFNBQVM7ZUFBVEE7O0lBa0JNQyxtQkFBbUI7ZUFBbkJBOztJQWROQyx3QkFBd0I7ZUFBeEJBOztJQStHQUMsY0FBYztlQUFkQTs7O0FBOVpULE1BQU1ULGFBQWE7SUFBQztJQUFPO0lBQU87SUFBTztJQUFPO0lBQU87Q0FBTztBQXNROUQsU0FBU0MsU0FDZFMsRUFBSztJQUVMLElBQUlDLE9BQU87SUFDWCxJQUFJQztJQUVKLE9BQVE7eUNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1lBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztRQUNWLElBQUksQ0FBQ0YsTUFBTTtZQUNUQSxPQUFPO1lBQ1BDLFNBQVNGLE1BQU1HO1FBQ2pCO1FBQ0EsT0FBT0Q7SUFDVDtBQUNGO0FBRUEsMERBQTBEO0FBQzFELGdFQUFnRTtBQUNoRSxNQUFNRSxxQkFBcUI7QUFDcEIsTUFBTVQsZ0JBQWdCLENBQUNVLE1BQWdCRCxtQkFBbUJFLElBQUksQ0FBQ0Q7QUFFL0QsU0FBU1o7SUFDZCxNQUFNLEVBQUVjLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsT0FBT0MsUUFB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QUFJLENBQUM5QixJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNpQixPQUFPLEdBQUksa0NBQStCWTtJQUNqRDtBQUNGO0FBRU8sTUFBTTlELDBCQUEwQm1EO0lBQ3JDVSxZQUFZQyxJQUFZLEVBQUVaLE9BQWUsQ0FBRTtRQUN6QyxLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUksMENBQXVDWSxPQUFLLE1BQUdaO0lBQ2pFO0FBQ0Y7QUFFTyxNQUFNbkQsZ0NBQWdDb0Q7SUFFM0NVLGFBQWM7UUFDWixLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNiLE9BQU8sR0FBSTtJQUNsQjtBQUNGO0FBV08sU0FBU3BDLGVBQWVrRCxLQUFZO0lBQ3pDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUFFaEIsU0FBU2MsTUFBTWQsT0FBTztRQUFFaUIsT0FBT0gsTUFBTUcsS0FBSztJQUFDO0FBQ3JFIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4vaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRW52IH0gZnJvbSAnQG5leHQvZW52J1xuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ09NUElMRVJfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIGZzIGZyb20gJ2ZzJ1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQ29udGV4dCBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJbml0aWFsUHJvcHMgPSB7fSxcbiAgUHJvcHMgPSB7fSxcbj4gPSBDb21wb25lbnRUeXBlPFByb3BzPiAmIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGluaXRpYWwgcGFnZSBsb2FkIGRhdGEgcG9wdWxhdGlvbi4gRGF0YSByZXR1cm5lZCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgIGlzIHNlcmlhbGl6ZWQgd2hlbiBzZXJ2ZXIgcmVuZGVyZWQuXG4gICAqIE1ha2Ugc3VyZSB0byByZXR1cm4gcGxhaW4gYE9iamVjdGAgd2l0aG91dCB1c2luZyBgRGF0ZWAsIGBNYXBgLCBgU2V0YC5cbiAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQ29udGV4dCk6IEluaXRpYWxQcm9wcyB8IFByb21pc2U8SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wc1xuPlxuXG5leHBvcnQgdHlwZSBBcHBUeXBlPFAgPSB7fT4gPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIFAsXG4gIEFwcFByb3BzVHlwZTxhbnksIFA+XG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9WSVRBTFMgPSBbJ0NMUycsICdGQ1AnLCAnRklEJywgJ0lOUCcsICdMQ1AnLCAnVFRGQiddIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOZXh0V2ViVml0YWxzTWV0cmljID0ge1xuICBpZDogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIHZhbHVlOiBudW1iZXJcbiAgYXR0cmlidXRpb24/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbDogJ3dlYi12aXRhbCdcbiAgICAgIG5hbWU6ICh0eXBlb2YgV0VCX1ZJVEFMUylbbnVtYmVyXVxuICAgIH1cbiAgfCB7XG4gICAgICBsYWJlbDogJ2N1c3RvbSdcbiAgICAgIG5hbWU6XG4gICAgICAgIHwgJ05leHQuanMtaHlkcmF0aW9uJ1xuICAgICAgICB8ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInXG4gICAgICAgIHwgJ05leHQuanMtcmVuZGVyJ1xuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgRW5oYW5jZXI8Qz4gPSAoQ29tcG9uZW50OiBDKSA9PiBDXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHNFbmhhbmNlciA9XG4gIHwge1xuICAgICAgZW5oYW5jZUFwcD86IEVuaGFuY2VyPEFwcFR5cGU+XG4gICAgICBlbmhhbmNlQ29tcG9uZW50PzogRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG4gICAgfVxuICB8IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlUmVzdWx0ID0ge1xuICBodG1sOiBzdHJpbmdcbiAgaGVhZD86IEFycmF5PEpTWC5FbGVtZW50IHwgbnVsbD5cbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZSA9IChcbiAgb3B0aW9ucz86IENvbXBvbmVudHNFbmhhbmNlclxuKSA9PiBEb2N1bWVudEluaXRpYWxQcm9wcyB8IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcGFnZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBidWlsZElkOiBzdHJpbmdcbiAgYXNzZXRQcmVmaXg/OiBzdHJpbmdcbiAgcnVudGltZUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgbmV4dEV4cG9ydD86IGJvb2xlYW5cbiAgYXV0b0V4cG9ydD86IGJvb2xlYW5cbiAgaXNGYWxsYmFjaz86IGJvb2xlYW5cbiAgaXNFeHBlcmltZW50YWxDb21waWxlPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICBlcnI/OiBFcnJvciAmIHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyXG4gICAgc291cmNlPzogdHlwZW9mIENPTVBJTEVSX05BTUVTLnNlcnZlciB8IHR5cGVvZiBDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXG4gIH1cbiAgZ3NwPzogYm9vbGVhblxuICBnc3NwPzogYm9vbGVhblxuICBjdXN0b21TZXJ2ZXI/OiBib29sZWFuXG4gIGdpcD86IGJvb2xlYW5cbiAgYXBwR2lwPzogYm9vbGVhblxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgZG9tYWluTG9jYWxlcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdXG4gIHNjcmlwdExvYWRlcj86IGFueVtdXG4gIGlzUHJldmlldz86IGJvb2xlYW5cbiAgbm90Rm91bmRTcmNQYWdlPzogc3RyaW5nXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUNvbnRleHQge1xuICAvKipcbiAgICogRXJyb3Igb2JqZWN0IGlmIGVuY291bnRlcmVkIGR1cmluZyByZW5kZXJpbmdcbiAgICovXG4gIGVycj86IChFcnJvciAmIHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSB8IG51bGxcbiAgLyoqXG4gICAqIGBIVFRQYCByZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIHJlcT86IEluY29taW5nTWVzc2FnZVxuICAvKipcbiAgICogYEhUVFBgIHJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIC8qKlxuICAgKiBQYXRoIHNlY3Rpb24gb2YgYFVSTGAuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmcgc2VjdGlvbiBvZiBgVVJMYCBwYXJzZWQgYXMgYW4gb2JqZWN0LlxuICAgKi9cbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIC8qKlxuICAgKiBgU3RyaW5nYCBvZiB0aGUgYWN0dWFsIHBhdGggaW5jbHVkaW5nIHF1ZXJ5LlxuICAgKi9cbiAgYXNQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGVcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogQWxsIGNvbmZpZ3VyZWQgbG9jYWxlc1xuICAgKi9cbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBkZWZhdWx0IGxvY2FsZVxuICAgKi9cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8Um91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXI+ID0ge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dD5cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbiAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgcm91dGVyOiBSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcyA9IGFueT4gPSB7XG4gIHBhZ2VQcm9wczogUGFnZVByb3BzXG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUm91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXIsXG4gIFBhZ2VQcm9wcyA9IHt9LFxuPiA9IEFwcEluaXRpYWxQcm9wczxQYWdlUHJvcHM+ICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBhbnk+XG4gIHJvdXRlcjogUm91dGVyXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50Q29udGV4dCA9IE5leHRQYWdlQ29udGV4dCAmIHtcbiAgcmVuZGVyUGFnZTogUmVuZGVyUGFnZVxuICBkZWZhdWx0R2V0SW5pdGlhbFByb3BzKFxuICAgIGN0eDogRG9jdW1lbnRDb250ZXh0LFxuICAgIG9wdGlvbnM/OiB7IG5vbmNlPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT4gfCBKU1guRWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFByb3BzID0gRG9jdW1lbnRJbml0aWFsUHJvcHMgJiBIdG1sUHJvcHNcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXVxuICB9PlxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczogUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH0+XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBkcmFmdE1vZGU/OiBib29sZWFuXG5cbiAgcHJldmlldz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZXZpZXcgZGF0YSBzZXQgb24gdGhlIHJlcXVlc3QsIGlmIGFueVxuICAgKiAqL1xuICBwcmV2aWV3RGF0YT86IFByZXZpZXdEYXRhXG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8RGF0YSA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPERhdGE+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8RGF0YT5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFNldCBkcmFmdCBtb2RlXG4gICAqL1xuICBzZXREcmFmdE1vZGU6IChvcHRpb25zOiB7IGVuYWJsZTogYm9vbGVhbiB9KSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIHNldFByZXZpZXdEYXRhOiAoXG4gICAgZGF0YTogb2JqZWN0IHwgc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIChpbiBzZWNvbmRzKSBmb3IgdGhlIHByZXZpZXcgc2Vzc2lvbiB0byBsYXN0IGZvci5cbiAgICAgICAqIFRoZSBnaXZlbiBudW1iZXIgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBieSByb3VuZGluZyBkb3duLlxuICAgICAgICogQnkgZGVmYXVsdCwgbm8gbWF4aW11bSBhZ2UgaXMgc2V0IGFuZCB0aGUgcHJldmlldyBzZXNzaW9uIGZpbmlzaGVzXG4gICAgICAgKiB3aGVuIHRoZSBjbGllbnQgc2h1dHMgZG93biAoYnJvd3NlciBpcyBjbG9zZWQpLlxuICAgICAgICovXG4gICAgICBtYXhBZ2U/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBwYXRoIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIHdvcmsgdW5kZXIuIEJ5IGRlZmF1bHQsXG4gICAgICAgKiB0aGUgcGF0aCBpcyBjb25zaWRlcmVkIHRoZSBcImRlZmF1bHQgcGF0aFwiLCBpLmUuLCBhbnkgcGFnZXMgdW5kZXIgXCIvXCIuXG4gICAgICAgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmdcbiAgICB9XG4gICkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIENsZWFyIHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIGNsZWFyUHJldmlld0RhdGE6IChvcHRpb25zPzogeyBwYXRoPzogc3RyaW5nIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIGEgc3BlY2lmaWMgcGFnZSBhbmQgcmVnZW5lcmF0ZSBpdCB1c2luZyBPbi1EZW1hbmQgSW5jcmVtZW50YWxcbiAgICogU3RhdGljIFJlZ2VuZXJhdGlvbi5cbiAgICogVGhlIHBhdGggc2hvdWxkIGJlIGFuIGFjdHVhbCBwYXRoLCBub3QgYSByZXdyaXR0ZW4gcGF0aC4gRS5nLiBmb3JcbiAgICogXCIvYmxvZy9bc2x1Z11cIiB0aGlzIHNob3VsZCBiZSBcIi9ibG9nL3Bvc3QtMVwiLlxuICAgKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb24jb24tZGVtYW5kLXJldmFsaWRhdGlvbi13aXRoLXJldmFsaWRhdGVwYXRoXG4gICAqL1xuICByZXZhbGlkYXRlOiAoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICB1bnN0YWJsZV9vbmx5R2VuZXJhdGVkPzogYm9vbGVhblxuICAgIH1cbiAgKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSBoYW5kbGVyXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlIYW5kbGVyPFQgPSBhbnk+ID0gKFxuICByZXE6IE5leHRBcGlSZXF1ZXN0LFxuICByZXM6IE5leHRBcGlSZXNwb25zZTxUPlxuKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPlxuXG4vKipcbiAqIFV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjT25jZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBSZXR1cm5UeXBlPFQ+PihcbiAgZm46IFRcbik6IFQge1xuICBsZXQgdXNlZCA9IGZhbHNlXG4gIGxldCByZXN1bHQ6IFJldHVyblR5cGU8VD5cblxuICByZXR1cm4gKCguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICghdXNlZCkge1xuICAgICAgdXNlZCA9IHRydWVcbiAgICAgIHJlc3VsdCA9IGZuKC4uLmFyZ3MpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfSkgYXMgVFxufVxuXG4vLyBTY2hlbWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG4vLyBBYnNvbHV0ZSBVUkw6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tNC4zXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi9cbmV4cG9ydCBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiBBQlNPTFVURV9VUkxfUkVHRVgudGVzdCh1cmwpXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF1cblxuICByZXR1cm4gKFxuICAgIHVybE5vUXVlcnlcbiAgICAgIC8vIGZpcnN0IHdlIHJlcGxhY2UgYW55IG5vbi1lbmNvZGVkIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZFxuICAgICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvXFwvKy9nLCAnLycpICtcbiAgICAodXJsUGFydHNbMV0gPyBgPyR7dXJsUGFydHMuc2xpY2UoMSkuam9pbignPycpfWAgOiAnJylcbiAgKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdldEluaXRpYWxQcm9wczxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge30sXG4+KEFwcDogTmV4dENvbXBvbmVudFR5cGU8QywgSVAsIFA+LCBjdHg6IEMpOiBQcm9taXNlPElQPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKEFwcC5wcm90b3R5cGU/LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgIEFwcFxuICAgICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICB9XG4gIH1cbiAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxuICBjb25zdCByZXMgPSBjdHgucmVzIHx8IChjdHguY3R4ICYmIGN0eC5jdHgucmVzKVxuXG4gIGlmICghQXBwLmdldEluaXRpYWxQcm9wcykge1xuICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhZ2VQcm9wczogYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LCBjdHguY3R4KSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9IGFzIElQXG4gIH1cblxuICBjb25zdCBwcm9wcyA9IGF3YWl0IEFwcC5nZXRJbml0aWFsUHJvcHMoY3R4KVxuXG4gIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgIEFwcFxuICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYFxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBBcHBcbiAgICAgICAgKX0gcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0IGZyb20gXFxgZ2V0SW5pdGlhbFByb3BzXFxgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNgXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIChbJ21hcmsnLCAnbWVhc3VyZScsICdnZXRFbnRyaWVzQnlOYW1lJ10gYXMgY29uc3QpLmV2ZXJ5KFxuICAgIChtZXRob2QpID0+IHR5cGVvZiBwZXJmb3JtYW5jZVttZXRob2RdID09PSAnZnVuY3Rpb24nXG4gIClcblxuZXhwb3J0IGNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVFcnJvciBleHRlbmRzIEVycm9yIHt9XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvZGUgPSAnRU5PRU5UJ1xuICAgIHRoaXMubmFtZSA9ICdQYWdlTm90Rm91bmRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiAke3BhZ2V9YFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nU3RhdGljUGFnZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5tZXNzYWdlID0gYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAke3BhZ2V9ICR7bWVzc2FnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5tZXNzYWdlID0gYENhbm5vdCBmaW5kIHRoZSBtaWRkbGV3YXJlIG1vZHVsZWBcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlRnMge1xuICBleGlzdHNTeW5jOiB0eXBlb2YgZnMuZXhpc3RzU3luY1xuICByZWFkRmlsZTogdHlwZW9mIGZzLnByb21pc2VzLnJlYWRGaWxlXG4gIHJlYWRGaWxlU3luYzogdHlwZW9mIGZzLnJlYWRGaWxlU3luY1xuICB3cml0ZUZpbGUoZjogc3RyaW5nLCBkOiBhbnkpOiBQcm9taXNlPHZvaWQ+XG4gIG1rZGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkIHwgc3RyaW5nPlxuICBzdGF0KGY6IHN0cmluZyk6IFByb21pc2U8eyBtdGltZTogRGF0ZSB9PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9KVxufVxuIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/utils/reflect-utils.js ***!
|
||
\******************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\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 describeHasCheckingStringProperty: function() {\n return describeHasCheckingStringProperty;\n },\n describeStringPropertyAccess: function() {\n return describeStringPropertyAccess;\n },\n wellKnownProperties: function() {\n return wellKnownProperties;\n }\n});\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\nfunction describeStringPropertyAccess(target, prop) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return \"`\" + target + \".\" + prop + \"`\";\n }\n return \"`\" + target + \"[\" + JSON.stringify(prop) + \"]`\";\n}\nfunction describeHasCheckingStringProperty(target, prop) {\n const stringifiedProp = JSON.stringify(prop);\n return \"`Reflect.has(\" + target + \", \" + stringifiedProp + \")`, `\" + stringifiedProp + \" in \" + target + \"`, or similar\";\n}\nconst wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n // Promise prototype\n // fallthrough\n 'then',\n 'catch',\n 'finally',\n // React Promise extension\n // fallthrough\n 'status',\n // React introspection\n 'displayName',\n '_debugInfo',\n // Common tested properties\n // fallthrough\n 'toJSON',\n '$$typeof',\n '__esModule'\n]); //# sourceMappingURL=reflect-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2RUFBNkU7QUFDN0UsaUZBQWlGO0FBQ2pGLDBGQUEwRjtBQUMxRix1RkFBdUY7QUFDdkYsMkRBQTJEOzs7Ozs7Ozs7Ozs7O0lBVTNDQSxpQ0FBaUM7ZUFBakNBOztJQVBBQyw0QkFBNEI7ZUFBNUJBOztJQWVIQyxtQkFBbUI7ZUFBbkJBOzs7QUFqQmIsTUFBTUMsK0JBQStCO0FBRTlCLFNBQVNGLDZCQUE2QkcsTUFBYyxFQUFFQyxJQUFZO0lBQ3ZFLElBQUlGLDZCQUE2QkcsSUFBSSxDQUFDRCxPQUFPO1FBQzNDLE9BQVEsTUFBSUQsU0FBTyxNQUFHQyxPQUFLO0lBQzdCO0lBQ0EsT0FBUSxNQUFJRCxTQUFPLE1BQUdHLEtBQUtDLFNBQVMsQ0FBQ0gsUUFBTTtBQUM3QztBQUVPLFNBQVNMLGtDQUNkSSxNQUFjLEVBQ2RDLElBQVk7SUFFWixNQUFNSSxrQkFBa0JGLEtBQUtDLFNBQVMsQ0FBQ0g7SUFDdkMsT0FBUSxrQkFBZ0JELFNBQU8sT0FBSUssa0JBQWdCLFVBQVNBLGtCQUFnQixTQUFNTCxTQUFPO0FBQzNGO0FBRU8sTUFBTUYsc0JBQXNCLElBQUlRLElBQUk7SUFDekM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUEsb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZDtJQUNBO0lBQ0E7SUFFQSwwQkFBMEI7SUFDMUIsY0FBYztJQUNkO0lBRUEsc0JBQXNCO0lBQ3RCO0lBQ0E7SUFFQSwyQkFBMkI7SUFDM0IsY0FBYztJQUNkO0lBQ0E7SUFDQTtDQUNEIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIHJlZ2V4IHdpbGwgaGF2ZSBmYXN0IG5lZ2F0aXZlcyBtZWFuaW5nIHZhbGlkIGlkZW50aWZpZXJzIG1heSBub3QgcGFzc1xuLy8gdGhpcyB0ZXN0LiBIb3dldmVyIHRoaXMgaXMgb25seSB1c2VkIGR1cmluZyBzdGF0aWMgZ2VuZXJhdGlvbiB0byBwcm92aWRlIGhpbnRzXG4vLyBhYm91dCB3aHkgYSBwYWdlIGJhaWxlZCBvdXQgb2Ygc29tZSBvciBhbGwgcHJlcmVuZGVyaW5nIGFuZCB3ZSBjYW4gdXNlIGJyYWNrZXQgbm90YXRpb25cbi8vIGZvciBleGFtcGxlIHdoaWxlIGDgsqBf4LKgYCBpcyBhIHZhbGlkIGlkZW50aWZpZXIgaXQncyBvayB0byBwcmludCBgc2VhcmNoUGFyYW1zWyfgsqBf4LKgJ11gXG4vLyBldmVuIGlmIHRoaXMgd291bGQgaGF2ZSBiZWVuIGZpbmUgdG9vIGBzZWFyY2hQYXJhbXMu4LKgX+CyoGBcbmNvbnN0IGlzRGVmaW5pdGVseUFWYWxpZElkZW50aWZpZXIgPSAvXltBLVphLXpfJF1bQS1aYS16MC05XyRdKiQvXG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKHRhcmdldDogc3RyaW5nLCBwcm9wOiBzdHJpbmcpIHtcbiAgaWYgKGlzRGVmaW5pdGVseUFWYWxpZElkZW50aWZpZXIudGVzdChwcm9wKSkge1xuICAgIHJldHVybiBgXFxgJHt0YXJnZXR9LiR7cHJvcH1cXGBgXG4gIH1cbiAgcmV0dXJuIGBcXGAke3RhcmdldH1bJHtKU09OLnN0cmluZ2lmeShwcm9wKX1dXFxgYFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KFxuICB0YXJnZXQ6IHN0cmluZyxcbiAgcHJvcDogc3RyaW5nXG4pIHtcbiAgY29uc3Qgc3RyaW5naWZpZWRQcm9wID0gSlNPTi5zdHJpbmdpZnkocHJvcClcbiAgcmV0dXJuIGBcXGBSZWZsZWN0Lmhhcygke3RhcmdldH0sICR7c3RyaW5naWZpZWRQcm9wfSlcXGAsIFxcYCR7c3RyaW5naWZpZWRQcm9wfSBpbiAke3RhcmdldH1cXGAsIG9yIHNpbWlsYXJgXG59XG5cbmV4cG9ydCBjb25zdCB3ZWxsS25vd25Qcm9wZXJ0aWVzID0gbmV3IFNldChbXG4gICdoYXNPd25Qcm9wZXJ0eScsXG4gICdpc1Byb3RvdHlwZU9mJyxcbiAgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcbiAgJ3RvU3RyaW5nJyxcbiAgJ3ZhbHVlT2YnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuXG4gIC8vIFByb21pc2UgcHJvdG90eXBlXG4gIC8vIGZhbGx0aHJvdWdoXG4gICd0aGVuJyxcbiAgJ2NhdGNoJyxcbiAgJ2ZpbmFsbHknLFxuXG4gIC8vIFJlYWN0IFByb21pc2UgZXh0ZW5zaW9uXG4gIC8vIGZhbGx0aHJvdWdoXG4gICdzdGF0dXMnLFxuXG4gIC8vIFJlYWN0IGludHJvc3BlY3Rpb25cbiAgJ2Rpc3BsYXlOYW1lJyxcbiAgJ19kZWJ1Z0luZm8nLFxuXG4gIC8vIENvbW1vbiB0ZXN0ZWQgcHJvcGVydGllc1xuICAvLyBmYWxsdGhyb3VnaFxuICAndG9KU09OJyxcbiAgJyQkdHlwZW9mJyxcbiAgJ19fZXNNb2R1bGUnLFxuXSlcbiJdLCJuYW1lcyI6WyJkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkiLCJkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzIiwid2VsbEtub3duUHJvcGVydGllcyIsImlzRGVmaW5pdGVseUFWYWxpZElkZW50aWZpZXIiLCJ0YXJnZXQiLCJwcm9wIiwidGVzdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdHJpbmdpZmllZFByb3AiLCJTZXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(rsc)/./node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":
|
||
/*!********************************************************************************************************************************************************!*\
|
||
!*** ./node_modules/next/font/google/target.css?{"path":"app/layout.tsx","import":"Inter","arguments":[{"subsets":["latin"]}],"variableName":"inter"} ***!
|
||
\********************************************************************************************************************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("// Exports\nmodule.exports = {\n\t\"style\": {\"fontFamily\":\"'Inter', 'Inter Fallback'\",\"fontStyle\":\"normal\"},\n\t\"className\": \"__className_f367f3\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9mb250L2dvb2dsZS90YXJnZXQuY3NzP3tcInBhdGhcIjpcImFwcC9sYXlvdXQudHN4XCIsXCJpbXBvcnRcIjpcIkludGVyXCIsXCJhcmd1bWVudHNcIjpbe1wic3Vic2V0c1wiOltcImxhdGluXCJdfV0sXCJ2YXJpYWJsZU5hbWVcIjpcImludGVyXCJ9IiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxXQUFXLDhEQUE4RDtBQUN6RTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9mb250L2dvb2dsZS90YXJnZXQuY3NzP3tcInBhdGhcIjpcImFwcC9sYXlvdXQudHN4XCIsXCJpbXBvcnRcIjpcIkludGVyXCIsXCJhcmd1bWVudHNcIjpbe1wic3Vic2V0c1wiOltcImxhdGluXCJdfV0sXCJ2YXJpYWJsZU5hbWVcIjpcImludGVyXCJ9Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEV4cG9ydHNcbm1vZHVsZS5leHBvcnRzID0ge1xuXHRcInN0eWxlXCI6IHtcImZvbnRGYW1pbHlcIjpcIidJbnRlcicsICdJbnRlciBGYWxsYmFjaydcIixcImZvbnRTdHlsZVwiOlwibm9ybWFsXCJ9LFxuXHRcImNsYXNzTmFtZVwiOiBcIl9fY2xhc3NOYW1lX2YzNjdmM1wiXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/api/navigation.js":
|
||
/*!**************************************************!*\
|
||
!*** ./node_modules/next/dist/api/navigation.js ***!
|
||
\**************************************************/
|
||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=navigation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9uYXZpZ2F0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRDs7QUFFaEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL25hdmlnYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi4vY2xpZW50L2NvbXBvbmVudHMvbmF2aWdhdGlvbic7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5hdmlnYXRpb24uanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/api/navigation.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/add-base-path.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/client/add-base-path.js ***!
|
||
\********************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addBasePath\", ({\n enumerable: true,\n get: function() {\n return addBasePath;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ../shared/lib/router/utils/add-path-prefix */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(ssr)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || '';\nfunction addBasePath(path, required) {\n return (0, _normalizetrailingslash.normalizePathTrailingSlash)( false ? 0 : (0, _addpathprefix.addPathPrefix)(path, basePath));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBS2dCQTs7O2VBQUFBOzs7MkNBTGM7b0RBQ2E7QUFFM0MsTUFBTUMsV0FBWUMsTUFBa0MsSUFBZTtBQUU1RCxTQUFTRixZQUFZSyxJQUFZLEVBQUVDLFFBQWtCO0lBQzFELE9BQU9DLENBQUFBLEdBQUFBLHdCQUFBQSwwQkFBQUEsRUFDTEwsTUFBdURJLEdBQ25ERCxDQUFJQSxHQUNKSSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjSixNQUFNSjtBQUU1QiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9zcmMvY2xpZW50L2FkZC1iYXNlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2gnXG5cbmNvbnN0IGJhc2VQYXRoID0gKHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggYXMgc3RyaW5nKSB8fCAnJ1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkQmFzZVBhdGgocGF0aDogc3RyaW5nLCByZXF1aXJlZD86IGJvb2xlYW4pOiBzdHJpbmcge1xuICByZXR1cm4gbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2goXG4gICAgcHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIICYmICFyZXF1aXJlZFxuICAgICAgPyBwYXRoXG4gICAgICA6IGFkZFBhdGhQcmVmaXgocGF0aCwgYmFzZVBhdGgpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJhZGRCYXNlUGF0aCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwicmVxdWlyZWQiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsImFkZFBhdGhQcmVmaXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/add-base-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/app-build-id.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/client/app-build-id.js ***!
|
||
\*******************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// This gets assigned as a side-effect during app initialization. Because it\n// represents the build used to create the JS bundle, it should never change\n// after being set, so we store it in a global variable.\n//\n// When performing RSC requests, if the incoming data has a different build ID,\n// we perform an MPA navigation/refresh to load the updated build and ensure\n// that the client and server in sync.\n// Starts as an empty string. In practice, because setAppBuildId is called\n// during initialization before hydration starts, this will always get\n// reassigned to the actual build ID before it's ever needed by a navigation.\n// If for some reasons it didn't, due to a bug or race condition, then on\n// navigation the build comparision would fail and trigger an MPA navigation.\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 getAppBuildId: function() {\n return getAppBuildId;\n },\n setAppBuildId: function() {\n return setAppBuildId;\n }\n});\nlet globalBuildId = '';\nfunction setAppBuildId(buildId) {\n globalBuildId = buildId;\n}\nfunction getAppBuildId() {\n return globalBuildId;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-build-id.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtYnVpbGQtaWQuanMiLCJtYXBwaW5ncyI6IkFBQUEsNEVBQTRFO0FBQzVFLDRFQUE0RTtBQUM1RSx3REFBd0Q7QUFDeEQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsc0NBQXNDO0FBRXRDLDBFQUEwRTtBQUMxRSxzRUFBc0U7QUFDdEUsNkVBQTZFO0FBQzdFLHlFQUF5RTtBQUN6RSw2RUFBNkU7Ozs7Ozs7Ozs7Ozs7SUFPN0RBLGFBQWE7ZUFBYkE7O0lBSkFDLGFBQWE7ZUFBYkE7OztBQUZoQixJQUFJQyxnQkFBd0I7QUFFckIsU0FBU0QsY0FBY0UsT0FBZTtJQUMzQ0QsZ0JBQWdCQztBQUNsQjtBQUVPLFNBQVNIO0lBQ2QsT0FBT0U7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9zcmMvY2xpZW50L2FwcC1idWlsZC1pZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGdldHMgYXNzaWduZWQgYXMgYSBzaWRlLWVmZmVjdCBkdXJpbmcgYXBwIGluaXRpYWxpemF0aW9uLiBCZWNhdXNlIGl0XG4vLyByZXByZXNlbnRzIHRoZSBidWlsZCB1c2VkIHRvIGNyZWF0ZSB0aGUgSlMgYnVuZGxlLCBpdCBzaG91bGQgbmV2ZXIgY2hhbmdlXG4vLyBhZnRlciBiZWluZyBzZXQsIHNvIHdlIHN0b3JlIGl0IGluIGEgZ2xvYmFsIHZhcmlhYmxlLlxuLy9cbi8vIFdoZW4gcGVyZm9ybWluZyBSU0MgcmVxdWVzdHMsIGlmIHRoZSBpbmNvbWluZyBkYXRhIGhhcyBhIGRpZmZlcmVudCBidWlsZCBJRCxcbi8vIHdlIHBlcmZvcm0gYW4gTVBBIG5hdmlnYXRpb24vcmVmcmVzaCB0byBsb2FkIHRoZSB1cGRhdGVkIGJ1aWxkIGFuZCBlbnN1cmVcbi8vIHRoYXQgdGhlIGNsaWVudCBhbmQgc2VydmVyIGluIHN5bmMuXG5cbi8vIFN0YXJ0cyBhcyBhbiBlbXB0eSBzdHJpbmcuIEluIHByYWN0aWNlLCBiZWNhdXNlIHNldEFwcEJ1aWxkSWQgaXMgY2FsbGVkXG4vLyBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYmVmb3JlIGh5ZHJhdGlvbiBzdGFydHMsIHRoaXMgd2lsbCBhbHdheXMgZ2V0XG4vLyByZWFzc2lnbmVkIHRvIHRoZSBhY3R1YWwgYnVpbGQgSUQgYmVmb3JlIGl0J3MgZXZlciBuZWVkZWQgYnkgYSBuYXZpZ2F0aW9uLlxuLy8gSWYgZm9yIHNvbWUgcmVhc29ucyBpdCBkaWRuJ3QsIGR1ZSB0byBhIGJ1ZyBvciByYWNlIGNvbmRpdGlvbiwgdGhlbiBvblxuLy8gbmF2aWdhdGlvbiB0aGUgYnVpbGQgY29tcGFyaXNpb24gd291bGQgZmFpbCBhbmQgdHJpZ2dlciBhbiBNUEEgbmF2aWdhdGlvbi5cbmxldCBnbG9iYWxCdWlsZElkOiBzdHJpbmcgPSAnJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0QXBwQnVpbGRJZChidWlsZElkOiBzdHJpbmcpIHtcbiAgZ2xvYmFsQnVpbGRJZCA9IGJ1aWxkSWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcEJ1aWxkSWQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdsb2JhbEJ1aWxkSWRcbn1cbiJdLCJuYW1lcyI6WyJnZXRBcHBCdWlsZElkIiwic2V0QXBwQnVpbGRJZCIsImdsb2JhbEJ1aWxkSWQiLCJidWlsZElkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-build-id.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/app-call-server.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/client/app-call-server.js ***!
|
||
\**********************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"callServer\", ({\n enumerable: true,\n get: function() {\n return callServer;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./components/router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _useactionqueue = __webpack_require__(/*! ./components/use-action-queue */ \"(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\");\nasync function callServer(actionId, actionArgs) {\n return new Promise((resolve, reject)=>{\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_SERVER_ACTION,\n actionId,\n actionArgs,\n resolve,\n reject\n });\n });\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-call-server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtY2FsbC1zZXJ2ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FJc0JBOzs7ZUFBQUE7OzttQ0FKVTtnREFDSzs0Q0FDRztBQUVqQyxlQUFlQSxXQUFXQyxRQUFnQixFQUFFQyxVQUFpQjtJQUNsRSxPQUFPLElBQUlDLFFBQVEsQ0FBQ0MsU0FBU0M7UUFDM0JDLENBQUFBLEdBQUFBLE9BQUFBLGVBQUFBLEVBQWdCO1lBQ2RDLENBQUFBLEdBQUFBLGdCQUFBQSx1QkFBQUEsRUFBd0I7Z0JBQ3RCQyxNQUFNQyxvQkFBQUEsb0JBQW9CO2dCQUMxQlI7Z0JBQ0FDO2dCQUNBRTtnQkFDQUM7WUFDRjtRQUNGO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9zcmMvY2xpZW50L2FwcC1jYWxsLXNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGFydFRyYW5zaXRpb24gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEFDVElPTl9TRVJWRVJfQUNUSU9OIH0gZnJvbSAnLi9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlLWFjdGlvbi1xdWV1ZSdcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNhbGxTZXJ2ZXIoYWN0aW9uSWQ6IHN0cmluZywgYWN0aW9uQXJnczogYW55W10pIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBBQ1RJT05fU0VSVkVSX0FDVElPTixcbiAgICAgICAgYWN0aW9uSWQsXG4gICAgICAgIGFjdGlvbkFyZ3MsXG4gICAgICAgIHJlc29sdmUsXG4gICAgICAgIHJlamVjdCxcbiAgICAgIH0pXG4gICAgfSlcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJjYWxsU2VydmVyIiwiYWN0aW9uSWQiLCJhY3Rpb25BcmdzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzdGFydFRyYW5zaXRpb24iLCJkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiIsInR5cGUiLCJBQ1RJT05fU0VSVkVSX0FDVElPTiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-call-server.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/app-dir/link.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/client/app-dir/link.js ***!
|
||
\*******************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \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 /**\n * A React component that extends the HTML `<a>` element to provide\n * [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation. This is the primary way to navigate between routes in Next.js.\n *\n * @remarks\n * - Prefetching is only enabled in production.\n *\n * @see https://nextjs.org/docs/app/api-reference/components/link\n */ default: function() {\n return LinkComponent;\n },\n useLinkStatus: function() {\n return useLinkStatus;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _formaturl = __webpack_require__(/*! ../../shared/lib/router/utils/format-url */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _usemergedref = __webpack_require__(/*! ../use-merged-ref */ \"(ssr)/./node_modules/next/dist/client/use-merged-ref.js\");\nconst _utils = __webpack_require__(/*! ../../shared/lib/utils */ \"(ssr)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _addbasepath = __webpack_require__(/*! ../add-base-path */ \"(ssr)/./node_modules/next/dist/client/add-base-path.js\");\nconst _warnonce = __webpack_require__(/*! ../../shared/lib/utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nconst _links = __webpack_require__(/*! ../components/links */ \"(ssr)/./node_modules/next/dist/client/components/links.js\");\nconst _islocalurl = __webpack_require__(/*! ../../shared/lib/router/utils/is-local-url */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _approuterinstance = __webpack_require__(/*! ../components/app-router-instance */ \"(ssr)/./node_modules/next/dist/client/components/app-router-instance.js\");\nconst _erroronce = __webpack_require__(/*! ../../shared/lib/utils/error-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/error-once.js\");\nconst _segmentcache = __webpack_require__(/*! ../components/segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute('target');\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download\n event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, href, as, linkInstanceRef, replace, scroll, onNavigate) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A';\n if (isAnchorNodeName && isModifiedEvent(e) || e.currentTarget.hasAttribute('download')) {\n // ignore click for browser’s default behavior\n return;\n }\n if (!(0, _islocalurl.isLocalURL)(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault();\n location.replace(href);\n }\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n if (onNavigate) {\n let isDefaultPrevented = false;\n onNavigate({\n preventDefault: ()=>{\n isDefaultPrevented = true;\n }\n });\n if (isDefaultPrevented) {\n return;\n }\n }\n _react.default.startTransition(()=>{\n (0, _approuterinstance.dispatchNavigateAction)(as || href, replace ? 'replace' : 'push', scroll != null ? scroll : true, linkInstanceRef.current);\n });\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString;\n }\n return (0, _formaturl.formatUrl)(urlObjOrString);\n}\nfunction LinkComponent(props) {\n const [linkStatus, setOptimisticLinkStatus] = (0, _react.useOptimistic)(_links.IDLE_LINK_STATUS);\n let children;\n const linkInstanceRef = (0, _react.useRef)(null);\n const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, onClick, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, onNavigate, ref: forwardedRef, unstable_dynamicOnHover, ...restProps } = props;\n children = childrenProp;\n if (legacyBehavior && (typeof children === 'string' || typeof children === 'number')) {\n children = /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n children: children\n });\n }\n const router = _react.default.useContext(_approutercontextsharedruntime.AppRouterContext);\n const prefetchEnabled = prefetchProp !== false;\n const fetchStrategy = prefetchProp !== false ? getFetchStrategyFromPrefetchProp(prefetchProp) : _segmentcache.FetchStrategy.PPR;\n if (true) {\n function createPropError(args) {\n return Object.defineProperty(new Error(\"Failed prop type: The prop `\" + args.key + \"` expects a \" + args.expected + \" in `<Link>`, but got `\" + args.actual + \"` instead.\" + ( false ? 0 : '')), \"__NEXT_ERROR_CODE\", {\n value: \"E319\",\n enumerable: false,\n configurable: true\n });\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n unstable_dynamicOnHover: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'onClick' || key === 'onMouseEnter' || key === 'onTouchStart' || key === 'onNavigate') {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'legacyBehavior' || key === 'unstable_dynamicOnHover') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else if (key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean' && props[key] !== 'auto' && props[key] !== 'unstable_forceStale') {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\" | \"unstable_forceStale\"`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n }\n if (true) {\n if (props.locale) {\n (0, _warnonce.warnOnce)('The `locale` prop is not supported in `next/link` while using the `app` router. Read more about app router internalization: https://nextjs.org/docs/app/building-your-application/routing/internationalization');\n }\n if (!asProp) {\n let href;\n if (typeof hrefProp === 'string') {\n href = hrefProp;\n } else if (typeof hrefProp === 'object' && typeof hrefProp.pathname === 'string') {\n href = hrefProp.pathname;\n }\n if (href) {\n const hasDynamicSegment = href.split('/').some((segment)=>segment.startsWith('[') && segment.endsWith(']'));\n if (hasDynamicSegment) {\n throw Object.defineProperty(new Error(\"Dynamic href `\" + href + \"` found in <Link> while using the `/app` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href\"), \"__NEXT_ERROR_CODE\", {\n value: \"E267\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n }\n const { href, as } = _react.default.useMemo({\n \"LinkComponent.useMemo\": ()=>{\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n }[\"LinkComponent.useMemo\"], [\n hrefProp,\n asProp\n ]);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (true) {\n if (onClick) {\n console.warn('\"onClick\" was passed to <Link> with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link');\n }\n if (onMouseEnterProp) {\n console.warn('\"onMouseEnter\" was passed to <Link> with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link');\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw Object.defineProperty(new Error(\"No children were passed to <Link> with `href` of `\" + hrefProp + \"` but one child is required https://nextjs.org/docs/messages/link-no-children\"), \"__NEXT_ERROR_CODE\", {\n value: \"E320\",\n enumerable: false,\n configurable: true\n });\n }\n throw Object.defineProperty(new Error(\"Multiple children were passed to <Link> with `href` of `\" + hrefProp + \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\" + ( false ? 0 : '')), \"__NEXT_ERROR_CODE\", {\n value: \"E266\",\n enumerable: false,\n configurable: true\n });\n }\n } else {}\n } else {\n if (true) {\n if ((children == null ? void 0 : children.type) === 'a') {\n throw Object.defineProperty(new Error('Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'), \"__NEXT_ERROR_CODE\", {\n value: \"E209\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === 'object' && child.ref : forwardedRef;\n // Use a callback ref to attach an IntersectionObserver to the anchor tag on\n // mount. In the future we will also use this to keep track of all the\n // currently mounted <Link> instances, e.g. so we can re-prefetch them after\n // a revalidation or refresh.\n const observeLinkVisibilityOnMount = _react.default.useCallback({\n \"LinkComponent.useCallback[observeLinkVisibilityOnMount]\": (element)=>{\n if (router !== null) {\n linkInstanceRef.current = (0, _links.mountLinkInstance)(element, href, router, fetchStrategy, prefetchEnabled, setOptimisticLinkStatus);\n }\n return ({\n \"LinkComponent.useCallback[observeLinkVisibilityOnMount]\": ()=>{\n if (linkInstanceRef.current) {\n (0, _links.unmountLinkForCurrentNavigation)(linkInstanceRef.current);\n linkInstanceRef.current = null;\n }\n (0, _links.unmountPrefetchableInstance)(element);\n }\n })[\"LinkComponent.useCallback[observeLinkVisibilityOnMount]\"];\n }\n }[\"LinkComponent.useCallback[observeLinkVisibilityOnMount]\"], [\n prefetchEnabled,\n href,\n router,\n fetchStrategy,\n setOptimisticLinkStatus\n ]);\n const mergedRef = (0, _usemergedref.useMergedRef)(observeLinkVisibilityOnMount, childRef);\n const childProps = {\n ref: mergedRef,\n onClick (e) {\n if (true) {\n if (!e) {\n throw Object.defineProperty(new Error('Component rendered inside next/link has to pass click event to \"onClick\" prop.'), \"__NEXT_ERROR_CODE\", {\n value: \"E312\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n if (!router) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n linkClicked(e, href, as, linkInstanceRef, replace, scroll, onNavigate);\n },\n onMouseEnter (e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n if (!router) {\n return;\n }\n if (!prefetchEnabled || \"development\" === 'development') {\n return;\n }\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true;\n (0, _links.onNavigationIntent)(e.currentTarget, upgradeToDynamicPrefetch);\n },\n onTouchStart: false ? 0 : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === 'function') {\n child.props.onTouchStart(e);\n }\n if (!router) {\n return;\n }\n if (!prefetchEnabled) {\n return;\n }\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true;\n (0, _links.onNavigationIntent)(e.currentTarget, upgradeToDynamicPrefetch);\n }\n };\n // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the basePath.\n if ((0, _utils.isAbsoluteUrl)(as)) {\n childProps.href = as;\n } else if (!legacyBehavior || passHref || child.type === 'a' && !('href' in child.props)) {\n childProps.href = (0, _addbasepath.addBasePath)(as);\n }\n let link;\n if (legacyBehavior) {\n if (true) {\n (0, _erroronce.errorOnce)('`legacyBehavior` is deprecated and will be removed in a future ' + 'release. A codemod is available to upgrade your components:\\n\\n' + 'npx @next/codemod@latest new-link .\\n\\n' + 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components');\n }\n link = /*#__PURE__*/ _react.default.cloneElement(child, childProps);\n } else {\n link = /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n ...restProps,\n ...childProps,\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(LinkStatusContext.Provider, {\n value: linkStatus,\n children: link\n });\n}\nconst LinkStatusContext = /*#__PURE__*/ (0, _react.createContext)(_links.IDLE_LINK_STATUS);\nconst useLinkStatus = ()=>{\n return (0, _react.useContext)(LinkStatusContext);\n};\nfunction getFetchStrategyFromPrefetchProp(prefetchProp) {\n if (false) {} else {\n return prefetchProp === null || prefetchProp === 'auto' ? _segmentcache.FetchStrategy.PPR : // (although invalid values should've been filtered out by prop validation in dev)\n _segmentcache.FetchStrategy.Full;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=link.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtZGlyL2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb1RBOzs7Ozs7Ozs7Q0FTQyxHQUNELE9Ba2FDO2VBbGF1QkE7O0lBd2FYQyxhQUFhO2VBQWJBOzs7Ozs2RUFwdUIyRDt1Q0FFOUM7MkRBQ087MENBQ0o7bUNBQ0M7eUNBQ0Y7c0NBQ0g7bUNBU2xCO3dDQUNvQjsrQ0FDWTt1Q0FDYjswQ0FJbkI7QUEwTVAsU0FBU0MsZ0JBQWdCQyxLQUF1QjtJQUM5QyxNQUFNQyxjQUFjRCxNQUFNRSxhQUFhO0lBQ3ZDLE1BQU1DLFNBQVNGLFlBQVlHLFlBQVksQ0FBQztJQUN4QyxPQUNHRCxVQUFVQSxXQUFXLFdBQ3RCSCxNQUFNSyxPQUFPLElBQ2JMLE1BQU1NLE9BQU8sSUFDYk4sTUFBTU8sUUFBUSxJQUNkUCxNQUFNUSxNQUFNLElBQUksNkJBQTZCO0lBQzVDUixNQUFNUyxXQUFXLElBQUlULE1BQU1TLFdBQVcsQ0FBQ0MsS0FBSyxLQUFLO0FBRXREO0FBRUEsU0FBU0MsWUFDUEMsQ0FBbUIsRUFDbkJDLElBQVksRUFDWkMsRUFBVSxFQUNWQyxlQUFxRCxFQUNyREMsT0FBaUIsRUFDakJDLE1BQWdCLEVBQ2hCQyxVQUFtQztJQUVuQyxNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHUCxFQUFFVixhQUFhO0lBRXBDLGtEQUFrRDtJQUNsRCxNQUFNa0IsbUJBQW1CRCxTQUFTRSxXQUFXLE9BQU87SUFFcEQsSUFDR0Qsb0JBQW9CckIsZ0JBQWdCYSxNQUNyQ0EsRUFBRVYsYUFBYSxDQUFDb0IsWUFBWSxDQUFDLGFBQzdCO1FBQ0EsOENBQThDO1FBQzlDO0lBQ0Y7SUFFQSxJQUFJLENBQUNDLENBQUFBLEdBQUFBLFlBQUFBLFVBQUFBLEVBQVdWLE9BQU87UUFDckIsSUFBSUcsU0FBUztZQUNYLDhEQUE4RDtZQUM5RCwrQkFBK0I7WUFDL0JKLEVBQUVZLGNBQWM7WUFDaEJDLFNBQVNULE9B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R0M7SUFDcEIsT0FBTyxJQUNMLENBQUN1QyxrQkFDRFAsWUFDQ21ELE1BQU1NLElBQUksS0FBSyxPQUFPLENBQUUsV0FBVU4sTUFBTS9ELEtBQUFBLEdBQ3pDO1FBQ0ErRSxXQUFXcEcsSUFBSSxHQUFHMkcsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWTFHO0lBQ2hDO0lBRUEsSUFBSTJHO0lBRUosSUFBSXBFLGdCQUFnQjtRQUNsQixJQUFJYyxJQUFvQixFQUFvQjtZQUMxQ3VELENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQ0Usb0VBQ0Usb0VBQ0EsNENBQ0E7UUFFTjtRQUNBRCxPQUFBQSxXQUFBQSxHQUFPOUYsT0FBQUEsT0FBSyxDQUFDZ0csWUFBWSxDQUFDMUIsT0FBT2dCO0lBQ25DLE9BQU87UUFDTFEsT0FBQUEsV0FBQUEsR0FDRSxxQkFBQy9ELEtBQUFBO1lBQUcsR0FBR0QsU0FBUztZQUFHLEdBQUd3RCxVQUFVO3NCQUM3QjFFOztJQUdQO0lBRUEscUJBQ0UscUJBQUNxRixrQkFBa0JDLFFBQVE7UUFBQ0MsT0FBTzNGO2tCQUNoQ3NGOztBQUdQO0FBRUEsTUFBTUcsb0JBQUFBLFdBQUFBLEdBQW9CRyxDQUFBQSxHQUFBQSxPQUFBQSxhQUFBQSxFQUV4QnpGLE9BQUFBLGdCQUFnQjtBQUVYLE1BQU14QyxnQkFBZ0I7SUFDM0IsT0FBTzhELENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdnRTtBQUNwQjtBQUVBLFNBQVM1RCxpQ0FDUG5CLFlBQStEO0lBRS9ELElBQ0VzQixLQUN1QyxFQUN2QyxFQW9CRCxNQUFNO1FBQ0wsT0FBT3RCLGlCQUFpQixRQUFRQSxpQkFBaUIsU0FFN0MsY0FDQW9CLGFBQWEsQ0FBQ0MsR0FBRyxHQUVqQiw0REFIOEYsc0JBSVo7UUFDbEZELGNBQUFBLGFBQWEsQ0FBQ2tFLElBQUk7SUFDeEI7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9hcHAtZGlyL2xpbmsudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlT3B0aW1pc3RpYywgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFVybE9iamVjdCB9IGZyb20gJ3VybCdcbmltcG9ydCB7IGZvcm1hdFVybCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwnXG5pbXBvcnQgeyBBcHBSb3V0ZXJDb250ZXh0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyB1c2VNZXJnZWRSZWYgfSBmcm9tICcuLi91c2UtbWVyZ2VkLXJlZidcbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHsgYWRkQmFzZVBhdGggfSBmcm9tICcuLi9hZGQtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3dhcm4tb25jZSdcbmltcG9ydCB0eXBlIHsgUEVORElOR19MSU5LX1NUQVRVUyB9IGZyb20gJy4uL2NvbXBvbmVudHMvbGlua3MnXG5pbXBvcnQge1xuICBJRExFX0xJTktfU1RBVFVTLFxuICBtb3VudExpbmtJbnN0YW5jZSxcbiAgb25OYXZpZ2F0aW9uSW50ZW50LFxuICB1bm1vdW50TGlua0ZvckN1cnJlbnROYXZpZ2F0aW9uLFxuICB1bm1vdW50UHJlZmV0Y2hhYmxlSW5zdGFuY2UsXG4gIHR5cGUgTGlua0luc3RhbmNlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2xpbmtzJ1xuaW1wb3J0IHsgaXNMb2NhbFVSTCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybCdcbmltcG9ydCB7IGRpc3BhdGNoTmF2aWdhdGVBY3Rpb24gfSBmcm9tICcuLi9jb21wb25lbnRzL2FwcC1yb3V0ZXItaW5zdGFuY2UnXG5pbXBvcnQgeyBlcnJvck9uY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3V0aWxzL2Vycm9yLW9uY2UnXG5pbXBvcnQge1xuICBGZXRjaFN0cmF0ZWd5LFxuICB0eXBlIFByZWZldGNoVGFza0ZldGNoU3RyYXRlZ3ksXG59IGZyb20gJy4uL2NvbXBvbmVudHMvc2VnbWVudC1jYWNoZSdcblxudHlwZSBVcmwgPSBzdHJpbmcgfCBVcmxPYmplY3RcbnR5cGUgUmVxdWlyZWRLZXlzPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXS0/OiB7fSBleHRlbmRzIFBpY2s8VCwgSz4gPyBuZXZlciA6IEtcbn1ba2V5b2YgVF1cbnR5cGUgT3B0aW9uYWxLZXlzPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXS0/OiB7fSBleHRlbmRzIFBpY2s8VCwgSz4gPyBLIDogbmV2ZXJcbn1ba2V5b2YgVF1cblxudHlwZSBPbk5hdmlnYXRlRXZlbnRIYW5kbGVyID0gKGV2ZW50OiB7IHByZXZlbnREZWZhdWx0OiAoKSA9PiB2b2lkIH0pID0+IHZvaWRcblxudHlwZSBJbnRlcm5hbExpbmtQcm9wcyA9IHtcbiAgLyoqXG4gICAqICoqUmVxdWlyZWQqKi4gVGhlIHBhdGggb3IgVVJMIHRvIG5hdmlnYXRlIHRvLiBJdCBjYW4gYWxzbyBiZSBhbiBvYmplY3QgKHNpbWlsYXIgdG8gYFVSTGApLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c3hcbiAgICogLy8gTmF2aWdhdGUgdG8gL2Rhc2hib2FyZDpcbiAgICogPExpbmsgaHJlZj1cIi9kYXNoYm9hcmRcIj5EYXNoYm9hcmQ8L0xpbms+XG4gICAqXG4gICAqIC8vIE5hdmlnYXRlIHRvIC9hYm91dD9uYW1lPXRlc3Q6XG4gICAqIDxMaW5rIGhyZWY9e3sgcGF0aG5hbWU6ICcvYWJvdXQnLCBxdWVyeTogeyBuYW1lOiAndGVzdCcgfSB9fT5cbiAgICogICBBYm91dFxuICAgKiA8L0xpbms+XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiAtIEZvciBleHRlcm5hbCBVUkxzLCB1c2UgYSBmdWxseSBxdWFsaWZpZWQgVVJMIHN1Y2ggYXMgYGh0dHBzOi8vLi4uYC5cbiAgICogLSBJbiB0aGUgQXBwIFJvdXRlciwgZHluYW1pYyByb3V0ZXMgbXVzdCBub3QgaW5jbHVkZSBicmFja2V0ZWQgc2VnbWVudHMgaW4gYGhyZWZgLlxuICAgKi9cbiAgaHJlZjogVXJsXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHYxMC4wLjA6IGBocmVmYCBwcm9wcyBwb2ludGluZyB0byBhIGR5bmFtaWMgcm91dGUgYXJlXG4gICAqIGF1dG9tYXRpY2FsbHkgcmVzb2x2ZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlIHRoZSBgYXNgIHByb3AuXG4gICAqL1xuICBhcz86IFVybFxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBjdXJyZW50IGBoaXN0b3J5YCBzdGF0ZSBpbnN0ZWFkIG9mIGFkZGluZyBhIG5ldyBVUkwgaW50byB0aGUgc3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c3hcbiAgICogPExpbmsgaHJlZj1cIi9hYm91dFwiIHJlcGxhY2U+XG4gICAqICAgQWJvdXQgKHJlcGxhY2VzIHRoZSBoaXN0b3J5IHN0YXRlKVxuICAgKiA8L0xpbms+XG4gICAqIGBgYFxuICAgKi9cbiAgcmVwbGFjZT86IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzY3JvbGwgYmVoYXZpb3IuIElmIGB0cnVlYCwgTmV4dC5qcyBhdHRlbXB0cyB0byBtYWludGFpblxuICAgKiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGlmIHRoZSBuZXdseSBuYXZpZ2F0ZWQgcGFnZSBpcyBzdGlsbCB2aXNpYmxlLiBJZiBub3QsIGl0IHNjcm9sbHMgdG8gdGhlIHRvcC5cbiAgICpcbiAgICogSWYgYGZhbHNlYCwgTmV4dC5qcyB3aWxsIG5vdCBtb2RpZnkgdGhlIHNjcm9sbCBiZWhhdmlvciBhdCBhbGwuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgYHRydWVgXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzeFxuICAgKiA8TGluayBocmVmPVwiL2Rhc2hib2FyZFwiIHNjcm9sbD17ZmFsc2V9PlxuICAgKiAgIE5vIGF1dG8gc2Nyb2xsXG4gICAqIDwvTGluaz5cbiAgICogYGBgXG4gICAqL1xuICBzY3JvbGw/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgcGF0aCBvZiB0aGUgY3VycmVudCBwYWdlIHdpdGhvdXQgcmVydW5uaW5nIGRhdGEgZmV0Y2hpbmcgbWV0aG9kc1xuICAgKiBsaWtlIGBnZXRTdGF0aWNQcm9wc2AsIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgLCBvciBgZ2V0SW5pdGlhbFByb3BzYC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogYHNoYWxsb3dgIG9ubHkgYXBwbGllcyB0byB0aGUgUGFnZXMgUm91dGVyLiBGb3IgdGhlIEFwcCBSb3V0ZXIsIHNlZSB0aGVcbiAgICogW2ZvbGxvd2luZyBkb2N1bWVudGF0aW9uXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL2xpbmtpbmctYW5kLW5hdmlnYXRpbmcjdXNpbmctdGhlLW5hdGl2ZS1oaXN0b3J5LWFwaSkuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c3hcbiAgICogPExpbmsgaHJlZj1cIi9ibG9nXCIgc2hhbGxvdz5cbiAgICogICBTaGFsbG93IG5hdmlnYXRpb25cbiAgICogPC9MaW5rPlxuICAgKiBgYGBcbiAgICovXG4gIHNoYWxsb3c/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIEZvcmNlcyBgTGlua2AgdG8gcGFzcyBpdHMgYGhyZWZgIHRvIHRoZSBjaGlsZCBjb21wb25lbnQuIFVzZWZ1bCBpZiB0aGUgY2hpbGQgaXMgYSBjdXN0b21cbiAgICogY29tcG9uZW50IHRoYXQgd3JhcHMgYW4gYDxhPmAgdGFnLCBvciBpZiB5b3UncmUgdXNpbmcgY2VydGFpbiBzdHlsaW5nIGxpYnJhcmllcy5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzeFxuICAgKiA8TGluayBocmVmPVwiL2Rhc2hib2FyZFwiIHBhc3NIcmVmPlxuICAgKiAgIDxNeVN0eWxlZEFuY2hvcj5EYXNoYm9hcmQ8L015U3R5bGVkQW5jaG9yPlxuICAgKiA8L0xpbms+XG4gICAqIGBgYFxuICAgKi9cbiAgcGFzc0hyZWY/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFByZWZldGNoIHRoZSBwYWdlIGluIHRoZSBiYWNrZ3JvdW5kLlxuICAgKiBBbnkgYDxMaW5rIC8+YCB0aGF0IGlzIGluIHRoZSB2aWV3cG9ydCAoaW5pdGlhbGx5IG9yIHRocm91Z2ggc2Nyb2xsKSB3aWxsIGJlIHByZWZldGNoZWQuXG4gICAqIFByZWZldGNoIGNhbiBiZSBkaXNhYmxlZCBieSBwYXNzaW5nIGBwcmVmZXRjaD17ZmFsc2V9YC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogUHJlZmV0Y2hpbmcgaXMgb25seSBlbmFibGVkIGluIHByb2R1Y3Rpb24uXG4gICAqXG4gICAqIC0gSW4gdGhlICoqQXBwIFJvdXRlcioqOlxuICAgKiAgIC0gYFwiYXV0b1wiYCwgYG51bGxgLCBgdW5kZWZpbmVkYCAoZGVmYXVsdCk6IFByZWZldGNoIGJlaGF2aW9yIGRlcGVuZHMgb24gc3RhdGljIHZzIGR5bmFtaWMgcm91dGVzOlxuICAgKiAgICAgLSBTdGF0aWMgcm91dGVzOiBmdWxseSBwcmVmZXRjaGVkXG4gICAqICAgICAtIER5bmFtaWMgcm91dGVzOiBwYXJ0aWFsIHByZWZldGNoIHRvIHRoZSBuZWFyZXN0IHNlZ21lbnQgd2l0aCBhIGBsb2FkaW5nLmpzYFxuICAgKiAgIC0gYHRydWVgOiBBbHdheXMgcHJlZmV0Y2ggdGhlIGZ1bGwgcm91dGUgYW5kIGRhdGEuXG4gICAqICAgLSBgZmFsc2VgOiBEaXNhYmxlIHByZWZldGNoaW5nIG9uIGJvdGggdmlld3BvcnQgYW5kIGhvdmVyLlxuICAgKiAtIEluIHRoZSAqKlBhZ2VzIFJvdXRlcioqOlxuICAgKiAgIC0gYHRydWVgIChkZWZhdWx0KTogUHJlZmV0Y2hlcyB0aGUgcm91dGUgYW5kIGRhdGEgaW4gdGhlIGJhY2tncm91bmQgb24gdmlld3BvcnQgb3IgaG92ZXIuXG4gICAqICAgLSBgZmFsc2VgOiBQcmVmZXRjaCBvbmx5IG9uIGhvdmVyLCBub3Qgb24gdmlld3BvcnQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgYHRydWVgIChQYWdlcyBSb3V0ZXIpIG9yIGBudWxsYCAoQXBwIFJvdXRlcilcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHN4XG4gICAqIDxMaW5rIGhyZWY9XCIvZGFzaGJvYXJkXCIgcHJlZmV0Y2g9e2ZhbHNlfT5cbiAgICogICBEYXNoYm9hcmRcbiAgICogPC9MaW5rPlxuICAgKiBgYGBcbiAgICovXG4gIHByZWZldGNoPzogYm9vbGVhbiB8ICdhdXRvJyB8IG51bGwgfCAndW5zdGFibGVfZm9yY2VTdGFsZSdcblxuICAvKipcbiAgICogKHVuc3RhYmxlKSBTd2l0Y2ggdG8gYSBmdWxsIHByZWZldGNoIG9uIGhvdmVyLiBFZmZlY3RpdmVseSB0aGUgc2FtZSBhc1xuICAgKiB1cGRhdGluZyB0aGUgcHJlZmV0Y2ggcHJvcCB0byBgdHJ1ZWAgaW4gYSBtb3VzZSBldmVudC5cbiAgICovXG4gIHVuc3RhYmxlX2R5bmFtaWNPbkhvdmVyPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBUaGUgYWN0aXZlIGxvY2FsZSBpcyBhdXRvbWF0aWNhbGx5IHByZXBlbmRlZCBpbiB0aGUgUGFnZXMgUm91dGVyLiBgbG9jYWxlYCBhbGxvd3MgZm9yIHByb3ZpZGluZ1xuICAgKiBhIGRpZmZlcmVudCBsb2NhbGUsIG9yIGNhbiBiZSBzZXQgdG8gYGZhbHNlYCB0byBvcHQgb3V0IG9mIGF1dG9tYXRpYyBsb2NhbGUgYmVoYXZpb3IuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIE5vdGU6IGxvY2FsZSBvbmx5IGFwcGxpZXMgaW4gdGhlIFBhZ2VzIFJvdXRlciBhbmQgaXMgaWdub3JlZCBpbiB0aGUgQXBwIFJvdXRlci5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHN4XG4gICAqIC8vIFVzZSB0aGUgJ2ZyJyBsb2NhbGU6XG4gICAqIDxMaW5rIGhyZWY9XCIvYWJvdXRcIiBsb2NhbGU9XCJmclwiPlxuICAgKiAgIEFib3V0IChGcmVuY2gpXG4gICAqIDwvTGluaz5cbiAgICpcbiAgICogLy8gRGlzYWJsZSBsb2NhbGUgcHJlZml4OlxuICAgKiA8TGluayBocmVmPVwiL2Fib3V0XCIgbG9jYWxlPXtmYWxzZX0+XG4gICAqICAgQWJvdXQgKG5vIGxvY2FsZSBwcmVmaXgpXG4gICAqIDwvTGluaz5cbiAgICogYGBgXG4gICAqL1xuICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZVxuXG4gIC8qKlxuICAgKiBFbmFibGUgbGVnYWN5IGxpbmsgYmVoYXZpb3IsIHJlcXVpcmluZyBhbiBgPGE+YCB0YWcgdG8gd3JhcCB0aGUgY2hpbGQgY29udGVudFxuICAgKiBpZiB0aGUgY2hpbGQgaXMgYSBzdHJpbmcgb3IgbnVtYmVyLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTZcbiAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2NvbW1pdC80ODllNjVlZDk4NTQ0ZTY5YjBhZmQ3ZTBjZmMzZjlmNmMyYjgwM2I3XG4gICAqL1xuICBsZWdhY3lCZWhhdmlvcj86IGJvb2xlYW5cblxuICAvKipcbiAgICogT3B0aW9uYWwgZXZlbnQgaGFuZGxlciBmb3Igd2hlbiB0aGUgbW91c2UgcG9pbnRlciBpcyBtb3ZlZCBvbnRvIHRoZSBgPExpbms+YC5cbiAgICovXG4gIG9uTW91c2VFbnRlcj86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBldmVudCBoYW5kbGVyIGZvciB3aGVuIHRoZSBgPExpbms+YCBpcyB0b3VjaGVkLlxuICAgKi9cbiAgb25Ub3VjaFN0YXJ0PzogUmVhY3QuVG91Y2hFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gdGhlIGA8TGluaz5gIGlzIGNsaWNrZWQuXG4gICAqL1xuICBvbkNsaWNrPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gdGhlIGA8TGluaz5gIGlzIG5hdmlnYXRlZC5cbiAgICovXG4gIG9uTmF2aWdhdGU/OiBPbk5hdmlnYXRlRXZlbnRIYW5kbGVyXG59XG5cbi8vIFRPRE8tQVBQOiBJbmNsdWRlIHRoZSBmdWxsIHNldCBvZiBBbmNob3IgcHJvcHNcbi8vIGFkZGluZyB0aGlzIHRvIHRoZSBwdWJsaWNseSBleHBvcnRlZCB0eXBlIGN1cnJlbnRseSBicmVha3MgZXhpc3RpbmcgYXBwc1xuXG4vLyBgUm91dGVJbmZlclR5cGVgIGlzIGEgc3R1YiBoZXJlIHRvIGF2b2lkIGJyZWFraW5nIGB0eXBlZFJvdXRlc2Agd2hlbiB0aGUgdHlwZVxuLy8gaXNuJ3QgZ2VuZXJhdGVkIHlldC4gSXQgd2lsbCBiZSByZXBsYWNlZCB3aGVuIHR5cGUgZ2VuZXJhdGlvbiBydW5zLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuZXhwb3J0IHR5cGUgTGlua1Byb3BzPFJvdXRlSW5mZXJUeXBlID0gYW55PiA9IEludGVybmFsTGlua1Byb3BzXG50eXBlIExpbmtQcm9wc1JlcXVpcmVkID0gUmVxdWlyZWRLZXlzPExpbmtQcm9wcz5cbnR5cGUgTGlua1Byb3BzT3B0aW9uYWwgPSBPcHRpb25hbEtleXM8T21pdDxJbnRlcm5hbExpbmtQcm9wcywgJ2xvY2FsZSc+PlxuXG5mdW5jdGlvbiBpc01vZGlmaWVkRXZlbnQoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgY29uc3QgZXZlbnRUYXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxBbmNob3JFbGVtZW50IHwgU1ZHQUVsZW1lbnRcbiAgY29uc3QgdGFyZ2V0ID0gZXZlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKCd0YXJnZXQnKVxuICByZXR1cm4gKFxuICAgICh0YXJnZXQgJiYgdGFyZ2V0ICE9PSAnX3NlbGYnKSB8fFxuICAgIGV2ZW50Lm1ldGFLZXkgfHxcbiAgICBldmVudC5jdHJsS2V5IHx8XG4gICAgZXZlbnQuc2hpZnRLZXkgfHxcbiAgICBldmVudC5hbHRLZXkgfHwgLy8gdHJpZ2dlcnMgcmVzb3VyY2UgZG93bmxvYWRcbiAgICAoZXZlbnQubmF0aXZlRXZlbnQgJiYgZXZlbnQubmF0aXZlRXZlbnQud2hpY2ggPT09IDIpXG4gIClcbn1cblxuZnVuY3Rpb24gbGlua0NsaWNrZWQoXG4gIGU6IFJlYWN0Lk1vdXNlRXZlbnQsXG4gIGhyZWY6IHN0cmluZyxcbiAgYXM6IHN0cmluZyxcbiAgbGlua0luc3RhbmNlUmVmOiBSZWFjdC5SZWZPYmplY3Q8TGlua0luc3RhbmNlIHwgbnVsbD4sXG4gIHJlcGxhY2U/OiBib29sZWFuLFxuICBzY3JvbGw/OiBib29sZWFuLFxuICBvbk5hdmlnYXRlPzogT25OYXZpZ2F0ZUV2ZW50SGFuZGxlclxuKTogdm9pZCB7XG4gIGNvbnN0IHsgbm9kZU5hbWUgfSA9IGUuY3VycmVudFRhcmdldFxuXG4gIC8vIGFuY2hvcnMgaW5zaWRlIGFuIHN2ZyBoYXZlIGEgbG93ZXJjYXNlIG5vZGVOYW1lXG4gIGNvbnN0IGlzQW5jaG9yTm9kZU5hbWUgPSBub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09PSAnQSdcblxuICBpZiAoXG4gICAgKGlzQW5jaG9yTm9kZU5hbWUgJiYgaXNNb2RpZmllZEV2ZW50KGUpKSB8fFxuICAgIGUuY3VycmVudFRhcmdldC5oYXNBdHRyaWJ1dGUoJ2Rvd25sb2FkJylcbiAgKSB7XG4gICAgLy8gaWdub3JlIGNsaWNrIGZvciBicm93c2Vy4oCZcyBkZWZhdWx0IGJlaGF2aW9yXG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoIWlzTG9jYWxVUkwoaHJlZikpIHtcbiAgICBpZiAocmVwbGFjZSkge1xuICAgICAgLy8gYnJvd3NlciBkZWZhdWx0IGJlaGF2aW9yIGRvZXMgbm90IHJlcGxhY2UgdGhlIGhpc3Rvcnkgc3RhdGVcbiAgICAgIC8vIHNvIHdlIG5lZWQgdG8gZG8gaXQgbWFudWFsbHlcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgbG9jYXRpb24ucmVwbGFjZShocmVmKVxuICAgIH1cblxuICAgIC8vIGlnbm9yZSBjbGljayBmb3IgYnJvd3NlcuKAmXMgZGVmYXVsdCBiZWhhdmlvclxuICAgIHJldHVyblxuICB9XG5cbiAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgaWYgKG9uTmF2aWdhdGUpIHtcbiAgICBsZXQgaXNEZWZhdWx0UHJldmVudGVkID0gZmFsc2VcblxuICAgIG9uTmF2aWdhdGUoe1xuICAgICAgcHJldmVudERlZmF1bHQ6ICgpID0+IHtcbiAgICAgICAgaXNEZWZhdWx0UHJldmVudGVkID0gdHJ1ZVxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgaWYgKGlzRGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG5cbiAgUmVhY3Quc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICBkaXNwYXRjaE5hdmlnYXRlQWN0aW9uKFxuICAgICAgYXMgfHwgaHJlZixcbiAgICAgIHJlcGxhY2UgPyAncmVwbGFjZScgOiAncHVzaCcsXG4gICAgICBzY3JvbGwgPz8gdHJ1ZSxcbiAgICAgIGxpbmtJbnN0YW5jZVJlZi5jdXJyZW50XG4gICAgKVxuICB9KVxufVxuXG5mdW5jdGlvbiBmb3JtYXRTdHJpbmdPclVybCh1cmxPYmpPclN0cmluZzogVXJsT2JqZWN0IHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiB1cmxPYmpPclN0cmluZyA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdXJsT2JqT3JTdHJpbmdcbiAgfVxuXG4gIHJldHVybiBmb3JtYXRVcmwodXJsT2JqT3JTdHJpbmcpXG59XG5cbi8qKlxuICogQSBSZWFjdCBjb21wb25lbnQgdGhhdCBleHRlbmRzIHRoZSBIVE1MIGA8YT5gIGVsZW1lbnQgdG8gcHJvdmlkZVxuICogW3ByZWZldGNoaW5nXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL2xpbmtpbmctYW5kLW5hdmlnYXRpbmcjMi1wcmVmZXRjaGluZylcbiAqIGFuZCBjbGllbnQtc2lkZSBuYXZpZ2F0aW9uLiBUaGlzIGlzIHRoZSBwcmltYXJ5IHdheSB0byBuYXZpZ2F0ZSBiZXR3ZWVuIHJvdXRlcyBpbiBOZXh0LmpzLlxuICpcbiAqIEByZW1hcmtzXG4gKiAtIFByZWZldGNoaW5nIGlzIG9ubHkgZW5hYmxlZCBpbiBwcm9kdWN0aW9uLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvY29tcG9uZW50cy9saW5rXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExpbmtDb21wb25lbnQoXG4gIHByb3BzOiBMaW5rUHJvcHMgJiB7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICAgIHJlZjogUmVhY3QuUmVmPEhUTUxBbmNob3JFbGVtZW50PlxuICB9XG4pIHtcbiAgY29uc3QgW2xpbmtTdGF0dXMsIHNldE9wdGltaXN0aWNMaW5rU3RhdHVzXSA9IHVzZU9wdGltaXN0aWMoSURMRV9MSU5LX1NUQVRVUylcblxuICBsZXQgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuXG4gIGNvbnN0IGxpbmtJbnN0YW5jZVJlZiA9IHVzZVJlZjxMaW5rSW5zdGFuY2UgfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHtcbiAgICBocmVmOiBocmVmUHJvcCxcbiAgICBhczogYXNQcm9wLFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlblByb3AsXG4gICAgcHJlZmV0Y2g6IHByZWZldGNoUHJvcCA9IG51bGwsXG4gICAgcGFzc0hyZWYsXG4gICAgcmVwbGFjZSxcbiAgICBzaGFsbG93LFxuICAgIHNjcm9sbCxcbiAgICBvbkNsaWNrLFxuICAgIG9uTW91c2VFbnRlcjogb25Nb3VzZUVudGVyUHJvcCxcbiAgICBvblRvdWNoU3RhcnQ6IG9uVG91Y2hTdGFydFByb3AsXG4gICAgbGVnYWN5QmVoYXZpb3IgPSBmYWxzZSxcbiAgICBvbk5hdmlnYXRlLFxuICAgIHJlZjogZm9yd2FyZGVkUmVmLFxuICAgIHVuc3RhYmxlX2R5bmFtaWNPbkhvdmVyLFxuICAgIC4uLnJlc3RQcm9wc1xuICB9ID0gcHJvcHNcblxuICBjaGlsZHJlbiA9IGNoaWxkcmVuUHJvcFxuXG4gIGlmIChcbiAgICBsZWdhY3lCZWhhdmlvciAmJlxuICAgICh0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjaGlsZHJlbiA9PT0gJ251bWJlcicpXG4gICkge1xuICAgIGNoaWxkcmVuID0gPGE+e2NoaWxkcmVufTwvYT5cbiAgfVxuXG4gIGNvbnN0IHJvdXRlciA9IFJlYWN0LnVzZUNvbnRleHQoQXBwUm91dGVyQ29udGV4dClcblxuICBjb25zdCBwcmVmZXRjaEVuYWJsZWQgPSBwcmVmZXRjaFByb3AgIT09IGZhbHNlXG5cbiAgY29uc3QgZmV0Y2hTdHJhdGVneSA9XG4gICAgcHJlZmV0Y2hQcm9wICE9PSBmYWxzZVxuICAgICAgPyBnZXRGZXRjaFN0cmF0ZWd5RnJvbVByZWZldGNoUHJvcChwcmVmZXRjaFByb3ApXG4gICAgICA6IC8vIFRPRE86IGl0IG1ha2VzIG5vIHNlbnNlIHRvIGFzc2lnbiBhIGZldGNoU3RyYXRlZ3kgd2hlbiBwcmVmZXRjaGluZyBpcyBkaXNhYmxlZC5cbiAgICAgICAgRmV0Y2hTdHJhdGVneS5QUFJcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGZ1bmN0aW9uIGNyZWF0ZVByb3BFcnJvcihhcmdzOiB7XG4gICAgICBrZXk6IHN0cmluZ1xuICAgICAgZXhwZWN0ZWQ6IHN0cmluZ1xuICAgICAgYWN0dWFsOiBzdHJpbmdcbiAgICB9KSB7XG4gICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgICAgICBgRmFpbGVkIHByb3AgdHlwZTogVGhlIHByb3AgXFxgJHthcmdzLmtleX1cXGAgZXhwZWN0cyBhICR7YXJncy5leHBlY3RlZH0gaW4gXFxgPExpbms+XFxgLCBidXQgZ290IFxcYCR7YXJncy5hY3R1YWx9XFxgIGluc3RlYWQuYCArXG4gICAgICAgICAgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICA/IFwiXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIlxuICAgICAgICAgICAgOiAnJylcbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgIGNvbnN0IHJlcXVpcmVkUHJvcHNHdWFyZDogUmVjb3JkPExpbmtQcm9wc1JlcXVpcmVkLCB0cnVlPiA9IHtcbiAgICAgIGhyZWY6IHRydWUsXG4gICAgfSBhcyBjb25zdFxuICAgIGNvbnN0IHJlcXVpcmVkUHJvcHM6IExpbmtQcm9wc1JlcXVpcmVkW10gPSBPYmplY3Qua2V5cyhcbiAgICAgIHJlcXVpcmVkUHJvcHNHdWFyZFxuICAgICkgYXMgTGlua1Byb3BzUmVxdWlyZWRbXVxuICAgIHJlcXVpcmVkUHJvcHMuZm9yRWFjaCgoa2V5OiBMaW5rUHJvcHNSZXF1aXJlZCkgPT4ge1xuICAgICAgaWYgKGtleSA9PT0gJ2hyZWYnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwcm9wc1trZXldID09IG51bGwgfHxcbiAgICAgICAgICAodHlwZW9mIHByb3BzW2tleV0gIT09ICdzdHJpbmcnICYmIHR5cGVvZiBwcm9wc1trZXldICE9PSAnb2JqZWN0JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgYWN0dWFsOiBwcm9wc1trZXldID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHByb3BzW2tleV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICBjb25zdCBfOiBuZXZlciA9IGtleVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgIGNvbnN0IG9wdGlvbmFsUHJvcHNHdWFyZDogUmVjb3JkPExpbmtQcm9wc09wdGlvbmFsLCB0cnVlPiA9IHtcbiAgICAgIGFzOiB0cnVlLFxuICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgIHNjcm9sbDogdHJ1ZSxcbiAgICAgIHNoYWxsb3c6IHRydWUsXG4gICAgICBwYXNzSHJlZjogdHJ1ZSxcbiAgICAgIHByZWZldGNoOiB0cnVlLFxuICAgICAgdW5zdGFibGVfZHluYW1pY09uSG92ZXI6IHRydWUsXG4gICAgICBvbkNsaWNrOiB0cnVlLFxuICAgICAgb25Nb3VzZUVudGVyOiB0cnVlLFxuICAgICAgb25Ub3VjaFN0YXJ0OiB0cnVlLFxuICAgICAgbGVnYWN5QmVoYXZpb3I6IHRydWUsXG4gICAgICBvbk5hdmlnYXRlOiB0cnVlLFxuICAgIH0gYXMgY29uc3RcbiAgICBjb25zdCBvcHRpb25hbFByb3BzOiBMaW5rUHJvcHNPcHRpb25hbFtdID0gT2JqZWN0LmtleXMoXG4gICAgICBvcHRpb25hbFByb3BzR3VhcmRcbiAgICApIGFzIExpbmtQcm9wc09wdGlvbmFsW11cbiAgICBvcHRpb25hbFByb3BzLmZvckVhY2goKGtleTogTGlua1Byb3BzT3B0aW9uYWwpID0+IHtcbiAgICAgIGNvbnN0IHZhbFR5cGUgPSB0eXBlb2YgcHJvcHNba2V5XVxuXG4gICAgICBpZiAoa2V5ID09PSAnYXMnKSB7XG4gICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdzdHJpbmcnICYmIHZhbFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGV4cGVjdGVkOiAnYHN0cmluZ2Agb3IgYG9iamVjdGAnLFxuICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIGtleSA9PT0gJ29uQ2xpY2snIHx8XG4gICAgICAgIGtleSA9PT0gJ29uTW91c2VFbnRlcicgfHxcbiAgICAgICAga2V5ID09PSAnb25Ub3VjaFN0YXJ0JyB8fFxuICAgICAgICBrZXkgPT09ICdvbk5hdmlnYXRlJ1xuICAgICAgKSB7XG4gICAgICAgIGlmIChwcm9wc1trZXldICYmIHZhbFR5cGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgZnVuY3Rpb25gJyxcbiAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBrZXkgPT09ICdyZXBsYWNlJyB8fFxuICAgICAgICBrZXkgPT09ICdzY3JvbGwnIHx8XG4gICAgICAgIGtleSA9PT0gJ3NoYWxsb3cnIHx8XG4gICAgICAgIGtleSA9PT0gJ3Bhc3NIcmVmJyB8fFxuICAgICAgICBrZXkgPT09ICdsZWdhY3lCZWhhdmlvcicgfHxcbiAgICAgICAga2V5ID09PSAndW5zdGFibGVfZHluYW1pY09uSG92ZXInXG4gICAgICApIHtcbiAgICAgICAgaWYgKHByb3BzW2tleV0gIT0gbnVsbCAmJiB2YWxUeXBlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICB0aHJvdyBjcmVhdGVQcm9wRXJyb3Ioe1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgZXhwZWN0ZWQ6ICdgYm9vbGVhbmAnLFxuICAgICAgICAgICAgYWN0dWFsOiB2YWxUeXBlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncHJlZmV0Y2gnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwcm9wc1trZXldICE9IG51bGwgJiZcbiAgICAgICAgICB2YWxUeXBlICE9PSAnYm9vbGVhbicgJiZcbiAgICAgICAgICBwcm9wc1trZXldICE9PSAnYXV0bycgJiZcbiAgICAgICAgICBwcm9wc1trZXldICE9PSAndW5zdGFibGVfZm9yY2VTdGFsZSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW4gfCBcImF1dG9cIiB8IFwidW5zdGFibGVfZm9yY2VTdGFsZVwiYCcsXG4gICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICBjb25zdCBfOiBuZXZlciA9IGtleVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChwcm9wcy5sb2NhbGUpIHtcbiAgICAgIHdhcm5PbmNlKFxuICAgICAgICAnVGhlIGBsb2NhbGVgIHByb3AgaXMgbm90IHN1cHBvcnRlZCBpbiBgbmV4dC9saW5rYCB3aGlsZSB1c2luZyB0aGUgYGFwcGAgcm91dGVyLiBSZWFkIG1vcmUgYWJvdXQgYXBwIHJvdXRlciBpbnRlcm5hbGl6YXRpb246IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JvdXRpbmcvaW50ZXJuYXRpb25hbGl6YXRpb24nXG4gICAgICApXG4gICAgfVxuICAgIGlmICghYXNQcm9wKSB7XG4gICAgICBsZXQgaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgICBpZiAodHlwZW9mIGhyZWZQcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICBocmVmID0gaHJlZlByb3BcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHR5cGVvZiBocmVmUHJvcCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgdHlwZW9mIGhyZWZQcm9wLnBhdGhuYW1lID09PSAnc3RyaW5nJ1xuICAgICAgKSB7XG4gICAgICAgIGhyZWYgPSBocmVmUHJvcC5wYXRobmFtZVxuICAgICAgfVxuXG4gICAgICBpZiAoaHJlZikge1xuICAgICAgICBjb25zdCBoYXNEeW5hbWljU2VnbWVudCA9IGhyZWZcbiAgICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAgIC5zb21lKChzZWdtZW50KSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgoJ1snKSAmJiBzZWdtZW50LmVuZHNXaXRoKCddJykpXG5cbiAgICAgICAgaWYgKGhhc0R5bmFtaWNTZWdtZW50KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYER5bmFtaWMgaHJlZiBcXGAke2hyZWZ9XFxgIGZvdW5kIGluIDxMaW5rPiB3aGlsZSB1c2luZyB0aGUgXFxgL2FwcFxcYCByb3V0ZXIsIHRoaXMgaXMgbm90IHN1cHBvcnRlZC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9hcHAtZGlyLWR5bmFtaWMtaHJlZmBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCB7IGhyZWYsIGFzIH0gPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCByZXNvbHZlZEhyZWYgPSBmb3JtYXRTdHJpbmdPclVybChocmVmUHJvcClcbiAgICByZXR1cm4ge1xuICAgICAgaHJlZjogcmVzb2x2ZWRIcmVmLFxuICAgICAgYXM6IGFzUHJvcCA/IGZvcm1hdFN0cmluZ09yVXJsKGFzUHJvcCkgOiByZXNvbHZlZEhyZWYsXG4gICAgfVxuICB9LCBbaHJlZlByb3AsIGFzUHJvcF0pXG5cbiAgLy8gVGhpcyB3aWxsIHJldHVybiB0aGUgZmlyc3QgY2hpbGQsIGlmIG11bHRpcGxlIGFyZSBwcm92aWRlZCBpdCB3aWxsIHRocm93IGFuIGVycm9yXG4gIGxldCBjaGlsZDogYW55XG4gIGlmIChsZWdhY3lCZWhhdmlvcikge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBcIm9uQ2xpY2tcIiB3YXMgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IFwibGVnYWN5QmVoYXZpb3JcIiB3YXMgc2V0LiBUaGUgbGVnYWN5IGJlaGF2aW9yIHJlcXVpcmVzIG9uQ2xpY2sgYmUgc2V0IG9uIHRoZSBjaGlsZCBvZiBuZXh0L2xpbmtgXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmIChvbk1vdXNlRW50ZXJQcm9wKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgXCJvbk1vdXNlRW50ZXJcIiB3YXMgcGFzc2VkIHRvIDxMaW5rPiB3aXRoIFxcYGhyZWZcXGAgb2YgXFxgJHtocmVmUHJvcH1cXGAgYnV0IFwibGVnYWN5QmVoYXZpb3JcIiB3YXMgc2V0LiBUaGUgbGVnYWN5IGJlaGF2aW9yIHJlcXVpcmVzIG9uTW91c2VFbnRlciBiZSBzZXQgb24gdGhlIGNoaWxkIG9mIG5leHQvbGlua2BcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgY2hpbGQgPSBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgTm8gY2hpbGRyZW4gd2VyZSBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgb25lIGNoaWxkIGlzIHJlcXVpcmVkIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xpbmstbm8tY2hpbGRyZW5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgTXVsdGlwbGUgY2hpbGRyZW4gd2VyZSBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgb25seSBvbmUgY2hpbGQgaXMgc3VwcG9ydGVkIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2xpbmstbXVsdGlwbGUtY2hpbGRyZW5gICtcbiAgICAgICAgICAgICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICA/IFwiIFxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCJcbiAgICAgICAgICAgICAgOiAnJylcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjaGlsZCA9IFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgaWYgKChjaGlsZHJlbiBhcyBhbnkpPy50eXBlID09PSAnYScpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdJbnZhbGlkIDxMaW5rPiB3aXRoIDxhPiBjaGlsZC4gUGxlYXNlIHJlbW92ZSA8YT4gb3IgdXNlIDxMaW5rIGxlZ2FjeUJlaGF2aW9yPi5cXG5MZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnZhbGlkLW5ldy1saW5rLXdpdGgtZXh0cmEtYW5jaG9yJ1xuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2hpbGRSZWY6IGFueSA9IGxlZ2FjeUJlaGF2aW9yXG4gICAgPyBjaGlsZCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkLnJlZlxuICAgIDogZm9yd2FyZGVkUmVmXG5cbiAgLy8gVXNlIGEgY2FsbGJhY2sgcmVmIHRvIGF0dGFjaCBhbiBJbnRlcnNlY3Rpb25PYnNlcnZlciB0byB0aGUgYW5jaG9yIHRhZyBvblxuICAvLyBtb3VudC4gSW4gdGhlIGZ1dHVyZSB3ZSB3aWxsIGFsc28gdXNlIHRoaXMgdG8ga2VlcCB0cmFjayBvZiBhbGwgdGhlXG4gIC8vIGN1cnJlbnRseSBtb3VudGVkIDxMaW5rPiBpbnN0YW5jZXMsIGUuZy4gc28gd2UgY2FuIHJlLXByZWZldGNoIHRoZW0gYWZ0ZXJcbiAgLy8gYSByZXZhbGlkYXRpb24gb3IgcmVmcmVzaC5cbiAgY29uc3Qgb2JzZXJ2ZUxpbmtWaXNpYmlsaXR5T25Nb3VudCA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChlbGVtZW50OiBIVE1MQW5jaG9yRWxlbWVudCB8IFNWR0FFbGVtZW50KSA9PiB7XG4gICAgICBpZiAocm91dGVyICE9PSBudWxsKSB7XG4gICAgICAgIGxpbmtJbnN0YW5jZVJlZi5jdXJyZW50ID0gbW91bnRMaW5rSW5zdGFuY2UoXG4gICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICBocmVmLFxuICAgICAgICAgIHJvdXRlcixcbiAgICAgICAgICBmZXRjaFN0cmF0ZWd5LFxuICAgICAgICAgIHByZWZldGNoRW5hYmxlZCxcbiAgICAgICAgICBzZXRPcHRpbWlzdGljTGlua1N0YXR1c1xuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChsaW5rSW5zdGFuY2VSZWYuY3VycmVudCkge1xuICAgICAgICAgIHVubW91bnRMaW5rRm9yQ3VycmVudE5hdmlnYXRpb24obGlua0luc3RhbmNlUmVmLmN1cnJlbnQpXG4gICAgICAgICAgbGlua0luc3RhbmNlUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICAgIH1cbiAgICAgICAgdW5tb3VudFByZWZldGNoYWJsZUluc3RhbmNlKGVsZW1lbnQpXG4gICAgICB9XG4gICAgfSxcbiAgICBbcHJlZmV0Y2hFbmFibGVkLCBocmVmLCByb3V0ZXIsIGZldGNoU3RyYXRlZ3ksIHNldE9wdGltaXN0aWNMaW5rU3RhdHVzXVxuICApXG5cbiAgY29uc3QgbWVyZ2VkUmVmID0gdXNlTWVyZ2VkUmVmKG9ic2VydmVMaW5rVmlzaWJpbGl0eU9uTW91bnQsIGNoaWxkUmVmKVxuXG4gIGNvbnN0IGNoaWxkUHJvcHM6IHtcbiAgICBvblRvdWNoU3RhcnQ/OiBSZWFjdC5Ub3VjaEV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD5cbiAgICBvbk1vdXNlRW50ZXI6IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuICAgIG9uQ2xpY2s6IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuICAgIGhyZWY/OiBzdHJpbmdcbiAgICByZWY/OiBhbnlcbiAgfSA9IHtcbiAgICByZWY6IG1lcmdlZFJlZixcbiAgICBvbkNsaWNrKGUpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmICghZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBDb21wb25lbnQgcmVuZGVyZWQgaW5zaWRlIG5leHQvbGluayBoYXMgdG8gcGFzcyBjbGljayBldmVudCB0byBcIm9uQ2xpY2tcIiBwcm9wLmBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbkNsaWNrKGUpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgY2hpbGQucHJvcHMgJiZcbiAgICAgICAgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbidcbiAgICAgICkge1xuICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpXG4gICAgICB9XG5cbiAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoZS5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBsaW5rQ2xpY2tlZChlLCBocmVmLCBhcywgbGlua0luc3RhbmNlUmVmLCByZXBsYWNlLCBzY3JvbGwsIG9uTmF2aWdhdGUpXG4gICAgfSxcbiAgICBvbk1vdXNlRW50ZXIoZSkge1xuICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25Nb3VzZUVudGVyUHJvcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbk1vdXNlRW50ZXJQcm9wKGUpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgY2hpbGQucHJvcHMgJiZcbiAgICAgICAgdHlwZW9mIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKVxuICAgICAgfVxuXG4gICAgICBpZiAoIXJvdXRlcikge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCFwcmVmZXRjaEVuYWJsZWQgfHwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVwZ3JhZGVUb0R5bmFtaWNQcmVmZXRjaCA9IHVuc3RhYmxlX2R5bmFtaWNPbkhvdmVyID09PSB0cnVlXG4gICAgICBvbk5hdmlnYXRpb25JbnRlbnQoXG4gICAgICAgIGUuY3VycmVudFRhcmdldCBhcyBIVE1MQW5jaG9yRWxlbWVudCB8IFNWR0FFbGVtZW50LFxuICAgICAgICB1cGdyYWRlVG9EeW5hbWljUHJlZmV0Y2hcbiAgICAgIClcbiAgICB9LFxuICAgIG9uVG91Y2hTdGFydDogcHJvY2Vzcy5lbnYuX19ORVhUX0xJTktfTk9fVE9VQ0hfU1RBUlRcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IGZ1bmN0aW9uIG9uVG91Y2hTdGFydChlKSB7XG4gICAgICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25Ub3VjaFN0YXJ0UHJvcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgb25Ub3VjaFN0YXJ0UHJvcChlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGxlZ2FjeUJlaGF2aW9yICYmXG4gICAgICAgICAgICBjaGlsZC5wcm9wcyAmJlxuICAgICAgICAgICAgdHlwZW9mIGNoaWxkLnByb3BzLm9uVG91Y2hTdGFydCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY2hpbGQucHJvcHMub25Ub3VjaFN0YXJ0KGUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghcHJlZmV0Y2hFbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB1cGdyYWRlVG9EeW5hbWljUHJlZmV0Y2ggPSB1bnN0YWJsZV9keW5hbWljT25Ib3ZlciA9PT0gdHJ1ZVxuICAgICAgICAgIG9uTmF2aWdhdGlvbkludGVudChcbiAgICAgICAgICAgIGUuY3VycmVudFRhcmdldCBhcyBIVE1MQW5jaG9yRWxlbWVudCB8IFNWR0FFbGVtZW50LFxuICAgICAgICAgICAgdXBncmFkZVRvRHluYW1pY1ByZWZldGNoXG4gICAgICAgICAgKVxuICAgICAgICB9LFxuICB9XG5cbiAgLy8gSWYgY2hpbGQgaXMgYW4gPGE+IHRhZyBhbmQgZG9lc24ndCBoYXZlIGEgaHJlZiBhdHRyaWJ1dGUsIG9yIGlmIHRoZSAncGFzc0hyZWYnIHByb3BlcnR5IGlzXG4gIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlci5cbiAgLy8gSWYgdGhlIHVybCBpcyBhYnNvbHV0ZSwgd2UgY2FuIGJ5cGFzcyB0aGUgbG9naWMgdG8gcHJlcGVuZCB0aGUgYmFzZVBhdGguXG4gIGlmIChpc0Fic29sdXRlVXJsKGFzKSkge1xuICAgIGNoaWxkUHJvcHMuaHJlZiA9IGFzXG4gIH0gZWxzZSBpZiAoXG4gICAgIWxlZ2FjeUJlaGF2aW9yIHx8XG4gICAgcGFzc0hyZWYgfHxcbiAgICAoY2hpbGQudHlwZSA9PT0gJ2EnICYmICEoJ2hyZWYnIGluIGNoaWxkLnByb3BzKSlcbiAgKSB7XG4gICAgY2hpbGRQcm9wcy5ocmVmID0gYWRkQmFzZVBhdGgoYXMpXG4gIH1cblxuICBsZXQgbGluazogUmVhY3QuUmVhY3ROb2RlXG5cbiAgaWYgKGxlZ2FjeUJlaGF2aW9yKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICBlcnJvck9uY2UoXG4gICAgICAgICdgbGVnYWN5QmVoYXZpb3JgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSAnICtcbiAgICAgICAgICAncmVsZWFzZS4gQSBjb2RlbW9kIGlzIGF2YWlsYWJsZSB0byB1cGdyYWRlIHlvdXIgY29tcG9uZW50czpcXG5cXG4nICtcbiAgICAgICAgICAnbnB4IEBuZXh0L2NvZGVtb2RAbGF0ZXN0IG5ldy1saW5rIC5cXG5cXG4nICtcbiAgICAgICAgICAnTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vdXBncmFkaW5nL2NvZGVtb2RzI3JlbW92ZS1hLXRhZ3MtZnJvbS1saW5rLWNvbXBvbmVudHMnXG4gICAgICApXG4gICAgfVxuICAgIGxpbmsgPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIGNoaWxkUHJvcHMpXG4gIH0gZWxzZSB7XG4gICAgbGluayA9IChcbiAgICAgIDxhIHsuLi5yZXN0UHJvcHN9IHsuLi5jaGlsZFByb3BzfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9hPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPExpbmtTdGF0dXNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtsaW5rU3RhdHVzfT5cbiAgICAgIHtsaW5rfVxuICAgIDwvTGlua1N0YXR1c0NvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuY29uc3QgTGlua1N0YXR1c0NvbnRleHQgPSBjcmVhdGVDb250ZXh0PFxuICB0eXBlb2YgUEVORElOR19MSU5LX1NUQVRVUyB8IHR5cGVvZiBJRExFX0xJTktfU1RBVFVTXG4+KElETEVfTElOS19TVEFUVVMpXG5cbmV4cG9ydCBjb25zdCB1c2VMaW5rU3RhdHVzID0gKCkgPT4ge1xuICByZXR1cm4gdXNlQ29udGV4dChMaW5rU3RhdHVzQ29udGV4dClcbn1cblxuZnVuY3Rpb24gZ2V0RmV0Y2hTdHJhdGVneUZyb21QcmVmZXRjaFByb3AoXG4gIHByZWZldGNoUHJvcDogRXhjbHVkZTxMaW5rUHJvcHNbJ3ByZWZldGNoJ10sIHVuZGVmaW5lZCB8IGZhbHNlPlxuKTogUHJlZmV0Y2hUYXNrRmV0Y2hTdHJhdGVneSB7XG4gIGlmIChcbiAgICBwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUyAmJlxuICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRVxuICApIHtcbiAgICAvLyBJbiB0aGUgbmV3IGltcGxlbWVudGF0aW9uOlxuICAgIC8vIC0gYHByZWZldGNoPXt0cnVlfWAgaXMgYSBydW50aW1lIHByZWZldGNoXG4gICAgLy8gICAoaW5jbHVkZXMgY2FjaGVkIElPICsgcGFyYW1zICsgY29va2llcywgd2l0aCBkeW5hbWljIGhvbGVzIGZvciB1bmNhY2hlZCBJTykuXG4gICAgLy8gLSBgdW5zdGFibGVfZm9yY2VTdGFsZWAgaXMgYSBcImZ1bGxcIiBwcmVmZXRjaFxuICAgIC8vICAgKGZvcmNlcyBpbmNsdXNpb24gb2YgYWxsIGR5bmFtaWMgZGF0YSwgaS5lLiB0aGUgb2xkIGJlaGF2aW9yIG9mIGBwcmVmZXRjaD17dHJ1ZX1gKVxuICAgIGlmIChwcmVmZXRjaFByb3AgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBGZXRjaFN0cmF0ZWd5LlBQUlJ1bnRpbWVcbiAgICB9XG4gICAgaWYgKHByZWZldGNoUHJvcCA9PT0gJ3Vuc3RhYmxlX2ZvcmNlU3RhbGUnKSB7XG4gICAgICByZXR1cm4gRmV0Y2hTdHJhdGVneS5GdWxsXG4gICAgfVxuXG4gICAgLy8gYG51bGxgIG9yIGBcImF1dG9cImA6IHRoaXMgaXMgdGhlIGRlZmF1bHQgXCJhdXRvXCIgbW9kZSwgd2hlcmUgd2Ugd2lsbCBwcmVmZXRjaCBwYXJ0aWFsbHkgaWYgdGhlIGxpbmsgaXMgaW4gdGhlIHZpZXdwb3J0LlxuICAgIC8vIFRoaXMgd2lsbCBhbHNvIGluY2x1ZGUgaW52YWxpZCBwcm9wIHZhbHVlcyB0aGF0IGRvbid0IG1hdGNoIHRoZSB0eXBlcyBzcGVjaWZpZWQgaGVyZS5cbiAgICAvLyAoYWx0aG91Z2ggdGhvc2Ugc2hvdWxkJ3ZlIGJlZW4gZmlsdGVyZWQgb3V0IGJ5IHByb3AgdmFsaWRhdGlvbiBpbiBkZXYpXG4gICAgcHJlZmV0Y2hQcm9wIHNhdGlzZmllcyBudWxsIHwgJ2F1dG8nXG4gICAgLy8gSW4gYGNsaWVudFNlZ21lbnRDYWNoZWAsIHdlIGRlZmF1bHQgdG8gUFBSLCBhbmQgd2UnbGwgZGlzY292ZXIgd2hldGhlciBvciBub3QgdGhlIHJvdXRlIHN1cHBvcnRzIGl0IHdpdGggdGhlIGluaXRpYWwgcHJlZmV0Y2guXG4gICAgLy8gSWYgd2UncmUgbm90IHVzaW5nIGBjbGllbnRTZWdtZW50Q2FjaGVgLCB0aGlzIHdpbGwgYmUgY29udmVydGVkIGludG8gYSBgUHJlZmV0Y2hLaW5kLkFVVE9gLlxuICAgIHJldHVybiBGZXRjaFN0cmF0ZWd5LlBQUlxuICB9IGVsc2Uge1xuICAgIHJldHVybiBwcmVmZXRjaFByb3AgPT09IG51bGwgfHwgcHJlZmV0Y2hQcm9wID09PSAnYXV0bydcbiAgICAgID8gLy8gSW4gYGNsaWVudFNlZ21lbnRDYWNoZWAsIHdlIGRlZmF1bHQgdG8gUFBSLCBhbmQgd2UnbGwgZGlzY292ZXIgd2hldGhlciBvciBub3QgdGhlIHJvdXRlIHN1cHBvcnRzIGl0IHdpdGggdGhlIGluaXRpYWwgcHJlZmV0Y2guXG4gICAgICAgIC8vIElmIHdlJ3JlIG5vdCB1c2luZyBgY2xpZW50U2VnbWVudENhY2hlYCwgdGhpcyB3aWxsIGJlIGNvbnZlcnRlZCBpbnRvIGEgYFByZWZldGNoS2luZC5BVVRPYC5cbiAgICAgICAgRmV0Y2hTdHJhdGVneS5QUFJcbiAgICAgIDogLy8gSW4gdGhlIG9sZCBpbXBsZW1lbnRhdGlvbiB3aXRob3V0IHJ1bnRpbWUgcHJlZmV0Y2hlcywgYHByZWZldGNoPXt0cnVlfWAgZm9yY2VzIGFsbCBkeW5hbWljIGRhdGEgdG8gYmUgcHJlZmV0Y2hlZC5cbiAgICAgICAgLy8gVG8gcHJlc2VydmUgYmFja3dhcmRzLWNvbXBhdGliaWxpdHksIGFueXRoaW5nIG90aGVyIHRoYW4gYGZhbHNlYCwgYG51bGxgLCBvciBgXCJhdXRvXCJgIHJlc3VsdHMgaW4gYSBmdWxsIHByZWZldGNoLlxuICAgICAgICAvLyAoYWx0aG91Z2ggaW52YWxpZCB2YWx1ZXMgc2hvdWxkJ3ZlIGJlZW4gZmlsdGVyZWQgb3V0IGJ5IHByb3AgdmFsaWRhdGlvbiBpbiBkZXYpXG4gICAgICAgIEZldGNoU3RyYXRlZ3kuRnVsbFxuICB9XG59XG4iXSwibmFtZXMiOlsiTGlua0NvbXBvbmVudCIsInVzZUxpbmtTdGF0dXMiLCJpc01vZGlmaWVkRXZlbnQiLCJldmVudCIsImV2ZW50VGFyZ2V0IiwiY3VycmVudFRhcmdldCIsInRhcmdldCIsImdldEF0dHJpYnV0ZSIsIm1ldGFLZXkiLCJjdHJsS2V5Iiwic2hpZnRLZXkiLCJhbHRLZXkiLCJuYXRpdmVFdmVudCIsIndoaWNoIiwibGlua0NsaWNrZWQiLCJlIiwiaHJlZiIsImFzIiwibGlua0luc3RhbmNlUmVmIiwicmVwbGFjZSIsInNjcm9sbCIsIm9uTmF2aWdhdGUiLCJub2RlTmFtZSIsImlzQW5jaG9yTm9kZU5hbWUiLCJ0b1VwcGVyQ2FzZSIsImhhc0F0dHJpYnV0ZSIsImlzTG9jYWxVUkwiLCJwcmV2ZW50RGVmYXVsdCIsImxvY2F0aW9uIiwiaXNEZWZhdWx0UHJldmVudGVkIiwiUmVhY3QiLCJzdGFydFRyYW5zaXRpb24iLCJkaXNwYXRjaE5hdmlnYXRlQWN0aW9uIiwiY3VycmVudCIsImZvcm1hdFN0cmluZ09yVXJsIiwidXJsT2JqT3JTdHJpbmciLCJmb3JtYXRVcmwiLCJwcm9wcyIsImxpbmtTdGF0dXMiLCJzZXRPcHRpbWlzdGljTGlua1N0YXR1cyIsInVzZU9wdGltaXN0aWMiLCJJRExFX0xJTktfU1RBVFVTIiwiY2hpbGRyZW4iLCJ1c2VSZWYiLCJocmVmUHJvcCIsImFzUHJvcCIsImNoaWxkcmVuUHJvcCIsInByZWZldGNoIiwicHJlZmV0Y2hQcm9wIiwicGFzc0hyZWYiLCJzaGFsbG93Iiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VFbnRlclByb3AiLCJvblRvdWNoU3RhcnQiLCJvblRvdWNoU3RhcnRQcm9wIiwibGVnYWN5QmVoYXZpb3IiLCJyZWYiLCJmb3J3YXJkZWRSZWYiLCJ1bnN0YWJsZV9keW5hbWljT25Ib3ZlciIsInJlc3RQcm9wcyIsImEiLCJyb3V0ZXIiLCJ1c2VDb250ZXh0IiwiQXBwUm91dGVyQ29udGV4dCIsInByZWZldGNoRW5hYmxlZCIsImZldGNoU3RyYXRlZ3kiLCJnZXRGZXRjaFN0cmF0ZWd5RnJvbVByZWZldGNoUHJvcCIsIkZldGNoU3RyYXRlZ3kiLCJQUFIiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjcmVhdGVQcm9wRXJyb3IiLCJhcmdzIiwiRXJyb3IiLCJrZXkiLCJleHBlY3RlZCIsImFjdHVhbCIsIndpbmRvdyIsInJlcXVpcmVkUHJvcHNHdWFyZCIsInJlcXVpcmVkUHJvcHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsIl8iLCJvcHRpb25hbFByb3BzR3VhcmQiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImxvY2FsZSIsIndhcm5PbmNlIiwicGF0aG5hbWUiLCJoYXNEeW5hbWljU2VnbWVudCIsInNwbGl0Iiwic29tZSIsInNlZ21lbnQiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJ1c2VNZW1vIiwicmVzb2x2ZWRIcmVmIiwiY2hpbGQiLCJjb25zb2xlIiwid2FybiIsIkNoaWxkcmVuIiwib25seSIsImVyciIsInR5cGUiLCJjaGlsZFJlZiIsIm9ic2VydmVMaW5rVmlzaWJpbGl0eU9uTW91bnQiLCJ1c2VDYWxsYmFjayIsImVsZW1lbnQiLCJtb3VudExpbmtJbnN0YW5jZSIsInVubW91bnRMaW5rRm9yQ3VycmVudE5hdmlnYXRpb24iLCJ1bm1vdW50UHJlZmV0Y2hhYmxlSW5zdGFuY2UiLCJtZXJnZWRSZWYiLCJ1c2VNZXJnZWRSZWYiLCJjaGlsZFByb3BzIiwiZGVmYXVsdFByZXZlbnRlZCIsInVwZ3JhZGVUb0R5bmFtaWNQcmVmZXRjaCIsIm9uTmF2aWdhdGlvbkludGVudCIsIl9fTkVYVF9MSU5LX05PX1RPVUNIX1NUQVJUIiwidW5kZWZpbmVkIiwiaXNBYnNvbHV0ZVVybCIsImFkZEJhc2VQYXRoIiwibGluayIsImVycm9yT25jZSIsImNsb25lRWxlbWVudCIsIkxpbmtTdGF0dXNDb250ZXh0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImNyZWF0ZUNvbnRleHQiLCJfX05FWFRfQ0FDSEVfQ09NUE9ORU5UUyIsIl9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRSIsIlBQUlJ1bnRpbWUiLCJGdWxsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-dir/link.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/app-find-source-map-url.js ***!
|
||
\******************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"findSourceMapURL\", ({\n enumerable: true,\n get: function() {\n return findSourceMapURL;\n }\n}));\nconst basePath = false || '';\nconst pathname = \"\" + basePath + \"/__nextjs_source-map\";\nconst findSourceMapURL = true ? function findSourceMapURL(filename) {\n if (filename === '') {\n return null;\n }\n if (filename.startsWith(document.location.origin) && filename.includes('/_next/static')) {\n // This is a request for a client chunk. This can only happen when\n // using Turbopack. In this case, since we control how those source\n // maps are generated, we can safely assume that the sourceMappingURL\n // is relative to the filename, with an added `.map` extension. The\n // browser can just request this file, and it gets served through the\n // normal dev server, without the need to route this through\n // the `/__nextjs_source-map` dev middleware.\n return \"\" + filename + \".map\";\n }\n const url = new URL(pathname, document.location.origin);\n url.searchParams.set('filename', filename);\n return url.href;\n} : 0;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-find-source-map-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtZmluZC1zb3VyY2UtbWFwLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQUdhQTs7O2VBQUFBOzs7QUFIYixNQUFNQyxXQUFXQyxNQUFrQyxJQUFJO0FBQ3ZELE1BQU1HLFdBQVksS0FBRUosV0FBUztBQUV0QixNQUFNRCxtQkFDWEUsS0FBb0IsR0FDaEIsU0FBU0YsaUJBQWlCTyxRQUFnQjtJQUN4QyxJQUFJQSxhQUFhLElBQUk7UUFDbkIsT0FBTztJQUNUO0lBRUEsSUFDRUEsU0FBU0MsVUFBVSxDQUFDQyxTQUFTQyxRQUFRLENBQUNDLE1BQU0sS0FDNUNKLFNBQVNLLFFBQVEsQ0FBQyxrQkFDbEI7UUFDQSxrRUFBa0U7UUFDbEUsbUVBQW1FO1FBQ25FLHFFQUFxRTtRQUNyRSxtRUFBbUU7UUFDbkUscUVBQXFFO1FBQ3JFLDREQUE0RDtRQUM1RCw2Q0FBNkM7UUFDN0MsT0FBUSxLQUFFTCxXQUFTO0lBQ3JCO0lBRUEsTUFBTU0sTUFBTSxJQUFJQyxJQUFJVCxVQUFVSSxTQUFTQyxRQUFRLENBQUNDLE1BQU07SUFDdERFLElBQUlFLFlBQVksQ0FBQ0MsR0FBRyxDQUFDLFlBQVlUO0lBRWpDLE9BQU9NLElBQUlJLElBQUk7QUFDakIsSUFDQUMsQ0FBU0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvc3JjL2NsaWVudC9hcHAtZmluZC1zb3VyY2UtbWFwLXVybC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBiYXNlUGF0aCA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggfHwgJydcbmNvbnN0IHBhdGhuYW1lID0gYCR7YmFzZVBhdGh9L19fbmV4dGpzX3NvdXJjZS1tYXBgXG5cbmV4cG9ydCBjb25zdCBmaW5kU291cmNlTWFwVVJMID1cbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCdcbiAgICA/IGZ1bmN0aW9uIGZpbmRTb3VyY2VNYXBVUkwoZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAoZmlsZW5hbWUgPT09ICcnKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBmaWxlbmFtZS5zdGFydHNXaXRoKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikgJiZcbiAgICAgICAgICBmaWxlbmFtZS5pbmNsdWRlcygnL19uZXh0L3N0YXRpYycpXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgYSByZXF1ZXN0IGZvciBhIGNsaWVudCBjaHVuay4gVGhpcyBjYW4gb25seSBoYXBwZW4gd2hlblxuICAgICAgICAgIC8vIHVzaW5nIFR1cmJvcGFjay4gSW4gdGhpcyBjYXNlLCBzaW5jZSB3ZSBjb250cm9sIGhvdyB0aG9zZSBzb3VyY2VcbiAgICAgICAgICAvLyBtYXBzIGFyZSBnZW5lcmF0ZWQsIHdlIGNhbiBzYWZlbHkgYXNzdW1lIHRoYXQgdGhlIHNvdXJjZU1hcHBpbmdVUkxcbiAgICAgICAgICAvLyBpcyByZWxhdGl2ZSB0byB0aGUgZmlsZW5hbWUsIHdpdGggYW4gYWRkZWQgYC5tYXBgIGV4dGVuc2lvbi4gVGhlXG4gICAgICAgICAgLy8gYnJvd3NlciBjYW4ganVzdCByZXF1ZXN0IHRoaXMgZmlsZSwgYW5kIGl0IGdldHMgc2VydmVkIHRocm91Z2ggdGhlXG4gICAgICAgICAgLy8gbm9ybWFsIGRldiBzZXJ2ZXIsIHdpdGhvdXQgdGhlIG5lZWQgdG8gcm91dGUgdGhpcyB0aHJvdWdoXG4gICAgICAgICAgLy8gdGhlIGAvX19uZXh0anNfc291cmNlLW1hcGAgZGV2IG1pZGRsZXdhcmUuXG4gICAgICAgICAgcmV0dXJuIGAke2ZpbGVuYW1lfS5tYXBgXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHBhdGhuYW1lLCBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pXG4gICAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdmaWxlbmFtZScsIGZpbGVuYW1lKVxuXG4gICAgICAgIHJldHVybiB1cmwuaHJlZlxuICAgICAgfVxuICAgIDogdW5kZWZpbmVkXG4iXSwibmFtZXMiOlsiZmluZFNvdXJjZU1hcFVSTCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRobmFtZSIsIk5PREVfRU5WIiwiZmlsZW5hbWUiLCJzdGFydHNXaXRoIiwiZG9jdW1lbnQiLCJsb2NhdGlvbiIsIm9yaWdpbiIsImluY2x1ZGVzIiwidXJsIiwiVVJMIiwic2VhcmNoUGFyYW1zIiwic2V0IiwiaHJlZiIsInVuZGVmaW5lZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/assign-location.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/client/assign-location.js ***!
|
||
\**********************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"assignLocation\", ({\n enumerable: true,\n get: function() {\n return assignLocation;\n }\n}));\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"(ssr)/./node_modules/next/dist/client/add-base-path.js\");\nfunction assignLocation(location, url) {\n if (location.startsWith('.')) {\n const urlBase = url.origin + url.pathname;\n return new URL(// new URL('./relative', 'https://example.com/subdir').href -> 'https://example.com/relative'\n // new URL('./relative', 'https://example.com/subdir/').href -> 'https://example.com/subdir/relative'\n (urlBase.endsWith('/') ? urlBase : urlBase + '/') + location);\n }\n return new URL((0, _addbasepath.addBasePath)(location), url.href);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=assign-location.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hc3NpZ24tbG9jYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7OztrREFTZ0JBOzs7ZUFBQUE7Ozt5Q0FUWTtBQVNyQixTQUFTQSxlQUFlQyxRQUFnQixFQUFFQyxHQUFRO0lBQ3ZELElBQUlELFNBQVNFLFVBQVUsQ0FBQyxNQUFNO1FBQzVCLE1BQU1DLFVBQVVGLElBQUlHLE1BQU0sR0FBR0gsSUFBSUksUUFBUTtRQUN6QyxPQUFPLElBQUlDLElBQ1QsNkZBQzZGO1FBQzdGLHFHQUFxRztTQUNwR0gsUUFBUUksUUFBUSxDQUFDLE9BQU9KLFVBQVVBLFVBQVUsSUFBRSxHQUFLSDtJQUV4RDtJQUVBLE9BQU8sSUFBSU0sSUFBSUUsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWVIsV0FBV0MsSUFBSVEsSUFBSTtBQUNoRCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9zcmMvY2xpZW50L2Fzc2lnbi1sb2NhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRCYXNlUGF0aCB9IGZyb20gJy4vYWRkLWJhc2UtcGF0aCdcblxuLyoqXG4gKiBGdW5jdGlvbiB0byBjb3JyZWN0bHkgYXNzaWduIGxvY2F0aW9uIHRvIFVSTFxuICpcbiAqIFRoZSBtZXRob2Qgd2lsbCBhZGQgYmFzZVBhdGgsIGFuZCB3aWxsIGFsc28gY29ycmVjdGx5IGFkZCBsb2NhdGlvbiAoaW5jbHVkaW5nIGlmIGl0IGlzIGEgcmVsYXRpdmUgcGF0aClcbiAqIEBwYXJhbSBsb2NhdGlvbiBMb2NhdGlvbiB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgdXJsXG4gKiBAcGFyYW0gdXJsIEJhc2UgVVJMIHRvIHdoaWNoIHRoZSBsb2NhdGlvbiBzaG91bGQgYmUgYXNzaWduZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbkxvY2F0aW9uKGxvY2F0aW9uOiBzdHJpbmcsIHVybDogVVJMKTogVVJMIHtcbiAgaWYgKGxvY2F0aW9uLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgIGNvbnN0IHVybEJhc2UgPSB1cmwub3JpZ2luICsgdXJsLnBhdGhuYW1lXG4gICAgcmV0dXJuIG5ldyBVUkwoXG4gICAgICAvLyBJbiBvcmRlciBmb3IgYSByZWxhdGl2ZSBwYXRoIHRvIGJlIGFkZGVkIHRvIHRoZSBjdXJyZW50IHVybCBjb3JyZWN0bHksIHRoZSBjdXJyZW50IHVybCBtdXN0IGVuZCB3aXRoIGEgc2xhc2hcbiAgICAgIC8vIG5ldyBVUkwoJy4vcmVsYXRpdmUnLCAnaHR0cHM6Ly9leGFtcGxlLmNvbS9zdWJkaXInKS5ocmVmIC0+ICdodHRwczovL2V4YW1wbGUuY29tL3JlbGF0aXZlJ1xuICAgICAgLy8gbmV3IFVSTCgnLi9yZWxhdGl2ZScsICdodHRwczovL2V4YW1wbGUuY29tL3N1YmRpci8nKS5ocmVmIC0+ICdodHRwczovL2V4YW1wbGUuY29tL3N1YmRpci9yZWxhdGl2ZSdcbiAgICAgICh1cmxCYXNlLmVuZHNXaXRoKCcvJykgPyB1cmxCYXNlIDogdXJsQmFzZSArICcvJykgKyBsb2NhdGlvblxuICAgIClcbiAgfVxuXG4gIHJldHVybiBuZXcgVVJMKGFkZEJhc2VQYXRoKGxvY2F0aW9uKSwgdXJsLmhyZWYpXG59XG4iXSwibmFtZXMiOlsiYXNzaWduTG9jYXRpb24iLCJsb2NhdGlvbiIsInVybCIsInN0YXJ0c1dpdGgiLCJ1cmxCYXNlIiwib3JpZ2luIiwicGF0aG5hbWUiLCJVUkwiLCJlbmRzV2l0aCIsImFkZEJhc2VQYXRoIiwiaHJlZiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/assign-location.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/app-router-announcer.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/app-router-announcer.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AppRouterAnnouncer\", ({\n enumerable: true,\n get: function() {\n return AppRouterAnnouncer;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _reactdom = __webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\");\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.useState)(null);\n (0, _react.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.useState)('');\n const previousTitle = (0, _react.useRef)(undefined);\n (0, _react.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, _reactdom.createPortal)(routeAnnouncement, portalNode) : null;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-announcer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItYW5ub3VuY2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBNkJnQkE7OztlQUFBQTs7O21DQTdCNEI7c0NBQ2Y7QUFHN0IsTUFBTUMsaUJBQWlCO0FBQ3ZCLE1BQU1DLGVBQWU7QUFFckIsU0FBU0M7UUFFSEM7SUFESixNQUFNQSxvQkFBb0JDLFNBQVNDLGlCQUFpQixDQUFDTCxlQUFlLENBQUMsRUFBRTtJQUN2RSxJQUFJRyxxQkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsQ0FBQUEsZ0NBQUFBLGtCQUFtQkcsVUFBQUEsS0FBVSxnQkFBN0JILDhCQUErQkksVUFBVSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxPQUFPSixrQkFBa0JHLFVBQVUsQ0FBQ0MsVUFBVSxDQUFDLEVBQUU7SUFDbkQsT0FBTztRQUNMLE1BQU1DLFlBQVlKLFNBQVNLLGFBQWEsQ0FBQ1Q7UUFDekNRLFVBQVVFLEtBQUssQ0FBQ0MsT0FBTyxHQUFHO1FBQzFCLE1BQU1DLFlBQVlSLFNBQVNLLGFBQWEsQ0FBQztRQUN6Q0csVUFBVUMsUUFBUSxHQUFHO1FBQ3JCRCxVQUFVRSxFQUFFLEdBQUdiO1FBQ2ZXLFVBQVVHLElBQUksR0FBRztRQUNqQkgsVUFBVUYsS0FBSyxDQUFDQyxPQUFPLEdBQ3JCO1FBRUYsdURBQXVEO1FBQ3ZELE1BQU1LLFNBQVNSLFVBQVVTLFlBQVksQ0FBQztZQUFFQyxNQUFNO1FBQU87UUFDckRGLE9BQU9HLFdBQVcsQ0FBQ1A7UUFDbkJSLFNBQVNnQixJQUFJLENBQUNELFdBQVcsQ0FBQ1g7UUFDMUIsT0FBT0k7SUFDVDtBQUNGO0FBRU8sU0FBU2IsbUJBQW1CLEtBQXFDO0lBQXJDLE1BQUVzQixJQUFJLEVBQStCLEdBQXJDO0lBQ2pDLE1BQU0sQ0FBQ0MsWUFBWUMsY0FBYyxHQUFHQyxDQUFBQSxHQUFBQSxPQUFBQSxRQUFBQSxFQUE2QjtJQUVqRUMsQ0FBQUEsR0FBQUEsT0FBQUEsU0FBQUEsRUFBVTtRQUNSLE1BQU1iLFlBQVlWO1FBQ2xCcUIsY0FBY1g7UUFDZCxPQUFPO1lBQ0wsTUFBTUosWUFBWUosU0FBU3NCLG9CQUFvQixDQUFDMUIsZUFBZSxDQUFDLEVBQUU7WUFDbEUsSUFBSVEsYUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsVUFBV21CLFdBQVcsRUFBRTtnQkFDMUJ2QixTQUFTZ0IsSUFBSSxDQUFDUSxXQUFXLENBQUNwQjtZQUM1QjtRQUNGO0lBQ0YsR0FBRyxFQUFFO0lBRUwsTUFBTSxDQUFDcUIsbUJBQW1CQyxxQkFBcUIsR0FBR04sQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFBUztJQUMzRCxNQUFNTyxnQkFBZ0JDLENBQUFBLEdBQUFBLE9BQUFBLE1BQUFBLEVBQTJCQztJQUVqRFIsQ0FBQUEsR0FBQUEsT0FBQUEsU0FBQUEsRUFBVTtRQUNSLElBQUlTLGVBQWU7UUFDbkIsSUFBSTlCLFNBQVMrQixLQUFLLEVBQUU7WUFDbEJELGVBQWU5QixTQUFTK0IsS0FBSztRQUMvQixPQUFPO1lBQ0wsTUFBTUMsYUFBYWhDLFNBQVNpQyxhQUFhLENBQUM7WUFDMUMsSUFBSUQsWUFBWTtnQkFDZEYsZUFBZUUsV0FBV0UsU0FBUyxJQUFJRixXQUFXRyxXQUFXLElBQUk7WUFDbkU7UUFDRjtRQUVBLDRFQUE0RTtRQUM1RSxpQ0FBaUM7UUFDakMsSUFDRVIsY0FBY1MsT0FBTyxLQUFLUCxhQUMxQkYsY0FBY1MsT0FBTyxLQUFLTixjQUMxQjtZQUNBSixxQkFBcUJJO1FBQ3ZCO1FBQ0FILGNBQWNTLE9BQU8sR0FBR047SUFDMUIsR0FBRztRQUFDYjtLQUFLO0lBRVQsT0FBT0MsYUFBQUEsV0FBQUEsR0FBYW1CLENBQUFBLEdBQUFBLFVBQUFBLFlBQUFBLEVBQWFaLG1CQUFtQlAsY0FBYztBQUNwRSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItYW5ub3VuY2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB0eXBlIHsgRmxpZ2h0Um91dGVyU3RhdGUgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuY29uc3QgQU5OT1VOQ0VSX1RZUEUgPSAnbmV4dC1yb3V0ZS1hbm5vdW5jZXInXG5jb25zdCBBTk5PVU5DRVJfSUQgPSAnX19uZXh0LXJvdXRlLWFubm91bmNlcl9fJ1xuXG5mdW5jdGlvbiBnZXRBbm5vdW5jZXJOb2RlKCkge1xuICBjb25zdCBleGlzdGluZ0Fubm91bmNlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKEFOTk9VTkNFUl9UWVBFKVswXVxuICBpZiAoZXhpc3RpbmdBbm5vdW5jZXI/LnNoYWRvd1Jvb3Q/LmNoaWxkTm9kZXNbMF0pIHtcbiAgICByZXR1cm4gZXhpc3RpbmdBbm5vdW5jZXIuc2hhZG93Um9vdC5jaGlsZE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChBTk5PVU5DRVJfVFlQRSlcbiAgICBjb250YWluZXIuc3R5bGUuY3NzVGV4dCA9ICdwb3NpdGlvbjphYnNvbHV0ZSdcbiAgICBjb25zdCBhbm5vdW5jZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIGFubm91bmNlci5hcmlhTGl2ZSA9ICdhc3NlcnRpdmUnXG4gICAgYW5ub3VuY2VyLmlkID0gQU5OT1VOQ0VSX0lEXG4gICAgYW5ub3VuY2VyLnJvbGUgPSAnYWxlcnQnXG4gICAgYW5ub3VuY2VyLnN0eWxlLmNzc1RleHQgPVxuICAgICAgJ3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlcjowO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7cGFkZGluZzowO3dpZHRoOjFweDtjbGlwOnJlY3QoMCAwIDAgMCk7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsJ1xuXG4gICAgLy8gVXNlIHNoYWRvdyBET00gaGVyZSB0byBhdm9pZCBhbnkgcG90ZW50aWFsIENTUyBibGVlZFxuICAgIGNvbnN0IHNoYWRvdyA9IGNvbnRhaW5lci5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSlcbiAgICBzaGFkb3cuYXBwZW5kQ2hpbGQoYW5ub3VuY2VyKVxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKVxuICAgIHJldHVybiBhbm5vdW5jZXJcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gQXBwUm91dGVyQW5ub3VuY2VyKHsgdHJlZSB9OiB7IHRyZWU6IEZsaWdodFJvdXRlclN0YXRlIH0pIHtcbiAgY29uc3QgW3BvcnRhbE5vZGUsIHNldFBvcnRhbE5vZGVdID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYW5ub3VuY2VyID0gZ2V0QW5ub3VuY2VyTm9kZSgpXG4gICAgc2V0UG9ydGFsTm9kZShhbm5vdW5jZXIpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKEFOTk9VTkNFUl9UWVBFKVswXVxuICAgICAgaWYgKGNvbnRhaW5lcj8uaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChjb250YWluZXIpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBbcm91dGVBbm5vdW5jZW1lbnQsIHNldFJvdXRlQW5ub3VuY2VtZW50XSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBwcmV2aW91c1RpdGxlID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGN1cnJlbnRUaXRsZSA9ICcnXG4gICAgaWYgKGRvY3VtZW50LnRpdGxlKSB7XG4gICAgICBjdXJyZW50VGl0bGUgPSBkb2N1bWVudC50aXRsZVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYWdlSGVhZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaDEnKVxuICAgICAgaWYgKHBhZ2VIZWFkZXIpIHtcbiAgICAgICAgY3VycmVudFRpdGxlID0gcGFnZUhlYWRlci5pbm5lclRleHQgfHwgcGFnZUhlYWRlci50ZXh0Q29udGVudCB8fCAnJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9ubHkgYW5ub3VuY2UgdGhlIHRpdGxlIGNoYW5nZSwgYnV0IG5vdCBmb3IgdGhlIGZpcnN0IGxvYWQgYmVjYXVzZSBzY3JlZW5cbiAgICAvLyByZWFkZXJzIGRvIHRoYXQgYXV0b21hdGljYWxseS5cbiAgICBpZiAoXG4gICAgICBwcmV2aW91c1RpdGxlLmN1cnJlbnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgcHJldmlvdXNUaXRsZS5jdXJyZW50ICE9PSBjdXJyZW50VGl0bGVcbiAgICApIHtcbiAgICAgIHNldFJvdXRlQW5ub3VuY2VtZW50KGN1cnJlbnRUaXRsZSlcbiAgICB9XG4gICAgcHJldmlvdXNUaXRsZS5jdXJyZW50ID0gY3VycmVudFRpdGxlXG4gIH0sIFt0cmVlXSlcblxuICByZXR1cm4gcG9ydGFsTm9kZSA/IGNyZWF0ZVBvcnRhbChyb3V0ZUFubm91bmNlbWVudCwgcG9ydGFsTm9kZSkgOiBudWxsXG59XG4iXSwibmFtZXMiOlsiQXBwUm91dGVyQW5ub3VuY2VyIiwiQU5OT1VOQ0VSX1RZUEUiLCJBTk5PVU5DRVJfSUQiLCJnZXRBbm5vdW5jZXJOb2RlIiwiZXhpc3RpbmdBbm5vdW5jZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRzQnlOYW1lIiwic2hhZG93Um9vdCIsImNoaWxkTm9kZXMiLCJjb250YWluZXIiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJjc3NUZXh0IiwiYW5ub3VuY2VyIiwiYXJpYUxpdmUiLCJpZCIsInJvbGUiLCJzaGFkb3ciLCJhdHRhY2hTaGFkb3ciLCJtb2RlIiwiYXBwZW5kQ2hpbGQiLCJib2R5IiwidHJlZSIsInBvcnRhbE5vZGUiLCJzZXRQb3J0YWxOb2RlIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImlzQ29ubmVjdGVkIiwicmVtb3ZlQ2hpbGQiLCJyb3V0ZUFubm91bmNlbWVudCIsInNldFJvdXRlQW5ub3VuY2VtZW50IiwicHJldmlvdXNUaXRsZSIsInVzZVJlZiIsInVuZGVmaW5lZCIsImN1cnJlbnRUaXRsZSIsInRpdGxlIiwicGFnZUhlYWRlciIsInF1ZXJ5U2VsZWN0b3IiLCJpbm5lclRleHQiLCJ0ZXh0Q29udGVudCIsImN1cnJlbnQiLCJjcmVhdGVQb3J0YWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router-announcer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/app-router-headers.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/app-router-headers.js ***!
|
||
\************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 ACTION_HEADER: function() {\n return ACTION_HEADER;\n },\n FLIGHT_HEADERS: function() {\n return FLIGHT_HEADERS;\n },\n NEXT_ACTION_NOT_FOUND_HEADER: function() {\n return NEXT_ACTION_NOT_FOUND_HEADER;\n },\n NEXT_DID_POSTPONE_HEADER: function() {\n return NEXT_DID_POSTPONE_HEADER;\n },\n NEXT_HMR_REFRESH_HASH_COOKIE: function() {\n return NEXT_HMR_REFRESH_HASH_COOKIE;\n },\n NEXT_HMR_REFRESH_HEADER: function() {\n return NEXT_HMR_REFRESH_HEADER;\n },\n NEXT_IS_PRERENDER_HEADER: function() {\n return NEXT_IS_PRERENDER_HEADER;\n },\n NEXT_REWRITTEN_PATH_HEADER: function() {\n return NEXT_REWRITTEN_PATH_HEADER;\n },\n NEXT_REWRITTEN_QUERY_HEADER: function() {\n return NEXT_REWRITTEN_QUERY_HEADER;\n },\n NEXT_ROUTER_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_PREFETCH_HEADER;\n },\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_SEGMENT_PREFETCH_HEADER;\n },\n NEXT_ROUTER_STALE_TIME_HEADER: function() {\n return NEXT_ROUTER_STALE_TIME_HEADER;\n },\n NEXT_ROUTER_STATE_TREE_HEADER: function() {\n return NEXT_ROUTER_STATE_TREE_HEADER;\n },\n NEXT_RSC_UNION_QUERY: function() {\n return NEXT_RSC_UNION_QUERY;\n },\n NEXT_URL: function() {\n return NEXT_URL;\n },\n RSC_CONTENT_TYPE_HEADER: function() {\n return RSC_CONTENT_TYPE_HEADER;\n },\n RSC_HEADER: function() {\n return RSC_HEADER;\n }\n});\nconst RSC_HEADER = 'rsc';\nconst ACTION_HEADER = 'next-action';\nconst NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree';\nconst NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch';\nconst NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'next-router-segment-prefetch';\nconst NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh';\nconst NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__';\nconst NEXT_URL = 'next-url';\nconst RSC_CONTENT_TYPE_HEADER = 'text/x-component';\nconst FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER\n];\nconst NEXT_RSC_UNION_QUERY = '_rsc';\nconst NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time';\nconst NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed';\nconst NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path';\nconst NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query';\nconst NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender';\nconst NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDYUEsYUFBYTtlQUFiQTs7SUFpQkFDLGNBQWM7ZUFBZEE7O0lBZUFDLDRCQUE0QjtlQUE1QkE7O0lBSkFDLHdCQUF3QjtlQUF4QkE7O0lBZkFDLDRCQUE0QjtlQUE1QkE7O0lBREFDLHVCQUF1QjtlQUF2QkE7O0lBbUJBQyx3QkFBd0I7ZUFBeEJBOztJQUZBQywwQkFBMEI7ZUFBMUJBOztJQUNBQywyQkFBMkI7ZUFBM0JBOztJQXpCQUMsMkJBQTJCO2VBQTNCQTs7SUFLQUMsbUNBQW1DO2VBQW5DQTs7SUFpQkFDLDZCQUE2QjtlQUE3QkE7O0lBdkJBQyw2QkFBNkI7ZUFBN0JBOztJQXFCQUMsb0JBQW9CO2VBQXBCQTs7SUFYQUMsUUFBUTtlQUFSQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFoQkFDLFVBQVU7ZUFBVkE7OztBQUFOLE1BQU1BLGFBQWE7QUFDbkIsTUFBTWhCLGdCQUFnQjtBQUl0QixNQUFNWSxnQ0FBZ0M7QUFDdEMsTUFBTUgsOEJBQThCO0FBS3BDLE1BQU1DLHNDQUNYO0FBQ0ssTUFBTUwsMEJBQTBCO0FBQ2hDLE1BQU1ELCtCQUErQjtBQUNyQyxNQUFNVSxXQUFXO0FBQ2pCLE1BQU1DLDBCQUEwQjtBQUVoQyxNQUFNZCxpQkFBaUI7SUFDNUJlO0lBQ0FKO0lBQ0FIO0lBQ0FKO0lBQ0FLO0NBQ0Q7QUFFTSxNQUFNRyx1QkFBdUI7QUFFN0IsTUFBTUYsZ0NBQWdDO0FBQ3RDLE1BQU1SLDJCQUEyQjtBQUNqQyxNQUFNSSw2QkFBNkI7QUFDbkMsTUFBTUMsOEJBQThCO0FBQ3BDLE1BQU1GLDJCQUEyQjtBQUNqQyxNQUFNSiwrQkFBK0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJTQ19IRUFERVIgPSAncnNjJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IEFDVElPTl9IRUFERVIgPSAnbmV4dC1hY3Rpb24nIGFzIGNvbnN0XG4vLyBUT0RPOiBJbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIGZ1bGwgcm91dGVyIHN0YXRlLCB3ZSBvbmx5IG5lZWQgdG8gc2VuZCB0aGVcbi8vIHNlZ21lbnQgcGF0aC4gU2F2ZXMgYnl0ZXMuIFRoZW4gd2UgY291bGQgYWxzbyB1c2UgdGhpcyBmaWVsZCBmb3Igc2VnbWVudFxuLy8gcHJlZmV0Y2hlcywgd2hpY2ggYWxzbyBuZWVkIHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIHNlZ21lbnQuXG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIgPSAnbmV4dC1yb3V0ZXItc3RhdGUtdHJlZScgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIgPSAnbmV4dC1yb3V0ZXItcHJlZmV0Y2gnIGFzIGNvbnN0XG4vLyBUaGlzIGNvbnRhaW5zIHRoZSBwYXRoIHRvIHRoZSBzZWdtZW50IGJlaW5nIHByZWZldGNoZWQuXG4vLyBUT0RPOiBJZiB3ZSBjaGFuZ2UgbmV4dC1yb3V0ZXItc3RhdGUtdHJlZSB0byBiZSBhIHNlZ21lbnQgcGF0aCwgd2UgY2FuIHVzZVxuLy8gdGhhdCBpbnN0ZWFkLiBUaGVuIG5leHQtcm91dGVyLXByZWZldGNoIGFuZCBuZXh0LXJvdXRlci1zZWdtZW50LXByZWZldGNoIGNhblxuLy8gYmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgZW51bS5cbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUiA9XG4gICduZXh0LXJvdXRlci1zZWdtZW50LXByZWZldGNoJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSE1SX1JFRlJFU0hfSEVBREVSID0gJ25leHQtaG1yLXJlZnJlc2gnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRSA9ICdfX25leHRfaG1yX3JlZnJlc2hfaGFzaF9fJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfVVJMID0gJ25leHQtdXJsJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IFJTQ19DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQveC1jb21wb25lbnQnIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBGTElHSFRfSEVBREVSUyA9IFtcbiAgUlNDX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTkVYVF9SU0NfVU5JT05fUVVFUlkgPSAnX3JzYycgYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSID0gJ3gtbmV4dGpzLXN0YWxlLXRpbWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSID0gJ3gtbmV4dGpzLXBvc3Rwb25lZCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiA9ICd4LW5leHRqcy1yZXdyaXR0ZW4tcGF0aCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9RVUVSWV9IRUFERVIgPSAneC1uZXh0anMtcmV3cml0dGVuLXF1ZXJ5JyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSVNfUFJFUkVOREVSX0hFQURFUiA9ICd4LW5leHRqcy1wcmVyZW5kZXInIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUiA9ICd4LW5leHRqcy1hY3Rpb24tbm90LWZvdW5kJyBhcyBjb25zdFxuIl0sIm5hbWVzIjpbIkFDVElPTl9IRUFERVIiLCJGTElHSFRfSEVBREVSUyIsIk5FWFRfQUNUSU9OX05PVF9GT1VORF9IRUFERVIiLCJORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIiLCJORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIiwiTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIiLCJORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIiLCJORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiIsIk5FWFRfUkVXUklUVEVOX1FVRVJZX0hFQURFUiIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUiIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiTkVYVF9VUkwiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsIlJTQ19IRUFERVIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/app-router-instance.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/app-router-instance.js ***!
|
||
\*************************************************************************/
|
||
/***/ ((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 createMutableActionQueue: function() {\n return createMutableActionQueue;\n },\n dispatchNavigateAction: function() {\n return dispatchNavigateAction;\n },\n dispatchTraverseAction: function() {\n return dispatchTraverseAction;\n },\n getCurrentAppRouterState: function() {\n return getCurrentAppRouterState;\n },\n publicAppRouterInstance: function() {\n return publicAppRouterInstance;\n }\n});\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _routerreducer = __webpack_require__(/*! ./router-reducer/router-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _isthenable = __webpack_require__(/*! ../../shared/lib/is-thenable */ \"(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js\");\nconst _segmentcache = __webpack_require__(/*! ./segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\nconst _useactionqueue = __webpack_require__(/*! ./use-action-queue */ \"(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\");\nconst _addbasepath = __webpack_require__(/*! ../add-base-path */ \"(ssr)/./node_modules/next/dist/client/add-base-path.js\");\nconst _approuter = __webpack_require__(/*! ./app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _prefetchreducer = __webpack_require__(/*! ./router-reducer/reducers/prefetch-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js\");\nconst _links = __webpack_require__(/*! ./links */ \"(ssr)/./node_modules/next/dist/client/components/links.js\");\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 } else {\n // No more actions are pending, check if a refresh is needed\n if (actionQueue.needsRefresh) {\n actionQueue.needsRefresh = false;\n actionQueue.dispatch({\n type: _routerreducertypes.ACTION_REFRESH,\n origin: window.location.origin\n }, setState);\n }\n }\n }\n}\nasync function runAction(param) {\n let { actionQueue, action, setState } = param;\n const prevState = actionQueue.state;\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 return;\n }\n actionQueue.state = nextState;\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, _isthenable.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 !== _routerreducertypes.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.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 === _routerreducertypes.ACTION_NAVIGATE || payload.type === _routerreducertypes.ACTION_RESTORE) {\n // Navigations (including back/forward) 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 // The rest of the current queue should still execute after this navigation.\n // (Note that it can't contain any earlier navigations, because we always put those into `actionQueue.pending` by calling `runAction`)\n newAction.next = actionQueue.pending.next;\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 === _routerreducertypes.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}\nlet globalActionQueue = null;\nfunction createMutableActionQueue(initialState, instrumentationHooks) {\n const actionQueue = {\n state: initialState,\n dispatch: (payload, setState)=>dispatchAction(actionQueue, payload, setState),\n action: async (state, action)=>{\n const result = (0, _routerreducer.reducer)(state, action);\n return result;\n },\n pending: null,\n last: null,\n onRouterTransitionStart: instrumentationHooks !== null && typeof instrumentationHooks.onRouterTransitionStart === 'function' ? instrumentationHooks.onRouterTransitionStart : null\n };\n if (false) {}\n return actionQueue;\n}\nfunction getCurrentAppRouterState() {\n return globalActionQueue !== null ? globalActionQueue.state : null;\n}\nfunction getAppRouterActionQueue() {\n if (globalActionQueue === null) {\n throw Object.defineProperty(new Error('Internal Next.js error: Router action dispatched before initialization.'), \"__NEXT_ERROR_CODE\", {\n value: \"E668\",\n enumerable: false,\n configurable: true\n });\n }\n return globalActionQueue;\n}\nfunction getProfilingHookForOnNavigationStart() {\n if (globalActionQueue !== null) {\n return globalActionQueue.onRouterTransitionStart;\n }\n return null;\n}\nfunction dispatchNavigateAction(href, navigateType, shouldScroll, linkInstanceRef) {\n // TODO: This stuff could just go into the reducer. Leaving as-is for now\n // since we're about to rewrite all the router reducer stuff anyway.\n const url = new URL((0, _addbasepath.addBasePath)(href), location.href);\n if (false) {}\n (0, _links.setLinkForCurrentNavigation)(linkInstanceRef);\n const onRouterTransitionStart = getProfilingHookForOnNavigationStart();\n if (onRouterTransitionStart !== null) {\n onRouterTransitionStart(href, navigateType);\n }\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_NAVIGATE,\n url,\n isExternalUrl: (0, _approuter.isExternalURL)(url),\n locationSearch: location.search,\n shouldScroll,\n navigateType,\n allowAliasing: true\n });\n}\nfunction dispatchTraverseAction(href, tree) {\n const onRouterTransitionStart = getProfilingHookForOnNavigationStart();\n if (onRouterTransitionStart !== null) {\n onRouterTransitionStart(href, 'traverse');\n }\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_RESTORE,\n url: new URL(href),\n tree\n });\n}\nconst publicAppRouterInstance = {\n back: ()=>window.history.back(),\n forward: ()=>window.history.forward(),\n prefetch: false ? // cache. So we don't need to dispatch an action.\n 0 : (href, options)=>{\n // Use the old prefetch implementation.\n const actionQueue = getAppRouterActionQueue();\n const url = (0, _approuter.createPrefetchURL)(href);\n if (url !== null) {\n var _options_kind;\n // The prefetch reducer doesn't actually update any state or\n // trigger a rerender. It just writes to a mutable cache. So we\n // shouldn't bother calling setState/dispatch; we can just re-run\n // the reducer directly using the current state.\n // TODO: Refactor this away from a \"reducer\" so it's\n // less confusing.\n (0, _prefetchreducer.prefetchReducer)(actionQueue.state, {\n type: _routerreducertypes.ACTION_PREFETCH,\n url,\n kind: (_options_kind = options == null ? void 0 : options.kind) != null ? _options_kind : _routerreducertypes.PrefetchKind.FULL\n });\n }\n },\n replace: (href, options)=>{\n (0, _react.startTransition)(()=>{\n var _options_scroll;\n dispatchNavigateAction(href, 'replace', (_options_scroll = options == null ? void 0 : options.scroll) != null ? _options_scroll : true, null);\n });\n },\n push: (href, options)=>{\n (0, _react.startTransition)(()=>{\n var _options_scroll;\n dispatchNavigateAction(href, 'push', (_options_scroll = options == null ? void 0 : options.scroll) != null ? _options_scroll : true, null);\n });\n },\n refresh: ()=>{\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_REFRESH,\n origin: window.location.origin\n });\n });\n },\n hmrRefresh: ()=>{\n if (false) {} else {\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_HMR_REFRESH,\n origin: window.location.origin\n });\n });\n }\n }\n};\n// Exists for debugging purposes. Don't use in application code.\nif (false) {}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-instance.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaW5zdGFuY2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBbU5nQkEsd0JBQXdCO2VBQXhCQTs7SUEwREFDLHNCQUFzQjtlQUF0QkE7O0lBK0JBQyx3QkFBc0I7ZUFBdEJBOztJQW5EQUMsd0JBQXdCO2VBQXhCQTs7SUF1RUhDLHVCQUF1QjtlQUF2QkE7OztnREFwVE47MkNBQ2lCO21DQUNRO3dDQUNMOzBDQUtwQjs0Q0FDaUM7eUNBQ1o7dUNBQ3FCOzZDQUNqQjttQ0FNK0I7QUFrQy9ELFNBQVNDLG9CQUNQQyxXQUFpQyxFQUNqQ0MsUUFBOEI7SUFFOUIsSUFBSUQsWUFBWUUsT0FBTyxLQUFLLE1BQU07UUFDaENGLFlBQVlFLE9BQU8sR0FBR0YsWUFBWUUsT0FBTyxDQUFDQyxJQUFJO1FBQzlDLElBQUlILFlBQVlFLE9BQU8sS0FBSyxNQUFNO1lBQ2hDLG1FQUFtRTtZQUNuRUUsVUFBVTtnQkFDUko7Z0JBQ0FLLFFBQVFMLFlBQVlFLE9BQU87Z0JBQzNCRDtZQUNGO1FBQ0YsT0FBTztZQUNMLDREQUE0RDtZQUM1RCxJQUFJRCxZQUFZTSxZQUFZLEVBQUU7Z0JBQzVCTixZQUFZTSxZQUFZLEdBQUc7Z0JBQzNCTixZQUFZTyxRQUFRLENBQ2xCO29CQUNFQyxNQUFNQyxvQkFBQUEsY0FBYztvQkFDcEJDLFFBQVFDLE9BQU9DLFFBQVEsQ0FBQ0YsTUFBTTtnQkFDaEMsR0FDQVQ7WUFFSjtRQUNGO0lBQ0Y7QUFDRjtBQUVBLGVBQWVHLFVBQVUsS0FReEI7SUFSd0IsTUFDdkJKLFdBQVcsRUFDWEssTUFBTSxFQUNOSixRQUFRLEVBS1QsR0FSd0I7SUFTdkIsTUFBTVksWUFBWWIsWUFBWWMsS0FBSztJQUVuQ2QsWUFBWUUsT0FBTyxHQUFHRztJQUV0QixNQUFNVSxVQUFVVixPQUFPVSxPQUFPO0lBQzlCLE1BQU1DLGVBQWVoQixZQUFZSyxNQUFNLENBQUNR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QU0sQ0FBQzNDLE1BQWN3QjtRQUNuQnRDLENBQUFBLEdBQUFBLE9BQUFBLGVBQUFBLEVBQWdCO2dCQUN1QnNDO1lBQXJDekUsdUJBQXVCaUQsTUFBTSxRQUFRd0IsQ0FBQUEsa0JBQUFBLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNrQixNQUFBQSxLQUFNLE9BQWZsQixrQkFBbUIsTUFBTTtRQUNoRTtJQUNGO0lBQ0FvQixTQUFTO1FBQ1AxRCxDQUFBQSxHQUFBQSxPQUFBQSxlQUFBQSxFQUFnQjtZQUNkMEIsQ0FBQUEsR0FBQUEsZ0JBQUFBLHVCQUFBQSxFQUF3QjtnQkFDdEJoRCxNQUFNQyxvQkFBQUEsY0FBYztnQkFDcEJDLFFBQVFDLE9BQU9DLFFBQVEsQ0FBQ0YsTUFBTTtZQUNoQztRQUNGO0lBQ0Y7SUFDQStFLFlBQVk7UUFDVixJQUFJdEMsS0FBb0IsRUFBb0IsRUFJM0MsTUFBTTtZQUNMckIsQ0FBQUEsR0FBQUEsT0FBQUEsZUFBQUEsRUFBZ0I7Z0JBQ2QwQixDQUFBQSxHQUFBQSxnQkFBQUEsdUJBQUFBLEVBQXdCO29CQUN0QmhELE1BQU1tRixvQkFBQUEsa0JBQWtCO29CQUN4QmpGLFFBQVFDLE9BQU9DLFFBQVEsQ0FBQ0YsTUFBTTtnQkFDaEM7WUFDRjtRQUNGO0lBQ0Y7QUFDRjtBQUVBLGdFQUFnRTtBQUNoRSxJQUFJLEtBQTRDLEVBQUUsRUFFakQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWluc3RhbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQXBwUm91dGVyU3RhdGUsXG4gIHR5cGUgUmVkdWNlckFjdGlvbnMsXG4gIHR5cGUgUmVkdWNlclN0YXRlLFxuICBBQ1RJT05fUkVGUkVTSCxcbiAgQUNUSU9OX1NFUlZFUl9BQ1RJT04sXG4gIEFDVElPTl9OQVZJR0FURSxcbiAgQUNUSU9OX1JFU1RPUkUsXG4gIHR5cGUgTmF2aWdhdGVBY3Rpb24sXG4gIEFDVElPTl9ITVJfUkVGUkVTSCxcbiAgUHJlZmV0Y2hLaW5kLFxuICBBQ1RJT05fUFJFRkVUQ0gsXG59IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyByZWR1Y2VyIH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci9yb3V0ZXItcmVkdWNlcidcbmltcG9ydCB7IHN0YXJ0VHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgaXNUaGVuYWJsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvaXMtdGhlbmFibGUnXG5pbXBvcnQge1xuICBGZXRjaFN0cmF0ZWd5LFxuICBwcmVmZXRjaCBhcyBwcmVmZXRjaFdpdGhTZWdtZW50Q2FjaGUsXG4gIHR5cGUgUHJlZmV0Y2hUYXNrRmV0Y2hTdHJhdGVneSxcbn0gZnJvbSAnLi9zZWdtZW50LWNhY2hlJ1xuaW1wb3J0IHsgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24gfSBmcm9tICcuL3VzZS1hY3Rpb24tcXVldWUnXG5pbXBvcnQgeyBhZGRCYXNlUGF0aCB9IGZyb20gJy4uL2FkZC1iYXNlLXBhdGgnXG5pbXBvcnQgeyBjcmVhdGVQcmVmZXRjaFVSTCwgaXNFeHRlcm5hbFVSTCB9IGZyb20gJy4vYXBwLXJvdXRlcidcbmltcG9ydCB7IHByZWZldGNoUmVkdWNlciB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvcHJlZmV0Y2gtcmVkdWNlcidcbmltcG9ydCB0eXBlIHtcbiAgQXBwUm91dGVySW5zdGFuY2UsXG4gIE5hdmlnYXRlT3B0aW9ucyxcbiAgUHJlZmV0Y2hPcHRpb25zLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IHNldExpbmtGb3JDdXJyZW50TmF2aWdhdGlvbiwgdHlwZSBMaW5rSW5zdGFuY2UgfSBmcm9tICcuL2xpbmtzJ1xuaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDbGllbnRJbnN0cnVtZW50YXRpb25Ib29rcyB9IGZyb20gJy4uL2FwcC1pbmRleCdcbmltcG9ydCB0eXBlIHsgR2xvYmFsRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL2J1aWx0aW4vZ2xvYmFsLWVycm9yJ1xuXG5leHBvcnQgdHlwZSBEaXNwYXRjaFN0YXRlUHJvbWlzZSA9IFJlYWN0LkRpc3BhdGNoPFJlZHVjZXJTdGF0ZT5cblxuZXhwb3J0IHR5cGUgQXBwUm91dGVyQWN0aW9uUXVldWUgPSB7XG4gIHN0YXRlOiBBcHBSb3V0ZXJTdGF0ZVxuICBkaXNwYXRjaDogKHBheWxvYWQ6IFJlZHVjZXJBY3Rpb25zLCBzZXRTdGF0ZTogRGlzcGF0Y2hTdGF0ZVByb21pc2UpID0+IHZvaWRcbiAgYWN0aW9uOiAoc3RhdGU6IEFwcFJvdXRlclN0YXRlLCBhY3Rpb246IFJlZHVjZXJBY3Rpb25zKSA9PiBSZWR1Y2VyU3RhdGVcblxuICBvblJvdXRlclRyYW5zaXRpb25TdGFydDpcbiAgICB8ICgodXJsOiBzdHJpbmcsIHR5cGU6ICdwdXNoJyB8ICdyZXBsYWNlJyB8ICd0cmF2ZXJzZScpID0+IHZvaWQpXG4gICAgfCBudWxsXG5cbiAgcGVuZGluZzogQWN0aW9uUXVldWVOb2RlIHwgbnVsbFxuICBuZWVkc1JlZnJlc2g/OiBib29sZWFuXG4gIGxhc3Q6IEFjdGlvblF1ZXVlTm9kZSB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgR2xvYmFsRXJyb3JTdGF0ZSA9IFtcbiAgR2xvYmFsRXJyb3I6IEdsb2JhbEVycm9yQ29tcG9uZW50LFxuICBzdHlsZXM6IFJlYWN0LlJlYWN0Tm9kZSxcbl1cblxuZXhwb3J0IHR5cGUgQWN0aW9uUXVldWVOb2RlID0ge1xuICBwYXlsb2FkOiBSZWR1Y2VyQWN0aW9uc1xuICBuZXh0OiBBY3Rpb25RdWV1ZU5vZGUgfCBudWxsXG4gIHJlc29sdmU6ICh2YWx1ZTogUmVkdWNlclN0YXRlKSA9PiB2b2lkXG4gIHJlamVjdDogKGVycjogRXJyb3IpID0+IHZvaWRcbiAgZGlzY2FyZGVkPzogYm9vbGVhblxufVxuXG5mdW5jdGlvbiBydW5SZW1haW5pbmdBY3Rpb25zKFxuICBhY3Rpb25RdWV1ZTogQXBwUm91dGVyQWN0aW9uUXVldWUsXG4gIHNldFN0YXRlOiBEaXNwYXRjaFN0YXRlUHJvbWlzZVxuKSB7XG4gIGlmIChhY3Rpb25RdWV1ZS5wZW5kaW5nICE9PSBudWxsKSB7XG4gICAgYWN0aW9uUXVldWUucGVuZGluZyA9IGFjdGlvblF1ZXVlLnBlbmRpbmcubmV4dFxuICAgIGlmIChhY3Rpb25RdWV1ZS5wZW5kaW5nICE9PSBudWxsKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICBydW5BY3Rpb24oe1xuICAgICAgICBhY3Rpb25RdWV1ZSxcbiAgICAgICAgYWN0aW9uOiBhY3Rpb25RdWV1ZS5wZW5kaW5nLFxuICAgICAgICBzZXRTdGF0ZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIG1vcmUgYWN0aW9ucyBhcmUgcGVuZGluZywgY2hlY2sgaWYgYSByZWZyZXNoIGlzIG5lZWRlZFxuICAgICAgaWYgKGFjdGlvblF1ZXVlLm5lZWRzUmVmcmVzaCkge1xuICAgICAgICBhY3Rpb25RdWV1ZS5uZWVkc1JlZnJlc2ggPSBmYWxzZVxuICAgICAgICBhY3Rpb25RdWV1ZS5kaXNwYXRjaChcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBBQ1RJT05fUkVGUkVTSCxcbiAgICAgICAgICAgIG9yaWdpbjogd2luZG93LmxvY2F0aW9uLm9yaWdpbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldFN0YXRlXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuQWN0aW9uKHtcbiAgYWN0aW9uUXVldWUsXG4gIGFjdGlvbixcbiAgc2V0U3RhdGUsXG59OiB7XG4gIGFjdGlvblF1ZXVlOiBBcHBSb3V0ZXJBY3Rpb25RdWV1ZVxuICBhY3Rpb246IEFjdGlvblF1ZXVlTm9kZVxuICBzZXRTdGF0ZTogRGlzcGF0Y2hTdGF0ZVByb21pc2Vcbn0pIHtcbiAgY29uc3QgcHJldlN0YXRlID0gYWN0aW9uUXVldWUuc3RhdGVcblxuICBhY3Rpb25RdWV1ZS5wZW5kaW5nID0gYWN0aW9uXG5cbiAgY29uc3QgcGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkXG4gIGNvbnN0IGFjdGlvblJlc3VsdCA9IGFjdGlvblF1ZXVlLmFjdGlvbihwcmV2U3RhdGUsIHBheWxvYWQpXG5cbiAgZnVuY3Rpb24gaGFuZGxlUmVzdWx0KG5leHRTdGF0ZTogQXBwUm91dGVyU3RhdGUpIHtcbiAgICAvLyBpZiB3ZSBkaXNjYXJkZWQgdGhpcyBhY3Rpb24sIHRoZSBzdGF0ZSBzaG91bGQgYWxzbyBiZSBkaXNjYXJkZWRcbiAgICBpZiAoYWN0aW9uLmRpc2NhcmRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYWN0aW9uUXVldWUuc3RhdGUgPSBuZXh0U3RhdGVcblxuICAgIHJ1blJlbWFpbmluZ0FjdGlvbnMoYWN0aW9uUXVldWUsIHNldFN0YXRlKVxuICAgIGFjdGlvbi5yZXNvbHZlKG5leHRTdGF0ZSlcbiAgfVxuXG4gIC8vIGlmIHRoZSBhY3Rpb24gaXMgYSBwcm9taXNlLCBzZXQgdXAgYSBjYWxsYmFjayB0byByZXNvbHZlIGl0XG4gIGlmIChpc1RoZW5hYmxlKGFjdGlvblJlc3VsdCkpIHtcbiAgICBhY3Rpb25SZXN1bHQudGhlbihoYW5kbGVSZXN1bHQsIChlcnIpID0+IHtcbiAgICAgIHJ1blJlbWFpbmluZ0FjdGlvbnMoYWN0aW9uUXVldWUsIHNldFN0YXRlKVxuICAgICAgYWN0aW9uLnJlamVjdChlcnIpXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICBoYW5kbGVSZXN1bHQoYWN0aW9uUmVzdWx0KVxuICB9XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoQWN0aW9uKFxuICBhY3Rpb25RdWV1ZTogQXBwUm91dGVyQWN0aW9uUXVldWUsXG4gIHBheWxvYWQ6IFJlZHVjZXJBY3Rpb25zLFxuICBzZXRTdGF0ZTogRGlzcGF0Y2hTdGF0ZVByb21pc2Vcbikge1xuICBsZXQgcmVzb2x2ZXJzOiB7XG4gICAgcmVzb2x2ZTogKHZhbHVlOiBSZWR1Y2VyU3RhdGUpID0+IHZvaWRcbiAgICByZWplY3Q6IChyZWFzb246IGFueSkgPT4gdm9pZFxuICB9ID0geyByZXNvbHZlOiBzZXRTdGF0ZSwgcmVqZWN0OiAoKSA9PiB7fSB9XG5cbiAgLy8gbW9zdCBvZiB0aGUgYWN0aW9uIHR5cGVzIGFyZSBhc3luYyB3aXRoIHRoZSBleGNlcHRpb24gb2YgcmVzdG9yZVxuICAvLyBpdCdzIGltcG9ydGFudCB0aGF0IHJlc3RvcmUgaXMgaGFuZGxlZCBxdWlja2x5IHNpbmNlIGl0J3MgZmlyZWQgb24gdGhlIHBvcHN0YXRlIGV2ZW50XG4gIC8vIGFuZCB3ZSBkb24ndCB3YW50IHRvIGFkZCBhbnkgZGVsYXkgb24gYSBiYWNrL2ZvcndhcmQgbmF2XG4gIC8vIHRoaXMgb25seSBjcmVhdGVzIGEgcHJvbWlzZSBmb3IgdGhlIGFzeW5jIGFjdGlvbnNcbiAgaWYgKHBheWxvYWQudHlwZSAhPT0gQUNUSU9OX1JFU1RPUkUpIHtcbiAgICAvLyBDcmVhdGUgdGhlIHByb21pc2UgYW5kIGFzc2lnbiB0aGUgcmVzb2x2ZXJzIHRvIHRoZSBvYmplY3QuXG4gICAgY29uc3QgZGVmZXJyZWRQcm9taXNlID0gbmV3IFByb21pc2U8QXBwUm91dGVyU3RhdGU+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHJlc29sdmVycyA9IHsgcmVzb2x2ZSwgcmVqZWN0IH1cbiAgICB9KVxuXG4gICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgIC8vIHdlIGltbWVkaWF0ZWx5IG5vdGlmeSBSZWFjdCBvZiB0aGUgcGVuZGluZyBwcm9taXNlIC0tIHRoZSByZXNvbHZlciBpcyBhdHRhY2hlZCB0byB0aGUgYWN0aW9uIG5vZGVcbiAgICAgIC8vIGFuZCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGFjdGlvbiBwcm9taXNlIHJlc29sdmVzXG4gICAgICBzZXRTdGF0ZShkZWZlcnJlZFByb21pc2UpXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IG5ld0FjdGlvbjogQWN0aW9uUXVldWVOb2RlID0ge1xuICAgIHBheWxvYWQsXG4gICAgbmV4dDogbnVsbCxcbiAgICByZXNvbHZlOiByZXNvbHZlcnMucmVzb2x2ZSxcbiAgICByZWplY3Q6IHJlc29sdmVycy5yZWplY3QsXG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcXVldWUgaXMgZW1wdHlcbiAgaWYgKGFjdGlvblF1ZXVlLnBlbmRpbmcgPT09IG51bGwpIHtcbiAgICAvLyBUaGUgcXVldWUgaXMgZW1wdHksIHNvIGFkZCB0aGUgYWN0aW9uIGFuZCBzdGFydCBpdCBpbW1lZGlhdGVseVxuICAgIC8vIE1hcmsgdGhpcyBhY3Rpb24gYXMgdGhlIGxhc3QgaW4gdGhlIHF1ZXVlXG4gICAgYWN0aW9uUXVldWUubGFzdCA9IG5ld0FjdGlvblxuXG4gICAgcnVuQWN0aW9uKHtcbiAgICAgIGFjdGlvblF1ZXVlLFxuICAgICAgYWN0aW9uOiBuZXdBY3Rpb24sXG4gICAgICBzZXRTdGF0ZSxcbiAgICB9KVxuICB9IGVsc2UgaWYgKFxuICAgIHBheWxvYWQudHlwZSA9PT0gQUNUSU9OX05BVklHQVRFIHx8XG4gICAgcGF5bG9hZC50eXBlID09PSBBQ1RJT05fUkVTVE9SRVxuICApIHtcbiAgICAvLyBOYXZpZ2F0aW9ucyAoaW5jbHVkaW5nIGJhY2svZm9yd2FyZCkgdGFrZSBwcmlvcml0eSBvdmVyIGFueSBwZW5kaW5nIGFjdGlvbnMuXG4gICAgLy8gTWFyayB0aGUgcGVuZGluZyBhY3Rpb24gYXMgZGlzY2FyZGVkIChzbyB0aGUgc3RhdGUgaXMgbmV2ZXIgYXBwbGllZCkgYW5kIHN0YXJ0IHRoZSBuYXZpZ2F0aW9uIGFjdGlvbiBpbW1lZGlhdGVseS5cbiAgICBhY3Rpb25RdWV1ZS5wZW5kaW5nLmRpc2NhcmRlZCA9IHRydWVcblxuICAgIC8vIFRoZSByZXN0IG9mIHRoZSBjdXJyZW50IHF1ZXVlIHNob3VsZCBzdGlsbCBleGVjdXRlIGFmdGVyIHRoaXMgbmF2aWdhdGlvbi5cbiAgICAvLyAoTm90ZSB0aGF0IGl0IGNhbid0IGNvbnRhaW4gYW55IGVhcmxpZXIgbmF2aWdhdGlvbnMsIGJlY2F1c2Ugd2UgYWx3YXlzIHB1dCB0aG9zZSBpbnRvIGBhY3Rpb25RdWV1ZS5wZW5kaW5nYCBieSBjYWxsaW5nIGBydW5BY3Rpb25gKVxuICAgIG5ld0FjdGlvbi5uZXh0ID0gYWN0aW9uUXVldWUucGVuZGluZy5uZXh0XG5cbiAgICAvLyBpZiB0aGUgcGVuZGluZyBhY3Rpb24gd2FzIGEgc2VydmVyIGFjdGlvbiwgbWFyayB0aGUgcXVldWUgYXMgbmVlZGluZyBhIHJlZnJlc2ggb25jZSBldmVudHMgYXJlIHByb2Nlc3NlZFxuICAgIGlmIChhY3Rpb25RdWV1ZS5wZW5kaW5nLnBheWxvYWQudHlwZSA9PT0gQUNUSU9OX1NFUlZFUl9BQ1RJT04pIHtcbiAgICAgIGFjdGlvblF1ZXVlLm5lZWRzUmVmcmVzaCA9IHRydWVcbiAgICB9XG5cbiAgICBydW5BY3Rpb24oe1xuICAgICAgYWN0aW9uUXVldWUsXG4gICAgICBhY3Rpb246IG5ld0FjdGlvbixcbiAgICAgIHNldFN0YXRlLFxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlIHF1ZXVlIGlzIG5vdCBlbXB0eSwgc28gYWRkIHRoZSBhY3Rpb24gdG8gdGhlIGVuZCBvZiB0aGUgcXVldWVcbiAgICAvLyBJdCB3aWxsIGJlIHN0YXJ0ZWQgYnkgcnVuUmVtYWluaW5nQWN0aW9ucyBhZnRlciB0aGUgcHJldmlvdXMgYWN0aW9uIGZpbmlzaGVzXG4gICAgaWYgKGFjdGlvblF1ZXVlLmxhc3QgIT09IG51bGwpIHtcbiAgICAgIGFjdGlvblF1ZXVlLmxhc3QubmV4dCA9IG5ld0FjdGlvblxuICAgIH1cbiAgICBhY3Rpb25RdWV1ZS5sYXN0ID0gbmV3QWN0aW9uXG4gIH1cbn1cblxubGV0IGdsb2JhbEFjdGlvblF1ZXVlOiBBcHBSb3V0ZXJBY3Rpb25RdWV1ZSB8IG51bGwgPSBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdXRhYmxlQWN0aW9uUXVldWUoXG4gIGluaXRpYWxTdGF0ZTogQXBwUm91dGVyU3RhdGUsXG4gIGluc3RydW1lbnRhdGlvbkhvb2tzOiBDbGllbnRJbnN0cnVtZW50YXRpb25Ib29rcyB8IG51bGxcbik6IEFwcFJvdXRlckFjdGlvblF1ZXVlIHtcbiAgY29uc3QgYWN0aW9uUXVldWU6IEFwcFJvdXRlckFjdGlvblF1ZXVlID0ge1xuICAgIHN0YXRlOiBpbml0aWFsU3RhdGUsXG4gICAgZGlzcGF0Y2g6IChwYXlsb2FkOiBSZWR1Y2VyQWN0aW9ucywgc2V0U3RhdGU6IERpc3BhdGNoU3RhdGVQcm9taXNlKSA9PlxuICAgICAgZGlzcGF0Y2hBY3Rpb24oYWN0aW9uUXVldWUsIHBheWxvYWQsIHNldFN0YXRlKSxcbiAgICBhY3Rpb246IGFzeW5jIChzdGF0ZTogQXBwUm91dGVyU3RhdGUsIGFjdGlvbjogUmVkdWNlckFjdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHJlZHVjZXIoc3RhdGUsIGFjdGlvbilcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9LFxuICAgIHBlbmRpbmc6IG51bGwsXG4gICAgbGFzdDogbnVsbCxcbiAgICBvblJvdXRlclRyYW5zaXRpb25TdGFydDpcbiAgICAgIGluc3RydW1lbnRhdGlvbkhvb2tzICE9PSBudWxsICYmXG4gICAgICB0eXBlb2YgaW5zdHJ1bWVudGF0aW9uSG9va3Mub25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyAvLyBUaGlzIHByb2ZpbGluZyBob29rIHdpbGwgYmUgY2FsbGVkIGF0IHRoZSBzdGFydCBvZiBldmVyeSBuYXZpZ2F0aW9uLlxuICAgICAgICAgIGluc3RydW1lbnRhdGlvbkhvb2tzLm9uUm91dGVyVHJhbnNpdGlvblN0YXJ0XG4gICAgICAgIDogbnVsbCxcbiAgfVxuXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIC8vIFRoZSBhY3Rpb24gcXVldWUgaXMgbGF6aWx5IGNyZWF0ZWQgb24gaHlkcmF0aW9uLCBidXQgYWZ0ZXIgdGhhdCBwb2ludFxuICAgIC8vIGl0IGRvZXNuJ3QgY2hhbmdlLiBTbyB3ZSBjYW4gc3RvcmUgaXQgaW4gYSBnbG9iYWwgcmF0aGVyIHRoYW4gcGFzc1xuICAgIC8vIGl0IGFyb3VuZCBldmVyeXdoZXJlIHZpYSBwcm9wcy9jb250ZXh0LlxuICAgIGlmIChnbG9iYWxBY3Rpb25RdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSW50ZXJuYWwgTmV4dC5qcyBFcnJvcjogY3JlYXRlTXV0YWJsZUFjdGlvblF1ZXVlIHdhcyBjYWxsZWQgbW9yZSAnICtcbiAgICAgICAgICAndGhhbiBvbmNlJ1xuICAgICAgKVxuICAgIH1cbiAgICBnbG9iYWxBY3Rpb25RdWV1ZSA9IGFjdGlvblF1ZXVlXG4gIH1cblxuICByZXR1cm4gYWN0aW9uUXVldWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRBcHBSb3V0ZXJTdGF0ZSgpOiBBcHBSb3V0ZXJTdGF0ZSB8IG51bGwge1xuICByZXR1cm4gZ2xvYmFsQWN0aW9uUXVldWUgIT09IG51bGwgPyBnbG9iYWxBY3Rpb25RdWV1ZS5zdGF0ZSA6IG51bGxcbn1cblxuZnVuY3Rpb24gZ2V0QXBwUm91dGVyQWN0aW9uUXVldWUoKTogQXBwUm91dGVyQWN0aW9uUXVldWUge1xuICBpZiAoZ2xvYmFsQWN0aW9uUXVldWUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnSW50ZXJuYWwgTmV4dC5qcyBlcnJvcjogUm91dGVyIGFjdGlvbiBkaXNwYXRjaGVkIGJlZm9yZSBpbml0aWFsaXphdGlvbi4nXG4gICAgKVxuICB9XG4gIHJldHVybiBnbG9iYWxBY3Rpb25RdWV1ZVxufVxuXG5mdW5jdGlvbiBnZXRQcm9maWxpbmdIb29rRm9yT25OYXZpZ2F0aW9uU3RhcnQoKSB7XG4gIGlmIChnbG9iYWxBY3Rpb25RdWV1ZSAhPT0gbnVsbCkge1xuICAgIHJldHVybiBnbG9iYWxBY3Rpb25RdWV1ZS5vblJvdXRlclRyYW5zaXRpb25TdGFydFxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwYXRjaE5hdmlnYXRlQWN0aW9uKFxuICBocmVmOiBzdHJpbmcsXG4gIG5hdmlnYXRlVHlwZTogTmF2aWdhdGVBY3Rpb25bJ25hdmlnYXRlVHlwZSddLFxuICBzaG91bGRTY3JvbGw6IGJvb2xlYW4sXG4gIGxpbmtJbnN0YW5jZVJlZjogTGlua0luc3RhbmNlIHwgbnVsbFxuKTogdm9pZCB7XG4gIC8vIFRPRE86IFRoaXMgc3R1ZmYgY291bGQganVzdCBnbyBpbnRvIHRoZSByZWR1Y2VyLiBMZWF2aW5nIGFzLWlzIGZvciBub3dcbiAgLy8gc2luY2Ugd2UncmUgYWJvdXQgdG8gcmV3cml0ZSBhbGwgdGhlIHJvdXRlciByZWR1Y2VyIHN0dWZmIGFueXdheS5cbiAgY29uc3QgdXJsID0gbmV3IFVSTChhZGRCYXNlUGF0aChocmVmKSwgbG9jYXRpb24uaHJlZilcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9BUFBfTkFWX0ZBSUxfSEFORExJTkcpIHtcbiAgICB3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwgPSB1cmxcbiAgfVxuXG4gIHNldExpbmtGb3JDdXJyZW50TmF2aWdhdGlvbihsaW5rSW5zdGFuY2VSZWYpXG5cbiAgY29uc3Qgb25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQgPSBnZXRQcm9maWxpbmdIb29rRm9yT25OYXZpZ2F0aW9uU3RhcnQoKVxuICBpZiAob25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQgIT09IG51bGwpIHtcbiAgICBvblJvdXRlclRyYW5zaXRpb25TdGFydChocmVmLCBuYXZpZ2F0ZVR5cGUpXG4gIH1cblxuICBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbih7XG4gICAgdHlwZTogQUNUSU9OX05BVklHQVRFLFxuICAgIHVybCxcbiAgICBpc0V4dGVybmFsVXJsOiBpc0V4dGVybmFsVVJMKHVybCksXG4gICAgbG9jYXRpb25TZWFyY2g6IGxvY2F0aW9uLnNlYXJjaCxcbiAgICBzaG91bGRTY3JvbGwsXG4gICAgbmF2aWdhdGVUeXBlLFxuICAgIGFsbG93QWxpYXNpbmc6IHRydWUsXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwYXRjaFRyYXZlcnNlQWN0aW9uKFxuICBocmVmOiBzdHJpbmcsXG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlIHwgdW5kZWZpbmVkXG4pIHtcbiAgY29uc3Qgb25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQgPSBnZXRQcm9maWxpbmdIb29rRm9yT25OYXZpZ2F0aW9uU3RhcnQoKVxuICBpZiAob25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQgIT09IG51bGwpIHtcbiAgICBvblJvdXRlclRyYW5zaXRpb25TdGFydChocmVmLCAndHJhdmVyc2UnKVxuICB9XG4gIGRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKHtcbiAgICB0eXBlOiBBQ1RJT05fUkVTVE9SRSxcbiAgICB1cmw6IG5ldyBVUkwoaHJlZiksXG4gICAgdHJlZSxcbiAgfSlcbn1cblxuLyoqXG4gKiBUaGUgYXBwIHJvdXRlciB0aGF0IGlzIGV4cG9zZWQgdGhyb3VnaCBgdXNlUm91dGVyYC4gVGhlc2UgYXJlIHB1YmxpYyBBUElcbiAqIG1ldGhvZHMuIEludGVybmFsIE5leHQuanMgY29kZSBzaG91bGQgY2FsbCB0aGUgbG93ZXIgbGV2ZWwgbWV0aG9kcyBkaXJlY3RseVxuICogKGFsdGhvdWdoIHRoZXJlJ3MgbG90cyBvZiBleGlzdGluZyBjb2RlIHRoYXQgZG9lc24ndCBkbyB0aGF0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IHB1YmxpY0FwcFJvdXRlckluc3RhbmNlOiBBcHBSb3V0ZXJJbnN0YW5jZSA9IHtcbiAgYmFjazogKCkgPT4gd2luZG93Lmhpc3RvcnkuYmFjaygpLFxuICBmb3J3YXJkOiAoKSA9PiB3aW5kb3cuaGlzdG9yeS5mb3J3YXJkKCksXG4gIHByZWZldGNoOiBwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEVcbiAgICA/IC8vIFVubGlrZSB0aGUgb2xkIGltcGxlbWVudGF0aW9uLCB0aGUgU2VnbWVudCBDYWNoZSBkb2Vzbid0IHN0b3JlIGl0c1xuICAgICAgLy8gZGF0YSBpbiB0aGUgcm91dGVyIHJlZHVjZXIgc3RhdGU7IGl0IHdyaXRlcyBpbnRvIGEgZ2xvYmFsIG11dGFibGVcbiAgICAgIC8vIGNhY2hlLiBTbyB3ZSBkb24ndCBuZWVkIHRvIGRpc3BhdGNoIGFuIGFjdGlvbi5cbiAgICAgIChocmVmOiBzdHJpbmcsIG9wdGlvbnM/OiBQcmVmZXRjaE9wdGlvbnMpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9uUXVldWUgPSBnZXRBcHBSb3V0ZXJBY3Rpb25RdWV1ZSgpXG4gICAgICAgIGNvbnN0IHByZWZldGNoS2luZCA9IG9wdGlvbnM/LmtpbmQgPz8gUHJlZmV0Y2hLaW5kLkFVVE9cblxuICAgICAgICAvLyBXZSBkb24ndCBjdXJyZW50bHkgb2ZmZXIgYSB3YXkgdG8gaXNzdWUgYSBydW50aW1lIHByZWZldGNoIHZpYSBgcm91dGVyLnByZWZldGNoKClgLlxuICAgICAgICAvLyBUaGlzIHdpbGwgYmUgcG9zc2libGUgd2hlbiB3ZSB1cGRhdGUgaXRzIEFQSSB0byBub3QgdGFrZSBhIFByZWZldGNoS2luZC5cbiAgICAgICAgbGV0IGZldGNoU3RyYXRlZ3k6IFByZWZldGNoVGFza0ZldGNoU3RyYXRlZ3lcbiAgICAgICAgc3dpdGNoIChwcmVmZXRjaEtpbmQpIHtcbiAgICAgICAgICBjYXNlIFByZWZldGNoS2luZC5BVVRPOiB7XG4gICAgICAgICAgICAvLyBXZSBkZWZhdWx0IHRvIFBQUi4gV2UnbGwgZGlzY292ZXIgd2hldGhlciBvciBub3QgdGhlIHJvdXRlIHN1cHBvcnRzIGl0IHdpdGggdGhlIGluaXRpYWwgcHJlZmV0Y2guXG4gICAgICAgICAgICBmZXRjaFN0cmF0ZWd5ID0gRmV0Y2hTdHJhdGVneS5QUFJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgUHJlZmV0Y2hLaW5kLkZVTEw6IHtcbiAgICAgICAgICAgIGZldGNoU3RyYXRlZ3kgPSBGZXRjaFN0cmF0ZWd5LkZ1bGxcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgUHJlZmV0Y2hLaW5kLlRFTVBPUkFSWToge1xuICAgICAgICAgICAgLy8gVGhpcyBjb25jZXB0IGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHNlZ21lbnQgY2FjaGUgaW1wbGVtZW50YXRpb24uXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgcHJlZmV0Y2hLaW5kIHNhdGlzZmllcyBuZXZlclxuICAgICAgICAgICAgLy8gRGVzcGl0ZSB0eXBlc2NyaXB0IHRoaW5raW5nIHRoYXQgdGhpcyBjYW4ndCBoYXBwZW4sXG4gICAgICAgICAgICAvLyB3ZSBtaWdodCBnZXQgYW4gdW5leHBlY3RlZCB2YWx1ZSBmcm9tIHVzZXIgY29kZS5cbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGtub3cgd2hhdCB0aGV5IHdhbnQsIGJ1dCB3ZSBrbm93IHRoZXkgd2FudCBhIHByZWZldGNoLFxuICAgICAgICAgICAgLy8gc28gdXNlIHRoZSBkZWZhdWx0LlxuICAgICAgICAgICAgZmV0Y2hTdHJhdGVneSA9IEZldGNoU3RyYXRlZ3kuUFBSXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcHJlZmV0Y2hXaXRoU2VnbWVudENhY2hlKFxuICAgICAgICAgIGhyZWYsXG4gICAgICAgICAgYWN0aW9uUXVldWUuc3RhdGUubmV4dFVybCxcbiAgICAgICAgICBhY3Rpb25RdWV1ZS5zdGF0ZS50cmVlLFxuICAgICAgICAgIGZldGNoU3RyYXRlZ3ksXG4gICAgICAgICAgb3B0aW9ucz8ub25JbnZhbGlkYXRlID8/IG51bGxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIDogKGhyZWY6IHN0cmluZywgb3B0aW9ucz86IFByZWZldGNoT3B0aW9ucykgPT4ge1xuICAgICAgICAvLyBVc2UgdGhlIG9sZCBwcmVmZXRjaCBpbXBsZW1lbnRhdGlvbi5cbiAgICAgICAgY29uc3QgYWN0aW9uUXVldWUgPSBnZXRBcHBSb3V0ZXJBY3Rpb25RdWV1ZSgpXG4gICAgICAgIGNvbnN0IHVybCA9IGNyZWF0ZVByZWZldGNoVVJMKGhyZWYpXG4gICAgICAgIGlmICh1cmwgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGUgcHJlZmV0Y2ggcmVkdWNlciBkb2Vzbid0IGFjdHVhbGx5IHVwZGF0ZSBhbnkgc3RhdGUgb3JcbiAgICAgICAgICAvLyB0cmlnZ2VyIGEgcmVyZW5kZXIuIEl0IGp1c3Qgd3JpdGVzIHRvIGEgbXV0YWJsZSBjYWNoZS4gU28gd2VcbiAgICAgICAgICAvLyBzaG91bGRuJ3QgYm90aGVyIGNhbGxpbmcgc2V0U3RhdGUvZGlzcGF0Y2g7IHdlIGNhbiBqdXN0IHJlLXJ1blxuICAgICAgICAgIC8vIHRoZSByZWR1Y2VyIGRpcmVjdGx5IHVzaW5nIHRoZSBjdXJyZW50IHN0YXRlLlxuICAgICAgICAgIC8vIFRPRE86IFJlZmFjdG9yIHRoaXMgYXdheSBmcm9tIGEgXCJyZWR1Y2VyXCIgc28gaXQnc1xuICAgICAgICAgIC8vIGxlc3MgY29uZnVzaW5nLlxuICAgICAgICAgIHByZWZldGNoUmVkdWNlcihhY3Rpb25RdWV1ZS5zdGF0ZSwge1xuICAgICAgICAgICAgdHlwZTogQUNUSU9OX1BSRUZFVENILFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAga2luZDogb3B0aW9ucz8ua2luZCA/PyBQcmVmZXRjaEtpbmQuRlVMTCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICByZXBsYWNlOiAoaHJlZjogc3RyaW5nLCBvcHRpb25zPzogTmF2aWdhdGVPcHRpb25zKSA9PiB7XG4gICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgIGRpc3BhdGNoTmF2aWdhdGVBY3Rpb24oaHJlZiwgJ3JlcGxhY2UnLCBvcHRpb25zPy5zY3JvbGwgPz8gdHJ1ZSwgbnVsbClcbiAgICB9KVxuICB9LFxuICBwdXNoOiAoaHJlZjogc3RyaW5nLCBvcHRpb25zPzogTmF2aWdhdGVPcHRpb25zKSA9PiB7XG4gICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgIGRpc3BhdGNoTmF2aWdhdGVBY3Rpb24oaHJlZiwgJ3B1c2gnLCBvcHRpb25zPy5zY3JvbGwgPz8gdHJ1ZSwgbnVsbClcbiAgICB9KVxuICB9LFxuICByZWZyZXNoOiAoKSA9PiB7XG4gICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgIGRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKHtcbiAgICAgICAgdHlwZTogQUNUSU9OX1JFRlJFU0gsXG4gICAgICAgIG9yaWdpbjogd2luZG93LmxvY2F0aW9uLm9yaWdpbixcbiAgICAgIH0pXG4gICAgfSlcbiAgfSxcbiAgaG1yUmVmcmVzaDogKCkgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnaG1yUmVmcmVzaCBjYW4gb25seSBiZSB1c2VkIGluIGRldmVsb3BtZW50IG1vZGUuIFBsZWFzZSB1c2UgcmVmcmVzaCBpbnN0ZWFkLidcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24oe1xuICAgICAgICAgIHR5cGU6IEFDVElPTl9ITVJfUkVGUkVTSCxcbiAgICAgICAgICBvcmlnaW46IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cbiAgfSxcbn1cblxuLy8gRXhpc3RzIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuIERvbid0IHVzZSBpbiBhcHBsaWNhdGlvbiBjb2RlLlxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5uZXh0KSB7XG4gIHdpbmRvdy5uZXh0LnJvdXRlciA9IHB1YmxpY0FwcFJvdXRlckluc3RhbmNlXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlTXV0YWJsZUFjdGlvblF1ZXVlIiwiZGlzcGF0Y2hOYXZpZ2F0ZUFjdGlvbiIsImRpc3BhdGNoVHJhdmVyc2VBY3Rpb24iLCJnZXRDdXJyZW50QXBwUm91dGVyU3RhdGUiLCJwdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZSIsInJ1blJlbWFpbmluZ0FjdGlvbnMiLCJhY3Rpb25RdWV1ZSIsInNldFN0YXRlIiwicGVuZGluZyIsIm5leHQiLCJydW5BY3Rpb24iLCJhY3Rpb24iLCJuZWVkc1JlZnJlc2giLCJkaXNwYXRjaCIsInR5cGUiLCJBQ1RJT05fUkVGUkVTSCIsIm9yaWdpbiIsIndpbmRvdyIsImxvY2F0aW9uIiwicHJldlN0YXRlIiwic3RhdGUiLCJwYXlsb2FkIiwiYWN0aW9uUmVzdWx0IiwiaGFuZGxlUmVzdWx0IiwibmV4dFN0YXRlIiwiZGlzY2FyZGVkIiwicmVzb2x2ZSIsImlzVGhlbmFibGUiLCJ0aGVuIiwiZXJyIiwicmVqZWN0IiwiZGlzcGF0Y2hBY3Rpb24iLCJyZXNvbHZlcnMiLCJBQ1RJT05fUkVTVE9SRSIsImRlZmVycmVkUHJvbWlzZSIsIlByb21pc2UiLCJzdGFydFRyYW5zaXRpb24iLCJuZXdBY3Rpb24iLCJsYXN0IiwiQUNUSU9OX05BVklHQVRFIiwiQUNUSU9OX1NFUlZFUl9BQ1RJT04iLCJnbG9iYWxBY3Rpb25RdWV1ZSIsImluaXRpYWxTdGF0ZSIsImluc3RydW1lbnRhdGlvbkhvb2tzIiwicmVzdWx0IiwicmVkdWNlciIsIm9uUm91dGVyVHJhbnNpdGlvblN0YXJ0IiwiRXJyb3IiLCJnZXRBcHBSb3V0ZXJBY3Rpb25RdWV1ZSIsImdldFByb2ZpbGluZ0hvb2tGb3JPbk5hdmlnYXRpb25TdGFydCIsImhyZWYiLCJuYXZpZ2F0ZVR5cGUiLCJzaG91bGRTY3JvbGwiLCJsaW5rSW5zdGFuY2VSZWYiLCJ1cmwiLCJVUkwiLCJhZGRCYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQVBQX05BVl9GQUlMX0hBTkRMSU5HIiwiX19wZW5kaW5nVXJsIiwic2V0TGlua0ZvckN1cnJlbnROYXZpZ2F0aW9uIiwiZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24iLCJpc0V4dGVybmFsVXJsIiwiaXNFeHRlcm5hbFVSTCIsImxvY2F0aW9uU2VhcmNoIiwic2VhcmNoIiwiYWxsb3dBbGlhc2luZyIsInRyZWUiLCJiYWNrIiwiaGlzdG9yeSIsImZvcndhcmQiLCJwcmVmZXRjaCIsIl9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRSIsIm9wdGlvbnMiLCJwcmVmZXRjaEtpbmQiLCJraW5kIiwiUHJlZmV0Y2hLaW5kIiwiQVVUTyIsImZldGNoU3RyYXRlZ3kiLCJGZXRjaFN0cmF0ZWd5IiwiUFBSIiwiRlVMTCIsIkZ1bGwiLCJURU1QT1JBUlkiLCJwcmVmZXRjaFdpdGhTZWdtZW50Q2FjaGUiLCJuZXh0VXJsIiwib25JbnZhbGlkYXRlIiwiY3JlYXRlUHJlZmV0Y2hVUkwiLCJwcmVmZXRjaFJlZHVjZXIiLCJBQ1RJT05fUFJFRkVUQ0giLCJyZXBsYWNlIiwic2Nyb2xsIiwicHVzaCIsInJlZnJlc2giLCJobXJSZWZyZXNoIiwiTk9ERV9FTlYiLCJBQ1RJT05fSE1SX1JFRlJFU0giLCJyb3V0ZXIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router-instance.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/app-router.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/app-router.js ***!
|
||
\****************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \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 createEmptyCacheNode: function() {\n return createEmptyCacheNode;\n },\n createPrefetchURL: function() {\n return createPrefetchURL;\n },\n default: function() {\n return AppRouter;\n },\n isExternalURL: function() {\n return isExternalURL;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _createhreffromurl = __webpack_require__(/*! ./router-reducer/create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\");\nconst _useactionqueue = __webpack_require__(/*! ./use-action-queue */ \"(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\");\nconst _isbot = __webpack_require__(/*! ../../shared/lib/router/utils/is-bot */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst _addbasepath = __webpack_require__(/*! ../add-base-path */ \"(ssr)/./node_modules/next/dist/client/add-base-path.js\");\nconst _approuterannouncer = __webpack_require__(/*! ./app-router-announcer */ \"(ssr)/./node_modules/next/dist/client/components/app-router-announcer.js\");\nconst _redirectboundary = __webpack_require__(/*! ./redirect-boundary */ \"(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js\");\nconst _findheadincache = __webpack_require__(/*! ./router-reducer/reducers/find-head-in-cache */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js\");\nconst _unresolvedthenable = __webpack_require__(/*! ./unresolved-thenable */ \"(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js\");\nconst _removebasepath = __webpack_require__(/*! ../remove-base-path */ \"(ssr)/./node_modules/next/dist/client/remove-base-path.js\");\nconst _hasbasepath = __webpack_require__(/*! ../has-base-path */ \"(ssr)/./node_modules/next/dist/client/has-base-path.js\");\nconst _computechangedpath = __webpack_require__(/*! ./router-reducer/compute-changed-path */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\");\nconst _navfailurehandler = __webpack_require__(/*! ./nav-failure-handler */ \"(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js\");\nconst _approuterinstance = __webpack_require__(/*! ./app-router-instance */ \"(ssr)/./node_modules/next/dist/client/components/app-router-instance.js\");\nconst _redirect = __webpack_require__(/*! ./redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nconst _links = __webpack_require__(/*! ./links */ \"(ssr)/./node_modules/next/dist/client/components/links.js\");\nconst _rooterrorboundary = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./errors/root-error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/errors/root-error-boundary.js\"));\nconst _globalerror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./builtin/global-error */ \"(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js\"));\nconst _boundarycomponents = __webpack_require__(/*! ../../lib/framework/boundary-components */ \"(ssr)/./node_modules/next/dist/lib/framework/boundary-components.js\");\nconst globalMutable = {};\nfunction isExternalURL(url) {\n return url.origin !== window.location.origin;\n}\nfunction createPrefetchURL(href) {\n // Don't prefetch for bots as they don't navigate.\n if ((0, _isbot.isBot)(window.navigator.userAgent)) {\n return null;\n }\n let url;\n try {\n url = new URL((0, _addbasepath.addBasePath)(href), window.location.href);\n } catch (_) {\n // TODO: Does this need to throw or can we just console.error instead? Does\n // anyone rely on this throwing? (Seems unlikely.)\n throw Object.defineProperty(new Error(\"Cannot prefetch '\" + href + \"' because it cannot be converted to a URL.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E234\",\n enumerable: false,\n configurable: true\n });\n }\n // Don't prefetch during development (improves compilation performance)\n if (true) {\n return null;\n }\n // External urls can't be prefetched in the same way.\n if (isExternalURL(url)) {\n return null;\n }\n return url;\n}\nfunction HistoryUpdater(param) {\n let { appRouterState } = param;\n (0, _react.useInsertionEffect)(()=>{\n if (false) {}\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, _createhreffromurl.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 }, [\n appRouterState\n ]);\n (0, _react.useEffect)(()=>{\n // The Next-Url and the base tree may affect the result of a prefetch\n // task. Re-prefetch all visible links with the updated values. In most\n // cases, this will not result in any new network requests, only if\n // the prefetch result actually varies on one of these inputs.\n if (false) {}\n }, [\n appRouterState.nextUrl,\n appRouterState.tree\n ]);\n return null;\n}\nfunction createEmptyCacheNode() {\n return {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\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 return (0, _react.useDeferredValue)(head, resolvedPrefetchRsc);\n}\n/**\n * The global router that wraps the application components.\n */ function Router(param) {\n let { actionQueue, assetPrefix, globalError } = param;\n const state = (0, _useactionqueue.useActionQueue)(actionQueue);\n const { canonicalUrl } = state;\n // Add memoized pathname/query for useSearchParams and usePathname.\n const { searchParams, pathname } = (0, _react.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, _hasbasepath.hasBasePath)(url.pathname) ? (0, _removebasepath.removeBasePath)(url.pathname) : url.pathname\n };\n }, [\n canonicalUrl\n ]);\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { cache, prefetchCache, tree } = state;\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.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: _approuterinstance.publicAppRouterInstance,\n cache,\n prefetchCache,\n tree\n };\n }, [\n cache,\n prefetchCache,\n tree\n ]);\n }\n (0, _react.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 // Clear the pendingMpaPath value so that a subsequent MPA navigation to the same URL can be triggered.\n // This is necessary because if the browser restored from bfcache, the pendingMpaPath would still be set to the value\n // of the last MPA navigation.\n globalMutable.pendingMpaPath = undefined;\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.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 (0, _react.useEffect)(()=>{\n // Ensure that any redirect errors that bubble up outside of the RedirectBoundary\n // are caught and handled by the router.\n function handleUnhandledRedirect(event) {\n const error = 'reason' in event ? event.reason : event.error;\n if ((0, _redirecterror.isRedirectError)(error)) {\n event.preventDefault();\n const url = (0, _redirect.getURLFromRedirectError)(error);\n const redirectType = (0, _redirect.getRedirectTypeFromError)(error);\n // TODO: This should access the router methods directly, rather than\n // go through the public interface.\n if (redirectType === _redirecterror.RedirectType.push) {\n _approuterinstance.publicAppRouterInstance.push(url, {});\n } else {\n _approuterinstance.publicAppRouterInstance.replace(url, {});\n }\n }\n }\n window.addEventListener('error', handleUnhandledRedirect);\n window.addEventListener('unhandledrejection', handleUnhandledRedirect);\n return ()=>{\n window.removeEventListener('error', handleUnhandledRedirect);\n window.removeEventListener('unhandledrejection', handleUnhandledRedirect);\n };\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 } = state;\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 location = window.location;\n if (pushRef.pendingPush) {\n location.assign(canonicalUrl);\n } else {\n location.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 // NOTE: This is intentionally using `throw` instead of `use` because we're\n // inside an externally mutable condition (pushRef.mpaNavigation), which\n // violates the rules of hooks.\n throw _unresolvedthenable.unresolvedThenable;\n }\n (0, _react.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 var _window_history_state;\n const href = window.location.href;\n const tree = (_window_history_state = window.history.state) == null ? void 0 : _window_history_state.__PRIVATE_NEXTJS_INTERNALS_TREE;\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_RESTORE,\n url: new URL(url != null ? url : href, href),\n 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 = (event)=>{\n if (!event.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 (!event.state.__NA) {\n window.location.reload();\n return;\n }\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.startTransition)(()=>{\n (0, _approuterinstance.dispatchTraverseAction)(window.location.href, event.state.__PRIVATE_NEXTJS_INTERNALS_TREE);\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 const { cache, tree, nextUrl, focusAndScrollRef } = state;\n const matchingHead = (0, _react.useMemo)(()=>{\n return (0, _findheadincache.findHeadInCache)(cache, tree[1]);\n }, [\n cache,\n tree\n ]);\n // Add memoized pathParams for useParams.\n const pathParams = (0, _react.useMemo)(()=>{\n return (0, _computechangedpath.getSelectedParams)(tree);\n }, [\n tree\n ]);\n const layoutRouterContext = (0, _react.useMemo)(()=>{\n return {\n parentTree: tree,\n parentCacheNode: cache,\n parentSegmentPath: null,\n // Root node always has `url`\n // Provided in AppTreeContext to ensure it can be overwritten in layout-router\n url: canonicalUrl\n };\n }, [\n tree,\n cache,\n canonicalUrl\n ]);\n const globalLayoutRouterContext = (0, _react.useMemo)(()=>{\n return {\n tree,\n focusAndScrollRef,\n nextUrl\n };\n }, [\n tree,\n focusAndScrollRef,\n nextUrl\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, headKeyWithoutSearchParams] = matchingHead;\n head = /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {\n headCacheNode: headCacheNode\n }, true ? headKeyWithoutSearchParams : 0);\n } else {\n head = null;\n }\n let content = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_redirectboundary.RedirectBoundary, {\n children: [\n head,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_boundarycomponents.RootLayoutBoundary, {\n children: cache.rsc\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_approuterannouncer.AppRouterAnnouncer, {\n tree: tree\n })\n ]\n });\n if (true) {\n // In development, we apply few error boundaries and hot-reloader:\n // - DevRootHTTPAccessFallbackBoundary: avoid using navigation API like notFound() in root layout\n // - HotReloader:\n // - hot-reload the app when the code changes\n // - render dev overlay\n // - catch runtime errors and display global-error when necessary\n if (false) {}\n const HotReloader = (__webpack_require__(/*! ../dev/hot-reloader/app/hot-reloader-app */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js\")[\"default\"]);\n content = /*#__PURE__*/ (0, _jsxruntime.jsx)(HotReloader, {\n assetPrefix: assetPrefix,\n globalError: globalError,\n children: content\n });\n } else {}\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(HistoryUpdater, {\n appRouterState: state\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(RuntimeStyles, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathParamsContext.Provider, {\n value: pathParams,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathnameContext.Provider, {\n value: pathname,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.SearchParamsContext.Provider, {\n value: searchParams,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.GlobalLayoutRouterContext.Provider, {\n value: globalLayoutRouterContext,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.AppRouterContext.Provider, {\n value: _approuterinstance.publicAppRouterInstance,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {\n value: layoutRouterContext,\n children: content\n })\n })\n })\n })\n })\n })\n ]\n });\n}\nfunction AppRouter(param) {\n let { actionQueue, globalErrorState, assetPrefix } = param;\n (0, _navfailurehandler.useNavFailureHandler)();\n const router = /*#__PURE__*/ (0, _jsxruntime.jsx)(Router, {\n actionQueue: actionQueue,\n assetPrefix: assetPrefix,\n globalError: globalErrorState\n });\n // At the very top level, use the default GlobalError component as the final fallback.\n // When the app router itself fails, which means the framework itself fails, we show the default error.\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_rooterrorboundary.default, {\n errorComponent: _globalerror.default,\n children: router\n });\n}\nconst runtimeStyles = new Set();\nlet runtimeStyleChanged = new Set();\nglobalThis._N_E_STYLE_LOAD = function(href) {\n let len = runtimeStyles.size;\n runtimeStyles.add(href);\n if (runtimeStyles.size !== len) {\n runtimeStyleChanged.forEach((cb)=>cb());\n }\n // TODO figure out how to get a promise here\n // But maybe it's not necessary as react would block rendering until it's loaded\n return Promise.resolve();\n};\nfunction RuntimeStyles() {\n const [, forceUpdate] = _react.default.useState(0);\n const renderedStylesSize = runtimeStyles.size;\n (0, _react.useEffect)(()=>{\n const changed = ()=>forceUpdate((c)=>c + 1);\n runtimeStyleChanged.add(changed);\n if (renderedStylesSize !== runtimeStyles.size) {\n changed();\n }\n return ()=>{\n runtimeStyleChanged.delete(changed);\n };\n }, [\n renderedStylesSize,\n forceUpdate\n ]);\n const dplId = false ? 0 : '';\n return [\n ...runtimeStyles\n ].map((href, i)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"stylesheet\",\n href: \"\" + href + dplId,\n // @ts-ignore\n precedence: \"next\"\n }, i));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBNklnQkEsb0JBQW9CO2VBQXBCQTs7SUE5RUFDLGlCQUFpQjtlQUFqQkE7O0lBd2ZoQixPQTBCQztlQTFCdUJDOztJQW5nQlJDLGFBQWE7ZUFBYkE7Ozs7Ozs2RUE1Q1Q7MkRBS0E7Z0RBRXdCOytDQUVHOzZEQUszQjs0Q0FDaUQ7bUNBQ2xDO3lDQUNNO2dEQUNPOzhDQUNGOzZDQUNEO2dEQUNHOzRDQUNKO3lDQUNIO2dEQUNNOytDQUVHOytDQU05QjtzQ0FDMkQ7MkNBQ3BCO21DQUNiO3dGQUNIO2tGQUNDO2dEQUNJO0FBRW5DLE1BQU1DLGdCQUVGLENBQUM7QUFFRSxTQUFTRCxjQUFjRSxHQUFRO0lBQ3BDLE9BQU9BLElBQUlDLE1BQU0sS0FBS0MsT0FBT0MsUUFBUSxDQUFDRixNQUFNO0FBQzlDO0FBU08sU0FBU0wsa0JBQWtCUSxJQUFZO0lBQzVDLGtEQUFrRDtJQUNsRCxJQUFJQyxDQUFBQSxHQUFBQSxPQUFBQSxLQUFBQSxFQUFNSCxPQUFPSSxTQUFTLENBQUNDLFNBQVMsR0FBRztRQUNyQyxPQUFPO0lBQ1Q7SUFFQSxJQUFJUDtJQUNKLElBQUk7UUFDRkEsTUFBTSxJQUFJUSxJQUFJQyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZTCxPQUFPRixPQUFPQyxRQUFRLENBQUNDLElBQUk7SUFDdkQsRUFBRSxPQUFPTSxHQUFHO1FBQ1YsMkVBQTJFO1FBQzNFLGtEQUFrRDtRQUNsRCxNQUFNLHFCQUVMLENBRkssSUFBSUMsTUFDUCxzQkFBbUJQLE9BQUssK0NBRHJCO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRjtJQUVBLHVFQUF1RTtJQUN2RSxJQUFJUSxJQUFvQixFQUFvQjtRQUMxQyxPQUFPO0lBQ1Q7SUFFQSxxREFBcUQ7SUFDckQsSUFBSWQsY0FBY0UsTUFBTTtRQUN0QixPQUFPO0lB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RSxnQkFBZ0IsSUFBSUM7QUFDMUIsSUFBSUMsc0JBQXNCLElBQUlEO0FBRTlCRSxXQUFXQyxlQUFlLEdBQUcsU0FBVTFJLElBQVk7SUFDakQsSUFBSTJJLE1BQU1MLGNBQWNNLElBQUk7SUFDNUJOLGNBQWNPLEdBQUcsQ0FBQzdJO0lBQ2xCLElBQUlzSSxjQUFjTSxJQUFJLEtBQUtELEtBQUs7UUFDOUJILG9CQUFvQk0sT0FBTyxDQUFDLENBQUNDLEtBQU9BO0lBQ3RDO0lBQ0EsNENBQTRDO0lBQzVDLGdGQUFnRjtJQUNoRixPQUFPQyxRQUFRQyxPQUFPO0FBQ3hCO0FBRUEsU0FBU3ZCO0lBQ1AsTUFBTSxHQUFHd0IsWUFBWSxHQUFHQyxPQUFBQSxPQUFLLENBQUNDLFFBQVEsQ0FBQztJQUN2QyxNQUFNQyxxQkFBcUJmLGNBQWNNLElBQUk7SUFDN0M3RyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1IsTUFBTXVILFVBQVUsSUFBTUosWUFBWSxDQUFDSyxJQUFNQSxJQUFJO1FBQzdDZixvQkFBb0JLLEdBQUcsQ0FBQ1M7UUFDeEIsSUFBSUQsdUJBQXVCZixjQUFjTSxJQUFJLEVBQUU7WUFDN0NVO1FBQ0Y7UUFDQSxPQUFPO1lBQ0xkLG9CQUFvQmdCLE1BQU0sQ0FBQ0Y7UUFDN0I7SUFDRixHQUFHO1FBQUNEO1FBQW9CSDtLQUFZO0lBRXBDLE1BQU1PLFFBQVFqSixNQUE4QixHQUN2QyxDQUFxQyxHQUN0QztJQUNKLE9BQU87V0FBSThIO0tBQWMsQ0FBQ3FCLEdBQUcsQ0FBQyxDQUFDM0osTUFBTTRKLElBQUFBLFdBQUFBLEdBQ25DLHFCQUFDQyxRQUFBQTtZQUVDQyxLQUFJO1lBQ0o5SixNQUFPLEtBQUVBLE9BQU95SjtZQUNoQixhQUFhO1lBQ2JNLFlBQVc7V0FKTkg7QUFVWCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICBzdGFydFRyYW5zaXRpb24sXG4gIHVzZUluc2VydGlvbkVmZmVjdCxcbiAgdXNlRGVmZXJyZWRWYWx1ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBBcHBSb3V0ZXJDb250ZXh0LFxuICBMYXlvdXRSb3V0ZXJDb250ZXh0LFxuICBHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0LFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHsgQ2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBBQ1RJT05fUkVTVE9SRSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEFwcFJvdXRlclN0YXRlIH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IGNyZWF0ZUhyZWZGcm9tVXJsIH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci9jcmVhdGUtaHJlZi1mcm9tLXVybCdcbmltcG9ydCB7XG4gIFNlYXJjaFBhcmFtc0NvbnRleHQsXG4gIFBhdGhuYW1lQ29udGV4dCxcbiAgUGF0aFBhcmFtc0NvbnRleHQsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvaG9va3MtY2xpZW50LWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiwgdXNlQWN0aW9uUXVldWUgfSBmcm9tICcuL3VzZS1hY3Rpb24tcXVldWUnXG5pbXBvcnQgeyBpc0JvdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdCdcbmltcG9ydCB7IGFkZEJhc2VQYXRoIH0gZnJvbSAnLi4vYWRkLWJhc2UtcGF0aCdcbmltcG9ydCB7IEFwcFJvdXRlckFubm91bmNlciB9IGZyb20gJy4vYXBwLXJvdXRlci1hbm5vdW5jZXInXG5pbXBvcnQgeyBSZWRpcmVjdEJvdW5kYXJ5IH0gZnJvbSAnLi9yZWRpcmVjdC1ib3VuZGFyeSdcbmltcG9ydCB7IGZpbmRIZWFkSW5DYWNoZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZmluZC1oZWFkLWluLWNhY2hlJ1xuaW1wb3J0IHsgdW5yZXNvbHZlZFRoZW5hYmxlIH0gZnJvbSAnLi91bnJlc29sdmVkLXRoZW5hYmxlJ1xuaW1wb3J0IHsgcmVtb3ZlQmFzZVBhdGggfSBmcm9tICcuLi9yZW1vdmUtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tICcuLi9oYXMtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRQYXJhbXMgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL2NvbXB1dGUtY2hhbmdlZC1wYXRoJ1xuaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2RmFpbHVyZUhhbmRsZXIgfSBmcm9tICcuL25hdi1mYWlsdXJlLWhhbmRsZXInXG5pbXBvcnQge1xuICBkaXNwYXRjaFRyYXZlcnNlQWN0aW9uLFxuICBwdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZSxcbiAgdHlwZSBBcHBSb3V0ZXJBY3Rpb25RdWV1ZSxcbiAgdHlwZSBHbG9iYWxFcnJvclN0YXRlLFxufSBmcm9tICcuL2FwcC1yb3V0ZXItaW5zdGFuY2UnXG5pbXBvcnQgeyBnZXRSZWRpcmVjdFR5cGVGcm9tRXJyb3IsIGdldFVSTEZyb21SZWRpcmVjdEVycm9yIH0gZnJvbSAnLi9yZWRpcmVjdCdcbmltcG9ydCB7IGlzUmVkaXJlY3RFcnJvciwgUmVkaXJlY3RUeXBlIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcbmltcG9ydCB7IHBpbmdWaXNpYmxlTGlua3MgfSBmcm9tICcuL2xpbmtzJ1xuaW1wb3J0IFJvb3RFcnJvckJvdW5kYXJ5IGZyb20gJy4vZXJyb3JzL3Jvb3QtZXJyb3ItYm91bmRhcnknXG5pbXBvcnQgRGVmYXVsdEdsb2JhbEVycm9yIGZyb20gJy4vYnVpbHRpbi9nbG9iYWwtZXJyb3InXG5pbXBvcnQgeyBSb290TGF5b3V0Qm91bmRhcnkgfSBmcm9tICcuLi8uLi9saWIvZnJhbWV3b3JrL2JvdW5kYXJ5LWNvbXBvbmVudHMnXG5cbmNvbnN0IGdsb2JhbE11dGFibGU6IHtcbiAgcGVuZGluZ01wYVBhdGg/OiBzdHJpbmdcbn0gPSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFeHRlcm5hbFVSTCh1cmw6IFVSTCkge1xuICByZXR1cm4gdXJsLm9yaWdpbiAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpblxufVxuXG4vKipcbiAqIEdpdmVuIGEgbGluayBocmVmLCBjb25zdHJ1Y3RzIHRoZSBVUkwgdGhhdCBzaG91bGQgYmUgcHJlZmV0Y2hlZC4gUmV0dXJucyBudWxsXG4gKiBpbiBjYXNlcyB3aGVyZSBwcmVmZXRjaGluZyBzaG91bGQgYmUgZGlzYWJsZWQsIGxpa2UgZXh0ZXJuYWwgVVJMcywgb3JcbiAqIGR1cmluZyBkZXZlbG9wbWVudC5cbiAqIEBwYXJhbSBocmVmIFRoZSBocmVmIHBhc3NlZCB0byA8TGluaz4sIHJvdXRlci5wcmVmZXRjaCgpLCBvciBzaW1pbGFyXG4gKiBAcmV0dXJucyBBIFVSTCBvYmplY3QgdG8gcHJlZmV0Y2gsIG9yIG51bGwgaWYgcHJlZmV0Y2hpbmcgc2hvdWxkIGJlIGRpc2FibGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcmVmZXRjaFVSTChocmVmOiBzdHJpbmcpOiBVUkwgfCBudWxsIHtcbiAgLy8gRG9uJ3QgcHJlZmV0Y2ggZm9yIGJvdHMgYXMgdGhleSBkb24ndCBuYXZpZ2F0ZS5cbiAgaWYgKGlzQm90KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBsZXQgdXJsOiBVUkxcbiAgdHJ5IHtcbiAgICB1cmwgPSBuZXcgVVJMKGFkZEJhc2VQYXRoKGhyZWYpLCB3aW5kb3cubG9jYXRpb24uaHJlZilcbiAgfSBjYXRjaCAoXykge1xuICAgIC8vIFRPRE86IERvZXMgdGhpcyBuZWVkIHRvIHRocm93IG9yIGNhbiB3ZSBqdXN0IGNvbnNvbGUuZXJyb3IgaW5zdGVhZD8gRG9lc1xuICAgIC8vIGFueW9uZSByZWx5IG9uIHRoaXMgdGhyb3dpbmc/IChTZWVtcyB1bmxpa2VseS4pXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCBwcmVmZXRjaCAnJHtocmVmfScgYmVjYXVzZSBpdCBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgVVJMLmBcbiAgICApXG4gIH1cblxuICAvLyBEb24ndCBwcmVmZXRjaCBkdXJpbmcgZGV2ZWxvcG1lbnQgKGltcHJvdmVzIGNvbXBpbGF0aW9uIHBlcmZvcm1hbmNlKVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gRXh0ZXJuYWwgdXJscyBjYW4ndCBiZSBwcmVmZXRjaGVkIGluIHRoZSBzYW1lIHdheS5cbiAgaWYgKGlzRXh0ZXJuYWxVUkwodXJsKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gdXJsXG59XG5cbmZ1bmN0aW9uIEhpc3RvcnlVcGRhdGVyKHtcbiAgYXBwUm91dGVyU3RhdGUsXG59OiB7XG4gIGFwcFJvdXRlclN0YXRlOiBBcHBSb3V0ZXJTdGF0ZVxufSkge1xuICB1c2VJbnNlcnRpb25FZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQVBQX05BVl9GQUlMX0hBTkRMSU5HKSB7XG4gICAgICAvLyBjbGVhciBwZW5kaW5nIFVSTCBhcyBuYXZpZ2F0aW9uIGlzIG5vIGxvbmdlclxuICAgICAgLy8gaW4gZmxpZ2h0XG4gICAgICB3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCB7IHRyZWUsIHB1c2hSZWYsIGNhbm9uaWNhbFVybCB9ID0gYXBwUm91dGVyU3RhdGVcbiAgICBjb25zdCBoaXN0b3J5U3RhdGUgPSB7XG4gICAgICAuLi4ocHVzaFJlZi5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSA/IHdpbmRvdy5oaXN0b3J5LnN0YXRlIDoge30pLFxuICAgICAgLy8gSWRlbnRpZmllciBpcyBzaG9ydGVuZWQgaW50ZW50aW9uYWxseS5cbiAgICAgIC8vIF9fTkEgaXMgdXNlZCB0byBpZGVudGlmeSBpZiB0aGUgaGlzdG9yeSBlbnRyeSBjYW4gYmUgaGFuZGxlZCBieSB0aGUgYXBwLXJvdXRlci5cbiAgICAgIC8vIF9fTiBpcyB1c2VkIHRvIGlkZW50aWZ5IGlmIHRoZSBoaXN0b3J5IGVudHJ5IGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBvbGQgcm91dGVyLlxuICAgICAgX19OQTogdHJ1ZSxcbiAgICAgIF9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUU6IHRyZWUsXG4gICAgfVxuICAgIGlmIChcbiAgICAgIHB1c2hSZWYucGVuZGluZ1B1c2ggJiZcbiAgICAgIC8vIFNraXAgcHVzaGluZyBhbiBhZGRpdGlvbmFsIGhpc3RvcnkgZW50cnkgaWYgdGhlIGNhbm9uaWNhbFVybCBpcyB0aGUgc2FtZSBhcyB0aGUgY3VycmVudCB1cmwuXG4gICAgICAvLyBUaGlzIG1pcnJvcnMgdGhlIGJyb3dzZXIgYmVoYXZpb3IgZm9yIG5vcm1hbCBuYXZpZ2F0aW9uLlxuICAgICAgY3JlYXRlSHJlZkZyb21VcmwobmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikpICE9PSBjYW5vbmljYWxVcmxcbiAgICApIHtcbiAgICAgIC8vIFRoaXMgaW50ZW50aW9uYWxseSBtdXRhdGVzIFJlYWN0IHN0YXRlLCBwdXNoUmVmIGlzIG92ZXJ3cml0dGVuIHRvIGVuc3VyZSBhZGRpdGlvbmFsIHB1c2gvcmVwbGFjZSBjYWxscyBkbyBub3QgdHJpZ2dlciBhbiBhZGRpdGlvbmFsIGhpc3RvcnkgZW50cnkuXG4gICAgICBwdXNoUmVmLnBlbmRpbmdQdXNoID0gZmFsc2VcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShoaXN0b3J5U3RhdGUsICcnLCBjYW5vbmljYWxVcmwpXG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShoaXN0b3J5U3RhdGUsICcnLCBjYW5vbmljYWxVcmwpXG4gICAgfVxuICB9LCBbYXBwUm91dGVyU3RhdGVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gVGhlIE5leHQtVXJsIGFuZCB0aGUgYmFzZSB0cmVlIG1heSBhZmZlY3QgdGhlIHJlc3VsdCBvZiBhIHByZWZldGNoXG4gICAgLy8gdGFzay4gUmUtcHJlZmV0Y2ggYWxsIHZpc2libGUgbGlua3Mgd2l0aCB0aGUgdXBkYXRlZCB2YWx1ZXMuIEluIG1vc3RcbiAgICAvLyBjYXNlcywgdGhpcyB3aWxsIG5vdCByZXN1bHQgaW4gYW55IG5ldyBuZXR3b3JrIHJlcXVlc3RzLCBvbmx5IGlmXG4gICAgLy8gdGhlIHByZWZldGNoIHJlc3VsdCBhY3R1YWxseSB2YXJpZXMgb24gb25lIG9mIHRoZXNlIGlucHV0cy5cbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFKSB7XG4gICAgICBwaW5nVmlzaWJsZUxpbmtzKGFwcFJvdXRlclN0YXRlLm5leHRVcmwsIGFwcFJvdXRlclN0YXRlLnRyZWUpXG4gICAgfVxuICB9LCBbYXBwUm91dGVyU3RhdGUubmV4dFVybCwgYXBwUm91dGVyU3RhdGUudHJlZV0pXG5cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVtcHR5Q2FjaGVOb2RlKCk6IENhY2hlTm9kZSB7XG4gIHJldHVybiB7XG4gICAgbGF6eURhdGE6IG51bGwsXG4gICAgcnNjOiBudWxsLFxuICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgIGhlYWQ6IG51bGwsXG4gICAgcHJlZmV0Y2hIZWFkOiBudWxsLFxuICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKCksXG4gICAgbG9hZGluZzogbnVsbCxcbiAgICBuYXZpZ2F0ZWRBdDogLTEsXG4gIH1cbn1cblxuZnVuY3Rpb24gY29weU5leHRKc0ludGVybmFsSGlzdG9yeVN0YXRlKGRhdGE6IGFueSkge1xuICBpZiAoZGF0YSA9PSBudWxsKSBkYXRhID0ge31cbiAgY29uc3QgY3VycmVudFN0YXRlID0gd2luZG93Lmhpc3Rvcnkuc3RhdGVcbiAgY29uc3QgX19OQSA9IGN1cnJlbnRTdGF0ZT8uX19OQVxuICBpZiAoX19OQSkge1xuICAgIGRhdGEuX19OQSA9IF9fTkFcbiAgfVxuICBjb25zdCBfX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFID1cbiAgICBjdXJyZW50U3RhdGU/Ll9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUVcbiAgaWYgKF9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUUpIHtcbiAgICBkYXRhLl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUUgPSBfX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG5mdW5jdGlvbiBIZWFkKHtcbiAgaGVhZENhY2hlTm9kZSxcbn06IHtcbiAgaGVhZENhY2hlTm9kZTogQ2FjaGVOb2RlIHwgbnVsbFxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIC8vIElmIHRoaXMgc2VnbWVudCBoYXMgYSBgcHJlZmV0Y2hIZWFkYCwgaXQncyB0aGUgc3RhdGljYWxseSBwcmVmZXRjaGVkIGRhdGEuXG4gIC8vIFdlIHNob3VsZCB1c2UgdGhhdCBvbiBpbml0aWFsIHJlbmRlciBpbnN0ZWFkIG9mIGBoZWFkYC4gVGhlbiB3ZSdsbCBzd2l0Y2hcbiAgLy8gdG8gYGhlYWRgIHdoZW4gdGhlIGR5bmFtaWMgcmVzcG9uc2Ugc3RyZWFtcyBpbi5cbiAgY29uc3QgaGVhZCA9IGhlYWRDYWNoZU5vZGUgIT09IG51bGwgPyBoZWFkQ2FjaGVOb2RlLmhlYWQgOiBudWxsXG4gIGNvbnN0IHByZWZldGNoSGVhZCA9XG4gICAgaGVhZENhY2hlTm9kZSAhPT0gbnVsbCA/IGhlYWRDYWNoZU5vZGUucHJlZmV0Y2hIZWFkIDogbnVsbFxuXG4gIC8vIElmIG5vIHByZWZldGNoIGRhdGEgaXMgYXZhaWxhYmxlLCB0aGVuIHdlIGdvIHN0cmFpZ2h0IHRvIHJlbmRlcmluZyBgaGVhZGAuXG4gIGNvbnN0IHJlc29sdmVkUHJlZmV0Y2hSc2MgPSBwcmVmZXRjaEhlYWQgIT09IG51bGwgPyBwcmVmZXRjaEhlYWQgOiBoZWFkXG5cbiAgLy8gV2UgdXNlIGB1c2VEZWZlcnJlZFZhbHVlYCB0byBoYW5kbGUgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHByZWZldGNoZWQgYW5kXG4gIC8vIGZpbmFsIHZhbHVlcy4gVGhlIHNlY29uZCBhcmd1bWVudCBpcyByZXR1cm5lZCBvbiBpbml0aWFsIHJlbmRlciwgdGhlbiBpdFxuICAvLyByZS1yZW5kZXJzIHdpdGggdGhlIGZpcnN0IGFyZ3VtZW50LlxuICByZXR1cm4gdXNlRGVmZXJyZWRWYWx1ZShoZWFkLCByZXNvbHZlZFByZWZldGNoUnNjKVxufVxuXG4vKipcbiAqIFRoZSBnbG9iYWwgcm91dGVyIHRoYXQgd3JhcHMgdGhlIGFwcGxpY2F0aW9uIGNvbXBvbmVudHMuXG4gKi9cbmZ1bmN0aW9uIFJvdXRlcih7XG4gIGFjdGlvblF1ZXVlLFxuICBhc3NldFByZWZpeCxcbiAgZ2xvYmFsRXJyb3IsXG59OiB7XG4gIGFjdGlvblF1ZXVlOiBBcHBSb3V0ZXJBY3Rpb25RdWV1ZVxuICBhc3NldFByZWZpeDogc3RyaW5nXG4gIGdsb2JhbEVycm9yOiBHbG9iYWxFcnJvclN0YXRlXG59KSB7XG4gIGNvbnN0IHN0YXRlID0gdXNlQWN0aW9uUXVldWUoYWN0aW9uUXVldWUpXG4gIGNvbnN0IHsgY2Fub25pY2FsVXJsIH0gPSBzdGF0ZVxuICAvLyBBZGQgbWVtb2l6ZWQgcGF0aG5hbWUvcXVlcnkgZm9yIHVzZVNlYXJjaFBhcmFtcyBhbmQgdXNlUGF0aG5hbWUuXG4gIGNvbnN0IHsgc2VhcmNoUGFyYW1zLCBwYXRobmFtZSB9ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChcbiAgICAgIGNhbm9uaWNhbFVybCxcbiAgICAgIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gJ2h0dHA6Ly9uJyA6IHdpbmRvdy5sb2NhdGlvbi5ocmVmXG4gICAgKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC8vIFRoaXMgaXMgdHVybmVkIGludG8gYSByZWFkb25seSBjbGFzcyBpbiBgdXNlU2VhcmNoUGFyYW1zYFxuICAgICAgc2VhcmNoUGFyYW1zOiB1cmwuc2VhcmNoUGFyYW1zLFxuICAgICAgcGF0aG5hbWU6IGhhc0Jhc2VQYXRoKHVybC5wYXRobmFtZSlcbiAgICAgICAgPyByZW1vdmVCYXNlUGF0aCh1cmwucGF0aG5hbWUpXG4gICAgICAgIDogdXJsLnBhdGhuYW1lLFxuICAgIH1cbiAgfSwgW2Nhbm9uaWNhbFVybF0pXG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICBjb25zdCB7IGNhY2hlLCBwcmVmZXRjaENhY2hlLCB0cmVlIH0gPSBzdGF0ZVxuXG4gICAgLy8gVGhpcyBob29rIGlzIGluIGEgY29uZGl0aW9uYWwgYnV0IHRoYXQgaXMgb2sgYmVjYXVzZSBgcHJvY2Vzcy5lbnYuTk9ERV9FTlZgIG5ldmVyIGNoYW5nZXNcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gQWRkIGB3aW5kb3cubmRgIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuXG4gICAgICAvLyBUaGlzIGlzIG5vdCBtZWFudCBmb3IgdXNlIGluIGFwcGxpY2F0aW9ucyBhcyBjb25jdXJyZW50IHJlbmRlcmluZyB3aWxsIGFmZmVjdCB0aGUgY2FjaGUvdHJlZS9yb3V0ZXIuXG4gICAgICAvLyBAdHMtaWdub3JlIHRoaXMgaXMgZm9yIGRlYnVnZ2luZ1xuICAgICAgd2luZG93Lm5kID0ge1xuICAgICAgICByb3V0ZXI6IHB1YmxpY0FwcFJvdXRlckluc3RhbmNlLFxuICAgICAgICBjYWNoZSxcbiAgICAgICAgcHJlZmV0Y2hDYWNoZSxcbiAgICAgICAgdHJlZSxcbiAgICAgIH1cbiAgICB9LCBbY2FjaGUsIHByZWZldGNoQ2FjaGUsIHRyZWVdKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBJZiB0aGUgYXBwIGlzIHJlc3RvcmVkIGZyb20gYmZjYWNoZSwgaXQncyBwb3NzaWJsZSB0aGF0XG4gICAgLy8gcHVzaFJlZi5tcGFOYXZpZ2F0aW9uIGlzIHRydWUsIHdoaWNoIHdvdWxkIG1lYW4gdGhhdCBhbnkgcmUtcmVuZGVyIG9mIHRoaXMgY29tcG9uZW50XG4gICAgLy8gd291bGQgdHJpZ2dlciB0aGUgbXBhIG5hdmlnYXRpb24gbG9naWMgYWdhaW4gZnJvbSB0aGUgbGluZXMgYmVsb3cuXG4gICAgLy8gVGhpcyB3aWxsIHJlc3RvcmUgdGhlIHJvdXRlciB0byB0aGUgaW5pdGlhbCBzdGF0ZSBpbiB0aGUgZXZlbnQgdGhhdCB0aGUgYXBwIGlzIHJlc3RvcmVkIGZyb20gYmZjYWNoZS5cbiAgICBmdW5jdGlvbiBoYW5kbGVQYWdlU2hvdyhldmVudDogUGFnZVRyYW5zaXRpb25FdmVudCkge1xuICAgICAgaWYgKFxuICAgICAgICAhZXZlbnQucGVyc2lzdGVkIHx8XG4gICAgICAgICF3aW5kb3cuaGlzdG9yeS5zdGF0ZT8uX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRVxuICAgICAgKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBDbGVhciB0aGUgcGVuZGluZ01wYVBhdGggdmFsdWUgc28gdGhhdCBhIHN1YnNlcXVlbnQgTVBBIG5hdmlnYXRpb24gdG8gdGhlIHNhbWUgVVJMIGNhbiBiZSB0cmlnZ2VyZWQuXG4gICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGlmIHRoZSBicm93c2VyIHJlc3RvcmVkIGZyb20gYmZjYWNoZSwgdGhlIHBlbmRpbmdNcGFQYXRoIHdvdWxkIHN0aWxsIGJlIHNldCB0byB0aGUgdmFsdWVcbiAgICAgIC8vIG9mIHRoZSBsYXN0IE1QQSBuYXZpZ2F0aW9uLlxuICAgICAgZ2xvYmFsTXV0YWJsZS5wZW5kaW5nTXBhUGF0aCA9IHVuZGVmaW5lZFxuXG4gICAgICBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IEFDVElPTl9SRVNUT1JFLFxuICAgICAgICB1cmw6IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLFxuICAgICAgICB0cmVlOiB3aW5kb3cuaGlzdG9yeS5zdGF0ZS5fX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBoYW5kbGVQYWdlU2hvdylcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBoYW5kbGVQYWdlU2hvdylcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gRW5zdXJlIHRoYXQgYW55IHJlZGlyZWN0IGVycm9ycyB0aGF0IGJ1YmJsZSB1cCBvdXRzaWRlIG9mIHRoZSBSZWRpcmVjdEJvdW5kYXJ5XG4gICAgLy8gYXJlIGNhdWdodCBhbmQgaGFuZGxlZCBieSB0aGUgcm91dGVyLlxuICAgIGZ1bmN0aW9uIGhhbmRsZVVuaGFuZGxlZFJlZGlyZWN0KFxuICAgICAgZXZlbnQ6IEVycm9yRXZlbnQgfCBQcm9taXNlUmVqZWN0aW9uRXZlbnRcbiAgICApIHtcbiAgICAgIGNvbnN0IGVycm9yID0gJ3JlYXNvbicgaW4gZXZlbnQgPyBldmVudC5yZWFzb24gOiBldmVudC5lcnJvclxuICAgICAgaWYgKGlzUmVkaXJlY3RFcnJvcihlcnJvcikpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICBjb25zdCB1cmwgPSBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvcihlcnJvcilcbiAgICAgICAgY29uc3QgcmVkaXJlY3RUeXBlID0gZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yKGVycm9yKVxuICAgICAgICAvLyBUT0RPOiBUaGlzIHNob3VsZCBhY2Nlc3MgdGhlIHJvdXRlciBtZXRob2RzIGRpcmVjdGx5LCByYXRoZXIgdGhhblxuICAgICAgICAvLyBnbyB0aHJvdWdoIHRoZSBwdWJsaWMgaW50ZXJmYWNlLlxuICAgICAgICBpZiAocmVkaXJlY3RUeXBlID09PSBSZWRpcmVjdFR5cGUucHVzaCkge1xuICAgICAgICAgIHB1YmxpY0FwcFJvdXRlckluc3RhbmNlLnB1c2godXJsLCB7fSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZS5yZXBsYWNlKHVybCwge30pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgaGFuZGxlVW5oYW5kbGVkUmVkaXJlY3QpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3VuaGFuZGxlZHJlamVjdGlvbicsIGhhbmRsZVVuaGFuZGxlZFJlZGlyZWN0KVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIGhhbmRsZVVuaGFuZGxlZFJlZGlyZWN0KVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3VuaGFuZGxlZHJlamVjdGlvbicsIGhhbmRsZVVuaGFuZGxlZFJlZGlyZWN0KVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLy8gV2hlbiBtcGFOYXZpZ2F0aW9uIGZsYWcgaXMgc2V0IGRvIGEgaGFyZCBuYXZpZ2F0aW9uIHRvIHRoZSBuZXcgdXJsLlxuICAvLyBJbmZpbml0ZWx5IHN1c3BlbmQgYmVjYXVzZSB3ZSBkb24ndCBhY3R1YWxseSB3YW50IHRvIHJlcmVuZGVyIGFueSBjaGlsZFxuICAvLyBjb21wb25lbnRzIHdpdGggdGhlIG5ldyBVUkwgYW5kIGFueSBlbnRhbmdsZWQgc3RhdGUgdXBkYXRlcyBzaG91bGRuJ3RcbiAgLy8gY29tbWl0IGVpdGhlciAoZWc6IHVzZVRyYW5zaXRpb24gaXNQZW5kaW5nIHNob3VsZCBzdGF5IHRydWUgdW50aWwgdGhlIHBhZ2VcbiAgLy8gdW5sb2FkcykuXG4gIC8vXG4gIC8vIFRoaXMgaXMgYSBzaWRlIGVmZmVjdCBpbiByZW5kZXIuIERvbid0IHRyeSB0aGlzIGF0IGhvbWUsIGtpZHMuIEl0J3NcbiAgLy8gcHJvYmFibHkgc2FmZSBiZWNhdXNlIHdlIGtub3cgdGhpcyBpcyBhIHNpbmdsZXRvbiBjb21wb25lbnQgYW5kIGl0J3MgbmV2ZXJcbiAgLy8gaW4gPE9mZnNjcmVlbj4uIEF0IGxlYXN0IEkgaG9wZSBzby4gKEl0IHdpbGwgcnVuIHR3aWNlIGluIGRldiBzdHJpY3QgbW9kZSxcbiAgLy8gYnV0IHRoYXQncy4uLiBmaW5lPylcbiAgY29uc3QgeyBwdXNoUmVmIH0gPSBzdGF0ZVxuICBpZiAocHVzaFJlZi5tcGFOYXZpZ2F0aW9uKSB7XG4gICAgLy8gaWYgdGhlcmUncyBhIHJlLXJlbmRlciwgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGFub3RoZXIgcmVkaXJlY3QgaWYgb25lIGlzIGFscmVhZHkgaW4gZmxpZ2h0IHRvIHRoZSBzYW1lIFVSTFxuICAgIGlmIChnbG9iYWxNdXRhYmxlLnBlbmRpbmdNcGFQYXRoICE9PSBjYW5vbmljYWxVcmwpIHtcbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uXG4gICAgICBpZiAocHVzaFJlZi5wZW5kaW5nUHVzaCkge1xuICAgICAgICBsb2NhdGlvbi5hc3NpZ24oY2Fub25pY2FsVXJsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9jYXRpb24ucmVwbGFjZShjYW5vbmljYWxVcmwpXG4gICAgICB9XG5cbiAgICAgIGdsb2JhbE11dGFibGUucGVuZGluZ01wYVBhdGggPSBjYW5vbmljYWxVcmxcbiAgICB9XG4gICAgLy8gVE9ETy1BUFA6IFNob3VsZCB3ZSBsaXN0ZW4gdG8gbmF2aWdhdGVlcnJvciBoZXJlIHRvIGNhdGNoIGZhaWxlZFxuICAgIC8vIG5hdmlnYXRpb25zIHNvbWVob3c/IEFuZCBzaG91bGQgd2UgY2FsbCB3aW5kb3cuc3RvcCgpIGlmIGEgU1BBIG5hdmlnYXRpb25cbiAgICAvLyBzaG91bGQgaW50ZXJydXB0IGFuIE1QQSBvbmU/XG4gICAgLy8gTk9URTogVGhpcyBpcyBpbnRlbnRpb25hbGx5IHVzaW5nIGB0aHJvd2AgaW5zdGVhZCBvZiBgdXNlYCBiZWNhdXNlIHdlJ3JlXG4gICAgLy8gaW5zaWRlIGFuIGV4dGVybmFsbHkgbXV0YWJsZSBjb25kaXRpb24gKHB1c2hSZWYubXBhTmF2aWdhdGlvbiksIHdoaWNoXG4gICAgLy8gdmlvbGF0ZXMgdGhlIHJ1bGVzIG9mIGhvb2tzLlxuICAgIHRocm93IHVucmVzb2x2ZWRUaGVuYWJsZVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbFB1c2hTdGF0ZSA9IHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZS5iaW5kKHdpbmRvdy5oaXN0b3J5KVxuICAgIGNvbnN0IG9yaWdpbmFsUmVwbGFjZVN0YXRlID0gd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlLmJpbmQoXG4gICAgICB3aW5kb3cuaGlzdG9yeVxuICAgIClcblxuICAgIC8vIEVuc3VyZSB0aGUgY2Fub25pY2FsIFVSTCBpbiB0aGUgTmV4dC5qcyBSb3V0ZXIgaXMgdXBkYXRlZCB3aGVuIHRoZSBVUkwgaXMgY2hhbmdlZCBzbyB0aGF0IGB1c2VQYXRobmFtZWAgYW5kIGB1c2VTZWFyY2hQYXJhbXNgIGhvbGQgdGhlIHB1c2hlZCB2YWx1ZXMuXG4gICAgY29uc3QgYXBwbHlVcmxGcm9tSGlzdG9yeVB1c2hSZXBsYWNlID0gKFxuICAgICAgdXJsOiBzdHJpbmcgfCBVUkwgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICAgIGNvbnN0IHRyZWU6IEZsaWdodFJvdXRlclN0YXRlIHwgdW5kZWZpbmVkID1cbiAgICAgICAgd2luZG93Lmhpc3Rvcnkuc3RhdGU/Ll9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUVcblxuICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24oe1xuICAgICAgICAgIHR5cGU6IEFDVElPTl9SRVNUT1JFLFxuICAgICAgICAgIHVybDogbmV3IFVSTCh1cmwgPz8gaHJlZiwgaHJlZiksXG4gICAgICAgICAgdHJlZSxcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGF0Y2ggcHVzaFN0YXRlIHRvIGVuc3VyZSBleHRlcm5hbCBjaGFuZ2VzIHRvIHRoZSBoaXN0b3J5IGFyZSByZWZsZWN0ZWQgaW4gdGhlIE5leHQuanMgUm91dGVyLlxuICAgICAqIEVuc3VyZXMgTmV4dC5qcyBpbnRlcm5hbCBoaXN0b3J5IHN0YXRlIGlzIGNvcGllZCB0byB0aGUgbmV3IGhpc3RvcnkgZW50cnkuXG4gICAgICogRW5zdXJlcyB1c2VQYXRobmFtZSBhbmQgdXNlU2VhcmNoUGFyYW1zIGhvbGQgdGhlIG5ld2x5IHByb3ZpZGVkIHVybC5cbiAgICAgKi9cbiAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUgPSBmdW5jdGlvbiBwdXNoU3RhdGUoXG4gICAgICBkYXRhOiBhbnksXG4gICAgICBfdW51c2VkOiBzdHJpbmcsXG4gICAgICB1cmw/OiBzdHJpbmcgfCBVUkwgfCBudWxsXG4gICAgKTogdm9pZCB7XG4gICAgICAvLyBBdm9pZCBhIGxvb3Agd2hlbiBOZXh0LmpzIGludGVybmFscyB0cmlnZ2VyIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGVcbiAgICAgIGlmIChkYXRhPy5fX05BIHx8IGRhdGE/Ll9OKSB7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbFB1c2hTdGF0ZShkYXRhLCBfdW51c2VkLCB1cmwpXG4gICAgICB9XG5cbiAgICAgIGRhdGEgPSBjb3B5TmV4dEpzSW50ZXJuYWxIaXN0b3J5U3RhdGUoZGF0YSlcblxuICAgICAgaWYgKHVybCkge1xuICAgICAgICBhcHBseVVybEZyb21IaXN0b3J5UHVzaFJlcGxhY2UodXJsKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3JpZ2luYWxQdXNoU3RhdGUoZGF0YSwgX3VudXNlZCwgdXJsKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhdGNoIHJlcGxhY2VTdGF0ZSB0byBlbnN1cmUgZXh0ZXJuYWwgY2hhbmdlcyB0byB0aGUgaGlzdG9yeSBhcmUgcmVmbGVjdGVkIGluIHRoZSBOZXh0LmpzIFJvdXRlci5cbiAgICAgKiBFbnN1cmVzIE5leHQuanMgaW50ZXJuYWwgaGlzdG9yeSBzdGF0ZSBpcyBjb3BpZWQgdG8gdGhlIG5ldyBoaXN0b3J5IGVudHJ5LlxuICAgICAqIEVuc3VyZXMgdXNlUGF0aG5hbWUgYW5kIHVzZVNlYXJjaFBhcmFtcyBob2xkIHRoZSBuZXdseSBwcm92aWRlZCB1cmwuXG4gICAgICovXG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlID0gZnVuY3Rpb24gcmVwbGFjZVN0YXRlKFxuICAgICAgZGF0YTogYW55LFxuICAgICAgX3VudXNlZDogc3RyaW5nLFxuICAgICAgdXJsPzogc3RyaW5nIHwgVVJMIHwgbnVsbFxuICAgICk6IHZvaWQge1xuICAgICAgLy8gQXZvaWQgYSBsb29wIHdoZW4gTmV4dC5qcyBpbnRlcm5hbHMgdHJpZ2dlciBwdXNoU3RhdGUvcmVwbGFjZVN0YXRlXG4gICAgICBpZiAoZGF0YT8uX19OQSB8fCBkYXRhPy5fTikge1xuICAgICAgICByZXR1cm4gb3JpZ2luYWxSZXBsYWNlU3RhdGUoZGF0YSwgX3VudXNlZCwgdXJsKVxuICAgICAgfVxuICAgICAgZGF0YSA9IGNvcHlOZXh0SnNJbnRlcm5hbEhpc3RvcnlTdGF0ZShkYXRhKVxuXG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIGFwcGx5VXJsRnJvbUhpc3RvcnlQdXNoUmVwbGFjZSh1cmwpXG4gICAgICB9XG4gICAgICByZXR1cm4gb3JpZ2luYWxSZXBsYWNlU3RhdGUoZGF0YSwgX3VudXNlZCwgdXJsKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBwb3BzdGF0ZSBldmVudCwgdGhpcyBpcyB1c2VkIHRvIGhhbmRsZSBiYWNrL2ZvcndhcmQgaW4gdGhlIGJyb3dzZXIuXG4gICAgICogQnkgZGVmYXVsdCBkaXNwYXRjaGVzIEFDVElPTl9SRVNUT1JFLCBob3dldmVyIGlmIHRoZSBoaXN0b3J5IGVudHJ5IHdhcyBub3QgcHVzaGVkL3JlcGxhY2VkIGJ5IGFwcC1yb3V0ZXIgaXQgd2lsbCByZWxvYWQgdGhlIHBhZ2UuXG4gICAgICogVGhhdCBjYXNlIGNhbiBoYXBwZW4gd2hlbiB0aGUgb2xkIHJvdXRlciBpbmplY3RlZCB0aGUgaGlzdG9yeSBlbnRyeS5cbiAgICAgKi9cbiAgICBjb25zdCBvblBvcFN0YXRlID0gKGV2ZW50OiBQb3BTdGF0ZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWV2ZW50LnN0YXRlKSB7XG4gICAgICAgIC8vIFRPRE8tQVBQOiB0aGlzIGNhc2Ugb25seSBoYXBwZW5zIHdoZW4gcHVzaFN0YXRlL3JlcGxhY2VTdGF0ZSB3YXMgY2FsbGVkIG91dHNpZGUgb2YgTmV4dC5qcy4gSXQgc2hvdWxkIHByb2JhYmx5IHJlbG9hZCB0aGUgcGFnZSBpbiB0aGlzIGNhc2UuXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBUaGlzIGNhc2UgaGFwcGVucyB3aGVuIHRoZSBoaXN0b3J5IGVudHJ5IHdhcyBwdXNoZWQgYnkgdGhlIGBwYWdlc2Agcm91dGVyLlxuICAgICAgaWYgKCFldmVudC5zdGF0ZS5fX05BKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gVE9ETy1BUFA6IElkZWFsbHkgdGhlIGJhY2sgYnV0dG9uIHNob3VsZCBub3QgdXNlIHN0YXJ0VHJhbnNpdGlvbiBhcyBpdCBzaG91bGQgYXBwbHkgdGhlIHVwZGF0ZXMgc3luY2hyb25vdXNseVxuICAgICAgLy8gV2l0aG91dCBzdGFydFRyYW5zaXRpb24gd29ya3MgaWYgdGhlIGNhY2hlIGlzIHRoZXJlIGZvciB0aGlzIHBhdGhcbiAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoVHJhdmVyc2VBY3Rpb24oXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICAgICAgZXZlbnQuc3RhdGUuX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRVxuICAgICAgICApXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIHBvcHN0YXRlIGV2ZW50IHRvIGNhbGwgb25Qb3BzdGF0ZS5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBvblBvcFN0YXRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUgPSBvcmlnaW5hbFB1c2hTdGF0ZVxuICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlID0gb3JpZ2luYWxSZXBsYWNlU3RhdGVcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIG9uUG9wU3RhdGUpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCB7IGNhY2hlLCB0cmVlLCBuZXh0VXJsLCBmb2N1c0FuZFNjcm9sbFJlZiB9ID0gc3RhdGVcblxuICBjb25zdCBtYXRjaGluZ0hlYWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZmluZEhlYWRJbkNhY2hlKGNhY2hlLCB0cmVlWzFdKVxuICB9LCBbY2FjaGUsIHRyZWVdKVxuXG4gIC8vIEFkZCBtZW1vaXplZCBwYXRoUGFyYW1zIGZvciB1c2VQYXJhbXMuXG4gIGNvbnN0IHBhdGhQYXJhbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZ2V0U2VsZWN0ZWRQYXJhbXModHJlZSlcbiAgfSwgW3RyZWVdKVxuXG4gIGNvbnN0IGxheW91dFJvdXRlckNvbnRleHQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgcGFyZW50VHJlZTogdHJlZSxcbiAgICAgIHBhcmVudENhY2hlTm9kZTogY2FjaGUsXG4gICAgICBwYXJlbnRTZWdtZW50UGF0aDogbnVsbCxcbiAgICAgIC8vIFJvb3Qgbm9kZSBhbHdheXMgaGFzIGB1cmxgXG4gICAgICAvLyBQcm92aWRlZCBpbiBBcHBUcmVlQ29udGV4dCB0byBlbnN1cmUgaXQgY2FuIGJlIG92ZXJ3cml0dGVuIGluIGxheW91dC1yb3V0ZXJcbiAgICAgIHVybDogY2Fub25pY2FsVXJsLFxuICAgIH1cbiAgfSwgW3RyZWUsIGNhY2hlLCBjYW5vbmljYWxVcmxdKVxuXG4gIGNvbnN0IGdsb2JhbExheW91dFJvdXRlckNvbnRleHQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHJlZSxcbiAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmLFxuICAgICAgbmV4dFVybCxcbiAgICB9XG4gIH0sIFt0cmVlLCBmb2N1c0FuZFNjcm9sbFJlZiwgbmV4dFVybF0pXG5cbiAgbGV0IGhlYWRcbiAgaWYgKG1hdGNoaW5nSGVhZCAhPT0gbnVsbCkge1xuICAgIC8vIFRoZSBoZWFkIGlzIHdyYXBwZWQgaW4gYW4gZXh0cmEgY29tcG9uZW50IHNvIHdlIGNhbiB1c2VcbiAgICAvLyBgdXNlRGVmZXJyZWRWYWx1ZWAgdG8gc3dhcCBiZXR3ZWVuIHRoZSBwcmVmZXRjaGVkIGFuZCBmaW5hbCB2ZXJzaW9ucyBvZlxuICAgIC8vIHRoZSBoZWFkLiAoVGhpcyBpcyB3aGF0IExheW91dFJvdXRlciBkb2VzIGZvciBzZWdtZW50IGRhdGEsIHRvby4pXG4gICAgLy9cbiAgICAvLyBUaGUgYGtleWAgaXMgdXNlZCB0byByZW1vdW50IHRoZSBjb21wb25lbnQgd2hlbmV2ZXIgdGhlIGhlYWQgbW92ZXMgdG9cbiAgICAvLyBhIGRpZmZlcmVudCBzZWdtZW50LlxuICAgIGNvbnN0IFtoZWFkQ2FjaGVOb2RlLCBoZWFkS2V5LCBoZWFkS2V5V2l0aG91dFNlYXJjaFBhcmFtc10gPSBtYXRjaGluZ0hlYWRcblxuICAgIGhlYWQgPSAoXG4gICAgICA8SGVhZFxuICAgICAgICBrZXk9e1xuICAgICAgICAgIC8vIE5lY2Vzc2FyeSBmb3IgUFBSOiBvbWl0IHNlYXJjaCBwYXJhbXMgZnJvbSB0aGUga2V5IHRvIG1hdGNoIHByZXJlbmRlcmVkIGtleXNcbiAgICAgICAgICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/IGhlYWRLZXlXaXRob3V0U2VhcmNoUGFyYW1zIDogaGVhZEtleVxuICAgICAgICB9XG4gICAgICAgIGhlYWRDYWNoZU5vZGU9e2hlYWRDYWNoZU5vZGV9XG4gICAgICAvPlxuICAgIClcbiAgfSBlbHNlIHtcbiAgICBoZWFkID0gbnVsbFxuICB9XG5cbiAgbGV0IGNvbnRlbnQgPSAoXG4gICAgPFJlZGlyZWN0Qm91bmRhcnk+XG4gICAgICB7aGVhZH1cbiAgICAgIHsvKiBSb290TGF5b3V0Qm91bmRhcnkgZW5hYmxlcyBkZXRlY3Rpb24gb2YgU3VzcGVuc2UgYm91bmRhcmllcyBhcm91bmQgdGhlIHJvb3QgbGF5b3V0LlxuICAgICAgICAgIFdoZW4gdXNlcnMgd3JhcCB0aGVpciBsYXlvdXQgaW4gPFN1c3BlbnNlPiwgdGhpcyBjcmVhdGVzIHRoZSBjb21wb25lbnQgc3RhY2sgcGF0dGVyblxuICAgICAgICAgIFwiU3VzcGVuc2UgLT4gUm9vdExheW91dEJvdW5kYXJ5XCIgd2hpY2ggZHluYW1pYy1yZW5kZXJpbmcudHMgdXNlcyB0byBhbGxvdyBkeW5hbWljIHJlbmRlcmluZy4gKi99XG4gICAgICA8Um9vdExheW91dEJvdW5kYXJ5PntjYWNoZS5yc2N9PC9Sb290TGF5b3V0Qm91bmRhcnk+XG4gICAgICA8QXBwUm91dGVyQW5ub3VuY2VyIHRyZWU9e3RyZWV9IC8+XG4gICAgPC9SZWRpcmVjdEJvdW5kYXJ5PlxuICApXG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBJbiBkZXZlbG9wbWVudCwgd2UgYXBwbHkgZmV3IGVycm9yIGJvdW5kYXJpZXMgYW5kIGhvdC1yZWxvYWRlcjpcbiAgICAvLyAtIERldlJvb3RIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeTogYXZvaWQgdXNpbmcgbmF2aWdhdGlvbiBBUEkgbGlrZSBub3RGb3VuZCgpIGluIHJvb3QgbGF5b3V0XG4gICAgLy8gLSBIb3RSZWxvYWRlcjpcbiAgICAvLyAgLSBob3QtcmVsb2FkIHRoZSBhcHAgd2hlbiB0aGUgY29kZSBjaGFuZ2VzXG4gICAgLy8gIC0gcmVuZGVyIGRldiBvdmVybGF5XG4gICAgLy8gIC0gY2F0Y2ggcnVudGltZSBlcnJvcnMgYW5kIGRpc3BsYXkgZ2xvYmFsLWVycm9yIHdoZW4gbmVjZXNzYXJ5XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCB7IERldlJvb3RIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeSB9ID1cbiAgICAgICAgcmVxdWlyZSgnLi9kZXYtcm9vdC1odHRwLWFjY2Vzcy1mYWxsYmFjay1ib3VuZGFyeScpIGFzIHR5cGVvZiBpbXBvcnQoJy4vZGV2LXJvb3QtaHR0cC1hY2Nlc3MtZmFsbGJhY2stYm91bmRhcnknKVxuICAgICAgY29udGVudCA9IChcbiAgICAgICAgPERldlJvb3RIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeT5cbiAgICAgICAgICB7Y29udGVudH1cbiAgICAgICAgPC9EZXZSb290SFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnk+XG4gICAgICApXG4gICAgfVxuICAgIGNvbnN0IEhvdFJlbG9hZGVyOiB0eXBlb2YgaW1wb3J0KCcuLi9kZXYvaG90LXJlbG9hZGVyL2FwcC9ob3QtcmVsb2FkZXItYXBwJykuZGVmYXVsdCA9XG4gICAgICAoXG4gICAgICAgIHJlcXVpcmUoJy4uL2Rldi9ob3QtcmVsb2FkZXIvYXBwL2hvdC1yZWxvYWRlci1hcHAnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9kZXYvaG90LXJlbG9hZGVyL2FwcC9ob3QtcmVsb2FkZXItYXBwJylcbiAgICAgICkuZGVmYXVsdFxuXG4gICAgY29udGVudCA9IChcbiAgICAgIDxIb3RSZWxvYWRlciBhc3NldFByZWZpeD17YXNzZXRQcmVmaXh9IGdsb2JhbEVycm9yPXtnbG9iYWxFcnJvcn0+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9Ib3RSZWxvYWRlcj5cbiAgICApXG4gIH0gZWxzZSB7XG4gICAgY29udGVudCA9IChcbiAgICAgIDxSb290RXJyb3JCb3VuZGFyeVxuICAgICAgICBlcnJvckNvbXBvbmVudD17Z2xvYmFsRXJyb3JbMF19XG4gICAgICAgIGVycm9yU3R5bGVzPXtnbG9iYWxFcnJvclsxXX1cbiAgICAgID5cbiAgICAgICAge2NvbnRlbnR9XG4gICAgICA8L1Jvb3RFcnJvckJvdW5kYXJ5PlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxIaXN0b3J5VXBkYXRlciBhcHBSb3V0ZXJTdGF0ZT17c3RhdGV9IC8+XG4gICAgICA8UnVudGltZVN0eWxlcyAvPlxuICAgICAgPFBhdGhQYXJhbXNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRoUGFyYW1zfT5cbiAgICAgICAgPFBhdGhuYW1lQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cGF0aG5hbWV9PlxuICAgICAgICAgIDxTZWFyY2hQYXJhbXNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtzZWFyY2hQYXJhbXN9PlxuICAgICAgICAgICAgPEdsb2JhbExheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXJcbiAgICAgICAgICAgICAgdmFsdWU9e2dsb2JhbExheW91dFJvdXRlckNvbnRleHR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHsvKiBUT0RPOiBXZSBzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgdGhpcyBjb250ZXh0LiB1c2VSb3V0ZXJcbiAgICAgICAgICAgICAgICAgIHNob3VsZCBpbXBvcnQgZnJvbSBhcHAtcm91dGVyLWluc3RhbmNlIGluc3RlYWQuIEl0J3Mgb25seVxuICAgICAgICAgICAgICAgICAgbmVjZXNzYXJ5IGJlY2F1c2UgdXNlUm91dGVyIGlzIHNoYXJlZCBiZXR3ZWVuIFBhZ2VzIGFuZFxuICAgICAgICAgICAgICAgICAgQXBwIFJvdXRlci4gV2Ugc2hvdWxkIGZvcmsgdGhhdCBtb2R1bGUsIHRoZW4gcmVtb3ZlIHRoaXNcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQgcHJvdmlkZXIuICovfVxuICAgICAgICAgICAgICA8QXBwUm91dGVyQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cHVibGljQXBwUm91dGVySW5zdGFuY2V9PlxuICAgICAgICAgICAgICAgIDxMYXlvdXRSb3V0ZXJDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtsYXlvdXRSb3V0ZXJDb250ZXh0fT5cbiAgICAgICAgICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICAgICAgICAgIDwvTGF5b3V0Um91dGVyQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICAgICAgPC9BcHBSb3V0ZXJDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgPC9HbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgIDwvU2VhcmNoUGFyYW1zQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgPC9QYXRobmFtZUNvbnRleHQuUHJvdmlkZXI+XG4gICAgICA8L1BhdGhQYXJhbXNDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEFwcFJvdXRlcih7XG4gIGFjdGlvblF1ZXVlLFxuICBnbG9iYWxFcnJvclN0YXRlLFxuICBhc3NldFByZWZpeCxcbn06IHtcbiAgYWN0aW9uUXVldWU6IEFwcFJvdXRlckFjdGlvblF1ZXVlXG4gIGdsb2JhbEVycm9yU3RhdGU6IEdsb2JhbEVycm9yU3RhdGVcbiAgYXNzZXRQcmVmaXg6IHN0cmluZ1xufSkge1xuICB1c2VOYXZGYWlsdXJlSGFuZGxlcigpXG5cbiAgY29uc3Qgcm91dGVyID0gKFxuICAgIDxSb3V0ZXJcbiAgICAgIGFjdGlvblF1ZXVlPXthY3Rpb25RdWV1ZX1cbiAgICAgIGFzc2V0UHJlZml4PXthc3NldFByZWZpeH1cbiAgICAgIGdsb2JhbEVycm9yPXtnbG9iYWxFcnJvclN0YXRlfVxuICAgIC8+XG4gIClcblxuICAvLyBBdCB0aGUgdmVyeSB0b3AgbGV2ZWwsIHVzZSB0aGUgZGVmYXVsdCBHbG9iYWxFcnJvciBjb21wb25lbnQgYXMgdGhlIGZpbmFsIGZhbGxiYWNrLlxuICAvLyBXaGVuIHRoZSBhcHAgcm91dGVyIGl0c2VsZiBmYWlscywgd2hpY2ggbWVhbnMgdGhlIGZyYW1ld29yayBpdHNlbGYgZmFpbHMsIHdlIHNob3cgdGhlIGRlZmF1bHQgZXJyb3IuXG4gIHJldHVybiAoXG4gICAgPFJvb3RFcnJvckJvdW5kYXJ5IGVycm9yQ29tcG9uZW50PXtEZWZhdWx0R2xvYmFsRXJyb3J9PlxuICAgICAge3JvdXRlcn1cbiAgICA8L1Jvb3RFcnJvckJvdW5kYXJ5PlxuICApXG59XG5cbmNvbnN0IHJ1bnRpbWVTdHlsZXMgPSBuZXcgU2V0PHN0cmluZz4oKVxubGV0IHJ1bnRpbWVTdHlsZUNoYW5nZWQgPSBuZXcgU2V0PCgpID0+IHZvaWQ+KClcblxuZ2xvYmFsVGhpcy5fTl9FX1NUWUxFX0xPQUQgPSBmdW5jdGlvbiAoaHJlZjogc3RyaW5nKSB7XG4gIGxldCBsZW4gPSBydW50aW1lU3R5bGVzLnNpemVcbiAgcnVudGltZVN0eWxlcy5hZGQoaHJlZilcbiAgaWYgKHJ1bnRpbWVTdHlsZXMuc2l6ZSAhPT0gbGVuKSB7XG4gICAgcnVudGltZVN0eWxlQ2hhbmdlZC5mb3JFYWNoKChjYikgPT4gY2IoKSlcbiAgfVxuICAvLyBUT0RPIGZpZ3VyZSBvdXQgaG93IHRvIGdldCBhIHByb21pc2UgaGVyZVxuICAvLyBCdXQgbWF5YmUgaXQncyBub3QgbmVjZXNzYXJ5IGFzIHJlYWN0IHdvdWxkIGJsb2NrIHJlbmRlcmluZyB1bnRpbCBpdCdzIGxvYWRlZFxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbn1cblxuZnVuY3Rpb24gUnVudGltZVN0eWxlcygpIHtcbiAgY29uc3QgWywgZm9yY2VVcGRhdGVdID0gUmVhY3QudXNlU3RhdGUoMClcbiAgY29uc3QgcmVuZGVyZWRTdHlsZXNTaXplID0gcnVudGltZVN0eWxlcy5zaXplXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY2hhbmdlZCA9ICgpID0+IGZvcmNlVXBkYXRlKChjKSA9PiBjICsgMSlcbiAgICBydW50aW1lU3R5bGVDaGFuZ2VkLmFkZChjaGFuZ2VkKVxuICAgIGlmIChyZW5kZXJlZFN0eWxlc1NpemUgIT09IHJ1bnRpbWVTdHlsZXMuc2l6ZSkge1xuICAgICAgY2hhbmdlZCgpXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBydW50aW1lU3R5bGVDaGFuZ2VkLmRlbGV0ZShjaGFuZ2VkKVxuICAgIH1cbiAgfSwgW3JlbmRlcmVkU3R5bGVzU2l6ZSwgZm9yY2VVcGRhdGVdKVxuXG4gIGNvbnN0IGRwbElkID0gcHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEXG4gICAgPyBgP2RwbD0ke3Byb2Nlc3MuZW52Lk5FWFRfREVQTE9ZTUVOVF9JRH1gXG4gICAgOiAnJ1xuICByZXR1cm4gWy4uLnJ1bnRpbWVTdHlsZXNdLm1hcCgoaHJlZiwgaSkgPT4gKFxuICAgIDxsaW5rXG4gICAgICBrZXk9e2l9XG4gICAgICByZWw9XCJzdHlsZXNoZWV0XCJcbiAgICAgIGhyZWY9e2Ake2hyZWZ9JHtkcGxJZH1gfVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcHJlY2VkZW5jZT1cIm5leHRcIlxuICAgICAgLy8gVE9ETyBmaWd1cmUgb3V0IGNyb3NzT3JpZ2luIGFuZCBub25jZVxuICAgICAgLy8gY3Jvc3NPcmlnaW49e1RPRE99XG4gICAgICAvLyBub25jZT17VE9ET31cbiAgICAvPlxuICApKVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUVtcHR5Q2FjaGVOb2RlIiwiY3JlYXRlUHJlZmV0Y2hVUkwiLCJBcHBSb3V0ZXIiLCJpc0V4dGVybmFsVVJMIiwiZ2xvYmFsTXV0YWJsZSIsInVybCIsIm9yaWdpbiIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsImlzQm90IiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiVVJMIiwiYWRkQmFzZVBhdGgiLCJfIiwiRXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJIaXN0b3J5VXBkYXRlciIsImFwcFJvdXRlclN0YXRlIiwidXNlSW5zZXJ0aW9uRWZmZWN0IiwiX19ORVhUX0FQUF9OQVZfRkFJTF9IQU5ETElORyIsIm5leHQiLCJfX3BlbmRpbmdVcmwiLCJ1bmRlZmluZWQiLCJ0cmVlIiwicHVzaFJlZiIsImNhbm9uaWNhbFVybCIsImhpc3RvcnlTdGF0ZSIsInByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlIiwiaGlzdG9yeSIsInN0YXRlIiwiX19OQSIsIl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUUiLCJwZW5kaW5nUHVzaCIsImNyZWF0ZUhyZWZGcm9tVXJsIiwicHVzaFN0YXRlIiwicmVwbGFjZVN0YXRlIiwidXNlRWZmZWN0IiwiX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFIiwicGluZ1Zpc2libGVMaW5rcyIsIm5leHRVcmwiLCJsYXp5RGF0YSIsInJzYyIsInByZWZldGNoUnNjIiwiaGVhZCIsInByZWZldGNoSGVhZCIsInBhcmFsbGVsUm91dGVzIiwiTWFwIiwibG9hZGluZyIsIm5hdmlnYXRlZEF0IiwiY29weU5leHRKc0ludGVybmFsSGlzdG9yeVN0YXRlIiwiZGF0YSIsImN1cnJlbnRTdGF0ZSIsIkhlYWQiLCJoZWFkQ2FjaGVOb2RlIiwicmVzb2x2ZWRQcmVmZXRjaFJzYyIsInVzZURlZmVycmVkVmFsdWUiLCJSb3V0ZXIiLCJhY3Rpb25RdWV1ZSIsImFzc2V0UHJlZml4IiwiZ2xvYmFsRXJyb3IiLCJ1c2VBY3Rpb25RdWV1ZSIsInNlYXJjaFBhcmFtcyIsInBhdGhuYW1lIiwidXNlTWVtbyIsImhhc0Jhc2VQYXRoIiwicmVtb3ZlQmFzZVBhdGgiLCJjYWNoZSIsInByZWZldGNoQ2FjaGUiLCJuZCIsInJvdXRlciIsInB1YmxpY0FwcFJvdXRlckluc3RhbmNlIiwiaGFuZGxlUGFnZVNob3ciLCJldmVudCIsInBlcnNpc3RlZCIsInBlbmRpbmdNcGFQYXRoIiwiZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24iLCJ0eXBlIiwiQUNUSU9OX1JFU1RPUkUiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVVuaGFuZGxlZFJlZGlyZWN0IiwiZXJyb3IiLCJyZWFzb24iLCJpc1JlZGlyZWN0RXJyb3IiLCJwcmV2ZW50RGVmYXVsdCIsImdldFVSTEZyb21SZWRpcmVjdEVycm9yIiwicmVkaXJlY3RUeXBlIiwiZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yIiwiUmVkaXJlY3RUeXBlIiwicHVzaCIsInJlcGxhY2UiLCJtcGFOYXZpZ2F0aW9uIiwiYXNzaWduIiwidW5yZXNvbHZlZFRoZW5hYmxlIiwib3JpZ2luYWxQdXNoU3RhdGUiLCJiaW5kIiwib3JpZ2luYWxSZXBsYWNlU3RhdGUiLCJhcHBseVVybEZyb21IaXN0b3J5UHVzaFJlcGxhY2UiLCJzdGFydFRyYW5zaXRpb24iLCJfdW51c2VkIiwiX04iLCJvblBvcFN0YXRlIiwicmVsb2FkIiwiZGlzcGF0Y2hUcmF2ZXJzZUFjdGlvbiIsImZvY3VzQW5kU2Nyb2xsUmVmIiwibWF0Y2hpbmdIZWFkIiwiZmluZEhlYWRJbkNhY2hlIiwicGF0aFBhcmFtcyIsImdldFNlbGVjdGVkUGFyYW1zIiwibGF5b3V0Um91dGVyQ29udGV4dCIsInBhcmVudFRyZWUiLCJwYXJlbnRDYWNoZU5vZGUiLCJwYXJlbnRTZWdtZW50UGF0aCIsImdsb2JhbExheW91dFJvdXRlckNvbnRleHQiLCJoZWFkS2V5IiwiaGVhZEtleVdpdGhvdXRTZWFyY2hQYXJhbXMiLCJjb250ZW50IiwiUmVkaXJlY3RCb3VuZGFyeSIsIlJvb3RMYXlvdXRCb3VuZGFyeSIsIkFwcFJvdXRlckFubm91bmNlciIsIkRldlJvb3RIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeSIsInJlcXVpcmUiLCJIb3RSZWxvYWRlciIsImRlZmF1bHQiLCJSb290RXJyb3JCb3VuZGFyeSIsImVycm9yQ29tcG9uZW50IiwiZXJyb3JTdHlsZXMiLCJSdW50aW1lU3R5bGVzIiwiUGF0aFBhcmFtc0NvbnRleHQiLCJQcm92aWRlciIsInZhbHVlIiwiUGF0aG5hbWVDb250ZXh0IiwiU2VhcmNoUGFyYW1zQ29udGV4dCIsIkdsb2JhbExheW91dFJvdXRlckNvbnRleHQiLCJBcHBSb3V0ZXJDb250ZXh0IiwiTGF5b3V0Um91dGVyQ29udGV4dCIsImdsb2JhbEVycm9yU3RhdGUiLCJ1c2VOYXZGYWlsdXJlSGFuZGxlciIsIkRlZmF1bHRHbG9iYWxFcnJvciIsInJ1bnRpbWVTdHlsZXMiLCJTZXQiLCJydW50aW1lU3R5bGVDaGFuZ2VkIiwiZ2xvYmFsVGhpcyIsIl9OX0VfU1RZTEVfTE9BRCIsImxlbiIsInNpemUiLCJhZGQiLCJmb3JFYWNoIiwiY2IiLCJQcm9taXNlIiwicmVzb2x2ZSIsImZvcmNlVXBkYXRlIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsInJlbmRlcmVkU3R5bGVzU2l6ZSIsImNoYW5nZWQiLCJjIiwiZGVsZXRlIiwiZHBsSWQiLCJORVhUX0RFUExPWU1FTlRfSUQiLCJtYXAiLCJpIiwibGluayIsInJlbCIsInByZWNlZGVuY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/bailout-to-client-rendering.js ***!
|
||
\*********************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"bailoutToClientRendering\", ({\n enumerable: true,\n get: function() {\n return bailoutToClientRendering;\n }\n}));\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../../server/app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nfunction bailoutToClientRendering(reason) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (workStore == null ? void 0 : workStore.forceStatic) return;\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n throw Object.defineProperty(new _bailouttocsr.BailoutToCSRError(reason), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=bailout-to-client-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZy5qcyIsIm1hcHBpbmdzIjoiOzs7OzREQUlnQkE7OztlQUFBQTs7OzBDQUprQjtzREFDRDswREFDSTtBQUU5QixTQUFTQSx5QkFBeUJDLE1BQWM7SUFDckQsTUFBTUMsWUFBWUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBRTNDLElBQUlGLGFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFVBQVdHLFdBQVcsRUFBRTtJQUU1QixNQUFNQyxnQkFBZ0JDLDhCQUFBQSxvQkFBb0IsQ0FBQ0gsUUFBUTtJQUVuRCxJQUFJRSxlQUFlO1FBQ2pCLE9BQVFBLGNBQWNFLElBQUk7WUFDeEIsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7Z0JBQ0gsTUFBTSxxQkFBNkIsQ0FBN0IsSUFBSUMsY0FBQUEsaUJBQWlCLENBQUNSLFNBQXRCOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUE0QjtZQUNwQyxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO2dCQUNIO1lBQ0Y7Z0JBQ0VLO1FBQ0o7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvYmFpbG91dC10by1jbGllbnQtcmVuZGVyaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhaWxvdXRUb0NTUkVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3InXG5pbXBvcnQgeyB3b3JrQXN5bmNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgd29ya1VuaXRBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcblxuZXhwb3J0IGZ1bmN0aW9uIGJhaWxvdXRUb0NsaWVudFJlbmRlcmluZyhyZWFzb246IHN0cmluZyk6IHZvaWQgfCBuZXZlciB7XG4gIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuXG4gIGlmICh3b3JrU3RvcmU/LmZvcmNlU3RhdGljKSByZXR1cm5cblxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuXG4gIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgIHRocm93IG5ldyBCYWlsb3V0VG9DU1JFcnJvcihyZWFzb24pXG4gICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgd29ya1VuaXRTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmciLCJyZWFzb24iLCJ3b3JrU3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJmb3JjZVN0YXRpYyIsIndvcmtVbml0U3RvcmUiLCJ3b3JrVW5pdEFzeW5jU3RvcmFnZSIsInR5cGUiLCJCYWlsb3V0VG9DU1JFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/bfcache.js":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/bfcache.js ***!
|
||
\*************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useRouterBFCache\", ({\n enumerable: true,\n get: function() {\n return useRouterBFCache;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n// When the flag is disabled, only track the currently active tree\nconst MAX_BF_CACHE_ENTRIES = false ? 0 : 1;\nfunction useRouterBFCache(activeTree, activeStateKey) {\n // The currently active entry. The entries form a linked list, sorted in\n // order of most recently active. This allows us to reuse parts of the list\n // without cloning, unless there's a reordering or removal.\n // TODO: Once we start tracking back/forward history at each route level,\n // we should use the history order instead. In other words, when traversing\n // to an existing entry as a result of a popstate event, we should maintain\n // the existing order instead of moving it to the front of the list. I think\n // an initial implementation of this could be to pass an incrementing id\n // to history.pushState/replaceState, then use that here for ordering.\n const [prevActiveEntry, setPrevActiveEntry] = (0, _react.useState)(()=>{\n const initialEntry = {\n tree: activeTree,\n stateKey: activeStateKey,\n next: null\n };\n return initialEntry;\n });\n if (prevActiveEntry.tree === activeTree) {\n // Fast path. The active tree hasn't changed, so we can reuse the\n // existing state.\n return prevActiveEntry;\n }\n // The route tree changed. Note that this doesn't mean that the tree changed\n // *at this level* — the change may be due to a child route. Either way, we\n // need to either add or update the router tree in the bfcache.\n //\n // The rest of the code looks more complicated than it actually is because we\n // can't mutate the state in place; we have to copy-on-write.\n // Create a new entry for the active cache key. This is the head of the new\n // linked list.\n const newActiveEntry = {\n tree: activeTree,\n stateKey: activeStateKey,\n next: null\n };\n // We need to append the old list onto the new list. If the head of the new\n // list was already present in the cache, then we'll need to clone everything\n // that came before it. Then we can reuse the rest.\n let n = 1;\n let oldEntry = prevActiveEntry;\n let clonedEntry = newActiveEntry;\n while(oldEntry !== null && n < MAX_BF_CACHE_ENTRIES){\n if (oldEntry.stateKey === activeStateKey) {\n // Fast path. This entry in the old list that corresponds to the key that\n // is now active. We've already placed a clone of this entry at the front\n // of the new list. We can reuse the rest of the old list without cloning.\n // NOTE: We don't need to worry about eviction in this case because we\n // haven't increased the size of the cache, and we assume the max size\n // is constant across renders. If we were to change it to a dynamic limit,\n // then the implementation would need to account for that.\n clonedEntry.next = oldEntry.next;\n break;\n } else {\n // Clone the entry and append it to the list.\n n++;\n const entry = {\n tree: oldEntry.tree,\n stateKey: oldEntry.stateKey,\n next: null\n };\n clonedEntry.next = entry;\n clonedEntry = entry;\n }\n oldEntry = oldEntry.next;\n }\n setPrevActiveEntry(newActiveEntry);\n return newActiveEntry;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=bfcache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2JmY2FjaGUuanMiLCJtYXBwaW5ncyI6Ijs7OztvREFpQ2dCQTs7O2VBQUFBOzs7bUNBaENTO0FBRXpCLGtFQUFrRTtBQUNsRSxNQUFNQyx1QkFBdUJDLE1BQWtDLEdBQUcsQ0FBQyxHQUFHO0FBNkIvRCxTQUFTRixpQkFDZEssVUFBNkIsRUFDN0JDLGNBQXNCO0lBRXRCLHdFQUF3RTtJQUN4RSwyRUFBMkU7SUFDM0UsMkRBQTJEO0lBQzNELHlFQUF5RTtJQUN6RSwyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDRFQUE0RTtJQUM1RSx3RUFBd0U7SUFDeEUsc0VBQXNFO0lBQ3RFLE1BQU0sQ0FBQ0MsaUJBQWlCQyxtQkFBbUIsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFDNUM7UUFDRSxNQUFNQyxlQUFtQztZQUN2Q0MsTUFBTU47WUFDTk8sVUFBVU47WUFDVk8sTUFBTTtRQUNSO1FBQ0EsT0FBT0g7SUFDVDtJQUdGLElBQUlILGdCQUFnQkksSUFBSSxLQUFLTixZQUFZO1FBQ3ZDLGlFQUFpRTtRQUNqRSxrQkFBa0I7UUFDbEIsT0FBT0U7SUFDVDtJQUVBLDRFQUE0RTtJQUM1RSwyRUFBMkU7SUFDM0UsK0RBQStEO0lBQy9ELEVBQUU7SUFDRiw2RUFBNkU7SUFDN0UsNkRBQTZEO0lBRTdELDJFQUEyRTtJQUMzRSxlQUFlO0lBQ2YsTUFBTU8saUJBQXFDO1FBQ3pDSCxNQUFNTjtRQUNOTyxVQUFVTjtRQUNWTyxNQUFNO0lBQ1I7SUFFQSwyRUFBMkU7SUFDM0UsNkVBQTZFO0lBQzdFLG1EQUFtRDtJQUNuRCxJQUFJRSxJQUFJO0lBQ1IsSUFBSUMsV0FBc0NUO0lBQzFDLElBQUlVLGNBQWtDSDtJQUN0QyxNQUFPRSxhQUFhLFFBQVFELElBQUlkLHFCQUFzQjtRQUNwRCxJQUFJZSxTQUFTSixRQUFRLEtBQUtOLGdCQUFnQjtZQUN4Qyx5RUFBeUU7WUFDekUseUVBQXlFO1lBQ3pFLDBFQUEwRTtZQUMxRSxzRUFBc0U7WUFDdEUsc0VBQXNFO1lBQ3RFLDBFQUEwRTtZQUMxRSwwREFBMEQ7WUFDMURXLFlBQVlKLElBQUksR0FBR0csU0FBU0gsSUFBSTtZQUNoQztRQUNGLE9BQU87WUFDTCw2Q0FBNkM7WUFDN0NFO1lBQ0EsTUFBTUcsUUFBNEI7Z0JBQ2hDUCxNQUFNSyxTQUFTTCxJQUFJO2dCQUNuQkMsVUFBVUksU0FBU0osUUFBUTtnQkFDM0JDLE1BQU07WUFDUjtZQUNBSSxZQUFZSixJQUFJLEdBQUdLO1lBQ25CRCxjQUFjQztRQUNoQjtRQUNBRixXQUFXQSxTQUFTSCxJQUFJO0lBQzFCO0lBRUFMLG1CQUFtQk07SUFDbkIsT0FBT0E7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL2JmY2FjaGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuLy8gV2hlbiB0aGUgZmxhZyBpcyBkaXNhYmxlZCwgb25seSB0cmFjayB0aGUgY3VycmVudGx5IGFjdGl2ZSB0cmVlXG5jb25zdCBNQVhfQkZfQ0FDSEVfRU5UUklFUyA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkZfQ0FDSEUgPyAzIDogMVxuXG5leHBvcnQgdHlwZSBSb3V0ZXJCRkNhY2hlRW50cnkgPSB7XG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIHN0YXRlS2V5OiBzdHJpbmdcbiAgLy8gVGhlIGVudHJpZXMgZm9ybSBhIGxpbmtlZCBsaXN0LCBzb3J0ZWQgaW4gb3JkZXIgb2YgbW9zdCByZWNlbnRseSBhY3RpdmUuXG4gIG5leHQ6IFJvdXRlckJGQ2FjaGVFbnRyeSB8IG51bGxcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgbW9zdCByZWNlbnQgTiB0cmVlcyAoRmxpZ2h0Um91dGVyU3RhdGVzKSB0aGF0IHdlcmUgYWN0aXZlXG4gKiBhdCBhIGNlcnRhaW4gc2VnbWVudCBsZXZlbC4gRS5nLiBmb3IgYSBzZWdtZW50IFwiL2EvYi9bcGFyYW1dXCIsIHRoaXMgaG9va1xuICogdHJhY2tzIHRoZSBsYXN0IE4gcGFyYW0gdmFsdWVzIHRoYXQgdGhlIHJvdXRlciByZW5kZXJlZCBmb3IgTi5cbiAqXG4gKiBUaGUgcmVzdWx0IG9mIHRoaXMgaG9vayBwcmVjaXNlbHkgZGV0ZXJtaW5lcyB0aGUgbnVtYmVyIGFuZCBvcmRlciBvZlxuICogdHJlZXMgdGhhdCBhcmUgcmVuZGVyZWQgaW4gcGFyYWxsZWwgYXQgdGhlaXIgc2VnbWVudCBsZXZlbC5cbiAqXG4gKiBUaGUgcHVycG9zZSBvZiB0aGlzIGNhY2hlIGlzIHRvIHdlIGNhbiBwcmVzZXJ2ZSB0aGUgUmVhY3QgYW5kIERPTSBzdGF0ZSBvZlxuICogc29tZSBudW1iZXIgb2YgaW5hY3RpdmUgdHJlZXMsIGJ5IHJlbmRlcmluZyB0aGVtIGluIGFuIDxBY3Rpdml0eT4gYm91bmRhcnkuXG4gKiBUaGF0IG1lYW5zIGl0IHdvdWxkIG5vdCBtYWtlIHNlbnNlIGZvciB0aGUgdGhlIGxpZmV0aW1lIG9mIHRoZSBjYWNoZSB0byBiZVxuICogYW55IGxvbmdlciB0aGFuIHRoZSBsaWZldGltZSBvZiB0aGUgUmVhY3QgdHJlZTsgZS5nLiBpZiB0aGUgaG9vayB3ZXJlXG4gKiB1bm1vdW50ZWQsIHRoZW4gdGhlIFJlYWN0IHRyZWUgd291bGQgYmUsIHRvby4gU28sIHdlIHVzZSBSZWFjdCBzdGF0ZSB0b1xuICogbWFuYWdlIGl0LlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkb24ndCBzdG9yZSB0aGUgUlNDIGRhdGEgZm9yIHRoZSBjYWNoZSBlbnRyaWVzIGluIHRoaXMgaG9vayDigJRcbiAqIHRoZSBkYXRhIGZvciBpbmFjdGl2ZSBzZWdtZW50cyBpcyBzdG9yZWQgaW4gdGhlIHBhcmVudCBDYWNoZU5vZGUsIHdoaWNoXG4gKiAqZG9lcyogaGF2ZSBhIGxvbmdlciBsaWZldGltZSB0aGFuIHRoZSBSZWFjdCB0cmVlLiBUaGlzIGhvb2sgb25seSBkZXRlcm1pbmVzXG4gKiB3aGljaCBvZiB0aG9zZSB0cmVlcyBzaG91bGQgaGF2ZSB0aGVpciAqc3RhdGUqIHByZXNlcnZlZCwgYnkgPEFjdGl2aXR5Pi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJvdXRlckJGQ2FjaGUoXG4gIGFjdGl2ZVRyZWU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBhY3RpdmVTdGF0ZUtleTogc3RyaW5nXG4pOiBSb3V0ZXJCRkNhY2hlRW50cnkge1xuICAvLyBUaGUgY3VycmVudGx5IGFjdGl2ZSBlbnRyeS4gVGhlIGVudHJpZXMgZm9ybSBhIGxpbmtlZCBsaXN0LCBzb3J0ZWQgaW5cbiAgLy8gb3JkZXIgb2YgbW9zdCByZWNlbnRseSBhY3RpdmUuIFRoaXMgYWxsb3dzIHVzIHRvIHJldXNlIHBhcnRzIG9mIHRoZSBsaXN0XG4gIC8vIHdpdGhvdXQgY2xvbmluZywgdW5sZXNzIHRoZXJlJ3MgYSByZW9yZGVyaW5nIG9yIHJlbW92YWwuXG4gIC8vIFRPRE86IE9uY2Ugd2Ugc3RhcnQgdHJhY2tpbmcgYmFjay9mb3J3YXJkIGhpc3RvcnkgYXQgZWFjaCByb3V0ZSBsZXZlbCxcbiAgLy8gd2Ugc2hvdWxkIHVzZSB0aGUgaGlzdG9yeSBvcmRlciBpbnN0ZWFkLiBJbiBvdGhlciB3b3Jkcywgd2hlbiB0cmF2ZXJzaW5nXG4gIC8vIHRvIGFuIGV4aXN0aW5nIGVudHJ5IGFzIGEgcmVzdWx0IG9mIGEgcG9wc3RhdGUgZXZlbnQsIHdlIHNob3VsZCBtYWludGFpblxuICAvLyB0aGUgZXhpc3Rpbmcgb3JkZXIgaW5zdGVhZCBvZiBtb3ZpbmcgaXQgdG8gdGhlIGZyb250IG9mIHRoZSBsaXN0LiBJIHRoaW5rXG4gIC8vIGFuIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBjb3VsZCBiZSB0byBwYXNzIGFuIGluY3JlbWVudGluZyBpZFxuICAvLyB0byBoaXN0b3J5LnB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUsIHRoZW4gdXNlIHRoYXQgaGVyZSBmb3Igb3JkZXJpbmcuXG4gIGNvbnN0IFtwcmV2QWN0aXZlRW50cnksIHNldFByZXZBY3RpdmVFbnRyeV0gPSB1c2VTdGF0ZTxSb3V0ZXJCRkNhY2hlRW50cnk+KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxFbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5ID0ge1xuICAgICAgICB0cmVlOiBhY3RpdmVUcmVlLFxuICAgICAgICBzdGF0ZUtleTogYWN0aXZlU3RhdGVLZXksXG4gICAgICAgIG5leHQ6IG51bGwsXG4gICAgICB9XG4gICAgICByZXR1cm4gaW5pdGlhbEVudHJ5XG4gICAgfVxuICApXG5cbiAgaWYgKHByZXZBY3RpdmVFbnRyeS50cmVlID09PSBhY3RpdmVUcmVlKSB7XG4gICAgLy8gRmFzdCBwYXRoLiBUaGUgYWN0aXZlIHRyZWUgaGFzbid0IGNoYW5nZWQsIHNvIHdlIGNhbiByZXVzZSB0aGVcbiAgICAvLyBleGlzdGluZyBzdGF0ZS5cbiAgICByZXR1cm4gcHJldkFjdGl2ZUVudHJ5XG4gIH1cblxuICAvLyBUaGUgcm91dGUgdHJlZSBjaGFuZ2VkLiBOb3RlIHRoYXQgdGhpcyBkb2Vzbid0IG1lYW4gdGhhdCB0aGUgdHJlZSBjaGFuZ2VkXG4gIC8vICphdCB0aGlzIGxldmVsKiDigJQgdGhlIGNoYW5nZSBtYXkgYmUgZHVlIHRvIGEgY2hpbGQgcm91dGUuIEVpdGhlciB3YXksIHdlXG4gIC8vIG5lZWQgdG8gZWl0aGVyIGFkZCBvciB1cGRhdGUgdGhlIHJvdXRlciB0cmVlIGluIHRoZSBiZmNhY2hlLlxuICAvL1xuICAvLyBUaGUgcmVzdCBvZiB0aGUgY29kZSBsb29rcyBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gaXQgYWN0dWFsbHkgaXMgYmVjYXVzZSB3ZVxuICAvLyBjYW4ndCBtdXRhdGUgdGhlIHN0YXRlIGluIHBsYWNlOyB3ZSBoYXZlIHRvIGNvcHktb24td3JpdGUuXG5cbiAgLy8gQ3JlYXRlIGEgbmV3IGVudHJ5IGZvciB0aGUgYWN0aXZlIGNhY2hlIGtleS4gVGhpcyBpcyB0aGUgaGVhZCBvZiB0aGUgbmV3XG4gIC8vIGxpbmtlZCBsaXN0LlxuICBjb25zdCBuZXdBY3RpdmVFbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5ID0ge1xuICAgIHRyZWU6IGFjdGl2ZVRyZWUsXG4gICAgc3RhdGVLZXk6IGFjdGl2ZVN0YXRlS2V5LFxuICAgIG5leHQ6IG51bGwsXG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIGFwcGVuZCB0aGUgb2xkIGxpc3Qgb250byB0aGUgbmV3IGxpc3QuIElmIHRoZSBoZWFkIG9mIHRoZSBuZXdcbiAgLy8gbGlzdCB3YXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBjYWNoZSwgdGhlbiB3ZSdsbCBuZWVkIHRvIGNsb25lIGV2ZXJ5dGhpbmdcbiAgLy8gdGhhdCBjYW1lIGJlZm9yZSBpdC4gVGhlbiB3ZSBjYW4gcmV1c2UgdGhlIHJlc3QuXG4gIGxldCBuID0gMVxuICBsZXQgb2xkRW50cnk6IFJvdXRlckJGQ2FjaGVFbnRyeSB8IG51bGwgPSBwcmV2QWN0aXZlRW50cnlcbiAgbGV0IGNsb25lZEVudHJ5OiBSb3V0ZXJCRkNhY2hlRW50cnkgPSBuZXdBY3RpdmVFbnRyeVxuICB3aGlsZSAob2xkRW50cnkgIT09IG51bGwgJiYgbiA8IE1BWF9CRl9DQUNIRV9FTlRSSUVTKSB7XG4gICAgaWYgKG9sZEVudHJ5LnN0YXRlS2V5ID09PSBhY3RpdmVTdGF0ZUtleSkge1xuICAgICAgLy8gRmFzdCBwYXRoLiBUaGlzIGVudHJ5IGluIHRoZSBvbGQgbGlzdCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBrZXkgdGhhdFxuICAgICAgLy8gaXMgbm93IGFjdGl2ZS4gV2UndmUgYWxyZWFkeSBwbGFjZWQgYSBjbG9uZSBvZiB0aGlzIGVudHJ5IGF0IHRoZSBmcm9udFxuICAgICAgLy8gb2YgdGhlIG5ldyBsaXN0LiBXZSBjYW4gcmV1c2UgdGhlIHJlc3Qgb2YgdGhlIG9sZCBsaXN0IHdpdGhvdXQgY2xvbmluZy5cbiAgICAgIC8vIE5PVEU6IFdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgZXZpY3Rpb24gaW4gdGhpcyBjYXNlIGJlY2F1c2Ugd2VcbiAgICAgIC8vIGhhdmVuJ3QgaW5jcmVhc2VkIHRoZSBzaXplIG9mIHRoZSBjYWNoZSwgYW5kIHdlIGFzc3VtZSB0aGUgbWF4IHNpemVcbiAgICAgIC8vIGlzIGNvbnN0YW50IGFjcm9zcyByZW5kZXJzLiBJZiB3ZSB3ZXJlIHRvIGNoYW5nZSBpdCB0byBhIGR5bmFtaWMgbGltaXQsXG4gICAgICAvLyB0aGVuIHRoZSBpbXBsZW1lbnRhdGlvbiB3b3VsZCBuZWVkIHRvIGFjY291bnQgZm9yIHRoYXQuXG4gICAgICBjbG9uZWRFbnRyeS5uZXh0ID0gb2xkRW50cnkubmV4dFxuICAgICAgYnJlYWtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ2xvbmUgdGhlIGVudHJ5IGFuZCBhcHBlbmQgaXQgdG8gdGhlIGxpc3QuXG4gICAgICBuKytcbiAgICAgIGNvbnN0IGVudHJ5OiBSb3V0ZXJCRkNhY2hlRW50cnkgPSB7XG4gICAgICAgIHRyZWU6IG9sZEVudHJ5LnRyZWUsXG4gICAgICAgIHN0YXRlS2V5OiBvbGRFbnRyeS5zdGF0ZUtleSxcbiAgICAgICAgbmV4dDogbnVsbCxcbiAgICAgIH1cbiAgICAgIGNsb25lZEVudHJ5Lm5leHQgPSBlbnRyeVxuICAgICAgY2xvbmVkRW50cnkgPSBlbnRyeVxuICAgIH1cbiAgICBvbGRFbnRyeSA9IG9sZEVudHJ5Lm5leHRcbiAgfVxuXG4gIHNldFByZXZBY3RpdmVFbnRyeShuZXdBY3RpdmVFbnRyeSlcbiAgcmV0dXJuIG5ld0FjdGl2ZUVudHJ5XG59XG4iXSwibmFtZXMiOlsidXNlUm91dGVyQkZDYWNoZSIsIk1BWF9CRl9DQUNIRV9FTlRSSUVTIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkZfQ0FDSEUiLCJhY3RpdmVUcmVlIiwiYWN0aXZlU3RhdGVLZXkiLCJwcmV2QWN0aXZlRW50cnkiLCJzZXRQcmV2QWN0aXZlRW50cnkiLCJ1c2VTdGF0ZSIsImluaXRpYWxFbnRyeSIsInRyZWUiLCJzdGF0ZUtleSIsIm5leHQiLCJuZXdBY3RpdmVFbnRyeSIsIm4iLCJvbGRFbnRyeSIsImNsb25lZEVudHJ5IiwiZW50cnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/bfcache.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/builtin/global-error.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _handleisrerror = __webpack_require__(/*! ../handle-isr-error */ \"(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js\");\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};\nfunction DefaultGlobalError(param) {\n let { error } = param;\n const digest = error == null ? void 0 : error.digest;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"html\", {\n id: \"__next_error__\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"head\", {}),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_handleisrerror.HandleISRError, {\n error: error\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.error,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.text,\n children: [\n \"Application error: a \",\n digest ? 'server' : 'client',\n \"-side exception has occurred while loading \",\n window.location.hostname,\n \" (see the\",\n ' ',\n digest ? 'server logs' : 'browser console',\n \" for more information).\"\n ]\n }),\n digest ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n style: styles.text,\n children: \"Digest: \" + digest\n }) : null\n ]\n })\n })\n ]\n })\n ]\n });\n}\nconst _default = DefaultGlobalError;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=global-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBb0RBOzs7ZUFBQTs7Ozs0Q0FsRCtCO0FBRS9CLE1BQU1BLFNBQVM7SUFDYkMsT0FBTztRQUNMLDBGQUEwRjtRQUMxRkMsWUFDRTtRQUNGQyxRQUFRO1FBQ1JDLFdBQVc7UUFDWEMsU0FBUztRQUNUQyxlQUFlO1FBQ2ZDLFlBQVk7UUFDWkMsZ0JBQWdCO0lBQ2xCO0lBQ0FDLE1BQU07UUFDSkMsVUFBVTtRQUNWQyxZQUFZO1FBQ1pDLFlBQVk7UUFDWkMsUUFBUTtJQUNWO0FBQ0Y7QUFLQSxTQUFTQyxtQkFBbUIsS0FBeUI7SUFBekIsTUFBRWIsS0FBSyxFQUFrQixHQUF6QjtJQUMxQixNQUFNYyxTQUE2QmQsU0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsTUFBT2MsTUFBTTtJQUNoRCxxQkFDRSxzQkFBQ0MsUUFBQUE7UUFBS0MsSUFBRzs7MEJBQ1AscUJBQUNDLFFBQUFBLENBQUFBOzBCQUNELHNCQUFDQyxRQUFBQTs7a0NBQ0MscUJBQUNDLGdCQUFBQSxjQUFjO3dCQUFDbkIsT0FBT0E7O2tDQUN2QixxQkFBQ29CLE9BQUFBO3dCQUFJQyxPQUFPdEIsT0FBT0MsS0FBSztrQ0FDdEIsb0NBQUNvQixPQUFBQTs7OENBQ0Msc0JBQUNFLE1BQUFBO29DQUFHRCxPQUFPdEIsT0FBT1MsSUFBSTs7d0NBQUU7d0NBQ0FNLFNBQVMsV0FBVzt3Q0FBUzt3Q0FDdkJTLE9BQU9DLFFBQVEsQ0FBQ0MsUUFBUTt3Q0FBQzt3Q0FBVTt3Q0FDOURYLFNBQVMsZ0JBQWdCO3dDQUFrQjs7O2dDQUc3Q0EsU0FBQUEsV0FBQUEsR0FBUyxxQkFBQ1ksS0FBQUE7b0NBQUVMLE9BQU90QixPQUFPUyxJQUFJOzhDQUFJLGFBQVVNO3FDQUFnQjs7Ozs7Ozs7QUFNekU7TUFJQSxXQUFlRCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL2dsb2JhbC1lcnJvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IEhhbmRsZUlTUkVycm9yIH0gZnJvbSAnLi4vaGFuZGxlLWlzci1lcnJvcidcblxuY29uc3Qgc3R5bGVzID0ge1xuICBlcnJvcjoge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9ibG9iL21haW4vbW9kZXJuLW5vcm1hbGl6ZS5jc3MjTDM4LUw1MlxuICAgIGZvbnRGYW1pbHk6XG4gICAgICAnc3lzdGVtLXVpLFwiU2Vnb2UgVUlcIixSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIicsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgfSxcbiAgdGV4dDoge1xuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgZm9udFdlaWdodDogNDAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyOHB4JyxcbiAgICBtYXJnaW46ICcwIDhweCcsXG4gIH0sXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEdsb2JhbEVycm9yQ29tcG9uZW50ID0gUmVhY3QuQ29tcG9uZW50VHlwZTx7XG4gIGVycm9yOiBhbnlcbn0+XG5mdW5jdGlvbiBEZWZhdWx0R2xvYmFsRXJyb3IoeyBlcnJvciB9OiB7IGVycm9yOiBhbnkgfSkge1xuICBjb25zdCBkaWdlc3Q6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGVycm9yPy5kaWdlc3RcbiAgcmV0dXJuIChcbiAgICA8aHRtbCBpZD1cIl9fbmV4dF9lcnJvcl9fXCI+XG4gICAgICA8aGVhZD48L2hlYWQ+XG4gICAgICA8Ym9keT5cbiAgICAgICAgPEhhbmRsZUlTUkVycm9yIGVycm9yPXtlcnJvcn0gLz5cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmVycm9yfT5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGgyIHN0eWxlPXtzdHlsZXMudGV4dH0+XG4gICAgICAgICAgICAgIEFwcGxpY2F0aW9uIGVycm9yOiBhIHtkaWdlc3QgPyAnc2VydmVyJyA6ICdjbGllbnQnfS1zaWRlIGV4Y2VwdGlvblxuICAgICAgICAgICAgICBoYXMgb2NjdXJyZWQgd2hpbGUgbG9hZGluZyB7d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfSAoc2VlIHRoZXsnICd9XG4gICAgICAgICAgICAgIHtkaWdlc3QgPyAnc2VydmVyIGxvZ3MnIDogJ2Jyb3dzZXIgY29uc29sZSd9IGZvciBtb3JlXG4gICAgICAgICAgICAgIGluZm9ybWF0aW9uKS5cbiAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICB7ZGlnZXN0ID8gPHAgc3R5bGU9e3N0eWxlcy50ZXh0fT57YERpZ2VzdDogJHtkaWdlc3R9YH08L3A+IDogbnVsbH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2JvZHk+XG4gICAgPC9odG1sPlxuICApXG59XG5cbi8vIEV4cG9ydGVkIHNvIHRoYXQgdGhlIGltcG9ydCBzaWduYXR1cmUgaW4gdGhlIGxvYWRlcnMgY2FuIGJlIGlkZW50aWNhbCB0byB1c2VyXG4vLyBzdXBwbGllZCBjdXN0b20gZ2xvYmFsIGVycm9yIHNpZ25hdHVyZXMuXG5leHBvcnQgZGVmYXVsdCBEZWZhdWx0R2xvYmFsRXJyb3JcbiJdLCJuYW1lcyI6WyJzdHlsZXMiLCJlcnJvciIsImZvbnRGYW1pbHkiLCJoZWlnaHQiLCJ0ZXh0QWxpZ24iLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsInRleHQiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJsaW5lSGVpZ2h0IiwibWFyZ2luIiwiRGVmYXVsdEdsb2JhbEVycm9yIiwiZGlnZXN0IiwiaHRtbCIsImlkIiwiaGVhZCIsImJvZHkiLCJIYW5kbGVJU1JFcnJvciIsImRpdiIsInN0eWxlIiwiaDIiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhvc3RuYW1lIiwicCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/client-page.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/client-page.js ***!
|
||
\*****************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ClientPageRoot\", ({\n enumerable: true,\n get: function() {\n return ClientPageRoot;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction ClientPageRoot(param) {\n let { Component, searchParams, params, promises } = param;\n if (true) {\n const { workAsyncStorage } = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\");\n let clientSearchParams;\n let clientParams;\n // We are going to instrument the searchParams prop with tracking for the\n // appropriate context. We wrap differently in prerendering vs rendering\n const store = workAsyncStorage.getStore();\n if (!store) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to exist when handling searchParams in a client Page.'), \"__NEXT_ERROR_CODE\", {\n value: \"E564\",\n enumerable: false,\n configurable: true\n });\n }\n const { createSearchParamsFromClient } = __webpack_require__(/*! ../../server/request/search-params */ \"(ssr)/./node_modules/next/dist/server/request/search-params.js\");\n clientSearchParams = createSearchParamsFromClient(searchParams, store);\n const { createParamsFromClient } = __webpack_require__(/*! ../../server/request/params */ \"(ssr)/./node_modules/next/dist/server/request/params.js\");\n clientParams = createParamsFromClient(params, store);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n params: clientParams,\n searchParams: clientSearchParams\n });\n } else {}\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=client-page.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBZWdCQTs7O2VBQUFBOzs7OzRDQVplO0FBWXhCLFNBQVNBLGVBQWUsS0FXOUI7SUFYOEIsTUFDN0JDLFNBQVMsRUFDVEMsWUFBWSxFQUNaQyxNQUFNLEVBQ04sUUFDUSxFQU1ULEdBWDhCO0lBWTdCLElBQUksSUFBNkIsRUFBRTtRQUNqQyxNQUFNLEVBQUVHLGdCQUFnQixFQUFFLEdBQ3hCQyxtQkFBT0EsQ0FBQywwRkFBcUQ7UUFFL0QsSUFBSUM7UUFDSixJQUFJQztRQUNKLHlFQUF5RTtRQUN6RSx3RUFBd0U7UUFDeEUsTUFBTUMsUUFBUUosaUJBQWlCSyxRQUFRO1FBQ3ZDLElBQUksQ0FBQ0QsT0FBTztZQUNWLE1BQU0scUJBRUwsQ0FGSyxJQUFJRSxnQkFBQUEsY0FBYyxDQUN0Qiw2RUFESTt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFFQSxNQUFNLEVBQUVDLDRCQUE0QixFQUFFLEdBQ3BDTixtQkFBT0EsQ0FBQywwR0FBb0M7UUFDOUNDLHFCQUFxQkssNkJBQTZCWCxjQUFjUTtRQUVoRSxNQUFNLEVBQUVJLHNCQUFzQixFQUFFLEdBQzlCUCxtQkFBT0EsQ0FBQyw0RkFBNkI7UUFDdkNFLGVBQWVLLHVCQUF1QlgsUUFBUU87UUFFOUMscUJBQU8scUJBQUNULFdBQUFBO1lBQVVFLFFBQVFNO1lBQWNQLGNBQWNNOztJQUN4RCxPQUFPLEVBU047QUFDSCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHsgSW52YXJpYW50RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvcidcblxuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5cbi8qKlxuICogV2hlbiB0aGUgUGFnZSBpcyBhIGNsaWVudCBjb21wb25lbnQgd2Ugc2VuZCB0aGUgcGFyYW1zIGFuZCBzZWFyY2hQYXJhbXMgdG8gdGhpcyBjbGllbnQgd3JhcHBlclxuICogd2hlcmUgdGhleSBhcmUgdHVybmVkIGludG8gZHluYW1pY2FsbHkgdHJhY2tlZCB2YWx1ZXMgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byB0aGUgYWN0dWFsIFBhZ2UgY29tcG9uZW50LlxuICpcbiAqIGFkZGl0aW9uYWxseSB3ZSBtYXkgc2VuZCBwcm9taXNlcyByZXByZXNlbnRpbmcgdGhlIHBhcmFtcyBhbmQgc2VhcmNoUGFyYW1zLiBXZSBkb24ndCBldmVyIHVzZSB0aGVzZSBwYXNzZWRcbiAqIHZhbHVlcyBidXQgaXQgY2FuIGJlIG5lY2Vzc2FyeSBmb3IgdGhlIHNlbmRlciB0byBzZW5kIGEgUHJvbWlzZSB0aGF0IGRvZXNuJ3QgcmVzb2x2ZSBpbiBjZXJ0YWluIHNpdHVhdGlvbnMuXG4gKiBJdCBpcyB1cCB0byB0aGUgY2FsbGVyIHRvIGRlY2lkZSBpZiB0aGUgcHJvbWlzZXMgYXJlIG5lZWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsaWVudFBhZ2VSb290KHtcbiAgQ29tcG9uZW50LFxuICBzZWFyY2hQYXJhbXMsXG4gIHBhcmFtcyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm9taXNlcyxcbn06IHtcbiAgQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgc2VhcmNoUGFyYW1zOiBQYXJzZWRVcmxRdWVyeVxuICBwYXJhbXM6IFBhcmFtc1xuICBwcm9taXNlcz86IEFycmF5PFByb21pc2U8YW55Pj5cbn0pIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc3QgeyB3b3JrQXN5bmNTdG9yYWdlIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcblxuICAgIGxldCBjbGllbnRTZWFyY2hQYXJhbXM6IFByb21pc2U8UGFyc2VkVXJsUXVlcnk+XG4gICAgbGV0IGNsaWVudFBhcmFtczogUHJvbWlzZTxQYXJhbXM+XG4gICAgLy8gV2UgYXJlIGdvaW5nIHRvIGluc3RydW1lbnQgdGhlIHNlYXJjaFBhcmFtcyBwcm9wIHdpdGggdHJhY2tpbmcgZm9yIHRoZVxuICAgIC8vIGFwcHJvcHJpYXRlIGNvbnRleHQuIFdlIHdyYXAgZGlmZmVyZW50bHkgaW4gcHJlcmVuZGVyaW5nIHZzIHJlbmRlcmluZ1xuICAgIGNvbnN0IHN0b3JlID0gd29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gICAgaWYgKCFzdG9yZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAnRXhwZWN0ZWQgd29ya1N0b3JlIHRvIGV4aXN0IHdoZW4gaGFuZGxpbmcgc2VhcmNoUGFyYW1zIGluIGEgY2xpZW50IFBhZ2UuJ1xuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHsgY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9zZWFyY2gtcGFyYW1zJylcbiAgICBjbGllbnRTZWFyY2hQYXJhbXMgPSBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50KHNlYXJjaFBhcmFtcywgc3RvcmUpXG5cbiAgICBjb25zdCB7IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnKVxuICAgIGNsaWVudFBhcmFtcyA9IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQocGFyYW1zLCBzdG9yZSlcblxuICAgIHJldHVybiA8Q29tcG9uZW50IHBhcmFtcz17Y2xpZW50UGFyYW1zfSBzZWFyY2hQYXJhbXM9e2NsaWVudFNlYXJjaFBhcmFtc30gLz5cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuYnJvd3NlcicpIGFzIHR5cGVvZiBpbXBvcnQoJy4uL3JlcXVlc3Qvc2VhcmNoLXBhcmFtcy5icm93c2VyJylcbiAgICBjb25zdCBjbGllbnRTZWFyY2hQYXJhbXMgPSBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXNGcm9tQ2xpZW50KHNlYXJjaFBhcmFtcylcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi9yZXF1ZXN0L3BhcmFtcy5icm93c2VyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vcmVxdWVzdC9wYXJhbXMuYnJvd3NlcicpXG4gICAgY29uc3QgY2xpZW50UGFyYW1zID0gY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudChwYXJhbXMpXG5cbiAgICByZXR1cm4gPENvbXBvbmVudCBwYXJhbXM9e2NsaWVudFBhcmFtc30gc2VhcmNoUGFyYW1zPXtjbGllbnRTZWFyY2hQYXJhbXN9IC8+XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDbGllbnRQYWdlUm9vdCIsIkNvbXBvbmVudCIsInNlYXJjaFBhcmFtcyIsInBhcmFtcyIsInByb21pc2VzIiwid2luZG93Iiwid29ya0FzeW5jU3RvcmFnZSIsInJlcXVpcmUiLCJjbGllbnRTZWFyY2hQYXJhbXMiLCJjbGllbnRQYXJhbXMiLCJzdG9yZSIsImdldFN0b3JlIiwiSW52YXJpYW50RXJyb3IiLCJjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50IiwiY3JlYXRlUGFyYW1zRnJvbUNsaWVudCIsImNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnQiLCJjcmVhdGVSZW5kZXJQYXJhbXNGcm9tQ2xpZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/client-page.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/client-segment.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/client-segment.js ***!
|
||
\********************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ClientSegmentRoot\", ({\n enumerable: true,\n get: function() {\n return ClientSegmentRoot;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction ClientSegmentRoot(param) {\n let { Component, slots, params, promise } = param;\n if (true) {\n const { workAsyncStorage } = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\");\n let clientParams;\n // We are going to instrument the searchParams prop with tracking for the\n // appropriate context. We wrap differently in prerendering vs rendering\n const store = workAsyncStorage.getStore();\n if (!store) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to exist when handling params in a client segment such as a Layout or Template.'), \"__NEXT_ERROR_CODE\", {\n value: \"E600\",\n enumerable: false,\n configurable: true\n });\n }\n const { createParamsFromClient } = __webpack_require__(/*! ../../server/request/params */ \"(ssr)/./node_modules/next/dist/server/request/params.js\");\n clientParams = createParamsFromClient(params, store);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n ...slots,\n params: clientParams\n });\n } else {}\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=client-segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBY2dCQTs7O2VBQUFBOzs7OzRDQVplO0FBWXhCLFNBQVNBLGtCQUFrQixLQVdqQztJQVhpQyxNQUNoQ0MsU0FBUyxFQUNUQyxLQUFLLEVBQ0xDLE1BQU0sRUFFTkMsT0FBTyxFQU1SLEdBWGlDO0lBWWhDLElBQUksSUFBNkIsRUFBRTtRQUNqQyxNQUFNLEVBQUVFLGdCQUFnQixFQUFFLEdBQ3hCQyxtQkFBT0EsQ0FBQywwRkFBcUQ7UUFFL0QsSUFBSUM7UUFDSix5RUFBeUU7UUFDekUsd0VBQXdFO1FBQ3hFLE1BQU1DLFFBQVFILGlCQUFpQkksUUFBUTtRQUN2QyxJQUFJLENBQUNELE9BQU87WUFDVixNQUFNLHFCQUVMLENBRkssSUFBSUUsZ0JBQUFBLGNBQWMsQ0FDdEIsdUdBREk7dUJBQUE7NEJBQUE7OEJBQUE7WUFFTjtRQUNGO1FBRUEsTUFBTSxFQUFFQyxzQkFBc0IsRUFBRSxHQUM5QkwsbUJBQU9BLENBQUMsNEZBQTZCO1FBQ3ZDQyxlQUFlSSx1QkFBdUJULFFBQVFNO1FBRTlDLHFCQUFPLHFCQUFDUixXQUFBQTtZQUFXLEdBQUdDLEtBQUs7WUFBRUMsUUFBUUs7O0lBQ3ZDLE9BQU8sRUFLTjtBQUNIIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBJbnZhcmlhbnRFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yJ1xuXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcblxuLyoqXG4gKiBXaGVuIHRoZSBQYWdlIGlzIGEgY2xpZW50IGNvbXBvbmVudCB3ZSBzZW5kIHRoZSBwYXJhbXMgdG8gdGhpcyBjbGllbnQgd3JhcHBlclxuICogd2hlcmUgdGhleSBhcmUgdHVybmVkIGludG8gZHluYW1pY2FsbHkgdHJhY2tlZCB2YWx1ZXMgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byB0aGUgYWN0dWFsIFNlZ21lbnQgY29tcG9uZW50LlxuICpcbiAqIGFkZGl0aW9uYWxseSB3ZSBtYXkgc2VuZCBhIHByb21pc2UgcmVwcmVzZW50aW5nIHBhcmFtcy4gV2UgZG9uJ3QgZXZlciB1c2UgdGhpcyBwYXNzZWRcbiAqIHZhbHVlIGJ1dCBpdCBjYW4gYmUgbmVjZXNzYXJ5IGZvciB0aGUgc2VuZGVyIHRvIHNlbmQgYSBQcm9taXNlIHRoYXQgZG9lc24ndCByZXNvbHZlIGluIGNlcnRhaW4gc2l0dWF0aW9uc1xuICogc3VjaCBhcyB3aGVuIGNhY2hlQ29tcG9uZW50cyBpcyBlbmFibGVkLiBJdCBpcyB1cCB0byB0aGUgY2FsbGVyIHRvIGRlY2lkZSBpZiB0aGUgcHJvbWlzZXMgYXJlIG5lZWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsaWVudFNlZ21lbnRSb290KHtcbiAgQ29tcG9uZW50LFxuICBzbG90cyxcbiAgcGFyYW1zLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHByb21pc2UsXG59OiB7XG4gIENvbXBvbmVudDogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHNsb3RzOiB7IFtrZXk6IHN0cmluZ106IFJlYWN0LlJlYWN0Tm9kZSB9XG4gIHBhcmFtczogUGFyYW1zXG4gIHByb21pc2U/OiBQcm9taXNlPGFueT5cbn0pIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc3QgeyB3b3JrQXN5bmNTdG9yYWdlIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcblxuICAgIGxldCBjbGllbnRQYXJhbXM6IFByb21pc2U8UGFyYW1zPlxuICAgIC8vIFdlIGFyZSBnb2luZyB0byBpbnN0cnVtZW50IHRoZSBzZWFyY2hQYXJhbXMgcHJvcCB3aXRoIHRyYWNraW5nIGZvciB0aGVcbiAgICAvLyBhcHByb3ByaWF0ZSBjb250ZXh0LiBXZSB3cmFwIGRpZmZlcmVudGx5IGluIHByZXJlbmRlcmluZyB2cyByZW5kZXJpbmdcbiAgICBjb25zdCBzdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICAgIGlmICghc3RvcmUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgICAgJ0V4cGVjdGVkIHdvcmtTdG9yZSB0byBleGlzdCB3aGVuIGhhbmRsaW5nIHBhcmFtcyBpbiBhIGNsaWVudCBzZWdtZW50IHN1Y2ggYXMgYSBMYXlvdXQgb3IgVGVtcGxhdGUuJ1xuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHsgY3JlYXRlUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcycpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcycpXG4gICAgY2xpZW50UGFyYW1zID0gY3JlYXRlUGFyYW1zRnJvbUNsaWVudChwYXJhbXMsIHN0b3JlKVxuXG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnNsb3RzfSBwYXJhbXM9e2NsaWVudFBhcmFtc30gLz5cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi9yZXF1ZXN0L3BhcmFtcy5icm93c2VyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vcmVxdWVzdC9wYXJhbXMuYnJvd3NlcicpXG4gICAgY29uc3QgY2xpZW50UGFyYW1zID0gY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudChwYXJhbXMpXG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnNsb3RzfSBwYXJhbXM9e2NsaWVudFBhcmFtc30gLz5cbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNsaWVudFNlZ21lbnRSb290IiwiQ29tcG9uZW50Iiwic2xvdHMiLCJwYXJhbXMiLCJwcm9taXNlIiwid2luZG93Iiwid29ya0FzeW5jU3RvcmFnZSIsInJlcXVpcmUiLCJjbGllbnRQYXJhbXMiLCJzdG9yZSIsImdldFN0b3JlIiwiSW52YXJpYW50RXJyb3IiLCJjcmVhdGVQYXJhbXNGcm9tQ2xpZW50IiwiY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/client-segment.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/error-boundary.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/error-boundary.js ***!
|
||
\********************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \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 ErrorBoundary: function() {\n return ErrorBoundary;\n },\n ErrorBoundaryHandler: function() {\n return ErrorBoundaryHandler;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigationuntracked = __webpack_require__(/*! ./navigation-untracked */ \"(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\");\nconst _isnextroutererror = __webpack_require__(/*! ./is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _navfailurehandler = __webpack_require__(/*! ./nav-failure-handler */ \"(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js\");\nconst _handleisrerror = __webpack_require__(/*! ./handle-isr-error */ \"(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js\");\nconst _isbot = __webpack_require__(/*! ../../shared/lib/router/utils/is-bot */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst isBotUserAgent = false && 0;\nclass ErrorBoundaryHandler extends _react.default.Component {\n static getDerivedStateFromError(error) {\n if ((0, _isnextroutererror.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 const { error } = state;\n // if we encounter an error while\n // a navigation is pending we shouldn't render\n // the error boundary and instead should fallback\n // to a hard navigation to attempt recovering\n if (false) {}\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 // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.\n render() {\n //When it's bot request, segment level error boundary will keep rendering the children,\n // the final error will be caught by the root error boundary and determine wether need to apply graceful degrade.\n if (this.state.error && !isBotUserAgent) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_handleisrerror.HandleISRError, {\n error: this.state.error\n }),\n this.props.errorStyles,\n this.props.errorScripts,\n /*#__PURE__*/ (0, _jsxruntime.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), 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 ErrorBoundary(param) {\n let { errorComponent, errorStyles, errorScripts, children } = param;\n // When we're rendering the missing params shell, this will return null. This\n // is because we won't be rendering any not found boundaries or error\n // boundaries for the missing params shell. When this runs on the client\n // (where these errors can occur), we will get the correct pathname.\n const pathname = (0, _navigationuntracked.useUntrackedPathname)();\n if (errorComponent) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorBoundaryHandler, {\n pathname: pathname,\n errorComponent: errorComponent,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=error-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdJZ0JBLGFBQWE7ZUFBYkE7O0lBNUZIQyxvQkFBb0I7ZUFBcEJBOzs7Ozs0RUFsQ21CO2lEQUNLOytDQUNIOytDQUNDOzRDQUNKO21DQUNUO0FBRXRCLE1BQU1DLGlCQUNKLE1BQTZCLElBQUlFLENBQWlDO0FBMEI3RCxNQUFNSCw2QkFBNkJNLE9BQUFBLE9BQUssQ0FBQ0MsU0FBUztJQVN2RCxPQUFPQyx5QkFBeUJDLEtBQVksRUFBRTtRQUM1QyxJQUFJQyxDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCRCxRQUFRO1lBQzVCLCtEQUErRDtZQUMvRCw0R0FBNEc7WUFDNUcsTUFBTUE7UUFDUjtRQUVBLE9BQU87WUFBRUE7UUFBTTtJQUNqQjtJQUVBLE9BQU9FLHlCQUNMQyxLQUFnQyxFQUNoQ0MsS0FBZ0MsRUFDRTtRQUNsQyxNQUFNLEVBQUVKLEtBQUssRUFBRSxHQUFHSTtRQUVsQixpQ0FBaUM7UUFDakMsOENBQThDO1FBQzlDLGlEQUFpRDtRQUNqRCw2Q0FBNkM7UUFDN0MsSUFBSUMsS0FBd0MsRUFBRSxFQVE3QztRQUVEOzs7OztLQUtDLEdBQ0QsSUFBSUYsTUFBTU8sUUFBUSxLQUFLTixNQUFNSyxnQkFBZ0IsSUFBSUwsTUFBTUosS0FBSyxFQUFFO1lBQzVELE9BQU87Z0JBQ0xBLE9BQU87Z0JBQ1BTLGtCQUFrQk4sTUFBTU8sUUFBUTtZQUNsQztRQUNGO1FBQ0EsT0FBTztZQUNMVixPQUFPSSxNQUFNSixLQUFLO1lBQ2xCUyxrQkFBa0JOLE1BQU1PLFFBQVE7UUFDbEM7SUFDRjtJQU1BLHlJQUF5STtJQUN6SUMsU0FBMEI7UUFDeEIsdUZBQXVGO1FBQ3ZGLGlIQUFpSDtRQUNqSCxJQUFJLElBQUksQ0FBQ1AsS0FBSyxDQUFDSixLQUFLLElBQUksQ0FBQ1IsZ0JBQWdCO1lBQ3ZDLHFCQUNFOztrQ0FDRSxxQkFBQ29CLGdCQUFBQSxjQUFjO3dCQUFDWixPQUFPLElBQUksQ0FBQ0ksS0FBSyxDQUFDSixLQUFLOztvQkFDdEMsSUFBSSxDQUFDRyxLQUFLLENBQUNVLFdBQVc7b0JBQ3RCLElBQUksQ0FBQ1YsS0FBSyxDQUFDVyxZQUFZO2tDQUN4QixxQkFBQ0MsSUFBSSxDQUFDWixLQUFLLENBQUNhLGNBQWM7d0JBQ3hCaEIsT0FBTyxJQUFJLENBQUNJLEtBQUssQ0FBQ0osS0FBSzt3QkFDdkJpQixPQUFPLElBQUksQ0FBQ0EsS0FBSzs7OztRQUl6QjtRQUVBLE9BQU8sSUFBSSxDQUFDZCxLQUFLLENBQUNlLFFBQVE7SUFDNUI7SUE1RUFDLFlBQVloQixLQUFnQyxDQUFFO1FBQzVDLEtBQUssQ0FBQ0EsUUFBQUEsSUFBQUEsQ0FvRFJjLEtBQUFBLEdBQVE7WUFDTixJQUFJLENBQUNHLFFBQVEsQ0FBQztnQkFBRXBCLE9BQU87WUFBSztRQUM5QjtRQXJERSxJQUFJLENBQUNJLEtBQUssR0FBRztZQUFFSixPQUFPO1lBQU1TLGtCQUFrQixJQUFJLENBQUNOLEtBQUssQ0FBQ08sUUFBUTtRQUFDO0lBQ3BFO0FBMEVGO0FBV08sU0FBU3BCLGNBQWMsS0FPN0I7SUFQNkIsTUFDNUIwQixjQUFjLEVBQ2RILFdBQVcsRUFDWEMsWUFBWSxFQUNaSSxRQUFRLEVBR1QsR0FQNkI7SUFRNUIsNkVBQTZFO0lBQzdFLHFFQUFxRTtJQUNyRSx3RUFBd0U7SUFDeEUsb0VBQW9FO0lBQ3BFLE1BQU1SLFdBQVdXLENBQUFBLEdBQUFBLHFCQUFBQSxvQkFBQUE7SUFDakIsSUFBSUwsZ0JBQWdCO1FBQ2xCLE9BQ0UsV0FERixHQUNFLHFCQUFDekIsc0JBQUFBO1lBQ0NtQixVQUFVQTtZQUNWTSxnQkFBZ0JBO1lBQ2hCSCxhQUFhQTtZQUNiQyxjQUFjQTtzQkFFYkk7O0lBR1A7SUFFQSxxQkFBTztrQkFBR0E7O0FBQ1oiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCwgeyB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVW50cmFja2VkUGF0aG5hbWUgfSBmcm9tICcuL25hdmlnYXRpb24tdW50cmFja2VkJ1xuaW1wb3J0IHsgaXNOZXh0Um91dGVyRXJyb3IgfSBmcm9tICcuL2lzLW5leHQtcm91dGVyLWVycm9yJ1xuaW1wb3J0IHsgaGFuZGxlSGFyZE5hdkVycm9yIH0gZnJvbSAnLi9uYXYtZmFpbHVyZS1oYW5kbGVyJ1xuaW1wb3J0IHsgSGFuZGxlSVNSRXJyb3IgfSBmcm9tICcuL2hhbmRsZS1pc3ItZXJyb3InXG5pbXBvcnQgeyBpc0JvdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdCdcblxuY29uc3QgaXNCb3RVc2VyQWdlbnQgPVxuICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiBpc0JvdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudClcblxuZXhwb3J0IHR5cGUgRXJyb3JDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPHtcbiAgZXJyb3I6IEVycm9yXG4gIC8vIGdsb2JhbC1lcnJvciwgdGhlcmUncyBubyBgcmVzZXRgIGZ1bmN0aW9uO1xuICAvLyByZWd1bGFyIGVycm9yIGJvdW5kYXJ5LCB0aGVyZSdzIGEgYHJlc2V0YCBmdW5jdGlvbi5cbiAgcmVzZXQ/OiAoKSA9PiB2b2lkXG59PlxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yQm91bmRhcnlQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIGVycm9yQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCB8IHVuZGVmaW5lZFxuICBlcnJvclN0eWxlcz86IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICBlcnJvclNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbn1cblxuaW50ZXJmYWNlIEVycm9yQm91bmRhcnlIYW5kbGVyUHJvcHMgZXh0ZW5kcyBFcnJvckJvdW5kYXJ5UHJvcHMge1xuICBwYXRobmFtZTogc3RyaW5nIHwgbnVsbFxuICBlcnJvckNvbXBvbmVudDogRXJyb3JDb21wb25lbnRcbn1cblxuaW50ZXJmYWNlIEVycm9yQm91bmRhcnlIYW5kbGVyU3RhdGUge1xuICBlcnJvcjogRXJyb3IgfCBudWxsXG4gIHByZXZpb3VzUGF0aG5hbWU6IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yQm91bmRhcnlIYW5kbGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFxuICBFcnJvckJvdW5kYXJ5SGFuZGxlclByb3BzLFxuICBFcnJvckJvdW5kYXJ5SGFuZGxlclN0YXRlXG4+IHtcbiAgY29uc3RydWN0b3IocHJvcHM6IEVycm9yQm91bmRhcnlIYW5kbGVyUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcbiAgICB0aGlzLnN0YXRlID0geyBlcnJvcjogbnVsbCwgcHJldmlvdXNQYXRobmFtZTogdGhpcy5wcm9wcy5wYXRobmFtZSB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yOiBFcnJvcikge1xuICAgIGlmIChpc05leHRSb3V0ZXJFcnJvcihlcnJvcikpIHtcbiAgICAgIC8vIFJlLXRocm93IGlmIGFuIGV4cGVjdGVkIGludGVybmFsIE5leHQuanMgcm91dGVyIGVycm9yIG9jY3Vyc1xuICAgICAgLy8gdGhpcyBtZWFucyBpdCBzaG91bGQgYmUgaGFuZGxlZCBieSBhIGRpZmZlcmVudCBib3VuZGFyeSAoc3VjaCBhcyBhIE5vdEZvdW5kIGJvdW5kYXJ5IGluIGEgcGFyZW50IHNlZ21lbnQpXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIHJldHVybiB7IGVycm9yIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoXG4gICAgcHJvcHM6IEVycm9yQm91bmRhcnlIYW5kbGVyUHJvcHMsXG4gICAgc3RhdGU6IEVycm9yQm91bmRhcnlIYW5kbGVyU3RhdGVcbiAgKTogRXJyb3JCb3VuZGFyeUhhbmRsZXJTdGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IHsgZXJyb3IgfSA9IHN0YXRlXG5cbiAgICAvLyBpZiB3ZSBlbmNvdW50ZXIgYW4gZXJyb3Igd2hpbGVcbiAgICAvLyBhIG5hdmlnYXRpb24gaXMgcGVuZGluZyB3ZSBzaG91bGRuJ3QgcmVuZGVyXG4gICAgLy8gdGhlIGVycm9yIGJvdW5kYXJ5IGFuZCBpbnN0ZWFkIHNob3VsZCBmYWxsYmFja1xuICAgIC8vIHRvIGEgaGFyZCBuYXZpZ2F0aW9uIHRvIGF0dGVtcHQgcmVjb3ZlcmluZ1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQVBQX05BVl9GQUlMX0hBTkRMSU5HKSB7XG4gICAgICBpZiAoZXJyb3IgJiYgaGFuZGxlSGFyZE5hdkVycm9yKGVycm9yKSkge1xuICAgICAgICAvLyBjbGVhciBlcnJvciBzbyB3ZSBkb24ndCByZW5kZXIgYW55dGhpbmdcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgcmVzZXQgb2YgdGhlIGVycm9yIGJvdW5kYXJ5IHdoZW4gYSBuYXZpZ2F0aW9uIGhhcHBlbnMuXG4gICAgICogRW5zdXJlcyB0aGUgZXJyb3IgYm91bmRhcnkgZG9lcyBub3Qgc3RheSBlbmFibGVkIHdoZW4gbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlLlxuICAgICAqIEFwcHJvYWNoIG9mIHNldFN0YXRlIGluIHJlbmRlciBpcyBzYWZlIGFzIGl0IGNoZWNrcyB0aGUgcHJldmlvdXMgcGF0aG5hbWUgYW5kIHRoZW4gb3ZlcnJpZGVzXG4gICAgICogaXQgYXMgb3V0bGluZWQgaW4gaHR0cHM6Ly9yZWFjdC5kZXYvcmVmZXJlbmNlL3JlYWN0L3VzZVN0YXRlI3N0b3JpbmctaW5mb3JtYXRpb24tZnJvbS1wcmV2aW91cy1yZW5kZXJzXG4gICAgICovXG4gICAgaWYgKHByb3BzLnBhdGhuYW1lICE9PSBzdGF0ZS5wcmV2aW91c1BhdGhuYW1lICYmIHN0YXRlLmVycm9yKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogc3RhdGUuZXJyb3IsXG4gICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZSxcbiAgICB9XG4gIH1cblxuICByZXNldCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgZXJyb3I6IG51bGwgfSlcbiAgfVxuXG4gIC8vIEV4cGxpY2l0IHR5cGUgaXMgbmVlZGVkIHRvIGF2b2lkIHRoZSBnZW5lcmF0ZWQgYC5kLnRzYCBoYXZpbmcgYSB3aWRlIHJldHVybiB0eXBlIHRoYXQgY291bGQgYmUgc3BlY2lmaWMgdG8gdGhlIGBAdHlwZXMvcmVhY3RgIHZlcnNpb24uXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgIC8vV2hlbiBpdCdzIGJvdCByZXF1ZXN0LCBzZWdtZW50IGxldmVsIGVycm9yIGJvdW5kYXJ5IHdpbGwga2VlcCByZW5kZXJpbmcgdGhlIGNoaWxkcmVuLFxuICAgIC8vIHRoZSBmaW5hbCBlcnJvciB3aWxsIGJlIGNhdWdodCBieSB0aGUgcm9vdCBlcnJvciBib3VuZGFyeSBhbmQgZGV0ZXJtaW5lIHdldGhlciBuZWVkIHRvIGFwcGx5IGdyYWNlZnVsIGRlZ3JhZGUuXG4gICAgaWYgKHRoaXMuc3RhdGUuZXJyb3IgJiYgIWlzQm90VXNlckFnZW50KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxIYW5kbGVJU1JFcnJvciBlcnJvcj17dGhpcy5zdGF0ZS5lcnJvcn0gLz5cbiAgICAgICAgICB7dGhpcy5wcm9wcy5lcnJvclN0eWxlc31cbiAgICAgICAgICB7dGhpcy5wcm9wcy5lcnJvclNjcmlwdHN9XG4gICAgICAgICAgPHRoaXMucHJvcHMuZXJyb3JDb21wb25lbnRcbiAgICAgICAgICAgIGVycm9yPXt0aGlzLnN0YXRlLmVycm9yfVxuICAgICAgICAgICAgcmVzZXQ9e3RoaXMucmVzZXR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgfVxufVxuXG4vKipcbiAqIEhhbmRsZXMgZXJyb3JzIHRocm91Z2ggYGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcmAuXG4gKiBSZW5kZXJzIHRoZSBwcm92aWRlZCBlcnJvciBjb21wb25lbnQgYW5kIHByb3ZpZGVzIGEgd2F5IHRvIGByZXNldGAgdGhlIGVycm9yIGJvdW5kYXJ5IHN0YXRlLlxuICovXG5cbi8qKlxuICogUmVuZGVycyBlcnJvciBib3VuZGFyeSB3aXRoIHRoZSBwcm92aWRlZCBcImVycm9yQ29tcG9uZW50XCIgcHJvcGVydHkgYXMgdGhlIGZhbGxiYWNrLlxuICogSWYgbm8gXCJlcnJvckNvbXBvbmVudFwiIHByb3BlcnR5IGlzIHByb3ZpZGVkIGl0IHJlbmRlcnMgdGhlIGNoaWxkcmVuIHdpdGhvdXQgYW4gZXJyb3IgYm91bmRhcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBFcnJvckJvdW5kYXJ5KHtcbiAgZXJyb3JDb21wb25lbnQsXG4gIGVycm9yU3R5bGVzLFxuICBlcnJvclNjcmlwdHMsXG4gIGNoaWxkcmVuLFxufTogRXJyb3JCb3VuZGFyeVByb3BzICYge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59KTogSlNYLkVsZW1lbnQge1xuICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyB0aGUgbWlzc2luZyBwYXJhbXMgc2hlbGwsIHRoaXMgd2lsbCByZXR1cm4gbnVsbC4gVGhpc1xuICAvLyBpcyBiZWNhdXNlIHdlIHdvbid0IGJlIHJlbmRlcmluZyBhbnkgbm90IGZvdW5kIGJvdW5kYXJpZXMgb3IgZXJyb3JcbiAgLy8gYm91bmRhcmllcyBmb3IgdGhlIG1pc3NpbmcgcGFyYW1zIHNoZWxsLiBXaGVuIHRoaXMgcnVucyBvbiB0aGUgY2xpZW50XG4gIC8vICh3aGVyZSB0aGVzZSBlcnJvcnMgY2FuIG9jY3VyKSwgd2Ugd2lsbCBnZXQgdGhlIGNvcnJlY3QgcGF0aG5hbWUuXG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlVW50cmFja2VkUGF0aG5hbWUoKVxuICBpZiAoZXJyb3JDb21wb25lbnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEVycm9yQm91bmRhcnlIYW5kbGVyXG4gICAgICAgIHBhdGhuYW1lPXtwYXRobmFtZX1cbiAgICAgICAgZXJyb3JDb21wb25lbnQ9e2Vycm9yQ29tcG9uZW50fVxuICAgICAgICBlcnJvclN0eWxlcz17ZXJyb3JTdHlsZXN9XG4gICAgICAgIGVycm9yU2NyaXB0cz17ZXJyb3JTY3JpcHRzfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0Vycm9yQm91bmRhcnlIYW5kbGVyPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz5cbn1cbiJdLCJuYW1lcyI6WyJFcnJvckJvdW5kYXJ5IiwiRXJyb3JCb3VuZGFyeUhhbmRsZXIiLCJpc0JvdFVzZXJBZ2VudCIsIndpbmRvdyIsImlzQm90IiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiUmVhY3QiLCJDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsImlzTmV4dFJvdXRlckVycm9yIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwicHJvcHMiLCJzdGF0ZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQVBQX05BVl9GQUlMX0hBTkRMSU5HIiwiaGFuZGxlSGFyZE5hdkVycm9yIiwicHJldmlvdXNQYXRobmFtZSIsInBhdGhuYW1lIiwicmVuZGVyIiwiSGFuZGxlSVNSRXJyb3IiLCJlcnJvclN0eWxlcyIsImVycm9yU2NyaXB0cyIsInRoaXMiLCJlcnJvckNvbXBvbmVudCIsInJlc2V0IiwiY2hpbGRyZW4iLCJjb25zdHJ1Y3RvciIsInNldFN0YXRlIiwidXNlVW50cmFja2VkUGF0aG5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/error-boundary.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js ***!
|
||
\**************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \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 GracefulDegradeBoundary: function() {\n return GracefulDegradeBoundary;\n },\n default: function() {\n return _default;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nfunction getDomNodeAttributes(node) {\n const result = {};\n for(let i = 0; i < node.attributes.length; i++){\n const attr = node.attributes[i];\n result[attr.name] = attr.value;\n }\n return result;\n}\nclass GracefulDegradeBoundary extends _react.Component {\n static getDerivedStateFromError(_) {\n return {\n hasError: true\n };\n }\n componentDidMount() {\n const htmlNode = this.htmlRef.current;\n if (this.state.hasError && htmlNode) {\n // Reapply the cached HTML attributes to the root element\n Object.entries(this.htmlAttributes).forEach((param)=>{\n let [key, value] = param;\n htmlNode.setAttribute(key, value);\n });\n }\n }\n render() {\n const { hasError } = this.state;\n // Cache the root HTML content on the first render\n if (false) {}\n if (hasError) {\n // Render the current HTML content without hydration\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"html\", {\n ref: this.htmlRef,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: this.rootHtml\n }\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props);\n this.state = {\n hasError: false\n };\n this.rootHtml = '';\n this.htmlAttributes = {};\n this.htmlRef = /*#__PURE__*/ (0, _react.createRef)();\n }\n}\nconst _default = GracefulDegradeBoundary;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=graceful-degrade-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9ycy9ncmFjZWZ1bC1kZWdyYWRlLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXFCYUEsdUJBQXVCO2VBQXZCQTs7SUF1RGIsT0FBc0M7ZUFBdEM7Ozs7bUNBMUVxRDtBQVVyRCxTQUFTQyxxQkFBcUJDLElBQWlCO0lBQzdDLE1BQU1DLFNBQWlDLENBQUM7SUFDeEMsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlGLEtBQUtHLFVBQVUsQ0FBQ0MsTUFBTSxFQUFFRixJQUFLO1FBQy9DLE1BQU1HLE9BQU9MLEtBQUtHLFVBQVUsQ0FBQ0QsRUFBRTtRQUMvQkQsTUFBTSxDQUFDSSxLQUFLQyxJQUFJLENBQUMsR0FBR0QsS0FBS0UsS0FBSztJQUNoQztJQUNBLE9BQU9OO0FBQ1Q7QUFFTyxNQUFNSCxnQ0FBZ0NVLE9BQUFBLFNBQVM7SUFnQnBELE9BQU9DLHlCQUF5QkMsQ0FBVSxFQUFzQjtRQUM5RCxPQUFPO1lBQUVDLFVBQVU7UUFBSztJQUMxQjtJQUVBQyxvQkFBb0I7UUFDbEIsTUFBTUMsV0FBVyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTztRQUNyQyxJQUFJLElBQUksQ0FBQ0MsS0FBSyxDQUFDTCxRQUFRLElBQUlFLFVBQVU7WUFDbkMseURBQXlEO1lBQ3pESSxPQUFPQyxPQUFPLENBQUMsSUFBSSxDQUFDQyxjQUFjLEVBQUVDLE9BQU8sQ0FBQztvQkFBQyxDQUFDQyxLQUFLZCxNQUFNO2dCQUN2RE0sU0FBU1MsWUFBWSxDQUFDRCxLQUFLZDtZQUM3QjtRQUNGO0lBQ0Y7SUFFQWdCLFNBQVM7UUFDUCxNQUFNLEVBQUVaLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQ0ssS0FBSztRQUMvQixrREFBa0Q7UUFDbEQsSUFBSSxLQUErQyxFQUFFLEVBR3BEO1FBRUQsSUFBSUwsVUFBVTtZQUNaLG9EQUFvRDtZQUNwRCxxQkFDRSxxQkFBQ2tCLFFBQUFBO2dCQUNDQyxLQUFLLElBQUksQ0FBQ2hCLE9BQU87Z0JBQ2pCaUIsd0JBQXdCO2dCQUN4QkMseUJBQXlCO29CQUN2QkMsUUFBUSxJQUFJLENBQUNSLFFBQVE7Z0JBQ3ZCOztRQUdOO1FBRUEsT0FBTyxJQUFJLENBQUNTLEtBQUssQ0FBQ0MsUUFBUTtJQUM1QjtJQTVDQUMsWUFBWUYsS0FBeUIsQ0FBRTtRQUNyQyxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDbEIsS0FBSyxHQUFHO1lBQUVMLFVBQVU7UUFBTTtRQUMvQixJQUFJLENBQUNjLFFBQVEsR0FBRztRQUNoQixJQUFJLENBQUNOLGNBQWMsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQ0wsT0FBTyxpQkFBR3VCLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBO0lBQ2pCO0FBdUNGO01BRUEsV0FBZXZDIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL2Vycm9ycy9ncmFjZWZ1bC1kZWdyYWRlLWJvdW5kYXJ5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgQ29tcG9uZW50LCBjcmVhdGVSZWYsIHR5cGUgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5cbmludGVyZmFjZSBFcnJvckJvdW5kYXJ5UHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlXG59XG5cbmludGVyZmFjZSBFcnJvckJvdW5kYXJ5U3RhdGUge1xuICBoYXNFcnJvcjogYm9vbGVhblxufVxuXG5mdW5jdGlvbiBnZXREb21Ob2RlQXR0cmlidXRlcyhub2RlOiBIVE1MRWxlbWVudCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuYXR0cmlidXRlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGF0dHIgPSBub2RlLmF0dHJpYnV0ZXNbaV1cbiAgICByZXN1bHRbYXR0ci5uYW1lXSA9IGF0dHIudmFsdWVcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBjbGFzcyBHcmFjZWZ1bERlZ3JhZGVCb3VuZGFyeSBleHRlbmRzIENvbXBvbmVudDxcbiAgRXJyb3JCb3VuZGFyeVByb3BzLFxuICBFcnJvckJvdW5kYXJ5U3RhdGVcbj4ge1xuICBwcml2YXRlIHJvb3RIdG1sOiBzdHJpbmdcbiAgcHJpdmF0ZSBodG1sQXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICBwcml2YXRlIGh0bWxSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MSHRtbEVsZW1lbnQgfCBudWxsPlxuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBFcnJvckJvdW5kYXJ5UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcbiAgICB0aGlzLnN0YXRlID0geyBoYXNFcnJvcjogZmFsc2UgfVxuICAgIHRoaXMucm9vdEh0bWwgPSAnJ1xuICAgIHRoaXMuaHRtbEF0dHJpYnV0ZXMgPSB7fVxuICAgIHRoaXMuaHRtbFJlZiA9IGNyZWF0ZVJlZjxIVE1MSHRtbEVsZW1lbnQ+KClcbiAgfVxuXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoXzogdW5rbm93bik6IEVycm9yQm91bmRhcnlTdGF0ZSB7XG4gICAgcmV0dXJuIHsgaGFzRXJyb3I6IHRydWUgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgaHRtbE5vZGUgPSB0aGlzLmh0bWxSZWYuY3VycmVudFxuICAgIGlmICh0aGlzLnN0YXRlLmhhc0Vycm9yICYmIGh0bWxOb2RlKSB7XG4gICAgICAvLyBSZWFwcGx5IHRoZSBjYWNoZWQgSFRNTCBhdHRyaWJ1dGVzIHRvIHRoZSByb290IGVsZW1lbnRcbiAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuaHRtbEF0dHJpYnV0ZXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBodG1sTm9kZS5zZXRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSlcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgaGFzRXJyb3IgfSA9IHRoaXMuc3RhdGVcbiAgICAvLyBDYWNoZSB0aGUgcm9vdCBIVE1MIGNvbnRlbnQgb24gdGhlIGZpcnN0IHJlbmRlclxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAhdGhpcy5yb290SHRtbCkge1xuICAgICAgdGhpcy5yb290SHRtbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUxcbiAgICAgIHRoaXMuaHRtbEF0dHJpYnV0ZXMgPSBnZXREb21Ob2RlQXR0cmlidXRlcyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpXG4gICAgfVxuXG4gICAgaWYgKGhhc0Vycm9yKSB7XG4gICAgICAvLyBSZW5kZXIgdGhlIGN1cnJlbnQgSFRNTCBjb250ZW50IHdpdGhvdXQgaHlkcmF0aW9uXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8aHRtbFxuICAgICAgICAgIHJlZj17dGhpcy5odG1sUmVmfVxuICAgICAgICAgIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1xuICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICBfX2h0bWw6IHRoaXMucm9vdEh0bWwsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlblxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEdyYWNlZnVsRGVncmFkZUJvdW5kYXJ5XG4iXSwibmFtZXMiOlsiR3JhY2VmdWxEZWdyYWRlQm91bmRhcnkiLCJnZXREb21Ob2RlQXR0cmlidXRlcyIsIm5vZGUiLCJyZXN1bHQiLCJpIiwiYXR0cmlidXRlcyIsImxlbmd0aCIsImF0dHIiLCJuYW1lIiwidmFsdWUiLCJDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJfIiwiaGFzRXJyb3IiLCJjb21wb25lbnREaWRNb3VudCIsImh0bWxOb2RlIiwiaHRtbFJlZiIsImN1cnJlbnQiLCJzdGF0ZSIsIk9iamVjdCIsImVudHJpZXMiLCJodG1sQXR0cmlidXRlcyIsImZvckVhY2giLCJrZXkiLCJzZXRBdHRyaWJ1dGUiLCJyZW5kZXIiLCJ3aW5kb3ciLCJyb290SHRtbCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiaW5uZXJIVE1MIiwiaHRtbCIsInJlZiIsInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwicHJvcHMiLCJjaGlsZHJlbiIsImNvbnN0cnVjdG9yIiwiY3JlYXRlUmVmIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/errors/root-error-boundary.js":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/errors/root-error-boundary.js ***!
|
||
\********************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RootErrorBoundary;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _gracefuldegradeboundary = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./graceful-degrade-boundary */ \"(ssr)/./node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js\"));\nconst _errorboundary = __webpack_require__(/*! ../error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _isbot = __webpack_require__(/*! ../../../shared/lib/router/utils/is-bot */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst isBotUserAgent = false && 0;\nfunction RootErrorBoundary(param) {\n let { children, errorComponent, errorStyles, errorScripts } = param;\n if (isBotUserAgent) {\n // Preserve existing DOM/HTML for bots to avoid replacing content with an error UI\n // and to keep the original SSR output intact.\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_gracefuldegradeboundary.default, {\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, {\n errorComponent: errorComponent,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=root-error-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9ycy9yb290LWVycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBVUE7OztlQUF3QkE7Ozs7OzRFQVJROzhGQUNJOzJDQUNtQjttQ0FDakM7QUFFdEIsTUFBTUMsaUJBQ0osTUFBNkIsSUFBSUUsQ0FBaUM7QUFFckQsU0FBU0gsa0JBQWtCLEtBS1c7SUFMWCxNQUN4Q00sUUFBUSxFQUNSQyxjQUFjLEVBQ2RDLFdBQVcsRUFDWEMsWUFBWSxFQUN1QyxHQUxYO0lBTXhDLElBQUlSLGdCQUFnQjtRQUNsQixrRkFBa0Y7UUFDbEYsOENBQThDO1FBQzlDLHFCQUFPLHFCQUFDUyx5QkFBQUEsT0FBdUI7c0JBQUVKOztJQUNuQztJQUVBLHFCQUNFLHFCQUFDSyxlQUFBQSxhQUFhO1FBQ1pKLGdCQUFnQkE7UUFDaEJDLGFBQWFBO1FBQ2JDLGNBQWNBO2tCQUViSDs7QUFHUCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9lcnJvcnMvcm9vdC1lcnJvci1ib3VuZGFyeS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCwgeyB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IEdyYWNlZnVsRGVncmFkZUJvdW5kYXJ5IGZyb20gJy4vZ3JhY2VmdWwtZGVncmFkZS1ib3VuZGFyeSdcbmltcG9ydCB7IEVycm9yQm91bmRhcnksIHR5cGUgRXJyb3JCb3VuZGFyeVByb3BzIH0gZnJvbSAnLi4vZXJyb3ItYm91bmRhcnknXG5pbXBvcnQgeyBpc0JvdCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdCdcblxuY29uc3QgaXNCb3RVc2VyQWdlbnQgPVxuICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiBpc0JvdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudClcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdEVycm9yQm91bmRhcnkoe1xuICBjaGlsZHJlbixcbiAgZXJyb3JDb21wb25lbnQsXG4gIGVycm9yU3R5bGVzLFxuICBlcnJvclNjcmlwdHMsXG59OiBFcnJvckJvdW5kYXJ5UHJvcHMgJiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSk6IEpTWC5FbGVtZW50IHtcbiAgaWYgKGlzQm90VXNlckFnZW50KSB7XG4gICAgLy8gUHJlc2VydmUgZXhpc3RpbmcgRE9NL0hUTUwgZm9yIGJvdHMgdG8gYXZvaWQgcmVwbGFjaW5nIGNvbnRlbnQgd2l0aCBhbiBlcnJvciBVSVxuICAgIC8vIGFuZCB0byBrZWVwIHRoZSBvcmlnaW5hbCBTU1Igb3V0cHV0IGludGFjdC5cbiAgICByZXR1cm4gPEdyYWNlZnVsRGVncmFkZUJvdW5kYXJ5PntjaGlsZHJlbn08L0dyYWNlZnVsRGVncmFkZUJvdW5kYXJ5PlxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8RXJyb3JCb3VuZGFyeVxuICAgICAgZXJyb3JDb21wb25lbnQ9e2Vycm9yQ29tcG9uZW50fVxuICAgICAgZXJyb3JTdHlsZXM9e2Vycm9yU3R5bGVzfVxuICAgICAgZXJyb3JTY3JpcHRzPXtlcnJvclNjcmlwdHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlJvb3RFcnJvckJvdW5kYXJ5IiwiaXNCb3RVc2VyQWdlbnQiLCJ3aW5kb3ciLCJpc0JvdCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImNoaWxkcmVuIiwiZXJyb3JDb21wb25lbnQiLCJlcnJvclN0eWxlcyIsImVycm9yU2NyaXB0cyIsIkdyYWNlZnVsRGVncmFkZUJvdW5kYXJ5IiwiRXJyb3JCb3VuZGFyeSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/errors/root-error-boundary.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/forbidden.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/forbidden.js ***!
|
||
\***************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"forbidden\", ({\n enumerable: true,\n get: function() {\n return forbidden;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\n// TODO: Add `forbidden` docs\n/**\n * @experimental\n * This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)\n * within a route segment as well as inject a tag.\n *\n * `forbidden()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)\n */ const DIGEST = \"\" + _httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE + \";403\";\nfunction forbidden() {\n if (true) {\n throw Object.defineProperty(new Error(\"`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E488\",\n enumerable: false,\n configurable: true\n });\n }\n // eslint-disable-next-line no-throw-literal\n const error = Object.defineProperty(new Error(DIGEST), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = DIGEST;\n throw error;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=forbidden.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2ZvcmJpZGRlbi5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQXFCZ0JBOzs7ZUFBQUE7OztnREFsQlQ7QUFFUCw2QkFBNkI7QUFDN0I7Ozs7Ozs7Ozs7O0NBV0MsR0FFRCxNQUFNQyxTQUFVLEtBQUVDLG9CQUFBQSw4QkFBOEIsR0FBQztBQUUxQyxTQUFTRjtJQUNkLElBQUksSUFBZ0QsRUFBRTtRQUNwRCxNQUFNLHFCQUVMLENBRkssSUFBSU0sTUFDUCxnSEFERzttQkFBQTt3QkFBQTswQkFBQTtRQUVOO0lBQ0Y7SUFFQSw0Q0FBNEM7SUFDNUMsTUFBTUMsUUFBUSxxQkFBaUIsQ0FBakIsSUFBSUQsTUFBTUwsU0FBVjtlQUFBO29CQUFBO3NCQUFBO0lBQWdCO0lBQzVCTSxNQUFrQ0MsTUFBTSxHQUFHUDtJQUM3QyxNQUFNTTtBQUNSIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvZm9yYmlkZGVuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSxcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcblxuLy8gVE9ETzogQWRkIGBmb3JiaWRkZW5gIGRvY3Ncbi8qKlxuICogQGV4cGVyaW1lbnRhbFxuICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHJlbmRlciB0aGUgW2ZvcmJpZGRlbi5qcyBmaWxlXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9maWxlLWNvbnZlbnRpb25zL2ZvcmJpZGRlbilcbiAqIHdpdGhpbiBhIHJvdXRlIHNlZ21lbnQgYXMgd2VsbCBhcyBpbmplY3QgYSB0YWcuXG4gKlxuICogYGZvcmJpZGRlbigpYCBjYW4gYmUgdXNlZCBpblxuICogW1NlcnZlciBDb21wb25lbnRzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLWNvbXBvbmVudHMpLFxuICogW1JvdXRlIEhhbmRsZXJzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL3JvdXRlLWhhbmRsZXJzKSwgYW5kXG4gKiBbU2VydmVyIEFjdGlvbnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvc2VydmVyLWFjdGlvbnMtYW5kLW11dGF0aW9ucykuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgZm9yYmlkZGVuYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL2ZvcmJpZGRlbilcbiAqL1xuXG5jb25zdCBESUdFU1QgPSBgJHtIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREV9OzQwM2BcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmJpZGRlbigpOiBuZXZlciB7XG4gIGlmICghcHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9BVVRIX0lOVEVSUlVQVFMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgXFxgZm9yYmlkZGVuKClcXGAgaXMgZXhwZXJpbWVudGFsIGFuZCBvbmx5IGFsbG93ZWQgdG8gYmUgZW5hYmxlZCB3aGVuIFxcYGV4cGVyaW1lbnRhbC5hdXRoSW50ZXJydXB0c1xcYCBpcyBlbmFibGVkLmBcbiAgICApXG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihESUdFU1QpIGFzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4gIDsoZXJyb3IgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpLmRpZ2VzdCA9IERJR0VTVFxuICB0aHJvdyBlcnJvclxufVxuIl0sIm5hbWVzIjpbImZvcmJpZGRlbiIsIkRJR0VTVCIsIkhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfRVhQRVJJTUVOVEFMX0FVVEhfSU5URVJSVVBUUyIsIkVycm9yIiwiZXJyb3IiLCJkaWdlc3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/forbidden.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/handle-isr-error.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HandleISRError\", ({\n enumerable: true,\n get: function() {\n return HandleISRError;\n }\n}));\nconst workAsyncStorage = true ? (__webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\").workAsyncStorage) : 0;\nfunction HandleISRError(param) {\n let { error } = param;\n if (workAsyncStorage) {\n const store = workAsyncStorage.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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=handle-isr-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hhbmRsZS1pc3ItZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFVZ0JBOzs7ZUFBQUE7OztBQVZoQixNQUFNQyxtQkFDSixLQUE2QixHQUV2QkUsa0lBQ2dCLEdBQ2xCQyxDQUFTQTtBQUtSLFNBQVNKLGVBQWUsS0FBeUI7SUFBekIsTUFBRUssS0FBSyxFQUFrQixHQUF6QjtJQUM3QixJQUFJSixrQkFBa0I7UUFDcEIsTUFBTUssUUFBUUwsaUJBQWlCTSxRQUFRO1FBQ3ZDLElBQUlELENBQUFBLFNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE1BQU9FLFlBQUFBLE1BQWdCRixTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxNQUFPRyxrQkFBQUEsR0FBb0I7WUFDcERDLFFBQVFMLEtBQUssQ0FBQ0E7WUFDZCxNQUFNQTtRQUNSO0lBQ0Y7SUFFQSxPQUFPO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy9oYW5kbGUtaXNyLWVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB3b3JrQXN5bmNTdG9yYWdlID1cbiAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCdcbiAgICA/IChcbiAgICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcbiAgICAgICkud29ya0FzeW5jU3RvcmFnZVxuICAgIDogdW5kZWZpbmVkXG5cbi8vIGlmIHdlIGFyZSByZXZhbGlkYXRpbmcgd2Ugd2FudCB0byByZS10aHJvdyB0aGUgZXJyb3Igc28gdGhlXG4vLyBmdW5jdGlvbiBjcmFzaGVzIHNvIHdlIGNhbiBtYWludGFpbiBvdXIgcHJldmlvdXMgY2FjaGVcbi8vIGluc3RlYWQgb2YgY2FjaGluZyB0aGUgZXJyb3IgcGFnZVxuZXhwb3J0IGZ1bmN0aW9uIEhhbmRsZUlTUkVycm9yKHsgZXJyb3IgfTogeyBlcnJvcjogYW55IH0pIHtcbiAgaWYgKHdvcmtBc3luY1N0b3JhZ2UpIHtcbiAgICBjb25zdCBzdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICAgIGlmIChzdG9yZT8uaXNSZXZhbGlkYXRlIHx8IHN0b3JlPy5pc1N0YXRpY0dlbmVyYXRpb24pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiSGFuZGxlSVNSRXJyb3IiLCJ3b3JrQXN5bmNTdG9yYWdlIiwid2luZG93IiwicmVxdWlyZSIsInVuZGVmaW5lZCIsImVycm9yIiwic3RvcmUiLCJnZXRTdG9yZSIsImlzUmV2YWxpZGF0ZSIsImlzU3RhdGljR2VuZXJhdGlvbiIsImNvbnNvbGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/hooks-server-context.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 DynamicServerError: function() {\n return DynamicServerError;\n },\n isDynamicServerError: function() {\n return isDynamicServerError;\n }\n});\nconst DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE';\nclass DynamicServerError extends Error {\n constructor(description){\n super(\"Dynamic server usage: \" + description), this.description = description, 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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hooks-server-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxrQkFBa0I7ZUFBbEJBOztJQVFHQyxvQkFBb0I7ZUFBcEJBOzs7QUFWaEIsTUFBTUMscUJBQXFCO0FBRXBCLE1BQU1GLDJCQUEyQkc7SUFHdENDLFlBQTRCQyxXQUFtQixDQUFFO1FBQy9DLEtBQUssQ0FBRSwyQkFBd0JBLGNBQUFBLElBQUFBLENBRExBLFdBQUFBLEdBQUFBLGFBQUFBLElBQUFBLENBRjVCQyxNQUFBQSxHQUFvQ0o7SUFJcEM7QUFDRjtBQUVPLFNBQVNELHFCQUFxQk0sR0FBWTtJQUMvQyxJQUNFLE9BQU9BLFFBQVEsWUFDZkEsUUFBUSxRQUNSLENBQUUsYUFBWUEsR0FBQUEsQ0FBRSxJQUNoQixPQUFPQSxJQUFJRCxNQUFNLEtBQUssVUFDdEI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxJQUFJRCxNQUFNLEtBQUtKO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFlOQU1JQ19FUlJPUl9DT0RFID0gJ0RZTkFNSUNfU0VSVkVSX1VTQUdFJ1xuXG5leHBvcnQgY2xhc3MgRHluYW1pY1NlcnZlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBkaWdlc3Q6IHR5cGVvZiBEWU5BTUlDX0VSUk9SX0NPREUgPSBEWU5BTUlDX0VSUk9SX0NPREVcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZykge1xuICAgIHN1cGVyKGBEeW5hbWljIHNlcnZlciB1c2FnZTogJHtkZXNjcmlwdGlvbn1gKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNTZXJ2ZXJFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgRHluYW1pY1NlcnZlckVycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8XG4gICAgZXJyID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnIpIHx8XG4gICAgdHlwZW9mIGVyci5kaWdlc3QgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGVyci5kaWdlc3QgPT09IERZTkFNSUNfRVJST1JfQ09ERVxufVxuIl0sIm5hbWVzIjpbIkR5bmFtaWNTZXJ2ZXJFcnJvciIsImlzRHluYW1pY1NlcnZlckVycm9yIiwiRFlOQU1JQ19FUlJPUl9DT0RFIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImRlc2NyaXB0aW9uIiwiZGlnZXN0IiwiZXJyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTTPAccessFallbackBoundary\", ({\n enumerable: true,\n get: function() {\n return HTTPAccessFallbackBoundary;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigationuntracked = __webpack_require__(/*! ../navigation-untracked */ \"(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\");\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _warnonce = __webpack_require__(/*! ../../../shared/lib/utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nclass HTTPAccessFallbackErrorBoundary extends _react.default.Component {\n componentDidCatch() {\n if ( true && this.props.missingSlots && this.props.missingSlots.size > 0 && // 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 const formattedSlots = Array.from(this.props.missingSlots).sort((a, b)=>a.localeCompare(b)).map((slot)=>\"@\" + slot).join(', ');\n warningMessage += 'Missing slots: ' + formattedSlots;\n (0, _warnonce.warnOnce)(warningMessage);\n }\n }\n static getDerivedStateFromError(error) {\n if ((0, _httpaccessfallback.isHTTPAccessFallbackError)(error)) {\n const httpStatus = (0, _httpaccessfallback.getAccessFallbackHTTPStatus)(error);\n return {\n triggeredStatus: httpStatus\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.triggeredStatus) {\n return {\n triggeredStatus: undefined,\n previousPathname: props.pathname\n };\n }\n return {\n triggeredStatus: state.triggeredStatus,\n previousPathname: props.pathname\n };\n }\n render() {\n const { notFound, forbidden, unauthorized, children } = this.props;\n const { triggeredStatus } = this.state;\n const errorComponents = {\n [_httpaccessfallback.HTTPAccessErrorStatus.NOT_FOUND]: notFound,\n [_httpaccessfallback.HTTPAccessErrorStatus.FORBIDDEN]: forbidden,\n [_httpaccessfallback.HTTPAccessErrorStatus.UNAUTHORIZED]: unauthorized\n };\n if (triggeredStatus) {\n const isNotFound = triggeredStatus === _httpaccessfallback.HTTPAccessErrorStatus.NOT_FOUND && notFound;\n const isForbidden = triggeredStatus === _httpaccessfallback.HTTPAccessErrorStatus.FORBIDDEN && forbidden;\n const isUnauthorized = triggeredStatus === _httpaccessfallback.HTTPAccessErrorStatus.UNAUTHORIZED && unauthorized;\n // If there's no matched boundary in this layer, keep throwing the error by rendering the children\n if (!(isNotFound || isForbidden || isUnauthorized)) {\n return children;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"robots\",\n content: \"noindex\"\n }),\n true && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"boundary-next-error\",\n content: (0, _httpaccessfallback.getAccessFallbackErrorTypeByStatus)(triggeredStatus)\n }),\n errorComponents[triggeredStatus]\n ]\n });\n }\n return children;\n }\n constructor(props){\n super(props);\n this.state = {\n triggeredStatus: undefined,\n previousPathname: props.pathname\n };\n }\n}\nfunction HTTPAccessFallbackBoundary(param) {\n let { notFound, forbidden, unauthorized, children } = param;\n // When we're rendering the missing params shell, this will return null. This\n // is because we won't be rendering any not found boundaries or error\n // boundaries for the missing params shell. When this runs on the client\n // (where these error can occur), we will get the correct pathname.\n const pathname = (0, _navigationuntracked.useUntrackedPathname)();\n const missingSlots = (0, _react.useContext)(_approutercontextsharedruntime.MissingSlotContext);\n const hasErrorFallback = !!(notFound || forbidden || unauthorized);\n if (hasErrorFallback) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(HTTPAccessFallbackErrorBoundary, {\n pathname: pathname,\n notFound: notFound,\n forbidden: forbidden,\n unauthorized: unauthorized,\n missingSlots: missingSlots,\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=error-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7OERBdUpnQkE7OztlQUFBQTs7Ozs7NkVBMUlrQjtpREFDRztnREFNOUI7c0NBQ2tCOzJEQUNVO0FBcUJuQyxNQUFNQyx3Q0FBd0NDLE9BQUFBLE9BQUssQ0FBQ0MsU0FBUztJQVkzREMsb0JBQTBCO1FBQ3hCLElBbkNxQixLQW9DQyxJQUNwQixJQUFJLENBQUNJLEtBQUssQ0FBQ0MsWUFBWSxJQUN2QixJQUFJLENBQUNELEtBQUssQ0FBQ0MsWUFBWSxDQUFDQyxJQUFJLEdBQUcsS0FDL0IsNEVBQTRFO1FBQzVFLENBQUMsSUFBSSxDQUFDRixLQUFLLENBQUNDLFlBQVksQ0FBQ0UsR0FBRyxDQUFDLGFBQzdCO1lBQ0EsSUFBSUMsaUJBQ0YsNEhBQ0E7WUFFRixNQUFNQyxpQkFBaUJDLE1BQU1DLElBQUksQ0FBQyxJQUFJLENBQUNQLEtBQUssQ0FBQ0MsWUFBWSxFQUN0RE8sSUFBSSxDQUFDLENBQUNDLEdBQUdDLElBQU1ELEVBQUVFLGFBQWEsQ0FBQ0QsSUFDL0JFLEdBQUcsQ0FBQyxDQUFDQyxPQUFVLE1BQUdBLE1BQ2xCQyxJQUFJLENBQUM7WUFFUlYsa0JBQWtCLG9CQUFvQkM7WUFFdENVLENBQUFBLEdBQUFBLFVBQUFBLFFBQUFBLEVBQVNYO1FBQ1g7SUFDRjtJQUVBLE9BQU9ZLHlCQUF5QkMsS0FBVSxFQUFFO1FBQzFDLElBQUlDLENBQUFBLEdBQUFBLG9CQUFBQSx5QkFBQUEsRUFBMEJELFFBQVE7WUFDcEMsTUFBTUUsYUFBYUMsQ0FBQUEsR0FBQUEsb0JBQUFBLDJCQUFBQSxFQUE0Qkg7WUFDL0MsT0FBTztnQkFDTEksaUJBQWlCRjtZQUNuQjtRQUNGO1FBQ0EsbUNBQW1DO1FBQ25DLE1BQU1GO0lBQ1I7SUFFQSxPQUFPSyx5QkFDTHRCLEtBQTJDLEVBQzNDdUIsS0FBOEIsRUFDRTtRQUNoQzs7Ozs7S0FLQyxHQUNELElBQUl2QixNQUFNd0IsUUFBUSxLQUFLRCxNQUFNRSxnQkFBZ0IsSUFBSUYsTUFBTUYsZUFBZSxFQUFFO1lBQ3RFLE9BQU87Z0JBQ0xBLGlCQUFpQks7Z0JBQ2pCRCxrQkFBa0J6QixNQUFNd0IsUUFBUTtZQUNsQztRQUNGO1FBQ0EsT0FBTztZQUNMSCxpQkFBaUJFLE1BQU1GLGVBQWU7WUFDdENJLGtCQUFrQnpCLE1BQU13QixRQUFRO1FBQ2xDO0lBQ0Y7SUFFQUcsU0FBUztRQUNQLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLFlBQVksRUFBRUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDL0IsS0FBSztRQUNsRSxNQUFNLEVBQUVxQixlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUNFLEtBQUs7UUFDdEMsTUFBTVMsa0JBQWtCO1lBQ3RCLENBQUNDLG9CQUFBQSxxQkFBcUIsQ0FBQ0MsU0FBUyxDQUFDLEVBQUVOO1lBQ25DLENBQUNLLG9CQUFBQSxxQkFBcUIsQ0FBQ0UsU0FBUyxDQUFDLEVBQUVOO1lBQ25DLENBQUNJLG9CQUFBQSxxQkFBcUIsQ0FBQ0csWUFBWSxDQUFDLEVBQUVOO1FBQ3hDO1FBRUEsSUFBSVQsaUJBQWlCO1lBQ25CLE1BQU1nQixhQUNKaEIsb0JBQW9CWSxvQkFBQUEscUJBQXFCLENBQUNDLFNBQVMsSUFBSU47WUFDekQsTUFBTVUsY0FDSmpCLG9CQUFvQlksb0JBQUFBLHFCQUFxQixDQUFDRSxTQUFTLElBQUlOO1lBQ3pELE1BQU1VLGlCQUNKbEIsb0JBQW9CWSxvQkFBQUEscUJBQXFCLENBQUNHLFlBQVksSUFBSU47WUFFNUQsa0dBQWtHO1lBQ2xHLElBQUksQ0FBRU8sQ0FBQUEsY0FBY0MsZUFBZUMsY0FBQUEsQ0FBYSxFQUFJO2dCQUNsRCxPQUFPUjtZQUNUO1lBRUEscUJBQ0U7O2tDQUNFLHFCQUFDUyxRQUFBQTt3QkFBS0MsTUFBSzt3QkFBU0MsU0FBUTs7b0JBbEhiLEtBbUh3QixJQUFiLGNBQ3hCLHFCQUFDRixRQUFBQTt3QkFDQ0MsTUFBSzt3QkFDTEMsU0FBU0MsQ0FBQUEsR0FBQUEsb0JBQUFBLGtDQUFBQSxFQUFtQ3RCOztvQkFHL0NXLGVBQWUsQ0FBQ1gsZ0JBQWdCOzs7UUFHdkM7UUFFQSxPQUFPVTtJQUNUO0lBckdBYSxZQUFZNUMsS0FBMkMsQ0FBRTtRQUN2RCxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDdUIsS0FBSyxHQUFHO1lBQ1hGLGlCQUFpQks7WUFDakJELGtCQUFrQnpCLE1BQU13QixRQUFRO1FBQ2xDO0lBQ0Y7QUFnR0Y7QUFFTyxTQUFTaEMsMkJBQTJCLEtBS1Q7SUFMUyxNQUN6Q29DLFFBQVEsRUFDUkMsU0FBUyxFQUNUQyxZQUFZLEVBQ1pDLFFBQVEsRUFDd0IsR0FMUztJQU16Qyw2RUFBNkU7SUFDN0UscUVBQXFFO0lBQ3JFLHdFQUF3RTtJQUN4RSxtRUFBbUU7SUFDbkUsTUFBTVAsV0FBV3FCLENBQUFBLEdBQUFBLHFCQUFBQSxvQkFBb0I7SUFDckMsTUFBTTVDLGVBQWU2QyxDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXQywrQkFBQUEsa0JBQWtCO0lBQ2xELE1BQU1DLG1CQUFtQixDQUFDLENBQUVwQixDQUFBQSxZQUFZQyxhQUFhQyxZQUFBQSxDQUFXO0lBRWhFLElBQUlrQixrQkFBa0I7UUFDcEIscUJBQ0UscUJBQUN2RCxpQ0FBQUE7WUFDQytCLFVBQVVBO1lBQ1ZJLFVBQVVBO1lBQ1ZDLFdBQVdBO1lBQ1hDLGNBQWNBO1lBQ2Q3QixjQUFjQTtzQkFFYjhCOztJQUdQO0lBRUEscUJBQU87a0JBQUdBOztBQUNaIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuLyoqXG4gKiBIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeSBpcyBhIGJvdW5kYXJ5IHRoYXQgY2F0Y2hlcyBlcnJvcnMgYW5kIHJlbmRlcnMgYVxuICogZmFsbGJhY2sgY29tcG9uZW50IGZvciBIVFRQIGVycm9ycy5cbiAqXG4gKiBJdCByZWNlaXZlcyB0aGUgc3RhdHVzIGNvZGUsIGFuZCBkZXRlcm1pbmUgaWYgaXQgc2hvdWxkIHJlbmRlciBmYWxsYmFja3MgZm9yIGZldyBIVFRQIDR4eCBlcnJvcnMuXG4gKlxuICogZS5nLiA0MDRcbiAqIDQwNCByZXByZXNlbnRzIG5vdCBmb3VuZCwgYW5kIHRoZSBmYWxsYmFjayBjb21wb25lbnQgcGFpciBjb250YWlucyB0aGUgY29tcG9uZW50IGFuZCBpdHMgc3R5bGVzLlxuICpcbiAqL1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVW50cmFja2VkUGF0aG5hbWUgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLXVudHJhY2tlZCdcbmltcG9ydCB7XG4gIEhUVFBBY2Nlc3NFcnJvclN0YXR1cyxcbiAgZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzLFxuICBnZXRBY2Nlc3NGYWxsYmFja0Vycm9yVHlwZUJ5U3RhdHVzLFxuICBpc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yLFxufSBmcm9tICcuL2h0dHAtYWNjZXNzLWZhbGxiYWNrJ1xuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3V0aWxzL3dhcm4tb25jZSdcbmltcG9ydCB7IE1pc3NpbmdTbG90Q29udGV4dCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuXG5pbnRlcmZhY2UgSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnlQcm9wcyB7XG4gIG5vdEZvdW5kPzogUmVhY3QuUmVhY3ROb2RlXG4gIGZvcmJpZGRlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICB1bmF1dGhvcml6ZWQ/OiBSZWFjdC5SZWFjdE5vZGVcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICBtaXNzaW5nU2xvdHM/OiBTZXQ8c3RyaW5nPlxufVxuXG5pbnRlcmZhY2UgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JCb3VuZGFyeVByb3BzXG4gIGV4dGVuZHMgSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnlQcm9wcyB7XG4gIHBhdGhuYW1lOiBzdHJpbmcgfCBudWxsXG4gIG1pc3NpbmdTbG90cz86IFNldDxzdHJpbmc+XG59XG5cbmludGVyZmFjZSBIVFRQQWNjZXNzQm91bmRhcnlTdGF0ZSB7XG4gIHRyaWdnZXJlZFN0YXR1czogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIHByZXZpb3VzUGF0aG5hbWU6IHN0cmluZyB8IG51bGxcbn1cblxuY2xhc3MgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JCb3VuZGFyeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JCb3VuZGFyeVByb3BzLFxuICBIVFRQQWNjZXNzQm91bmRhcnlTdGF0ZVxuPiB7XG4gIGNvbnN0cnVjdG9yKHByb3BzOiBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvckJvdW5kYXJ5UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgdHJpZ2dlcmVkU3RhdHVzOiB1bmRlZmluZWQsXG4gICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZSxcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRDYXRjaCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJlxuICAgICAgdGhpcy5wcm9wcy5taXNzaW5nU2xvdHMgJiZcbiAgICAgIHRoaXMucHJvcHMubWlzc2luZ1Nsb3RzLnNpemUgPiAwICYmXG4gICAgICAvLyBBIG1pc3NpbmcgY2hpbGRyZW4gc2xvdCBpcyB0aGUgdHlwaWNhbCBub3QtZm91bmQgY2FzZSwgc28gbm8gbmVlZCB0byB3YXJuXG4gICAgICAhdGhpcy5wcm9wcy5taXNzaW5nU2xvdHMuaGFzKCdjaGlsZHJlbicpXG4gICAgKSB7XG4gICAgICBsZXQgd2FybmluZ01lc3NhZ2UgPVxuICAgICAgICAnTm8gZGVmYXVsdCBjb21wb25lbnQgd2FzIGZvdW5kIGZvciBhIHBhcmFsbGVsIHJvdXRlIHJlbmRlcmVkIG9uIHRoaXMgcGFnZS4gRmFsbGluZyBiYWNrIHRvIG5lYXJlc3QgTm90Rm91bmQgYm91bmRhcnkuXFxuJyArXG4gICAgICAgICdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL3BhcmFsbGVsLXJvdXRlcyNkZWZhdWx0anNcXG5cXG4nXG5cbiAgICAgIGNvbnN0IGZvcm1hdHRlZFNsb3RzID0gQXJyYXkuZnJvbSh0aGlzLnByb3BzLm1pc3NpbmdTbG90cylcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSlcbiAgICAgICAgLm1hcCgoc2xvdCkgPT4gYEAke3Nsb3R9YClcbiAgICAgICAgLmpvaW4oJywgJylcblxuICAgICAgd2FybmluZ01lc3NhZ2UgKz0gJ01pc3Npbmcgc2xvdHM6ICcgKyBmb3JtYXR0ZWRTbG90c1xuXG4gICAgICB3YXJuT25jZSh3YXJuaW5nTWVzc2FnZSlcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yOiBhbnkpIHtcbiAgICBpZiAoaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihlcnJvcikpIHtcbiAgICAgIGNvbnN0IGh0dHBTdGF0dXMgPSBnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXMoZXJyb3IpXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmlnZ2VyZWRTdGF0dXM6IGh0dHBTdGF0dXMsXG4gICAgICB9XG4gICAgfVxuICAgIC8vIFJlLXRocm93IGlmIGVycm9yIGlzIG5vdCBmb3IgNDA0XG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoXG4gICAgcHJvcHM6IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnlQcm9wcyxcbiAgICBzdGF0ZTogSFRUUEFjY2Vzc0JvdW5kYXJ5U3RhdGVcbiAgKTogSFRUUEFjY2Vzc0JvdW5kYXJ5U3RhdGUgfCBudWxsIHtcbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIHJlc2V0IG9mIHRoZSBlcnJvciBib3VuZGFyeSB3aGVuIGEgbmF2aWdhdGlvbiBoYXBwZW5zLlxuICAgICAqIEVuc3VyZXMgdGhlIGVycm9yIGJvdW5kYXJ5IGRvZXMgbm90IHN0YXkgZW5hYmxlZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZS5cbiAgICAgKiBBcHByb2FjaCBvZiBzZXRTdGF0ZSBpbiByZW5kZXIgaXMgc2FmZSBhcyBpdCBjaGVja3MgdGhlIHByZXZpb3VzIHBhdGhuYW1lIGFuZCB0aGVuIG92ZXJyaWRlc1xuICAgICAqIGl0IGFzIG91dGxpbmVkIGluIGh0dHBzOi8vcmVhY3QuZGV2L3JlZmVyZW5jZS9yZWFjdC91c2VTdGF0ZSNzdG9yaW5nLWluZm9ybWF0aW9uLWZyb20tcHJldmlvdXMtcmVuZGVyc1xuICAgICAqL1xuICAgIGlmIChwcm9wcy5wYXRobmFtZSAhPT0gc3RhdGUucHJldmlvdXNQYXRobmFtZSAmJiBzdGF0ZS50cmlnZ2VyZWRTdGF0dXMpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyaWdnZXJlZFN0YXR1czogdW5kZWZpbmVkLFxuICAgICAgICBwcmV2aW91c1BhdGhuYW1lOiBwcm9wcy5wYXRobmFtZSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHRyaWdnZXJlZFN0YXR1czogc3RhdGUudHJpZ2dlcmVkU3RhdHVzLFxuICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgbm90Rm91bmQsIGZvcmJpZGRlbiwgdW5hdXRob3JpemVkLCBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHsgdHJpZ2dlcmVkU3RhdHVzIH0gPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgZXJyb3JDb21wb25lbnRzID0ge1xuICAgICAgW0hUVFBBY2Nlc3NFcnJvclN0YXR1cy5OT1RfRk9VTkRdOiBub3RGb3VuZCxcbiAgICAgIFtIVFRQQWNjZXNzRXJyb3JTdGF0dXMuRk9SQklEREVOXTogZm9yYmlkZGVuLFxuICAgICAgW0hUVFBBY2Nlc3NFcnJvclN0YXR1cy5VTkFVVEhPUklaRURdOiB1bmF1dGhvcml6ZWQsXG4gICAgfVxuXG4gICAgaWYgKHRyaWdnZXJlZFN0YXR1cykge1xuICAgICAgY29uc3QgaXNOb3RGb3VuZCA9XG4gICAgICAgIHRyaWdnZXJlZFN0YXR1cyA9PT0gSFRUUEFjY2Vzc0Vycm9yU3RhdHVzLk5PVF9GT1VORCAmJiBub3RGb3VuZFxuICAgICAgY29uc3QgaXNGb3JiaWRkZW4gPVxuICAgICAgICB0cmlnZ2VyZWRTdGF0dXMgPT09IEhUVFBBY2Nlc3NFcnJvclN0YXR1cy5GT1JCSURERU4gJiYgZm9yYmlkZGVuXG4gICAgICBjb25zdCBpc1VuYXV0aG9yaXplZCA9XG4gICAgICAgIHRyaWdnZXJlZFN0YXR1cyA9PT0gSFRUUEFjY2Vzc0Vycm9yU3RhdHVzLlVOQVVUSE9SSVpFRCAmJiB1bmF1dGhvcml6ZWRcblxuICAgICAgLy8gSWYgdGhlcmUncyBubyBtYXRjaGVkIGJvdW5kYXJ5IGluIHRoaXMgbGF5ZXIsIGtlZXAgdGhyb3dpbmcgdGhlIGVycm9yIGJ5IHJlbmRlcmluZyB0aGUgY2hpbGRyZW5cbiAgICAgIGlmICghKGlzTm90Rm91bmQgfHwgaXNGb3JiaWRkZW4gfHwgaXNVbmF1dGhvcml6ZWQpKSB7XG4gICAgICAgIHJldHVybiBjaGlsZHJlblxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxtZXRhIG5hbWU9XCJyb2JvdHNcIiBjb250ZW50PVwibm9pbmRleFwiIC8+XG4gICAgICAgICAge3Byb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmIChcbiAgICAgICAgICAgIDxtZXRhXG4gICAgICAgICAgICAgIG5hbWU9XCJib3VuZGFyeS1uZXh0LWVycm9yXCJcbiAgICAgICAgICAgICAgY29udGVudD17Z2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyh0cmlnZ2VyZWRTdGF0dXMpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtlcnJvckNvbXBvbmVudHNbdHJpZ2dlcmVkU3RhdHVzXX1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkcmVuXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5KHtcbiAgbm90Rm91bmQsXG4gIGZvcmJpZGRlbixcbiAgdW5hdXRob3JpemVkLFxuICBjaGlsZHJlbixcbn06IEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5UHJvcHMpIHtcbiAgLy8gV2hlbiB3ZSdyZSByZW5kZXJpbmcgdGhlIG1pc3NpbmcgcGFyYW1zIHNoZWxsLCB0aGlzIHdpbGwgcmV0dXJuIG51bGwuIFRoaXNcbiAgLy8gaXMgYmVjYXVzZSB3ZSB3b24ndCBiZSByZW5kZXJpbmcgYW55IG5vdCBmb3VuZCBib3VuZGFyaWVzIG9yIGVycm9yXG4gIC8vIGJvdW5kYXJpZXMgZm9yIHRoZSBtaXNzaW5nIHBhcmFtcyBzaGVsbC4gV2hlbiB0aGlzIHJ1bnMgb24gdGhlIGNsaWVudFxuICAvLyAod2hlcmUgdGhlc2UgZXJyb3IgY2FuIG9jY3VyKSwgd2Ugd2lsbCBnZXQgdGhlIGNvcnJlY3QgcGF0aG5hbWUuXG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlVW50cmFja2VkUGF0aG5hbWUoKVxuICBjb25zdCBtaXNzaW5nU2xvdHMgPSB1c2VDb250ZXh0KE1pc3NpbmdTbG90Q29udGV4dClcbiAgY29uc3QgaGFzRXJyb3JGYWxsYmFjayA9ICEhKG5vdEZvdW5kIHx8IGZvcmJpZGRlbiB8fCB1bmF1dGhvcml6ZWQpXG5cbiAgaWYgKGhhc0Vycm9yRmFsbGJhY2spIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnlcbiAgICAgICAgcGF0aG5hbWU9e3BhdGhuYW1lfVxuICAgICAgICBub3RGb3VuZD17bm90Rm91bmR9XG4gICAgICAgIGZvcmJpZGRlbj17Zm9yYmlkZGVufVxuICAgICAgICB1bmF1dGhvcml6ZWQ9e3VuYXV0aG9yaXplZH1cbiAgICAgICAgbWlzc2luZ1Nsb3RzPXttaXNzaW5nU2xvdHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JCb3VuZGFyeT5cbiAgICApXG4gIH1cblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+XG59XG4iXSwibmFtZXMiOlsiSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkiLCJIVFRQQWNjZXNzRmFsbGJhY2tFcnJvckJvdW5kYXJ5IiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb21wb25lbnREaWRDYXRjaCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3BzIiwibWlzc2luZ1Nsb3RzIiwic2l6ZSIsImhhcyIsIndhcm5pbmdNZXNzYWdlIiwiZm9ybWF0dGVkU2xvdHMiLCJBcnJheSIsImZyb20iLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwibWFwIiwic2xvdCIsImpvaW4iLCJ3YXJuT25jZSIsImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsImVycm9yIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciIsImh0dHBTdGF0dXMiLCJnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXMiLCJ0cmlnZ2VyZWRTdGF0dXMiLCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCJzdGF0ZSIsInBhdGhuYW1lIiwicHJldmlvdXNQYXRobmFtZSIsInVuZGVmaW5lZCIsInJlbmRlciIsIm5vdEZvdW5kIiwiZm9yYmlkZGVuIiwidW5hdXRob3JpemVkIiwiY2hpbGRyZW4iLCJlcnJvckNvbXBvbmVudHMiLCJIVFRQQWNjZXNzRXJyb3JTdGF0dXMiLCJOT1RfRk9VTkQiLCJGT1JCSURERU4iLCJVTkFVVEhPUklaRUQiLCJpc05vdEZvdW5kIiwiaXNGb3JiaWRkZW4iLCJpc1VuYXV0aG9yaXplZCIsIm1ldGEiLCJuYW1lIiwiY29udGVudCIsImdldEFjY2Vzc0ZhbGxiYWNrRXJyb3JUeXBlQnlTdGF0dXMiLCJjb25zdHJ1Y3RvciIsInVzZVVudHJhY2tlZFBhdGhuYW1lIiwidXNlQ29udGV4dCIsIk1pc3NpbmdTbG90Q29udGV4dCIsImhhc0Vycm9yRmFsbGJhY2siXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js":
|
||
/*!***********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js ***!
|
||
\***********************************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 HTTPAccessErrorStatus: function() {\n return HTTPAccessErrorStatus;\n },\n HTTP_ERROR_FALLBACK_ERROR_CODE: function() {\n return HTTP_ERROR_FALLBACK_ERROR_CODE;\n },\n getAccessFallbackErrorTypeByStatus: function() {\n return getAccessFallbackErrorTypeByStatus;\n },\n getAccessFallbackHTTPStatus: function() {\n return getAccessFallbackHTTPStatus;\n },\n isHTTPAccessFallbackError: function() {\n return isHTTPAccessFallbackError;\n }\n});\nconst HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401\n};\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));\nconst HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';\nfunction isHTTPAccessFallbackError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const [prefix, httpStatus] = error.digest.split(';');\n return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));\n}\nfunction getAccessFallbackHTTPStatus(error) {\n const httpStatus = error.digest.split(';')[1];\n return Number(httpStatus);\n}\nfunction getAccessFallbackErrorTypeByStatus(status) {\n switch(status){\n case 401:\n return 'unauthorized';\n case 403:\n return 'forbidden';\n case 404:\n return 'not-found';\n default:\n return;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=http-access-fallback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxxQkFBcUI7ZUFBckJBOztJQVFBQyw4QkFBOEI7ZUFBOUJBOztJQXVDR0Msa0NBQWtDO2VBQWxDQTs7SUFQQUMsMkJBQTJCO2VBQTNCQTs7SUFuQkFDLHlCQUF5QjtlQUF6QkE7OztBQXJCVCxNQUFNSix3QkFBd0I7SUFDbkNLLFdBQVc7SUFDWEMsV0FBVztJQUNYQyxjQUFjO0FBQ2hCO0FBRUEsTUFBTUMsZ0JBQWdCLElBQUlDLElBQUlDLE9BQU9DLE1BQU0sQ0FBQ1g7QUFFckMsTUFBTUMsaUNBQWlDO0FBYXZDLFNBQVNHLDBCQUNkUSxLQUFjO0lBRWQsSUFDRSxPQUFPQSxVQUFVLFlBQ2pCQSxVQUFVLFFBQ1YsQ0FBRSxhQUFZQSxLQUFBQSxDQUFJLElBQ2xCLE9BQU9BLE1BQU1DLE1BQU0sS0FBSyxVQUN4QjtRQUNBLE9BQU87SUFDVDtJQUNBLE1BQU0sQ0FBQ0MsUUFBUUMsV0FBVyxHQUFHSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUVoRCxPQUNFRixXQUFXYixrQ0FDWE8sY0FBY1MsR0FBRyxDQUFDQyxPQUFPSDtBQUU3QjtBQUVPLFNBQVNaLDRCQUNkUyxLQUE4QjtJQUU5QixNQUFNRyxhQUFhSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUM3QyxPQUFPRSxPQUFPSDtBQUNoQjtBQUVPLFNBQVNiLG1DQUNkaUIsTUFBYztJQUVkLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1Q7WUFDRTtJQUNKO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEhUVFBBY2Nlc3NFcnJvclN0YXR1cyA9IHtcbiAgTk9UX0ZPVU5EOiA0MDQsXG4gIEZPUkJJRERFTjogNDAzLFxuICBVTkFVVEhPUklaRUQ6IDQwMSxcbn1cblxuY29uc3QgQUxMT1dFRF9DT0RFUyA9IG5ldyBTZXQoT2JqZWN0LnZhbHVlcyhIVFRQQWNjZXNzRXJyb3JTdGF0dXMpKVxuXG5leHBvcnQgY29uc3QgSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFID0gJ05FWFRfSFRUUF9FUlJPUl9GQUxMQkFDSydcblxuZXhwb3J0IHR5cGUgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFfTske3N0cmluZ31gXG59XG5cbi8qKlxuICogQ2hlY2tzIGFuIGVycm9yIHRvIGRldGVybWluZSBpZiBpdCdzIGFuIGVycm9yIGdlbmVyYXRlZCBieVxuICogdGhlIEhUVFAgbmF2aWdhdGlvbiBBUElzIGBub3RGb3VuZCgpYCwgYGZvcmJpZGRlbigpYCBvciBgdW5hdXRob3JpemVkKClgLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgSFRUUCBhY2Nlc3MgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgSFRUUCBhY2Nlc3MgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciB7XG4gIGlmIChcbiAgICB0eXBlb2YgZXJyb3IgIT09ICdvYmplY3QnIHx8XG4gICAgZXJyb3IgPT09IG51bGwgfHxcbiAgICAhKCdkaWdlc3QnIGluIGVycm9yKSB8fFxuICAgIHR5cGVvZiBlcnJvci5kaWdlc3QgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IFtwcmVmaXgsIGh0dHBTdGF0dXNdID0gZXJyb3IuZGlnZXN0LnNwbGl0KCc7JylcblxuICByZXR1cm4gKFxuICAgIHByZWZpeCA9PT0gSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFICYmXG4gICAgQUxMT1dFRF9DT0RFUy5oYXMoTnVtYmVyKGh0dHBTdGF0dXMpKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXMoXG4gIGVycm9yOiBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvclxuKTogbnVtYmVyIHtcbiAgY29uc3QgaHR0cFN0YXR1cyA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpWzFdXG4gIHJldHVybiBOdW1iZXIoaHR0cFN0YXR1cylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc0ZhbGxiYWNrRXJyb3JUeXBlQnlTdGF0dXMoXG4gIHN0YXR1czogbnVtYmVyXG4pOiAnbm90LWZvdW5kJyB8ICdmb3JiaWRkZW4nIHwgJ3VuYXV0aG9yaXplZCcgfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKHN0YXR1cykge1xuICAgIGNhc2UgNDAxOlxuICAgICAgcmV0dXJuICd1bmF1dGhvcml6ZWQnXG4gICAgY2FzZSA0MDM6XG4gICAgICByZXR1cm4gJ2ZvcmJpZGRlbidcbiAgICBjYXNlIDQwNDpcbiAgICAgIHJldHVybiAnbm90LWZvdW5kJ1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm5cbiAgfVxufVxuIl0sIm5hbWVzIjpbIkhUVFBBY2Nlc3NFcnJvclN0YXR1cyIsIkhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSIsImdldEFjY2Vzc0ZhbGxiYWNrRXJyb3JUeXBlQnlTdGF0dXMiLCJnZXRBY2Nlc3NGYWxsYmFja0hUVFBTdGF0dXMiLCJpc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIiwiTk9UX0ZPVU5EIiwiRk9SQklEREVOIiwiVU5BVVRIT1JJWkVEIiwiQUxMT1dFRF9DT0RFUyIsIlNldCIsIk9iamVjdCIsInZhbHVlcyIsImVycm9yIiwiZGlnZXN0IiwicHJlZml4IiwiaHR0cFN0YXR1cyIsInNwbGl0IiwiaGFzIiwiTnVtYmVyIiwic3RhdHVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/is-next-router-error.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNextRouterError\", ({\n enumerable: true,\n get: function() {\n return isNextRouterError;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nfunction isNextRouterError(error) {\n return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-next-router-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBV2dCQTs7O2VBQUFBOzs7Z0RBUlQ7MkNBQzZDO0FBTzdDLFNBQVNBLGtCQUNkQyxLQUFjO0lBRWQsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsZUFBQUEsRUFBZ0JELFVBQVVFLENBQUFBLEdBQUFBLG9CQUFBQSx5QkFBQUEsRUFBMEJGO0FBQzdEIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IGlzUmVkaXJlY3RFcnJvciwgdHlwZSBSZWRpcmVjdEVycm9yIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgbmF2aWdhdGlvbiBzaWduYWwgZXJyb3IuIFRoZXNlIGVycm9ycyBhcmVcbiAqIHRocm93biBieSB1c2VyIGNvZGUgdG8gcGVyZm9ybSBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMgYW5kIGludGVycnVwdCB0aGUgUmVhY3RcbiAqIHJlbmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dFJvdXRlckVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgUmVkaXJlY3RFcnJvciB8IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgcmV0dXJuIGlzUmVkaXJlY3RFcnJvcihlcnJvcikgfHwgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihlcnJvcilcbn1cbiJdLCJuYW1lcyI6WyJpc05leHRSb3V0ZXJFcnJvciIsImVycm9yIiwiaXNSZWRpcmVjdEVycm9yIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/layout-router.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/layout-router.js ***!
|
||
\*******************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return OuterLayoutRouter;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\"));\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _fetchserverresponse = __webpack_require__(/*! ./router-reducer/fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _unresolvedthenable = __webpack_require__(/*! ./unresolved-thenable */ \"(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js\");\nconst _errorboundary = __webpack_require__(/*! ./error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _matchsegments = __webpack_require__(/*! ./match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nconst _disablesmoothscroll = __webpack_require__(/*! ../../shared/lib/router/utils/disable-smooth-scroll */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\");\nconst _redirectboundary = __webpack_require__(/*! ./redirect-boundary */ \"(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js\");\nconst _errorboundary1 = __webpack_require__(/*! ./http-access-fallback/error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./router-reducer/create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _hasinterceptionrouteincurrenttree = __webpack_require__(/*! ./router-reducer/reducers/has-interception-route-in-current-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\");\nconst _useactionqueue = __webpack_require__(/*! ./use-action-queue */ \"(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\");\nconst _bfcache = __webpack_require__(/*! ./bfcache */ \"(ssr)/./node_modules/next/dist/client/components/bfcache.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst Activity = false ? 0 : null;\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, _matchsegments.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}\nconst __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = _reactdom.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\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 // __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode is null during module init.\n // We need to lazily reference it.\n const internal_reactDOMfindDOMNode = __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode;\n return internal_reactDOMfindDOMNode(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.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), 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, _matchsegments.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 if (true) {\n var _domNode_parentElement;\n if (((_domNode_parentElement = domNode.parentElement) == null ? void 0 : _domNode_parentElement.localName) === 'head') {\n // TODO: We enter this state when metadata was rendered as part of the page or via Next.js.\n // This is always a bug in Next.js and caused by React hoisting metadata.\n // We need to replace `findDOMNode` in favor of Fragment Refs (when available) so that we can skip over metadata.\n }\n }\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, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{\n // In case of hash scroll, we only need to scroll the element into view\n if (hashFragment) {\n ;\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 // Scroll into view doesn't scroll horizontally by default when not needed\n ;\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 `disableSmoothScrollDuringRouteTransition`\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.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant global layout router not mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E473\",\n enumerable: false,\n configurable: true\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.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 { tree, segmentPath, cacheNode, url } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant global layout router not mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E473\",\n enumerable: false,\n configurable: true\n });\n }\n const { tree: fullTree } = context;\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 = cacheNode.prefetchRsc !== null ? cacheNode.prefetchRsc : cacheNode.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 const rsc = (0, _react.useDeferredValue)(cacheNode.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.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 = cacheNode.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 const includeNextUrl = (0, _hasinterceptionrouteincurrenttree.hasInterceptionRouteInCurrentTree)(fullTree);\n const navigatedAt = Date.now();\n cacheNode.lazyData = lazyData = (0, _fetchserverresponse.fetchServerResponse)(new URL(url, location.origin), {\n flightRouterState: refetchTree,\n nextUrl: includeNextUrl ? context.nextUrl : null\n }).then((serverResponse)=>{\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_SERVER_PATCH,\n previousTree: fullTree,\n serverResponse,\n navigatedAt\n });\n });\n return serverResponse;\n });\n // Suspend while waiting for lazyData to resolve\n (0, _react.use)(lazyData);\n }\n // Suspend infinitely as `changeByServerResponse` will cause a different part of the tree to be rendered.\n // A falsey `resolvedRsc` indicates missing data -- we should not commit that branch, and we need to wait for the data to arrive.\n (0, _react.use)(_unresolvedthenable.unresolvedThenable);\n }\n // If we get to this point, then we know we have something we can render.\n const subtree = /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {\n value: {\n parentTree: tree,\n parentCacheNode: cacheNode,\n parentSegmentPath: segmentPath,\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 { loading, children } = param;\n // If loading is a promise, unwrap it. This happens in cases where we haven't\n // yet received the loading data from the server — which includes whether or\n // not this layout has a loading component at all.\n //\n // It's OK to suspend here instead of inside the fallback because this\n // promise will resolve simultaneously with the data for the segment itself.\n // So it will never suspend for longer than it would have if we didn't use\n // a Suspense fallback at all.\n let loadingModuleData;\n if (typeof loading === 'object' && loading !== null && typeof loading.then === 'function') {\n const promiseForLoading = loading;\n loadingModuleData = (0, _react.use)(promiseForLoading);\n } else {\n loadingModuleData = loading;\n }\n if (loadingModuleData) {\n const loadingRsc = loadingModuleData[0];\n const loadingStyles = loadingModuleData[1];\n const loadingScripts = loadingModuleData[2];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n fallback: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n loadingStyles,\n loadingScripts,\n loadingRsc\n ]\n }),\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nfunction OuterLayoutRouter(param) {\n let { parallelRouterKey, error, errorStyles, errorScripts, templateStyles, templateScripts, template, notFound, forbidden, unauthorized, segmentViewBoundaries } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant expected layout router to be mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E56\",\n enumerable: false,\n configurable: true\n });\n }\n const { parentTree, parentCacheNode, parentSegmentPath, url } = context;\n // Get the CacheNode for this segment by reading it from the parent segment's\n // child map.\n const parentParallelRoutes = parentCacheNode.parallelRoutes;\n let segmentMap = parentParallelRoutes.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 (!segmentMap) {\n segmentMap = new Map();\n parentParallelRoutes.set(parallelRouterKey, segmentMap);\n }\n const parentTreeSegment = parentTree[0];\n const segmentPath = parentSegmentPath === null ? // the code. We should clean this up.\n [\n parallelRouterKey\n ] : parentSegmentPath.concat([\n parentTreeSegment,\n parallelRouterKey\n ]);\n // The \"state\" key of a segment is the one passed to React — it represents the\n // identity of the UI tree. Whenever the state key changes, the tree is\n // recreated and the state is reset. In the App Router model, search params do\n // not cause state to be lost, so two segments with the same segment path but\n // different search params should have the same state key.\n //\n // The \"cache\" key of a segment, however, *does* include the search params, if\n // it's possible that the segment accessed the search params on the server.\n // (This only applies to page segments; layout segments cannot access search\n // params on the server.)\n const activeTree = parentTree[1][parallelRouterKey];\n const activeSegment = activeTree[0];\n const activeStateKey = (0, _createroutercachekey.createRouterCacheKey)(activeSegment, true) // no search params\n ;\n // At each level of the route tree, not only do we render the currently\n // active segment — we also render the last N segments that were active at\n // this level inside a hidden <Activity> boundary, to preserve their state\n // if or when the user navigates to them again.\n //\n // bfcacheEntry is a linked list of FlightRouterStates.\n let bfcacheEntry = (0, _bfcache.useRouterBFCache)(activeTree, activeStateKey);\n let children = [];\n do {\n const tree = bfcacheEntry.tree;\n const stateKey = bfcacheEntry.stateKey;\n const segment = tree[0];\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segment);\n // Read segment path from the parallel router cache node.\n let cacheNode = segmentMap.get(cacheKey);\n if (cacheNode === undefined) {\n // When data is not available during rendering client-side we need to fetch\n // it from the server.\n const newLazyCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\n };\n // Flight data fetch kicked off during render and put into the cache.\n cacheNode = newLazyCacheNode;\n segmentMap.set(cacheKey, newLazyCacheNode);\n }\n /*\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 - When gracefully degrade for bots, skip rendering error boundary.\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 */ let segmentBoundaryTriggerNode = null;\n let segmentViewStateNode = null;\n if (true) {\n const { SegmentBoundaryTriggerNode, SegmentViewStateNode } = __webpack_require__(/*! ../../next-devtools/userspace/app/segment-explorer-node */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\n const pagePrefix = (0, _apppaths.normalizeAppPath)(url);\n segmentViewStateNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewStateNode, {\n page: pagePrefix\n }, pagePrefix);\n segmentBoundaryTriggerNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentBoundaryTriggerNode, {})\n });\n }\n // TODO: The loading module data for a segment is stored on the parent, then\n // applied to each of that parent segment's parallel route slots. In the\n // simple case where there's only one parallel route (the `children` slot),\n // this is no different from if the loading module data where stored on the\n // child directly. But I'm not sure this actually makes sense when there are\n // multiple parallel routes. It's not a huge issue because you always have\n // the option to define a narrower loading boundary for a particular slot. But\n // this sort of smells like an implementation accident to me.\n const loadingModuleData = parentCacheNode.loading;\n let child = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_approutercontextsharedruntime.TemplateContext.Provider, {\n value: /*#__PURE__*/ (0, _jsxruntime.jsxs)(ScrollAndFocusHandler, {\n segmentPath: segmentPath,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, {\n errorComponent: error,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingBoundary, {\n loading: loadingModuleData,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary1.HTTPAccessFallbackBoundary, {\n notFound: notFound,\n forbidden: forbidden,\n unauthorized: unauthorized,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_redirectboundary.RedirectBoundary, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerLayoutRouter, {\n url: url,\n tree: tree,\n cacheNode: cacheNode,\n segmentPath: segmentPath\n }),\n segmentBoundaryTriggerNode\n ]\n })\n })\n })\n }),\n segmentViewStateNode\n ]\n }),\n children: [\n templateStyles,\n templateScripts,\n template\n ]\n }, stateKey);\n if (true) {\n const { SegmentStateProvider } = __webpack_require__(/*! ../../next-devtools/userspace/app/segment-explorer-node */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\n child = /*#__PURE__*/ (0, _jsxruntime.jsxs)(SegmentStateProvider, {\n children: [\n child,\n segmentViewBoundaries\n ]\n }, stateKey);\n }\n if (false) {}\n children.push(child);\n bfcacheEntry = bfcacheEntry.next;\n }while (bfcacheEntry !== null);\n return children;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=layout-router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0E4ZUE7OztlQUF3QkE7Ozs7OztnREEvZGpCOzZFQVNBOytFQUNjOzJEQUtkO2lEQUM2QjtnREFDRDsyQ0FDTDsyQ0FDRDtpREFDNEI7OENBQ3hCOzRDQUNVO2tEQUNOOytEQUNhOzRDQUNWO3FDQUNrQjtzQ0FDekI7QUFFakMsTUFBTUMsV0FBV0MsTUFBa0MsR0FDOUNHLENBQTZELEdBQzlEO0FBRUo7OztDQUdDLEdBQ0QsU0FBU0UsZUFDUEMsaUJBQWdELEVBQ2hEQyxjQUFpQztJQUVqQyxJQUFJRCxtQkFBbUI7UUFDckIsTUFBTSxDQUFDRSxTQUFTQyxpQkFBaUIsR0FBR0g7UUFDcEMsTUFBTUksU0FBU0osa0JBQWtCSyxNQUFNLEtBQUs7UUFFNUMsSUFBSUMsQ0FBQUEsR0FBQUEsZUFBQUEsWUFBWSxFQUFDTCxjQUFjLENBQUMsRUFBRSxFQUFFQyxVQUFVO1lBQzVDLElBQUlELGNBQWMsQ0FBQyxFQUFFLENBQUNNLGNBQWMsQ0FBQ0osbUJBQW1CO2dCQUN0RCxJQUFJQyxRQUFRO29CQUNWLE1BQU1JLFVBQVVULGVBQ2RVLFdBQ0FSLGNBQWMsQ0FBQyxFQUFFLENBQUNFLGlCQUFpQjtvQkFFckMsT0FBTzt3QkFDTEYsY0FBYyxDQUFDLEVBQUU7d0JBQ2pCOzRCQUNFLEdBQUdBLGNBQWMsQ0FBQyxFQUFFOzRCQUNwQixDQUFDRSxpQkFBaUIsRUFBRTtnQ0FDbEJLLE9BQU8sQ0FBQyxFQUFFO2dDQUNWQSxPQUFPLENBQUMsRUFBRTtnQ0FDVkEsT0FBTyxDQUFDLEVBQUU7Z0NBQ1Y7NkJBQ0Q7d0JBQ0g7cUJBQ0Q7Z0JBQ0g7Z0JBRUEsT0FBTztvQkFDTFAsY0FBYyxDQUFDLEVBQUU7b0JBQ2pCO3dCQUNFLEdBQUdBLGNBQWMsQ0FBQyxFQUFFO3dCQUNwQixDQUFDRSxpQkFBaUIsRUFBRUosZUFDbEJDLGtCQUFr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O29CQUtSQzs7OztnQkFJSjNCO2dCQUNBQztnQkFDQUM7O1dBaENJbUI7UUFvQ1QsSUFBSTFKLElBQW9CLEVBQW1CO1lBQ3pDLE1BQU0sRUFBRTZLLG9CQUFvQixFQUFFLEdBQzVCMUssbUJBQU9BLENBQUMsb0pBQXlEO1lBRW5Fb0ssUUFBQUEsV0FBQUEsR0FDRSxzQkFBQ00sc0JBQUFBOztvQkFDRU47b0JBQ0E1Qjs7ZUFGd0JlO1FBSy9CO1FBRUEsSUFBSTFKLEtBQWtDLEVBQUUsRUFTdkM7UUFFRHVELFNBQVN3SCxJQUFJLENBQUNSO1FBRWRmLGVBQWVBLGFBQWF3QixJQUFJO0lBQ2xDLFFBQVN4QixpQkFBaUIsTUFBSztJQUUvQixPQUFPakc7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7XG4gIENhY2hlTm9kZSxcbiAgTGF6eUNhY2hlTm9kZSxcbiAgTG9hZGluZ01vZHVsZURhdGEsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUge1xuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgRmxpZ2h0U2VnbWVudFBhdGgsXG59IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBFcnJvckNvbXBvbmVudCB9IGZyb20gJy4vZXJyb3ItYm91bmRhcnknXG5pbXBvcnQge1xuICBBQ1RJT05fU0VSVkVSX1BBVENILFxuICB0eXBlIEZvY3VzQW5kU2Nyb2xsUmVmLFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuXG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ29udGV4dCxcbiAgdXNlLFxuICBzdGFydFRyYW5zaXRpb24sXG4gIFN1c3BlbnNlLFxuICB1c2VEZWZlcnJlZFZhbHVlLFxuICB0eXBlIEpTWCxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHtcbiAgTGF5b3V0Um91dGVyQ29udGV4dCxcbiAgR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCxcbiAgVGVtcGxhdGVDb250ZXh0LFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGZldGNoU2VydmVyUmVzcG9uc2UgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcbmltcG9ydCB7IHVucmVzb2x2ZWRUaGVuYWJsZSB9IGZyb20gJy4vdW5yZXNvbHZlZC10aGVuYWJsZSdcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tICcuL2Vycm9yLWJvdW5kYXJ5J1xuaW1wb3J0IHsgbWF0Y2hTZWdtZW50IH0gZnJvbSAnLi9tYXRjaC1zZWdtZW50cydcbmltcG9ydCB7IGRpc2FibGVTbW9vdGhTY3JvbGxEdXJpbmdSb3V0ZVRyYW5zaXRpb24gfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9kaXNhYmxlLXNtb290aC1zY3JvbGwnXG5pbXBvcnQgeyBSZWRpcmVjdEJvdW5kYXJ5IH0gZnJvbSAnLi9yZWRpcmVjdC1ib3VuZGFyeSdcbmltcG9ydCB7IEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5IH0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1ib3VuZGFyeSdcbmltcG9ydCB7IGNyZWF0ZVJvdXRlckNhY2hlS2V5IH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci9jcmVhdGUtcm91dGVyLWNhY2hlLWtleSdcbmltcG9ydCB7IGhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvaGFzLWludGVyY2VwdGlvbi1yb3V0ZS1pbi1jdXJyZW50LXRyZWUnXG5pbXBvcnQgeyBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiB9IGZyb20gJy4vdXNlLWFjdGlvbi1xdWV1ZSdcbmltcG9ydCB7IHVzZVJvdXRlckJGQ2FjaGUsIHR5cGUgUm91dGVyQkZDYWNoZUVudHJ5IH0gZnJvbSAnLi9iZmNhY2hlJ1xuaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocydcblxuY29uc3QgQWN0aXZpdHkgPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JGX0NBQ0hFXG4gID8gKHJlcXVpcmUoJ3JlYWN0JykgYXMgdHlwZW9mIGltcG9ydCgncmVhY3QnKSkudW5zdGFibGVfQWN0aXZpdHlcbiAgOiBudWxsIVxuXG4vKipcbiAqIEFkZCByZWZldGNoIG1hcmtlciB0byByb3V0ZXIgc3RhdGUgYXQgdGhlIHBvaW50IG9mIHRoZSBjdXJyZW50IGxheW91dCBzZWdtZW50LlxuICogVGhpcyBlbnN1cmVzIHRoZSByZXNwb25zZSByZXR1cm5lZCBpcyBub3QgZnVydGhlciBkb3duIHRoYW4gdGhlIGN1cnJlbnQgbGF5b3V0IHNlZ21lbnQuXG4gKi9cbmZ1bmN0aW9uIHdhbGtBZGRSZWZldGNoKFxuICBzZWdtZW50UGF0aFRvV2FsazogRmxpZ2h0U2VnbWVudFBhdGggfCB1bmRlZmluZWQsXG4gIHRyZWVUb1JlY3JlYXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogRmxpZ2h0Um91dGVyU3RhdGUge1xuICBpZiAoc2VnbWVudFBhdGhUb1dhbGspIHtcbiAgICBjb25zdCBbc2VnbWVudCwgcGFyYWxsZWxSb3V0ZUtleV0gPSBzZWdtZW50UGF0aFRvV2Fsa1xuICAgIGNvbnN0IGlzTGFzdCA9IHNlZ21lbnRQYXRoVG9XYWxrLmxlbmd0aCA9PT0gMlxuXG4gICAgaWYgKG1hdGNoU2VnbWVudCh0cmVlVG9SZWNyZWF0ZVswXSwgc2VnbWVudCkpIHtcbiAgICAgIGlmICh0cmVlVG9SZWNyZWF0ZVsxXS5oYXNPd25Qcm9wZXJ0eShwYXJhbGxlbFJvdXRlS2V5KSkge1xuICAgICAgICBpZiAoaXNMYXN0KSB7XG4gICAgICAgICAgY29uc3Qgc3ViVHJlZSA9IHdhbGtBZGRSZWZldGNoKFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgdHJlZVRvUmVjcmVhdGVbMV1bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzBdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi50cmVlVG9SZWNyZWF0ZVsxXSxcbiAgICAgICAgICAgICAgW3BhcmFsbGVsUm91dGVLZXldOiBbXG4gICAgICAgICAgICAgICAgc3ViVHJlZVswXSxcbiAgICAgICAgICAgICAgICBzdWJUcmVlWzFdLFxuICAgICAgICAgICAgICAgIHN1YlRyZWVbMl0sXG4gICAgICAgICAgICAgICAgJ3JlZmV0Y2gnLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzBdLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLnRyZWVUb1JlY3JlYXRlWzFdLFxuICAgICAgICAgICAgW3BhcmFsbGVsUm91dGVLZXldOiB3YWxrQWRkUmVmZXRjaChcbiAgICAgICAgICAgICAgc2VnbWVudFBhdGhUb1dhbGsuc2xpY2UoMiksXG4gICAgICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzFdW3BhcmFsbGVsUm91dGVLZXldXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJlZVRvUmVjcmVhdGVcbn1cblxuY29uc3QgX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFID0gKFxuICBSZWFjdERPTSBhcyBhbnlcbikuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFXG5cbi8vIFRPRE8tQVBQOiBSZXBsYWNlIHdpdGggbmV3IFJlYWN0IEFQSSBmb3IgZmluZGluZyBkb20gbm9kZXMgd2l0aG91dCBhIGByZWZgIHdoZW4gYXZhaWxhYmxlXG4vKipcbiAqIFdyYXBzIFJlYWN0RE9NLmZpbmRET01Ob2RlIHdpdGggYWRkaXRpb25hbCBsb2dpYyB0byBoaWRlIFJlYWN0IFN0cmljdCBNb2RlIHdhcm5pbmdcbiAqL1xuZnVuY3Rpb24gZmluZERPTU5vZGUoXG4gIGluc3RhbmNlOiBSZWFjdC5SZWFjdEluc3RhbmNlIHwgbnVsbCB8IHVuZGVmaW5lZFxuKTogRWxlbWVudCB8IFRleHQgfCBudWxsIHtcbiAgLy8gVHJlZS1zaGFrZSBmb3Igc2VydmVyIGJ1bmRsZVxuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBudWxsXG5cbiAgLy8gX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLmZpbmRET01Ob2RlIGlzIG51bGwgZHVyaW5nIG1vZHVsZSBpbml0LlxuICAvLyBXZSBuZWVkIHRvIGxhemlseSByZWZlcmVuY2UgaXQuXG4gIGNvbnN0IGludGVybmFsX3JlYWN0RE9NZmluZERPTU5vZGUgPVxuICAgIF9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERS5maW5kRE9NTm9kZVxuICByZXR1cm4gaW50ZXJuYWxfcmVhY3RET01maW5kRE9NTm9kZShpbnN0YW5jZSlcbn1cblxuY29uc3QgcmVjdFByb3BlcnRpZXMgPSBbXG4gICdib3R0b20nLFxuICAnaGVpZ2h0JyxcbiAgJ2xlZnQnLFxuICAncmlnaHQnLFxuICAndG9wJyxcbiAgJ3dpZHRoJyxcbiAgJ3gnLFxuICAneScsXG5dIGFzIGNvbnN0XG4vKipcbiAqIENoZWNrIGlmIGEgSFRNTEVsZW1lbnQgaXMgaGlkZGVuIG9yIGZpeGVkL3N0aWNreSBwb3NpdGlvblxuICovXG5mdW5jdGlvbiBzaG91bGRTa2lwRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAvLyB3ZSBpZ25vcmUgZml4ZWQgb3Igc3RpY2t5IHBvc2l0aW9uZWQgZWxlbWVudHMgc2luY2UgdGhleSdsbCBsaWtlbHkgcGFzcyB0aGUgXCJpbi12aWV3cG9ydFwiIGNoZWNrXG4gIC8vIGFuZCB3aWxsIHJlc3VsdCBpbiBhIHNpdHVhdGlvbiB3ZSBiYWlsIG9uIHNjcm9sbCBiZWNhdXNlIG9mIHNvbWV0aGluZyBsaWtlIGEgZml4ZWQgbmF2LFxuICAvLyBldmVuIHRob3VnaCB0aGUgYWN0dWFsIHBhZ2UgY29udGVudCBpcyBvZmZzY3JlZW5cbiAgaWYgKFsnc3RpY2t5JywgJ2ZpeGVkJ10uaW5jbHVkZXMoZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbikpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1NraXBwaW5nIGF1dG8tc2Nyb2xsIGJlaGF2aW9yIGR1ZSB0byBgcG9zaXRpb246IHN0aWNreWAgb3IgYHBvc2l0aW9uOiBmaXhlZGAgb24gZWxlbWVudDonLFxuICAgICAgICBlbGVtZW50XG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBVc2VzIGBnZXRCb3VuZGluZ0NsaWVudFJlY3RgIHRvIGNoZWNrIGlmIHRoZSBlbGVtZW50IGlzIGhpZGRlbiBpbnN0ZWFkIG9mIGBvZmZzZXRQYXJlbnRgXG4gIC8vIGJlY2F1c2UgYG9mZnNldFBhcmVudGAgZG9lc24ndCBjb25zaWRlciBkb2N1bWVudC9ib2R5XG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiByZWN0UHJvcGVydGllcy5ldmVyeSgoaXRlbSkgPT4gcmVjdFtpdGVtXSA9PT0gMClcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgdG9wIGNvcm5lciBvZiB0aGUgSFRNTEVsZW1lbnQgaXMgaW4gdGhlIHZpZXdwb3J0LlxuICovXG5mdW5jdGlvbiB0b3BPZkVsZW1lbnRJblZpZXdwb3J0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB2aWV3cG9ydEhlaWdodDogbnVtYmVyKSB7XG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiByZWN0LnRvcCA+PSAwICYmIHJlY3QudG9wIDw9IHZpZXdwb3J0SGVpZ2h0XG59XG5cbi8qKlxuICogRmluZCB0aGUgRE9NIG5vZGUgZm9yIGEgaGFzaCBmcmFnbWVudC5cbiAqIElmIGB0b3BgIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIHRvcCBvZiB0aGUgcGFnZS4gVGhpcyBtaXJyb3JzIHRoZSBicm93c2VyJ3MgYmVoYXZpb3IuXG4gKiBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhbiBpZCwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCB3aXRoIHRoYXQgaWQuXG4gKiBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhIG5hbWUsIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIGZpcnN0IGVsZW1lbnQgd2l0aCB0aGF0IG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGdldEhhc2hGcmFnbWVudERvbU5vZGUoaGFzaEZyYWdtZW50OiBzdHJpbmcpIHtcbiAgLy8gSWYgdGhlIGhhc2ggZnJhZ21lbnQgaXMgYHRvcGAgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSBwYWdlLlxuICBpZiAoaGFzaEZyYWdtZW50ID09PSAndG9wJykge1xuICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gIH1cblxuICAvLyBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhbiBpZCwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCB3aXRoIHRoYXQgaWQuXG4gIHJldHVybiAoXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaEZyYWdtZW50KSA/P1xuICAgIC8vIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGEgbmFtZSwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZmlyc3QgZWxlbWVudCB3aXRoIHRoYXQgbmFtZS5cbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShoYXNoRnJhZ21lbnQpWzBdXG4gIClcbn1cbmludGVyZmFjZSBTY3JvbGxBbmRGb2N1c0hhbmRsZXJQcm9wcyB7XG4gIGZvY3VzQW5kU2Nyb2xsUmVmOiBGb2N1c0FuZFNjcm9sbFJlZlxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxufVxuY2xhc3MgSW5uZXJTY3JvbGxBbmRGb2N1c0hhbmRsZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8U2Nyb2xsQW5kRm9jdXNIYW5kbGVyUHJvcHM+IHtcbiAgaGFuZGxlUG90ZW50aWFsU2Nyb2xsID0gKCkgPT4ge1xuICAgIC8vIEhhbmRsZSBzY3JvbGwgYW5kIGZvY3VzLCBpdCdzIG9ubHkgYXBwbGllZCBvbmNlIGluIHRoZSBmaXJzdCB1c2VFZmZlY3QgdGhhdCB0cmlnZ2VycyB0aGF0IGNoYW5nZWQuXG4gICAgY29uc3QgeyBmb2N1c0FuZFNjcm9sbFJlZiwgc2VnbWVudFBhdGggfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChmb2N1c0FuZFNjcm9sbFJlZi5hcHBseSkge1xuICAgICAgLy8gc2VnbWVudFBhdGhzIGlzIGFuIGFycmF5IG9mIHNlZ21lbnQgcGF0aHMgdGhhdCBzaG91bGQgYmUgc2Nyb2xsZWQgdG9cbiAgICAgIC8vIGlmIHRoZSBjdXJyZW50IHNlZ21lbnQgcGF0aCBpcyBub3QgaW4gdGhlIGFycmF5LCB0aGUgc2Nyb2xsIGlzIG5vdCBhcHBsaWVkXG4gICAgICAvLyB1bmxlc3MgdGhlIGFycmF5IGlzIGVtcHR5LCBpbiB3aGljaCBjYXNlIHRoZSBzY3JvbGwgaXMgYWx3YXlzIGFwcGxpZWRcbiAgICAgIGlmIChcbiAgICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICAhZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzLnNvbWUoKHNjcm9sbFJlZlNlZ21lbnRQYXRoKSA9PlxuICAgICAgICAgIHNlZ21lbnRQYXRoLmV2ZXJ5KChzZWdtZW50LCBpbmRleCkgPT5cbiAgICAgICAgICAgIG1hdGNoU2VnbWVudChzZWdtZW50LCBzY3JvbGxSZWZTZWdtZW50UGF0aFtpbmRleF0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBkb21Ob2RlOlxuICAgICAgICB8IFJldHVyblR5cGU8dHlwZW9mIGdldEhhc2hGcmFnbWVudERvbU5vZGU+XG4gICAgICAgIHwgUmV0dXJuVHlwZTx0eXBlb2YgZmluZERPTU5vZGU+ID0gbnVsbFxuICAgICAgY29uc3QgaGFzaEZyYWdtZW50ID0gZm9jdXNBbmRTY3JvbGxSZWYuaGFzaEZyYWdtZW50XG5cbiAgICAgIGlmIChoYXNoRnJhZ21lbnQpIHtcbiAgICAgICAgZG9tTm9kZSA9IGdldEhhc2hGcmFnbWVudERvbU5vZGUoaGFzaEZyYWdtZW50KVxuICAgICAgfVxuXG4gICAgICAvLyBgZmluZERPTU5vZGVgIGlzIHRyaWNreSBiZWNhdXNlIGl0IHJldHVybnMganVzdCB0aGUgZmlyc3QgY2hpbGQgaWYgdGhlIGNvbXBvbmVudCBpcyBhIGZyYWdtZW50LlxuICAgICAgLy8gVGhpcyBhbHJlYWR5IGNhdXNlZCBhIGJ1ZyB3aGVyZSB0aGUgZmlyc3QgY2hpbGQgd2FzIGEgPGxpbmsvPiBpbiBoZWFkLlxuICAgICAgaWYgKCFkb21Ob2RlKSB7XG4gICAgICAgIGRvbU5vZGUgPSBmaW5kRE9NTm9kZSh0aGlzKVxuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGVyZSBpcyBubyBET00gbm9kZSB0aGlzIGxheW91dC1yb3V0ZXIgbGV2ZWwgaXMgc2tpcHBlZC4gSXQnbGwgYmUgaGFuZGxlZCBoaWdoZXItdXAgaW4gdGhlIHRyZWUuXG4gICAgICBpZiAoIShkb21Ob2RlIGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIFZlcmlmeSBpZiB0aGUgZWxlbWVudCBpcyBhIEhUTUxFbGVtZW50IGFuZCBpZiB3ZSB3YW50IHRvIGNvbnNpZGVyIGl0IGZvciBzY3JvbGwgYmVoYXZpb3IuXG4gICAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyBza2lwcGVkLCB0cnkgdG8gc2VsZWN0IHRoZSBuZXh0IHNpYmxpbmcgYW5kIHRyeSBhZ2Fpbi5cbiAgICAgIHdoaWxlICghKGRvbU5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgfHwgc2hvdWxkU2tpcEVsZW1lbnQoZG9tTm9kZSkpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBpZiAoZG9tTm9kZS5wYXJlbnRFbGVtZW50Py5sb2NhbE5hbWUgPT09ICdoZWFkJykge1xuICAgICAgICAgICAgLy8gVE9ETzogV2UgZW50ZXIgdGhpcyBzdGF0ZSB3aGVuIG1ldGFkYXRhIHdhcyByZW5kZXJlZCBhcyBwYXJ0IG9mIHRoZSBwYWdlIG9yIHZpYSBOZXh0LmpzLlxuICAgICAgICAgICAgLy8gVGhpcyBpcyBhbHdheXMgYSBidWcgaW4gTmV4dC5qcyBhbmQgY2F1c2VkIGJ5IFJlYWN0IGhvaXN0aW5nIG1ldGFkYXRhLlxuICAgICAgICAgICAgLy8gV2UgbmVlZCB0byByZXBsYWNlIGBmaW5kRE9NTm9kZWAgaW4gZmF2b3Igb2YgRnJhZ21lbnQgUmVmcyAod2hlbiBhdmFpbGFibGUpIHNvIHRoYXQgd2UgY2FuIHNraXAgb3ZlciBtZXRhZGF0YS5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBObyBzaWJsaW5ncyBmb3VuZCB0aGF0IG1hdGNoIHRoZSBjcml0ZXJpYSBhcmUgZm91bmQsIHNvIGhhbmRsZSBzY3JvbGwgaGlnaGVyIHVwIGluIHRoZSB0cmVlIGluc3RlYWQuXG4gICAgICAgIGlmIChkb21Ob2RlLm5leHRFbGVtZW50U2libGluZyA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGRvbU5vZGUgPSBkb21Ob2RlLm5leHRFbGVtZW50U2libGluZ1xuICAgICAgfVxuXG4gICAgICAvLyBTdGF0ZSBpcyBtdXRhdGVkIHRvIGVuc3VyZSB0aGF0IHRoZSBmb2N1cyBhbmQgc2Nyb2xsIGlzIGFwcGxpZWQgb25seSBvbmNlLlxuICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuYXBwbHkgPSBmYWxzZVxuICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuaGFzaEZyYWdtZW50ID0gbnVsbFxuICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzID0gW11cblxuICAgICAgZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbihcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIC8vIEluIGNhc2Ugb2YgaGFzaCBzY3JvbGwsIHdlIG9ubHkgbmVlZCB0byBzY3JvbGwgdGhlIGVsZW1lbnQgaW50byB2aWV3XG4gICAgICAgICAgaWYgKGhhc2hGcmFnbWVudCkge1xuICAgICAgICAgICAgOyhkb21Ob2RlIGFzIEhUTUxFbGVtZW50KS5zY3JvbGxJbnRvVmlldygpXG5cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTdG9yZSB0aGUgY3VycmVudCB2aWV3cG9ydCBoZWlnaHQgYmVjYXVzZSByZWFkaW5nIGBjbGllbnRIZWlnaHRgIGNhdXNlcyBhIHJlZmxvdyxcbiAgICAgICAgICAvLyBhbmQgaXQgd29uJ3QgY2hhbmdlIGR1cmluZyB0aGlzIGZ1bmN0aW9uLlxuICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICAgICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSBodG1sRWxlbWVudC5jbGllbnRIZWlnaHRcblxuICAgICAgICAgIC8vIElmIHRoZSBlbGVtZW50J3MgdG9wIGVkZ2UgaXMgYWxyZWFkeSBpbiB0aGUgdmlld3BvcnQsIGV4aXQgZWFybHkuXG4gICAgICAgICAgaWYgKHRvcE9mRWxlbWVudEluVmlld3BvcnQoZG9tTm9kZSBhcyBIVE1MRWxlbWVudCwgdmlld3BvcnRIZWlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBPdGhlcndpc2UsIHRyeSBzY3JvbGxpbmcgZ28gdGhlIHRvcCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIHBhZ2VzXG4gICAgICAgICAgLy8gc2Nyb2xsSW50b1ZpZXcoKSBjYWxsZWQgb24gYDxodG1sLz5gIGVsZW1lbnQgc2Nyb2xscyBob3Jpem9udGFsbHkgb24gY2hyb21lIGFuZCBmaXJlZm94ICh0aGF0IHNob3VsZG4ndCBoYXBwZW4pXG4gICAgICAgICAgLy8gV2UgY291bGQgdXNlIGl0IHRvIHNjcm9sbCBob3Jpem9udGFsbHkgZm9sbG93aW5nIFJUTCBidXQgdGhhdCBhbHNvIHNlZW1zIHRvIGJlIGJyb2tlbiAtIGl0IHdpbGwgYWx3YXlzIHNjcm9sbCBsZWZ0XG4gICAgICAgICAgLy8gc2Nyb2xsTGVmdCA9IDAgYWxzbyBzZWVtcyB0byBpZ25vcmUgUlRMIGFuZCBtYW51YWxseSBjaGVja2luZyBmb3IgUlRMIGlzIHRvbyBtdWNoIGhhc3NsZSBzbyB3ZSB3aWxsIHNjcm9sbCBqdXN0IHZlcnRpY2FsbHlcbiAgICAgICAgICBodG1sRWxlbWVudC5zY3JvbGxUb3AgPSAwXG5cbiAgICAgICAgICAvLyBTY3JvbGwgdG8gZG9tTm9kZSBpZiBkb21Ob2RlIGlzIG5vdCBpbiB2aWV3cG9ydCB3aGVuIHNjcm9sbGVkIHRvIHRvcCBvZiBkb2N1bWVudFxuICAgICAgICAgIGlmICghdG9wT2ZFbGVtZW50SW5WaWV3cG9ydChkb21Ob2RlIGFzIEhUTUxFbGVtZW50LCB2aWV3cG9ydEhlaWdodCkpIHtcbiAgICAgICAgICAgIC8vIFNjcm9sbCBpbnRvIHZpZXcgZG9lc24ndCBzY3JvbGwgaG9yaXpvbnRhbGx5IGJ5IGRlZmF1bHQgd2hlbiBub3QgbmVlZGVkXG4gICAgICAgICAgICA7KGRvbU5vZGUgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbEludG9WaWV3KClcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBXZSB3aWxsIGZvcmNlIGxheW91dCBieSBxdWVyeWluZyBkb21Ob2RlIHBvc2l0aW9uXG4gICAgICAgICAgZG9udEZvcmNlTGF5b3V0OiB0cnVlLFxuICAgICAgICAgIG9ubHlIYXNoQ2hhbmdlOiBmb2N1c0FuZFNjcm9sbFJlZi5vbmx5SGFzaENoYW5nZSxcbiAgICAgICAgfVxuICAgICAgKVxuXG4gICAgICAvLyBNdXRhdGUgYWZ0ZXIgc2Nyb2xsaW5nIHNvIHRoYXQgaXQgY2FuIGJlIHJlYWQgYnkgYGRpc2FibGVTbW9vdGhTY3JvbGxEdXJpbmdSb3V0ZVRyYW5zaXRpb25gXG4gICAgICBmb2N1c0FuZFNjcm9sbFJlZi5vbmx5SGFzaENoYW5nZSA9IGZhbHNlXG5cbiAgICAgIC8vIFNldCBmb2N1cyBvbiB0aGUgZWxlbWVudFxuICAgICAgZG9tTm9kZS5mb2N1cygpXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5oYW5kbGVQb3RlbnRpYWxTY3JvbGwoKVxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIC8vIEJlY2F1c2UgdGhpcyBwcm9wZXJ0eSBpcyBvdmVyd3JpdHRlbiBpbiBoYW5kbGVQb3RlbnRpYWxTY3JvbGwgaXQncyBmaW5lIHRvIGFsd2F5cyBydW4gaXQgd2hlbiB0cnVlIGFzIGl0J2xsIGJlIHNldCB0byBmYWxzZSBmb3Igc3Vic2VxdWVudCByZW5kZXJzLlxuICAgIGlmICh0aGlzLnByb3BzLmZvY3VzQW5kU2Nyb2xsUmVmLmFwcGx5KSB7XG4gICAgICB0aGlzLmhhbmRsZVBvdGVudGlhbFNjcm9sbCgpXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gIH1cbn1cblxuZnVuY3Rpb24gU2Nyb2xsQW5kRm9jdXNIYW5kbGVyKHtcbiAgc2VnbWVudFBhdGgsXG4gIGNoaWxkcmVuLFxufToge1xuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0KVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFyaWFudCBnbG9iYWwgbGF5b3V0IHJvdXRlciBub3QgbW91bnRlZCcpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxJbm5lclNjcm9sbEFuZEZvY3VzSGFuZGxlclxuICAgICAgc2VnbWVudFBhdGg9e3NlZ21lbnRQYXRofVxuICAgICAgZm9jdXNBbmRTY3JvbGxSZWY9e2NvbnRleHQuZm9jdXNBbmRTY3JvbGxSZWZ9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvSW5uZXJTY3JvbGxBbmRGb2N1c0hhbmRsZXI+XG4gIClcbn1cblxuLyoqXG4gKiBJbm5lckxheW91dFJvdXRlciBoYW5kbGVzIHJlbmRlcmluZyB0aGUgcHJvdmlkZWQgc2VnbWVudCBiYXNlZCBvbiB0aGUgY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIElubmVyTGF5b3V0Um91dGVyKHtcbiAgdHJlZSxcbiAgc2VnbWVudFBhdGgsXG4gIGNhY2hlTm9kZSxcbiAgdXJsLFxufToge1xuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbiAgY2FjaGVOb2RlOiBDYWNoZU5vZGVcbiAgdXJsOiBzdHJpbmdcbn0pIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dClcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgZ2xvYmFsIGxheW91dCByb3V0ZXIgbm90IG1vdW50ZWQnKVxuICB9XG5cbiAgY29uc3QgeyB0cmVlOiBmdWxsVHJlZSB9ID0gY29udGV4dFxuXG4gIC8vIGByc2NgIHJlcHJlc2VudHMgdGhlIHJlbmRlcmFibGUgbm9kZSBmb3IgdGhpcyBzZWdtZW50LlxuXG4gIC8vIElmIHRoaXMgc2VnbWVudCBoYXMgYSBgcHJlZmV0Y2hSc2NgLCBpdCdzIHRoZSBzdGF0aWNhbGx5IHByZWZldGNoZWQgZGF0YS5cbiAgLy8gV2Ugc2hvdWxkIHVzZSB0aGF0IG9uIGluaXRpYWwgcmVuZGVyIGluc3RlYWQgb2YgYHJzY2AuIFRoZW4gd2UnbGwgc3dpdGNoXG4gIC8vIHRvIGByc2NgIHdoZW4gdGhlIGR5bmFtaWMgcmVzcG9uc2Ugc3RyZWFtcyBpbi5cbiAgLy9cbiAgLy8gSWYgbm8gcHJlZmV0Y2ggZGF0YSBpcyBhdmFpbGFibGUsIHRoZW4gd2UgZ28gc3RyYWlnaHQgdG8gcmVuZGVyaW5nIGByc2NgLlxuICBjb25zdCByZXNvbHZlZFByZWZldGNoUnNjID1cbiAgICBjYWNoZU5vZGUucHJlZmV0Y2hSc2MgIT09IG51bGwgPyBjYWNoZU5vZGUucHJlZmV0Y2hSc2MgOiBjYWNoZU5vZGUucnNjXG5cbiAgLy8gV2UgdXNlIGB1c2VEZWZlcnJlZFZhbHVlYCB0byBoYW5kbGUgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHByZWZldGNoZWQgYW5kXG4gIC8vIGZpbmFsIHZhbHVlcy4gVGhlIHNlY29uZCBhcmd1bWVudCBpcyByZXR1cm5lZCBvbiBpbml0aWFsIHJlbmRlciwgdGhlbiBpdFxuICAvLyByZS1yZW5kZXJzIHdpdGggdGhlIGZpcnN0IGFyZ3VtZW50LlxuICBjb25zdCByc2M6IGFueSA9IHVzZURlZmVycmVkVmFsdWUoY2FjaGVOb2RlLnJzYywgcmVzb2x2ZWRQcmVmZXRjaFJzYylcblxuICAvLyBgcnNjYCBpcyBlaXRoZXIgYSBSZWFjdCBub2RlIG9yIGEgcHJvbWlzZSBmb3IgYSBSZWFjdCBub2RlLCBleGNlcHQgd2VcbiAgLy8gc3BlY2lhbCBjYXNlIGBudWxsYCB0byByZXByZXNlbnQgdGhhdCB0aGlzIHNlZ21lbnQncyBkYXRhIGlzIG1pc3NpbmcuIElmXG4gIC8vIGl0J3MgYSBwcm9taXNlLCB3ZSBuZWVkIHRvIHVud3JhcCBpdCBzbyB3ZSBjYW4gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZVxuICAvLyBkYXRhIGlzIG1pc3NpbmcuXG4gIGNvbnN0IHJlc29sdmVkUnNjOiBSZWFjdC5SZWFjdE5vZGUgPVxuICAgIHR5cGVvZiByc2MgPT09ICdvYmplY3QnICYmIHJzYyAhPT0gbnVsbCAmJiB0eXBlb2YgcnNjLnRoZW4gPT09ICdmdW5jdGlvbidcbiAgICAgID8gdXNlKHJzYylcbiAgICAgIDogcnNjXG5cbiAgaWYgKCFyZXNvbHZlZFJzYykge1xuICAgIC8vIFRoZSBkYXRhIGZvciB0aGlzIHNlZ21lbnQgaXMgbm90IGF2YWlsYWJsZSwgYW5kIHRoZXJlJ3Mgbm8gcGVuZGluZ1xuICAgIC8vIG5hdmlnYXRpb24gdGhhdCB3aWxsIGJlIGFibGUgdG8gZnVsZmlsbCBpdC4gV2UgbmVlZCB0byBmZXRjaCBtb3JlIGZyb21cbiAgICAvLyB0aGUgc2VydmVyIGFuZCBwYXRjaCB0aGUgY2FjaGUuXG5cbiAgICAvLyBDaGVjayBpZiB0aGVyZSdzIGFscmVhZHkgYSBwZW5kaW5nIHJlcXVlc3QuXG4gICAgbGV0IGxhenlEYXRhID0gY2FjaGVOb2RlLmxhenlEYXRhXG4gICAgaWYgKGxhenlEYXRhID09PSBudWxsKSB7XG4gICAgICAvKipcbiAgICAgICAqIFJvdXRlciBzdGF0ZSB3aXRoIHJlZmV0Y2ggbWFya2VyIGFkZGVkXG4gICAgICAgKi9cbiAgICAgIC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgIGNvbnN0IHJlZmV0Y2hUcmVlID0gd2Fsa0FkZFJlZmV0Y2goWycnLCAuLi5zZWdtZW50UGF0aF0sIGZ1bGxUcmVlKVxuICAgICAgY29uc3QgaW5jbHVkZU5leHRVcmwgPSBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUoZnVsbFRyZWUpXG4gICAgICBjb25zdCBuYXZpZ2F0ZWRBdCA9IERhdGUubm93KClcbiAgICAgIGNhY2hlTm9kZS5sYXp5RGF0YSA9IGxhenlEYXRhID0gZmV0Y2hTZXJ2ZXJSZXNwb25zZShcbiAgICAgICAgbmV3IFVSTCh1cmwsIGxvY2F0aW9uLm9yaWdpbiksXG4gICAgICAgIHtcbiAgICAgICAgICBmbGlnaHRSb3V0ZXJTdGF0ZTogcmVmZXRjaFRyZWUsXG4gICAgICAgICAgbmV4dFVybDogaW5jbHVkZU5leHRVcmwgPyBjb250ZXh0Lm5leHRVcmwgOiBudWxsLFxuICAgICAgICB9XG4gICAgICApLnRoZW4oKHNlcnZlclJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24oe1xuICAgICAgICAgICAgdHlwZTogQUNUSU9OX1NFUlZFUl9QQVRDSCxcbiAgICAgICAgICAgIHByZXZpb3VzVHJlZTogZnVsbFRyZWUsXG4gICAgICAgICAgICBzZXJ2ZXJSZXNwb25zZSxcbiAgICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIHNlcnZlclJlc3BvbnNlXG4gICAgICB9KVxuXG4gICAgICAvLyBTdXNwZW5kIHdoaWxlIHdhaXRpbmcgZm9yIGxhenlEYXRhIHRvIHJlc29sdmVcbiAgICAgIHVzZShsYXp5RGF0YSlcbiAgICB9XG4gICAgLy8gU3VzcGVuZCBpbmZpbml0ZWx5IGFzIGBjaGFuZ2VCeVNlcnZlclJlc3BvbnNlYCB3aWxsIGNhdXNlIGEgZGlmZmVyZW50IHBhcnQgb2YgdGhlIHRyZWUgdG8gYmUgcmVuZGVyZWQuXG4gICAgLy8gQSBmYWxzZXkgYHJlc29sdmVkUnNjYCBpbmRpY2F0ZXMgbWlzc2luZyBkYXRhIC0tIHdlIHNob3VsZCBub3QgY29tbWl0IHRoYXQgYnJhbmNoLCBhbmQgd2UgbmVlZCB0byB3YWl0IGZvciB0aGUgZGF0YSB0byBhcnJpdmUuXG4gICAgdXNlKHVucmVzb2x2ZWRUaGVuYWJsZSkgYXMgbmV2ZXJcbiAgfVxuXG4gIC8vIElmIHdlIGdldCB0byB0aGlzIHBvaW50LCB0aGVuIHdlIGtub3cgd2UgaGF2ZSBzb21ldGhpbmcgd2UgY2FuIHJlbmRlci5cbiAgY29uc3Qgc3VidHJlZSA9IChcbiAgICAvLyBUaGUgbGF5b3V0IHJvdXRlciBjb250ZXh0IG5hcnJvd3MgZG93biB0cmVlIGFuZCBjaGlsZE5vZGVzIGF0IGVhY2ggbGV2ZWwuXG4gICAgPExheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXJcbiAgICAgIHZhbHVlPXt7XG4gICAgICAgIHBhcmVudFRyZWU6IHRyZWUsXG4gICAgICAgIHBhcmVudENhY2hlTm9kZTogY2FjaGVOb2RlLFxuICAgICAgICBwYXJlbnRTZWdtZW50UGF0aDogc2VnbWVudFBhdGgsXG5cbiAgICAgICAgLy8gVE9ETy1BUFA6IG92ZXJyaWRpbmcgb2YgdXJsIGZvciBwYXJhbGxlbCByb3V0ZXNcbiAgICAgICAgdXJsOiB1cmwsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtyZXNvbHZlZFJzY31cbiAgICA8L0xheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXI+XG4gIClcbiAgLy8gRW5zdXJlIHJvb3QgbGF5b3V0IGlzIG5vdCB3cmFwcGVkIGluIGEgZGl2IGFzIHRoZSByb290IGxheW91dCByZW5kZXJzIGA8aHRtbD5gXG4gIHJldHVybiBzdWJ0cmVlXG59XG5cbi8qKlxuICogUmVuZGVycyBzdXNwZW5zZSBib3VuZGFyeSB3aXRoIHRoZSBwcm92aWRlZCBcImxvYWRpbmdcIiBwcm9wZXJ0eSBhcyB0aGUgZmFsbGJhY2suXG4gKiBJZiBubyBsb2FkaW5nIHByb3BlcnR5IGlzIHByb3ZpZGVkIGl0IHJlbmRlcnMgdGhlIGNoaWxkcmVuIHdpdGhvdXQgYSBzdXNwZW5zZSBib3VuZGFyeS5cbiAqL1xuZnVuY3Rpb24gTG9hZGluZ0JvdW5kYXJ5KHtcbiAgbG9hZGluZyxcbiAgY2hpbGRyZW4sXG59OiB7XG4gIGxvYWRpbmc6IExvYWRpbmdNb2R1bGVEYXRhIHwgUHJvbWlzZTxMb2FkaW5nTW9kdWxlRGF0YT5cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSk6IEpTWC5FbGVtZW50IHtcbiAgLy8gSWYgbG9hZGluZyBpcyBhIHByb21pc2UsIHVud3JhcCBpdC4gVGhpcyBoYXBwZW5zIGluIGNhc2VzIHdoZXJlIHdlIGhhdmVuJ3RcbiAgLy8geWV0IHJlY2VpdmVkIHRoZSBsb2FkaW5nIGRhdGEgZnJvbSB0aGUgc2VydmVyIOKAlCB3aGljaCBpbmNsdWRlcyB3aGV0aGVyIG9yXG4gIC8vIG5vdCB0aGlzIGxheW91dCBoYXMgYSBsb2FkaW5nIGNvbXBvbmVudCBhdCBhbGwuXG4gIC8vXG4gIC8vIEl0J3MgT0sgdG8gc3VzcGVuZCBoZXJlIGluc3RlYWQgb2YgaW5zaWRlIHRoZSBmYWxsYmFjayBiZWNhdXNlIHRoaXNcbiAgLy8gcHJvbWlzZSB3aWxsIHJlc29sdmUgc2ltdWx0YW5lb3VzbHkgd2l0aCB0aGUgZGF0YSBmb3IgdGhlIHNlZ21lbnQgaXRzZWxmLlxuICAvLyBTbyBpdCB3aWxsIG5ldmVyIHN1c3BlbmQgZm9yIGxvbmdlciB0aGFuIGl0IHdvdWxkIGhhdmUgaWYgd2UgZGlkbid0IHVzZVxuICAvLyBhIFN1c3BlbnNlIGZhbGxiYWNrIGF0IGFsbC5cbiAgbGV0IGxvYWRpbmdNb2R1bGVEYXRhXG4gIGlmIChcbiAgICB0eXBlb2YgbG9hZGluZyA9PT0gJ29iamVjdCcgJiZcbiAgICBsb2FkaW5nICE9PSBudWxsICYmXG4gICAgdHlwZW9mIChsb2FkaW5nIGFzIGFueSkudGhlbiA9PT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICBjb25zdCBwcm9taXNlRm9yTG9hZGluZyA9IGxvYWRpbmcgYXMgUHJvbWlzZTxMb2FkaW5nTW9kdWxlRGF0YT5cbiAgICBsb2FkaW5nTW9kdWxlRGF0YSA9IHVzZShwcm9taXNlRm9yTG9hZGluZylcbiAgfSBlbHNlIHtcbiAgICBsb2FkaW5nTW9kdWxlRGF0YSA9IGxvYWRpbmcgYXMgTG9hZGluZ01vZHVsZURhdGFcbiAgfVxuXG4gIGlmIChsb2FkaW5nTW9kdWxlRGF0YSkge1xuICAgIGNvbnN0IGxvYWRpbmdSc2MgPSBsb2FkaW5nTW9kdWxlRGF0YVswXVxuICAgIGNvbnN0IGxvYWRpbmdTdHlsZXMgPSBsb2FkaW5nTW9kdWxlRGF0YVsxXVxuICAgIGNvbnN0IGxvYWRpbmdTY3JpcHRzID0gbG9hZGluZ01vZHVsZURhdGFbMl1cbiAgICByZXR1cm4gKFxuICAgICAgPFN1c3BlbnNlXG4gICAgICAgIGZhbGxiYWNrPXtcbiAgICAgICAgICA8PlxuICAgICAgICAgICAge2xvYWRpbmdTdHlsZXN9XG4gICAgICAgICAgICB7bG9hZGluZ1NjcmlwdHN9XG4gICAgICAgICAgICB7bG9hZGluZ1JzY31cbiAgICAgICAgICA8Lz5cbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1N1c3BlbnNlPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz5cbn1cblxuLyoqXG4gKiBPdXRlckxheW91dFJvdXRlciBoYW5kbGVzIHRoZSBjdXJyZW50IHNlZ21lbnQgYXMgd2VsbCBhcyA8T2Zmc2NyZWVuPiByZW5kZXJpbmcgb2Ygb3RoZXIgc2VnbWVudHMuXG4gKiBJdCBjYW4gYmUgcmVuZGVyZWQgbmV4dCB0byBlYWNoIG90aGVyIHdpdGggYSBkaWZmZXJlbnQgYHBhcmFsbGVsUm91dGVyS2V5YCwgYWxsb3dpbmcgZm9yIFBhcmFsbGVsIHJvdXRlcy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gT3V0ZXJMYXlvdXRSb3V0ZXIoe1xuICBwYXJhbGxlbFJvdXRlcktleSxcbiAgZXJyb3IsXG4gIGVycm9yU3R5bGVzLFxuICBlcnJvclNjcmlwdHMsXG4gIHRlbXBsYXRlU3R5bGVzLFxuICB0ZW1wbGF0ZVNjcmlwdHMsXG4gIHRlbXBsYXRlLFxuICBub3RGb3VuZCxcbiAgZm9yYmlkZGVuLFxuICB1bmF1dGhvcml6ZWQsXG4gIHNlZ21lbnRWaWV3Qm91bmRhcmllcyxcbn06IHtcbiAgcGFyYWxsZWxSb3V0ZXJLZXk6IHN0cmluZ1xuICBlcnJvcjogRXJyb3JDb21wb25lbnQgfCB1bmRlZmluZWRcbiAgZXJyb3JTdHlsZXM6IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICBlcnJvclNjcmlwdHM6IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICB0ZW1wbGF0ZVN0eWxlczogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIHRlbXBsYXRlU2NyaXB0czogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIHRlbXBsYXRlOiBSZWFjdC5SZWFjdE5vZGVcbiAgbm90Rm91bmQ6IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICBmb3JiaWRkZW46IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICB1bmF1dGhvcml6ZWQ6IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICBzZWdtZW50Vmlld0JvdW5kYXJpZXM/OiBSZWFjdC5SZWFjdE5vZGVcbn0pIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoTGF5b3V0Um91dGVyQ29udGV4dClcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgZXhwZWN0ZWQgbGF5b3V0IHJvdXRlciB0byBiZSBtb3VudGVkJylcbiAgfVxuXG4gIGNvbnN0IHsgcGFyZW50VHJlZSwgcGFyZW50Q2FjaGVOb2RlLCBwYXJlbnRTZWdtZW50UGF0aCwgdXJsIH0gPSBjb250ZXh0XG5cbiAgLy8gR2V0IHRoZSBDYWNoZU5vZGUgZm9yIHRoaXMgc2VnbWVudCBieSByZWFkaW5nIGl0IGZyb20gdGhlIHBhcmVudCBzZWdtZW50J3NcbiAgLy8gY2hpbGQgbWFwLlxuICBjb25zdCBwYXJlbnRQYXJhbGxlbFJvdXRlcyA9IHBhcmVudENhY2hlTm9kZS5wYXJhbGxlbFJvdXRlc1xuICBsZXQgc2VnbWVudE1hcCA9IHBhcmVudFBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlcktleSlcbiAgLy8gSWYgdGhlIHBhcmFsbGVsIHJvdXRlciBjYWNoZSBub2RlIGRvZXMgbm90IGV4aXN0IHlldCwgY3JlYXRlIGl0LlxuICAvLyBUaGlzIHdyaXRlcyB0byB0aGUgY2FjaGUgd2hlbiB0aGVyZSBpcyBubyBpdGVtIGluIHRoZSBjYWNoZSB5ZXQuIEl0IG5ldmVyICpvdmVyd3JpdGVzKiBleGlzdGluZyBjYWNoZSBpdGVtcyB3aGljaCBpcyB3aHkgaXQncyBzYWZlIGluIGNvbmN1cnJlbnQgbW9kZS5cbiAgaWYgKCFzZWdtZW50TWFwKSB7XG4gICAgc2VnbWVudE1hcCA9IG5ldyBNYXAoKVxuICAgIHBhcmVudFBhcmFsbGVsUm91dGVzLnNldChwYXJhbGxlbFJvdXRlcktleSwgc2VnbWVudE1hcClcbiAgfVxuICBjb25zdCBwYXJlbnRUcmVlU2VnbWVudCA9IHBhcmVudFRyZWVbMF1cbiAgY29uc3Qgc2VnbWVudFBhdGggPVxuICAgIHBhcmVudFNlZ21lbnRQYXRoID09PSBudWxsXG4gICAgICA/IC8vIFRPRE86IFRoZSByb290IHNlZ21lbnQgdmFsdWUgaXMgY3VycmVudGx5IG9taXR0ZWQgZnJvbSB0aGUgc2VnbWVudFxuICAgICAgICAvLyBwYXRoLiBUaGlzIGhhcyBsZWQgdG8gYSBidW5jaCBvZiBzcGVjaWFsIGNhc2VzIHNjYXR0ZXJlZCB0aHJvdWdob3V0XG4gICAgICAgIC8vIHRoZSBjb2RlLiBXZSBzaG91bGQgY2xlYW4gdGhpcyB1cC5cbiAgICAgICAgW3BhcmFsbGVsUm91dGVyS2V5XVxuICAgICAgOiBwYXJlbnRTZWdtZW50UGF0aC5jb25jYXQoW3BhcmVudFRyZWVTZWdtZW50LCBwYXJhbGxlbFJvdXRlcktleV0pXG5cbiAgLy8gVGhlIFwic3RhdGVcIiBrZXkgb2YgYSBzZWdtZW50IGlzIHRoZSBvbmUgcGFzc2VkIHRvIFJlYWN0IOKAlCBpdCByZXByZXNlbnRzIHRoZVxuICAvLyBpZGVudGl0eSBvZiB0aGUgVUkgdHJlZS4gV2hlbmV2ZXIgdGhlIHN0YXRlIGtleSBjaGFuZ2VzLCB0aGUgdHJlZSBpc1xuICAvLyByZWNyZWF0ZWQgYW5kIHRoZSBzdGF0ZSBpcyByZXNldC4gSW4gdGhlIEFwcCBSb3V0ZXIgbW9kZWwsIHNlYXJjaCBwYXJhbXMgZG9cbiAgLy8gbm90IGNhdXNlIHN0YXRlIHRvIGJlIGxvc3QsIHNvIHR3byBzZWdtZW50cyB3aXRoIHRoZSBzYW1lIHNlZ21lbnQgcGF0aCBidXRcbiAgLy8gZGlmZmVyZW50IHNlYXJjaCBwYXJhbXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgc3RhdGUga2V5LlxuICAvL1xuICAvLyBUaGUgXCJjYWNoZVwiIGtleSBvZiBhIHNlZ21lbnQsIGhvd2V2ZXIsICpkb2VzKiBpbmNsdWRlIHRoZSBzZWFyY2ggcGFyYW1zLCBpZlxuICAvLyBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHNlZ21lbnQgYWNjZXNzZWQgdGhlIHNlYXJjaCBwYXJhbXMgb24gdGhlIHNlcnZlci5cbiAgLy8gKFRoaXMgb25seSBhcHBsaWVzIHRvIHBhZ2Ugc2VnbWVudHM7IGxheW91dCBzZWdtZW50cyBjYW5ub3QgYWNjZXNzIHNlYXJjaFxuICAvLyBwYXJhbXMgb24gdGhlIHNlcnZlci4pXG4gIGNvbnN0IGFjdGl2ZVRyZWUgPSBwYXJlbnRUcmVlWzFdW3BhcmFsbGVsUm91dGVyS2V5XVxuICBjb25zdCBhY3RpdmVTZWdtZW50ID0gYWN0aXZlVHJlZVswXVxuICBjb25zdCBhY3RpdmVTdGF0ZUtleSA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KGFjdGl2ZVNlZ21lbnQsIHRydWUpIC8vIG5vIHNlYXJjaCBwYXJhbXNcblxuICAvLyBBdCBlYWNoIGxldmVsIG9mIHRoZSByb3V0ZSB0cmVlLCBub3Qgb25seSBkbyB3ZSByZW5kZXIgdGhlIGN1cnJlbnRseVxuICAvLyBhY3RpdmUgc2VnbWVudCDigJQgd2UgYWxzbyByZW5kZXIgdGhlIGxhc3QgTiBzZWdtZW50cyB0aGF0IHdlcmUgYWN0aXZlIGF0XG4gIC8vIHRoaXMgbGV2ZWwgaW5zaWRlIGEgaGlkZGVuIDxBY3Rpdml0eT4gYm91bmRhcnksIHRvIHByZXNlcnZlIHRoZWlyIHN0YXRlXG4gIC8vIGlmIG9yIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIHRvIHRoZW0gYWdhaW4uXG4gIC8vXG4gIC8vIGJmY2FjaGVFbnRyeSBpcyBhIGxpbmtlZCBsaXN0IG9mIEZsaWdodFJvdXRlclN0YXRlcy5cbiAgbGV0IGJmY2FjaGVFbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5IHwgbnVsbCA9IHVzZVJvdXRlckJGQ2FjaGUoXG4gICAgYWN0aXZlVHJlZSxcbiAgICBhY3RpdmVTdGF0ZUtleVxuICApXG4gIGxldCBjaGlsZHJlbjogQXJyYXk8UmVhY3QuUmVhY3ROb2RlPiA9IFtdXG4gIGRvIHtcbiAgICBjb25zdCB0cmVlID0gYmZjYWNoZUVudHJ5LnRyZWVcbiAgICBjb25zdCBzdGF0ZUtleSA9IGJmY2FjaGVFbnRyeS5zdGF0ZUtleVxuICAgIGNvbnN0IHNlZ21lbnQgPSB0cmVlWzBdXG4gICAgY29uc3QgY2FjaGVLZXkgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50KVxuXG4gICAgLy8gUmVhZCBzZWdtZW50IHBhdGggZnJvbSB0aGUgcGFyYWxsZWwgcm91dGVyIGNhY2hlIG5vZGUuXG4gICAgbGV0IGNhY2hlTm9kZSA9IHNlZ21lbnRNYXAuZ2V0KGNhY2hlS2V5KVxuICAgIGlmIChjYWNoZU5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gV2hlbiBkYXRhIGlzIG5vdCBhdmFpbGFibGUgZHVyaW5nIHJlbmRlcmluZyBjbGllbnQtc2lkZSB3ZSBuZWVkIHRvIGZldGNoXG4gICAgICAvLyBpdCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICBjb25zdCBuZXdMYXp5Q2FjaGVOb2RlOiBMYXp5Q2FjaGVOb2RlID0ge1xuICAgICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgICAgcnNjOiBudWxsLFxuICAgICAgICBwcmVmZXRjaFJzYzogbnVsbCxcbiAgICAgICAgaGVhZDogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hIZWFkOiBudWxsLFxuICAgICAgICBwYXJhbGxlbFJvdXRlczogbmV3IE1hcCgpLFxuICAgICAgICBsb2FkaW5nOiBudWxsLFxuICAgICAgICBuYXZpZ2F0ZWRBdDogLTEsXG4gICAgICB9XG5cbiAgICAgIC8vIEZsaWdodCBkYXRhIGZldGNoIGtpY2tlZCBvZmYgZHVyaW5nIHJlbmRlciBhbmQgcHV0IGludG8gdGhlIGNhY2hlLlxuICAgICAgY2FjaGVOb2RlID0gbmV3TGF6eUNhY2hlTm9kZVxuICAgICAgc2VnbWVudE1hcC5zZXQoY2FjaGVLZXksIG5ld0xhenlDYWNoZU5vZGUpXG4gICAgfVxuXG4gICAgLypcbiAgICAtIEVycm9yIGJvdW5kYXJ5XG4gICAgICAtIE9ubHkgcmVuZGVycyBlcnJvciBib3VuZGFyeSBpZiBlcnJvciBjb21wb25lbnQgaXMgcHJvdmlkZWQuXG4gICAgICAtIFJlbmRlcmVkIGZvciBlYWNoIHNlZ21lbnQgdG8gZW5zdXJlIHRoZXkgaGF2ZSB0aGVpciBvd24gZXJyb3Igc3RhdGUuXG4gICAgICAtIFdoZW4gZ3JhY2VmdWxseSBkZWdyYWRlIGZvciBib3RzLCBza2lwIHJlbmRlcmluZyBlcnJvciBib3VuZGFyeS5cbiAgICAtIExvYWRpbmcgYm91bmRhcnlcbiAgICAgIC0gT25seSByZW5kZXJzIHN1c3BlbnNlIGJvdW5kYXJ5IGlmIGxvYWRpbmcgY29tcG9uZW50cyBpcyBwcm92aWRlZC5cbiAgICAgIC0gUmVuZGVyZWQgZm9yIGVhY2ggc2VnbWVudCB0byBlbnN1cmUgdGhleSBoYXZlIHRoZWlyIG93biBsb2FkaW5nIHN0YXRlLlxuICAgICAgLSBQYXNzZWQgdG8gdGhlIHJvdXRlciBkdXJpbmcgcmVuZGVyaW5nIHRvIGVuc3VyZSBpdCBjYW4gYmUgaW1tZWRpYXRlbHkgcmVuZGVyZWQgd2hlbiBzdXNwZW5kaW5nIG9uIGEgRmxpZ2h0IGZldGNoLlxuICAqL1xuXG4gICAgbGV0IHNlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlOiBSZWFjdC5SZWFjdE5vZGUgPSBudWxsXG4gICAgbGV0IHNlZ21lbnRWaWV3U3RhdGVOb2RlOiBSZWFjdC5SZWFjdE5vZGUgPSBudWxsXG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX0RFVlRPT0xfU0VHTUVOVF9FWFBMT1JFUlxuICAgICkge1xuICAgICAgY29uc3QgeyBTZWdtZW50Qm91bmRhcnlUcmlnZ2VyTm9kZSwgU2VnbWVudFZpZXdTdGF0ZU5vZGUgfSA9XG4gICAgICAgIHJlcXVpcmUoJy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlJylcblxuICAgICAgY29uc3QgcGFnZVByZWZpeCA9IG5vcm1hbGl6ZUFwcFBhdGgodXJsKVxuICAgICAgc2VnbWVudFZpZXdTdGF0ZU5vZGUgPSAoXG4gICAgICAgIDxTZWdtZW50Vmlld1N0YXRlTm9kZSBrZXk9e3BhZ2VQcmVmaXh9IHBhZ2U9e3BhZ2VQcmVmaXh9IC8+XG4gICAgICApXG5cbiAgICAgIHNlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlID0gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTZWdtZW50Qm91bmRhcnlUcmlnZ2VyTm9kZSAvPlxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBUaGUgbG9hZGluZyBtb2R1bGUgZGF0YSBmb3IgYSBzZWdtZW50IGlzIHN0b3JlZCBvbiB0aGUgcGFyZW50LCB0aGVuXG4gICAgLy8gYXBwbGllZCB0byBlYWNoIG9mIHRoYXQgcGFyZW50IHNlZ21lbnQncyBwYXJhbGxlbCByb3V0ZSBzbG90cy4gSW4gdGhlXG4gICAgLy8gc2ltcGxlIGNhc2Ugd2hlcmUgdGhlcmUncyBvbmx5IG9uZSBwYXJhbGxlbCByb3V0ZSAodGhlIGBjaGlsZHJlbmAgc2xvdCksXG4gICAgLy8gdGhpcyBpcyBubyBkaWZmZXJlbnQgZnJvbSBpZiB0aGUgbG9hZGluZyBtb2R1bGUgZGF0YSB3aGVyZSBzdG9yZWQgb24gdGhlXG4gICAgLy8gY2hpbGQgZGlyZWN0bHkuIEJ1dCBJJ20gbm90IHN1cmUgdGhpcyBhY3R1YWxseSBtYWtlcyBzZW5zZSB3aGVuIHRoZXJlIGFyZVxuICAgIC8vIG11bHRpcGxlIHBhcmFsbGVsIHJvdXRlcy4gSXQncyBub3QgYSBodWdlIGlzc3VlIGJlY2F1c2UgeW91IGFsd2F5cyBoYXZlXG4gICAgLy8gdGhlIG9wdGlvbiB0byBkZWZpbmUgYSBuYXJyb3dlciBsb2FkaW5nIGJvdW5kYXJ5IGZvciBhIHBhcnRpY3VsYXIgc2xvdC4gQnV0XG4gICAgLy8gdGhpcyBzb3J0IG9mIHNtZWxscyBsaWtlIGFuIGltcGxlbWVudGF0aW9uIGFjY2lkZW50IHRvIG1lLlxuICAgIGNvbnN0IGxvYWRpbmdNb2R1bGVEYXRhID0gcGFyZW50Q2FjaGVOb2RlLmxvYWRpbmdcbiAgICBsZXQgY2hpbGQgPSAoXG4gICAgICA8VGVtcGxhdGVDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgIGtleT17c3RhdGVLZXl9XG4gICAgICAgIHZhbHVlPXtcbiAgICAgICAgICA8U2Nyb2xsQW5kRm9jdXNIYW5kbGVyIHNlZ21lbnRQYXRoPXtzZWdtZW50UGF0aH0+XG4gICAgICAgICAgICA8RXJyb3JCb3VuZGFyeVxuICAgICAgICAgICAgICBlcnJvckNvbXBvbmVudD17ZXJyb3J9XG4gICAgICAgICAgICAgIGVycm9yU3R5bGVzPXtlcnJvclN0eWxlc31cbiAgICAgICAgICAgICAgZXJyb3JTY3JpcHRzPXtlcnJvclNjcmlwdHN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxMb2FkaW5nQm91bmRhcnkgbG9hZGluZz17bG9hZGluZ01vZHVsZURhdGF9PlxuICAgICAgICAgICAgICAgIDxIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeVxuICAgICAgICAgICAgICAgICAgbm90Rm91bmQ9e25vdEZvdW5kfVxuICAgICAgICAgICAgICAgICAgZm9yYmlkZGVuPXtmb3JiaWRkZW59XG4gICAgICAgICAgICAgICAgICB1bmF1dGhvcml6ZWQ9e3VuYXV0aG9yaXplZH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8UmVkaXJlY3RCb3VuZGFyeT5cbiAgICAgICAgICAgICAgICAgICAgPElubmVyTGF5b3V0Um91dGVyXG4gICAgICAgICAgICAgICAgICAgICAgdXJsPXt1cmx9XG4gICAgICAgICAgICAgICAgICAgICAgdHJlZT17dHJlZX1cbiAgICAgICAgICAgICAgICAgICAgICBjYWNoZU5vZGU9e2NhY2hlTm9kZX1cbiAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50UGF0aD17c2VnbWVudFBhdGh9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIHtzZWdtZW50Qm91bmRhcnlUcmlnZ2VyTm9kZX1cbiAgICAgICAgICAgICAgICAgIDwvUmVkaXJlY3RCb3VuZGFyeT5cbiAgICAgICAgICAgICAgICA8L0hUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5PlxuICAgICAgICAgICAgICA8L0xvYWRpbmdCb3VuZGFyeT5cbiAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICAgIHtzZWdtZW50Vmlld1N0YXRlTm9kZX1cbiAgICAgICAgICA8L1Njcm9sbEFuZEZvY3VzSGFuZGxlcj5cbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7dGVtcGxhdGVTdHlsZXN9XG4gICAgICAgIHt0ZW1wbGF0ZVNjcmlwdHN9XG4gICAgICAgIHt0ZW1wbGF0ZX1cbiAgICAgIDwvVGVtcGxhdGVDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zdCB7IFNlZ21lbnRTdGF0ZVByb3ZpZGVyIH0gPVxuICAgICAgICByZXF1aXJlKCcuLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZScpXG5cbiAgICAgIGNoaWxkID0gKFxuICAgICAgICA8U2VnbWVudFN0YXRlUHJvdmlkZXIga2V5PXtzdGF0ZUtleX0+XG4gICAgICAgICAge2NoaWxkfVxuICAgICAgICAgIHtzZWdtZW50Vmlld0JvdW5kYXJpZXN9XG4gICAgICAgIDwvU2VnbWVudFN0YXRlUHJvdmlkZXI+XG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkZfQ0FDSEUpIHtcbiAgICAgIGNoaWxkID0gKFxuICAgICAgICA8QWN0aXZpdHlcbiAgICAgICAgICBrZXk9e3N0YXRlS2V5fVxuICAgICAgICAgIG1vZGU9e3N0YXRlS2V5ID09PSBhY3RpdmVTdGF0ZUtleSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkfVxuICAgICAgICA8L0FjdGl2aXR5PlxuICAgICAgKVxuICAgIH1cblxuICAgIGNoaWxkcmVuLnB1c2goY2hpbGQpXG5cbiAgICBiZmNhY2hlRW50cnkgPSBiZmNhY2hlRW50cnkubmV4dFxuICB9IHdoaWxlIChiZmNhY2hlRW50cnkgIT09IG51bGwpXG5cbiAgcmV0dXJuIGNoaWxkcmVuXG59XG4iXSwibmFtZXMiOlsiT3V0ZXJMYXlvdXRSb3V0ZXIiLCJBY3Rpdml0eSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JGX0NBQ0hFIiwicmVxdWlyZSIsInVuc3RhYmxlX0FjdGl2aXR5Iiwid2Fsa0FkZFJlZmV0Y2giLCJzZWdtZW50UGF0aFRvV2FsayIsInRyZWVUb1JlY3JlYXRlIiwic2VnbWVudCIsInBhcmFsbGVsUm91dGVLZXkiLCJpc0xhc3QiLCJsZW5ndGgiLCJtYXRjaFNlZ21lbnQiLCJoYXNPd25Qcm9wZXJ0eSIsInN1YlRyZWUiLCJ1bmRlZmluZWQiLCJzbGljZSIsIl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSIsIlJlYWN0RE9NIiwiZmluZERPTU5vZGUiLCJpbnN0YW5jZSIsIndpbmRvdyIsImludGVybmFsX3JlYWN0RE9NZmluZERPTU5vZGUiLCJyZWN0UHJvcGVydGllcyIsInNob3VsZFNraXBFbGVtZW50IiwiZWxlbWVudCIsImluY2x1ZGVzIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsInBvc2l0aW9uIiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsInJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJldmVyeSIsIml0ZW0iLCJ0b3BPZkVsZW1lbnRJblZpZXdwb3J0Iiwidmlld3BvcnRIZWlnaHQiLCJ0b3AiLCJnZXRIYXNoRnJhZ21lbnREb21Ob2RlIiwiaGFzaEZyYWdtZW50IiwiZG9jdW1lbnQiLCJib2R5IiwiZ2V0RWxlbWVudEJ5SWQiLCJnZXRFbGVtZW50c0J5TmFtZSIsIklubmVyU2Nyb2xsQW5kRm9jdXNIYW5kbGVyIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb21wb25lbnREaWRNb3VudCIsImhhbmRsZVBvdGVudGlhbFNjcm9sbCIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByb3BzIiwiZm9jdXNBbmRTY3JvbGxSZWYiLCJhcHBseSIsInJlbmRlciIsImNoaWxkcmVuIiwic2VnbWVudFBhdGgiLCJzZWdtZW50UGF0aHMiLCJzb21lIiwic2Nyb2xsUmVmU2VnbWVudFBhdGgiLCJpbmRleCIsImRvbU5vZGUiLCJFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJwYXJlbnRFbGVtZW50IiwibG9jYWxOYW1lIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbiIsInNjcm9sbEludG9WaWV3IiwiaHRtbEVsZW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRIZWlnaHQiLCJzY3JvbGxUb3AiLCJkb250Rm9yY2VMYXlvdXQiLCJvbmx5SGFzaENoYW5nZSIsImZvY3VzIiwiU2Nyb2xsQW5kRm9jdXNIYW5kbGVyIiwiY29udGV4dCIsInVzZUNvbnRleHQiLCJHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0IiwiRXJyb3IiLCJJbm5lckxheW91dFJvdXRlciIsInRyZWUiLCJjYWNoZU5vZGUiLCJ1cmwiLCJmdWxsVHJlZSIsInJlc29sdmVkUHJlZmV0Y2hSc2MiLCJwcmVmZXRjaFJzYyIsInJzYyIsInVzZURlZmVycmVkVmFsdWUiLCJyZXNvbHZlZFJzYyIsInRoZW4iLCJ1c2UiLCJsYXp5RGF0YSIsInJlZmV0Y2hUcmVlIiwiaW5jbHVkZU5leHRVcmwiLCJoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUiLCJuYXZpZ2F0ZWRBdCIsIkRhdGUiLCJub3ciLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiVVJMIiwibG9jYXRpb24iLCJvcmlnaW4iLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIm5leHRVcmwiLCJzZXJ2ZXJSZXNwb25zZSIsInN0YXJ0VHJhbnNpdGlvbiIsImRpc3BhdGNoQXBwUm91dGVyQWN0aW9uIiwidHlwZSIsIkFDVElPTl9TRVJWRVJfUEFUQ0giLCJwcmV2aW91c1RyZWUiLCJ1bnJlc29sdmVkVGhlbmFibGUiLCJzdWJ0cmVlIiwiTGF5b3V0Um91dGVyQ29udGV4dCIsIlByb3ZpZGVyIiwidmFsdWUiLCJwYXJlbnRUcmVlIiwicGFyZW50Q2FjaGVOb2RlIiwicGFyZW50U2VnbWVudFBhdGgiLCJMb2FkaW5nQm91bmRhcnkiLCJsb2FkaW5nIiwibG9hZGluZ01vZHVsZURhdGEiLCJwcm9taXNlRm9yTG9hZGluZyIsImxvYWRpbmdSc2MiLCJsb2FkaW5nU3R5bGVzIiwibG9hZGluZ1NjcmlwdHMiLCJTdXNwZW5zZSIsImZhbGxiYWNrIiwicGFyYWxsZWxSb3V0ZXJLZXkiLCJlcnJvciIsImVycm9yU3R5bGVzIiwiZXJyb3JTY3JpcHRzIiwidGVtcGxhdGVTdHlsZXMiLCJ0ZW1wbGF0ZVNjcmlwdHMiLCJ0ZW1wbGF0ZSIsIm5vdEZvdW5kIiwiZm9yYmlkZGVuIiwidW5hdXRob3JpemVkIiwic2VnbWVudFZpZXdCb3VuZGFyaWVzIiwicGFyZW50UGFyYWxsZWxSb3V0ZXMiLCJwYXJhbGxlbFJvdXRlcyIsInNlZ21lbnRNYXAiLCJnZXQiLCJNYXAiLCJzZXQiLCJwYXJlbnRUcmVlU2VnbWVudCIsImNvbmNhdCIsImFjdGl2ZVRyZWUiLCJhY3RpdmVTZWdtZW50IiwiYWN0aXZlU3RhdGVLZXkiLCJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsImJmY2FjaGVFbnRyeSIsInVzZVJvdXRlckJGQ2FjaGUiLCJzdGF0ZUtleSIsImNhY2hlS2V5IiwibmV3TGF6eUNhY2hlTm9kZSIsImhlYWQiLCJwcmVmZXRjaEhlYWQiLCJzZWdtZW50Qm91bmRhcnlUcmlnZ2VyTm9kZSIsInNlZ21lbnRWaWV3U3RhdGVOb2RlIiwiX19ORVhUX0RFVlRPT0xfU0VHTUVOVF9FWFBMT1JFUiIsIlNlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlIiwiU2VnbWVudFZpZXdTdGF0ZU5vZGUiLCJwYWdlUHJlZml4Iiwibm9ybWFsaXplQXBwUGF0aCIsInBhZ2UiLCJjaGlsZCIsIlRlbXBsYXRlQ29udGV4dCIsIkVycm9yQm91bmRhcnkiLCJlcnJvckNvbXBvbmVudCIsIkhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5IiwiUmVkaXJlY3RCb3VuZGFyeSIsIlNlZ21lbnRTdGF0ZVByb3ZpZGVyIiwibW9kZSIsInB1c2giLCJuZXh0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/layout-router.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/links.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/links.js ***!
|
||
\***********************************************************/
|
||
/***/ ((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 IDLE_LINK_STATUS: function() {\n return IDLE_LINK_STATUS;\n },\n PENDING_LINK_STATUS: function() {\n return PENDING_LINK_STATUS;\n },\n mountFormInstance: function() {\n return mountFormInstance;\n },\n mountLinkInstance: function() {\n return mountLinkInstance;\n },\n onLinkVisibilityChanged: function() {\n return onLinkVisibilityChanged;\n },\n onNavigationIntent: function() {\n return onNavigationIntent;\n },\n pingVisibleLinks: function() {\n return pingVisibleLinks;\n },\n setLinkForCurrentNavigation: function() {\n return setLinkForCurrentNavigation;\n },\n unmountLinkForCurrentNavigation: function() {\n return unmountLinkForCurrentNavigation;\n },\n unmountPrefetchableInstance: function() {\n return unmountPrefetchableInstance;\n }\n});\nconst _approuterinstance = __webpack_require__(/*! ./app-router-instance */ \"(ssr)/./node_modules/next/dist/client/components/app-router-instance.js\");\nconst _approuter = __webpack_require__(/*! ./app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _segmentcache = __webpack_require__(/*! ./segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\n// Tracks the most recently navigated link instance. When null, indicates\n// the current navigation was not initiated by a link click.\nlet linkForMostRecentNavigation = null;\nconst PENDING_LINK_STATUS = {\n pending: true\n};\nconst IDLE_LINK_STATUS = {\n pending: false\n};\nfunction setLinkForCurrentNavigation(link) {\n (0, _react.startTransition)(()=>{\n linkForMostRecentNavigation == null ? void 0 : linkForMostRecentNavigation.setOptimisticLinkStatus(IDLE_LINK_STATUS);\n link == null ? void 0 : link.setOptimisticLinkStatus(PENDING_LINK_STATUS);\n linkForMostRecentNavigation = link;\n });\n}\nfunction unmountLinkForCurrentNavigation(link) {\n if (linkForMostRecentNavigation === link) {\n linkForMostRecentNavigation = null;\n }\n}\n// Use a WeakMap to associate a Link instance with its DOM element. This is\n// used by the IntersectionObserver to track the link's visibility.\nconst prefetchable = typeof WeakMap === 'function' ? new WeakMap() : new Map();\n// A Set of the currently visible links. We re-prefetch visible links after a\n// cache invalidation, or when the current URL changes. It's a separate data\n// structure from the WeakMap above because only the visible links need to\n// be enumerated.\nconst prefetchableAndVisible = new Set();\n// A single IntersectionObserver instance shared by all <Link> components.\nconst observer = typeof IntersectionObserver === 'function' ? new IntersectionObserver(handleIntersect, {\n rootMargin: '200px'\n}) : null;\nfunction observeVisibility(element, instance) {\n const existingInstance = prefetchable.get(element);\n if (existingInstance !== undefined) {\n // This shouldn't happen because each <Link> component should have its own\n // anchor tag instance, but it's defensive coding to avoid a memory leak in\n // case there's a logical error somewhere else.\n unmountPrefetchableInstance(element);\n }\n // Only track prefetchable links that have a valid prefetch URL\n prefetchable.set(element, instance);\n if (observer !== null) {\n observer.observe(element);\n }\n}\nfunction coercePrefetchableUrl(href) {\n try {\n return (0, _approuter.createPrefetchURL)(href);\n } catch (e) {\n // createPrefetchURL sometimes throws an error if an invalid URL is\n // provided, though I'm not sure if it's actually necessary.\n // TODO: Consider removing the throw from the inner function, or change it\n // to reportError. Or maybe the error isn't even necessary for automatic\n // prefetches, just navigations.\n const reportErrorFn = typeof reportError === 'function' ? reportError : console.error;\n reportErrorFn(\"Cannot prefetch '\" + href + \"' because it cannot be converted to a URL.\");\n return null;\n }\n}\nfunction mountLinkInstance(element, href, router, fetchStrategy, prefetchEnabled, setOptimisticLinkStatus) {\n if (prefetchEnabled) {\n const prefetchURL = coercePrefetchableUrl(href);\n if (prefetchURL !== null) {\n const instance = {\n router,\n fetchStrategy,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: prefetchURL.href,\n setOptimisticLinkStatus\n };\n // We only observe the link's visibility if it's prefetchable. For\n // example, this excludes links to external URLs.\n observeVisibility(element, instance);\n return instance;\n }\n }\n // If the link is not prefetchable, we still create an instance so we can\n // track its optimistic state (i.e. useLinkStatus).\n const instance = {\n router,\n fetchStrategy,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: null,\n setOptimisticLinkStatus\n };\n return instance;\n}\nfunction mountFormInstance(element, href, router, fetchStrategy) {\n const prefetchURL = coercePrefetchableUrl(href);\n if (prefetchURL === null) {\n // This href is not prefetchable, so we don't track it.\n // TODO: We currently observe/unobserve a form every time its href changes.\n // For Links, this isn't a big deal because the href doesn't usually change,\n // but for forms it's extremely common. We should optimize this.\n return;\n }\n const instance = {\n router,\n fetchStrategy,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: prefetchURL.href,\n setOptimisticLinkStatus: null\n };\n observeVisibility(element, instance);\n}\nfunction unmountPrefetchableInstance(element) {\n const instance = prefetchable.get(element);\n if (instance !== undefined) {\n prefetchable.delete(element);\n prefetchableAndVisible.delete(instance);\n const prefetchTask = instance.prefetchTask;\n if (prefetchTask !== null) {\n (0, _segmentcache.cancelPrefetchTask)(prefetchTask);\n }\n }\n if (observer !== null) {\n observer.unobserve(element);\n }\n}\nfunction handleIntersect(entries) {\n for (const entry of entries){\n // Some extremely old browsers or polyfills don't reliably support\n // isIntersecting so we check intersectionRatio instead. (Do we care? Not\n // really. But whatever this is fine.)\n const isVisible = entry.intersectionRatio > 0;\n onLinkVisibilityChanged(entry.target, isVisible);\n }\n}\nfunction onLinkVisibilityChanged(element, isVisible) {\n if (true) {\n // Prefetching on viewport is disabled in development for performance\n // reasons, because it requires compiling the target page.\n // TODO: Investigate re-enabling this.\n return;\n }\n const instance = prefetchable.get(element);\n if (instance === undefined) {\n return;\n }\n instance.isVisible = isVisible;\n if (isVisible) {\n prefetchableAndVisible.add(instance);\n } else {\n prefetchableAndVisible.delete(instance);\n }\n rescheduleLinkPrefetch(instance, _segmentcache.PrefetchPriority.Default);\n}\nfunction onNavigationIntent(element, unstable_upgradeToDynamicPrefetch) {\n const instance = prefetchable.get(element);\n if (instance === undefined) {\n return;\n }\n // Prefetch the link on hover/touchstart.\n if (instance !== undefined) {\n if (false) {}\n rescheduleLinkPrefetch(instance, _segmentcache.PrefetchPriority.Intent);\n }\n}\nfunction rescheduleLinkPrefetch(instance, priority) {\n const existingPrefetchTask = instance.prefetchTask;\n if (!instance.isVisible) {\n // Cancel any in-progress prefetch task. (If it already finished then this\n // is a no-op.)\n if (existingPrefetchTask !== null) {\n (0, _segmentcache.cancelPrefetchTask)(existingPrefetchTask);\n }\n // We don't need to reset the prefetchTask to null upon cancellation; an\n // old task object can be rescheduled with reschedulePrefetchTask. This is a\n // micro-optimization but also makes the code simpler (don't need to\n // worry about whether an old task object is stale).\n return;\n }\n if (true) {\n // The old prefetch implementation does not have different priority levels.\n // Just schedule a new prefetch task.\n prefetchWithOldCacheImplementation(instance);\n return;\n }\n const appRouterState = (0, _approuterinstance.getCurrentAppRouterState)();\n if (appRouterState !== null) {\n const treeAtTimeOfPrefetch = appRouterState.tree;\n if (existingPrefetchTask === null) {\n // Initiate a prefetch task.\n const nextUrl = appRouterState.nextUrl;\n const cacheKey = (0, _segmentcache.createCacheKey)(instance.prefetchHref, nextUrl);\n instance.prefetchTask = (0, _segmentcache.schedulePrefetchTask)(cacheKey, treeAtTimeOfPrefetch, instance.fetchStrategy, priority, null);\n } else {\n // We already have an old task object that we can reschedule. This is\n // effectively the same as canceling the old task and creating a new one.\n (0, _segmentcache.reschedulePrefetchTask)(existingPrefetchTask, treeAtTimeOfPrefetch, instance.fetchStrategy, priority);\n }\n }\n}\nfunction pingVisibleLinks(nextUrl, tree) {\n // For each currently visible link, cancel the existing prefetch task (if it\n // exists) and schedule a new one. This is effectively the same as if all the\n // visible links left and then re-entered the viewport.\n //\n // This is called when the Next-Url or the base tree changes, since those\n // may affect the result of a prefetch task. It's also called after a\n // cache invalidation.\n for (const instance of prefetchableAndVisible){\n const task = instance.prefetchTask;\n if (task !== null && !(0, _segmentcache.isPrefetchTaskDirty)(task, nextUrl, tree)) {\n continue;\n }\n // Something changed. Cancel the existing prefetch task and schedule a\n // new one.\n if (task !== null) {\n (0, _segmentcache.cancelPrefetchTask)(task);\n }\n const cacheKey = (0, _segmentcache.createCacheKey)(instance.prefetchHref, nextUrl);\n instance.prefetchTask = (0, _segmentcache.schedulePrefetchTask)(cacheKey, tree, instance.fetchStrategy, _segmentcache.PrefetchPriority.Default, null);\n }\n}\nfunction prefetchWithOldCacheImplementation(instance) {\n // This is the path used when the Segment Cache is not enabled.\n if (true) {\n return;\n }\n const doPrefetch = async ()=>{\n // note that `appRouter.prefetch()` is currently sync,\n // so we have to wrap this call in an async function to be able to catch() errors below.\n let prefetchKind;\n switch(instance.fetchStrategy){\n case _segmentcache.FetchStrategy.PPR:\n {\n prefetchKind = _routerreducertypes.PrefetchKind.AUTO;\n break;\n }\n case _segmentcache.FetchStrategy.Full:\n {\n prefetchKind = _routerreducertypes.PrefetchKind.FULL;\n break;\n }\n case _segmentcache.FetchStrategy.PPRRuntime:\n {\n // We can only get here if Client Segment Cache is off, and in that case\n // it shouldn't be possible for a link to request a runtime prefetch.\n throw Object.defineProperty(new _invarianterror.InvariantError('FetchStrategy.PPRRuntime should never be used when `experimental.clientSegmentCache` is disabled'), \"__NEXT_ERROR_CODE\", {\n value: \"E772\",\n enumerable: false,\n configurable: true\n });\n }\n default:\n {\n instance.fetchStrategy;\n // Unreachable, but otherwise typescript will consider the variable unassigned\n prefetchKind = undefined;\n }\n }\n return instance.router.prefetch(instance.prefetchHref, {\n kind: prefetchKind\n });\n };\n // Prefetch the page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n doPrefetch().catch((err)=>{\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=links.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xpbmtzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW9FYUEsZ0JBQWdCO2VBQWhCQTs7SUFIQUMsbUJBQW1CO2VBQW5CQTs7SUFvSEdDLGlCQUFpQjtlQUFqQkE7O0lBdENBQyxpQkFBaUI7ZUFBakJBOztJQXdGQUMsdUJBQXVCO2VBQXZCQTs7SUFzQkFDLGtCQUFrQjtlQUFsQkE7O0lBMEVBQyxnQkFBZ0I7ZUFBaEJBOztJQTdQQUMsMkJBQTJCO2VBQTNCQTs7SUFTQUMsK0JBQStCO2VBQS9CQTs7SUEySEFDLDJCQUEyQjtlQUEzQkE7OzsrQ0E1TXlCO3VDQUNQOzBDQUszQjttQ0FTeUI7Z0RBQ0g7NENBQ0U7QUF5Qy9CLHlFQUF5RTtBQUN6RSw0REFBNEQ7QUFDNUQsSUFBSUMsOEJBQW1EO0FBR2hELE1BQU1ULHNCQUFzQjtJQUFFVSxTQUFTO0FBQUs7QUFHNUMsTUFBTVgsbUJBQW1CO0lBQUVXLFNBQVM7QUFBTTtBQU0xQyxTQUFTSiw0QkFBNEJLLElBQXlCO0lBQ25FQyxDQUFBQSxHQUFBQSxPQUFBQSxlQUFBQSxFQUFnQjtRQUNkSCwrQkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsNEJBQTZCSSx1QkFBdUIsQ0FBQ2Q7UUFDckRZLFFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLEtBQU1FLHVCQUF1QixDQUFDYjtRQUM5QlMsOEJBQThCRTtJQUNoQztBQUNGO0FBR08sU0FBU0osZ0NBQWdDSSxJQUFrQjtJQUNoRSxJQUFJRixnQ0FBZ0NFLE1BQU07UUFDeENGLDhCQUE4QjtJQUNoQztBQUNGO0FBRUEsMkVBQTJFO0FBQzNFLG1FQUFtRTtBQUNuRSxNQUFNSyxlQUdKLE9BQU9DLFlBQVksYUFBYSxJQUFJQSxZQUFZLElBQUlDO0FBRXRELDZFQUE2RTtBQUM3RSw0RUFBNEU7QUFDNUUsMEVBQTBFO0FBQzFFLGlCQUFpQjtBQUNqQixNQUFNQyx5QkFBb0QsSUFBSUM7QUFF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SUFpVkQsRUFBbUI7WUFDekMscUNBQXFDO1lBQ3JDLE1BQU1BO1FBQ1I7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvbGlua3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBcHBSb3V0ZXJJbnN0YW5jZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZ2V0Q3VycmVudEFwcFJvdXRlclN0YXRlIH0gZnJvbSAnLi9hcHAtcm91dGVyLWluc3RhbmNlJ1xuaW1wb3J0IHsgY3JlYXRlUHJlZmV0Y2hVUkwgfSBmcm9tICcuL2FwcC1yb3V0ZXInXG5pbXBvcnQge1xuICBGZXRjaFN0cmF0ZWd5LFxuICBpc1ByZWZldGNoVGFza0RpcnR5LFxuICB0eXBlIFByZWZldGNoVGFza0ZldGNoU3RyYXRlZ3ksXG59IGZyb20gJy4vc2VnbWVudC1jYWNoZSdcbmltcG9ydCB7IGNyZWF0ZUNhY2hlS2V5IH0gZnJvbSAnLi9zZWdtZW50LWNhY2hlJ1xuaW1wb3J0IHtcbiAgdHlwZSBQcmVmZXRjaFRhc2ssXG4gIFByZWZldGNoUHJpb3JpdHksXG4gIHNjaGVkdWxlUHJlZmV0Y2hUYXNrIGFzIHNjaGVkdWxlU2VnbWVudFByZWZldGNoVGFzayxcbiAgY2FuY2VsUHJlZmV0Y2hUYXNrLFxuICByZXNjaGVkdWxlUHJlZmV0Y2hUYXNrLFxufSBmcm9tICcuL3NlZ21lbnQtY2FjaGUnXG5pbXBvcnQgeyBzdGFydFRyYW5zaXRpb24gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFByZWZldGNoS2luZCB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyBJbnZhcmlhbnRFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yJ1xuXG50eXBlIExpbmtFbGVtZW50ID0gSFRNTEFuY2hvckVsZW1lbnQgfCBTVkdBRWxlbWVudFxuXG50eXBlIEVsZW1lbnQgPSBMaW5rRWxlbWVudCB8IEhUTUxGb3JtRWxlbWVudFxuXG4vLyBQcm9wZXJ0aWVzIHRoYXQgYXJlIHNoYXJlZCBiZXR3ZWVuIExpbmsgYW5kIEZvcm0gaW5zdGFuY2VzLiBXZSB1c2UgdGhlIHNhbWVcbi8vIHNoYXBlIGZvciBib3RoIHRvIHByZXZlbnQgYSBwb2x5bW9ycGhpYyBkZS1vcHQgaW4gdGhlIFZNLlxudHlwZSBMaW5rT3JGb3JtSW5zdGFuY2VTaGFyZWQgPSB7XG4gIHJvdXRlcjogQXBwUm91dGVySW5zdGFuY2VcbiAgZmV0Y2hTdHJhdGVneTogUHJlZmV0Y2hUYXNrRmV0Y2hTdHJhdGVneVxuXG4gIGlzVmlzaWJsZTogYm9vbGVhblxuXG4gIC8vIFRoZSBtb3N0IHJlY2VudGx5IGluaXRpYXRlZCBwcmVmZXRjaCB0YXNrLiBJdCBtYXkgb3IgbWF5IG5vdCBoYXZlXG4gIC8vIGFscmVhZHkgY29tcGxldGVkLiBUaGUgc2FtZSBwcmVmZXRjaCB0YXNrIG9iamVjdCBjYW4gYmUgcmV1c2VkIGFjcm9zc1xuICAvLyBtdWx0aXBsZSBwcmVmZXRjaGVzIG9mIHRoZSBzYW1lIGxpbmsuXG4gIHByZWZldGNoVGFzazogUHJlZmV0Y2hUYXNrIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBGb3JtSW5zdGFuY2UgPSBMaW5rT3JGb3JtSW5zdGFuY2VTaGFyZWQgJiB7XG4gIHByZWZldGNoSHJlZjogc3RyaW5nXG4gIHNldE9wdGltaXN0aWNMaW5rU3RhdHVzOiBudWxsXG59XG5cbnR5cGUgUHJlZmV0Y2hhYmxlTGlua0luc3RhbmNlID0gTGlua09yRm9ybUluc3RhbmNlU2hhcmVkICYge1xuICBwcmVmZXRjaEhyZWY6IHN0cmluZ1xuICBzZXRPcHRpbWlzdGljTGlua1N0YXR1czogKHN0YXR1czogeyBwZW5kaW5nOiBib29sZWFuIH0pID0+IHZvaWRcbn1cblxudHlwZSBOb25QcmVmZXRjaGFibGVMaW5rSW5zdGFuY2UgPSBMaW5rT3JGb3JtSW5zdGFuY2VTaGFyZWQgJiB7XG4gIHByZWZldGNoSHJlZjogbnVsbFxuICBzZXRPcHRpbWlzdGljTGlua1N0YXR1czogKHN0YXR1czogeyBwZW5kaW5nOiBib29sZWFuIH0pID0+IHZvaWRcbn1cblxudHlwZSBQcmVmZXRjaGFibGVJbnN0YW5jZSA9IFByZWZldGNoYWJsZUxpbmtJbnN0YW5jZSB8IEZvcm1JbnN0YW5jZVxuXG5leHBvcnQgdHlwZSBMaW5rSW5zdGFuY2UgPVxuICB8IFByZWZldGNoYWJsZUxpbmtJbnN0YW5jZVxuICB8IE5vblByZWZldGNoYWJsZUxpbmtJbnN0YW5jZVxuXG4vLyBUcmFja3MgdGhlIG1vc3QgcmVjZW50bHkgbmF2aWdhdGVkIGxpbmsgaW5zdGFuY2UuIFdoZW4gbnVsbCwgaW5kaWNhdGVzXG4vLyB0aGUgY3VycmVudCBuYXZpZ2F0aW9uIHdhcyBub3QgaW5pdGlhdGVkIGJ5IGEgbGluayBjbGljay5cbmxldCBsaW5rRm9yTW9zdFJlY2VudE5hdmlnYXRpb246IExpbmtJbnN0YW5jZSB8IG51bGwgPSBudWxsXG5cbi8vIFN0YXR1cyBvYmplY3QgaW5kaWNhdGluZyBsaW5rIGlzIHBlbmRpbmdcbmV4cG9ydCBjb25zdCBQRU5ESU5HX0xJTktfU1RBVFVTID0geyBwZW5kaW5nOiB0cnVlIH1cblxuLy8gU3RhdHVzIG9iamVjdCBpbmRpY2F0aW5nIGxpbmsgaXMgaWRsZVxuZXhwb3J0IGNvbnN0IElETEVfTElOS19TVEFUVVMgPSB7IHBlbmRpbmc6IGZhbHNlIH1cblxuLy8gVXBkYXRlcyB0aGUgbG9hZGluZyBzdGF0ZSB3aGVuIG5hdmlnYXRpbmcgYmV0d2VlbiBsaW5rc1xuLy8gLSBSZXNldHMgdGhlIHByZXZpb3VzIGxpbmsncyBsb2FkaW5nIHN0YXRlXG4vLyAtIFNldHMgdGhlIG5ldyBsaW5rJ3MgbG9hZGluZyBzdGF0ZVxuLy8gLSBVcGRhdGVzIHRyYWNraW5nIG9mIGN1cnJlbnQgbmF2aWdhdGlvblxuZXhwb3J0IGZ1bmN0aW9uIHNldExpbmtGb3JDdXJyZW50TmF2aWdhdGlvbihsaW5rOiBMaW5rSW5zdGFuY2UgfCBudWxsKSB7XG4gIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgbGlua0Zvck1vc3RSZWNlbnROYXZpZ2F0aW9uPy5zZXRPcHRpbWlzdGljTGlua1N0YXR1cyhJRExFX0xJTktfU1RBVFVTKVxuICAgIGxpbms/LnNldE9wdGltaXN0aWNMaW5rU3RhdHVzKFBFTkRJTkdfTElOS19TVEFUVVMpXG4gICAgbGlua0Zvck1vc3RSZWNlbnROYXZpZ2F0aW9uID0gbGlua1xuICB9KVxufVxuXG4vLyBVbm1vdW50cyB0aGUgY3VycmVudCBsaW5rIGluc3RhbmNlIGZyb20gbmF2aWdhdGlvbiB0cmFja2luZ1xuZXhwb3J0IGZ1bmN0aW9uIHVubW91bnRMaW5rRm9yQ3VycmVudE5hdmlnYXRpb24obGluazogTGlua0luc3RhbmNlKSB7XG4gIGlmIChsaW5rRm9yTW9zdFJlY2VudE5hdmlnYXRpb24gPT09IGxpbmspIHtcbiAgICBsaW5rRm9yTW9zdFJlY2VudE5hdmlnYXRpb24gPSBudWxsXG4gIH1cbn1cblxuLy8gVXNlIGEgV2Vha01hcCB0byBhc3NvY2lhdGUgYSBMaW5rIGluc3RhbmNlIHdpdGggaXRzIERPTSBlbGVtZW50LiBUaGlzIGlzXG4vLyB1c2VkIGJ5IHRoZSBJbnRlcnNlY3Rpb25PYnNlcnZlciB0byB0cmFjayB0aGUgbGluaydzIHZpc2liaWxpdHkuXG5jb25zdCBwcmVmZXRjaGFibGU6XG4gIHwgV2Vha01hcDxFbGVtZW50LCBQcmVmZXRjaGFibGVJbnN0YW5jZT5cbiAgfCBNYXA8RWxlbWVudCwgUHJlZmV0Y2hhYmxlSW5zdGFuY2U+ID1cbiAgdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBuZXcgV2Vha01hcCgpIDogbmV3IE1hcCgpXG5cbi8vIEEgU2V0IG9mIHRoZSBjdXJyZW50bHkgdmlzaWJsZSBsaW5rcy4gV2UgcmUtcHJlZmV0Y2ggdmlzaWJsZSBsaW5rcyBhZnRlciBhXG4vLyBjYWNoZSBpbnZhbGlkYXRpb24sIG9yIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMuIEl0J3MgYSBzZXBhcmF0ZSBkYXRhXG4vLyBzdHJ1Y3R1cmUgZnJvbSB0aGUgV2Vha01hcCBhYm92ZSBiZWNhdXNlIG9ubHkgdGhlIHZpc2libGUgbGlua3MgbmVlZCB0b1xuLy8gYmUgZW51bWVyYXRlZC5cbmNvbnN0IHByZWZldGNoYWJsZUFuZFZpc2libGU6IFNldDxQcmVmZXRjaGFibGVJbnN0YW5jZT4gPSBuZXcgU2V0KClcblxuLy8gQSBzaW5nbGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaW5zdGFuY2Ugc2hhcmVkIGJ5IGFsbCA8TGluaz4gY29tcG9uZW50cy5cbmNvbnN0IG9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlciB8IG51bGwgPVxuICB0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09ICdmdW5jdGlvbidcbiAgICA/IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihoYW5kbGVJbnRlcnNlY3QsIHtcbiAgICAgICAgcm9vdE1hcmdpbjogJzIwMHB4JyxcbiAgICAgIH0pXG4gICAgOiBudWxsXG5cbmZ1bmN0aW9uIG9ic2VydmVWaXNpYmlsaXR5KGVsZW1lbnQ6IEVsZW1lbnQsIGluc3RhbmNlOiBQcmVmZXRjaGFibGVJbnN0YW5jZSkge1xuICBjb25zdCBleGlzdGluZ0luc3RhbmNlID0gcHJlZmV0Y2hhYmxlLmdldChlbGVtZW50KVxuICBpZiAoZXhpc3RpbmdJbnN0YW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJlY2F1c2UgZWFjaCA8TGluaz4gY29tcG9uZW50IHNob3VsZCBoYXZlIGl0cyBvd25cbiAgICAvLyBhbmNob3IgdGFnIGluc3RhbmNlLCBidXQgaXQncyBkZWZlbnNpdmUgY29kaW5nIHRvIGF2b2lkIGEgbWVtb3J5IGxlYWsgaW5cbiAgICAvLyBjYXNlIHRoZXJlJ3MgYSBsb2dpY2FsIGVycm9yIHNvbWV3aGVyZSBlbHNlLlxuICAgIHVubW91bnRQcmVmZXRjaGFibGVJbnN0YW5jZShlbGVtZW50KVxuICB9XG4gIC8vIE9ubHkgdHJhY2sgcHJlZmV0Y2hhYmxlIGxpbmtzIHRoYXQgaGF2ZSBhIHZhbGlkIHByZWZldGNoIFVSTFxuICBwcmVmZXRjaGFibGUuc2V0KGVsZW1lbnQsIGluc3RhbmNlKVxuICBpZiAob2JzZXJ2ZXIgIT09IG51bGwpIHtcbiAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpXG4gIH1cbn1cblxuZnVuY3Rpb24gY29lcmNlUHJlZmV0Y2hhYmxlVXJsKGhyZWY6IHN0cmluZyk6IFVSTCB8IG51bGwge1xuICB0cnkge1xuICAgIHJldHVybiBjcmVhdGVQcmVmZXRjaFVSTChocmVmKVxuICB9IGNhdGNoIHtcbiAgICAvLyBjcmVhdGVQcmVmZXRjaFVSTCBzb21ldGltZXMgdGhyb3dzIGFuIGVycm9yIGlmIGFuIGludmFsaWQgVVJMIGlzXG4gICAgLy8gcHJvdmlkZWQsIHRob3VnaCBJJ20gbm90IHN1cmUgaWYgaXQncyBhY3R1YWxseSBuZWNlc3NhcnkuXG4gICAgLy8gVE9ETzogQ29uc2lkZXIgcmVtb3ZpbmcgdGhlIHRocm93IGZyb20gdGhlIGlubmVyIGZ1bmN0aW9uLCBvciBjaGFuZ2UgaXRcbiAgICAvLyB0byByZXBvcnRFcnJvci4gT3IgbWF5YmUgdGhlIGVycm9yIGlzbid0IGV2ZW4gbmVjZXNzYXJ5IGZvciBhdXRvbWF0aWNcbiAgICAvLyBwcmVmZXRjaGVzLCBqdXN0IG5hdmlnYXRpb25zLlxuICAgIGNvbnN0IHJlcG9ydEVycm9yRm4gPVxuICAgICAgdHlwZW9mIHJlcG9ydEVycm9yID09PSAnZnVuY3Rpb24nID8gcmVwb3J0RXJyb3IgOiBjb25zb2xlLmVycm9yXG4gICAgcmVwb3J0RXJyb3JGbihcbiAgICAgIGBDYW5ub3QgcHJlZmV0Y2ggJyR7aHJlZn0nIGJlY2F1c2UgaXQgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhIFVSTC5gXG4gICAgKVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdW50TGlua0luc3RhbmNlKFxuICBlbGVtZW50OiBMaW5rRWxlbWVudCxcbiAgaHJlZjogc3RyaW5nLFxuICByb3V0ZXI6IEFwcFJvdXRlckluc3RhbmNlLFxuICBmZXRjaFN0cmF0ZWd5OiBQcmVmZXRjaFRhc2tGZXRjaFN0cmF0ZWd5LFxuICBwcmVmZXRjaEVuYWJsZWQ6IGJvb2xlYW4sXG4gIHNldE9wdGltaXN0aWNMaW5rU3RhdHVzOiAoc3RhdHVzOiB7IHBlbmRpbmc6IGJvb2xlYW4gfSkgPT4gdm9pZFxuKTogTGlua0luc3RhbmNlIHtcbiAgaWYgKHByZWZldGNoRW5hYmxlZCkge1xuICAgIGNvbnN0IHByZWZldGNoVVJMID0gY29lcmNlUHJlZmV0Y2hhYmxlVXJsKGhyZWYpXG4gICAgaWYgKHByZWZldGNoVVJMICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZTogUHJlZmV0Y2hhYmxlTGlua0luc3RhbmNlID0ge1xuICAgICAgICByb3V0ZXIsXG4gICAgICAgIGZldGNoU3RyYXRlZ3ksXG4gICAgICAgIGlzVmlzaWJsZTogZmFsc2UsXG4gICAgICAgIHByZWZldGNoVGFzazogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hIcmVmOiBwcmVmZXRjaFVSTC5ocmVmLFxuICAgICAgICBzZXRPcHRpbWlzdGljTGlua1N0YXR1cyxcbiAgICAgIH1cbiAgICAgIC8vIFdlIG9ubHkgb2JzZXJ2ZSB0aGUgbGluaydzIHZpc2liaWxpdHkgaWYgaXQncyBwcmVmZXRjaGFibGUuIEZvclxuICAgICAgLy8gZXhhbXBsZSwgdGhpcyBleGNsdWRlcyBsaW5rcyB0byBleHRlcm5hbCBVUkxzLlxuICAgICAgb2JzZXJ2ZVZpc2liaWxpdHkoZWxlbWVudCwgaW5zdGFuY2UpXG4gICAgICByZXR1cm4gaW5zdGFuY2VcbiAgICB9XG4gIH1cbiAgLy8gSWYgdGhlIGxpbmsgaXMgbm90IHByZWZldGNoYWJsZSwgd2Ugc3RpbGwgY3JlYXRlIGFuIGluc3RhbmNlIHNvIHdlIGNhblxuICAvLyB0cmFjayBpdHMgb3B0aW1pc3RpYyBzdGF0ZSAoaS5lLiB1c2VMaW5rU3RhdHVzKS5cbiAgY29uc3QgaW5zdGFuY2U6IE5vblByZWZldGNoYWJsZUxpbmtJbnN0YW5jZSA9IHtcbiAgICByb3V0ZXIsXG4gICAgZmV0Y2hTdHJhdGVneSxcbiAgICBpc1Zpc2libGU6IGZhbHNlLFxuICAgIHByZWZldGNoVGFzazogbnVsbCxcbiAgICBwcmVmZXRjaEhyZWY6IG51bGwsXG4gICAgc2V0T3B0aW1pc3RpY0xpbmtTdGF0dXMsXG4gIH1cbiAgcmV0dXJuIGluc3RhbmNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3VudEZvcm1JbnN0YW5jZShcbiAgZWxlbWVudDogSFRNTEZvcm1FbGVtZW50LFxuICBocmVmOiBzdHJpbmcsXG4gIHJvdXRlcjogQXBwUm91dGVySW5zdGFuY2UsXG4gIGZldGNoU3RyYXRlZ3k6IFByZWZldGNoVGFza0ZldGNoU3RyYXRlZ3lcbik6IHZvaWQge1xuICBjb25zdCBwcmVmZXRjaFVSTCA9IGNvZXJjZVByZWZldGNoYWJsZVVybChocmVmKVxuICBpZiAocHJlZmV0Y2hVUkwgPT09IG51bGwpIHtcbiAgICAvLyBUaGlzIGhyZWYgaXMgbm90IHByZWZldGNoYWJsZSwgc28gd2UgZG9uJ3QgdHJhY2sgaXQuXG4gICAgLy8gVE9ETzogV2UgY3VycmVudGx5IG9ic2VydmUvdW5vYnNlcnZlIGEgZm9ybSBldmVyeSB0aW1lIGl0cyBocmVmIGNoYW5nZXMuXG4gICAgLy8gRm9yIExpbmtzLCB0aGlzIGlzbid0IGEgYmlnIGRlYWwgYmVjYXVzZSB0aGUgaHJlZiBkb2Vzbid0IHVzdWFsbHkgY2hhbmdlLFxuICAgIC8vIGJ1dCBmb3IgZm9ybXMgaXQncyBleHRyZW1lbHkgY29tbW9uLiBXZSBzaG91bGQgb3B0aW1pemUgdGhpcy5cbiAgICByZXR1cm5cbiAgfVxuICBjb25zdCBpbnN0YW5jZTogRm9ybUluc3RhbmNlID0ge1xuICAgIHJvdXRlcixcbiAgICBmZXRjaFN0cmF0ZWd5LFxuICAgIGlzVmlzaWJsZTogZmFsc2UsXG4gICAgcHJlZmV0Y2hUYXNrOiBudWxsLFxuICAgIHByZWZldGNoSHJlZjogcHJlZmV0Y2hVUkwuaHJlZixcbiAgICBzZXRPcHRpbWlzdGljTGlua1N0YXR1czogbnVsbCxcbiAgfVxuICBvYnNlcnZlVmlzaWJpbGl0eShlbGVtZW50LCBpbnN0YW5jZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVubW91bnRQcmVmZXRjaGFibGVJbnN0YW5jZShlbGVtZW50OiBFbGVtZW50KSB7XG4gIGNvbnN0IGluc3RhbmNlID0gcHJlZmV0Y2hhYmxlLmdldChlbGVtZW50KVxuICBpZiAoaW5zdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHByZWZldGNoYWJsZS5kZWxldGUoZWxlbWVudClcbiAgICBwcmVmZXRjaGFibGVBbmRWaXNpYmxlLmRlbGV0ZShpbnN0YW5jZSlcbiAgICBjb25zdCBwcmVmZXRjaFRhc2sgPSBpbnN0YW5jZS5wcmVmZXRjaFRhc2tcbiAgICBpZiAocHJlZmV0Y2hUYXNrICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxQcmVmZXRjaFRhc2socHJlZmV0Y2hUYXNrKVxuICAgIH1cbiAgfVxuICBpZiAob2JzZXJ2ZXIgIT09IG51bGwpIHtcbiAgICBvYnNlcnZlci51bm9ic2VydmUoZWxlbWVudClcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVJbnRlcnNlY3QoZW50cmllczogQXJyYXk8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4pIHtcbiAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgLy8gU29tZSBleHRyZW1lbHkgb2xkIGJyb3dzZXJzIG9yIHBvbHlmaWxscyBkb24ndCByZWxpYWJseSBzdXBwb3J0XG4gICAgLy8gaXNJbnRlcnNlY3Rpbmcgc28gd2UgY2hlY2sgaW50ZXJzZWN0aW9uUmF0aW8gaW5zdGVhZC4gKERvIHdlIGNhcmU/IE5vdFxuICAgIC8vIHJlYWxseS4gQnV0IHdoYXRldmVyIHRoaXMgaXMgZmluZS4pXG4gICAgY29uc3QgaXNWaXNpYmxlID0gZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPiAwXG4gICAgb25MaW5rVmlzaWJpbGl0eUNoYW5nZWQoZW50cnkudGFyZ2V0IGFzIEhUTUxBbmNob3JFbGVtZW50LCBpc1Zpc2libGUpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uTGlua1Zpc2liaWxpdHlDaGFuZ2VkKGVsZW1lbnQ6IEVsZW1lbnQsIGlzVmlzaWJsZTogYm9vbGVhbikge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIC8vIFByZWZldGNoaW5nIG9uIHZpZXdwb3J0IGlzIGRpc2FibGVkIGluIGRldmVsb3BtZW50IGZvciBwZXJmb3JtYW5jZVxuICAgIC8vIHJlYXNvbnMsIGJlY2F1c2UgaXQgcmVxdWlyZXMgY29tcGlsaW5nIHRoZSB0YXJnZXQgcGFnZS5cbiAgICAvLyBUT0RPOiBJbnZlc3RpZ2F0ZSByZS1lbmFibGluZyB0aGlzLlxuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgaW5zdGFuY2UgPSBwcmVmZXRjaGFibGUuZ2V0KGVsZW1lbnQpXG4gIGlmIChpbnN0YW5jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpbnN0YW5jZS5pc1Zpc2libGUgPSBpc1Zpc2libGVcbiAgaWYgKGlzVmlzaWJsZSkge1xuICAgIHByZWZldGNoYWJsZUFuZFZpc2libGUuYWRkKGluc3RhbmNlKVxuICB9IGVsc2Uge1xuICAgIHByZWZldGNoYWJsZUFuZFZpc2libGUuZGVsZXRlKGluc3RhbmNlKVxuICB9XG4gIHJlc2NoZWR1bGVMaW5rUHJlZmV0Y2goaW5zdGFuY2UsIFByZWZldGNoUHJpb3JpdHkuRGVmYXVsdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uTmF2aWdhdGlvbkludGVudChcbiAgZWxlbWVudDogSFRNTEFuY2hvckVsZW1lbnQgfCBTVkdBRWxlbWVudCxcbiAgdW5zdGFibGVfdXBncmFkZVRvRHluYW1pY1ByZWZldGNoOiBib29sZWFuXG4pIHtcbiAgY29uc3QgaW5zdGFuY2UgPSBwcmVmZXRjaGFibGUuZ2V0KGVsZW1lbnQpXG4gIGlmIChpbnN0YW5jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgLy8gUHJlZmV0Y2ggdGhlIGxpbmsgb24gaG92ZXIvdG91Y2hzdGFydC5cbiAgaWYgKGluc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5fX05FWFRfRFlOQU1JQ19PTl9IT1ZFUiAmJlxuICAgICAgdW5zdGFibGVfdXBncmFkZVRvRHluYW1pY1ByZWZldGNoXG4gICAgKSB7XG4gICAgICAvLyBTd2l0Y2ggdG8gYSBmdWxsIHByZWZldGNoXG4gICAgICBpbnN0YW5jZS5mZXRjaFN0cmF0ZWd5ID0gRmV0Y2hTdHJhdGVneS5GdWxsXG4gICAgfVxuICAgIHJlc2NoZWR1bGVMaW5rUHJlZmV0Y2goaW5zdGFuY2UsIFByZWZldGNoUHJpb3JpdHkuSW50ZW50KVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlc2NoZWR1bGVMaW5rUHJlZmV0Y2goXG4gIGluc3RhbmNlOiBQcmVmZXRjaGFibGVJbnN0YW5jZSxcbiAgcHJpb3JpdHk6IFByZWZldGNoUHJpb3JpdHkuRGVmYXVsdCB8IFByZWZldGNoUHJpb3JpdHkuSW50ZW50XG4pIHtcbiAgY29uc3QgZXhpc3RpbmdQcmVmZXRjaFRhc2sgPSBpbnN0YW5jZS5wcmVmZXRjaFRhc2tcblxuICBpZiAoIWluc3RhbmNlLmlzVmlzaWJsZSkge1xuICAgIC8vIENhbmNlbCBhbnkgaW4tcHJvZ3Jlc3MgcHJlZmV0Y2ggdGFzay4gKElmIGl0IGFscmVhZHkgZmluaXNoZWQgdGhlbiB0aGlzXG4gICAgLy8gaXMgYSBuby1vcC4pXG4gICAgaWYgKGV4aXN0aW5nUHJlZmV0Y2hUYXNrICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxQcmVmZXRjaFRhc2soZXhpc3RpbmdQcmVmZXRjaFRhc2spXG4gICAgfVxuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gcmVzZXQgdGhlIHByZWZldGNoVGFzayB0byBudWxsIHVwb24gY2FuY2VsbGF0aW9uOyBhblxuICAgIC8vIG9sZCB0YXNrIG9iamVjdCBjYW4gYmUgcmVzY2hlZHVsZWQgd2l0aCByZXNjaGVkdWxlUHJlZmV0Y2hUYXNrLiBUaGlzIGlzIGFcbiAgICAvLyBtaWNyby1vcHRpbWl6YXRpb24gYnV0IGFsc28gbWFrZXMgdGhlIGNvZGUgc2ltcGxlciAoZG9uJ3QgbmVlZCB0b1xuICAgIC8vIHdvcnJ5IGFib3V0IHdoZXRoZXIgYW4gb2xkIHRhc2sgb2JqZWN0IGlzIHN0YWxlKS5cbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmICghcHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFKSB7XG4gICAgLy8gVGhlIG9sZCBwcmVmZXRjaCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBoYXZlIGRpZmZlcmVudCBwcmlvcml0eSBsZXZlbHMuXG4gICAgLy8gSnVzdCBzY2hlZHVsZSBhIG5ldyBwcmVmZXRjaCB0YXNrLlxuICAgIHByZWZldGNoV2l0aE9sZENhY2hlSW1wbGVtZW50YXRpb24oaW5zdGFuY2UpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBhcHBSb3V0ZXJTdGF0ZSA9IGdldEN1cnJlbnRBcHBSb3V0ZXJTdGF0ZSgpXG4gIGlmIChhcHBSb3V0ZXJTdGF0ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHRyZWVBdFRpbWVPZlByZWZldGNoID0gYXBwUm91dGVyU3RhdGUudHJlZVxuICAgIGlmIChleGlzdGluZ1ByZWZldGNoVGFzayA9PT0gbnVsbCkge1xuICAgICAgLy8gSW5pdGlhdGUgYSBwcmVmZXRjaCB0YXNrLlxuICAgICAgY29uc3QgbmV4dFVybCA9IGFwcFJvdXRlclN0YXRlLm5leHRVcmxcbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlQ2FjaGVLZXkoaW5zdGFuY2UucHJlZmV0Y2hIcmVmLCBuZXh0VXJsKVxuICAgICAgaW5zdGFuY2UucHJlZmV0Y2hUYXNrID0gc2NoZWR1bGVTZWdtZW50UHJlZmV0Y2hUYXNrKFxuICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgdHJlZUF0VGltZU9mUHJlZmV0Y2gsXG4gICAgICAgIGluc3RhbmNlLmZldGNoU3RyYXRlZ3ksXG4gICAgICAgIHByaW9yaXR5LFxuICAgICAgICBudWxsXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdlIGFscmVhZHkgaGF2ZSBhbiBvbGQgdGFzayBvYmplY3QgdGhhdCB3ZSBjYW4gcmVzY2hlZHVsZS4gVGhpcyBpc1xuICAgICAgLy8gZWZmZWN0aXZlbHkgdGhlIHNhbWUgYXMgY2FuY2VsaW5nIHRoZSBvbGQgdGFzayBhbmQgY3JlYXRpbmcgYSBuZXcgb25lLlxuICAgICAgcmVzY2hlZHVsZVByZWZldGNoVGFzayhcbiAgICAgICAgZXhpc3RpbmdQcmVmZXRjaFRhc2ssXG4gICAgICAgIHRyZWVBdFRpbWVPZlByZWZldGNoLFxuICAgICAgICBpbnN0YW5jZS5mZXRjaFN0cmF0ZWd5LFxuICAgICAgICBwcmlvcml0eVxuICAgICAgKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGluZ1Zpc2libGVMaW5rcyhcbiAgbmV4dFVybDogc3RyaW5nIHwgbnVsbCxcbiAgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbikge1xuICAvLyBGb3IgZWFjaCBjdXJyZW50bHkgdmlzaWJsZSBsaW5rLCBjYW5jZWwgdGhlIGV4aXN0aW5nIHByZWZldGNoIHRhc2sgKGlmIGl0XG4gIC8vIGV4aXN0cykgYW5kIHNjaGVkdWxlIGEgbmV3IG9uZS4gVGhpcyBpcyBlZmZlY3RpdmVseSB0aGUgc2FtZSBhcyBpZiBhbGwgdGhlXG4gIC8vIHZpc2libGUgbGlua3MgbGVmdCBhbmQgdGhlbiByZS1lbnRlcmVkIHRoZSB2aWV3cG9ydC5cbiAgLy9cbiAgLy8gVGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgTmV4dC1Vcmwgb3IgdGhlIGJhc2UgdHJlZSBjaGFuZ2VzLCBzaW5jZSB0aG9zZVxuICAvLyBtYXkgYWZmZWN0IHRoZSByZXN1bHQgb2YgYSBwcmVmZXRjaCB0YXNrLiBJdCdzIGFsc28gY2FsbGVkIGFmdGVyIGFcbiAgLy8gY2FjaGUgaW52YWxpZGF0aW9uLlxuICBmb3IgKGNvbnN0IGluc3RhbmNlIG9mIHByZWZldGNoYWJsZUFuZFZpc2libGUpIHtcbiAgICBjb25zdCB0YXNrID0gaW5zdGFuY2UucHJlZmV0Y2hUYXNrXG4gICAgaWYgKHRhc2sgIT09IG51bGwgJiYgIWlzUHJlZmV0Y2hUYXNrRGlydHkodGFzaywgbmV4dFVybCwgdHJlZSkpIHtcbiAgICAgIC8vIFRoZSBjYWNoZSBoYXMgbm90IGJlZW4gaW52YWxpZGF0ZWQsIGFuZCBub25lIG9mIHRoZSBpbnB1dHMgaGF2ZVxuICAgICAgLy8gY2hhbmdlZC4gQmFpbCBvdXQuXG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICAvLyBTb21ldGhpbmcgY2hhbmdlZC4gQ2FuY2VsIHRoZSBleGlzdGluZyBwcmVmZXRjaCB0YXNrIGFuZCBzY2hlZHVsZSBhXG4gICAgLy8gbmV3IG9uZS5cbiAgICBpZiAodGFzayAhPT0gbnVsbCkge1xuICAgICAgY2FuY2VsUHJlZmV0Y2hUYXNrKHRhc2spXG4gICAgfVxuICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlQ2FjaGVLZXkoaW5zdGFuY2UucHJlZmV0Y2hIcmVmLCBuZXh0VXJsKVxuICAgIGluc3RhbmNlLnByZWZldGNoVGFzayA9IHNjaGVkdWxlU2VnbWVudFByZWZldGNoVGFzayhcbiAgICAgIGNhY2hlS2V5LFxuICAgICAgdHJlZSxcbiAgICAgIGluc3RhbmNlLmZldGNoU3RyYXRlZ3ksXG4gICAgICBQcmVmZXRjaFByaW9yaXR5LkRlZmF1bHQsXG4gICAgICBudWxsXG4gICAgKVxuICB9XG59XG5cbmZ1bmN0aW9uIHByZWZldGNoV2l0aE9sZENhY2hlSW1wbGVtZW50YXRpb24oaW5zdGFuY2U6IFByZWZldGNoYWJsZUluc3RhbmNlKSB7XG4gIC8vIFRoaXMgaXMgdGhlIHBhdGggdXNlZCB3aGVuIHRoZSBTZWdtZW50IENhY2hlIGlzIG5vdCBlbmFibGVkLlxuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IGRvUHJlZmV0Y2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gbm90ZSB0aGF0IGBhcHBSb3V0ZXIucHJlZmV0Y2goKWAgaXMgY3VycmVudGx5IHN5bmMsXG4gICAgLy8gc28gd2UgaGF2ZSB0byB3cmFwIHRoaXMgY2FsbCBpbiBhbiBhc3luYyBmdW5jdGlvbiB0byBiZSBhYmxlIHRvIGNhdGNoKCkgZXJyb3JzIGJlbG93LlxuXG4gICAgbGV0IHByZWZldGNoS2luZDogUHJlZmV0Y2hLaW5kXG4gICAgc3dpdGNoIChpbnN0YW5jZS5mZXRjaFN0cmF0ZWd5KSB7XG4gICAgICBjYXNlIEZldGNoU3RyYXRlZ3kuUFBSOiB7XG4gICAgICAgIHByZWZldGNoS2luZCA9IFByZWZldGNoS2luZC5BVVRPXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlIEZldGNoU3RyYXRlZ3kuRnVsbDoge1xuICAgICAgICBwcmVmZXRjaEtpbmQgPSBQcmVmZXRjaEtpbmQuRlVMTFxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSBGZXRjaFN0cmF0ZWd5LlBQUlJ1bnRpbWU6IHtcbiAgICAgICAgLy8gV2UgY2FuIG9ubHkgZ2V0IGhlcmUgaWYgQ2xpZW50IFNlZ21lbnQgQ2FjaGUgaXMgb2ZmLCBhbmQgaW4gdGhhdCBjYXNlXG4gICAgICAgIC8vIGl0IHNob3VsZG4ndCBiZSBwb3NzaWJsZSBmb3IgYSBsaW5rIHRvIHJlcXVlc3QgYSBydW50aW1lIHByZWZldGNoLlxuICAgICAgICB0aHJvdyBuZXcgSW52YXJpYW50RXJyb3IoXG4gICAgICAgICAgJ0ZldGNoU3RyYXRlZ3kuUFBSUnVudGltZSBzaG91bGQgbmV2ZXIgYmUgdXNlZCB3aGVuIGBleHBlcmltZW50YWwuY2xpZW50U2VnbWVudENhY2hlYCBpcyBkaXNhYmxlZCdcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBpbnN0YW5jZS5mZXRjaFN0cmF0ZWd5IHNhdGlzZmllcyBuZXZlclxuICAgICAgICAvLyBVbnJlYWNoYWJsZSwgYnV0IG90aGVyd2lzZSB0eXBlc2NyaXB0IHdpbGwgY29uc2lkZXIgdGhlIHZhcmlhYmxlIHVuYXNzaWduZWRcbiAgICAgICAgcHJlZmV0Y2hLaW5kID0gdW5kZWZpbmVkIVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpbnN0YW5jZS5yb3V0ZXIucHJlZmV0Y2goaW5zdGFuY2UucHJlZmV0Y2hIcmVmLCB7XG4gICAgICBraW5kOiBwcmVmZXRjaEtpbmQsXG4gICAgfSlcbiAgfVxuXG4gIC8vIFByZWZldGNoIHRoZSBwYWdlIGlmIGFza2VkIChvbmx5IGluIHRoZSBjbGllbnQpXG4gIC8vIFdlIG5lZWQgdG8gaGFuZGxlIGEgcHJlZmV0Y2ggZXJyb3IgaGVyZSBzaW5jZSB3ZSBtYXkgYmVcbiAgLy8gbG9hZGluZyB3aXRoIHByaW9yaXR5IHdoaWNoIGNhbiByZWplY3QgYnV0IHdlIGRvbid0XG4gIC8vIHdhbnQgdG8gZm9yY2UgbmF2aWdhdGlvbiBzaW5jZSB0aGlzIGlzIG9ubHkgYSBwcmVmZXRjaFxuICBkb1ByZWZldGNoKCkuY2F0Y2goKGVycikgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAvLyByZXRocm93IHRvIHNob3cgaW52YWxpZCBVUkwgZXJyb3JzXG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG4gIH0pXG59XG4iXSwibmFtZXMiOlsiSURMRV9MSU5LX1NUQVRVUyIsIlBFTkRJTkdfTElOS19TVEFUVVMiLCJtb3VudEZvcm1JbnN0YW5jZSIsIm1vdW50TGlua0luc3RhbmNlIiwib25MaW5rVmlzaWJpbGl0eUNoYW5nZWQiLCJvbk5hdmlnYXRpb25JbnRlbnQiLCJwaW5nVmlzaWJsZUxpbmtzIiwic2V0TGlua0ZvckN1cnJlbnROYXZpZ2F0aW9uIiwidW5tb3VudExpbmtGb3JDdXJyZW50TmF2aWdhdGlvbiIsInVubW91bnRQcmVmZXRjaGFibGVJbnN0YW5jZSIsImxpbmtGb3JNb3N0UmVjZW50TmF2aWdhdGlvbiIsInBlbmRpbmciLCJsaW5rIiwic3RhcnRUcmFuc2l0aW9uIiwic2V0T3B0aW1pc3RpY0xpbmtTdGF0dXMiLCJwcmVmZXRjaGFibGUiLCJXZWFrTWFwIiwiTWFwIiwicHJlZmV0Y2hhYmxlQW5kVmlzaWJsZSIsIlNldCIsIm9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJoYW5kbGVJbnRlcnNlY3QiLCJyb290TWFyZ2luIiwib2JzZXJ2ZVZpc2liaWxpdHkiLCJlbGVtZW50IiwiaW5zdGFuY2UiLCJleGlzdGluZ0luc3RhbmNlIiwiZ2V0IiwidW5kZWZpbmVkIiwic2V0Iiwib2JzZXJ2ZSIsImNvZXJjZVByZWZldGNoYWJsZVVybCIsImhyZWYiLCJjcmVhdGVQcmVmZXRjaFVSTCIsInJlcG9ydEVycm9yRm4iLCJyZXBvcnRFcnJvciIsImNvbnNvbGUiLCJlcnJvciIsInJvdXRlciIsImZldGNoU3RyYXRlZ3kiLCJwcmVmZXRjaEVuYWJsZWQiLCJwcmVmZXRjaFVSTCIsImlzVmlzaWJsZSIsInByZWZldGNoVGFzayIsInByZWZldGNoSHJlZiIsImRlbGV0ZSIsImNhbmNlbFByZWZldGNoVGFzayIsInVub2JzZXJ2ZSIsImVudHJpZXMiLCJlbnRyeSIsImludGVyc2VjdGlvblJhdGlvIiwidGFyZ2V0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiYWRkIiwicmVzY2hlZHVsZUxpbmtQcmVmZXRjaCIsIlByZWZldGNoUHJpb3JpdHkiLCJEZWZhdWx0IiwidW5zdGFibGVfdXBncmFkZVRvRHluYW1pY1ByZWZldGNoIiwiX19ORVhUX0RZTkFNSUNfT05fSE9WRVIiLCJGZXRjaFN0cmF0ZWd5IiwiRnVsbCIsIkludGVudCIsInByaW9yaXR5IiwiZXhpc3RpbmdQcmVmZXRjaFRhc2siLCJfX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEUiLCJwcmVmZXRjaFdpdGhPbGRDYWNoZUltcGxlbWVudGF0aW9uIiwiYXBwUm91dGVyU3RhdGUiLCJnZXRDdXJyZW50QXBwUm91dGVyU3RhdGUiLCJ0cmVlQXRUaW1lT2ZQcmVmZXRjaCIsInRyZWUiLCJuZXh0VXJsIiwiY2FjaGVLZXkiLCJjcmVhdGVDYWNoZUtleSIsInNjaGVkdWxlU2VnbWVudFByZWZldGNoVGFzayIsInJlc2NoZWR1bGVQcmVmZXRjaFRhc2siLCJ0YXNrIiwiaXNQcmVmZXRjaFRhc2tEaXJ0eSIsIndpbmRvdyIsImRvUHJlZmV0Y2giLCJwcmVmZXRjaEtpbmQiLCJQUFIiLCJQcmVmZXRjaEtpbmQiLCJBVVRPIiwiRlVMTCIsIlBQUlJ1bnRpbWUiLCJJbnZhcmlhbnRFcnJvciIsInByZWZldGNoIiwia2luZCIsImNhdGNoIiwiZXJyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/links.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/match-segments.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/match-segments.js ***!
|
||
\********************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"matchSegment\", ({\n enumerable: true,\n get: function() {\n return matchSegment;\n }\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};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=match-segments.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21hdGNoLXNlZ21lbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBRWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLGVBQWUsQ0FDMUJDLGlCQUNBQztJQUVBLG9DQUFvQztJQUNwQyxJQUFJLE9BQU9ELG9CQUFvQixVQUFVO1FBQ3ZDLElBQUksT0FBT0MsWUFBWSxVQUFVO1lBQy9CLHdDQUF3QztZQUN4QyxPQUFPRCxvQkFBb0JDO1FBQzdCO1FBQ0EsT0FBTztJQUNUO0lBRUEsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsT0FBTztJQUNUO0lBQ0EsT0FBT0QsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUUsSUFBSUQsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUU7QUFDL0UiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy9tYXRjaC1zZWdtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuZXhwb3J0IGNvbnN0IG1hdGNoU2VnbWVudCA9IChcbiAgZXhpc3RpbmdTZWdtZW50OiBTZWdtZW50LFxuICBzZWdtZW50OiBTZWdtZW50XG4pOiBib29sZWFuID0+IHtcbiAgLy8gc2VnbWVudCBpcyBlaXRoZXIgQXJyYXkgb3Igc3RyaW5nXG4gIGlmICh0eXBlb2YgZXhpc3RpbmdTZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIENvbW1vbiBjYXNlOiBzZWdtZW50IGlzIGp1c3QgYSBzdHJpbmdcbiAgICAgIHJldHVybiBleGlzdGluZ1NlZ21lbnQgPT09IHNlZ21lbnRcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIGV4aXN0aW5nU2VnbWVudFswXSA9PT0gc2VnbWVudFswXSAmJiBleGlzdGluZ1NlZ21lbnRbMV0gPT09IHNlZ21lbnRbMV1cbn1cbiJdLCJuYW1lcyI6WyJtYXRjaFNlZ21lbnQiLCJleGlzdGluZ1NlZ21lbnQiLCJzZWdtZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/match-segments.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/metadata/async-metadata.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/metadata/async-metadata.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AsyncMetadataOutlet\", ({\n enumerable: true,\n get: function() {\n return AsyncMetadataOutlet;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nfunction MetadataOutlet(param) {\n let { promise } = param;\n const { error, digest } = (0, _react.use)(promise);\n if (error) {\n if (digest) {\n // The error will lose its original digest after passing from server layer to client layer;\n // We recover the digest property here to override the React created one if original digest exists.\n ;\n error.digest = digest;\n }\n throw error;\n }\n return null;\n}\nfunction AsyncMetadataOutlet(param) {\n let { promise } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n fallback: null,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataOutlet, {\n promise: promise\n })\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=async-metadata.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL2FzeW5jLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBc0JnQkE7OztlQUFBQTs7OzttQ0FwQmM7QUFHOUIsU0FBU0MsZUFBZSxLQUl2QjtJQUp1QixNQUN0QkMsT0FBTyxFQUdSLEdBSnVCO0lBS3RCLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsR0FBRyxFQUFDSDtJQUM5QixJQUFJQyxPQUFPO1FBQ1QsSUFBSUMsUUFBUTtZQUNWLDJGQUEyRjtZQUMzRixtR0FBbUc7O1lBQ2pHRCxNQUFjQyxNQUFNLEdBQUdBO1FBQzNCO1FBQ0EsTUFBTUQ7SUFDUjtJQUNBLE9BQU87QUFDVDtBQUVPLFNBQVNILG9CQUFvQixLQUluQztJQUptQyxNQUNsQ0UsT0FBTyxFQUdSLEdBSm1DO0lBS2xDLHFCQUNFLHFCQUFDSSxPQUFBQSxRQUFRO1FBQUNDLFVBQVU7a0JBQ2xCLG1DQUFDTixnQkFBQUE7WUFBZUMsU0FBU0E7OztBQUcvQiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9tZXRhZGF0YS9hc3luYy1tZXRhZGF0YS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IFN1c3BlbnNlLCB1c2UgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgU3RyZWFtaW5nTWV0YWRhdGFSZXNvbHZlZFN0YXRlIH0gZnJvbSAnLi90eXBlcydcblxuZnVuY3Rpb24gTWV0YWRhdGFPdXRsZXQoe1xuICBwcm9taXNlLFxufToge1xuICBwcm9taXNlOiBQcm9taXNlPFN0cmVhbWluZ01ldGFkYXRhUmVzb2x2ZWRTdGF0ZT5cbn0pIHtcbiAgY29uc3QgeyBlcnJvciwgZGlnZXN0IH0gPSB1c2UocHJvbWlzZSlcbiAgaWYgKGVycm9yKSB7XG4gICAgaWYgKGRpZ2VzdCkge1xuICAgICAgLy8gVGhlIGVycm9yIHdpbGwgbG9zZSBpdHMgb3JpZ2luYWwgZGlnZXN0IGFmdGVyIHBhc3NpbmcgZnJvbSBzZXJ2ZXIgbGF5ZXIgdG8gY2xpZW50IGxheWVy77ybXG4gICAgICAvLyBXZSByZWNvdmVyIHRoZSBkaWdlc3QgcHJvcGVydHkgaGVyZSB0byBvdmVycmlkZSB0aGUgUmVhY3QgY3JlYXRlZCBvbmUgaWYgb3JpZ2luYWwgZGlnZXN0IGV4aXN0cy5cbiAgICAgIDsoZXJyb3IgYXMgYW55KS5kaWdlc3QgPSBkaWdlc3RcbiAgICB9XG4gICAgdGhyb3cgZXJyb3JcbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQXN5bmNNZXRhZGF0YU91dGxldCh7XG4gIHByb21pc2UsXG59OiB7XG4gIHByb21pc2U6IFByb21pc2U8U3RyZWFtaW5nTWV0YWRhdGFSZXNvbHZlZFN0YXRlPlxufSkge1xuICByZXR1cm4gKFxuICAgIDxTdXNwZW5zZSBmYWxsYmFjaz17bnVsbH0+XG4gICAgICA8TWV0YWRhdGFPdXRsZXQgcHJvbWlzZT17cHJvbWlzZX0gLz5cbiAgICA8L1N1c3BlbnNlPlxuICApXG59XG4iXSwibmFtZXMiOlsiQXN5bmNNZXRhZGF0YU91dGxldCIsIk1ldGFkYXRhT3V0bGV0IiwicHJvbWlzZSIsImVycm9yIiwiZGlnZXN0IiwidXNlIiwiU3VzcGVuc2UiLCJmYWxsYmFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/metadata/async-metadata.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/nav-failure-handler.js ***!
|
||
\*************************************************************************/
|
||
/***/ ((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 handleHardNavError: function() {\n return handleHardNavError;\n },\n useNavFailureHandler: function() {\n return useNavFailureHandler;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _createhreffromurl = __webpack_require__(/*! ./router-reducer/create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nfunction handleHardNavError(error) {\n if (error && \"undefined\" !== 'undefined' && 0 && 0) {}\n return false;\n}\nfunction useNavFailureHandler() {\n if (false) {}\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=nav-failure-handler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdi1mYWlsdXJlLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2dCQSxrQkFBa0I7ZUFBbEJBOztJQWtCQUMsb0JBQW9CO2VBQXBCQTs7O21DQXJCVTsrQ0FDUTtBQUUzQixTQUFTRCxtQkFBbUJFLEtBQWM7SUFDL0MsSUFDRUEsU0FDQSxPQUFPQyxTQUFXLGVBQ2xCQSxDQUF3QixJQUN4QkcsQ0FDNkMsRUFDN0MsRUFPRDtJQUNELE9BQU87QUFDVDtBQUVPLFNBQVNMO0lBQ2QsSUFBSVcsS0FBd0MsRUFBRSxFQXVCN0M7QUFDSCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL25hdi1mYWlsdXJlLWhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvY3JlYXRlLWhyZWYtZnJvbS11cmwnXG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVIYXJkTmF2RXJyb3IoZXJyb3I6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIGVycm9yICYmXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwgJiZcbiAgICBjcmVhdGVIcmVmRnJvbVVybChuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSkgIT09XG4gICAgICBjcmVhdGVIcmVmRnJvbVVybCh3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwpXG4gICkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgRXJyb3Igb2NjdXJyZWQgZHVyaW5nIG5hdmlnYXRpb24sIGZhbGxpbmcgYmFjayB0byBoYXJkIG5hdmlnYXRpb25gLFxuICAgICAgZXJyb3JcbiAgICApXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwudG9TdHJpbmcoKVxuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VOYXZGYWlsdXJlSGFuZGxlcigpIHtcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9BUFBfTkFWX0ZBSUxfSEFORExJTkcpIHtcbiAgICAvLyB0aGlzIGlmIGlzIG9ubHkgZm9yIERDRSBvZiB0aGUgZmVhdHVyZSBmbGFnIG5vdCBjb25kaXRpb25hbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIgPSAoXG4gICAgICAgIGV2dDogRXJyb3JFdmVudCB8IFByb21pc2VSZWplY3Rpb25FdmVudFxuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gJ3JlYXNvbicgaW4gZXZ0ID8gZXZ0LnJlYXNvbiA6IGV2dC5lcnJvclxuICAgICAgICAvLyBpZiB3ZSBoYXZlIGFuIHVuaGFuZGxlZCBleGNlcHRpb24vcmVqZWN0aW9uIGR1cmluZ1xuICAgICAgICAvLyBhIG5hdmlnYXRpb24gd2UgZmFsbCBiYWNrIHRvIGEgaGFyZCBuYXZpZ2F0aW9uIHRvXG4gICAgICAgIC8vIGF0dGVtcHQgcmVjb3ZlcmluZyB0byBhIGdvb2Qgc3RhdGVcbiAgICAgICAgaGFuZGxlSGFyZE5hdkVycm9yKGVycm9yKVxuICAgICAgfVxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3VuaGFuZGxlZHJlamVjdGlvbicsIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcilcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcilcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcilcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgJ3VuaGFuZGxlZHJlamVjdGlvbicsXG4gICAgICAgICAgdW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9LCBbXSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZUhhcmROYXZFcnJvciIsInVzZU5hdkZhaWx1cmVIYW5kbGVyIiwiZXJyb3IiLCJ3aW5kb3ciLCJuZXh0IiwiX19wZW5kaW5nVXJsIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJVUkwiLCJsb2NhdGlvbiIsImhyZWYiLCJjb25zb2xlIiwidG9TdHJpbmciLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0FQUF9OQVZfRkFJTF9IQU5ETElORyIsInVzZUVmZmVjdCIsInVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlciIsImV2dCIsInJlYXNvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/navigation-untracked.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useUntrackedPathname\", ({\n enumerable: true,\n get: function() {\n return useUntrackedPathname;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\");\n/**\n * This checks to see if the current render has any unknown route parameters.\n * It's used to trigger a different render path in the error boundary.\n *\n * @returns true if there are any unknown route parameters, false otherwise\n */ function hasFallbackRouteParams() {\n if (true) {\n // AsyncLocalStorage should not be included in the client bundle.\n const { workUnitAsyncStorage } = __webpack_require__(/*! ../../server/app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (!workUnitStore) return false;\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n const fallbackParams = workUnitStore.fallbackRouteParams;\n return fallbackParams ? fallbackParams.size > 0 : false;\n case 'prerender-legacy':\n case 'request':\n case 'prerender-runtime':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n return false;\n }\n return false;\n}\nfunction useUntrackedPathname() {\n // If there are any unknown route parameters we would typically throw\n // an error, but this internal method allows us to return a null value instead\n // for components that do not propagate the pathname to the static shell (like\n // the error boundary).\n if (hasFallbackRouteParams()) {\n return null;\n }\n // This shouldn't cause any issues related to conditional rendering because\n // the environment will be consistent for the render.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (0, _react.useContext)(_hooksclientcontextsharedruntime.PathnameContext);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigation-untracked.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24tdW50cmFja2VkLmpzIiwibWFwcGluZ3MiOiI7Ozs7d0RBb0RnQkE7OztlQUFBQTs7O21DQXBEVzs2REFDSztBQUVoQzs7Ozs7Q0FLQyxHQUNELFNBQVNDO0lBQ1AsSUFBSSxJQUE2QixFQUFFO1FBQ2pDLGlFQUFpRTtRQUNqRSxNQUFNLEVBQUVFLG9CQUFvQixFQUFFLEdBQzVCQyxtQkFBT0EsQ0FBQyxvR0FBMEQ7UUFFcEUsTUFBTUMsZ0JBQWdCRixxQkFBcUJHLFFBQVE7UUFDbkQsSUFBSSxDQUFDRCxlQUFlLE9BQU87UUFFM0IsT0FBUUEsY0FBY0UsSUFBSTtZQUN4QixLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7Z0JBQ0gsTUFBTUMsaUJBQWlCSCxjQUFjSSxtQkFBbUI7Z0JBQ3hELE9BQU9ELGlCQUFpQkEsZUFBZUUsSUFBSSxHQUFHLElBQUk7WUFDcEQsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO2dCQUNIO1lBQ0Y7Z0JBQ0VMO1FBQ0o7UUFFQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFhTyxTQUFTTDtJQUNkLHFFQUFxRTtJQUNyRSw4RUFBOEU7SUFDOUUsOEVBQThFO0lBQzlFLHVCQUF1QjtJQUN2QixJQUFJQywwQkFBMEI7UUFDNUIsT0FBTztJQUNUO0lBRUEsMkVBQTJFO0lBQzNFLHFEQUFxRDtJQUNyRCxzREFBc0Q7SUFDdEQsT0FBT1UsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsaUNBQUFBLGVBQWU7QUFDbkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy9uYXZpZ2F0aW9uLXVudHJhY2tlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBQYXRobmFtZUNvbnRleHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuXG4vKipcbiAqIFRoaXMgY2hlY2tzIHRvIHNlZSBpZiB0aGUgY3VycmVudCByZW5kZXIgaGFzIGFueSB1bmtub3duIHJvdXRlIHBhcmFtZXRlcnMuXG4gKiBJdCdzIHVzZWQgdG8gdHJpZ2dlciBhIGRpZmZlcmVudCByZW5kZXIgcGF0aCBpbiB0aGUgZXJyb3IgYm91bmRhcnkuXG4gKlxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgYW55IHVua25vd24gcm91dGUgcGFyYW1ldGVycywgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmZ1bmN0aW9uIGhhc0ZhbGxiYWNrUm91dGVQYXJhbXMoKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEFzeW5jTG9jYWxTdG9yYWdlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGNsaWVudCBidW5kbGUuXG4gICAgY29uc3QgeyB3b3JrVW5pdEFzeW5jU3RvcmFnZSB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnKVxuXG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IHdvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKClcbiAgICBpZiAoIXdvcmtVbml0U3RvcmUpIHJldHVybiBmYWxzZVxuXG4gICAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtVbml0U3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtc1xuICAgICAgICByZXR1cm4gZmFsbGJhY2tQYXJhbXMgPyBmYWxsYmFja1BhcmFtcy5zaXplID4gMCA6IGZhbHNlXG4gICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKlxuICogVGhpcyByZXR1cm5zIGEgYG51bGxgIHZhbHVlIGlmIHRoZXJlIGFyZSBhbnkgdW5rbm93biByb3V0ZSBwYXJhbWV0ZXJzLCBhbmRcbiAqIG90aGVyd2lzZSByZXR1cm5zIHRoZSBwYXRobmFtZSBmcm9tIHRoZSBjb250ZXh0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvXG4gKiBgdXNlUGF0aG5hbWVgIHRoYXQgaXMgdXNlZCBpbiB0aGUgZXJyb3IgYm91bmRhcnkgdG8gYXZvaWQgcmVuZGVyaW5nIHRoZVxuICogZXJyb3IgYm91bmRhcnkgd2hlbiB0aGVyZSBhcmUgdW5rbm93biByb3V0ZSBwYXJhbWV0ZXJzLiBUaGlzIGRvZXNuJ3QgdGhyb3dcbiAqIHdoZW4gYWNjZXNzZWQgd2l0aCB1bmtub3duIHJvdXRlIHBhcmFtZXRlcnMuXG4gKlxuICogQHJldHVybnNcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVudHJhY2tlZFBhdGhuYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAvLyBJZiB0aGVyZSBhcmUgYW55IHVua25vd24gcm91dGUgcGFyYW1ldGVycyB3ZSB3b3VsZCB0eXBpY2FsbHkgdGhyb3dcbiAgLy8gYW4gZXJyb3IsIGJ1dCB0aGlzIGludGVybmFsIG1ldGhvZCBhbGxvd3MgdXMgdG8gcmV0dXJuIGEgbnVsbCB2YWx1ZSBpbnN0ZWFkXG4gIC8vIGZvciBjb21wb25lbnRzIHRoYXQgZG8gbm90IHByb3BhZ2F0ZSB0aGUgcGF0aG5hbWUgdG8gdGhlIHN0YXRpYyBzaGVsbCAobGlrZVxuICAvLyB0aGUgZXJyb3IgYm91bmRhcnkpLlxuICBpZiAoaGFzRmFsbGJhY2tSb3V0ZVBhcmFtcygpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBpc3N1ZXMgcmVsYXRlZCB0byBjb25kaXRpb25hbCByZW5kZXJpbmcgYmVjYXVzZVxuICAvLyB0aGUgZW52aXJvbm1lbnQgd2lsbCBiZSBjb25zaXN0ZW50IGZvciB0aGUgcmVuZGVyLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgcmV0dXJuIHVzZUNvbnRleHQoUGF0aG5hbWVDb250ZXh0KVxufVxuIl0sIm5hbWVzIjpbInVzZVVudHJhY2tlZFBhdGhuYW1lIiwiaGFzRmFsbGJhY2tSb3V0ZVBhcmFtcyIsIndpbmRvdyIsIndvcmtVbml0QXN5bmNTdG9yYWdlIiwicmVxdWlyZSIsIndvcmtVbml0U3RvcmUiLCJnZXRTdG9yZSIsInR5cGUiLCJmYWxsYmFja1BhcmFtcyIsImZhbGxiYWNrUm91dGVQYXJhbXMiLCJzaXplIiwidXNlQ29udGV4dCIsIlBhdGhuYW1lQ29udGV4dCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/navigation.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/navigation.js ***!
|
||
\****************************************************************/
|
||
/***/ ((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 ReadonlyURLSearchParams: function() {\n return _navigationreactserver.ReadonlyURLSearchParams;\n },\n RedirectType: function() {\n return _navigationreactserver.RedirectType;\n },\n ServerInsertedHTMLContext: function() {\n return _serverinsertedhtmlsharedruntime.ServerInsertedHTMLContext;\n },\n forbidden: function() {\n return _navigationreactserver.forbidden;\n },\n notFound: function() {\n return _navigationreactserver.notFound;\n },\n permanentRedirect: function() {\n return _navigationreactserver.permanentRedirect;\n },\n redirect: function() {\n return _navigationreactserver.redirect;\n },\n unauthorized: function() {\n return _navigationreactserver.unauthorized;\n },\n unstable_isUnrecognizedActionError: function() {\n return _unrecognizedactionerror.unstable_isUnrecognizedActionError;\n },\n unstable_rethrow: function() {\n return _navigationreactserver.unstable_rethrow;\n },\n useParams: function() {\n return useParams;\n },\n usePathname: function() {\n return usePathname;\n },\n useRouter: function() {\n return useRouter;\n },\n useSearchParams: function() {\n return useSearchParams;\n },\n useSelectedLayoutSegment: function() {\n return useSelectedLayoutSegment;\n },\n useSelectedLayoutSegments: function() {\n return useSelectedLayoutSegments;\n },\n useServerInsertedHTML: function() {\n return _serverinsertedhtmlsharedruntime.useServerInsertedHTML;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\");\nconst _getsegmentvalue = __webpack_require__(/*! ./router-reducer/reducers/get-segment-value */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js\");\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _navigationreactserver = __webpack_require__(/*! ./navigation.react-server */ \"(ssr)/./node_modules/next/dist/client/components/navigation.react-server.js\");\nconst _serverinsertedhtmlsharedruntime = __webpack_require__(/*! ../../shared/lib/server-inserted-html.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js\");\nconst _unrecognizedactionerror = __webpack_require__(/*! ./unrecognized-action-error */ \"(ssr)/./node_modules/next/dist/client/components/unrecognized-action-error.js\");\nconst useDynamicRouteParams = true ? (__webpack_require__(/*! ../../server/app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\").useDynamicRouteParams) : 0;\nfunction useSearchParams() {\n const searchParams = (0, _react.useContext)(_hooksclientcontextsharedruntime.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.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 _navigationreactserver.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/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}\nfunction usePathname() {\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('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.useContext)(_hooksclientcontextsharedruntime.PathnameContext);\n}\nfunction useRouter() {\n const router = (0, _react.useContext)(_approutercontextsharedruntime.AppRouterContext);\n if (router === null) {\n throw Object.defineProperty(new Error('invariant expected app router to be mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E238\",\n enumerable: false,\n configurable: true\n });\n }\n return router;\n}\nfunction useParams() {\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('useParams()');\n return (0, _react.useContext)(_hooksclientcontextsharedruntime.PathParamsContext);\n}\n/** Get the canonical parameters from the current level to the leaf node. */ // Client components API\nfunction 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 let segmentValue = (0, _getsegmentvalue.getSegmentValue)(segment);\n if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n return segmentPath;\n }\n segmentPath.push(segmentValue);\n return getSelectedLayoutSegmentPath(node, parallelRouteKey, false, segmentPath);\n}\nfunction useSelectedLayoutSegments(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = 'children';\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('useSelectedLayoutSegments()');\n const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);\n // @ts-expect-error This only happens in `pages`. Type is overwritten in navigation.d.ts\n if (!context) return null;\n return getSelectedLayoutSegmentPath(context.parentTree, parallelRouteKey);\n}\nfunction useSelectedLayoutSegment(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = 'children';\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('useSelectedLayoutSegment()');\n const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey);\n if (!selectedLayoutSegments || selectedLayoutSegments.length === 0) {\n return null;\n }\n const selectedLayoutSegment = parallelRouteKey === 'children' ? selectedLayoutSegments[0] : selectedLayoutSegments[selectedLayoutSegments.length - 1];\n // if the default slot is showing, we return null since it's not technically \"selected\" (it's a fallback)\n // and returning an internal value like `__DEFAULT__` would be confusing.\n return selectedLayoutSegment === _segment.DEFAULT_SEGMENT_KEY ? null : selectedLayoutSegment;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigation.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBNFJFQSx1QkFBdUI7ZUFBdkJBLHVCQUFBQSx1QkFBdUI7O0lBRHZCQyxZQUFZO2VBQVpBLHVCQUFBQSxZQUFZOztJQXRMWkMseUJBQXlCO2VBQXpCQSxpQ0FBQUEseUJBQXlCOztJQWtMekJDLFNBQVM7ZUFBVEEsdUJBQUFBLFNBQVM7O0lBRFRDLFFBQVE7ZUFBUkEsdUJBQUFBLFFBQVE7O0lBSVJDLGlCQUFpQjtlQUFqQkEsdUJBQUFBLGlCQUFpQjs7SUFEakJDLFFBQVE7ZUFBUkEsdUJBQUFBLFFBQVE7O0lBRFJDLFlBQVk7ZUFBWkEsdUJBQUFBLFlBQVk7O0lBTkxDLGtDQUFrQztlQUFsQ0EseUJBQUFBLGtDQUFrQzs7SUFXekNDLGdCQUFnQjtlQUFoQkEsdUJBQUFBLGdCQUFnQjs7SUF0SUZDLFNBQVM7ZUFBVEE7O0lBNURBQyxXQUFXO2VBQVhBOztJQWlDQUMsU0FBUztlQUFUQTs7SUE5RUFDLGVBQWU7ZUFBZkE7O0lBNk1BQyx3QkFBd0I7ZUFBeEJBOztJQS9CQUMseUJBQXlCO2VBQXpCQTs7SUF0SGRDLHFCQUFxQjtlQUFyQkEsaUNBQUFBLHFCQUFxQjs7O21DQW5HYTsyREFLN0I7NkRBS0E7NkNBQ3lCO3FDQUNzQjttREFDZDs2REF1RmpDO3FEQTJLNEM7QUFoUW5ELE1BQU1DLHdCQUNKLEtBQTZCLEdBRXZCRSxxS0FDcUIsR0FDdkJDLENBQVNBO0FBdUJSLFNBQVNQO0lBQ2QsTUFBTVEsZUFBZUMsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsaUNBQUFBLG1CQUFtQjtJQUVuRCw4REFBOEQ7SUFDOUQsMEVBQTBFO0lBQzFFLGtCQUFrQjtJQUNsQixNQUFNQyx1QkFBdUJDLENBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLEVBQVE7UUFDbkMsSUFBSSxDQUFDSixjQUFjO1lBQ2pCLHlFQUF5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QUFxQixhQUNqQmlCLHNCQUFzQixDQUFDLEVBQUUsR0FDekJBLHNCQUFzQixDQUFDQSx1QkFBdUJDLE1BQU0sR0FBRyxFQUFFO0lBRS9ELHlHQUF5RztJQUN6Ryx5RUFBeUU7SUFDekUsT0FBT0MsMEJBQTBCQyxTQUFBQSxtQkFBbUIsR0FDaEQsT0FDQUQ7QUFDTiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5cbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIEFwcFJvdXRlckNvbnRleHQsXG4gIExheW91dFJvdXRlckNvbnRleHQsXG4gIHR5cGUgQXBwUm91dGVySW5zdGFuY2UsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHtcbiAgU2VhcmNoUGFyYW1zQ29udGV4dCxcbiAgUGF0aG5hbWVDb250ZXh0LFxuICBQYXRoUGFyYW1zQ29udGV4dCxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9ob29rcy1jbGllbnQtY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGdldFNlZ21lbnRWYWx1ZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWUnXG5pbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZLCBERUZBVUxUX1NFR01FTlRfS0VZIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50J1xuaW1wb3J0IHsgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMgfSBmcm9tICcuL25hdmlnYXRpb24ucmVhY3Qtc2VydmVyJ1xuXG5jb25zdCB1c2VEeW5hbWljUm91dGVQYXJhbXMgPVxuICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJ1xuICAgID8gKFxuICAgICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZycpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nJylcbiAgICAgICkudXNlRHluYW1pY1JvdXRlUGFyYW1zXG4gICAgOiB1bmRlZmluZWRcblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgKnJlYWQqIHRoZSBjdXJyZW50IFVSTCdzIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICpcbiAqIExlYXJuIG1vcmUgYWJvdXQgW2BVUkxTZWFyY2hQYXJhbXNgIG9uIE1ETl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1VSTFNlYXJjaFBhcmFtcylcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG4gKlxuICogZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFnZSgpIHtcbiAqICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gdXNlU2VhcmNoUGFyYW1zKClcbiAqICAgc2VhcmNoUGFyYW1zLmdldCgnZm9vJykgLy8gcmV0dXJucyAnYmFyJyB3aGVuID9mb289YmFyXG4gKiAgIC8vIC4uLlxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlU2VhcmNoUGFyYW1zYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zKVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWFyY2hQYXJhbXMoKTogUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSB1c2VDb250ZXh0KFNlYXJjaFBhcmFtc0NvbnRleHQpXG5cbiAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhpcyBpcyBgbnVsbGAsIHRoZSBjb21wYXQgdHlwZXMgYWRkZWQgaW5cbiAgLy8gYG5leHQtZW52LmQudHNgIHdpbGwgYWRkIGEgbmV3IG92ZXJsb2FkIHRoYXQgY2hhbmdlcyB0aGUgcmV0dXJuIHR5cGUgdG9cbiAgLy8gaW5jbHVkZSBgbnVsbGAuXG4gIGNvbnN0IHJlYWRvbmx5U2VhcmNoUGFyYW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFzZWFyY2hQYXJhbXMpIHtcbiAgICAgIC8vIFdoZW4gdGhlIHJvdXRlciBpcyBub3QgcmVhZHkgaW4gcGFnZXMsIHdlIHdvbid0IGhhdmUgdGhlIHNlYXJjaCBwYXJhbXNcbiAgICAgIC8vIGF2YWlsYWJsZS5cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtcyhzZWFyY2hQYXJhbXMpXG4gIH0sIFtzZWFyY2hQYXJhbXNdKSBhcyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc1xuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEFzeW5jTG9jYWxTdG9yYWdlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGNsaWVudCBidW5kbGUuXG4gICAgY29uc3QgeyBiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmcgfSA9XG4gICAgICByZXF1aXJlKCcuL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZycpIGFzIHR5cGVvZiBpbXBvcnQoJy4vYmFpbG91dC10by1jbGllbnQtcmVuZGVyaW5nJylcbiAgICAvLyBUT0RPLUFQUDogaGFuZGxlIGR5bmFtaWMgPSAnZm9yY2Utc3RhdGljJyBoZXJlIGFuZCBvbiB0aGUgY2xpZW50XG4gICAgYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nKCd1c2VTZWFyY2hQYXJhbXMoKScpXG4gIH1cblxuICByZXR1cm4gcmVhZG9ubHlTZWFyY2hQYXJhbXNcbn1cblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgcmVhZCB0aGUgY3VycmVudCBVUkwncyBwYXRobmFtZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VQYXRobmFtZSB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQYWdlKCkge1xuICogIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKSAvLyByZXR1cm5zIFwiL2Rhc2hib2FyZFwiIG9uIC9kYXNoYm9hcmQ/Zm9vPWJhclxuICogIC8vIC4uLlxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlUGF0aG5hbWVgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXBhdGhuYW1lKVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VQYXRobmFtZSgpOiBzdHJpbmcge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlUGF0aG5hbWUoKScpXG5cbiAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhpcyBpcyBgbnVsbGAsIHRoZSBjb21wYXQgdHlwZXMgYWRkZWQgaW4gYG5leHQtZW52LmQudHNgXG4gIC8vIHdpbGwgYWRkIGEgbmV3IG92ZXJsb2FkIHRoYXQgY2hhbmdlcyB0aGUgcmV0dXJuIHR5cGUgdG8gaW5jbHVkZSBgbnVsbGAuXG4gIHJldHVybiB1c2VDb250ZXh0KFBhdGhuYW1lQ29udGV4dCkgYXMgc3RyaW5nXG59XG5cbi8vIENsaWVudCBjb21wb25lbnRzIEFQSVxuZXhwb3J0IHtcbiAgU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dCxcbiAgdXNlU2VydmVySW5zZXJ0ZWRIVE1MLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3NlcnZlci1pbnNlcnRlZC1odG1sLnNoYXJlZC1ydW50aW1lJ1xuXG4vKipcbiAqXG4gKiBUaGlzIGhvb2sgYWxsb3dzIHlvdSB0byBwcm9ncmFtbWF0aWNhbGx5IGNoYW5nZSByb3V0ZXMgaW5zaWRlIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogXCJ1c2UgY2xpZW50XCJcbiAqIGltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQYWdlKCkge1xuICogIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpXG4gKiAgLy8gLi4uXG4gKiAgcm91dGVyLnB1c2goJy9kYXNoYm9hcmQnKSAvLyBOYXZpZ2F0ZSB0byAvZGFzaGJvYXJkXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VSb3V0ZXJgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXJvdXRlcilcbiAqL1xuLy8gQ2xpZW50IGNvbXBvbmVudHMgQVBJXG5leHBvcnQgZnVuY3Rpb24gdXNlUm91dGVyKCk6IEFwcFJvdXRlckluc3RhbmNlIHtcbiAgY29uc3Qgcm91dGVyID0gdXNlQ29udGV4dChBcHBSb3V0ZXJDb250ZXh0KVxuICBpZiAocm91dGVyID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgZXhwZWN0ZWQgYXBwIHJvdXRlciB0byBiZSBtb3VudGVkJylcbiAgfVxuXG4gIHJldHVybiByb3V0ZXJcbn1cblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgcmVhZCBhIHJvdXRlJ3MgZHluYW1pYyBwYXJhbXMgZmlsbGVkIGluIGJ5IHRoZSBjdXJyZW50IFVSTC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG4gKlxuICogZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFnZSgpIHtcbiAqICAgLy8gb24gL2Rhc2hib2FyZC9bdGVhbV0gd2hlcmUgcGF0aG5hbWUgaXMgL2Rhc2hib2FyZC9uZXh0anNcbiAqICAgY29uc3QgeyB0ZWFtIH0gPSB1c2VQYXJhbXMoKSAvLyB0ZWFtID09PSBcIm5leHRqc1wiXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VQYXJhbXNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXBhcmFtcylcbiAqL1xuLy8gQ2xpZW50IGNvbXBvbmVudHMgQVBJXG5leHBvcnQgZnVuY3Rpb24gdXNlUGFyYW1zPFQgZXh0ZW5kcyBQYXJhbXMgPSBQYXJhbXM+KCk6IFQge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlUGFyYW1zKCknKVxuXG4gIHJldHVybiB1c2VDb250ZXh0KFBhdGhQYXJhbXNDb250ZXh0KSBhcyBUXG59XG5cbi8qKiBHZXQgdGhlIGNhbm9uaWNhbCBwYXJhbWV0ZXJzIGZyb20gdGhlIGN1cnJlbnQgbGV2ZWwgdG8gdGhlIGxlYWYgbm9kZS4gKi9cbi8vIENsaWVudCBjb21wb25lbnRzIEFQSVxuZnVuY3Rpb24gZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aChcbiAgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyxcbiAgZmlyc3QgPSB0cnVlLFxuICBzZWdtZW50UGF0aDogc3RyaW5nW10gPSBbXVxuKTogc3RyaW5nW10ge1xuICBsZXQgbm9kZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgaWYgKGZpcnN0KSB7XG4gICAgLy8gVXNlIHRoZSBwcm92aWRlZCBwYXJhbGxlbCByb3V0ZSBrZXkgb24gdGhlIGZpcnN0IHBhcmFsbGVsIHJvdXRlXG4gICAgbm9kZSA9IHRyZWVbMV1bcGFyYWxsZWxSb3V0ZUtleV1cbiAgfSBlbHNlIHtcbiAgICAvLyBBZnRlciBmaXJzdCBwYXJhbGxlbCByb3V0ZSBwcmVmZXIgY2hpbGRyZW4sIGlmIHRoZXJlJ3Mgbm8gY2hpbGRyZW4gcGljayB0aGUgZmlyc3QgcGFyYWxsZWwgcm91dGUuXG4gICAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSB0cmVlWzFdXG4gICAgbm9kZSA9IHBhcmFsbGVsUm91dGVzLmNoaWxkcmVuID8/IE9iamVjdC52YWx1ZXMocGFyYWxsZWxSb3V0ZXMpWzBdXG4gIH1cblxuICBpZiAoIW5vZGUpIHJldHVybiBzZWdtZW50UGF0aFxuICBjb25zdCBzZWdtZW50ID0gbm9kZVswXVxuXG4gIGxldCBzZWdtZW50VmFsdWUgPSBnZXRTZWdtZW50VmFsdWUoc2VnbWVudClcblxuICBpZiAoIXNlZ21lbnRWYWx1ZSB8fCBzZWdtZW50VmFsdWUuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgIHJldHVybiBzZWdtZW50UGF0aFxuICB9XG5cbiAgc2VnbWVudFBhdGgucHVzaChzZWdtZW50VmFsdWUpXG5cbiAgcmV0dXJuIGdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgoXG4gICAgbm9kZSxcbiAgICBwYXJhbGxlbFJvdXRlS2V5LFxuICAgIGZhbHNlLFxuICAgIHNlZ21lbnRQYXRoXG4gIClcbn1cblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgcmVhZCB0aGUgYWN0aXZlIHJvdXRlIHNlZ21lbnRzICoqYmVsb3cqKiB0aGUgTGF5b3V0IGl0IGlzIGNhbGxlZCBmcm9tLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogJ3VzZSBjbGllbnQnXG4gKlxuICogaW1wb3J0IHsgdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cyB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBFeGFtcGxlQ2xpZW50Q29tcG9uZW50KCkge1xuICogICBjb25zdCBzZWdtZW50cyA9IHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMoKVxuICpcbiAqICAgcmV0dXJuIChcbiAqICAgICA8dWw+XG4gKiAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpbmRleCkgPT4gKFxuICogICAgICAgICA8bGkga2V5PXtpbmRleH0+e3NlZ21lbnR9PC9saT5cbiAqICAgICAgICkpfVxuICogICAgIDwvdWw+XG4gKiAgIClcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlbGVjdGVkLWxheW91dC1zZWdtZW50cylcbiAqL1xuLy8gQ2xpZW50IGNvbXBvbmVudHMgQVBJXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cyhcbiAgcGFyYWxsZWxSb3V0ZUtleTogc3RyaW5nID0gJ2NoaWxkcmVuJ1xuKTogc3RyaW5nW10ge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cygpJylcblxuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChMYXlvdXRSb3V0ZXJDb250ZXh0KVxuICAvLyBAdHMtZXhwZWN0LWVycm9yIFRoaXMgb25seSBoYXBwZW5zIGluIGBwYWdlc2AuIFR5cGUgaXMgb3ZlcndyaXR0ZW4gaW4gbmF2aWdhdGlvbi5kLnRzXG4gIGlmICghY29udGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aChjb250ZXh0LnBhcmVudFRyZWUsIHBhcmFsbGVsUm91dGVLZXkpXG59XG5cbi8qKlxuICogQSBbQ2xpZW50IENvbXBvbmVudF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL2NsaWVudC1jb21wb25lbnRzKSBob29rXG4gKiB0aGF0IGxldHMgeW91IHJlYWQgdGhlIGFjdGl2ZSByb3V0ZSBzZWdtZW50ICoqb25lIGxldmVsIGJlbG93KiogdGhlIExheW91dCBpdCBpcyBjYWxsZWQgZnJvbS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqICd1c2UgY2xpZW50J1xuICogaW1wb3J0IHsgdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50IH0gZnJvbSAnbmV4dC9uYXZpZ2F0aW9uJ1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEV4YW1wbGVDbGllbnRDb21wb25lbnQoKSB7XG4gKiAgIGNvbnN0IHNlZ21lbnQgPSB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQoKVxuICpcbiAqICAgcmV0dXJuIDxwPkFjdGl2ZSBzZWdtZW50OiB7c2VnbWVudH08L3A+XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlbGVjdGVkLWxheW91dC1zZWdtZW50KVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQoXG4gIHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyA9ICdjaGlsZHJlbidcbik6IHN0cmluZyB8IG51bGwge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50KCknKVxuXG4gIGNvbnN0IHNlbGVjdGVkTGF5b3V0U2VnbWVudHMgPSB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzKHBhcmFsbGVsUm91dGVLZXkpXG5cbiAgaWYgKCFzZWxlY3RlZExheW91dFNlZ21lbnRzIHx8IHNlbGVjdGVkTGF5b3V0U2VnbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGVkTGF5b3V0U2VnbWVudCA9XG4gICAgcGFyYWxsZWxSb3V0ZUtleSA9PT0gJ2NoaWxkcmVuJ1xuICAgICAgPyBzZWxlY3RlZExheW91dFNlZ21lbnRzWzBdXG4gICAgICA6IHNlbGVjdGVkTGF5b3V0U2VnbWVudHNbc2VsZWN0ZWRMYXlvdXRTZWdtZW50cy5sZW5ndGggLSAxXVxuXG4gIC8vIGlmIHRoZSBkZWZhdWx0IHNsb3QgaXMgc2hvd2luZywgd2UgcmV0dXJuIG51bGwgc2luY2UgaXQncyBub3QgdGVjaG5pY2FsbHkgXCJzZWxlY3RlZFwiIChpdCdzIGEgZmFsbGJhY2spXG4gIC8vIGFuZCByZXR1cm5pbmcgYW4gaW50ZXJuYWwgdmFsdWUgbGlrZSBgX19ERUZBVUxUX19gIHdvdWxkIGJlIGNvbmZ1c2luZy5cbiAgcmV0dXJuIHNlbGVjdGVkTGF5b3V0U2VnbWVudCA9PT0gREVGQVVMVF9TRUdNRU5UX0tFWVxuICAgID8gbnVsbFxuICAgIDogc2VsZWN0ZWRMYXlvdXRTZWdtZW50XG59XG5cbmV4cG9ydCB7IHVuc3RhYmxlX2lzVW5yZWNvZ25pemVkQWN0aW9uRXJyb3IgfSBmcm9tICcuL3VucmVjb2duaXplZC1hY3Rpb24tZXJyb3InXG5cbi8vIFNoYXJlZCBjb21wb25lbnRzIEFQSXNcbmV4cG9ydCB7XG4gIG5vdEZvdW5kLFxuICBmb3JiaWRkZW4sXG4gIHVuYXV0aG9yaXplZCxcbiAgcmVkaXJlY3QsXG4gIHBlcm1hbmVudFJlZGlyZWN0LFxuICBSZWRpcmVjdFR5cGUsXG4gIFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zLFxuICB1bnN0YWJsZV9yZXRocm93LFxufSBmcm9tICcuL25hdmlnYXRpb24ucmVhY3Qtc2VydmVyJ1xuIl0sIm5hbWVzIjpbIlJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zIiwiUmVkaXJlY3RUeXBlIiwiU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dCIsImZvcmJpZGRlbiIsIm5vdEZvdW5kIiwicGVybWFuZW50UmVkaXJlY3QiLCJyZWRpcmVjdCIsInVuYXV0aG9yaXplZCIsInVuc3RhYmxlX2lzVW5yZWNvZ25pemVkQWN0aW9uRXJyb3IiLCJ1bnN0YWJsZV9yZXRocm93IiwidXNlUGFyYW1zIiwidXNlUGF0aG5hbWUiLCJ1c2VSb3V0ZXIiLCJ1c2VTZWFyY2hQYXJhbXMiLCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnQiLCJ1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzIiwidXNlU2VydmVySW5zZXJ0ZWRIVE1MIiwidXNlRHluYW1pY1JvdXRlUGFyYW1zIiwid2luZG93IiwicmVxdWlyZSIsInVuZGVmaW5lZCIsInNlYXJjaFBhcmFtcyIsInVzZUNvbnRleHQiLCJTZWFyY2hQYXJhbXNDb250ZXh0IiwicmVhZG9ubHlTZWFyY2hQYXJhbXMiLCJ1c2VNZW1vIiwiYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nIiwiUGF0aG5hbWVDb250ZXh0Iiwicm91dGVyIiwiQXBwUm91dGVyQ29udGV4dCIsIkVycm9yIiwiUGF0aFBhcmFtc0NvbnRleHQiLCJnZXRTZWxlY3RlZExheW91dFNlZ21lbnRQYXRoIiwidHJlZSIsInBhcmFsbGVsUm91dGVLZXkiLCJmaXJzdCIsInNlZ21lbnRQYXRoIiwibm9kZSIsInBhcmFsbGVsUm91dGVzIiwiY2hpbGRyZW4iLCJPYmplY3QiLCJ2YWx1ZXMiLCJzZWdtZW50Iiwic2VnbWVudFZhbHVlIiwiZ2V0U2VnbWVudFZhbHVlIiwic3RhcnRzV2l0aCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJwdXNoIiwiY29udGV4dCIsIkxheW91dFJvdXRlckNvbnRleHQiLCJwYXJlbnRUcmVlIiwic2VsZWN0ZWRMYXlvdXRTZWdtZW50cyIsImxlbmd0aCIsInNlbGVjdGVkTGF5b3V0U2VnbWVudCIsIkRFRkFVTFRfU0VHTUVOVF9LRVkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/navigation.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/navigation.react-server.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/navigation.react-server.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/** @internal */ \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 ReadonlyURLSearchParams: function() {\n return ReadonlyURLSearchParams;\n },\n RedirectType: function() {\n return _redirecterror.RedirectType;\n },\n forbidden: function() {\n return _forbidden.forbidden;\n },\n notFound: function() {\n return _notfound.notFound;\n },\n permanentRedirect: function() {\n return _redirect.permanentRedirect;\n },\n redirect: function() {\n return _redirect.redirect;\n },\n unauthorized: function() {\n return _unauthorized.unauthorized;\n },\n unstable_isUnrecognizedActionError: function() {\n return unstable_isUnrecognizedActionError;\n },\n unstable_rethrow: function() {\n return _unstablerethrow.unstable_rethrow;\n }\n});\nconst _redirect = __webpack_require__(/*! ./redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nconst _notfound = __webpack_require__(/*! ./not-found */ \"(ssr)/./node_modules/next/dist/client/components/not-found.js\");\nconst _forbidden = __webpack_require__(/*! ./forbidden */ \"(ssr)/./node_modules/next/dist/client/components/forbidden.js\");\nconst _unauthorized = __webpack_require__(/*! ./unauthorized */ \"(ssr)/./node_modules/next/dist/client/components/unauthorized.js\");\nconst _unstablerethrow = __webpack_require__(/*! ./unstable-rethrow */ \"(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.js\");\nclass ReadonlyURLSearchParamsError extends Error {\n constructor(){\n super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams');\n }\n}\nclass ReadonlyURLSearchParams extends URLSearchParams {\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() {\n throw new ReadonlyURLSearchParamsError();\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() {\n throw new ReadonlyURLSearchParamsError();\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() {\n throw new ReadonlyURLSearchParamsError();\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() {\n throw new ReadonlyURLSearchParamsError();\n }\n}\nfunction unstable_isUnrecognizedActionError() {\n throw Object.defineProperty(new Error('`unstable_isUnrecognizedActionError` can only be used on the client.'), \"__NEXT_ERROR_CODE\", {\n value: \"E776\",\n enumerable: false,\n configurable: true\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigation.react-server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24ucmVhY3Qtc2VydmVyLmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWM7Ozs7Ozs7Ozs7OztJQXdDTEEsdUJBQXVCO2VBQXZCQTs7SUFMQUMsWUFBWTtlQUFaQSxlQUFBQSxZQUFZOztJQUVaQyxTQUFTO2VBQVRBLFdBQUFBLFNBQVM7O0lBRFRDLFFBQVE7ZUFBUkEsVUFBQUEsUUFBUTs7SUFGRUMsaUJBQWlCO2VBQWpCQSxVQUFBQSxpQkFBaUI7O0lBQTNCQyxRQUFRO2VBQVJBLFVBQUFBLFFBQVE7O0lBSVJDLFlBQVk7ZUFBWkEsY0FBQUEsWUFBWTs7SUFWTEMsa0NBQWtDO2VBQWxDQTs7SUFXUEMsZ0JBQWdCO2VBQWhCQSxpQkFBQUEsZ0JBQWdCOzs7c0NBTG1COzJDQUNmO3NDQUNKO3VDQUNDOzBDQUNHOzZDQUNJO0FBdENqQyxNQUFNQyxxQ0FBcUNDO0lBQ3pDQyxhQUFjO1FBQ1osS0FBSyxDQUNIO0lBRUo7QUFDRjtBQUVBLE1BQU1YLGdDQUFnQ1k7SUFDcEMsd0tBQXdLLEdBQ3hLQyxTQUFTO1FBQ1AsTUFBTSxJQUFJSjtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLSyxTQUFTO1FBQ1AsTUFBTSxJQUFJTDtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLTSxNQUFNO1FBQ0osTUFBTSxJQUFJTjtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLTyxPQUFPO1FBQ0wsTUFBTSxJQUFJUDtJQUNaO0FBQ0Y7QUFFTyxTQUFTRjtJQUNkLE1BQU0scUJBRUwsQ0FGSyxJQUFJRyxNQUNSLHlFQURJO2VBQUE7b0JBQUE7c0JBQUE7SUFFTjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvbmF2aWdhdGlvbi5yZWFjdC1zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBpbnRlcm5hbCAqL1xuY2xhc3MgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXG4gICAgICAnTWV0aG9kIHVuYXZhaWxhYmxlIG9uIGBSZWFkb25seVVSTFNlYXJjaFBhcmFtc2AuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zI3VwZGF0aW5nLXNlYXJjaHBhcmFtcydcbiAgICApXG4gIH1cbn1cblxuY2xhc3MgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMgZXh0ZW5kcyBVUkxTZWFyY2hQYXJhbXMge1xuICAvKiogQGRlcHJlY2F0ZWQgTWV0aG9kIHVuYXZhaWxhYmxlIG9uIGBSZWFkb25seVVSTFNlYXJjaFBhcmFtc2AuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zI3VwZGF0aW5nLXNlYXJjaHBhcmFtcyAqL1xuICBhcHBlbmQoKSB7XG4gICAgdGhyb3cgbmV3IFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IoKVxuICB9XG4gIC8qKiBAZGVwcmVjYXRlZCBNZXRob2QgdW5hdmFpbGFibGUgb24gYFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zYC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlYXJjaC1wYXJhbXMjdXBkYXRpbmctc2VhcmNocGFyYW1zICovXG4gIGRlbGV0ZSgpIHtcbiAgICB0aHJvdyBuZXcgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvcigpXG4gIH1cbiAgLyoqIEBkZXByZWNhdGVkIE1ldGhvZCB1bmF2YWlsYWJsZSBvbiBgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNgLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy91c2Utc2VhcmNoLXBhcmFtcyN1cGRhdGluZy1zZWFyY2hwYXJhbXMgKi9cbiAgc2V0KCkge1xuICAgIHRocm93IG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKClcbiAgfVxuICAvKiogQGRlcHJlY2F0ZWQgTWV0aG9kIHVuYXZhaWxhYmxlIG9uIGBSZWFkb25seVVSTFNlYXJjaFBhcmFtc2AuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zI3VwZGF0aW5nLXNlYXJjaHBhcmFtcyAqL1xuICBzb3J0KCkge1xuICAgIHRocm93IG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcigpOiBib29sZWFuIHtcbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdgdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcmAgY2FuIG9ubHkgYmUgdXNlZCBvbiB0aGUgY2xpZW50LidcbiAgKVxufVxuXG5leHBvcnQgeyByZWRpcmVjdCwgcGVybWFuZW50UmVkaXJlY3QgfSBmcm9tICcuL3JlZGlyZWN0J1xuZXhwb3J0IHsgUmVkaXJlY3RUeXBlIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcbmV4cG9ydCB7IG5vdEZvdW5kIH0gZnJvbSAnLi9ub3QtZm91bmQnXG5leHBvcnQgeyBmb3JiaWRkZW4gfSBmcm9tICcuL2ZvcmJpZGRlbidcbmV4cG9ydCB7IHVuYXV0aG9yaXplZCB9IGZyb20gJy4vdW5hdXRob3JpemVkJ1xuZXhwb3J0IHsgdW5zdGFibGVfcmV0aHJvdyB9IGZyb20gJy4vdW5zdGFibGUtcmV0aHJvdydcbmV4cG9ydCB7IFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zIH1cbiJdLCJuYW1lcyI6WyJSZWFkb25seVVSTFNlYXJjaFBhcmFtcyIsIlJlZGlyZWN0VHlwZSIsImZvcmJpZGRlbiIsIm5vdEZvdW5kIiwicGVybWFuZW50UmVkaXJlY3QiLCJyZWRpcmVjdCIsInVuYXV0aG9yaXplZCIsInVuc3RhYmxlX2lzVW5yZWNvZ25pemVkQWN0aW9uRXJyb3IiLCJ1bnN0YWJsZV9yZXRocm93IiwiUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJVUkxTZWFyY2hQYXJhbXMiLCJhcHBlbmQiLCJkZWxldGUiLCJzZXQiLCJzb3J0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/navigation.react-server.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/not-found.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/not-found.js ***!
|
||
\***************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"notFound\", ({\n enumerable: true,\n get: function() {\n return notFound;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\n/**\n * This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)\n * within a route segment as well as inject a tag.\n *\n * `notFound()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a `<meta name=\"robots\" content=\"noindex\" />` meta tag and set the status code to 404.\n * - In a Route Handler or Server Action, it will serve a 404 to the caller.\n *\n * Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)\n */ const DIGEST = \"\" + _httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE + \";404\";\nfunction notFound() {\n // eslint-disable-next-line no-throw-literal\n const error = Object.defineProperty(new Error(DIGEST), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = DIGEST;\n throw error;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=not-found.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRDQXNCZ0JBOzs7ZUFBQUE7OztnREFuQlQ7QUFFUDs7Ozs7Ozs7Ozs7OztDQWFDLEdBRUQsTUFBTUMsU0FBVSxLQUFFQyxvQkFBQUEsOEJBQThCLEdBQUM7QUFFMUMsU0FBU0Y7SUFDZCw0Q0FBNEM7SUFDNUMsTUFBTUcsUUFBUSxxQkFBaUIsQ0FBakIsSUFBSUMsTUFBTUgsU0FBVjtlQUFBO29CQUFBO3NCQUFBO0lBQWdCO0lBQzVCRSxNQUFrQ0UsTUFBTSxHQUFHSjtJQUU3QyxNQUFNRTtBQUNSIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSxcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gcmVuZGVyIHRoZSBbbm90LWZvdW5kLmpzIGZpbGVdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2ZpbGUtY29udmVudGlvbnMvbm90LWZvdW5kKVxuICogd2l0aGluIGEgcm91dGUgc2VnbWVudCBhcyB3ZWxsIGFzIGluamVjdCBhIHRhZy5cbiAqXG4gKiBgbm90Rm91bmQoKWAgY2FuIGJlIHVzZWQgaW5cbiAqIFtTZXJ2ZXIgQ29tcG9uZW50c10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzKSxcbiAqIFtSb3V0ZSBIYW5kbGVyc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9yb3V0ZS1oYW5kbGVycyksIGFuZFxuICogW1NlcnZlciBBY3Rpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL3NlcnZlci1hY3Rpb25zLWFuZC1tdXRhdGlvbnMpLlxuICpcbiAqIC0gSW4gYSBTZXJ2ZXIgQ29tcG9uZW50LCB0aGlzIHdpbGwgaW5zZXJ0IGEgYDxtZXRhIG5hbWU9XCJyb2JvdHNcIiBjb250ZW50PVwibm9pbmRleFwiIC8+YCBtZXRhIHRhZyBhbmQgc2V0IHRoZSBzdGF0dXMgY29kZSB0byA0MDQuXG4gKiAtIEluIGEgUm91dGUgSGFuZGxlciBvciBTZXJ2ZXIgQWN0aW9uLCBpdCB3aWxsIHNlcnZlIGEgNDA0IHRvIHRoZSBjYWxsZXIuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgbm90Rm91bmRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvbm90LWZvdW5kKVxuICovXG5cbmNvbnN0IERJR0VTVCA9IGAke0hUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERX07NDA0YFxuXG5leHBvcnQgZnVuY3Rpb24gbm90Rm91bmQoKTogbmV2ZXIge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihESUdFU1QpIGFzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4gIDsoZXJyb3IgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpLmRpZ2VzdCA9IERJR0VTVFxuXG4gIHRocm93IGVycm9yXG59XG4iXSwibmFtZXMiOlsibm90Rm91bmQiLCJESUdFU1QiLCJIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUiLCJlcnJvciIsIkVycm9yIiwiZGlnZXN0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/not-found.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/promise-queue.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/promise-queue.js ***!
|
||
\*******************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/*\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*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"PromiseQueue\", ({\n enumerable: true,\n get: function() {\n return PromiseQueue;\n }\n}));\nconst _class_private_field_loose_base = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_base */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\");\nconst _class_private_field_loose_key = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_key */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\");\nvar _maxConcurrency = /*#__PURE__*/ _class_private_field_loose_key._(\"_maxConcurrency\"), _runningCount = /*#__PURE__*/ _class_private_field_loose_key._(\"_runningCount\"), _queue = /*#__PURE__*/ _class_private_field_loose_key._(\"_queue\"), _processNext = /*#__PURE__*/ _class_private_field_loose_key._(\"_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 _class_private_field_loose_base._(this, _runningCount)[_runningCount]++;\n const result = await promiseFn();\n taskResolve(result);\n } catch (error) {\n taskReject(error);\n } finally{\n _class_private_field_loose_base._(this, _runningCount)[_runningCount]--;\n _class_private_field_loose_base._(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 _class_private_field_loose_base._(this, _queue)[_queue].push(enqueueResult);\n _class_private_field_loose_base._(this, _processNext)[_processNext]();\n return taskPromise;\n }\n bump(promiseFn) {\n const index = _class_private_field_loose_base._(this, _queue)[_queue].findIndex((item)=>item.promiseFn === promiseFn);\n if (index > -1) {\n const bumpedItem = _class_private_field_loose_base._(this, _queue)[_queue].splice(index, 1)[0];\n _class_private_field_loose_base._(this, _queue)[_queue].unshift(bumpedItem);\n _class_private_field_loose_base._(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 _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] = maxConcurrency;\n _class_private_field_loose_base._(this, _runningCount)[_runningCount] = 0;\n _class_private_field_loose_base._(this, _queue)[_queue] = [];\n }\n}\nfunction processNext(forced) {\n if (forced === void 0) forced = false;\n if ((_class_private_field_loose_base._(this, _runningCount)[_runningCount] < _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] || forced) && _class_private_field_loose_base._(this, _queue)[_queue].length > 0) {\n var _class_private_field_loose_base__queue_shift;\n (_class_private_field_loose_base__queue_shift = _class_private_field_loose_base._(this, _queue)[_queue].shift()) == null ? void 0 : _class_private_field_loose_base__queue_shift.task();\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=promise-queue.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3Byb21pc2UtcXVldWUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0FBS0E7Ozs7Z0RBQ2FBOzs7ZUFBQUE7Ozs7O0lBQ1gscUZBQ0EsaUZBQ0EsbUVBbURBO0FBdERLLE1BQU1BO0lBY1hDLFFBQVdDLFNBQTJCLEVBQWM7UUFDbEQsSUFBSUM7UUFDSixJQUFJQztRQUVKLE1BQU1DLGNBQWMsSUFBSUMsUUFBUSxDQUFDQyxTQUFTQztZQUN4Q0wsY0FBY0k7WUFDZEgsYUFBYUk7UUFDZjtRQUVBLE1BQU1DLE9BQU87WUFDWCxJQUFJO2dCQUNGLHNDQUFJLEVBQUM7Z0JBQ0wsTUFBTUMsU0FBUyxNQUFNUjtnQkFDckJDLFlBQVlPO1lBQ2QsRUFBRSxPQUFPQyxPQUFPO2dCQUNkUCxXQUFXTztZQUNiLFNBQVU7Z0JBQ1Isc0NBQUksRUFBQztnQkFDTCxzQ0FBSSxFQUFDO1lBQ1A7UUFDRjtRQUVBLE1BQU1DLGdCQUFnQjtZQUFFVixXQUFXRztZQUFhSTtRQUFLO1FBQ3JELGdEQUFnRDtRQUNoRCxzQ0FBSSxFQUFDLGdCQUFPSSxJQUFJLENBQUNEO1FBQ2pCLHNDQUFJLEVBQUM7UUFFTCxPQUFPUDtJQUNUO0lBRUFTLEtBQUtaLFNBQXVCLEVBQUU7UUFDNUIsTUFBTWEsUUFBUSxzQ0FBSSxFQUFDLGdCQUFPQyxTQUFTLENBQUMsQ0FBQ0MsT0FBU0EsS0FBS2YsU0FBUyxLQUFLQTtRQUVqRSxJQUFJYSxRQUFRLENBQUMsR0FBRztZQUNkLE1BQU1HLGFBQWEsc0NBQUksRUFBQyxnQkFBT0MsTUFBTSxDQUFDSixPQUFPLEVBQUUsQ0FBQyxFQUFFO1lBQ2xELHNDQUFJLEVBQUMsZ0JBQU9LLE9BQU8sQ0FBQ0Y7WUFDcEIsc0NBQUksRUFBQyw0QkFBYTtRQUNwQjtJQUNGO0lBNUNBRyxZQUFZQyxpQkFBaUIsQ0FBQyxDQUFFO1FBOENoQzttQkFBQTs7UUFyREE7O21CQUFBOztRQUNBOzttQkFBQTs7UUFDQTs7bUJBQUE7O1FBTUUsc0NBQUksRUFBQyxvQ0FBa0JBO1FBQ3ZCLHNDQUFJLEVBQUMsZ0NBQWdCO1FBQ3JCLHNDQUFJLEVBQUMsa0JBQVMsRUFBRTtJQUNsQjtBQWtERjtBQVJFLHFCQUFhQyxNQUFjO0lBQWRBLElBQUFBLFdBQUFBLEtBQUFBLEdBQUFBLFNBQVM7SUFDcEIsSUFDRyx1Q0FBSSxFQUFDLGdDQUFnQixzQ0FBSSxFQUFDLHFDQUFtQkEsTUFBQUEsQ0FBSyxJQUNuRCxzQ0FBSSxFQUFDLGdCQUFPQyxNQUFNLEdBQUcsR0FDckI7WUFDQTtTQUFBLHFGQUFJLEVBQUMsZ0JBQU9DLEtBQUssdUJBQWpCLDZDQUFxQmhCLElBQUk7SUFDM0I7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL3Byb21pc2UtcXVldWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBUaGlzIGlzIGEgc2ltcGxlIHByb21pc2UgcXVldWUgdGhhdCBhbGxvd3MgeW91IHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgY29uY3VycmVudCBwcm9taXNlc1xuICAgIHRoYXQgYXJlIHJ1bm5pbmcgYXQgYW55IGdpdmVuIHRpbWUuIEl0J3MgdXNlZCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnRcbiAgICBwcmVmZXRjaCByZXF1ZXN0cyB0aGF0IGFyZSBiZWluZyBtYWRlIHRvIHRoZSBzZXJ2ZXIgYnV0IGNvdWxkIGJlIHVzZWQgZm9yIG90aGVyXG4gICAgdGhpbmdzIGFzIHdlbGwuXG4qL1xuZXhwb3J0IGNsYXNzIFByb21pc2VRdWV1ZSB7XG4gICNtYXhDb25jdXJyZW5jeTogbnVtYmVyXG4gICNydW5uaW5nQ291bnQ6IG51bWJlclxuICAjcXVldWU6IEFycmF5PHtcbiAgICBwcm9taXNlRm46IFByb21pc2U8YW55PlxuICAgIHRhc2s6ICgpID0+IHZvaWRcbiAgfT5cblxuICBjb25zdHJ1Y3RvcihtYXhDb25jdXJyZW5jeSA9IDUpIHtcbiAgICB0aGlzLiNtYXhDb25jdXJyZW5jeSA9IG1heENvbmN1cnJlbmN5XG4gICAgdGhpcy4jcnVubmluZ0NvdW50ID0gMFxuICAgIHRoaXMuI3F1ZXVlID0gW11cbiAgfVxuXG4gIGVucXVldWU8VD4ocHJvbWlzZUZuOiAoKSA9PiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgbGV0IHRhc2tSZXNvbHZlOiAodmFsdWU6IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZFxuICAgIGxldCB0YXNrUmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkXG5cbiAgICBjb25zdCB0YXNrUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRhc2tSZXNvbHZlID0gcmVzb2x2ZVxuICAgICAgdGFza1JlamVjdCA9IHJlamVjdFxuICAgIH0pIGFzIFByb21pc2U8VD5cblxuICAgIGNvbnN0IHRhc2sgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLiNydW5uaW5nQ291bnQrK1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9taXNlRm4oKVxuICAgICAgICB0YXNrUmVzb2x2ZShyZXN1bHQpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0YXNrUmVqZWN0KGVycm9yKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy4jcnVubmluZ0NvdW50LS1cbiAgICAgICAgdGhpcy4jcHJvY2Vzc05leHQoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGVucXVldWVSZXN1bHQgPSB7IHByb21pc2VGbjogdGFza1Byb21pc2UsIHRhc2sgfVxuICAgIC8vIHdvbmRlciBpZiB3ZSBzaG91bGQgdGFrZSBhIExJRk8gYXBwcm9hY2ggaGVyZVxuICAgIHRoaXMuI3F1ZXVlLnB1c2goZW5xdWV1ZVJlc3VsdClcbiAgICB0aGlzLiNwcm9jZXNzTmV4dCgpXG5cbiAgICByZXR1cm4gdGFza1Byb21pc2VcbiAgfVxuXG4gIGJ1bXAocHJvbWlzZUZuOiBQcm9taXNlPGFueT4pIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuI3F1ZXVlLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5wcm9taXNlRm4gPT09IHByb21pc2VGbilcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICBjb25zdCBidW1wZWRJdGVtID0gdGhpcy4jcXVldWUuc3BsaWNlKGluZGV4LCAxKVswXVxuICAgICAgdGhpcy4jcXVldWUudW5zaGlmdChidW1wZWRJdGVtKVxuICAgICAgdGhpcy4jcHJvY2Vzc05leHQodHJ1ZSlcbiAgICB9XG4gIH1cblxuICAjcHJvY2Vzc05leHQoZm9yY2VkID0gZmFsc2UpIHtcbiAgICBpZiAoXG4gICAgICAodGhpcy4jcnVubmluZ0NvdW50IDwgdGhpcy4jbWF4Q29uY3VycmVuY3kgfHwgZm9yY2VkKSAmJlxuICAgICAgdGhpcy4jcXVldWUubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgdGhpcy4jcXVldWUuc2hpZnQoKT8udGFzaygpXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiUHJvbWlzZVF1ZXVlIiwiZW5xdWV1ZSIsInByb21pc2VGbiIsInRhc2tSZXNvbHZlIiwidGFza1JlamVjdCIsInRhc2tQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ0YXNrIiwicmVzdWx0IiwiZXJyb3IiLCJlbnF1ZXVlUmVzdWx0IiwicHVzaCIsImJ1bXAiLCJpbmRleCIsImZpbmRJbmRleCIsIml0ZW0iLCJidW1wZWRJdGVtIiwic3BsaWNlIiwidW5zaGlmdCIsImNvbnN0cnVjdG9yIiwibWF4Q29uY3VycmVuY3kiLCJmb3JjZWQiLCJsZW5ndGgiLCJzaGlmdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/promise-queue.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/redirect-boundary.js ***!
|
||
\***********************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \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 RedirectBoundary: function() {\n return RedirectBoundary;\n },\n RedirectErrorBoundary: function() {\n return RedirectErrorBoundary;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigation = __webpack_require__(/*! ./navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\nconst _redirect = __webpack_require__(/*! ./redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nfunction HandleRedirect(param) {\n let { redirect, reset, redirectType } = param;\n const router = (0, _navigation.useRouter)();\n (0, _react.useEffect)(()=>{\n _react.default.startTransition(()=>{\n if (redirectType === _redirecterror.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.default.Component {\n static getDerivedStateFromError(error) {\n if ((0, _redirecterror.isRedirectError)(error)) {\n const url = (0, _redirect.getURLFromRedirectError)(error);\n const redirectType = (0, _redirect.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 // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.\n render() {\n const { redirect, redirectType } = this.state;\n if (redirect !== null && redirectType !== null) {\n return /*#__PURE__*/ (0, _jsxruntime.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.useRouter)();\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(RedirectErrorBoundary, {\n router: router,\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXlFZ0JBLGdCQUFnQjtlQUFoQkE7O0lBcENIQyxxQkFBcUI7ZUFBckJBOzs7Ozs2RUFwQ29CO3dDQUVQO3NDQUN3QzsyQ0FDcEI7QUFPOUMsU0FBU0MsZUFBZSxLQVF2QjtJQVJ1QixNQUN0QkMsUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLFlBQVksRUFLYixHQVJ1QjtJQVN0QixNQUFNQyxTQUFTQyxDQUFBQSxHQUFBQSxZQUFBQSxTQUFBQTtJQUVmQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1JDLE9BQUFBLE9BQUssQ0FBQ0MsZUFBZSxDQUFDO1lBQ3BCLElBQUlMLGlCQUFpQk0sZUFBQUEsWUFBWSxDQUFDQyxJQUFJLEVBQUU7Z0JBQ3RDTixPQUFPTSxJQUFJLENBQUNULFVBQVUsQ0FBQztZQUN6QixPQUFPO2dCQUNMRyxPQUFPTyxPQUFPLENBQUNWLFVBQVUsQ0FBQztZQUM1QjtZQUNBQztRQUNGO0lBQ0YsR0FBRztRQUFDRDtRQUFVRTtRQUFjRDtRQUFPRTtLQUFPO0lBRTFDLE9BQU87QUFDVDtBQUVPLE1BQU1MLDhCQUE4QlEsT0FBQUEsT0FBSyxDQUFDSyxTQUFTO0lBU3hELE9BQU9DLHlCQUF5QkMsS0FBVSxFQUFFO1FBQzFDLElBQUlDLENBQUFBLEdBQUFBLGVBQUFBLGVBQUFBLEVBQWdCRCxRQUFRO1lBQzFCLE1BQU1FLE1BQU1DLENBQUFBLEdBQUFBLFVBQUFBLHVCQUFBQSxFQUF3Qkg7WUFDcEMsTUFBTVgsZUFBZWUsQ0FBQUEsR0FBQUEsVUFBQUEsd0JBQUFBLEVBQXlCSjtZQUM5QyxPQUFPO2dCQUFFYixVQUFVZTtnQkFBS2I7WUFBYTtRQUN2QztRQUNBLHdDQUF3QztRQUN4QyxNQUFNVztJQUNSO0lBRUEseUlBQXlJO0lBQ3pJSyxTQUEwQjtRQUN4QixNQUFNLEVBQUVsQixRQUFRLEVBQUVFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQ2lCLEtBQUs7UUFDN0MsSUFBSW5CLGFBQWEsUUFBUUUsaUJBQWlCLE1BQU07WUFDOUMscUJBQ0UscUJBQUNILGdCQUFBQTtnQkFDQ0MsVUFBVUE7Z0JBQ1ZFLGNBQWNBO2dCQUNkRCxPQUFPLElBQU0sSUFBSSxDQUFDbUIsUUFBUSxDQUFDO3dCQUFFcEIsVUFBVTtvQkFBSzs7UUFHbEQ7UUFFQSxPQUFPLElBQUksQ0FBQ3FCLEtBQUssQ0FBQ0MsUUFBUTtJQUM1QjtJQTdCQUMsWUFBWUYsS0FBNEIsQ0FBRTtRQUN4QyxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDRixLQUFLLEdBQUc7WUFBRW5CLFVBQVU7WUFBTUUsY0FBYztRQUFLO0lBQ3BEO0FBMkJGO0FBRU8sU0FBU0wsaUJBQWlCLEtBQTJDO0lBQTNDLE1BQUV5QixRQUFRLEVBQWlDLEdBQTNDO0lBQy9CLE1BQU1uQixTQUFTQyxDQUFBQSxHQUFBQSxZQUFBQSxTQUFBQTtJQUNmLHFCQUNFLHFCQUFDTix1QkFBQUE7UUFBc0JLLFFBQVFBO2tCQUFTbUI7O0FBRTVDIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3QtYm91bmRhcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBBcHBSb3V0ZXJJbnN0YW5jZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSAnLi9uYXZpZ2F0aW9uJ1xuaW1wb3J0IHsgZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yLCBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvciB9IGZyb20gJy4vcmVkaXJlY3QnXG5pbXBvcnQgeyBSZWRpcmVjdFR5cGUsIGlzUmVkaXJlY3RFcnJvciB9IGZyb20gJy4vcmVkaXJlY3QtZXJyb3InXG5cbmludGVyZmFjZSBSZWRpcmVjdEJvdW5kYXJ5UHJvcHMge1xuICByb3V0ZXI6IEFwcFJvdXRlckluc3RhbmNlXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn1cblxuZnVuY3Rpb24gSGFuZGxlUmVkaXJlY3Qoe1xuICByZWRpcmVjdCxcbiAgcmVzZXQsXG4gIHJlZGlyZWN0VHlwZSxcbn06IHtcbiAgcmVkaXJlY3Q6IHN0cmluZ1xuICByZWRpcmVjdFR5cGU6IFJlZGlyZWN0VHlwZVxuICByZXNldDogKCkgPT4gdm9pZFxufSkge1xuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgUmVhY3Quc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgIGlmIChyZWRpcmVjdFR5cGUgPT09IFJlZGlyZWN0VHlwZS5wdXNoKSB7XG4gICAgICAgIHJvdXRlci5wdXNoKHJlZGlyZWN0LCB7fSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvdXRlci5yZXBsYWNlKHJlZGlyZWN0LCB7fSlcbiAgICAgIH1cbiAgICAgIHJlc2V0KClcbiAgICB9KVxuICB9LCBbcmVkaXJlY3QsIHJlZGlyZWN0VHlwZSwgcmVzZXQsIHJvdXRlcl0pXG5cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0RXJyb3JCb3VuZGFyeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgUmVkaXJlY3RCb3VuZGFyeVByb3BzLFxuICB7IHJlZGlyZWN0OiBzdHJpbmcgfCBudWxsOyByZWRpcmVjdFR5cGU6IFJlZGlyZWN0VHlwZSB8IG51bGwgfVxuPiB7XG4gIGNvbnN0cnVjdG9yKHByb3BzOiBSZWRpcmVjdEJvdW5kYXJ5UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcbiAgICB0aGlzLnN0YXRlID0geyByZWRpcmVjdDogbnVsbCwgcmVkaXJlY3RUeXBlOiBudWxsIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3I6IGFueSkge1xuICAgIGlmIChpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICBjb25zdCB1cmwgPSBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvcihlcnJvcilcbiAgICAgIGNvbnN0IHJlZGlyZWN0VHlwZSA9IGdldFJlZGlyZWN0VHlwZUZyb21FcnJvcihlcnJvcilcbiAgICAgIHJldHVybiB7IHJlZGlyZWN0OiB1cmwsIHJlZGlyZWN0VHlwZSB9XG4gICAgfVxuICAgIC8vIFJlLXRocm93IGlmIGVycm9yIGlzIG5vdCBmb3IgcmVkaXJlY3RcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgLy8gRXhwbGljaXQgdHlwZSBpcyBuZWVkZWQgdG8gYXZvaWQgdGhlIGdlbmVyYXRlZCBgLmQudHNgIGhhdmluZyBhIHdpZGUgcmV0dXJuIHR5cGUgdGhhdCBjb3VsZCBiZSBzcGVjaWZpYyB0byB0aGUgYEB0eXBlcy9yZWFjdGAgdmVyc2lvbi5cbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgY29uc3QgeyByZWRpcmVjdCwgcmVkaXJlY3RUeXBlIH0gPSB0aGlzLnN0YXRlXG4gICAgaWYgKHJlZGlyZWN0ICE9PSBudWxsICYmIHJlZGlyZWN0VHlwZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEhhbmRsZVJlZGlyZWN0XG4gICAgICAgICAgcmVkaXJlY3Q9e3JlZGlyZWN0fVxuICAgICAgICAgIHJlZGlyZWN0VHlwZT17cmVkaXJlY3RUeXBlfVxuICAgICAgICAgIHJlc2V0PXsoKSA9PiB0aGlzLnNldFN0YXRlKHsgcmVkaXJlY3Q6IG51bGwgfSl9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gUmVkaXJlY3RCb3VuZGFyeSh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpXG4gIHJldHVybiAoXG4gICAgPFJlZGlyZWN0RXJyb3JCb3VuZGFyeSByb3V0ZXI9e3JvdXRlcn0+e2NoaWxkcmVufTwvUmVkaXJlY3RFcnJvckJvdW5kYXJ5PlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVkaXJlY3RCb3VuZGFyeSIsIlJlZGlyZWN0RXJyb3JCb3VuZGFyeSIsIkhhbmRsZVJlZGlyZWN0IiwicmVkaXJlY3QiLCJyZXNldCIsInJlZGlyZWN0VHlwZSIsInJvdXRlciIsInVzZVJvdXRlciIsInVzZUVmZmVjdCIsIlJlYWN0Iiwic3RhcnRUcmFuc2l0aW9uIiwiUmVkaXJlY3RUeXBlIiwicHVzaCIsInJlcGxhY2UiLCJDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsImlzUmVkaXJlY3RFcnJvciIsInVybCIsImdldFVSTEZyb21SZWRpcmVjdEVycm9yIiwiZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yIiwicmVuZGVyIiwic3RhdGUiLCJzZXRTdGF0ZSIsInByb3BzIiwiY2hpbGRyZW4iLCJjb25zdHJ1Y3RvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/redirect-error.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/redirect-error.js ***!
|
||
\********************************************************************/
|
||
/***/ ((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 REDIRECT_ERROR_CODE: function() {\n return REDIRECT_ERROR_CODE;\n },\n RedirectType: function() {\n return RedirectType;\n },\n isRedirectError: function() {\n return isRedirectError;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';\nvar RedirectType = /*#__PURE__*/ function(RedirectType) {\n RedirectType[\"push\"] = \"push\";\n RedirectType[\"replace\"] = \"replace\";\n return RedirectType;\n}({});\nfunction isRedirectError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const digest = error.digest.split(';');\n const [errorCode, type] = digest;\n const destination = digest.slice(2, -2).join(';');\n const status = digest.at(-2);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxtQkFBbUI7ZUFBbkJBOztJQUVEQyxZQUFZO2VBQVpBOztJQWdCSUMsZUFBZTtlQUFmQTs7O2dEQXBCbUI7QUFFNUIsTUFBTUYsc0JBQXNCO0FBRTVCLElBQUtDLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7V0FBQUE7O0FBZ0JMLFNBQVNDLGdCQUFnQkMsS0FBYztJQUM1QyxJQUNFLE9BQU9BLFVBQVUsWUFDakJBLFVBQVUsUUFDVixDQUFFLGFBQVlBLEtBQUFBLENBQUksSUFDbEIsT0FBT0EsTUFBTUMsTUFBTSxLQUFLLFVBQ3hCO1FBQ0EsT0FBTztJQUNUO0lBRUEsTUFBTUEsU0FBU0QsTUFBTUMsTUFBTSxDQUFDQyxLQUFLLENBQUM7SUFDbEMsTUFBTSxDQUFDQyxXQUFXQyxLQUFLLEdBQUdIO0lBQzFCLE1BQU1JLGNBQWNKLE9BQU9LLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBQzdDLE1BQU1DLFNBQVNQLE9BQU9RLEVBQUUsQ0FBQyxDQUFDO0lBRTFCLE1BQU1DLGFBQWFDLE9BQU9IO0lBRTFCLE9BQ0VMLGNBQWNOLHVCQUNiTyxDQUFBQSxTQUFTLGFBQWFBLFNBQVMsT0FBSyxJQUNyQyxPQUFPQyxnQkFBZ0IsWUFDdkIsQ0FBQ08sTUFBTUYsZUFDUEEsY0FBY0csb0JBQUFBLGtCQUFrQjtBQUVwQyIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZGlyZWN0U3RhdHVzQ29kZSB9IGZyb20gJy4vcmVkaXJlY3Qtc3RhdHVzLWNvZGUnXG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9FUlJPUl9DT0RFID0gJ05FWFRfUkVESVJFQ1QnXG5cbmV4cG9ydCBlbnVtIFJlZGlyZWN0VHlwZSB7XG4gIHB1c2ggPSAncHVzaCcsXG4gIHJlcGxhY2UgPSAncmVwbGFjZScsXG59XG5cbmV4cG9ydCB0eXBlIFJlZGlyZWN0RXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgUkVESVJFQ1RfRVJST1JfQ09ERX07JHtSZWRpcmVjdFR5cGV9OyR7c3RyaW5nfTske1JlZGlyZWN0U3RhdHVzQ29kZX07YFxufVxuXG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlXG4gKiBgcmVkaXJlY3QodXJsKWAgaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3RFcnJvcihlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIFJlZGlyZWN0RXJyb3Ige1xuICBpZiAoXG4gICAgdHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fFxuICAgIGVycm9yID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnJvcikgfHxcbiAgICB0eXBlb2YgZXJyb3IuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGRpZ2VzdCA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpXG4gIGNvbnN0IFtlcnJvckNvZGUsIHR5cGVdID0gZGlnZXN0XG4gIGNvbnN0IGRlc3RpbmF0aW9uID0gZGlnZXN0LnNsaWNlKDIsIC0yKS5qb2luKCc7JylcbiAgY29uc3Qgc3RhdHVzID0gZGlnZXN0LmF0KC0yKVxuXG4gIGNvbnN0IHN0YXR1c0NvZGUgPSBOdW1iZXIoc3RhdHVzKVxuXG4gIHJldHVybiAoXG4gICAgZXJyb3JDb2RlID09PSBSRURJUkVDVF9FUlJPUl9DT0RFICYmXG4gICAgKHR5cGUgPT09ICdyZXBsYWNlJyB8fCB0eXBlID09PSAncHVzaCcpICYmXG4gICAgdHlwZW9mIGRlc3RpbmF0aW9uID09PSAnc3RyaW5nJyAmJlxuICAgICFpc05hTihzdGF0dXNDb2RlKSAmJlxuICAgIHN0YXR1c0NvZGUgaW4gUmVkaXJlY3RTdGF0dXNDb2RlXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSRURJUkVDVF9FUlJPUl9DT0RFIiwiUmVkaXJlY3RUeXBlIiwiaXNSZWRpcmVjdEVycm9yIiwiZXJyb3IiLCJkaWdlc3QiLCJzcGxpdCIsImVycm9yQ29kZSIsInR5cGUiLCJkZXN0aW5hdGlvbiIsInNsaWNlIiwiam9pbiIsInN0YXR1cyIsImF0Iiwic3RhdHVzQ29kZSIsIk51bWJlciIsImlzTmFOIiwiUmVkaXJlY3RTdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/redirect-status-code.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBQVlBOzs7ZUFBQUE7OztBQUFMLElBQUtBLHFCQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxrQkFBQUE7Ozs7V0FBQUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZWRpcmVjdFN0YXR1c0NvZGUge1xuICBTZWVPdGhlciA9IDMwMyxcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/redirect.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/redirect.js ***!
|
||
\**************************************************************/
|
||
/***/ ((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 getRedirectError: function() {\n return getRedirectError;\n },\n getRedirectStatusCodeFromError: function() {\n return getRedirectStatusCodeFromError;\n },\n getRedirectTypeFromError: function() {\n return getRedirectTypeFromError;\n },\n getURLFromRedirectError: function() {\n return getURLFromRedirectError;\n },\n permanentRedirect: function() {\n return permanentRedirect;\n },\n redirect: function() {\n return redirect;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nconst actionAsyncStorage = true ? (__webpack_require__(/*! ../../server/app-render/action-async-storage.external */ \"../app-render/action-async-storage.external\").actionAsyncStorage) : 0;\nfunction getRedirectError(url, type, statusCode) {\n if (statusCode === void 0) statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect;\n const error = Object.defineProperty(new Error(_redirecterror.REDIRECT_ERROR_CODE), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = _redirecterror.REDIRECT_ERROR_CODE + \";\" + type + \";\" + url + \";\" + statusCode + \";\";\n return error;\n}\nfunction redirect(/** The URL to redirect to */ url, type) {\n var _actionAsyncStorage_getStore;\n type != null ? type : type = (actionAsyncStorage == null ? void 0 : (_actionAsyncStorage_getStore = actionAsyncStorage.getStore()) == null ? void 0 : _actionAsyncStorage_getStore.isAction) ? _redirecterror.RedirectType.push : _redirecterror.RedirectType.replace;\n throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.TemporaryRedirect);\n}\nfunction permanentRedirect(/** The URL to redirect to */ url, type) {\n if (type === void 0) type = _redirecterror.RedirectType.replace;\n throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.PermanentRedirect);\n}\nfunction getURLFromRedirectError(error) {\n if (!(0, _redirecterror.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(';').slice(2, -2).join(';');\n}\nfunction getRedirectTypeFromError(error) {\n if (!(0, _redirecterror.isRedirectError)(error)) {\n throw Object.defineProperty(new Error('Not a redirect error'), \"__NEXT_ERROR_CODE\", {\n value: \"E260\",\n enumerable: false,\n configurable: true\n });\n }\n return error.digest.split(';', 2)[1];\n}\nfunction getRedirectStatusCodeFromError(error) {\n if (!(0, _redirecterror.isRedirectError)(error)) {\n throw Object.defineProperty(new Error('Not a redirect error'), \"__NEXT_ERROR_CODE\", {\n value: \"E260\",\n enumerable: false,\n configurable: true\n });\n }\n return Number(error.digest.split(';').at(-2));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWVnQkEsZ0JBQWdCO2VBQWhCQTs7SUE2RUFDLDhCQUE4QjtlQUE5QkE7O0lBUkFDLHdCQUF3QjtlQUF4QkE7O0lBUkFDLHVCQUF1QjtlQUF2QkE7O0lBaEJBQyxpQkFBaUI7ZUFBakJBOztJQXZCQUMsUUFBUTtlQUFSQTs7O2dEQXJDbUI7MkNBTTVCO0FBRVAsTUFBTUMscUJBQ0osS0FBNkIsR0FFdkJFLG9KQUNrQixHQUNwQkMsQ0FBU0E7QUFFUixTQUFTVCxpQkFDZFUsR0FBVyxFQUNYQyxJQUFrQixFQUNsQkMsVUFBcUU7SUFBckVBLElBQUFBLGVBQUFBLEtBQUFBLEdBQUFBLGFBQWlDQyxvQkFBQUEsa0JBQWtCLENBQUNDLGlCQUFpQjtJQUVyRSxNQUFNQyxRQUFRLHFCQUE4QixDQUE5QixJQUFJQyxNQUFNQyxlQUFBQSxtQkFBbUIsR0FBN0I7ZUFBQTtvQkFBQTtzQkFBQTtJQUE2QjtJQUMzQ0YsTUFBTUcsTUFBTSxHQUFNRCxlQUFBQSxtQkFBbUIsR0FBQyxNQUFHTixPQUFLLE1BQUdELE1BQUksTUFBR0UsYUFBVztJQUNuRSxPQUFPRztBQUNUO0FBY08sU0FBU1YsU0FDZCwyQkFBMkIsR0FDM0JLLEdBQVcsRUFDWEMsSUFBbUI7UUFFVkw7SUFBVEssUUFBQUEsT0FBQUEsT0FBQUEsT0FBU0wsQ0FBQUEsc0JBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLCtCQUFBQSxtQkFBb0JhLFFBQVEsdUJBQTVCYiw2QkFBZ0NjLFFBQUFBLElBQ3JDQyxlQUFBQSxZQUFZLENBQUNDLElBQUksR0FDakJELGVBQUFBLFlBQVksQ0FBQ0UsT0FBTztJQUV4QixNQUFNdkIsaUJBQWlCVSxLQUFLQyxNQUFNRSxvQkFBQUEsa0JBQWtCLENBQUNDLGlCQUFpQjtBQUN4RTtBQWFPLFNBQVNWLGtCQUNkLDJCQUEyQixHQUMzQk0sR0FBVyxFQUNYQyxJQUF5QztJQUF6Q0EsSUFBQUEsU0FBQUEsS0FBQUEsR0FBQUEsT0FBcUJVLGVBQUFBLFlBQVksQ0FBQ0UsT0FBTztJQUV6QyxNQUFNdkIsaUJBQWlCVSxLQUFLQyxNQUFNRSxvQkFBQUEsa0JBQWtCLENBQUNXLGlCQUFpQjtBQUN4RTtBQVVPLFNBQVNyQix3QkFBd0JZLEtBQWM7SUFDcEQsSUFBSSxDQUFDVSxDQUFBQSxHQUFBQSxlQUFBQSxlQUFBQSxFQUFnQlYsUUFBUSxPQUFPO0lBRXBDLHdFQUF3RTtJQUN4RSxrQkFBa0I7SUFDbEIsT0FBT0EsTUFBTUcsTUFBTSxDQUFDUSxLQUFLLENBQUMsS0FBS0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHQyxJQUFJLENBQUM7QUFDbkQ7QUFFTyxTQUFTMUIseUJBQXlCYSxLQUFvQjtJQUMzRCxJQUFJLENBQUNVLENBQUFBLEdBQUFBLGVBQUFBLGVBQUFBLEVBQWdCVixRQUFRO1FBQzNCLE1BQU0scUJBQWlDLENBQWpDLElBQUlDLE1BQU0seUJBQVY7bUJBQUE7d0JBQUE7MEJBQUE7UUFBZ0M7SUFDeEM7SUFFQSxPQUFPRCxNQUFNRyxNQUFNLENBQUNRLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0FBQ3RDO0FBRU8sU0FBU3pCLCtCQUErQmMsS0FBb0I7SUFDakUsSUFBSSxDQUFDVSxDQUFBQSxHQUFBQSxlQUFBQSxlQUFBQSxFQUFnQlYsUUFBUTtRQUMzQixNQUFNLHFCQUFpQyxDQUFqQyxJQUFJQyxNQUFNLHlCQUFWO21CQUFBO3dCQUFBOzBCQUFBO1FBQWdDO0lBQ3hDO0lBRUEsT0FBT2EsT0FBT2QsTUFBTUcsTUFBTSxDQUFDUSxLQUFLLENBQUMsS0FBS0ksRUFBRSxDQUFDLENBQUM7QUFDNUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWRpcmVjdFN0YXR1c0NvZGUgfSBmcm9tICcuL3JlZGlyZWN0LXN0YXR1cy1jb2RlJ1xuaW1wb3J0IHtcbiAgUmVkaXJlY3RUeXBlLFxuICB0eXBlIFJlZGlyZWN0RXJyb3IsXG4gIGlzUmVkaXJlY3RFcnJvcixcbiAgUkVESVJFQ1RfRVJST1JfQ09ERSxcbn0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuY29uc3QgYWN0aW9uQXN5bmNTdG9yYWdlID1cbiAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCdcbiAgICA/IChcbiAgICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvYWN0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9hY3Rpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbCcpXG4gICAgICApLmFjdGlvbkFzeW5jU3RvcmFnZVxuICAgIDogdW5kZWZpbmVkXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWRpcmVjdEVycm9yKFxuICB1cmw6IHN0cmluZyxcbiAgdHlwZTogUmVkaXJlY3RUeXBlLFxuICBzdGF0dXNDb2RlOiBSZWRpcmVjdFN0YXR1c0NvZGUgPSBSZWRpcmVjdFN0YXR1c0NvZGUuVGVtcG9yYXJ5UmVkaXJlY3Rcbik6IFJlZGlyZWN0RXJyb3Ige1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihSRURJUkVDVF9FUlJPUl9DT0RFKSBhcyBSZWRpcmVjdEVycm9yXG4gIGVycm9yLmRpZ2VzdCA9IGAke1JFRElSRUNUX0VSUk9SX0NPREV9OyR7dHlwZX07JHt1cmx9OyR7c3RhdHVzQ29kZX07YFxuICByZXR1cm4gZXJyb3Jcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBVUkwuIEl0IGNhbiBiZSB1c2VkIGluXG4gKiBbU2VydmVyIENvbXBvbmVudHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyksXG4gKiBbUm91dGUgSGFuZGxlcnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JvdXRpbmcvcm91dGUtaGFuZGxlcnMpLCBhbmRcbiAqIFtTZXJ2ZXIgQWN0aW9uc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9zZXJ2ZXItYWN0aW9ucy1hbmQtbXV0YXRpb25zKS5cbiAqXG4gKiAtIEluIGEgU2VydmVyIENvbXBvbmVudCwgdGhpcyB3aWxsIGluc2VydCBhIG1ldGEgdGFnIHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSB0YXJnZXQgcGFnZS5cbiAqIC0gSW4gYSBSb3V0ZSBIYW5kbGVyIG9yIFNlcnZlciBBY3Rpb24sIGl0IHdpbGwgc2VydmUgYSAzMDcvMzAzIHRvIHRoZSBjYWxsZXIuXG4gKiAtIEluIGEgU2VydmVyIEFjdGlvbiwgdHlwZSBkZWZhdWx0cyB0byAncHVzaCcgYW5kICdyZXBsYWNlJyBlbHNld2hlcmUuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgcmVkaXJlY3RgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvcmVkaXJlY3QpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWRpcmVjdChcbiAgLyoqIFRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gKi9cbiAgdXJsOiBzdHJpbmcsXG4gIHR5cGU/OiBSZWRpcmVjdFR5cGVcbik6IG5ldmVyIHtcbiAgdHlwZSA/Pz0gYWN0aW9uQXN5bmNTdG9yYWdlPy5nZXRTdG9yZSgpPy5pc0FjdGlvblxuICAgID8gUmVkaXJlY3RUeXBlLnB1c2hcbiAgICA6IFJlZGlyZWN0VHlwZS5yZXBsYWNlXG5cbiAgdGhyb3cgZ2V0UmVkaXJlY3RFcnJvcih1cmwsIHR5cGUsIFJlZGlyZWN0U3RhdHVzQ29kZS5UZW1wb3JhcnlSZWRpcmVjdClcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBVUkwuIEl0IGNhbiBiZSB1c2VkIGluXG4gKiBbU2VydmVyIENvbXBvbmVudHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyksXG4gKiBbUm91dGUgSGFuZGxlcnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JvdXRpbmcvcm91dGUtaGFuZGxlcnMpLCBhbmRcbiAqIFtTZXJ2ZXIgQWN0aW9uc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9zZXJ2ZXItYWN0aW9ucy1hbmQtbXV0YXRpb25zKS5cbiAqXG4gKiAtIEluIGEgU2VydmVyIENvbXBvbmVudCwgdGhpcyB3aWxsIGluc2VydCBhIG1ldGEgdGFnIHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSB0YXJnZXQgcGFnZS5cbiAqIC0gSW4gYSBSb3V0ZSBIYW5kbGVyIG9yIFNlcnZlciBBY3Rpb24sIGl0IHdpbGwgc2VydmUgYSAzMDgvMzAzIHRvIHRoZSBjYWxsZXIuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgcmVkaXJlY3RgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvcmVkaXJlY3QpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwZXJtYW5lbnRSZWRpcmVjdChcbiAgLyoqIFRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gKi9cbiAgdXJsOiBzdHJpbmcsXG4gIHR5cGU6IFJlZGlyZWN0VHlwZSA9IFJlZGlyZWN0VHlwZS5yZXBsYWNlXG4pOiBuZXZlciB7XG4gIHRocm93IGdldFJlZGlyZWN0RXJyb3IodXJsLCB0eXBlLCBSZWRpcmVjdFN0YXR1c0NvZGUuUGVybWFuZW50UmVkaXJlY3QpXG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZW5jb2RlZCBVUkwgZnJvbSB0aGUgZXJyb3IgaWYgaXQncyBhIFJlZGlyZWN0RXJyb3IsIG51bGxcbiAqIG90aGVyd2lzZS4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgdmFsaWRhdGUgdGhlIFVSTCByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgdGhlIGVycm9yIHRoYXQgbWF5IGJlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm4gdGhlIHVybCBpZiB0aGUgZXJyb3Igd2FzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVSTEZyb21SZWRpcmVjdEVycm9yKGVycm9yOiBSZWRpcmVjdEVycm9yKTogc3RyaW5nXG5leHBvcnQgZnVuY3Rpb24gZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IoZXJyb3I6IHVua25vd24pOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSByZXR1cm4gbnVsbFxuXG4gIC8vIFNsaWNlcyBvZmYgdGhlIGJlZ2lubmluZyBvZiB0aGUgZGlnZXN0IHRoYXQgY29udGFpbnMgdGhlIGNvZGUgYW5kIHRoZVxuICAvLyBzZXBhcmF0aW5nICc7Jy5cbiAgcmV0dXJuIGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpLnNsaWNlKDIsIC0yKS5qb2luKCc7Jylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZGlyZWN0VHlwZUZyb21FcnJvcihlcnJvcjogUmVkaXJlY3RFcnJvcik6IFJlZGlyZWN0VHlwZSB7XG4gIGlmICghaXNSZWRpcmVjdEVycm9yKGVycm9yKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGEgcmVkaXJlY3QgZXJyb3InKVxuICB9XG5cbiAgcmV0dXJuIGVycm9yLmRpZ2VzdC5zcGxpdCgnOycsIDIpWzFdIGFzIFJlZGlyZWN0VHlwZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yKGVycm9yOiBSZWRpcmVjdEVycm9yKTogbnVtYmVyIHtcbiAgaWYgKCFpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSByZWRpcmVjdCBlcnJvcicpXG4gIH1cblxuICByZXR1cm4gTnVtYmVyKGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpLmF0KC0yKSlcbn1cbiJdLCJuYW1lcyI6WyJnZXRSZWRpcmVjdEVycm9yIiwiZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yIiwiZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yIiwiZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IiLCJwZXJtYW5lbnRSZWRpcmVjdCIsInJlZGlyZWN0IiwiYWN0aW9uQXN5bmNTdG9yYWdlIiwid2luZG93IiwicmVxdWlyZSIsInVuZGVmaW5lZCIsInVybCIsInR5cGUiLCJzdGF0dXNDb2RlIiwiUmVkaXJlY3RTdGF0dXNDb2RlIiwiVGVtcG9yYXJ5UmVkaXJlY3QiLCJlcnJvciIsIkVycm9yIiwiUkVESVJFQ1RfRVJST1JfQ09ERSIsImRpZ2VzdCIsImdldFN0b3JlIiwiaXNBY3Rpb24iLCJSZWRpcmVjdFR5cGUiLCJwdXNoIiwicmVwbGFjZSIsIlBlcm1hbmVudFJlZGlyZWN0IiwiaXNSZWRpcmVjdEVycm9yIiwic3BsaXQiLCJzbGljZSIsImpvaW4iLCJOdW1iZXIiLCJhdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/render-from-template-context.js ***!
|
||
\**********************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderFromTemplateContext;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nfunction RenderFromTemplateContext() {\n const children = (0, _react.useContext)(_approutercontextsharedruntime.TemplateContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=render-from-template-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FLQTs7O2VBQXdCQTs7Ozs7NkVBSG9COzJEQUNaO0FBRWpCLFNBQVNBO0lBQ3RCLE1BQU1DLFdBQVdDLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdDLCtCQUFBQSxlQUFlO0lBQzNDLHFCQUFPO2tCQUFHRjs7QUFDWiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRlbXBsYXRlQ29udGV4dCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSZW5kZXJGcm9tVGVtcGxhdGVDb250ZXh0KCk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgY2hpbGRyZW4gPSB1c2VDb250ZXh0KFRlbXBsYXRlQ29udGV4dClcbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPlxufVxuIl0sIm5hbWVzIjpbIlJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQiLCJjaGlsZHJlbiIsInVzZUNvbnRleHQiLCJUZW1wbGF0ZUNvbnRleHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/aliased-prefetch-navigations.js":
|
||
/*!*************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/aliased-prefetch-navigations.js ***!
|
||
\*************************************************************************************************/
|
||
/***/ ((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 addSearchParamsToPageSegments: function() {\n return addSearchParamsToPageSegments;\n },\n handleAliasedPrefetchEntry: function() {\n return handleAliasedPrefetchEntry;\n }\n});\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _approuter = __webpack_require__(/*! ../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ./apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _createhreffromurl = __webpack_require__(/*! ./create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _fillcachewithnewsubtreedata = __webpack_require__(/*! ./fill-cache-with-new-subtree-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js\");\nconst _handlemutable = __webpack_require__(/*! ./handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _navigatereducer = __webpack_require__(/*! ./reducers/navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nfunction handleAliasedPrefetchEntry(navigatedAt, state, flightData, url, mutable) {\n let currentTree = state.tree;\n let currentCache = state.cache;\n const href = (0, _createhreffromurl.createHrefFromUrl)(url);\n let applied;\n let scrollableSegments = [];\n if (typeof flightData === 'string') {\n return false;\n }\n for (const normalizedFlightData of flightData){\n // If the segment doesn't have a loading component, we don't need to do anything.\n if (!hasLoadingComponentInSeedData(normalizedFlightData.seedData)) {\n continue;\n }\n let treePatch = normalizedFlightData.tree;\n // Segments are keyed by searchParams (e.g. __PAGE__?{\"foo\":\"bar\"}). We might return a less specific, param-less entry,\n // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree.\n // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set\n treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams));\n const { seedData, isRootRender, pathToSegment } = normalizedFlightData;\n // TODO-APP: remove ''\n const flightSegmentPathWithLeadingEmpty = [\n '',\n ...pathToSegment\n ];\n // Segments are keyed by searchParams (e.g. __PAGE__?{\"foo\":\"bar\"}). We might return a less specific, param-less entry,\n // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree.\n // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set\n treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams));\n let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href);\n const newCache = (0, _approuter.createEmptyCacheNode)();\n // The prefetch cache entry was aliased -- this signals that we only fill in the cache with the\n // loading state and not the actual parallel route seed data.\n if (isRootRender && seedData) {\n // Fill in the cache with the new loading / rsc data\n const rsc = seedData[1];\n const loading = seedData[3];\n newCache.loading = loading;\n newCache.rsc = rsc;\n // Construct a new tree and apply the aliased loading state for each parallel route\n fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, currentCache, treePatch, seedData);\n } else {\n // Copy rsc for the root node of the cache.\n newCache.rsc = currentCache.rsc;\n newCache.prefetchRsc = currentCache.prefetchRsc;\n newCache.loading = currentCache.loading;\n newCache.parallelRoutes = new Map(currentCache.parallelRoutes);\n // copy the loading state only into the leaf node (the part that changed)\n (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeDataButOnlyLoading)(navigatedAt, newCache, currentCache, normalizedFlightData);\n }\n // If we don't have an updated tree, there's no reason to update the cache, as the tree\n // dictates what cache nodes to render.\n if (newTree) {\n currentTree = newTree;\n currentCache = newCache;\n applied = true;\n }\n for (const subSegment of (0, _navigatereducer.generateSegmentsFromPatch)(treePatch)){\n const scrollableSegmentPath = [\n ...normalizedFlightData.pathToSegment,\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] !== _segment.DEFAULT_SEGMENT_KEY) {\n scrollableSegments.push(scrollableSegmentPath);\n }\n }\n }\n if (!applied) {\n return false;\n }\n mutable.patchedTree = currentTree;\n mutable.cache = currentCache;\n mutable.canonicalUrl = href;\n mutable.hashFragment = url.hash;\n mutable.scrollableSegments = scrollableSegments;\n return (0, _handlemutable.handleMutable)(state, mutable);\n}\nfunction hasLoadingComponentInSeedData(seedData) {\n if (!seedData) return false;\n const parallelRoutes = seedData[2];\n const loading = seedData[3];\n if (loading) {\n return true;\n }\n for(const key in parallelRoutes){\n if (hasLoadingComponentInSeedData(parallelRoutes[key])) {\n return true;\n }\n }\n return false;\n}\nfunction fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, existingCache, routerState, cacheNodeSeedData) {\n const isLastSegment = Object.keys(routerState[1]).length === 0;\n if (isLastSegment) {\n return;\n }\n for(const key in routerState[1]){\n const parallelRouteState = routerState[1][key];\n const segmentForParallelRoute = parallelRouteState[0];\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute);\n const parallelSeedData = cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined ? cacheNodeSeedData[2][key] : null;\n let newCacheNode;\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const rsc = parallelSeedData[1];\n const loading = parallelSeedData[3];\n newCacheNode = {\n lazyData: null,\n // copy the layout but null the page segment as that's not meant to be used\n rsc: segmentForParallelRoute.includes(_segment.PAGE_SEGMENT_KEY) ? null : rsc,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading,\n navigatedAt\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 head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\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 fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCacheNode, existingCache, parallelRouteState, parallelSeedData);\n }\n}\nfunction addSearchParamsToPageSegments(flightRouterState, searchParams) {\n const [segment, parallelRoutes, ...rest] = flightRouterState;\n // If it's a page segment, modify the segment by adding search params\n if (segment.includes(_segment.PAGE_SEGMENT_KEY)) {\n const newSegment = (0, _segment.addSearchParamsIfPageSegment)(segment, searchParams);\n return [\n newSegment,\n parallelRoutes,\n ...rest\n ];\n }\n // Otherwise, recurse through the parallel routes and return a new tree\n const updatedParallelRoutes = {};\n for (const [key, parallelRoute] of Object.entries(parallelRoutes)){\n updatedParallelRoutes[key] = addSearchParamsToPageSegments(parallelRoute, searchParams);\n }\n return [\n segment,\n updatedParallelRoutes,\n ...rest\n ];\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=aliased-prefetch-navigations.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2FsaWFzZWQtcHJlZmV0Y2gtbmF2aWdhdGlvbnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBc1BnQkEsNkJBQTZCO2VBQTdCQTs7SUExTkFDLDBCQUEwQjtlQUExQkE7OztxQ0FsQlQ7dUNBRThCO3lEQUNPOytDQUNWO2tEQUNHO3lEQUNxQjsyQ0FDNUI7NkNBQ1k7QUFVbkMsU0FBU0EsMkJBQ2RDLFdBQW1CLEVBQ25CQyxLQUEyQixFQUMzQkMsVUFBMkMsRUFDM0NDLEdBQVEsRUFDUkMsT0FBZ0I7SUFFaEIsSUFBSUMsY0FBY0osTUFBTUssSUFBSTtJQUM1QixJQUFJQyxlQUFlTixNQUFNTyxLQUFLO0lBQzlCLE1BQU1DLE9BQU9DLENBQUFBLEdBQUFBLG1CQUFBQSxpQkFBQUEsRUFBa0JQO0lBQy9CLElBQUlRO0lBQ0osSUFBSUMscUJBQTBDLEVBQUU7SUFFaEQsSUFBSSxPQUFPVixlQUFlLFVBQVU7UUFDbEMsT0FBTztJQUNUO0lBRUEsS0FBSyxNQUFNVyx3QkFBd0JYLFdBQVk7UUFDN0MsaUZBQWlGO1FBQ2pGLElBQUksQ0FBQ1ksOEJBQThCRCxxQkFBcUJFLFFBQVEsR0FBRztZQUNqRTtRQUNGO1FBRUEsSUFBSUMsWUFBWUgscUJBQXFCUCxJQUFJO1FBQ3pDLHVIQUF1SDtRQUN2SCxnSkFBZ0o7UUFDaEosc0hBQXNIO1FBQ3RIVSxZQUFZbEIsOEJBQ1ZrQixXQUNBQyxPQUFPQyxXQUFXLENBQUNmLElBQUlnQixZQUFZO1FBR3JDLE1BQU0sRUFBRUosUUFBUSxFQUFFSyxZQUFZLEVBQUVDLGFBQWEsRUFBRSxHQUFHUjtRQUNsRCxzQkFBc0I7UUFDdEIsTUFBTVMsb0NBQW9DO1lBQUM7ZUFBT0Q7U0FBYztRQUVoRSx1SEFBdUg7UUFDdkgsZ0pBQWdKO1FBQ2hKLHNIQUFzSDtRQUN0SEwsWUFBWWxCLDhCQUNWa0IsV0FDQUMsT0FBT0Ms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LFNBQVNwQyxnQkFBZ0IsR0FBR3FDLEtBQUssR0FBR0Y7SUFFM0MscUVBQXFFO0lBQ3JFLElBQUlDLFFBQVFSLFFBQVEsQ0FBQ0MsU0FBQUEsZ0JBQWdCLEdBQUc7UUFDdEMsTUFBTVMsYUFBYUMsQ0FBQUEsR0FBQUEsU0FBQUEsNEJBQUFBLEVBQTZCSCxTQUFTaEQ7UUFDekQsT0FBTztZQUFDa0Q7WUFBWXRDO2VBQW1CcUM7U0FBSztJQUM5QztJQUVBLHVFQUF1RTtJQUN2RSxNQUFNRyx3QkFBOEQsQ0FBQztJQUVyRSxLQUFLLE1BQU0sQ0FBQzFCLEtBQUsyQixjQUFjLElBQUl2RCxPQUFPd0QsT0FBTyxDQUFDMUMsZ0JBQWlCO1FBQ2pFd0MscUJBQXFCLENBQUMxQixJQUFJLEdBQUcvQyw4QkFDM0IwRSxlQUNBckQ7SUFFSjtJQUVBLE9BQU87UUFBQ2dEO1FBQVNJO1dBQTBCSDtLQUFLO0FBQ2xEIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2FsaWFzZWQtcHJlZmV0Y2gtbmF2aWdhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDYWNoZU5vZGVTZWVkRGF0YSxcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIEZsaWdodFNlZ21lbnRQYXRoLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB0eXBlIHsgQ2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQge1xuICBhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50LFxuICBERUZBVUxUX1NFR01FTlRfS0VZLFxuICBQQUdFX1NFR01FTlRfS0VZLFxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgdHlwZSB7IE5vcm1hbGl6ZWRGbGlnaHREYXRhIH0gZnJvbSAnLi4vLi4vZmxpZ2h0LWRhdGEtaGVscGVycydcbmltcG9ydCB7IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlIH0gZnJvbSAnLi4vYXBwLXJvdXRlcidcbmltcG9ydCB7IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSB9IGZyb20gJy4vYXBwbHktcm91dGVyLXN0YXRlLXBhdGNoLXRvLXRyZWUnXG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gJy4vY3JlYXRlLWhyZWYtZnJvbS11cmwnXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4vY3JlYXRlLXJvdXRlci1jYWNoZS1rZXknXG5pbXBvcnQgeyBmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGFCdXRPbmx5TG9hZGluZyB9IGZyb20gJy4vZmlsbC1jYWNoZS13aXRoLW5ldy1zdWJ0cmVlLWRhdGEnXG5pbXBvcnQgeyBoYW5kbGVNdXRhYmxlIH0gZnJvbSAnLi9oYW5kbGUtbXV0YWJsZSdcbmltcG9ydCB7IGdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2ggfSBmcm9tICcuL3JlZHVjZXJzL25hdmlnYXRlLXJlZHVjZXInXG5pbXBvcnQgdHlwZSB7IE11dGFibGUsIFJlYWRvbmx5UmVkdWNlclN0YXRlIH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci10eXBlcydcblxuLyoqXG4gKiBUaGlzIGlzIGEgc3RvcC1nYXAgdW50aWwgcGVyLXNlZ21lbnQgY2FjaGluZyBpcyBpbXBsZW1lbnRlZC4gSXQgbGV2ZXJhZ2VzIHRoZSBgYWxpYXNlZGAgZmxhZyB0aGF0IGlzIGFkZGVkXG4gKiB0byBwcmVmZXRjaCBlbnRyaWVzIHdoZW4gaXQncyBkZXRlcm1pbmVkIHRoYXQgdGhlIGxvYWRpbmcgc3RhdGUgZnJvbSB0aGF0IGVudHJ5IHNob3VsZCBiZSB1c2VkIGZvciB0aGlzIG5hdmlnYXRpb24uXG4gKiBUaGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBhbGlhc2VkIGVudHJ5IGFuZCBvbmx5IGFwcGxpZXMgdGhlIGxvYWRpbmcgc3RhdGUgdG8gdGhlIHVwZGF0ZWQgY2FjaGUgbm9kZS5cbiAqIFdlIHNob3VsZCByZW1vdmUgdGhpcyBvbmNlIHBlci1zZWdtZW50IGZldGNoaW5nIGlzIGltcGxlbWVudGVkIGFzIGlkZWFsbHkgdGhlIHByZWZldGNoIGNhY2hlIHdpbGwgY29udGFpbiBhXG4gKiBtb3JlIGdyYW51bGFyIHNlZ21lbnQgbWFwIGFuZCBzbyB0aGUgcm91dGVyIHdpbGwgYmUgYWJsZSB0byBzaW1wbHkgcmUtdXNlIHRoZSBsb2FkaW5nIHNlZ21lbnQgZm9yIHRoZSBuZXcgbmF2aWdhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUFsaWFzZWRQcmVmZXRjaEVudHJ5KFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIGZsaWdodERhdGE6IHN0cmluZyB8IE5vcm1hbGl6ZWRGbGlnaHREYXRhW10sXG4gIHVybDogVVJMLFxuICBtdXRhYmxlOiBNdXRhYmxlXG4pIHtcbiAgbGV0IGN1cnJlbnRUcmVlID0gc3RhdGUudHJlZVxuICBsZXQgY3VycmVudENhY2hlID0gc3RhdGUuY2FjaGVcbiAgY29uc3QgaHJlZiA9IGNyZWF0ZUhyZWZGcm9tVXJsKHVybClcbiAgbGV0IGFwcGxpZWRcbiAgbGV0IHNjcm9sbGFibGVTZWdtZW50czogRmxpZ2h0U2VnbWVudFBhdGhbXSA9IFtdXG5cbiAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZm9yIChjb25zdCBub3JtYWxpemVkRmxpZ2h0RGF0YSBvZiBmbGlnaHREYXRhKSB7XG4gICAgLy8gSWYgdGhlIHNlZ21lbnQgZG9lc24ndCBoYXZlIGEgbG9hZGluZyBjb21wb25lbnQsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcuXG4gICAgaWYgKCFoYXNMb2FkaW5nQ29tcG9uZW50SW5TZWVkRGF0YShub3JtYWxpemVkRmxpZ2h0RGF0YS5zZWVkRGF0YSkpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgbGV0IHRyZWVQYXRjaCA9IG5vcm1hbGl6ZWRGbGlnaHREYXRhLnRyZWVcbiAgICAvLyBTZWdtZW50cyBhcmUga2V5ZWQgYnkgc2VhcmNoUGFyYW1zIChlLmcuIF9fUEFHRV9fP3tcImZvb1wiOlwiYmFyXCJ9KS4gV2UgbWlnaHQgcmV0dXJuIGEgbGVzcyBzcGVjaWZpYywgcGFyYW0tbGVzcyBlbnRyeSxcbiAgICAvLyBzbyB3ZSBlbnN1cmUgdGhhdCB0aGUgZmluYWwgdHJlZSBjb250YWlucyB0aGUgY29ycmVjdCBzZWFyY2hQYXJhbXMgKHJlZmxlY3RlZCBpbiB0aGUgVVJMKSBhcmUgcHJvdmlkZWQgaW4gdGhlIHVwZGF0ZWQgRmxpZ2h0Um91dGVyU3RhdGUgdHJlZS5cbiAgICAvLyBXZSBvbmx5IGRvIHRoaXMgb24gdGhlIGZpcnN0IHJlYWQsIGFzIG90aGVyd2lzZSB3ZSdkIGJlIG92ZXJ3cml0aW5nIHRoZSBzZWFyY2hQYXJhbXMgdGhhdCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0XG4gICAgdHJlZVBhdGNoID0gYWRkU2VhcmNoUGFyYW1zVG9QYWdlU2VnbWVudHMoXG4gICAgICB0cmVlUGF0Y2gsXG4gICAgICBPYmplY3QuZnJvbUVudHJpZXModXJsLnNlYXJjaFBhcmFtcylcbiAgICApXG5cbiAgICBjb25zdCB7IHNlZWREYXRhLCBpc1Jvb3RSZW5kZXIsIHBhdGhUb1NlZ21lbnQgfSA9IG5vcm1hbGl6ZWRGbGlnaHREYXRhXG4gICAgLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgIGNvbnN0IGZsaWdodFNlZ21lbnRQYXRoV2l0aExlYWRpbmdFbXB0eSA9IFsnJywgLi4ucGF0aFRvU2VnbWVudF1cblxuICAgIC8vIFNlZ21lbnRzIGFyZSBrZXllZCBieSBzZWFyY2hQYXJhbXMgKGUuZy4gX19QQUdFX18/e1wiZm9vXCI6XCJiYXJcIn0pLiBXZSBtaWdodCByZXR1cm4gYSBsZXNzIHNwZWNpZmljLCBwYXJhbS1sZXNzIGVudHJ5LFxuICAgIC8vIHNvIHdlIGVuc3VyZSB0aGF0IHRoZSBmaW5hbCB0cmVlIGNvbnRhaW5zIHRoZSBjb3JyZWN0IHNlYXJjaFBhcmFtcyAocmVmbGVjdGVkIGluIHRoZSBVUkwpIGFyZSBwcm92aWRlZCBpbiB0aGUgdXBkYXRlZCBGbGlnaHRSb3V0ZXJTdGF0ZSB0cmVlLlxuICAgIC8vIFdlIG9ubHkgZG8gdGhpcyBvbiB0aGUgZmlyc3QgcmVhZCwgYXMgb3RoZXJ3aXNlIHdlJ2QgYmUgb3ZlcndyaXRpbmcgdGhlIHNlYXJjaFBhcmFtcyB0aGF0IG1heSBoYXZlIGFscmVhZHkgYmVlbiBzZXRcbiAgICB0cmVlUGF0Y2ggPSBhZGRTZWFyY2hQYXJhbXNUb1BhZ2VTZWdtZW50cyhcbiAgICAgIHRyZWVQYXRjaCxcbiAgICAgIE9iamVjdC5mcm9tRW50cmllcyh1cmwuc2VhcmNoUGFyYW1zKVxuICAgIClcblxuICAgIGxldCBuZXdUcmVlID0gYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlKFxuICAgICAgZmxpZ2h0U2VnbWVudFBhdGhXaXRoTGVhZGluZ0VtcHR5LFxuICAgICAgY3VycmVudFRyZWUsXG4gICAgICB0cmVlUGF0Y2gsXG4gICAgICBocmVmXG4gICAgKVxuXG4gICAgY29uc3QgbmV3Q2FjaGUgPSBjcmVhdGVFbXB0eUNhY2hlTm9kZSgpXG5cbiAgICAvLyBUaGUgcHJlZmV0Y2ggY2FjaGUgZW50cnkgd2FzIGFsaWFzZWQgLS0gdGhpcyBzaWduYWxzIHRoYXQgd2Ugb25seSBmaWxsIGluIHRoZSBjYWNoZSB3aXRoIHRoZVxuICAgIC8vIGxvYWRpbmcgc3RhdGUgYW5kIG5vdCB0aGUgYWN0dWFsIHBhcmFsbGVsIHJvdXRlIHNlZWQgZGF0YS5cbiAgICBpZiAoaXNSb290UmVuZGVyICYmIHNlZWREYXRhKSB7XG4gICAgICAvLyBGaWxsIGluIHRoZSBjYWNoZSB3aXRoIHRoZSBuZXcgbG9hZGluZyAvIHJzYyBkYXRhXG4gICAgICBjb25zdCByc2MgPSBzZWVkRGF0YVsxXVxuICAgICAgY29uc3QgbG9hZGluZyA9IHNlZWREYXRhWzNdXG4gICAgICBuZXdDYWNoZS5sb2FkaW5nID0gbG9hZGluZ1xuICAgICAgbmV3Q2FjaGUucnNjID0gcnNjXG5cbiAgICAgIC8vIENvbnN0cnVjdCBhIG5ldyB0cmVlIGFuZCBhcHBseSB0aGUgYWxpYXNlZCBsb2FkaW5nIHN0YXRlIGZvciBlYWNoIHBhcmFsbGVsIHJvdXRlXG4gICAgICBmaWxsTmV3VHJlZVdpdGhPbmx5TG9hZGluZ1NlZ21lbnRzKFxuICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgICAgbmV3Q2FjaGUsXG4gICAgICAgIGN1cnJlbnRDYWNoZSxcbiAgICAgICAgdHJlZVBhdGNoLFxuICAgICAgICBzZWVkRGF0YVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb3B5IHJzYyBmb3IgdGhlIHJvb3Qgbm9kZSBvZiB0aGUgY2FjaGUuXG4gICAgICBuZXdDYWNoZS5yc2MgPSBjdXJyZW50Q2FjaGUucnNjXG4gICAgICBuZXdDYWNoZS5wcmVmZXRjaFJzYyA9IGN1cnJlbnRDYWNoZS5wcmVmZXRjaFJzY1xuICAgICAgbmV3Q2FjaGUubG9hZGluZyA9IGN1cnJlbnRDYWNoZS5sb2FkaW5nXG4gICAgICBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcyA9IG5ldyBNYXAoY3VycmVudENhY2hlLnBhcmFsbGVsUm91dGVzKVxuXG4gICAgICAvLyBjb3B5IHRoZSBsb2FkaW5nIHN0YXRlIG9ubHkgaW50byB0aGUgbGVhZiBub2RlICh0aGUgcGFydCB0aGF0IGNoYW5nZWQpXG4gICAgICBmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGFCdXRPbmx5TG9hZGluZyhcbiAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgIG5ld0NhY2hlLFxuICAgICAgICBjdXJyZW50Q2FjaGUsXG4gICAgICAgIG5vcm1hbGl6ZWRGbGlnaHREYXRhXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbiB1cGRhdGVkIHRyZWUsIHRoZXJlJ3Mgbm8gcmVhc29uIHRvIHVwZGF0ZSB0aGUgY2FjaGUsIGFzIHRoZSB0cmVlXG4gICAgLy8gZGljdGF0ZXMgd2hhdCBjYWNoZSBub2RlcyB0byByZW5kZXIuXG4gICAgaWYgKG5ld1RyZWUpIHtcbiAgICAgIGN1cnJlbnRUcmVlID0gbmV3VHJlZVxuICAgICAgY3VycmVudENhY2hlID0gbmV3Q2FjaGVcbiAgICAgIGFwcGxpZWQgPSB0cnVlXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBzdWJTZWdtZW50IG9mIGdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2godHJlZVBhdGNoKSkge1xuICAgICAgY29uc3Qgc2Nyb2xsYWJsZVNlZ21lbnRQYXRoID0gW1xuICAgICAgICAuLi5ub3JtYWxpemVkRmxpZ2h0RGF0YS5wYXRoVG9TZWdtZW50LFxuICAgICAgICAuLi5zdWJTZWdtZW50LFxuICAgICAgXVxuICAgICAgLy8gRmlsdGVyIG91dCB0aGUgX19ERUZBVUxUX18gcGF0aHMgYXMgdGhleSBzaG91bGRuJ3QgYmUgc2Nyb2xsZWQgdG8gaW4gdGhpcyBjYXNlLlxuICAgICAgaWYgKFxuICAgICAgICBzY3JvbGxhYmxlU2VnbWVudFBhdGhbc2Nyb2xsYWJsZVNlZ21lbnRQYXRoLmxlbmd0aCAtIDFdICE9PVxuICAgICAgICBERUZBVUxUX1NFR01FTlRfS0VZXG4gICAgICApIHtcbiAgICAgICAgc2Nyb2xsYWJsZVNlZ21lbnRzLnB1c2goc2Nyb2xsYWJsZVNlZ21lbnRQYXRoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghYXBwbGllZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgbXV0YWJsZS5wYXRjaGVkVHJlZSA9IGN1cnJlbnRUcmVlXG4gIG11dGFibGUuY2FjaGUgPSBjdXJyZW50Q2FjaGVcbiAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSBocmVmXG4gIG11dGFibGUuaGFzaEZyYWdtZW50ID0gdXJsLmhhc2hcbiAgbXV0YWJsZS5zY3JvbGxhYmxlU2VnbWVudHMgPSBzY3JvbGxhYmxlU2VnbWVudHNcblxuICByZXR1cm4gaGFuZGxlTXV0YWJsZShzdGF0ZSwgbXV0YWJsZSlcbn1cblxuZnVuY3Rpb24gaGFzTG9hZGluZ0NvbXBvbmVudEluU2VlZERhdGEoc2VlZERhdGE6IENhY2hlTm9kZVNlZWREYXRhIHwgbnVsbCkge1xuICBpZiAoIXNlZWREYXRhKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBwYXJhbGxlbFJvdXRlcyA9IHNlZWREYXRhWzJdXG4gIGNvbnN0IGxvYWRpbmcgPSBzZWVkRGF0YVszXVxuXG4gIGlmIChsb2FkaW5nKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IGluIHBhcmFsbGVsUm91dGVzKSB7XG4gICAgaWYgKGhhc0xvYWRpbmdDb21wb25lbnRJblNlZWREYXRhKHBhcmFsbGVsUm91dGVzW2tleV0pKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBmaWxsTmV3VHJlZVdpdGhPbmx5TG9hZGluZ1NlZ21lbnRzKFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICBuZXdDYWNoZTogQ2FjaGVOb2RlLFxuICBleGlzdGluZ0NhY2hlOiBDYWNoZU5vZGUsXG4gIHJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgY2FjaGVOb2RlU2VlZERhdGE6IENhY2hlTm9kZVNlZWREYXRhIHwgbnVsbFxuKSB7XG4gIGNvbnN0IGlzTGFzdFNlZ21lbnQgPSBPYmplY3Qua2V5cyhyb3V0ZXJTdGF0ZVsxXSkubGVuZ3RoID09PSAwXG4gIGlmIChpc0xhc3RTZWdtZW50KSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBpbiByb3V0ZXJTdGF0ZVsxXSkge1xuICAgIGNvbnN0IHBhcmFsbGVsUm91dGVTdGF0ZSA9IHJvdXRlclN0YXRlWzFdW2tleV1cbiAgICBjb25zdCBzZWdtZW50Rm9yUGFyYWxsZWxSb3V0ZSA9IHBhcmFsbGVsUm91dGVTdGF0ZVswXVxuICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudEZvclBhcmFsbGVsUm91dGUpXG5cbiAgICBjb25zdCBwYXJhbGxlbFNlZWREYXRhID1cbiAgICAgIGNhY2hlTm9kZVNlZWREYXRhICE9PSBudWxsICYmIGNhY2hlTm9kZVNlZWREYXRhWzJdW2tleV0gIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGNhY2hlTm9kZVNlZWREYXRhWzJdW2tleV1cbiAgICAgICAgOiBudWxsXG5cbiAgICBsZXQgbmV3Q2FjaGVOb2RlOiBDYWNoZU5vZGVcbiAgICBpZiAocGFyYWxsZWxTZWVkRGF0YSAhPT0gbnVsbCkge1xuICAgICAgLy8gTmV3IGRhdGEgd2FzIHNlbnQgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgY29uc3QgcnNjID0gcGFyYWxsZWxTZWVkRGF0YVsxXVxuICAgICAgY29uc3QgbG9hZGluZyA9IHBhcmFsbGVsU2VlZERhdGFbM11cbiAgICAgIG5ld0NhY2hlTm9kZSA9IHtcbiAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgIC8vIGNvcHkgdGhlIGxheW91dCBidXQgbnVsbCB0aGUgcGFnZSBzZWdtZW50IGFzIHRoYXQncyBub3QgbWVhbnQgdG8gYmUgdXNlZFxuICAgICAgICByc2M6IHNlZ21lbnRGb3JQYXJhbGxlbFJvdXRlLmluY2x1ZGVzKFBBR0VfU0VHTUVOVF9LRVkpID8gbnVsbCA6IHJzYyxcbiAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKSxcbiAgICAgICAgbG9hZGluZyxcbiAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGRhdGEgYXZhaWxhYmxlIGZvciB0aGlzIG5vZGUuIFRoaXMgd2lsbCB0cmlnZ2VyIGEgbGF6eSBmZXRjaFxuICAgICAgLy8gZHVyaW5nIHJlbmRlci5cbiAgICAgIG5ld0NhY2hlTm9kZSA9IHtcbiAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgIHJzYzogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKSxcbiAgICAgICAgbG9hZGluZzogbnVsbCxcbiAgICAgICAgbmF2aWdhdGVkQXQ6IC0xLFxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nUGFyYWxsZWxSb3V0ZXMgPSBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQoa2V5KVxuICAgIGlmIChleGlzdGluZ1BhcmFsbGVsUm91dGVzKSB7XG4gICAgICBleGlzdGluZ1BhcmFsbGVsUm91dGVzLnNldChjYWNoZUtleSwgbmV3Q2FjaGVOb2RlKVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5zZXQoa2V5LCBuZXcgTWFwKFtbY2FjaGVLZXksIG5ld0NhY2hlTm9kZV1dKSlcbiAgICB9XG5cbiAgICBmaWxsTmV3VHJlZVdpdGhPbmx5TG9hZGluZ1NlZ21lbnRzKFxuICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICBuZXdDYWNoZU5vZGUsXG4gICAgICBleGlzdGluZ0NhY2hlLFxuICAgICAgcGFyYWxsZWxSb3V0ZVN0YXRlLFxuICAgICAgcGFyYWxsZWxTZWVkRGF0YVxuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIEFkZCBzZWFyY2ggcGFyYW1zIHRvIHRoZSBwYWdlIHNlZ21lbnRzIGluIHRoZSBmbGlnaHQgcm91dGVyIHN0YXRlXG4gKiBQYWdlIHNlZ21lbnRzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBzZWFyY2ggcGFyYW1zIGhhdmUgYSBwYWdlIHNlZ21lbnQga2V5XG4gKiBmb2xsb3dlZCBieSBhIHF1ZXJ5IHN0cmluZy4gVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0aG9zZSBwYXJhbXMgdG8gdGhlIHBhZ2Ugc2VnbWVudC5cbiAqIFRoaXMgaXMgdXNlZnVsIGlmIHdlIHJldHVybiBhbiBhbGlhc2VkIHByZWZldGNoIGVudHJ5IChpZSwgd29uJ3QgaGF2ZSBzZWFyY2ggcGFyYW1zKVxuICogYnV0IHRoZSBjYW5vbmljYWwgcm91dGVyIFVSTCBoYXMgc2VhcmNoIHBhcmFtcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc1RvUGFnZVNlZ21lbnRzKFxuICBmbGlnaHRSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pOiBGbGlnaHRSb3V0ZXJTdGF0ZSB7XG4gIGNvbnN0IFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlcywgLi4ucmVzdF0gPSBmbGlnaHRSb3V0ZXJTdGF0ZVxuXG4gIC8vIElmIGl0J3MgYSBwYWdlIHNlZ21lbnQsIG1vZGlmeSB0aGUgc2VnbWVudCBieSBhZGRpbmcgc2VhcmNoIHBhcmFtc1xuICBpZiAoc2VnbWVudC5pbmNsdWRlcyhQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgIGNvbnN0IG5ld1NlZ21lbnQgPSBhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50KHNlZ21lbnQsIHNlYXJjaFBhcmFtcylcbiAgICByZXR1cm4gW25ld1NlZ21lbnQsIHBhcmFsbGVsUm91dGVzLCAuLi5yZXN0XVxuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCByZWN1cnNlIHRocm91Z2ggdGhlIHBhcmFsbGVsIHJvdXRlcyBhbmQgcmV0dXJuIGEgbmV3IHRyZWVcbiAgY29uc3QgdXBkYXRlZFBhcmFsbGVsUm91dGVzOiB7IFtrZXk6IHN0cmluZ106IEZsaWdodFJvdXRlclN0YXRlIH0gPSB7fVxuXG4gIGZvciAoY29uc3QgW2tleSwgcGFyYWxsZWxSb3V0ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYWxsZWxSb3V0ZXMpKSB7XG4gICAgdXBkYXRlZFBhcmFsbGVsUm91dGVzW2tleV0gPSBhZGRTZWFyY2hQYXJhbXNUb1BhZ2VTZWdtZW50cyhcbiAgICAgIHBhcmFsbGVsUm91dGUsXG4gICAgICBzZWFyY2hQYXJhbXNcbiAgICApXG4gIH1cblxuICByZXR1cm4gW3NlZ21lbnQsIHVwZGF0ZWRQYXJhbGxlbFJvdXRlcywgLi4ucmVzdF1cbn1cbiJdLCJuYW1lcyI6WyJhZGRTZWFyY2hQYXJhbXNUb1BhZ2VTZWdtZW50cyIsImhhbmRsZUFsaWFzZWRQcmVmZXRjaEVudHJ5IiwibmF2aWdhdGVkQXQiLCJzdGF0ZSIsImZsaWdodERhdGEiLCJ1cmwiLCJtdXRhYmxlIiwiY3VycmVudFRyZWUiLCJ0cmVlIiwiY3VycmVudENhY2hlIiwiY2FjaGUiLCJocmVmIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJhcHBsaWVkIiwic2Nyb2xsYWJsZVNlZ21lbnRzIiwibm9ybWFsaXplZEZsaWdodERhdGEiLCJoYXNMb2FkaW5nQ29tcG9uZW50SW5TZWVkRGF0YSIsInNlZWREYXRhIiwidHJlZVBhdGNoIiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJzZWFyY2hQYXJhbXMiLCJpc1Jvb3RSZW5kZXIiLCJwYXRoVG9TZWdtZW50IiwiZmxpZ2h0U2VnbWVudFBhdGhXaXRoTGVhZGluZ0VtcHR5IiwibmV3VHJlZSIsImFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSIsIm5ld0NhY2hlIiwiY3JlYXRlRW1wdHlDYWNoZU5vZGUiLCJyc2MiLCJsb2FkaW5nIiwiZmlsbE5ld1RyZWVXaXRoT25seUxvYWRpbmdTZWdtZW50cyIsInByZWZldGNoUnNjIiwicGFyYWxsZWxSb3V0ZXMiLCJNYXAiLCJmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGFCdXRPbmx5TG9hZGluZyIsInN1YlNlZ21lbnQiLCJnZW5lcmF0ZVNlZ21lbnRzRnJvbVBhdGNoIiwic2Nyb2xsYWJsZVNlZ21lbnRQYXRoIiwibGVuZ3RoIiwiREVGQVVMVF9TRUdNRU5UX0tFWSIsInB1c2giLCJwYXRjaGVkVHJlZSIsImNhbm9uaWNhbFVybCIsImhhc2hGcmFnbWVudCIsImhhc2giLCJoYW5kbGVNdXRhYmxlIiwia2V5IiwiZXhpc3RpbmdDYWNoZSIsInJvdXRlclN0YXRlIiwiY2FjaGVOb2RlU2VlZERhdGEiLCJpc0xhc3RTZWdtZW50Iiwia2V5cyIsInBhcmFsbGVsUm91dGVTdGF0ZSIsInNlZ21lbnRGb3JQYXJhbGxlbFJvdXRlIiwiY2FjaGVLZXkiLCJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsInBhcmFsbGVsU2VlZERhdGEiLCJ1bmRlZmluZWQiLCJuZXdDYWNoZU5vZGUiLCJsYXp5RGF0YSIsImluY2x1ZGVzIiwiUEFHRV9TRUdNRU5UX0tFWSIsImhlYWQiLCJwcmVmZXRjaEhlYWQiLCJleGlzdGluZ1BhcmFsbGVsUm91dGVzIiwiZ2V0Iiwic2V0IiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJzZWdtZW50IiwicmVzdCIsIm5ld1NlZ21lbnQiLCJhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50IiwidXBkYXRlZFBhcmFsbGVsUm91dGVzIiwicGFyYWxsZWxSb3V0ZSIsImVudHJpZXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/aliased-prefetch-navigations.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js ***!
|
||
\**************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"applyFlightData\", ({\n enumerable: true,\n get: function() {\n return applyFlightData;\n }\n}));\nconst _filllazyitemstillleafwithhead = __webpack_require__(/*! ./fill-lazy-items-till-leaf-with-head */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\nconst _fillcachewithnewsubtreedata = __webpack_require__(/*! ./fill-cache-with-new-subtree-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js\");\nfunction applyFlightData(navigatedAt, existingCache, cache, flightData, prefetchEntry) {\n // The one before last item is the router state tree patch\n const { tree: treePatch, seedData, head, isRootRender } = flightData;\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (seedData === null) {\n return false;\n }\n if (isRootRender) {\n const rsc = seedData[1];\n const loading = seedData[3];\n cache.loading = loading;\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, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, existingCache, treePatch, seedData, head, prefetchEntry);\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 cache.loading = existingCache.loading;\n // Create a copy of the existing cache with the rsc applied.\n (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeData)(navigatedAt, cache, existingCache, flightData, prefetchEntry);\n }\n return true;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=apply-flight-data.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2FwcGx5LWZsaWdodC1kYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBTWdCQTs7O2VBQUFBOzs7MkRBTDhCO3lEQUNGO0FBSXJDLFNBQVNBLGdCQUNkQyxXQUFtQixFQUNuQkMsYUFBd0IsRUFDeEJDLEtBQWdCLEVBQ2hCQyxVQUFnQyxFQUNoQ0MsYUFBa0M7SUFFbEMsMERBQTBEO0lBQzFELE1BQU0sRUFBRUMsTUFBTUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsWUFBWSxFQUFFLEdBQUdOO0lBRTFELDhGQUE4RjtJQUM5RixJQUFJSSxhQUFhLE1BQU07UUFDckIsT0FBTztJQUNUO0lBRUEsSUFBSUUsY0FBYztRQUNoQixNQUFNQyxNQUFNSCxRQUFRLENBQUMsRUFBRTtRQUN2QixNQUFNSSxVQUFVSixRQUFRLENBQUMsRUFBRTtRQUMzQkwsTUFBTVMsT0FBTyxHQUFHQTtRQUNoQlQsTUFBTVEsR0FBRyxHQUFHQTtRQUNaLGtFQUFrRTtRQUNsRSxvRUFBb0U7UUFDcEUsMkRBQTJEO1FBQzNELGtFQUFrRTtRQUNsRSwrQkFBK0I7UUFDL0JSLE1BQU1VLFdBQVcsR0FBRztRQUNwQkMsQ0FBQUEsR0FBQUEsK0JBQUFBLDZCQUFBQSxFQUNFYixhQUNBRSxPQUNBRCxlQUNBSyxXQUNBQyxVQUNBQyxNQUNBSjtJQUVKLE9BQU87UUFDTCwyQ0FBMkM7UUFDM0NGLE1BQU1RLEdBQUcsR0FBR1QsY0FBY1MsR0FBRztRQUM3QixvRUFBb0U7UUFDcEUsa0VBQWtFO1FBQ2xFLDJCQUEyQjtRQUMzQlIsTUFBTVUsV0FBVyxHQUFHWCxjQUFjVyxXQUFXO1FBQzdDVixNQUFNWSxjQUFjLEdBQUcsSUFBSUMsSUFBSWQsY0FBY2EsY0FBYztRQUMzRFosTUFBTVMsT0FBTyxHQUFHVixjQUFjVSxPQUFPO1FBQ3JDLDREQUE0RDtRQUM1REssQ0FBQUEsR0FBQUEsNkJBQUFBLDJCQUFBQSxFQUNFaEIsYUFDQUUsT0FDQUQsZUFDQUUsWUFDQUM7SUFFSjtJQUVBLE9BQU87QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9hcHBseS1mbGlnaHQtZGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQgfSBmcm9tICcuL2ZpbGwtbGF6eS1pdGVtcy10aWxsLWxlYWYtd2l0aC1oZWFkJ1xuaW1wb3J0IHsgZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhIH0gZnJvbSAnLi9maWxsLWNhY2hlLXdpdGgtbmV3LXN1YnRyZWUtZGF0YSdcbmltcG9ydCB0eXBlIHsgUHJlZmV0Y2hDYWNoZUVudHJ5IH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB0eXBlIHsgTm9ybWFsaXplZEZsaWdodERhdGEgfSBmcm9tICcuLi8uLi9mbGlnaHQtZGF0YS1oZWxwZXJzJ1xuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlGbGlnaHREYXRhKFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICBleGlzdGluZ0NhY2hlOiBDYWNoZU5vZGUsXG4gIGNhY2hlOiBDYWNoZU5vZGUsXG4gIGZsaWdodERhdGE6IE5vcm1hbGl6ZWRGbGlnaHREYXRhLFxuICBwcmVmZXRjaEVudHJ5PzogUHJlZmV0Y2hDYWNoZUVudHJ5XG4pOiBib29sZWFuIHtcbiAgLy8gVGhlIG9uZSBiZWZvcmUgbGFzdCBpdGVtIGlzIHRoZSByb3V0ZXIgc3RhdGUgdHJlZSBwYXRjaFxuICBjb25zdCB7IHRyZWU6IHRyZWVQYXRjaCwgc2VlZERhdGEsIGhlYWQsIGlzUm9vdFJlbmRlciB9ID0gZmxpZ2h0RGF0YVxuXG4gIC8vIEhhbmRsZXMgY2FzZSB3aGVyZSBwcmVmZXRjaCBvbmx5IHJldHVybnMgdGhlIHJvdXRlciB0cmVlIHBhdGNoIHdpdGhvdXQgcmVuZGVyZWQgY29tcG9uZW50cy5cbiAgaWYgKHNlZWREYXRhID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoaXNSb290UmVuZGVyKSB7XG4gICAgY29uc3QgcnNjID0gc2VlZERhdGFbMV1cbiAgICBjb25zdCBsb2FkaW5nID0gc2VlZERhdGFbM11cbiAgICBjYWNoZS5sb2FkaW5nID0gbG9hZGluZ1xuICAgIGNhY2hlLnJzYyA9IHJzY1xuICAgIC8vIFRoaXMgaXMgYSBQUFItb25seSBmaWVsZC4gV2hlbiBQUFIgaXMgZW5hYmxlZCwgd2Ugc2hvdWxkbid0IGhpdFxuICAgIC8vIHRoaXMgcGF0aCBkdXJpbmcgYSBuYXZpZ2F0aW9uLCBidXQgdW50aWwgUFBSIGlzIGZ1bGx5IGltcGxlbWVudGVkXG4gICAgLy8geWV0IGl0J3MgcG9zc2libGUgdGhlIGV4aXN0aW5nIG5vZGUgZG9lcyBoYXZlIGEgbm9uLW51bGxcbiAgICAvLyBgcHJlZmV0Y2hSc2NgLiBBcyBhbiBpbmNyZW1lbnRhbCBzdGVwLCB3ZSdsbCBqdXN0IGRlLW9wdCB0byB0aGVcbiAgICAvLyBvbGQgYmVoYXZpb3Ig4oCUIG5vIFBQUiB2YWx1ZS5cbiAgICBjYWNoZS5wcmVmZXRjaFJzYyA9IG51bGxcbiAgICBmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZChcbiAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgY2FjaGUsXG4gICAgICBleGlzdGluZ0NhY2hlLFxuICAgICAgdHJlZVBhdGNoLFxuICAgICAgc2VlZERhdGEsXG4gICAgICBoZWFkLFxuICAgICAgcHJlZmV0Y2hFbnRyeVxuICAgIClcbiAgfSBlbHNlIHtcbiAgICAvLyBDb3B5IHJzYyBmb3IgdGhlIHJvb3Qgbm9kZSBvZiB0aGUgY2FjaGUuXG4gICAgY2FjaGUucnNjID0gZXhpc3RpbmdDYWNoZS5yc2NcbiAgICAvLyBUaGlzIGlzIGEgUFBSLW9ubHkgZmllbGQuIFVubGlrZSB0aGUgcHJldmlvdXMgYnJhbmNoLCBzaW5jZSB3ZSdyZVxuICAgIC8vIGp1c3QgY2xvbmluZyB0aGUgZXhpc3RpbmcgY2FjaGUgbm9kZSwgd2UgbWlnaHQgYXMgd2VsbCBrZWVwIHRoZVxuICAgIC8vIFBQUiB2YWx1ZSwgaWYgaXQgZXhpc3RzLlxuICAgIGNhY2hlLnByZWZldGNoUnNjID0gZXhpc3RpbmdDYWNoZS5wcmVmZXRjaFJzY1xuICAgIGNhY2hlLnBhcmFsbGVsUm91dGVzID0gbmV3IE1hcChleGlzdGluZ0NhY2hlLnBhcmFsbGVsUm91dGVzKVxuICAgIGNhY2hlLmxvYWRpbmcgPSBleGlzdGluZ0NhY2hlLmxvYWRpbmdcbiAgICAvLyBDcmVhdGUgYSBjb3B5IG9mIHRoZSBleGlzdGluZyBjYWNoZSB3aXRoIHRoZSByc2MgYXBwbGllZC5cbiAgICBmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGEoXG4gICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgIGNhY2hlLFxuICAgICAgZXhpc3RpbmdDYWNoZSxcbiAgICAgIGZsaWdodERhdGEsXG4gICAgICBwcmVmZXRjaEVudHJ5XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cbiJdLCJuYW1lcyI6WyJhcHBseUZsaWdodERhdGEiLCJuYXZpZ2F0ZWRBdCIsImV4aXN0aW5nQ2FjaGUiLCJjYWNoZSIsImZsaWdodERhdGEiLCJwcmVmZXRjaEVudHJ5IiwidHJlZSIsInRyZWVQYXRjaCIsInNlZWREYXRhIiwiaGVhZCIsImlzUm9vdFJlbmRlciIsInJzYyIsImxvYWRpbmciLCJwcmVmZXRjaFJzYyIsImZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIiwicGFyYWxsZWxSb3V0ZXMiLCJNYXAiLCJmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGEiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js":
|
||
/*!*****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js ***!
|
||
\*****************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"applyRouterStatePatchToTree\", ({\n enumerable: true,\n get: function() {\n return applyRouterStatePatchToTree;\n }\n}));\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _matchsegments = __webpack_require__(/*! ../match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nconst _refetchinactiveparallelsegments = __webpack_require__(/*! ./refetch-inactive-parallel-segments */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js\");\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) {\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 if (patchSegment === _segment.DEFAULT_SEGMENT_KEY && initialSegment !== _segment.DEFAULT_SEGMENT_KEY) {\n return initialTree;\n }\n if ((0, _matchsegments.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]);\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 // Copy over the existing tree\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 applyRouterStatePatchToTree(flightSegmentPath, flightRouterState, treePatch, path) {\n const [segment, parallelRoutes, url, refetch, isRootLayout] = flightRouterState;\n // Root refresh\n if (flightSegmentPath.length === 1) {\n const tree = applyPatch(flightRouterState, treePatch);\n (0, _refetchinactiveparallelsegments.addRefreshMarkerToActiveParallelSegments)(tree, path);\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, _matchsegments.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);\n } else {\n parallelRoutePatch = applyRouterStatePatchToTree((0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath), parallelRoutes[parallelRouteKey], treePatch, path);\n if (parallelRoutePatch === null) {\n return null;\n }\n }\n const tree = [\n flightSegmentPath[0],\n {\n ...parallelRoutes,\n [parallelRouteKey]: parallelRoutePatch\n },\n url,\n refetch\n ];\n // Current segment is the root layout\n if (isRootLayout) {\n tree[4] = true;\n }\n (0, _refetchinactiveparallelsegments.addRefreshMarkerToActiveParallelSegments)(tree, path);\n return tree;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=apply-router-state-patch-to-tree.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2FwcGx5LXJvdXRlci1zdGF0ZS1wYXRjaC10by10cmVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0RBNkVnQkE7OztlQUFBQTs7O3FDQXpFb0I7K0NBQ0s7MkNBQ1o7NkRBQzRCO0FBRXpEOztDQUVDLEdBQ0QsU0FBU0MsV0FDUEMsV0FBOEIsRUFDOUJDLFNBQTRCO0lBRTVCLE1BQU0sQ0FBQ0MsZ0JBQWdCQyxzQkFBc0IsR0FBR0g7SUFDaEQsTUFBTSxDQUFDSSxjQUFjQyxvQkFBb0IsR0FBR0o7SUFFNUMsa0dBQWtHO0lBQ2xHLGlGQUFpRjtJQUNqRixJQUNFRyxpQkFBaUJFLFNBQUFBLG1CQUFtQixJQUNwQ0osbUJBQW1CSSxTQUFBQSxtQkFBbUIsRUFDdEM7UUFDQSxPQUFPTjtJQUNUO0lBRUEsSUFBSU8sQ0FBQUEsR0FBQUEsZUFBQUEsWUFBQUEsRUFBYUwsZ0JBQWdCRSxlQUFlO1FBQzlDLE1BQU1JLG9CQUEwQyxDQUFDO1FBQ2pELElBQUssTUFBTUMsT0FBT04sc0JBQXVCO1lBQ3ZDLE1BQU1PLDhCQUNKLE9BQU9MLG1CQUFtQixDQUFDSSxJQUFJLEtBQUs7WUFDdEMsSUFBSUMsNkJBQTZCO2dCQUMvQkYsaUJBQWlCLENBQUNDLElBQUksR0FBR1YsV0FDdkJJLHFCQUFxQixDQUFDTSxJQUFJLEVBQzFCSixtQkFBbUIsQ0FBQ0ksSUFBSTtZQUU1QixPQUFPO2dCQUNMRCxpQkFBaUIsQ0FBQ0MsSUFBSSxHQUFHTixxQkFBcUIsQ0FBQ00sSUFBSTtZQUNyRDtRQUNGO1FBRUEsSUFBSyxNQUFNQSxPQUFPSixvQkFBcUI7WUFDckMsSUFBSUcsaUJBQWlCLENBQUNDLElBQUksRUFBRTtnQkFDMUI7WUFDRjtZQUVBRCxpQkFBaUIsQ0FBQ0MsSUFBSSxHQUFHSixtQkFBbUIsQ0FBQ0ksSUFBSTtRQUNuRDtRQUVBLE1BQU1FLE9BQTBCO1lBQUNUO1lBQWdCTTtTQUFrQjtRQUVuRSw4QkFBOEI7UUFDOUIsSUFBSVIsV0FBVyxDQUFDLEVBQUUsRUFBRTtZQUNsQlcsSUFBSSxDQUFDLEVBQUUsR0FBR1gsV0FBVyxDQUFDLEVBQUU7UUFDMUI7UUFFQSxJQUFJQSxXQUFXLENBQUMsRUFBRSxFQUFFO1lBQ2xCVyxJQUFJLENBQUMsRUFBRSxHQUFHWCxXQUFXLENBQUMsRUFBRTtRQUMxQjtRQUVBLElBQUlBLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDbEJXLElBQUksQ0FBQyxFQUFFLEdBQUdYLFdBQVcsQ0FBQyxFQUFFO1FBQzFCO1FBRUEsT0FBT1c7SUFDVDtJQUVBLE9BQU9WO0FBQ1Q7QUFPTyxTQUFTSCw0QkFDZGMsaUJBQW9DLEVBQ3BDQyxpQkFBb0MsRUFDcENDLFNBQTRCLEVBQzVCQyxJQUFZO0lBRVosTUFBTSxDQUFDQyxTQUFTQyxnQkFBZ0JDLEtBQUtDLFNBQVNDLGFBQWEsR0FDekRQO0lBRUYsZUFBZTtJQUNmLElBQUlELGtCQUFrQlMsTUFBTSxLQUFLLEdBQUc7UUFDbEMsTUFBTVYsT0FBMEJaLFdBQVdjLG1CQUFtQkM7UUFFOURRLENBQUFBLEdBQUFBLGlDQUFBQSx3Q0FBQUEsRUFBeUNYLE1BQU1JO1FBRS9DLE9BQU9KO0lBQ1Q7SUFFQSxNQUFNLENBQUNZLGdCQUFnQkMsaUJBQWlCLEdBQUdaO0lBRTNDLGlHQUFpRztJQUNqRyxJQUFJLENBQUNMLENBQUFBLEdBQUFBLGVBQUFBLFlBQUFBLEVBQWFnQixnQkFBZ0JQLFVBQVU7UUFDMUMsT0FBTztJQUNUO0lBRUEsTUFBTVMsY0FBY2Isa0JBQWtCUyxNQUFNLEtBQUs7SUFFakQsSUFBSUs7SUFDSixJQUFJRCxhQUFhO1FBQ2ZDLHFCQUFxQjNCLFdBQVdrQixjQUFjLENBQUNPLGlCQUFpQixFQUFFVjtJQUNwRSxPQUFPO1FBQ0xZLHFCQUFxQjVCLDRCQUNuQjZCLENBQUFBLEdBQUFBLG1CQUFBQSx3QkFBQUEsRUFBeUJmLG9CQUN6QkssY0FBYyxDQUFDTyxpQkFBaUIsRUFDaENWLFdBQ0FDO1FBR0YsSUFBSVcsdUJBQXVCLE1BQU07WUFDL0IsT0FBTztRQUNUO0lBQ0Y7SUFFQSxNQUFNZixPQUEwQjtRQUM5QkMsaUJBQWlCLENBQUMsRUFBRTtRQUNwQjtZQUNFLEdBQUdLLGNBQWM7WUFDakIsQ0FBQ08saUJBQWlCLEVBQUVFO1FBQ3RCO1FBQ0FSO1FBQ0FDO0tBQ0Q7SUFFRCxxQ0FBcUM7SUFDckMsSUFBSUMsY0FBYztRQUNoQlQsSUFBSSxDQUFDLEVBQUUsR0FBRztJQUNaO0lBRUFXLENBQUFBLEdBQUFBLGlDQUFBQSx3Q0FBQUEsRUFBeUNYLE1BQU1JO0lBRS9DLE9BQU9KO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvYXBwbHktcm91dGVyLXN0YXRlLXBhdGNoLXRvLXRyZWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgRmxpZ2h0U2VnbWVudFBhdGgsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgREVGQVVMVF9TRUdNRU5UX0tFWSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvc2VnbWVudCdcbmltcG9ydCB7IGdldE5leHRGbGlnaHRTZWdtZW50UGF0aCB9IGZyb20gJy4uLy4uL2ZsaWdodC1kYXRhLWhlbHBlcnMnXG5pbXBvcnQgeyBtYXRjaFNlZ21lbnQgfSBmcm9tICcuLi9tYXRjaC1zZWdtZW50cydcbmltcG9ydCB7IGFkZFJlZnJlc2hNYXJrZXJUb0FjdGl2ZVBhcmFsbGVsU2VnbWVudHMgfSBmcm9tICcuL3JlZmV0Y2gtaW5hY3RpdmUtcGFyYWxsZWwtc2VnbWVudHMnXG5cbi8qKlxuICogRGVlcCBtZXJnZSBvZiB0aGUgdHdvIHJvdXRlciBzdGF0ZXMuIFBhcmFsbGVsIHJvdXRlIGtleXMgYXJlIHByZXNlcnZlZCBpZiB0aGUgcGF0Y2ggZG9lc24ndCBoYXZlIHRoZW0uXG4gKi9cbmZ1bmN0aW9uIGFwcGx5UGF0Y2goXG4gIGluaXRpYWxUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgcGF0Y2hUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogRmxpZ2h0Um91dGVyU3RhdGUge1xuICBjb25zdCBbaW5pdGlhbFNlZ21lbnQsIGluaXRpYWxQYXJhbGxlbFJvdXRlc10gPSBpbml0aWFsVHJlZVxuICBjb25zdCBbcGF0Y2hTZWdtZW50LCBwYXRjaFBhcmFsbGVsUm91dGVzXSA9IHBhdGNoVHJlZVxuXG4gIC8vIGlmIHRoZSBhcHBsaWVkIHBhdGNoIHNlZ21lbnQgaXMgX19ERUZBVUxUX18gdGhlbiBpdCBjYW4gYmUgaWdub3JlZCBpbiBmYXZvciBvZiB0aGUgaW5pdGlhbCB0cmVlXG4gIC8vIHRoaXMgaXMgYmVjYXVzZSB0aGUgX19ERUZBVUxUX18gc2VnbWVudCBpcyB1c2VkIGFzIGEgcGxhY2Vob2xkZXIgb24gbmF2aWdhdGlvblxuICBpZiAoXG4gICAgcGF0Y2hTZWdtZW50ID09PSBERUZBVUxUX1NFR01FTlRfS0VZICYmXG4gICAgaW5pdGlhbFNlZ21lbnQgIT09IERFRkFVTFRfU0VHTUVOVF9LRVlcbiAgKSB7XG4gICAgcmV0dXJuIGluaXRpYWxUcmVlXG4gIH1cblxuICBpZiAobWF0Y2hTZWdtZW50KGluaXRpYWxTZWdtZW50LCBwYXRjaFNlZ21lbnQpKSB7XG4gICAgY29uc3QgbmV3UGFyYWxsZWxSb3V0ZXM6IEZsaWdodFJvdXRlclN0YXRlWzFdID0ge31cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0aWFsUGFyYWxsZWxSb3V0ZXMpIHtcbiAgICAgIGNvbnN0IGlzSW5QYXRjaFRyZWVQYXJhbGxlbFJvdXRlcyA9XG4gICAgICAgIHR5cGVvZiBwYXRjaFBhcmFsbGVsUm91dGVzW2tleV0gIT09ICd1bmRlZmluZWQnXG4gICAgICBpZiAoaXNJblBhdGNoVHJlZVBhcmFsbGVsUm91dGVzKSB7XG4gICAgICAgIG5ld1BhcmFsbGVsUm91dGVzW2tleV0gPSBhcHBseVBhdGNoKFxuICAgICAgICAgIGluaXRpYWxQYXJhbGxlbFJvdXRlc1trZXldLFxuICAgICAgICAgIHBhdGNoUGFyYWxsZWxSb3V0ZXNba2V5XVxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdQYXJhbGxlbFJvdXRlc1trZXldID0gaW5pdGlhbFBhcmFsbGVsUm91dGVzW2tleV1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwYXRjaFBhcmFsbGVsUm91dGVzKSB7XG4gICAgICBpZiAobmV3UGFyYWxsZWxSb3V0ZXNba2V5XSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBuZXdQYXJhbGxlbFJvdXRlc1trZXldID0gcGF0Y2hQYXJhbGxlbFJvdXRlc1trZXldXG4gICAgfVxuXG4gICAgY29uc3QgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGUgPSBbaW5pdGlhbFNlZ21lbnQsIG5ld1BhcmFsbGVsUm91dGVzXVxuXG4gICAgLy8gQ29weSBvdmVyIHRoZSBleGlzdGluZyB0cmVlXG4gICAgaWYgKGluaXRpYWxUcmVlWzJdKSB7XG4gICAgICB0cmVlWzJdID0gaW5pdGlhbFRyZWVbMl1cbiAgICB9XG5cbiAgICBpZiAoaW5pdGlhbFRyZWVbM10pIHtcbiAgICAgIHRyZWVbM10gPSBpbml0aWFsVHJlZVszXVxuICAgIH1cblxuICAgIGlmIChpbml0aWFsVHJlZVs0XSkge1xuICAgICAgdHJlZVs0XSA9IGluaXRpYWxUcmVlWzRdXG4gICAgfVxuXG4gICAgcmV0dXJuIHRyZWVcbiAgfVxuXG4gIHJldHVybiBwYXRjaFRyZWVcbn1cblxuLyoqXG4gKiBBcHBseSB0aGUgcm91dGVyIHN0YXRlIGZyb20gdGhlIEZsaWdodCByZXNwb25zZSwgYnV0IHNraXAgcGF0Y2hpbmcgZGVmYXVsdCBzZWdtZW50cy5cbiAqIFVzZWZ1bCBmb3IgcGF0Y2hpbmcgdGhlIHJvdXRlciBjYWNoZSB3aGVuIG5hdmlnYXRpbmcsIHdoZXJlIHdlIHBlcnNpc3QgdGhlIGV4aXN0aW5nIGRlZmF1bHQgc2VnbWVudCBpZiB0aGVyZSBpc24ndCBhIG5ldyBvbmUuXG4gKiBDcmVhdGVzIGEgbmV3IHJvdXRlciBzdGF0ZSB0cmVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlKFxuICBmbGlnaHRTZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGgsXG4gIGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgdHJlZVBhdGNoOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgcGF0aDogc3RyaW5nXG4pOiBGbGlnaHRSb3V0ZXJTdGF0ZSB8IG51bGwge1xuICBjb25zdCBbc2VnbWVudCwgcGFyYWxsZWxSb3V0ZXMsIHVybCwgcmVmZXRjaCwgaXNSb290TGF5b3V0XSA9XG4gICAgZmxpZ2h0Um91dGVyU3RhdGVcblxuICAvLyBSb290IHJlZnJlc2hcbiAgaWYgKGZsaWdodFNlZ21lbnRQYXRoLmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IHRyZWU6IEZsaWdodFJvdXRlclN0YXRlID0gYXBwbHlQYXRjaChmbGlnaHRSb3V0ZXJTdGF0ZSwgdHJlZVBhdGNoKVxuXG4gICAgYWRkUmVmcmVzaE1hcmtlclRvQWN0aXZlUGFyYWxsZWxTZWdtZW50cyh0cmVlLCBwYXRoKVxuXG4gICAgcmV0dXJuIHRyZWVcbiAgfVxuXG4gIGNvbnN0IFtjdXJyZW50U2VnbWVudCwgcGFyYWxsZWxSb3V0ZUtleV0gPSBmbGlnaHRTZWdtZW50UGF0aFxuXG4gIC8vIFRyZWUgcGF0aCByZXR1cm5lZCBmcm9tIHRoZSBzZXJ2ZXIgc2hvdWxkIGFsd2F5cyBtYXRjaCB1cCB3aXRoIHRoZSBjdXJyZW50IHRyZWUgaW4gdGhlIGJyb3dzZXJcbiAgaWYgKCFtYXRjaFNlZ21lbnQoY3VycmVudFNlZ21lbnQsIHNlZ21lbnQpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGxhc3RTZWdtZW50ID0gZmxpZ2h0U2VnbWVudFBhdGgubGVuZ3RoID09PSAyXG5cbiAgbGV0IHBhcmFsbGVsUm91dGVQYXRjaFxuICBpZiAobGFzdFNlZ21lbnQpIHtcbiAgICBwYXJhbGxlbFJvdXRlUGF0Y2ggPSBhcHBseVBhdGNoKHBhcmFsbGVsUm91dGVzW3BhcmFsbGVsUm91dGVLZXldLCB0cmVlUGF0Y2gpXG4gIH0gZWxzZSB7XG4gICAgcGFyYWxsZWxSb3V0ZVBhdGNoID0gYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlKFxuICAgICAgZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoKGZsaWdodFNlZ21lbnRQYXRoKSxcbiAgICAgIHBhcmFsbGVsUm91dGVzW3BhcmFsbGVsUm91dGVLZXldLFxuICAgICAgdHJlZVBhdGNoLFxuICAgICAgcGF0aFxuICAgIClcblxuICAgIGlmIChwYXJhbGxlbFJvdXRlUGF0Y2ggPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGUgPSBbXG4gICAgZmxpZ2h0U2VnbWVudFBhdGhbMF0sXG4gICAge1xuICAgICAgLi4ucGFyYWxsZWxSb3V0ZXMsXG4gICAgICBbcGFyYWxsZWxSb3V0ZUtleV06IHBhcmFsbGVsUm91dGVQYXRjaCxcbiAgICB9LFxuICAgIHVybCxcbiAgICByZWZldGNoLFxuICBdXG5cbiAgLy8gQ3VycmVudCBzZWdtZW50IGlzIHRoZSByb290IGxheW91dFxuICBpZiAoaXNSb290TGF5b3V0KSB7XG4gICAgdHJlZVs0XSA9IHRydWVcbiAgfVxuXG4gIGFkZFJlZnJlc2hNYXJrZXJUb0FjdGl2ZVBhcmFsbGVsU2VnbWVudHModHJlZSwgcGF0aClcblxuICByZXR1cm4gdHJlZVxufVxuIl0sIm5hbWVzIjpbImFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSIsImFwcGx5UGF0Y2giLCJpbml0aWFsVHJlZSIsInBhdGNoVHJlZSIsImluaXRpYWxTZWdtZW50IiwiaW5pdGlhbFBhcmFsbGVsUm91dGVzIiwicGF0Y2hTZWdtZW50IiwicGF0Y2hQYXJhbGxlbFJvdXRlcyIsIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJtYXRjaFNlZ21lbnQiLCJuZXdQYXJhbGxlbFJvdXRlcyIsImtleSIsImlzSW5QYXRjaFRyZWVQYXJhbGxlbFJvdXRlcyIsInRyZWUiLCJmbGlnaHRTZWdtZW50UGF0aCIsImZsaWdodFJvdXRlclN0YXRlIiwidHJlZVBhdGNoIiwicGF0aCIsInNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlcyIsInVybCIsInJlZmV0Y2giLCJpc1Jvb3RMYXlvdXQiLCJsZW5ndGgiLCJhZGRSZWZyZXNoTWFya2VyVG9BY3RpdmVQYXJhbGxlbFNlZ21lbnRzIiwiY3VycmVudFNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlS2V5IiwibGFzdFNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlUGF0Y2giLCJnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.js":
|
||
/*!***********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.js ***!
|
||
\***********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"clearCacheNodeDataForSegmentPath\", ({\n enumerable: true,\n get: function() {\n return clearCacheNodeDataForSegmentPath;\n }\n}));\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nfunction clearCacheNodeDataForSegmentPath(newCache, existingCache, flightSegmentPath) {\n const isLastEntry = flightSegmentPath.length <= 2;\n const [parallelRouteKey, segment] = flightSegmentPath;\n const cacheKey = (0, _createroutercachekey.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: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\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: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\n });\n }\n return;\n }\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes),\n loading: childCacheNode.loading\n };\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n return clearCacheNodeDataForSegmentPath(childCacheNode, existingChildCacheNode, (0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=clear-cache-node-data-for-segment-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NsZWFyLWNhY2hlLW5vZGUtZGF0YS1mb3Itc2VnbWVudC1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7b0VBUWdCQTs7O2VBQUFBOzs7K0NBTnlCO2tEQUNKO0FBSzlCLFNBQVNBLGlDQUNkQyxRQUFtQixFQUNuQkMsYUFBd0IsRUFDeEJDLGlCQUFvQztJQUVwQyxNQUFNQyxjQUFjRCxrQkFBa0JFLE1BQU0sSUFBSTtJQUVoRCxNQUFNLENBQUNDLGtCQUFrQkMsUUFBUSxHQUFHSjtJQUNwQyxNQUFNSyxXQUFXQyxDQUFBQSxHQUFBQSxzQkFBQUEsb0JBQUFBLEVBQXFCRjtJQUV0QyxNQUFNRywwQkFDSlIsY0FBY1MsY0FBYyxDQUFDQyxHQUFHLENBQUNOO0lBRW5DLElBQUlPLGtCQUFrQlosU0FBU1UsY0FBYyxDQUFDQyxHQUFHLENBQUNOO0lBRWxELElBQUksQ0FBQ08sbUJBQW1CQSxvQkFBb0JILHlCQUF5QjtRQUNuRUcsa0JBQWtCLElBQUlDLElBQUlKO1FBQzFCVCxTQUFTVSxjQUFjLENBQUNJLEdBQUcsQ0FBQ1Qsa0JBQWtCTztJQUNoRDtJQUVBLE1BQU1HLHlCQUF5Qk4sMkJBQUFBLE9BQUFBLEtBQUFBLElBQUFBLHdCQUF5QkUsR0FBRyxDQUFDSjtJQUM1RCxJQUFJUyxpQkFBaUJKLGdCQUFnQkQsR0FBRyxDQUFDSjtJQUV6Qyx5RkFBeUY7SUFDekYsSUFBSUosYUFBYTtRQUNmLElBQ0UsQ0FBQ2Esa0JBQ0QsQ0FBQ0EsZUFBZUMsUUFBUSxJQUN4QkQsbUJBQW1CRCx3QkFDbkI7WUFDQUgsZ0JBQWdCRSxHQUFHLENBQUNQLFVBQVU7Z0JBQzVCVSxVQUFVO2dCQUNWQyxLQUFLO2dCQUNMQyxhQUFhO2dCQUNiQyxNQUFNO2dCQUNOQyxjQUFjO2dCQUNkWCxnQkFBZ0IsSUFBSUc7Z0JBQ3BCUyxTQUFTO2dCQUNUQyxhQUFhLENBQUM7WUFDaEI7UUFDRjtRQUNBO0lBQ0Y7SUFFQSxJQUFJLENBQUNQLGtCQUFrQixDQUFDRCx3QkFBd0I7UUFDOUMsK0VBQStFO1FBQy9FLElBQUksQ0FBQ0MsZ0JBQWdCO1lBQ25CSixnQkFBZ0JFLEdBQUcsQ0FBQ1AsVUFBVTtnQkFDNUJVLFVBQVU7Z0JBQ1ZDLEtBQUs7Z0JBQ0xDLGFBQWE7Z0JBQ2JDLE1BQU07Z0JBQ05DLGNBQWM7Z0JBQ2RYLGdCQUFnQixJQUFJRztnQkFDcEJTLFNBQVM7Z0JBQ1RDLGFBQWEsQ0FBQztZQUNoQjtRQUNGO1FBQ0E7SUFDRjtJQUVBLElBQUlQLG1CQUFtQkQsd0JBQXdCO1FBQzdDQyxpQkFBaUI7WUFDZkMsVUFBVUQsZUFBZUMsUUFBUTtZQUNqQ0MsS0FBS0YsZUFBZUUsR0FBRztZQUN2QkMsYUFBYUgsZUFBZUcsV0FBVztZQUN2Q0MsTUFBTUosZUFBZUksSUFBSTtZQUN6QkMsY0FBY0wsZUFBZUssWUFBWTtZQUN6Q1gsZ0JBQWdCLElBQUlHLElBQUlHLGVBQWVOLGNBQWM7WUFDckRZLFNBQVNOLGVBQWVNLE9BQU87UUFDakM7UUFDQVYsZ0JBQWdCRSxHQUFHLENBQUNQLFVBQVVTO0lBQ2hDO0lBRUEsT0FBT2pCLGlDQUNMaUIsZ0JBQ0FELHdCQUNBUyxDQUFBQSxHQUFBQSxtQkFBQUEsd0JBQUFBLEVBQXlCdEI7QUFFN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY2xlYXItY2FjaGUtbm9kZS1kYXRhLWZvci1zZWdtZW50LXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRTZWdtZW50UGF0aCB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGdldE5leHRGbGlnaHRTZWdtZW50UGF0aCB9IGZyb20gJy4uLy4uL2ZsaWdodC1kYXRhLWhlbHBlcnMnXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4vY3JlYXRlLXJvdXRlci1jYWNoZS1rZXknXG5cbi8qKlxuICogVGhpcyB3aWxsIGNsZWFyIHRoZSBDYWNoZU5vZGUgZGF0YSBmb3IgYSBwYXJ0aWN1bGFyIHNlZ21lbnQgcGF0aC4gVGhpcyB3aWxsIGNhdXNlIGEgbGF6eS1mZXRjaCBpbiBsYXlvdXQgcm91dGVyIHRvIGZpbGwgaW4gbmV3IGRhdGEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhckNhY2hlTm9kZURhdGFGb3JTZWdtZW50UGF0aChcbiAgbmV3Q2FjaGU6IENhY2hlTm9kZSxcbiAgZXhpc3RpbmdDYWNoZTogQ2FjaGVOb2RlLFxuICBmbGlnaHRTZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbik6IHZvaWQge1xuICBjb25zdCBpc0xhc3RFbnRyeSA9IGZsaWdodFNlZ21lbnRQYXRoLmxlbmd0aCA8PSAyXG5cbiAgY29uc3QgW3BhcmFsbGVsUm91dGVLZXksIHNlZ21lbnRdID0gZmxpZ2h0U2VnbWVudFBhdGhcbiAgY29uc3QgY2FjaGVLZXkgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50KVxuXG4gIGNvbnN0IGV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwID1cbiAgICBleGlzdGluZ0NhY2hlLnBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlS2V5KVxuXG4gIGxldCBjaGlsZFNlZ21lbnRNYXAgPSBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSlcblxuICBpZiAoIWNoaWxkU2VnbWVudE1hcCB8fCBjaGlsZFNlZ21lbnRNYXAgPT09IGV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwKSB7XG4gICAgY2hpbGRTZWdtZW50TWFwID0gbmV3IE1hcChleGlzdGluZ0NoaWxkU2VnbWVudE1hcClcbiAgICBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5zZXQocGFyYWxsZWxSb3V0ZUtleSwgY2hpbGRTZWdtZW50TWFwKVxuICB9XG5cbiAgY29uc3QgZXhpc3RpbmdDaGlsZENhY2hlTm9kZSA9IGV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwPy5nZXQoY2FjaGVLZXkpXG4gIGxldCBjaGlsZENhY2hlTm9kZSA9IGNoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpXG5cbiAgLy8gSW4gY2FzZSBvZiBsYXN0IHNlZ21lbnQgc3RhcnQgb2ZmIHRoZSBmZXRjaCBhdCB0aGlzIGxldmVsIGFuZCBkb24ndCBjb3B5IGZ1cnRoZXIgZG93bi5cbiAgaWYgKGlzTGFzdEVudHJ5KSB7XG4gICAgaWYgKFxuICAgICAgIWNoaWxkQ2FjaGVOb2RlIHx8XG4gICAgICAhY2hpbGRDYWNoZU5vZGUubGF6eURhdGEgfHxcbiAgICAgIGNoaWxkQ2FjaGVOb2RlID09PSBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlXG4gICAgKSB7XG4gICAgICBjaGlsZFNlZ21lbnRNYXAuc2V0KGNhY2hlS2V5LCB7XG4gICAgICAgIGxhenlEYXRhOiBudWxsLFxuICAgICAgICByc2M6IG51bGwsXG4gICAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgICBoZWFkOiBudWxsLFxuICAgICAgICBwcmVmZXRjaEhlYWQ6IG51bGwsXG4gICAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKCksXG4gICAgICAgIGxvYWRpbmc6IG51bGwsXG4gICAgICAgIG5hdmlnYXRlZEF0OiAtMSxcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKCFjaGlsZENhY2hlTm9kZSB8fCAhZXhpc3RpbmdDaGlsZENhY2hlTm9kZSkge1xuICAgIC8vIFN0YXJ0IGZldGNoIGluIHRoZSBwbGFjZSB3aGVyZSB0aGUgZXhpc3RpbmcgY2FjaGUgZG9lc24ndCBoYXZlIHRoZSBkYXRhIHlldC5cbiAgICBpZiAoIWNoaWxkQ2FjaGVOb2RlKSB7XG4gICAgICBjaGlsZFNlZ21lbnRNYXAuc2V0KGNhY2hlS2V5LCB7XG4gICAgICAgIGxhenlEYXRhOiBudWxsLFxuICAgICAgICByc2M6IG51bGwsXG4gICAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgICBoZWFkOiBudWxsLFxuICAgICAgICBwcmVmZXRjaEhlYWQ6IG51bGwsXG4gICAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKCksXG4gICAgICAgIGxvYWRpbmc6IG51bGwsXG4gICAgICAgIG5hdmlnYXRlZEF0OiAtMSxcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKGNoaWxkQ2FjaGVOb2RlID09PSBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlKSB7XG4gICAgY2hpbGRDYWNoZU5vZGUgPSB7XG4gICAgICBsYXp5RGF0YTogY2hpbGRDYWNoZU5vZGUubGF6eURhdGEsXG4gICAgICByc2M6IGNoaWxkQ2FjaGVOb2RlLnJzYyxcbiAgICAgIHByZWZldGNoUnNjOiBjaGlsZENhY2hlTm9kZS5wcmVmZXRjaFJzYyxcbiAgICAgIGhlYWQ6IGNoaWxkQ2FjaGVOb2RlLmhlYWQsXG4gICAgICBwcmVmZXRjaEhlYWQ6IGNoaWxkQ2FjaGVOb2RlLnByZWZldGNoSGVhZCxcbiAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKGNoaWxkQ2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzKSxcbiAgICAgIGxvYWRpbmc6IGNoaWxkQ2FjaGVOb2RlLmxvYWRpbmcsXG4gICAgfSBhcyBDYWNoZU5vZGVcbiAgICBjaGlsZFNlZ21lbnRNYXAuc2V0KGNhY2hlS2V5LCBjaGlsZENhY2hlTm9kZSlcbiAgfVxuXG4gIHJldHVybiBjbGVhckNhY2hlTm9kZURhdGFGb3JTZWdtZW50UGF0aChcbiAgICBjaGlsZENhY2hlTm9kZSxcbiAgICBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlLFxuICAgIGdldE5leHRGbGlnaHRTZWdtZW50UGF0aChmbGlnaHRTZWdtZW50UGF0aClcbiAgKVxufVxuIl0sIm5hbWVzIjpbImNsZWFyQ2FjaGVOb2RlRGF0YUZvclNlZ21lbnRQYXRoIiwibmV3Q2FjaGUiLCJleGlzdGluZ0NhY2hlIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJpc0xhc3RFbnRyeSIsImxlbmd0aCIsInBhcmFsbGVsUm91dGVLZXkiLCJzZWdtZW50IiwiY2FjaGVLZXkiLCJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsImV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwIiwicGFyYWxsZWxSb3V0ZXMiLCJnZXQiLCJjaGlsZFNlZ21lbnRNYXAiLCJNYXAiLCJzZXQiLCJleGlzdGluZ0NoaWxkQ2FjaGVOb2RlIiwiY2hpbGRDYWNoZU5vZGUiLCJsYXp5RGF0YSIsInJzYyIsInByZWZldGNoUnNjIiwiaGVhZCIsInByZWZldGNoSGVhZCIsImxvYWRpbmciLCJuYXZpZ2F0ZWRBdCIsImdldE5leHRGbGlnaHRTZWdtZW50UGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((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 computeChangedPath: function() {\n return computeChangedPath;\n },\n extractPathFromFlightRouterState: function() {\n return extractPathFromFlightRouterState;\n },\n getSelectedParams: function() {\n return getSelectedParams;\n }\n});\nconst _interceptionroutes = __webpack_require__(/*! ../../../shared/lib/router/utils/interception-routes */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _matchsegments = __webpack_require__(/*! ../match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nconst removeLeadingSlash = (segment)=>{\n return segment[0] === '/' ? segment.slice(1) : segment;\n};\nconst segmentToPathname = (segment)=>{\n if (typeof segment === 'string') {\n // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page\n // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense.\n if (segment === 'children') return '';\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, _segment.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 === _segment.DEFAULT_SEGMENT_KEY || _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined;\n if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) return '';\n const segments = [\n segmentToPathname(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 (_interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) {\n return '';\n }\n if (!(0, _matchsegments.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}\nfunction getSelectedParams(currentTree, params) {\n if (params === void 0) params = {};\n const parallelRoutes = currentTree[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(_segment.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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=compute-changed-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NvbXB1dGUtY2hhbmdlZC1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXdIZ0JBLGtCQUFrQjtlQUFsQkE7O0lBOUVBQyxnQ0FBZ0M7ZUFBaENBOztJQStGQUMsaUJBQWlCO2VBQWpCQTs7O2dEQXJJMkI7cUNBTXBDOzJDQUNzQjtBQUU3QixNQUFNQyxxQkFBcUIsQ0FBQ0M7SUFDMUIsT0FBT0EsT0FBTyxDQUFDLEVBQUUsS0FBSyxNQUFNQSxRQUFRQyxLQUFLLENBQUMsS0FBS0Q7QUFDakQ7QUFFQSxNQUFNRSxvQkFBb0IsQ0FBQ0Y7SUFDekIsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsdUhBQXVIO1FBQ3ZILGdIQUFnSDtRQUNoSCxJQUFJQSxZQUFZLFlBQVksT0FBTztRQUVuQyxPQUFPQTtJQUNUO0lBRUEsT0FBT0EsT0FBTyxDQUFDLEVBQUU7QUFDbkI7QUFFQSxTQUFTRyxrQkFBa0JDLFFBQWtCO0lBQzNDLE9BQ0VBLFNBQVNDLE1BQU0sQ0FBQyxDQUFDQyxLQUFLTjtRQUNwQkEsVUFBVUQsbUJBQW1CQztRQUM3QixJQUFJQSxZQUFZLE1BQU1PLENBQUFBLEdBQUFBLFNBQUFBLGNBQUFBLEVBQWVQLFVBQVU7WUFDN0MsT0FBT007UUFDVDtRQUVBLE9BQVVBLE1BQUksTUFBR047SUFDbkIsR0FBRyxPQUFPO0FBRWQ7QUFFTyxTQUFTSCxpQ0FDZFcsaUJBQW9DO0lBRXBDLE1BQU1SLFVBQVVTLE1BQU1DLE9BQU8sQ0FBQ0YsaUJBQWlCLENBQUMsRUFBRSxJQUM5Q0EsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FDdkJBLGlCQUFpQixDQUFDLEVBQUU7SUFFeEIsSUFDRVIsWUFBWVcsU0FBQUEsbUJBQW1CLElBQy9CQyxvQkFBQUEsMEJBQTBCLENBQUNDLElBQUksQ0FBQyxDQUFDQyxJQUFNZCxRQUFRZSxVQUFVLENB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QUc7UUFFakUsSUFBSThDLFlBQVk7WUFDZEwsTUFBTSxDQUFDekMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHQSxPQUFPLENBQUMsRUFBRSxDQUFDdUMsS0FBSyxDQUFDO1FBQ3hDLE9BQU8sSUFBSUssb0JBQW9CO1lBQzdCSCxNQUFNLENBQUN6QyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUdBLE9BQU8sQ0FBQyxFQUFFO1FBQ2pDO1FBRUF5QyxTQUFTM0Msa0JBQWtCNEMsZUFBZUQ7SUFDNUM7SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NvbXB1dGUtY2hhbmdlZC1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIFNlZ21lbnQsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pbnRlcmNlcHRpb24tcm91dGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5pbXBvcnQge1xuICBpc0dyb3VwU2VnbWVudCxcbiAgREVGQVVMVF9TRUdNRU5UX0tFWSxcbiAgUEFHRV9TRUdNRU5UX0tFWSxcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50J1xuaW1wb3J0IHsgbWF0Y2hTZWdtZW50IH0gZnJvbSAnLi4vbWF0Y2gtc2VnbWVudHMnXG5cbmNvbnN0IHJlbW92ZUxlYWRpbmdTbGFzaCA9IChzZWdtZW50OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gc2VnbWVudFswXSA9PT0gJy8nID8gc2VnbWVudC5zbGljZSgxKSA6IHNlZ21lbnRcbn1cblxuY29uc3Qgc2VnbWVudFRvUGF0aG5hbWUgPSAoc2VnbWVudDogU2VnbWVudCk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyAnY2hpbGRyZW4nIGlzIG5vdCBhIHZhbGlkIHBhdGggLS0gaXQncyB0ZWNobmljYWxseSBhIHBhcmFsbGVsIHJvdXRlIHRoYXQgY29ycmVzcG9uZHMgd2l0aCB0aGUgY3VycmVudCBzZWdtZW50J3MgcGFnZVxuICAgIC8vIGlmIHdlIGRvbid0IHNraXAgaXQsIHRoZW4gdGhlIGNvbXB1dGVkIHBhdGhuYW1lIG1pZ2h0IGJlIHNvbWV0aGluZyBsaWtlIGAvY2hpbGRyZW5gIHdoaWNoIGRvZXNuJ3QgbWFrZSBzZW5zZS5cbiAgICBpZiAoc2VnbWVudCA9PT0gJ2NoaWxkcmVuJykgcmV0dXJuICcnXG5cbiAgICByZXR1cm4gc2VnbWVudFxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRbMV1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplU2VnbWVudHMoc2VnbWVudHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIChcbiAgICBzZWdtZW50cy5yZWR1Y2UoKGFjYywgc2VnbWVudCkgPT4ge1xuICAgICAgc2VnbWVudCA9IHJlbW92ZUxlYWRpbmdTbGFzaChzZWdtZW50KVxuICAgICAgaWYgKHNlZ21lbnQgPT09ICcnIHx8IGlzR3JvdXBTZWdtZW50KHNlZ21lbnQpKSB7XG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAke2FjY30vJHtzZWdtZW50fWBcbiAgICB9LCAnJykgfHwgJy8nXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlKFxuICBmbGlnaHRSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGVcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHNlZ21lbnQgPSBBcnJheS5pc0FycmF5KGZsaWdodFJvdXRlclN0YXRlWzBdKVxuICAgID8gZmxpZ2h0Um91dGVyU3RhdGVbMF1bMV1cbiAgICA6IGZsaWdodFJvdXRlclN0YXRlWzBdXG5cbiAgaWYgKFxuICAgIHNlZ21lbnQgPT09IERFRkFVTFRfU0VHTUVOVF9LRVkgfHxcbiAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5zb21lKChtKSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgobSkpXG4gIClcbiAgICByZXR1cm4gdW5kZWZpbmVkXG5cbiAgaWYgKHNlZ21lbnQuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkgcmV0dXJuICcnXG5cbiAgY29uc3Qgc2VnbWVudHMgPSBbc2VnbWVudFRvUGF0aG5hbWUoc2VnbWVudCldXG4gIGNvbnN0IHBhcmFsbGVsUm91dGVzID0gZmxpZ2h0Um91dGVyU3RhdGVbMV0gPz8ge31cblxuICBjb25zdCBjaGlsZHJlblBhdGggPSBwYXJhbGxlbFJvdXRlcy5jaGlsZHJlblxuICAgID8gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUocGFyYWxsZWxSb3V0ZXMuY2hpbGRyZW4pXG4gICAgOiB1bmRlZmluZWRcblxuICBpZiAoY2hpbGRyZW5QYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICBzZWdtZW50cy5wdXNoKGNoaWxkcmVuUGF0aClcbiAgfSBlbHNlIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXJhbGxlbFJvdXRlcykpIHtcbiAgICAgIGlmIChrZXkgPT09ICdjaGlsZHJlbicpIGNvbnRpbnVlXG5cbiAgICAgIGNvbnN0IGNoaWxkUGF0aCA9IGV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlKHZhbHVlKVxuXG4gICAgICBpZiAoY2hpbGRQYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc2VnbWVudHMucHVzaChjaGlsZFBhdGgpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vcm1hbGl6ZVNlZ21lbnRzKHNlZ21lbnRzKVxufVxuXG5mdW5jdGlvbiBjb21wdXRlQ2hhbmdlZFBhdGhJbXBsKFxuICB0cmVlQTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHRyZWVCOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IFtzZWdtZW50QSwgcGFyYWxsZWxSb3V0ZXNBXSA9IHRyZWVBXG4gIGNvbnN0IFtzZWdtZW50QiwgcGFyYWxsZWxSb3V0ZXNCXSA9IHRyZWVCXG5cbiAgY29uc3Qgbm9ybWFsaXplZFNlZ21lbnRBID0gc2VnbWVudFRvUGF0aG5hbWUoc2VnbWVudEEpXG4gIGNvbnN0IG5vcm1hbGl6ZWRTZWdtZW50QiA9IHNlZ21lbnRUb1BhdGhuYW1lKHNlZ21lbnRCKVxuXG4gIGlmIChcbiAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5zb21lKFxuICAgICAgKG0pID0+XG4gICAgICAgIG5vcm1hbGl6ZWRTZWdtZW50QS5zdGFydHNXaXRoKG0pIHx8IG5vcm1hbGl6ZWRTZWdtZW50Qi5zdGFydHNXaXRoKG0pXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmICghbWF0Y2hTZWdtZW50KHNlZ21lbnRBLCBzZWdtZW50QikpIHtcbiAgICAvLyBvbmNlIHdlIGZpbmQgd2hlcmUgdGhlIHRyZWUgY2hhbmdlZCwgd2UgY29tcHV0ZSB0aGUgcmVzdCBvZiB0aGUgcGF0aCBieSB0cmF2ZXJzaW5nIHRoZSB0cmVlXG4gICAgcmV0dXJuIGV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlKHRyZWVCKSA/PyAnJ1xuICB9XG5cbiAgZm9yIChjb25zdCBwYXJhbGxlbFJvdXRlcktleSBpbiBwYXJhbGxlbFJvdXRlc0EpIHtcbiAgICBpZiAocGFyYWxsZWxSb3V0ZXNCW3BhcmFsbGVsUm91dGVyS2V5XSkge1xuICAgICAgY29uc3QgY2hhbmdlZFBhdGggPSBjb21wdXRlQ2hhbmdlZFBhdGhJbXBsKFxuICAgICAgICBwYXJhbGxlbFJvdXRlc0FbcGFyYWxsZWxSb3V0ZXJLZXldLFxuICAgICAgICBwYXJhbGxlbFJvdXRlc0JbcGFyYWxsZWxSb3V0ZXJLZXldXG4gICAgICApXG4gICAgICBpZiAoY2hhbmdlZFBhdGggIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGAke3NlZ21lbnRUb1BhdGhuYW1lKHNlZ21lbnRCKX0vJHtjaGFuZ2VkUGF0aH1gXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVDaGFuZ2VkUGF0aChcbiAgdHJlZUE6IEZsaWdodFJvdXRlclN0YXRlLFxuICB0cmVlQjogRmxpZ2h0Um91dGVyU3RhdGVcbik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBjaGFuZ2VkUGF0aCA9IGNvbXB1dGVDaGFuZ2VkUGF0aEltcGwodHJlZUEsIHRyZWVCKVxuXG4gIGlmIChjaGFuZ2VkUGF0aCA9PSBudWxsIHx8IGNoYW5nZWRQYXRoID09PSAnLycpIHtcbiAgICByZXR1cm4gY2hhbmdlZFBhdGhcbiAgfVxuXG4gIC8vIGxpZ2h0d2VpZ2h0IG5vcm1hbGl6YXRpb24gdG8gcmVtb3ZlIHJvdXRlIGdyb3Vwc1xuICByZXR1cm4gbm9ybWFsaXplU2VnbWVudHMoY2hhbmdlZFBhdGguc3BsaXQoJy8nKSlcbn1cblxuLyoqXG4gKiBSZWN1cnNpdmVseSBleHRyYWN0cyBkeW5hbWljIHBhcmFtZXRlcnMgZnJvbSBGbGlnaHRSb3V0ZXJTdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGVkUGFyYW1zKFxuICBjdXJyZW50VHJlZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHBhcmFtczogUGFyYW1zID0ge31cbik6IFBhcmFtcyB7XG4gIGNvbnN0IHBhcmFsbGVsUm91dGVzID0gY3VycmVudFRyZWVbMV1cblxuICBmb3IgKGNvbnN0IHBhcmFsbGVsUm91dGUgb2YgT2JqZWN0LnZhbHVlcyhwYXJhbGxlbFJvdXRlcykpIHtcbiAgICBjb25zdCBzZWdtZW50ID0gcGFyYWxsZWxSb3V0ZVswXVxuICAgIGNvbnN0IGlzRHluYW1pY1BhcmFtZXRlciA9IEFycmF5LmlzQXJyYXkoc2VnbWVudClcbiAgICBjb25zdCBzZWdtZW50VmFsdWUgPSBpc0R5bmFtaWNQYXJhbWV0ZXIgPyBzZWdtZW50WzFdIDogc2VnbWVudFxuICAgIGlmICghc2VnbWVudFZhbHVlIHx8IHNlZ21lbnRWYWx1ZS5zdGFydHNXaXRoKFBBR0VfU0VHTUVOVF9LRVkpKSBjb250aW51ZVxuXG4gICAgLy8gRW5zdXJlIGNhdGNoQWxsIGFuZCBvcHRpb25hbCBjYXRjaGFsbCBhcmUgdHVybmVkIGludG8gYW4gYXJyYXlcbiAgICBjb25zdCBpc0NhdGNoQWxsID1cbiAgICAgIGlzRHluYW1pY1BhcmFtZXRlciAmJiAoc2VnbWVudFsyXSA9PT0gJ2MnIHx8IHNlZ21lbnRbMl0gPT09ICdvYycpXG5cbiAgICBpZiAoaXNDYXRjaEFsbCkge1xuICAgICAgcGFyYW1zW3NlZ21lbnRbMF1dID0gc2VnbWVudFsxXS5zcGxpdCgnLycpXG4gICAgfSBlbHNlIGlmIChpc0R5bmFtaWNQYXJhbWV0ZXIpIHtcbiAgICAgIHBhcmFtc1tzZWdtZW50WzBdXSA9IHNlZ21lbnRbMV1cbiAgICB9XG5cbiAgICBwYXJhbXMgPSBnZXRTZWxlY3RlZFBhcmFtcyhwYXJhbGxlbFJvdXRlLCBwYXJhbXMpXG4gIH1cblxuICByZXR1cm4gcGFyYW1zXG59XG4iXSwibmFtZXMiOlsiY29tcHV0ZUNoYW5nZWRQYXRoIiwiZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUiLCJnZXRTZWxlY3RlZFBhcmFtcyIsInJlbW92ZUxlYWRpbmdTbGFzaCIsInNlZ21lbnQiLCJzbGljZSIsInNlZ21lbnRUb1BhdGhuYW1lIiwibm9ybWFsaXplU2VnbWVudHMiLCJzZWdtZW50cyIsInJlZHVjZSIsImFjYyIsImlzR3JvdXBTZWdtZW50IiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJBcnJheSIsImlzQXJyYXkiLCJERUZBVUxUX1NFR01FTlRfS0VZIiwiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJzb21lIiwibSIsInN0YXJ0c1dpdGgiLCJ1bmRlZmluZWQiLCJQQUdFX1NFR01FTlRfS0VZIiwicGFyYWxsZWxSb3V0ZXMiLCJjaGlsZHJlblBhdGgiLCJjaGlsZHJlbiIsInB1c2giLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJjaGlsZFBhdGgiLCJjb21wdXRlQ2hhbmdlZFBhdGhJbXBsIiwidHJlZUEiLCJ0cmVlQiIsInNlZ21lbnRBIiwicGFyYWxsZWxSb3V0ZXNBIiwic2VnbWVudEIiLCJwYXJhbGxlbFJvdXRlc0IiLCJub3JtYWxpemVkU2VnbWVudEEiLCJub3JtYWxpemVkU2VnbWVudEIiLCJtYXRjaFNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlcktleSIsImNoYW5nZWRQYXRoIiwic3BsaXQiLCJjdXJyZW50VHJlZSIsInBhcmFtcyIsInBhcmFsbGVsUm91dGUiLCJ2YWx1ZXMiLCJpc0R5bmFtaWNQYXJhbWV0ZXIiLCJzZWdtZW50VmFsdWUiLCJpc0NhdGNoQWxsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createHrefFromUrl\", ({\n enumerable: true,\n get: function() {\n return createHrefFromUrl;\n }\n}));\nfunction createHrefFromUrl(url, includeHash) {\n if (includeHash === void 0) includeHash = true;\n return url.pathname + url.search + (includeHash ? url.hash : '');\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=create-href-from-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1ocmVmLWZyb20tdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBQWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxrQkFDZEMsR0FBOEMsRUFDOUNDLFdBQTJCO0lBQTNCQSxJQUFBQSxnQkFBQUEsS0FBQUEsR0FBQUEsY0FBdUI7SUFFdkIsT0FBT0QsSUFBSUUsUUFBUSxHQUFHRixJQUFJRyxNQUFNLEdBQUlGLENBQUFBLGNBQWNELElBQUlJLElBQUksR0FBRyxHQUFDO0FBQ2hFIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1ocmVmLWZyb20tdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIcmVmRnJvbVVybChcbiAgdXJsOiBQaWNrPFVSTCwgJ3BhdGhuYW1lJyB8ICdzZWFyY2gnIHwgJ2hhc2gnPixcbiAgaW5jbHVkZUhhc2g6IGJvb2xlYW4gPSB0cnVlXG4pOiBzdHJpbmcge1xuICByZXR1cm4gdXJsLnBhdGhuYW1lICsgdXJsLnNlYXJjaCArIChpbmNsdWRlSGFzaCA/IHVybC5oYXNoIDogJycpXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlSHJlZkZyb21VcmwiLCJ1cmwiLCJpbmNsdWRlSGFzaCIsInBhdGhuYW1lIiwic2VhcmNoIiwiaGFzaCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js":
|
||
/*!********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js ***!
|
||
\********************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createRouterCacheKey\", ({\n enumerable: true,\n get: function() {\n return createRouterCacheKey;\n }\n}));\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\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];\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(_segment.PAGE_SEGMENT_KEY)) {\n return _segment.PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=create-router-cache-key.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5LmpzIiwibWFwcGluZ3MiOiI7Ozs7d0RBR2dCQTs7O2VBQUFBOzs7cUNBRmlCO0FBRTFCLFNBQVNBLHFCQUNkQyxPQUFnQixFQUNoQkMsdUJBQXdDO0lBQXhDQSxJQUFBQSw0QkFBQUEsS0FBQUEsR0FBQUEsMEJBQW1DO0lBRW5DLDhEQUE4RDtJQUM5RCx1R0FBdUc7SUFDdkcsSUFBSUMsTUFBTUMsT0FBTyxDQUFDSCxVQUFVO1FBQzFCLE9BQVVBLE9BQU8sQ0FBQyxFQUFFLEdBQUMsTUFBR0EsT0FBTyxDQUFDLEVBQUUsR0FBQyxNQUFHQSxPQUFPLENBQUMsRUFBRTtJQUNsRDtJQUVBLGtFQUFrRTtJQUNsRSxrRkFBa0Y7SUFDbEYsSUFBSUMsMkJBQTJCRCxRQUFRSSxVQUFVLENBQUNDLFNBQUFBLGdCQUFnQixHQUFHO1FBQ25FLE9BQU9BLFNBQUFBLGdCQUFnQjtJQUN6QjtJQUVBLE9BQU9MO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY3JlYXRlLXJvdXRlci1jYWNoZS1rZXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZWdtZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50J1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUm91dGVyQ2FjaGVLZXkoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHdpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzOiBib29sZWFuID0gZmFsc2Vcbikge1xuICAvLyBpZiB0aGUgc2VnbWVudCBpcyBhbiBhcnJheSwgaXQgbWVhbnMgaXQncyBhIGR5bmFtaWMgc2VnbWVudFxuICAvLyBmb3IgZXhhbXBsZSwgWydsYW5nJywgJ2VuJywgJ2QnXS4gV2UgbmVlZCB0byBjb252ZXJ0IGl0IHRvIGEgc3RyaW5nIHRvIHN0b3JlIGl0IGFzIGEgY2FjaGUgbm9kZSBrZXkuXG4gIGlmIChBcnJheS5pc0FycmF5KHNlZ21lbnQpKSB7XG4gICAgcmV0dXJuIGAke3NlZ21lbnRbMF19fCR7c2VnbWVudFsxXX18JHtzZWdtZW50WzJdfWBcbiAgfVxuXG4gIC8vIFBhZ2Ugc2VnbWVudHMgbWlnaHQgaGF2ZSBzZWFyY2ggcGFyYW1ldGVycywgaWUgX19QQUdFX18/Zm9vPWJhclxuICAvLyBXaGVuIGB3aXRob3V0U2VhcmNoUGFyYW1ldGVyc2AgaXMgdHJ1ZSwgd2Ugb25seSB3YW50IHRvIHJldHVybiB0aGUgcGFnZSBzZWdtZW50XG4gIGlmICh3aXRob3V0U2VhcmNoUGFyYW1ldGVycyAmJiBzZWdtZW50LnN0YXJ0c1dpdGgoUEFHRV9TRUdNRU5UX0tFWSkpIHtcbiAgICByZXR1cm4gUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsInNlZ21lbnQiLCJ3aXRob3V0U2VhcmNoUGFyYW1ldGVycyIsIkFycmF5IiwiaXNBcnJheSIsInN0YXJ0c1dpdGgiLCJQQUdFX1NFR01FTlRfS0VZIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js":
|
||
/*!******************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js ***!
|
||
\******************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \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 createFetch: function() {\n return createFetch;\n },\n createFromNextReadableStream: function() {\n return createFromNextReadableStream;\n },\n fetchServerResponse: function() {\n return fetchServerResponse;\n }\n});\nconst _client = __webpack_require__(/*! react-server-dom-webpack/client */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js\");\nconst _approuterheaders = __webpack_require__(/*! ../app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _appcallserver = __webpack_require__(/*! ../../app-call-server */ \"(ssr)/./node_modules/next/dist/client/app-call-server.js\");\nconst _appfindsourcemapurl = __webpack_require__(/*! ../../app-find-source-map-url */ \"(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _appbuildid = __webpack_require__(/*! ../../app-build-id */ \"(ssr)/./node_modules/next/dist/client/app-build-id.js\");\nconst _setcachebustingsearchparam = __webpack_require__(/*! ./set-cache-busting-search-param */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js\");\nconst _routeparams = __webpack_require__(/*! ../../route-params */ \"(ssr)/./node_modules/next/dist/client/route-params.js\");\nconst createFromReadableStream = _client.createFromReadableStream;\nfunction doMpaNavigation(url) {\n return {\n flightData: (0, _routeparams.urlToUrlWithoutFlightMarker)(new URL(url, location.origin)).toString(),\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n staleTime: -1\n };\n}\nlet abortController = new AbortController();\nif (false) {}\nasync function fetchServerResponse(url, options) {\n const { flightRouterState, nextUrl, prefetchKind } = options;\n const headers = {\n // Enable flight response\n [_approuterheaders.RSC_HEADER]: '1',\n // Provide the current router state\n [_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER]: (0, _flightdatahelpers.prepareFlightRouterStateForRequest)(flightRouterState, options.isHmrRefresh)\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 === _routerreducertypes.PrefetchKind.AUTO) {\n headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER] = '1';\n }\n if ( true && options.isHmrRefresh) {\n headers[_approuterheaders.NEXT_HMR_REFRESH_HEADER] = '1';\n }\n if (nextUrl) {\n headers[_approuterheaders.NEXT_URL] = nextUrl;\n }\n try {\n var _res_headers_get;\n // When creating a \"temporary\" prefetch (the \"on-demand\" prefetch that gets created on navigation, if one doesn't exist)\n // we send the request with a \"high\" priority as it's in response to a user interaction that could be blocking a transition.\n // Otherwise, all other prefetches are sent with a \"low\" priority.\n // We use \"auto\" for in all other cases to match the existing default, as this function is shared outside of prefetching.\n const fetchPriority = prefetchKind ? prefetchKind === _routerreducertypes.PrefetchKind.TEMPORARY ? 'high' : 'low' : 'auto';\n if (false) {}\n const res = await createFetch(url, headers, fetchPriority, abortController.signal);\n const responseUrl = (0, _routeparams.urlToUrlWithoutFlightMarker)(new URL(res.url));\n const canonicalUrl = res.redirected ? responseUrl : undefined;\n const contentType = res.headers.get('content-type') || '';\n const interception = !!((_res_headers_get = res.headers.get('vary')) == null ? void 0 : _res_headers_get.includes(_approuterheaders.NEXT_URL));\n const postponed = !!res.headers.get(_approuterheaders.NEXT_DID_POSTPONE_HEADER);\n const staleTimeHeaderSeconds = res.headers.get(_approuterheaders.NEXT_ROUTER_STALE_TIME_HEADER);\n const staleTime = staleTimeHeaderSeconds !== null ? parseInt(staleTimeHeaderSeconds, 10) * 1000 : -1;\n let isFlightResponse = contentType.startsWith(_approuterheaders.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 || !res.body) {\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 // We may navigate to a page that requires a different Webpack runtime.\n // In prod, every page will have the same Webpack runtime.\n // In dev, the Webpack runtime is minimal for each page.\n // We need to ensure the Webpack runtime is updated before executing client-side JS of the new page.\n if (true) {\n await (__webpack_require__(/*! ../../dev/hot-reloader/app/hot-reloader-app */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js\").waitForWebpackRuntimeHotUpdate)();\n }\n // Handle the `fetch` readable stream that can be unwrapped by `React.use`.\n const flightStream = postponed ? createUnclosingPrefetchStream(res.body) : res.body;\n const response = await createFromNextReadableStream(flightStream);\n if ((0, _appbuildid.getAppBuildId)() !== response.b) {\n return doMpaNavigation(res.url);\n }\n return {\n flightData: (0, _flightdatahelpers.normalizeFlightData)(response.f),\n canonicalUrl: canonicalUrl,\n couldBeIntercepted: interception,\n prerendered: response.S,\n postponed,\n staleTime\n };\n } catch (err) {\n if (!abortController.signal.aborted) {\n console.error(\"Failed to fetch RSC payload for \" + url + \". Falling back to browser navigation.\", err);\n }\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 flightData: url.toString(),\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n staleTime: -1\n };\n }\n}\nasync function createFetch(url, headers, fetchPriority, signal) {\n // TODO: In output: \"export\" mode, the headers do nothing. Omit them (and the\n // cache busting search param) from the request so they're\n // maximally cacheable.\n if (false) {}\n if (false) {}\n const fetchOptions = {\n // Backwards compat for older browsers. `same-origin` is the default in modern browsers.\n credentials: 'same-origin',\n headers,\n priority: fetchPriority || undefined,\n signal\n };\n // `fetchUrl` is slightly different from `url` because we add a cache-busting\n // search param to it. This should not leak outside of this function, so we\n // track them separately.\n let fetchUrl = new URL(url);\n (0, _setcachebustingsearchparam.setCacheBustingSearchParam)(fetchUrl, headers);\n let browserResponse = await fetch(fetchUrl, fetchOptions);\n // If the server responds with a redirect (e.g. 307), and the redirected\n // location does not contain the cache busting search param set in the\n // original request, the response is likely invalid — when following the\n // redirect, the browser forwards the request headers, but since the cache\n // busting search param is missing, the server will reject the request due to\n // a mismatch.\n //\n // Ideally, we would be able to intercept the redirect response and perform it\n // manually, instead of letting the browser automatically follow it, but this\n // is not allowed by the fetch API.\n //\n // So instead, we must \"replay\" the redirect by fetching the new location\n // again, but this time we'll append the cache busting search param to prevent\n // a mismatch.\n //\n // TODO: We can optimize Next.js's built-in middleware APIs by returning a\n // custom status code, to prevent the browser from automatically following it.\n //\n // This does not affect Server Action-based redirects; those are encoded\n // differently, as part of the Flight body. It only affects redirects that\n // occur in a middleware or a third-party proxy.\n let redirected = browserResponse.redirected;\n if (false) {}\n // Remove the cache busting search param from the response URL, to prevent it\n // from leaking outside of this function.\n const responseUrl = new URL(browserResponse.url, fetchUrl);\n responseUrl.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n const rscResponse = {\n url: responseUrl.href,\n // This is true if any redirects occurred, either automatically by the\n // browser, or manually by us. So it's different from\n // `browserResponse.redirected`, which only tells us whether the browser\n // followed a redirect, and only for the last response in the chain.\n redirected,\n // These can be copied from the last browser response we received. We\n // intentionally only expose the subset of fields that are actually used\n // elsewhere in the codebase.\n ok: browserResponse.ok,\n headers: browserResponse.headers,\n body: browserResponse.body,\n status: browserResponse.status\n };\n return rscResponse;\n}\nfunction createFromNextReadableStream(flightStream) {\n return createFromReadableStream(flightStream, {\n callServer: _appcallserver.callServer,\n findSourceMapURL: _appfindsourcemapurl.findSourceMapURL\n });\n}\nfunction createUnclosingPrefetchStream(originalFlightStream) {\n // When PPR is enabled, prefetch streams may contain references that never\n // resolve, because that's how we encode dynamic data access. In the decoded\n // object returned by the Flight client, these are reified into hanging\n // promises that suspend during render, which is effectively what we want.\n // The UI resolves when it switches to the dynamic data stream\n // (via useDeferredValue(dynamic, static)).\n //\n // However, the Flight implementation currently errors if the server closes\n // the response before all the references are resolved. As a cheat to work\n // around this, we wrap the original stream in a new stream that never closes,\n // and therefore doesn't error.\n const reader = originalFlightStream.getReader();\n return new ReadableStream({\n async pull (controller) {\n while(true){\n const { done, value } = await reader.read();\n if (!done) {\n // Pass to the target stream and keep consuming the Flight response\n // from the server.\n controller.enqueue(value);\n continue;\n }\n // The server stream has closed. Exit, but intentionally do not close\n // the target stream.\n return;\n }\n }\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=fetch-server-response.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZldGNoLXNlcnZlci1yZXNwb25zZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUEyUXNCQSxXQUFXO2VBQVhBOztJQXFITkMsNEJBQTRCO2VBQTVCQTs7SUEzUk1DLG1CQUFtQjtlQUFuQkE7OztvQ0FqR3NEOzhDQWtCckU7MkNBQ29CO2lEQUNNO2dEQUNKOytDQUt0Qjt3Q0FDdUI7d0RBQ2E7eUNBQ0M7QUFFNUMsTUFBTUMsMkJBQ0pDLFFBQUFBLHdCQUErQjtBQThCakMsU0FBU0MsZ0JBQWdCQyxHQUFXO0lBQ2xDLE9BQU87UUFDTEMsWUFBWUMsQ0FBQUEsR0FBQUEsYUFBQUEsMkJBQUFBLEVBQ1YsSUFBSUMsSUFBSUgsS0FBS0ksU0FBU0MsTUFBTSxHQUM1QkMsUUFBUTtRQUNWQyxjQUFjQztRQUNkQyxvQkFBb0I7UUFDcEJDLGFBQWE7UUFDYkMsV0FBVztRQUNYQyxXQUFXLENBQUM7SUFDZDtBQUNGO0FBRUEsSUFBSUMsa0JBQWtCLElBQUlDO0FBRTFCLElBQUksS0FBNkIsRUFBRSxFQWNsQztBQU1NLGVBQWVsQixvQkFDcEJJLEdBQVEsRUFDUmtCLE9BQW1DO0lBRW5DLE1BQU0sRUFBRUMsaUJBQWlCLEVBQUVDLE9BQU8sRUFBRUMsWUFBWSxFQUFFLEdBQUdIO0lBRXJELE1BQU1JLFVBQTBCO1FBQzlCLHlCQUF5QjtRQUN6QixDQUFDQyxrQkFBQUEsVUFBVSxDQUFDLEVBQUU7UUFDZCxtQ0FBbUM7UUFDbkMsQ0FBQ0Msa0JBQUFBLDZCQUE2QixDQUFDLEVBQUVDLENBQUFBLEdBQUFBLG1CQUFBQSxrQ0FBQUEsRUFDL0JOLG1CQUNBRCxRQUFRUSxZQUFZO0lBRXhCO0lBRUE7Ozs7O0dBS0MsR0FDRCxJQUFJTCxpQkFBaUJNLG9CQUFBQSxZQUFZLENBQUNDLElBQUksRUFBRTtRQUN0Q04sT0FBTyxDQUFDTyxrQkFBQUEsMkJBQTJCLENB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QUNGO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmV0Y2gtc2VydmVyLXJlc3BvbnNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG4vLyBUT0RPOiBFeHBsaWNpdGx5IGltcG9ydCBmcm9tIGNsaWVudC5icm93c2VyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0gYXMgY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtQnJvd3NlciB9IGZyb20gJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQnXG5cbmltcG9ydCB0eXBlIHtcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIE5hdmlnYXRpb25GbGlnaHRSZXNwb25zZSxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVIgfSBmcm9tICcuLi9hcHAtcm91dGVyLWhlYWRlcnMnXG5pbXBvcnQge1xuICBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSLFxuICBORVhUX1JTQ19VTklPTl9RVUVSWSxcbiAgTkVYVF9VUkwsXG4gIFJTQ19IRUFERVIsXG4gIFJTQ19DT05URU5UX1RZUEVfSEVBREVSLFxuICBORVhUX0hNUl9SRUZSRVNIX0hFQURFUixcbiAgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSLFxuICBORVhUX1JPVVRFUl9TVEFMRV9USU1FX0hFQURFUixcbn0gZnJvbSAnLi4vYXBwLXJvdXRlci1oZWFkZXJzJ1xuaW1wb3J0IHsgY2FsbFNlcnZlciB9IGZyb20gJy4uLy4uL2FwcC1jYWxsLXNlcnZlcidcbmltcG9ydCB7IGZpbmRTb3VyY2VNYXBVUkwgfSBmcm9tICcuLi8uLi9hcHAtZmluZC1zb3VyY2UtbWFwLXVybCdcbmltcG9ydCB7IFByZWZldGNoS2luZCB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQge1xuICBub3JtYWxpemVGbGlnaHREYXRhLFxuICBwcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0LFxuICB0eXBlIE5vcm1hbGl6ZWRGbGlnaHREYXRhLFxufSBmcm9tICcuLi8uLi9mbGlnaHQtZGF0YS1oZWxwZXJzJ1xuaW1wb3J0IHsgZ2V0QXBwQnVpbGRJZCB9IGZyb20gJy4uLy4uL2FwcC1idWlsZC1pZCdcbmltcG9ydCB7IHNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtIH0gZnJvbSAnLi9zZXQtY2FjaGUtYnVzdGluZy1zZWFyY2gtcGFyYW0nXG5pbXBvcnQgeyB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIgfSBmcm9tICcuLi8uLi9yb3V0ZS1wYXJhbXMnXG5cbmNvbnN0IGNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSA9XG4gIGNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbUJyb3dzZXIgYXMgKHR5cGVvZiBpbXBvcnQoJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQuYnJvd3NlcicpKVsnY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtJ11cblxuZXhwb3J0IGludGVyZmFjZSBGZXRjaFNlcnZlclJlc3BvbnNlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICByZWFkb25seSBuZXh0VXJsOiBzdHJpbmcgfCBudWxsXG4gIHJlYWRvbmx5IHByZWZldGNoS2luZD86IFByZWZldGNoS2luZFxuICByZWFkb25seSBpc0htclJlZnJlc2g/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQgPSB7XG4gIGZsaWdodERhdGE6IE5vcm1hbGl6ZWRGbGlnaHREYXRhW10gfCBzdHJpbmdcbiAgY2Fub25pY2FsVXJsOiBVUkwgfCB1bmRlZmluZWRcbiAgY291bGRCZUludGVyY2VwdGVkOiBib29sZWFuXG4gIHByZXJlbmRlcmVkOiBib29sZWFuXG4gIHBvc3Rwb25lZDogYm9vbGVhblxuICBzdGFsZVRpbWU6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBSZXF1ZXN0SGVhZGVycyA9IHtcbiAgW1JTQ19IRUFERVJdPzogJzEnXG4gIFtORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUl0/OiBzdHJpbmdcbiAgW05FWFRfVVJMXT86IHN0cmluZ1xuICBbTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXT86ICcxJyB8ICcyJ1xuICBbTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVJdPzogc3RyaW5nXG4gICd4LWRlcGxveW1lbnQtaWQnPzogc3RyaW5nXG4gIFtORVhUX0hNUl9SRUZSRVNIX0hFQURFUl0/OiAnMSdcbiAgLy8gQSBoZWFkZXIgdGhhdCBpcyBvbmx5IGFkZGVkIGluIHRlc3QgbW9kZSB0byBhc3NlcnQgb24gZmV0Y2ggcHJpb3JpdHlcbiAgJ05leHQtVGVzdC1GZXRjaC1Qcmlvcml0eSc/OiBSZXF1ZXN0SW5pdFsncHJpb3JpdHknXVxufVxuXG5mdW5jdGlvbiBkb01wYU5hdmlnYXRpb24odXJsOiBzdHJpbmcpOiBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0IHtcbiAgcmV0dXJuIHtcbiAgICBmbGlnaHREYXRhOiB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIoXG4gICAgICBuZXcgVVJMKHVybCwgbG9jYXRpb24ub3JpZ2luKVxuICAgICkudG9TdHJpbmcoKSxcbiAgICBjYW5vbmljYWxVcmw6IHVuZGVmaW5lZCxcbiAgICBjb3VsZEJlSW50ZXJjZXB0ZWQ6IGZhbHNlLFxuICAgIHByZXJlbmRlcmVkOiBmYWxzZSxcbiAgICBwb3N0cG9uZWQ6IGZhbHNlLFxuICAgIHN0YWxlVGltZTogLTEsXG4gIH1cbn1cblxubGV0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKVxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgLy8gQWJvcnQgYW55IGluLWZsaWdodCByZXF1ZXN0cyB3aGVuIHRoZSBwYWdlIGlzIHVubG9hZGVkLCBlLmcuIGR1ZSB0b1xuICAvLyByZWxvYWRpbmcgdGhlIHBhZ2Ugb3IgcGVyZm9ybWluZyBoYXJkIG5hdmlnYXRpb25zLiBUaGlzIGFsbG93cyB1cyB0byBpZ25vcmVcbiAgLy8gd2hhdCB3b3VsZCBvdGhlcndpc2UgYmUgYSB0aHJvd24gVHlwZUVycm9yIHdoZW4gdGhlIGJyb3dzZXIgY2FuY2VscyB0aGVcbiAgLy8gcmVxdWVzdHMuXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsICgpID0+IHtcbiAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKVxuICB9KVxuXG4gIC8vIFVzZSBhIGZyZXNoIEFib3J0Q29udHJvbGxlciBpbnN0YW5jZSBvbiBwYWdlc2hvdywgZS5nLiB3aGVuIG5hdmlnYXRpbmcgYmFja1xuICAvLyBhbmQgdGhlIEphdmFTY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQgaXMgcmVzdG9yZWQgYnkgdGhlIGJyb3dzZXIuXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsICgpID0+IHtcbiAgICBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcbiAgfSlcbn1cblxuLyoqXG4gKiBGZXRjaCB0aGUgZmxpZ2h0IGRhdGEgZm9yIHRoZSBwcm92aWRlZCB1cmwuIFRha2VzIGluIHRoZSBjdXJyZW50IHJvdXRlciBzdGF0ZVxuICogdG8gZGVjaWRlIHdoYXQgdG8gcmVuZGVyIHNlcnZlci1zaWRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hTZXJ2ZXJSZXNwb25zZShcbiAgdXJsOiBVUkwsXG4gIG9wdGlvbnM6IEZldGNoU2VydmVyUmVzcG9uc2VPcHRpb25zXG4pOiBQcm9taXNlPEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQ+IHtcbiAgY29uc3QgeyBmbGlnaHRSb3V0ZXJTdGF0ZSwgbmV4dFVybCwgcHJlZmV0Y2hLaW5kIH0gPSBvcHRpb25zXG5cbiAgY29uc3QgaGVhZGVyczogUmVxdWVzdEhlYWRlcnMgPSB7XG4gICAgLy8gRW5hYmxlIGZsaWdodCByZXNwb25zZVxuICAgIFtSU0NfSEVBREVSXTogJzEnLFxuICAgIC8vIFByb3ZpZGUgdGhlIGN1cnJlbnQgcm91dGVyIHN0YXRlXG4gICAgW05FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSXTogcHJlcGFyZUZsaWdodFJvdXRlclN0YXRlRm9yUmVxdWVzdChcbiAgICAgIGZsaWdodFJvdXRlclN0YXRlLFxuICAgICAgb3B0aW9ucy5pc0htclJlZnJlc2hcbiAgICApLFxuICB9XG5cbiAgLyoqXG4gICAqIFRocmVlIGNhc2VzOlxuICAgKiAtIGBwcmVmZXRjaEtpbmRgIGlzIGB1bmRlZmluZWRgLCBpdCBtZWFucyBpdCdzIGEgbm9ybWFsIG5hdmlnYXRpb24sIHNvIHdlIHdhbnQgdG8gcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBmdWxseVxuICAgKiAtIGBwcmVmZXRjaEtpbmRgIGlzIGBmdWxsYCAtIHdlIHdhbnQgdG8gcHJlZmV0Y2ggdGhlIHdob2xlIHBhZ2Ugc28gc2FtZSBhcyBhYm92ZVxuICAgKiAtIGBwcmVmZXRjaEtpbmRgIGlzIGBhdXRvYCAtIGlmIHRoZSBwYWdlIGlzIGR5bmFtaWMsIHByZWZldGNoIHRoZSBwYWdlIGRhdGEgcGFydGlhbGx5LCBpZiBzdGF0aWMgcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBmdWxseVxuICAgKi9cbiAgaWYgKHByZWZldGNoS2luZCA9PT0gUHJlZmV0Y2hLaW5kLkFVVE8pIHtcbiAgICBoZWFkZXJzW05FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl0gPSAnMSdcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBvcHRpb25zLmlzSG1yUmVmcmVzaCkge1xuICAgIGhlYWRlcnNbTkVYVF9ITVJfUkVGUkVTSF9IRUFERVJdID0gJzEnXG4gIH1cblxuICBpZiAobmV4dFVybCkge1xuICAgIGhlYWRlcnNbTkVYVF9VUkxdID0gbmV4dFVybFxuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBXaGVuIGNyZWF0aW5nIGEgXCJ0ZW1wb3JhcnlcIiBwcmVmZXRjaCAodGhlIFwib24tZGVtYW5kXCIgcHJlZmV0Y2ggdGhhdCBnZXRzIGNyZWF0ZWQgb24gbmF2aWdhdGlvbiwgaWYgb25lIGRvZXNuJ3QgZXhpc3QpXG4gICAgLy8gd2Ugc2VuZCB0aGUgcmVxdWVzdCB3aXRoIGEgXCJoaWdoXCIgcHJpb3JpdHkgYXMgaXQncyBpbiByZXNwb25zZSB0byBhIHVzZXIgaW50ZXJhY3Rpb24gdGhhdCBjb3VsZCBiZSBibG9ja2luZyBhIHRyYW5zaXRpb24uXG4gICAgLy8gT3RoZXJ3aXNlLCBhbGwgb3RoZXIgcHJlZmV0Y2hlcyBhcmUgc2VudCB3aXRoIGEgXCJsb3dcIiBwcmlvcml0eS5cbiAgICAvLyBXZSB1c2UgXCJhdXRvXCIgZm9yIGluIGFsbCBvdGhlciBjYXNlcyB0byBtYXRjaCB0aGUgZXhpc3RpbmcgZGVmYXVsdCwgYXMgdGhpcyBmdW5jdGlvbiBpcyBzaGFyZWQgb3V0c2lkZSBvZiBwcmVmZXRjaGluZy5cbiAgICBjb25zdCBmZXRjaFByaW9yaXR5ID0gcHJlZmV0Y2hLaW5kXG4gICAgICA/IHByZWZldGNoS2luZCA9PT0gUHJlZmV0Y2hLaW5kLlRFTVBPUkFSWVxuICAgICAgICA/ICdoaWdoJ1xuICAgICAgICA6ICdsb3cnXG4gICAgICA6ICdhdXRvJ1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ09ORklHX09VVFBVVCA9PT0gJ2V4cG9ydCcpIHtcbiAgICAgICAgLy8gSW4gXCJvdXRwdXQ6IGV4cG9ydFwiIG1vZGUsIHdlIGNhbid0IHJlbHkgb24gaGVhZGVycyB0byBkaXN0aW5ndWlzaFxuICAgICAgICAvLyBiZXR3ZWVuIEhUTUwgYW5kIFJTQyByZXF1ZXN0cy4gSW5zdGVhZCwgd2UgYXBwZW5kIGFuIGV4dHJhIHByZWZpeFxuICAgICAgICAvLyB0byB0aGUgcmVxdWVzdC5cbiAgICAgICAgdXJsID0gbmV3IFVSTCh1cmwpXG4gICAgICAgIGlmICh1cmwucGF0aG5hbWUuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgICAgIHVybC5wYXRobmFtZSArPSAnaW5kZXgudHh0J1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVybC5wYXRobmFtZSArPSAnLnR4dCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNyZWF0ZUZldGNoKFxuICAgICAgdXJsLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGZldGNoUHJpb3JpdHksXG4gICAgICBhYm9ydENvbnRyb2xsZXIuc2lnbmFsXG4gICAgKVxuXG4gICAgY29uc3QgcmVzcG9uc2VVcmwgPSB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIobmV3IFVSTChyZXMudXJsKSlcbiAgICBjb25zdCBjYW5vbmljYWxVcmwgPSByZXMucmVkaXJlY3RlZCA/IHJlc3BvbnNlVXJsIDogdW5kZWZpbmVkXG5cbiAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlcy5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykgfHwgJydcbiAgICBjb25zdCBpbnRlcmNlcHRpb24gPSAhIXJlcy5oZWFkZXJzLmdldCgndmFyeScpPy5pbmNsdWRlcyhORVhUX1VSTClcbiAgICBjb25zdCBwb3N0cG9uZWQgPSAhIXJlcy5oZWFkZXJzLmdldChORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIpXG4gICAgY29uc3Qgc3RhbGVUaW1lSGVhZGVyU2Vjb25kcyA9IHJlcy5oZWFkZXJzLmdldChcbiAgICAgIE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSXG4gICAgKVxuICAgIGNvbnN0IHN0YWxlVGltZSA9XG4gICAgICBzdGFsZVRpbWVIZWFkZXJTZWNvbmRzICE9PSBudWxsXG4gICAgICAgID8gcGFyc2VJbnQoc3RhbGVUaW1lSGVhZGVyU2Vjb25kcywgMTApICogMTAwMFxuICAgICAgICA6IC0xXG4gICAgbGV0IGlzRmxpZ2h0UmVzcG9uc2UgPSBjb250ZW50VHlwZS5zdGFydHNXaXRoKFJTQ19DT05URU5UX1RZUEVfSEVBREVSKVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ09ORklHX09VVFBVVCA9PT0gJ2V4cG9ydCcpIHtcbiAgICAgICAgaWYgKCFpc0ZsaWdodFJlc3BvbnNlKSB7XG4gICAgICAgICAgaXNGbGlnaHRSZXNwb25zZSA9IGNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoJ3RleHQvcGxhaW4nKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgZmV0Y2ggcmV0dXJucyBzb21ldGhpbmcgZGlmZmVyZW50IHRoYW4gZmxpZ2h0IHJlc3BvbnNlIGhhbmRsZSBpdCBsaWtlIGEgbXBhIG5hdmlnYXRpb25cbiAgICAvLyBJZiB0aGUgZmV0Y2ggd2FzIG5vdCAyMDAsIHdlIGFsc28gaGFuZGxlIGl0IGxpa2UgYSBtcGEgbmF2aWdhdGlvblxuICAgIGlmICghaXNGbGlnaHRSZXNwb25zZSB8fCAhcmVzLm9rIHx8ICFyZXMuYm9keSkge1xuICAgICAgLy8gaW4gY2FzZSB0aGUgb3JpZ2luYWwgVVJMIGNhbWUgd2l0aCBhIGhhc2gsIHByZXNlcnZlIGl0IGJlZm9yZSByZWRpcmVjdGluZyB0byB0aGUgbmV3IFVSTFxuICAgICAgaWYgKHVybC5oYXNoKSB7XG4gICAgICAgIHJlc3BvbnNlVXJsLmhhc2ggPSB1cmwuaGFzaFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZG9NcGFOYXZpZ2F0aW9uKHJlc3BvbnNlVXJsLnRvU3RyaW5nKCkpXG4gICAgfVxuXG4gICAgLy8gV2UgbWF5IG5hdmlnYXRlIHRvIGEgcGFnZSB0aGF0IHJlcXVpcmVzIGEgZGlmZmVyZW50IFdlYnBhY2sgcnVudGltZS5cbiAgICAvLyBJbiBwcm9kLCBldmVyeSBwYWdlIHdpbGwgaGF2ZSB0aGUgc2FtZSBXZWJwYWNrIHJ1bnRpbWUuXG4gICAgLy8gSW4gZGV2LCB0aGUgV2VicGFjayBydW50aW1lIGlzIG1pbmltYWwgZm9yIGVhY2ggcGFnZS5cbiAgICAvLyBXZSBuZWVkIHRvIGVuc3VyZSB0aGUgV2VicGFjayBydW50aW1lIGlzIHVwZGF0ZWQgYmVmb3JlIGV4ZWN1dGluZyBjbGllbnQtc2lkZSBKUyBvZiB0aGUgbmV3IHBhZ2UuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgYXdhaXQgKFxuICAgICAgICByZXF1aXJlKCcuLi8uLi9kZXYvaG90LXJlbG9hZGVyL2FwcC9ob3QtcmVsb2FkZXItYXBwJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vZGV2L2hvdC1yZWxvYWRlci9hcHAvaG90LXJlbG9hZGVyLWFwcCcpXG4gICAgICApLndhaXRGb3JXZWJwYWNrUnVudGltZUhvdFVwZGF0ZSgpXG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHRoZSBgZmV0Y2hgIHJlYWRhYmxlIHN0cmVhbSB0aGF0IGNhbiBiZSB1bndyYXBwZWQgYnkgYFJlYWN0LnVzZWAuXG4gICAgY29uc3QgZmxpZ2h0U3RyZWFtID0gcG9zdHBvbmVkXG4gICAgICA/IGNyZWF0ZVVuY2xvc2luZ1ByZWZldGNoU3RyZWFtKHJlcy5ib2R5KVxuICAgICAgOiByZXMuYm9keVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgKGNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW0oXG4gICAgICBmbGlnaHRTdHJlYW1cbiAgICApIGFzIFByb21pc2U8TmF2aWdhdGlvbkZsaWdodFJlc3BvbnNlPilcblxuICAgIGlmIChnZXRBcHBCdWlsZElkKCkgIT09IHJlc3BvbnNlLmIpIHtcbiAgICAgIHJldHVybiBkb01wYU5hdmlnYXRpb24ocmVzLnVybClcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmxpZ2h0RGF0YTogbm9ybWFsaXplRmxpZ2h0RGF0YShyZXNwb25zZS5mKSxcbiAgICAgIGNhbm9uaWNhbFVybDogY2Fub25pY2FsVXJsLFxuICAgICAgY291bGRCZUludGVyY2VwdGVkOiBpbnRlcmNlcHRpb24sXG4gICAgICBwcmVyZW5kZXJlZDogcmVzcG9uc2UuUyxcbiAgICAgIHBvc3Rwb25lZCxcbiAgICAgIHN0YWxlVGltZSxcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmICghYWJvcnRDb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGZldGNoIFJTQyBwYXlsb2FkIGZvciAke3VybH0uIEZhbGxpbmcgYmFjayB0byBicm93c2VyIG5hdmlnYXRpb24uYCxcbiAgICAgICAgZXJyXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gSWYgZmV0Y2ggZmFpbHMgaGFuZGxlIGl0IGxpa2UgYSBtcGEgbmF2aWdhdGlvblxuICAgIC8vIFRPRE8tQVBQOiBBZGQgYSB0ZXN0IGZvciB0aGUgY2FzZSB3aGVyZSBhIENPUlMgcmVxdWVzdCBmYWlscywgZS5nLiBleHRlcm5hbCB1cmwgcmVkaXJlY3QgY29taW5nIGZyb20gdGhlIHJlc3BvbnNlLlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvaXNzdWVzLzQzNjA1I2lzc3VlY29tbWVudC0xNDUxNjE3NTIxIGZvciBhIHJlcHJvZHVjdGlvbi5cbiAgICByZXR1cm4ge1xuICAgICAgZmxpZ2h0RGF0YTogdXJsLnRvU3RyaW5nKCksXG4gICAgICBjYW5vbmljYWxVcmw6IHVuZGVmaW5lZCxcbiAgICAgIGNvdWxkQmVJbnRlcmNlcHRlZDogZmFsc2UsXG4gICAgICBwcmVyZW5kZXJlZDogZmFsc2UsXG4gICAgICBwb3N0cG9uZWQ6IGZhbHNlLFxuICAgICAgc3RhbGVUaW1lOiAtMSxcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBpcyBhIHN1YnNldCBvZiB0aGUgc3RhbmRhcmQgUmVzcG9uc2UgdHlwZS4gV2UgdXNlIGEgY3VzdG9tIHR5cGUgZm9yXG4vLyB0aGlzIHNvIHdlIGNhbiBsaW1pdCB3aGljaCBkZXRhaWxzIGFib3V0IHRoZSByZXNwb25zZSBsZWFrIGludG8gdGhlIHJlc3Qgb2Zcbi8vIHRoZSBjb2RlYmFzZS4gRm9yIGV4YW1wbGUsIHRoZXJlJ3Mgc29tZSBjdXN0b20gbG9naWMgZm9yIG1hbnVhbGx5IGZvbGxvd2luZ1xuLy8gcmVkaXJlY3RzLCBzbyBcInJlZGlyZWN0ZWRcIiBpbiB0aGlzIHR5cGUgY291bGQgYmUgYSBjb21wb3NpdGUgb2YgbXVsdGlwbGVcbi8vIGJyb3dzZXIgZmV0Y2ggY2FsbHM7IGhvd2V2ZXIsIHRoaXMgZmFjdCBzaG91bGQgbm90IGxlYWsgdG8gdGhlIGNhbGxlci5cbmV4cG9ydCB0eXBlIFJTQ1Jlc3BvbnNlID0ge1xuICBvazogYm9vbGVhblxuICByZWRpcmVjdGVkOiBib29sZWFuXG4gIGhlYWRlcnM6IEhlYWRlcnNcbiAgYm9keTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4gfCBudWxsXG4gIHN0YXR1czogbnVtYmVyXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVGZXRjaChcbiAgdXJsOiBVUkwsXG4gIGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzLFxuICBmZXRjaFByaW9yaXR5OiAnYXV0bycgfCAnaGlnaCcgfCAnbG93JyB8IG51bGwsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsXG4pOiBQcm9taXNlPFJTQ1Jlc3BvbnNlPiB7XG4gIC8vIFRPRE86IEluIG91dHB1dDogXCJleHBvcnRcIiBtb2RlLCB0aGUgaGVhZGVycyBkbyBub3RoaW5nLiBPbWl0IHRoZW0gKGFuZCB0aGVcbiAgLy8gY2FjaGUgYnVzdGluZyBzZWFyY2ggcGFyYW0pIGZyb20gdGhlIHJlcXVlc3Qgc28gdGhleSdyZVxuICAvLyBtYXhpbWFsbHkgY2FjaGVhYmxlLlxuXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFICYmIGZldGNoUHJpb3JpdHkgIT09IG51bGwpIHtcbiAgICBoZWFkZXJzWydOZXh0LVRlc3QtRmV0Y2gtUHJpb3JpdHknXSA9IGZldGNoUHJpb3JpdHlcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUQpIHtcbiAgICBoZWFkZXJzWyd4LWRlcGxveW1lbnQtaWQnXSA9IHByb2Nlc3MuZW52Lk5FWFRfREVQTE9ZTUVOVF9JRFxuICB9XG5cbiAgY29uc3QgZmV0Y2hPcHRpb25zOiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAvLyBCYWNrd2FyZHMgY29tcGF0IGZvciBvbGRlciBicm93c2Vycy4gYHNhbWUtb3JpZ2luYCBpcyB0aGUgZGVmYXVsdCBpbiBtb2Rlcm4gYnJvd3NlcnMuXG4gICAgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicsXG4gICAgaGVhZGVycyxcbiAgICBwcmlvcml0eTogZmV0Y2hQcmlvcml0eSB8fCB1bmRlZmluZWQsXG4gICAgc2lnbmFsLFxuICB9XG4gIC8vIGBmZXRjaFVybGAgaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGZyb20gYHVybGAgYmVjYXVzZSB3ZSBhZGQgYSBjYWNoZS1idXN0aW5nXG4gIC8vIHNlYXJjaCBwYXJhbSB0byBpdC4gVGhpcyBzaG91bGQgbm90IGxlYWsgb3V0c2lkZSBvZiB0aGlzIGZ1bmN0aW9uLCBzbyB3ZVxuICAvLyB0cmFjayB0aGVtIHNlcGFyYXRlbHkuXG4gIGxldCBmZXRjaFVybCA9IG5ldyBVUkwodXJsKVxuICBzZXRDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbShmZXRjaFVybCwgaGVhZGVycylcbiAgbGV0IGJyb3dzZXJSZXNwb25zZSA9IGF3YWl0IGZldGNoKGZldGNoVXJsLCBmZXRjaE9wdGlvbnMpXG5cbiAgLy8gSWYgdGhlIHNlcnZlciByZXNwb25kcyB3aXRoIGEgcmVkaXJlY3QgKGUuZy4gMzA3KSwgYW5kIHRoZSByZWRpcmVjdGVkXG4gIC8vIGxvY2F0aW9uIGRvZXMgbm90IGNvbnRhaW4gdGhlIGNhY2hlIGJ1c3Rpbmcgc2VhcmNoIHBhcmFtIHNldCBpbiB0aGVcbiAgLy8gb3JpZ2luYWwgcmVxdWVzdCwgdGhlIHJlc3BvbnNlIGlzIGxpa2VseSBpbnZhbGlkIOKAlCB3aGVuIGZvbGxvd2luZyB0aGVcbiAgLy8gcmVkaXJlY3QsIHRoZSBicm93c2VyIGZvcndhcmRzIHRoZSByZXF1ZXN0IGhlYWRlcnMsIGJ1dCBzaW5jZSB0aGUgY2FjaGVcbiAgLy8gYnVzdGluZyBzZWFyY2ggcGFyYW0gaXMgbWlzc2luZywgdGhlIHNlcnZlciB3aWxsIHJlamVjdCB0aGUgcmVxdWVzdCBkdWUgdG9cbiAgLy8gYSBtaXNtYXRjaC5cbiAgLy9cbiAgLy8gSWRlYWxseSwgd2Ugd291bGQgYmUgYWJsZSB0byBpbnRlcmNlcHQgdGhlIHJlZGlyZWN0IHJlc3BvbnNlIGFuZCBwZXJmb3JtIGl0XG4gIC8vIG1hbnVhbGx5LCBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlIGJyb3dzZXIgYXV0b21hdGljYWxseSBmb2xsb3cgaXQsIGJ1dCB0aGlzXG4gIC8vIGlzIG5vdCBhbGxvd2VkIGJ5IHRoZSBmZXRjaCBBUEkuXG4gIC8vXG4gIC8vIFNvIGluc3RlYWQsIHdlIG11c3QgXCJyZXBsYXlcIiB0aGUgcmVkaXJlY3QgYnkgZmV0Y2hpbmcgdGhlIG5ldyBsb2NhdGlvblxuICAvLyBhZ2FpbiwgYnV0IHRoaXMgdGltZSB3ZSdsbCBhcHBlbmQgdGhlIGNhY2hlIGJ1c3Rpbmcgc2VhcmNoIHBhcmFtIHRvIHByZXZlbnRcbiAgLy8gYSBtaXNtYXRjaC5cbiAgLy9cbiAgLy8gVE9ETzogV2UgY2FuIG9wdGltaXplIE5leHQuanMncyBidWlsdC1pbiBtaWRkbGV3YXJlIEFQSXMgYnkgcmV0dXJuaW5nIGFcbiAgLy8gY3VzdG9tIHN0YXR1cyBjb2RlLCB0byBwcmV2ZW50IHRoZSBicm93c2VyIGZyb20gYXV0b21hdGljYWxseSBmb2xsb3dpbmcgaXQuXG4gIC8vXG4gIC8vIFRoaXMgZG9lcyBub3QgYWZmZWN0IFNlcnZlciBBY3Rpb24tYmFzZWQgcmVkaXJlY3RzOyB0aG9zZSBhcmUgZW5jb2RlZFxuICAvLyBkaWZmZXJlbnRseSwgYXMgcGFydCBvZiB0aGUgRmxpZ2h0IGJvZHkuIEl0IG9ubHkgYWZmZWN0cyByZWRpcmVjdHMgdGhhdFxuICAvLyBvY2N1ciBpbiBhIG1pZGRsZXdhcmUgb3IgYSB0aGlyZC1wYXJ0eSBwcm94eS5cblxuICBsZXQgcmVkaXJlY3RlZCA9IGJyb3dzZXJSZXNwb25zZS5yZWRpcmVjdGVkXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1ZBTElEQVRFX1JTQ19SRVFVRVNUX0hFQURFUlMpIHtcbiAgICAvLyBUaGlzIGlzIHRvIHByZXZlbnQgYSByZWRpcmVjdCBsb29wLiBTYW1lIGxpbWl0IHVzZWQgYnkgQ2hyb21lLlxuICAgIGNvbnN0IE1BWF9SRURJUkVDVFMgPSAyMFxuICAgIGZvciAobGV0IG4gPSAwOyBuIDwgTUFYX1JFRElSRUNUUzsgbisrKSB7XG4gICAgICBpZiAoIWJyb3dzZXJSZXNwb25zZS5yZWRpcmVjdGVkKSB7XG4gICAgICAgIC8vIFRoZSBzZXJ2ZXIgZGlkIG5vdCBwZXJmb3JtIGEgcmVkaXJlY3QuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjb25zdCByZXNwb25zZVVybCA9IG5ldyBVUkwoYnJvd3NlclJlc3BvbnNlLnVybCwgZmV0Y2hVcmwpXG4gICAgICBpZiAocmVzcG9uc2VVcmwub3JpZ2luICE9PSBmZXRjaFVybC5vcmlnaW4pIHtcbiAgICAgICAgLy8gVGhlIHNlcnZlciByZWRpcmVjdGVkIHRvIGFuIGV4dGVybmFsIFVSTC4gVGhlIHJlc3Qgb2YgdGhlIGxvZ2ljIGJlbG93XG4gICAgICAgIC8vIGlzIG5vdCByZWxldmFudCwgYmVjYXVzZSBpdCBvbmx5IGFwcGxpZXMgdG8gaW50ZXJuYWwgcmVkaXJlY3RzLlxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICByZXNwb25zZVVybC5zZWFyY2hQYXJhbXMuZ2V0KE5FWFRfUlNDX1VOSU9OX1FVRVJZKSA9PT1cbiAgICAgICAgZmV0Y2hVcmwuc2VhcmNoUGFyYW1zLmdldChORVhUX1JTQ19VTklPTl9RVUVSWSlcbiAgICAgICkge1xuICAgICAgICAvLyBUaGUgcmVkaXJlY3RlZCBVUkwgYWxyZWFkeSBpbmNsdWRlcyB0aGUgY2FjaGUgYnVzdGluZyBzZWFyY2ggcGFyYW0uXG4gICAgICAgIC8vIFRoaXMgd2FzIHByb2JhYmx5IGludGVudGlvbmFsLiBSZWdhcmRsZXNzLCB0aGVyZSdzIG5vIHJlYXNvbiB0b1xuICAgICAgICAvLyBpc3N1ZSBhbm90aGVyIHJlcXVlc3QgdG8gdGhpcyBVUkwgYmVjYXVzZSBpdCBhbHJlYWR5IGhhcyB0aGUgcGFyYW1cbiAgICAgICAgLy8gdmFsdWUgdGhhdCB3ZSB3b3VsZCBoYXZlIGFkZGVkIGJlbG93LlxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgLy8gVGhlIFJTQyByZXF1ZXN0IHdhcyByZWRpcmVjdGVkLiBBc3N1bWUgdGhlIHJlc3BvbnNlIGlzIGludmFsaWQuXG4gICAgICAvL1xuICAgICAgLy8gQXBwZW5kIHRoZSBjYWNoZSBidXN0aW5nIHNlYXJjaCBwYXJhbSB0byB0aGUgcmVkaXJlY3RlZCBVUkwgYW5kXG4gICAgICAvLyBmZXRjaCBhZ2Fpbi5cbiAgICAgIGZldGNoVXJsID0gbmV3IFVSTChyZXNwb25zZVVybClcbiAgICAgIHNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtKGZldGNoVXJsLCBoZWFkZXJzKVxuICAgICAgYnJvd3NlclJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZmV0Y2hVcmwsIGZldGNoT3B0aW9ucylcbiAgICAgIC8vIFdlIGp1c3QgcGVyZm9ybWVkIGEgbWFudWFsIHJlZGlyZWN0LCBzbyB0aGlzIGlzIG5vdyB0cnVlLlxuICAgICAgcmVkaXJlY3RlZCA9IHRydWVcbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIGNhY2hlIGJ1c3Rpbmcgc2VhcmNoIHBhcmFtIGZyb20gdGhlIHJlc3BvbnNlIFVSTCwgdG8gcHJldmVudCBpdFxuICAvLyBmcm9tIGxlYWtpbmcgb3V0c2lkZSBvZiB0aGlzIGZ1bmN0aW9uLlxuICBjb25zdCByZXNwb25zZVVybCA9IG5ldyBVUkwoYnJvd3NlclJlc3BvbnNlLnVybCwgZmV0Y2hVcmwpXG4gIHJlc3BvbnNlVXJsLnNlYXJjaFBhcmFtcy5kZWxldGUoTkVYVF9SU0NfVU5JT05fUVVFUlkpXG5cbiAgY29uc3QgcnNjUmVzcG9uc2U6IFJTQ1Jlc3BvbnNlID0ge1xuICAgIHVybDogcmVzcG9uc2VVcmwuaHJlZixcblxuICAgIC8vIFRoaXMgaXMgdHJ1ZSBpZiBhbnkgcmVkaXJlY3RzIG9jY3VycmVkLCBlaXRoZXIgYXV0b21hdGljYWxseSBieSB0aGVcbiAgICAvLyBicm93c2VyLCBvciBtYW51YWxseSBieSB1cy4gU28gaXQncyBkaWZmZXJlbnQgZnJvbVxuICAgIC8vIGBicm93c2VyUmVzcG9uc2UucmVkaXJlY3RlZGAsIHdoaWNoIG9ubHkgdGVsbHMgdXMgd2hldGhlciB0aGUgYnJvd3NlclxuICAgIC8vIGZvbGxvd2VkIGEgcmVkaXJlY3QsIGFuZCBvbmx5IGZvciB0aGUgbGFzdCByZXNwb25zZSBpbiB0aGUgY2hhaW4uXG4gICAgcmVkaXJlY3RlZCxcblxuICAgIC8vIFRoZXNlIGNhbiBiZSBjb3BpZWQgZnJvbSB0aGUgbGFzdCBicm93c2VyIHJlc3BvbnNlIHdlIHJlY2VpdmVkLiBXZVxuICAgIC8vIGludGVudGlvbmFsbHkgb25seSBleHBvc2UgdGhlIHN1YnNldCBvZiBmaWVsZHMgdGhhdCBhcmUgYWN0dWFsbHkgdXNlZFxuICAgIC8vIGVsc2V3aGVyZSBpbiB0aGUgY29kZWJhc2UuXG4gICAgb2s6IGJyb3dzZXJSZXNwb25zZS5vayxcbiAgICBoZWFkZXJzOiBicm93c2VyUmVzcG9uc2UuaGVhZGVycyxcbiAgICBib2R5OiBicm93c2VyUmVzcG9uc2UuYm9keSxcbiAgICBzdGF0dXM6IGJyb3dzZXJSZXNwb25zZS5zdGF0dXMsXG4gIH1cblxuICByZXR1cm4gcnNjUmVzcG9uc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW0oXG4gIGZsaWdodFN0cmVhbTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT5cbik6IFByb21pc2U8dW5rbm93bj4ge1xuICByZXR1cm4gY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtKGZsaWdodFN0cmVhbSwge1xuICAgIGNhbGxTZXJ2ZXIsXG4gICAgZmluZFNvdXJjZU1hcFVSTCxcbiAgfSlcbn1cblxuZnVuY3Rpb24gY3JlYXRlVW5jbG9zaW5nUHJlZmV0Y2hTdHJlYW0oXG4gIG9yaWdpbmFsRmxpZ2h0U3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PlxuKTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4ge1xuICAvLyBXaGVuIFBQUiBpcyBlbmFibGVkLCBwcmVmZXRjaCBzdHJlYW1zIG1heSBjb250YWluIHJlZmVyZW5jZXMgdGhhdCBuZXZlclxuICAvLyByZXNvbHZlLCBiZWNhdXNlIHRoYXQncyBob3cgd2UgZW5jb2RlIGR5bmFtaWMgZGF0YSBhY2Nlc3MuIEluIHRoZSBkZWNvZGVkXG4gIC8vIG9iamVjdCByZXR1cm5lZCBieSB0aGUgRmxpZ2h0IGNsaWVudCwgdGhlc2UgYXJlIHJlaWZpZWQgaW50byBoYW5naW5nXG4gIC8vIHByb21pc2VzIHRoYXQgc3VzcGVuZCBkdXJpbmcgcmVuZGVyLCB3aGljaCBpcyBlZmZlY3RpdmVseSB3aGF0IHdlIHdhbnQuXG4gIC8vIFRoZSBVSSByZXNvbHZlcyB3aGVuIGl0IHN3aXRjaGVzIHRvIHRoZSBkeW5hbWljIGRhdGEgc3RyZWFtXG4gIC8vICh2aWEgdXNlRGVmZXJyZWRWYWx1ZShkeW5hbWljLCBzdGF0aWMpKS5cbiAgLy9cbiAgLy8gSG93ZXZlciwgdGhlIEZsaWdodCBpbXBsZW1lbnRhdGlvbiBjdXJyZW50bHkgZXJyb3JzIGlmIHRoZSBzZXJ2ZXIgY2xvc2VzXG4gIC8vIHRoZSByZXNwb25zZSBiZWZvcmUgYWxsIHRoZSByZWZlcmVuY2VzIGFyZSByZXNvbHZlZC4gQXMgYSBjaGVhdCB0byB3b3JrXG4gIC8vIGFyb3VuZCB0aGlzLCB3ZSB3cmFwIHRoZSBvcmlnaW5hbCBzdHJlYW0gaW4gYSBuZXcgc3RyZWFtIHRoYXQgbmV2ZXIgY2xvc2VzLFxuICAvLyBhbmQgdGhlcmVmb3JlIGRvZXNuJ3QgZXJyb3IuXG4gIGNvbnN0IHJlYWRlciA9IG9yaWdpbmFsRmxpZ2h0U3RyZWFtLmdldFJlYWRlcigpXG4gIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgIGFzeW5jIHB1bGwoY29udHJvbGxlcikge1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKVxuICAgICAgICBpZiAoIWRvbmUpIHtcbiAgICAgICAgICAvLyBQYXNzIHRvIHRoZSB0YXJnZXQgc3RyZWFtIGFuZCBrZWVwIGNvbnN1bWluZyB0aGUgRmxpZ2h0IHJlc3BvbnNlXG4gICAgICAgICAgLy8gZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSlcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIC8vIFRoZSBzZXJ2ZXIgc3RyZWFtIGhhcyBjbG9zZWQuIEV4aXQsIGJ1dCBpbnRlbnRpb25hbGx5IGRvIG5vdCBjbG9zZVxuICAgICAgICAvLyB0aGUgdGFyZ2V0IHN0cmVhbS5cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfSxcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVGZXRjaCIsImNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW0iLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtIiwiY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtQnJvd3NlciIsImRvTXBhTmF2aWdhdGlvbiIsInVybCIsImZsaWdodERhdGEiLCJ1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIiLCJVUkwiLCJsb2NhdGlvbiIsIm9yaWdpbiIsInRvU3RyaW5nIiwiY2Fub25pY2FsVXJsIiwidW5kZWZpbmVkIiwiY291bGRCZUludGVyY2VwdGVkIiwicHJlcmVuZGVyZWQiLCJwb3N0cG9uZWQiLCJzdGFsZVRpbWUiLCJhYm9ydENvbnRyb2xsZXIiLCJBYm9ydENvbnRyb2xsZXIiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwiYWJvcnQiLCJvcHRpb25zIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJuZXh0VXJsIiwicHJlZmV0Y2hLaW5kIiwiaGVhZGVycyIsIlJTQ19IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUiIsInByZXBhcmVGbGlnaHRSb3V0ZXJTdGF0ZUZvclJlcXVlc3QiLCJpc0htclJlZnJlc2giLCJQcmVmZXRjaEtpbmQiLCJBVVRPIiwiTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIiLCJORVhUX1VSTCIsInJlcyIsImZldGNoUHJpb3JpdHkiLCJURU1QT1JBUlkiLCJfX05FWFRfQ09ORklHX09VVFBVVCIsInBhdGhuYW1lIiwiZW5kc1dpdGgiLCJzaWduYWwiLCJyZXNwb25zZVVybCIsInJlZGlyZWN0ZWQiLCJjb250ZW50VHlwZSIsImdldCIsImludGVyY2VwdGlvbiIsImluY2x1ZGVzIiwiTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSIiwic3RhbGVUaW1lSGVhZGVyU2Vjb25kcyIsIk5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSIiwicGFyc2VJbnQiLCJpc0ZsaWdodFJlc3BvbnNlIiwic3RhcnRzV2l0aCIsIlJTQ19DT05URU5UX1RZUEVfSEVBREVSIiwib2siLCJib2R5IiwiaGFzaCIsIlRVUkJPUEFDSyIsInJlcXVpcmUiLCJ3YWl0Rm9yV2VicGFja1J1bnRpbWVIb3RVcGRhdGUiLCJmbGlnaHRTdHJlYW0iLCJjcmVhdGVVbmNsb3NpbmdQcmVmZXRjaFN0cmVhbSIsInJlc3BvbnNlIiwiZ2V0QXBwQnVpbGRJZCIsImIiLCJub3JtYWxpemVGbGlnaHREYXRhIiwiZiIsIlMiLCJlcnIiLCJhYm9ydGVkIiwiY29uc29sZSIsImVycm9yIiwiX19ORVhUX1RFU1RfTU9ERSIsIk5FWFRfREVQTE9ZTUVOVF9JRCIsImZldGNoT3B0aW9ucyIsImNyZWRlbnRpYWxzIiwicHJpb3JpdHkiLCJmZXRjaFVybCIsInNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtIiwiYnJvd3NlclJlc3BvbnNlIiwiZmV0Y2giLCJfX05FWFRfQ0xJRU5UX1ZBTElEQVRFX1JTQ19SRVFVRVNUX0hFQURFUlMiLCJNQVhfUkVESVJFQ1RTIiwibiIsInNlYXJjaFBhcmFtcyIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiZGVsZXRlIiwicnNjUmVzcG9uc2UiLCJocmVmIiwic3RhdHVzIiwiY2FsbFNlcnZlciIsImZpbmRTb3VyY2VNYXBVUkwiLCJvcmlnaW5hbEZsaWdodFN0cmVhbSIsInJlYWRlciIsImdldFJlYWRlciIsIlJlYWRhYmxlU3RyZWFtIiwicHVsbCIsImNvbnRyb2xsZXIiLCJkb25lIiwidmFsdWUiLCJyZWFkIiwiZW5xdWV1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js":
|
||
/*!*****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js ***!
|
||
\*****************************************************************************************************/
|
||
/***/ ((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 fillCacheWithNewSubTreeData: function() {\n return fillCacheWithNewSubTreeData;\n },\n fillCacheWithNewSubTreeDataButOnlyLoading: function() {\n return fillCacheWithNewSubTreeDataButOnlyLoading;\n }\n});\nconst _invalidatecachebyrouterstate = __webpack_require__(/*! ./invalidate-cache-by-router-state */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js\");\nconst _filllazyitemstillleafwithhead = __webpack_require__(/*! ./fill-lazy-items-till-leaf-with-head */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\n/**\n * Common logic for filling cache with new sub tree data.\n */ function fillCacheHelper(navigatedAt, newCache, existingCache, flightData, prefetchEntry, fillLazyItems) {\n const { segmentPath, seedData: cacheNodeSeedData, tree: treePatch, head } = flightData;\n let newCacheNode = newCache;\n let existingCacheNode = existingCache;\n for(let i = 0; i < segmentPath.length; i += 2){\n const parallelRouteKey = segmentPath[i];\n const segment = segmentPath[i + 1];\n // segmentPath is a repeating tuple of parallelRouteKey and segment\n // we know we've hit the last entry we've reached our final pair\n const isLastEntry = i === segmentPath.length - 2;\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segment);\n const existingChildSegmentMap = existingCacheNode.parallelRoutes.get(parallelRouteKey);\n if (!existingChildSegmentMap) {\n continue;\n }\n let childSegmentMap = newCacheNode.parallelRoutes.get(parallelRouteKey);\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap);\n newCacheNode.parallelRoutes.set(parallelRouteKey, childSegmentMap);\n }\n const existingChildCacheNode = existingChildSegmentMap.get(cacheKey);\n let childCacheNode = childSegmentMap.get(cacheKey);\n if (isLastEntry) {\n if (cacheNodeSeedData && (!childCacheNode || !childCacheNode.lazyData || childCacheNode === existingChildCacheNode)) {\n const incomingSegment = cacheNodeSeedData[0];\n const rsc = cacheNodeSeedData[1];\n const loading = cacheNodeSeedData[3];\n childCacheNode = {\n lazyData: null,\n // When `fillLazyItems` is false, we only want to fill the RSC data for the layout,\n // not the page segment.\n rsc: fillLazyItems || incomingSegment !== _segment.PAGE_SEGMENT_KEY ? rsc : null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n loading,\n parallelRoutes: fillLazyItems && existingChildCacheNode ? new Map(existingChildCacheNode.parallelRoutes) : new Map(),\n navigatedAt\n };\n if (existingChildCacheNode && fillLazyItems) {\n (0, _invalidatecachebyrouterstate.invalidateCacheByRouterState)(childCacheNode, existingChildCacheNode, treePatch);\n }\n if (fillLazyItems) {\n (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, childCacheNode, existingChildCacheNode, treePatch, cacheNodeSeedData, head, prefetchEntry);\n }\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n continue;\n }\n if (!childCacheNode || !existingChildCacheNode) {\n continue;\n }\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes),\n loading: childCacheNode.loading\n };\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n // Move deeper into the cache nodes\n newCacheNode = childCacheNode;\n existingCacheNode = existingChildCacheNode;\n }\n}\nfunction fillCacheWithNewSubTreeData(navigatedAt, newCache, existingCache, flightData, prefetchEntry) {\n fillCacheHelper(navigatedAt, newCache, existingCache, flightData, prefetchEntry, true);\n}\nfunction fillCacheWithNewSubTreeDataButOnlyLoading(navigatedAt, newCache, existingCache, flightData, prefetchEntry) {\n fillCacheHelper(navigatedAt, newCache, existingCache, flightData, prefetchEntry, false);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=fill-cache-with-new-subtree-data.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZpbGwtY2FjaGUtd2l0aC1uZXctc3VidHJlZS1kYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXdJZ0JBLDJCQUEyQjtlQUEzQkE7O0lBaUJBQyx5Q0FBeUM7ZUFBekNBOzs7MERBdko2QjsyREFDQztrREFDVDtxQ0FFSjtBQUdqQzs7Q0FFQyxHQUNELFNBQVNDLGdCQUNQQyxXQUFtQixFQUNuQkMsUUFBbUIsRUFDbkJDLGFBQXdCLEVBQ3hCQyxVQUFnQyxFQUNoQ0MsYUFBNkMsRUFDN0NDLGFBQXNCO0lBRXRCLE1BQU0sRUFDSkMsV0FBVyxFQUNYQyxVQUFVQyxpQkFBaUIsRUFDM0JDLE1BQU1DLFNBQVMsRUFDZkMsSUFBSSxFQUNMLEdBQUdSO0lBQ0osSUFBSVMsZUFBZVg7SUFDbkIsSUFBSVksb0JBQW9CWDtJQUV4QixJQUFLLElBQUlZLElBQUksR0FBR0EsSUFBSVIsWUFBWVMsTUFBTSxFQUFFRCxLQUFLLEVBQUc7UUFDOUMsTUFBTUUsbUJBQTJCVixXQUFXLENBQUNRLEVBQUU7UUFDL0MsTUFBTUcsVUFBbUJYLFdBQVcsQ0FBQ1EsSUFBSSxFQUFFO1FBRTNDLG1FQUFtRTtRQUNuRSxnRUFBZ0U7UUFDaEUsTUFBTUksY0FBY0osTUFBTVIsWUFBWVMsTUFBTSxHQUFHO1FBQy9DLE1BQU1JLFdBQVdDLENBQUFBLEdBQUFBLHNCQUFBQSxvQkFBQUEsRUFBcUJIO1FBRXRDLE1BQU1JLDBCQUNKUixrQkFBa0JTLGNBQWMsQ0FBQ0MsR0FBRyxDQUFDUDtRQUV2QyxJQUFJLENBQUNLLHlCQUF5QjtZQUc1QjtRQUNGO1FBRUEsSUFBSUcsa0JBQWtCWixhQUFhVSxjQUFjLENBQUNDLEdBQUcsQ0FBQ1A7UUFDdEQsSUFBSSxDQUFDUSxtQkFBbUJBLG9CQUFvQkgseUJBQXlCO1lBQ25FRyxrQkFBa0IsSUFBSUMsSUFBSUo7WUFDMUJULGFBQWFVLGNBQWMsQ0FBQ0ksR0FBRyxDQUFDVixrQkFBa0JRO1FBQ3BEO1FBRUEsTUFBTUcseUJBQXlCTix3QkFBd0JFLEdBQUcsQ0FBQ0o7UUFDM0QsSUFBSVMsaUJBQWlCSixnQkFBZ0JELEdBQUcsQ0FBQ0o7UUFFekMsSUFBSUQsYUFBYTtZQUNmLElBQ0VWLHFCQUNDLEVBQUNvQixrQkFDQSxDQUFDQSxlQUFlQyxRQUFRLElBQ3hCRCxtQkFBbUJELHNCQUFBQSxDQUFxQixFQUMxQztnQkFDQSxNQUFNRyxrQkFBa0J0QixpQkFBaUIsQ0FBQyxFQUFFO2dCQUM1QyxNQUFNdUIsTUFBTXZCLGlCQUFpQixDQUFDLEVBQUU7Z0JBQ2hDLE1BQU13QixVQUFVeEIsaUJBQWlCLENBQUMsRUFBRTtnQkFFcENvQixpQkFBaUI7b0JBQ2ZDLFVBQVU7b0JBQ1YsbUZBQW1GO29CQUNuRix3QkFBd0I7b0JBQ3hCRSxLQUNFMUIsaUJBQWlCeUIsb0JBQW9CRyxTQUFBQSxnQkFBZ0IsR0FBR0YsTUFBTTtvQkFDaEVHLGFBQWE7b0JBQ2J2QixNQUFNO29CQUNOd0IsY0FBYztvQkFDZEg7b0JBQ0FWLGdCQUNFakIsaUJBQWlCc0IseUJBQ2IsSUFBSUYsSUFBSUUsdUJBQXVCTCxjQUFjLElBQzdDLElBQUlHO29CQUNWekI7Z0JBQ0Y7Z0JBRUEsSUFBSTJCLDBCQUEwQnRCLGVBQWU7b0JBQzNDK0IsQ0FBQUEsR0FBQUEsOEJBQUFBLDRCQUFBQSxFQUNFUixnQkFDQUQsd0JBQ0FqQjtnQkFFSjtnQkFDQSxJQUFJTCxlQUFlO29CQUNqQmdDLENBQUFBLEdBQUFBLCtCQUFBQSw2QkFBQUEsRUFDRXJDLGFBQ0E0QixnQkFDQUQsd0JBQ0FqQixXQUNBRixtQkFDQUcsTUFDQVA7Z0JBRUo7Z0JBRUFvQixnQkFBZ0JFLEdBQUcsQ0FBQ1AsVUFBVVM7WUFDaEM7WUFDQTtRQUNGO1FBRUEsSUFBSSxDQUFDQSxrQkFBa0IsQ0FBQ0Qsd0JBQXdCO1lBRzlDO1FBQ0Y7UUFFQSxJQUFJQyxtQkFBbUJELHdCQUF3QjtZQUM3Q0MsaUJBQWlCO2dCQUNmQyxVQUFVRCxlQUFlQyxRQUFRO2dCQUNqQ0UsS0FBS0gsZUFBZUcsR0FBRztnQkFDdkJHLGFBQWFOLGVBQWVNLFdBQVc7Z0JBQ3ZDdkIsTUFBTWlCLGVBQWVqQixJQUFJO2dCQUN6QndCLGNBQWNQLGVBQWVPLFlBQVk7Z0JBQ3pDYixnQkFBZ0IsSUFBSUcsSUFBSUcsZUFBZU4sY0FBYztnQkFDckRVLFNBQVNKLGVBQWVJLE9BQU87WUFDakM7WUFDQVIsZ0JBQWdCRSxHQUFHLENBQUNQLFVBQVVTO1FBQ2hDO1FBRUEsbUNBQW1DO1FBQ25DaEIsZUFBZWdCO1FBQ2ZmLG9CQUFvQmM7SUFDdEI7QUFDRjtBQUtPLFNBQVM5Qiw0QkFDZEcsV0FBbUIsRUFDbkJDLFFBQW1CLEVBQ25CQyxhQUF3QixFQUN4QkMsVUFBZ0MsRUFDaENDLGFBQWtDO0lBRWxDTCxnQkFDRUMsYUFDQUMsVUFDQUMsZUFDQUMsWUFDQUMsZUFDQTtBQUVKO0FBRU8sU0FBU04sMENBQ2RFLFdBQW1CLEVBQ25CQyxRQUFtQixFQUNuQkMsYUFBd0IsRUFDeEJDLFVBQWdDLEVBQ2hDQyxhQUFrQztJQUVsQ0wsZ0JBQ0VDLGFBQ0FDLFVBQ0FDLGVBQ0FDLFlBQ0FDLGVBQ0E7QUFFSiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9maWxsLWNhY2hlLXdpdGgtbmV3LXN1YnRyZWUtZGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBTZWdtZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBpbnZhbGlkYXRlQ2FjaGVCeVJvdXRlclN0YXRlIH0gZnJvbSAnLi9pbnZhbGlkYXRlLWNhY2hlLWJ5LXJvdXRlci1zdGF0ZSdcbmltcG9ydCB7IGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIH0gZnJvbSAnLi9maWxsLWxhenktaXRlbXMtdGlsbC1sZWFmLXdpdGgtaGVhZCdcbmltcG9ydCB7IGNyZWF0ZVJvdXRlckNhY2hlS2V5IH0gZnJvbSAnLi9jcmVhdGUtcm91dGVyLWNhY2hlLWtleSdcbmltcG9ydCB0eXBlIHsgUHJlZmV0Y2hDYWNoZUVudHJ5IH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IFBBR0VfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgdHlwZSB7IE5vcm1hbGl6ZWRGbGlnaHREYXRhIH0gZnJvbSAnLi4vLi4vZmxpZ2h0LWRhdGEtaGVscGVycydcblxuLyoqXG4gKiBDb21tb24gbG9naWMgZm9yIGZpbGxpbmcgY2FjaGUgd2l0aCBuZXcgc3ViIHRyZWUgZGF0YS5cbiAqL1xuZnVuY3Rpb24gZmlsbENhY2hlSGVscGVyKFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICBuZXdDYWNoZTogQ2FjaGVOb2RlLFxuICBleGlzdGluZ0NhY2hlOiBDYWNoZU5vZGUsXG4gIGZsaWdodERhdGE6IE5vcm1hbGl6ZWRGbGlnaHREYXRhLFxuICBwcmVmZXRjaEVudHJ5OiBQcmVmZXRjaENhY2hlRW50cnkgfCB1bmRlZmluZWQsXG4gIGZpbGxMYXp5SXRlbXM6IGJvb2xlYW5cbik6IHZvaWQge1xuICBjb25zdCB7XG4gICAgc2VnbWVudFBhdGgsXG4gICAgc2VlZERhdGE6IGNhY2hlTm9kZVNlZWREYXRhLFxuICAgIHRyZWU6IHRyZWVQYXRjaCxcbiAgICBoZWFkLFxuICB9ID0gZmxpZ2h0RGF0YVxuICBsZXQgbmV3Q2FjaGVOb2RlID0gbmV3Q2FjaGVcbiAgbGV0IGV4aXN0aW5nQ2FjaGVOb2RlID0gZXhpc3RpbmdDYWNoZVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudFBhdGgubGVuZ3RoOyBpICs9IDIpIHtcbiAgICBjb25zdCBwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmcgPSBzZWdtZW50UGF0aFtpXVxuICAgIGNvbnN0IHNlZ21lbnQ6IFNlZ21lbnQgPSBzZWdtZW50UGF0aFtpICsgMV1cblxuICAgIC8vIHNlZ21lbnRQYXRoIGlzIGEgcmVwZWF0aW5nIHR1cGxlIG9mIHBhcmFsbGVsUm91dGVLZXkgYW5kIHNlZ21lbnRcbiAgICAvLyB3ZSBrbm93IHdlJ3ZlIGhpdCB0aGUgbGFzdCBlbnRyeSB3ZSd2ZSByZWFjaGVkIG91ciBmaW5hbCBwYWlyXG4gICAgY29uc3QgaXNMYXN0RW50cnkgPSBpID09PSBzZWdtZW50UGF0aC5sZW5ndGggLSAyXG4gICAgY29uc3QgY2FjaGVLZXkgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50KVxuXG4gICAgY29uc3QgZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXAgPVxuICAgICAgZXhpc3RpbmdDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXMuZ2V0KHBhcmFsbGVsUm91dGVLZXkpXG5cbiAgICBpZiAoIWV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwKSB7XG4gICAgICAvLyBCYWlsb3V0IGJlY2F1c2UgdGhlIGV4aXN0aW5nIGNhY2hlIGRvZXMgbm90IGhhdmUgdGhlIHBhdGggdG8gdGhlIGxlYWYgbm9kZVxuICAgICAgLy8gV2lsbCB0cmlnZ2VyIGxhenkgZmV0Y2ggaW4gbGF5b3V0LXJvdXRlciBiZWNhdXNlIG9mIG1pc3Npbmcgc2VnbWVudFxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBsZXQgY2hpbGRTZWdtZW50TWFwID0gbmV3Q2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlS2V5KVxuICAgIGlmICghY2hpbGRTZWdtZW50TWFwIHx8IGNoaWxkU2VnbWVudE1hcCA9PT0gZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXApIHtcbiAgICAgIGNoaWxkU2VnbWVudE1hcCA9IG5ldyBNYXAoZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXApXG4gICAgICBuZXdDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXMuc2V0KHBhcmFsbGVsUm91dGVLZXksIGNoaWxkU2VnbWVudE1hcClcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlID0gZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXAuZ2V0KGNhY2hlS2V5KVxuICAgIGxldCBjaGlsZENhY2hlTm9kZSA9IGNoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpXG5cbiAgICBpZiAoaXNMYXN0RW50cnkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgY2FjaGVOb2RlU2VlZERhdGEgJiZcbiAgICAgICAgKCFjaGlsZENhY2hlTm9kZSB8fFxuICAgICAgICAgICFjaGlsZENhY2hlTm9kZS5sYXp5RGF0YSB8fFxuICAgICAgICAgIGNoaWxkQ2FjaGVOb2RlID09PSBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGluY29taW5nU2VnbWVudCA9IGNhY2hlTm9kZVNlZWREYXRhWzBdXG4gICAgICAgIGNvbnN0IHJzYyA9IGNhY2hlTm9kZVNlZWREYXRhWzFdXG4gICAgICAgIGNvbnN0IGxvYWRpbmcgPSBjYWNoZU5vZGVTZWVkRGF0YVszXVxuXG4gICAgICAgIGNoaWxkQ2FjaGVOb2RlID0ge1xuICAgICAgICAgIGxhenlEYXRhOiBudWxsLFxuICAgICAgICAgIC8vIFdoZW4gYGZpbGxMYXp5SXRlbXNgIGlzIGZhbHNlLCB3ZSBvbmx5IHdhbnQgdG8gZmlsbCB0aGUgUlNDIGRhdGEgZm9yIHRoZSBsYXlvdXQsXG4gICAgICAgICAgLy8gbm90IHRoZSBwYWdlIHNlZ21lbnQuXG4gICAgICAgICAgcnNjOlxuICAgICAgICAgICAgZmlsbExhenlJdGVtcyB8fCBpbmNvbWluZ1NlZ21lbnQgIT09IFBBR0VfU0VHTUVOVF9LRVkgPyByc2MgOiBudWxsLFxuICAgICAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgICAgcHJlZmV0Y2hIZWFkOiBudWxsLFxuICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6XG4gICAgICAgICAgICBmaWxsTGF6eUl0ZW1zICYmIGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGVcbiAgICAgICAgICAgICAgPyBuZXcgTWFwKGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXMpXG4gICAgICAgICAgICAgIDogbmV3IE1hcCgpLFxuICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUgJiYgZmlsbExhenlJdGVtcykge1xuICAgICAgICAgIGludmFsaWRhdGVDYWNoZUJ5Um91dGVyU3RhdGUoXG4gICAgICAgICAgICBjaGlsZENhY2hlTm9kZSxcbiAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUsXG4gICAgICAgICAgICB0cmVlUGF0Y2hcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbGxMYXp5SXRlbXMpIHtcbiAgICAgICAgICBmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZChcbiAgICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgICAgY2hpbGRDYWNoZU5vZGUsXG4gICAgICAgICAgICBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlLFxuICAgICAgICAgICAgdHJlZVBhdGNoLFxuICAgICAgICAgICAgY2FjaGVOb2RlU2VlZERhdGEsXG4gICAgICAgICAgICBoZWFkLFxuICAgICAgICAgICAgcHJlZmV0Y2hFbnRyeVxuICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkU2VnbWVudE1hcC5zZXQoY2FjaGVLZXksIGNoaWxkQ2FjaGVOb2RlKVxuICAgICAgfVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAoIWNoaWxkQ2FjaGVOb2RlIHx8ICFleGlzdGluZ0NoaWxkQ2FjaGVOb2RlKSB7XG4gICAgICAvLyBCYWlsb3V0IGJlY2F1c2UgdGhlIGV4aXN0aW5nIGNhY2hlIGRvZXMgbm90IGhhdmUgdGhlIHBhdGggdG8gdGhlIGxlYWYgbm9kZVxuICAgICAgLy8gV2lsbCB0cmlnZ2VyIGxhenkgZmV0Y2ggaW4gbGF5b3V0LXJvdXRlciBiZWNhdXNlIG9mIG1pc3Npbmcgc2VnbWVudFxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAoY2hpbGRDYWNoZU5vZGUgPT09IGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUpIHtcbiAgICAgIGNoaWxkQ2FjaGVOb2RlID0ge1xuICAgICAgICBsYXp5RGF0YTogY2hpbGRDYWNoZU5vZGUubGF6eURhdGEsXG4gICAgICAgIHJzYzogY2hpbGRDYWNoZU5vZGUucnNjLFxuICAgICAgICBwcmVmZXRjaFJzYzogY2hpbGRDYWNoZU5vZGUucHJlZmV0Y2hSc2MsXG4gICAgICAgIGhlYWQ6IGNoaWxkQ2FjaGVOb2RlLmhlYWQsXG4gICAgICAgIHByZWZldGNoSGVhZDogY2hpbGRDYWNoZU5vZGUucHJlZmV0Y2hIZWFkLFxuICAgICAgICBwYXJhbGxlbFJvdXRlczogbmV3IE1hcChjaGlsZENhY2hlTm9kZS5wYXJhbGxlbFJvdXRlcyksXG4gICAgICAgIGxvYWRpbmc6IGNoaWxkQ2FjaGVOb2RlLmxvYWRpbmcsXG4gICAgICB9IGFzIENhY2hlTm9kZVxuICAgICAgY2hpbGRTZWdtZW50TWFwLnNldChjYWNoZUtleSwgY2hpbGRDYWNoZU5vZGUpXG4gICAgfVxuXG4gICAgLy8gTW92ZSBkZWVwZXIgaW50byB0aGUgY2FjaGUgbm9kZXNcbiAgICBuZXdDYWNoZU5vZGUgPSBjaGlsZENhY2hlTm9kZVxuICAgIGV4aXN0aW5nQ2FjaGVOb2RlID0gZXhpc3RpbmdDaGlsZENhY2hlTm9kZVxuICB9XG59XG5cbi8qKlxuICogRmlsbCBjYWNoZSB3aXRoIHJzYyBiYXNlZCBvbiBmbGlnaHREYXRhUGF0aFxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhKFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICBuZXdDYWNoZTogQ2FjaGVOb2RlLFxuICBleGlzdGluZ0NhY2hlOiBDYWNoZU5vZGUsXG4gIGZsaWdodERhdGE6IE5vcm1hbGl6ZWRGbGlnaHREYXRhLFxuICBwcmVmZXRjaEVudHJ5PzogUHJlZmV0Y2hDYWNoZUVudHJ5XG4pOiB2b2lkIHtcbiAgZmlsbENhY2hlSGVscGVyKFxuICAgIG5hdmlnYXRlZEF0LFxuICAgIG5ld0NhY2hlLFxuICAgIGV4aXN0aW5nQ2FjaGUsXG4gICAgZmxpZ2h0RGF0YSxcbiAgICBwcmVmZXRjaEVudHJ5LFxuICAgIHRydWVcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhQnV0T25seUxvYWRpbmcoXG4gIG5hdmlnYXRlZEF0OiBudW1iZXIsXG4gIG5ld0NhY2hlOiBDYWNoZU5vZGUsXG4gIGV4aXN0aW5nQ2FjaGU6IENhY2hlTm9kZSxcbiAgZmxpZ2h0RGF0YTogTm9ybWFsaXplZEZsaWdodERhdGEsXG4gIHByZWZldGNoRW50cnk/OiBQcmVmZXRjaENhY2hlRW50cnlcbik6IHZvaWQge1xuICBmaWxsQ2FjaGVIZWxwZXIoXG4gICAgbmF2aWdhdGVkQXQsXG4gICAgbmV3Q2FjaGUsXG4gICAgZXhpc3RpbmdDYWNoZSxcbiAgICBmbGlnaHREYXRhLFxuICAgIHByZWZldGNoRW50cnksXG4gICAgZmFsc2VcbiAgKVxufVxuIl0sIm5hbWVzIjpbImZpbGxDYWNoZVdpdGhOZXdTdWJUcmVlRGF0YSIsImZpbGxDYWNoZVdpdGhOZXdTdWJUcmVlRGF0YUJ1dE9ubHlMb2FkaW5nIiwiZmlsbENhY2hlSGVscGVyIiwibmF2aWdhdGVkQXQiLCJuZXdDYWNoZSIsImV4aXN0aW5nQ2FjaGUiLCJmbGlnaHREYXRhIiwicHJlZmV0Y2hFbnRyeSIsImZpbGxMYXp5SXRlbXMiLCJzZWdtZW50UGF0aCIsInNlZWREYXRhIiwiY2FjaGVOb2RlU2VlZERhdGEiLCJ0cmVlIiwidHJlZVBhdGNoIiwiaGVhZCIsIm5ld0NhY2hlTm9kZSIsImV4aXN0aW5nQ2FjaGVOb2RlIiwiaSIsImxlbmd0aCIsInBhcmFsbGVsUm91dGVLZXkiLCJzZWdtZW50IiwiaXNMYXN0RW50cnkiLCJjYWNoZUtleSIsImNyZWF0ZVJvdXRlckNhY2hlS2V5IiwiZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXAiLCJwYXJhbGxlbFJvdXRlcyIsImdldCIsImNoaWxkU2VnbWVudE1hcCIsIk1hcCIsInNldCIsImV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUiLCJjaGlsZENhY2hlTm9kZSIsImxhenlEYXRhIiwiaW5jb21pbmdTZWdtZW50IiwicnNjIiwibG9hZGluZyIsIlBBR0VfU0VHTUVOVF9LRVkiLCJwcmVmZXRjaFJzYyIsInByZWZldGNoSGVhZCIsImludmFsaWRhdGVDYWNoZUJ5Um91dGVyU3RhdGUiLCJmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js":
|
||
/*!********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js ***!
|
||
\********************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"fillLazyItemsTillLeafWithHead\", ({\n enumerable: true,\n get: function() {\n return fillLazyItemsTillLeafWithHead;\n }\n}));\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nfunction fillLazyItemsTillLeafWithHead(navigatedAt, newCache, existingCache, routerState, cacheNodeSeedData, head, prefetchEntry) {\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, _createroutercachekey.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[2][key] !== undefined ? cacheNodeSeedData[2][key] : null;\n if (existingCache) {\n const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key);\n if (existingParallelRoutesCacheNode) {\n const hasReusablePrefetch = (prefetchEntry == null ? void 0 : prefetchEntry.kind) === 'auto' && prefetchEntry.status === _routerreducertypes.PrefetchCacheEntryStatus.reusable;\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[1];\n const loading = parallelSeedData[3];\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 head: null,\n prefetchHead: null,\n loading,\n parallelRoutes: new Map(existingCacheNode == null ? void 0 : existingCacheNode.parallelRoutes),\n navigatedAt\n };\n } else if (hasReusablePrefetch && 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 head: existingCacheNode.head,\n prefetchHead: existingCacheNode.prefetchHead,\n parallelRoutes: new Map(existingCacheNode.parallelRoutes),\n loading: existingCacheNode.loading\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 head: null,\n prefetchHead: null,\n parallelRoutes: new Map(existingCacheNode == null ? void 0 : existingCacheNode.parallelRoutes),\n loading: null,\n navigatedAt\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(navigatedAt, newCacheNode, existingCacheNode, parallelRouteState, parallelSeedData ? parallelSeedData : null, head, prefetchEntry);\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[1];\n const loading = parallelSeedData[3];\n newCacheNode = {\n lazyData: null,\n rsc: seedNode,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading,\n navigatedAt\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 head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt\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(navigatedAt, newCacheNode, undefined, parallelRouteState, parallelSeedData, head, prefetchEntry);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=fill-lazy-items-till-leaf-with-head.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZpbGwtbGF6eS1pdGVtcy10aWxsLWxlYWYtd2l0aC1oZWFkLmpzIiwibWFwcGluZ3MiOiI7Ozs7aUVBV2dCQTs7O2VBQUFBOzs7a0RBTnFCO2dEQUk5QjtBQUVBLFNBQVNBLDhCQUNkQyxXQUFtQixFQUNuQkMsUUFBbUIsRUFDbkJDLGFBQW9DLEVBQ3BDQyxXQUE4QixFQUM5QkMsaUJBQTJDLEVBQzNDQyxJQUFxQixFQUNyQkMsYUFBNkM7SUFFN0MsTUFBTUMsZ0JBQWdCQyxPQUFPQyxJQUFJLENBQUNOLFdBQVcsQ0FBQyxFQUFFLEVBQUVPLE1BQU0sS0FBSztJQUM3RCxJQUFJSCxlQUFlO1FBQ2pCTixTQUFTSSxJQUFJLEdBQUdBO1FBQ2hCO0lBQ0Y7SUFDQSx1RkFBdUY7SUFDdkYsSUFBSyxNQUFNTSxPQUFPUixXQUFXLENBQUMsRUFBRSxDQUFFO1FBQ2hDLE1BQU1TLHFCQUFxQlQsV0FBVyxDQUFDLEVBQUUsQ0FBQ1EsSUFBSTtRQUM5QyxNQUFNRSwwQkFBMEJELGtCQUFrQixDQUFDLEVBQUU7UUFDckQsTUFBTUUsV0FBV0MsQ0FBQUEsR0FBQUEsc0JBQUFBLG9CQUFBQSxFQUFxQkY7UUFFdEMsNEVBQTRFO1FBQzVFLDJFQUEyRTtRQUMzRSx3RUFBd0U7UUFDeEUsd0VBQXdFO1FBQ3hFLDBFQUEwRTtRQUMxRSxxQkFBcUI7UUFDckIsRUFBRTtRQUNGLDBFQUEwRTtRQUMxRSx3RUFBd0U7UUFDeEUsa0VBQWtFO1FBQ2xFLE1BQU1HLG1CQUNKWixzQkFBc0IsUUFBUUEsaUJBQWlCLENBQUMsRUFBRSxDQUFDTyxJQUFJLEtBQUtNLFlBQ3hEYixpQkFBaUIsQ0FBQyxFQUFFLENBQUNPLElBQUksR0FDekI7UUFDTixJQUFJVCxlQUFlO1lBQ2pCLE1BQU1nQixrQ0FDSmhCLGNBQWNpQixjQUFjLENBQUNDLEdBQUcsQ0FBQ1Q7WUFDbkMsSUFBSU8saUNB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NUIsU0FBU2tCLGNBQWMsQ0FBQ2lCLEdBQUcsQ0FBQ3pCLEtBQUssSUFBSWdCLElBQUk7Z0JBQUM7b0JBQUNiO29CQUFVZTtpQkFBYTthQUFDO1FBQ3JFO1FBRUE5Qiw4QkFDRUMsYUFDQTZCLGNBQ0FaLFdBQ0FMLG9CQUNBSSxrQkFDQVgsTUFDQUM7SUFFSjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZpbGwtbGF6eS1pdGVtcy10aWxsLWxlYWYtd2l0aC1oZWFkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7XG4gIEZsaWdodFJvdXRlclN0YXRlLFxuICBDYWNoZU5vZGVTZWVkRGF0YSxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4vY3JlYXRlLXJvdXRlci1jYWNoZS1rZXknXG5pbXBvcnQge1xuICBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMsXG4gIHR5cGUgUHJlZmV0Y2hDYWNoZUVudHJ5LFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQoXG4gIG5hdmlnYXRlZEF0OiBudW1iZXIsXG4gIG5ld0NhY2hlOiBDYWNoZU5vZGUsXG4gIGV4aXN0aW5nQ2FjaGU6IENhY2hlTm9kZSB8IHVuZGVmaW5lZCxcbiAgcm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBjYWNoZU5vZGVTZWVkRGF0YTogQ2FjaGVOb2RlU2VlZERhdGEgfCBudWxsLFxuICBoZWFkOiBSZWFjdC5SZWFjdE5vZGUsXG4gIHByZWZldGNoRW50cnk6IFByZWZldGNoQ2FjaGVFbnRyeSB8IHVuZGVmaW5lZFxuKTogdm9pZCB7XG4gIGNvbnN0IGlzTGFzdFNlZ21lbnQgPSBPYmplY3Qua2V5cyhyb3V0ZXJTdGF0ZVsxXSkubGVuZ3RoID09PSAwXG4gIGlmIChpc0xhc3RTZWdtZW50KSB7XG4gICAgbmV3Q2FjaGUuaGVhZCA9IGhlYWRcbiAgICByZXR1cm5cbiAgfVxuICAvLyBSZW1vdmUgc2VnbWVudCB0aGF0IHdlIGdvdCBkYXRhIGZvciBzbyB0aGF0IGl0IGlzIGZpbGxlZCBpbiBkdXJpbmcgcmVuZGVyaW5nIG9mIHJzYy5cbiAgZm9yIChjb25zdCBrZXkgaW4gcm91dGVyU3RhdGVbMV0pIHtcbiAgICBjb25zdCBwYXJhbGxlbFJvdXRlU3RhdGUgPSByb3V0ZXJTdGF0ZVsxXVtrZXldXG4gICAgY29uc3Qgc2VnbWVudEZvclBhcmFsbGVsUm91dGUgPSBwYXJhbGxlbFJvdXRlU3RhdGVbMF1cbiAgICBjb25zdCBjYWNoZUtleSA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHNlZ21lbnRGb3JQYXJhbGxlbFJvdXRlKVxuXG4gICAgLy8gVE9ETzogV2Ugc2hvdWxkIHRyYXZlcnNlIHRoZSBjYWNoZU5vZGVTZWVkRGF0YSB0cmVlIGluc3RlYWQgb2YgdGhlIHJvdXRlclxuICAgIC8vIHN0YXRlIHRyZWUuIElkZWFsbHksIHRoZXkgd291bGQgYWx3YXlzIGJlIHRoZSBzYW1lIHNoYXBlLCBidXQgYmVjYXVzZSBvZlxuICAgIC8vIHRoZSBsb2FkaW5nLmpzIHBhdHRlcm4sIGNhY2hlTm9kZVNlZWREYXRhIHNvbWV0aW1lcyBvbmx5IHJlcHJlc2VudHMgYVxuICAgIC8vIHBhcnRpYWwgdHJlZS4gVGhhdCdzIHdoeSB0aGlzIG5vZGUgaXMgc29tZXRpbWVzIG51bGwuIE9uY2UgUFBSIGxhbmRzLFxuICAgIC8vIGxvYWRpbmcuanMgd2lsbCBubyBsb25nZXIgaGF2ZSBzcGVjaWFsIGJlaGF2aW9yIGFuZCB3ZSBjYW4gdHJhdmVyc2UgdGhlXG4gICAgLy8gZGF0YSB0cmVlIGluc3RlYWQuXG4gICAgLy9cbiAgICAvLyBXZSBzaG91bGQgYWxzbyBjb25zaWRlciBtZXJnaW5nIHRoZSByb3V0ZXIgc3RhdGUgdHJlZSBhbmQgdGhlIGRhdGEgdHJlZVxuICAgIC8vIGluIHRoZSByZXNwb25zZSBmb3JtYXQsIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBzZW5kIHRoZSBrZXlzIHR3aWNlLlxuICAgIC8vIFRoZW4gdGhlIGNsaWVudCBjYW4gY29udmVydCB0aGVtIGludG8gc2VwYXJhdGUgcmVwcmVzZW50YXRpb25zLlxuICAgIGNvbnN0IHBhcmFsbGVsU2VlZERhdGEgPVxuICAgICAgY2FjaGVOb2RlU2VlZERhdGEgIT09IG51bGwgJiYgY2FjaGVOb2RlU2VlZERhdGFbMl1ba2V5XSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gY2FjaGVOb2RlU2VlZERhdGFbMl1ba2V5XVxuICAgICAgICA6IG51bGxcbiAgICBpZiAoZXhpc3RpbmdDYWNoZSkge1xuICAgICAgY29uc3QgZXhpc3RpbmdQYXJhbGxlbFJvdXRlc0NhY2hlTm9kZSA9XG4gICAgICAgIGV4aXN0aW5nQ2FjaGUucGFyYWxsZWxSb3V0ZXMuZ2V0KGtleSlcbiAgICAgIGlmIChleGlzdGluZ1BhcmFsbGVsUm91dGVzQ2FjaGVOb2RlKSB7XG4gICAgICAgIGNvbnN0IGhhc1JldXNhYmxlUHJlZmV0Y2ggPVxuICAgICAgICAgIHByZWZldGNoRW50cnk/LmtpbmQgPT09ICdhdXRvJyAmJlxuICAgICAgICAgIHByZWZldGNoRW50cnkuc3RhdHVzID09PSBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMucmV1c2FibGVcblxuICAgICAgICBsZXQgcGFyYWxsZWxSb3V0ZUNhY2hlTm9kZSA9IG5ldyBNYXAoZXhpc3RpbmdQYXJhbGxlbFJvdXRlc0NhY2hlTm9kZSlcbiAgICAgICAgY29uc3QgZXhpc3RpbmdDYWNoZU5vZGUgPSBwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlLmdldChjYWNoZUtleSlcbiAgICAgICAgbGV0IG5ld0NhY2hlTm9kZTogQ2FjaGVOb2RlXG4gICAgICAgIGlmIChwYXJhbGxlbFNlZWREYXRhICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gTmV3IGRhdGEgd2FzIHNlbnQgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICAgIGNvbnN0IHNlZWROb2RlID0gcGFyYWxsZWxTZWVkRGF0YVsxXVxuICAgICAgICAgIGNvbnN0IGxvYWRpbmcgPSBwYXJhbGxlbFNlZWREYXRhWzNdXG4gICAgICAgICAgbmV3Q2FjaGVOb2RlID0ge1xuICAgICAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgICAgICByc2M6IHNlZWROb2RlLFxuICAgICAgICAgICAgLy8gVGhpcyBpcyBhIFBQUi1vbmx5IGZpZWxkLiBXaGVuIFBQUiBpcyBlbmFibGVkLCB3ZSBzaG91bGRuJ3QgaGl0XG4gICAgICAgICAgICAvLyB0aGlzIHBhdGggZHVyaW5nIGEgbmF2aWdhdGlvbiwgYnV0IHVudGlsIFBQUiBpcyBmdWxseSBpbXBsZW1lbnRlZFxuICAgICAgICAgICAgLy8geWV0IGl0J3MgcG9zc2libGUgdGhlIGV4aXN0aW5nIG5vZGUgZG9lcyBoYXZlIGEgbm9uLW51bGxcbiAgICAgICAgICAgIC8vIGBwcmVmZXRjaFJzY2AuIEFzIGFuIGluY3JlbWVudGFsIHN0ZXAsIHdlJ2xsIGp1c3QgZGUtb3B0IHRvIHRoZVxuICAgICAgICAgICAgLy8gb2xkIGJlaGF2aW9yIOKAlCBubyBQUFIgdmFsdWUuXG4gICAgICAgICAgICBwcmVmZXRjaFJzYzogbnVsbCxcbiAgICAgICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgICAgICBwcmVmZXRjaEhlYWQ6IG51bGwsXG4gICAgICAgICAgICBsb2FkaW5nLFxuICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoZXhpc3RpbmdDYWNoZU5vZGU/LnBhcmFsbGVsUm91dGVzKSxcbiAgICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChoYXNSZXVzYWJsZVByZWZldGNoICYmIGV4aXN0aW5nQ2FjaGVOb2RlKSB7XG4gICAgICAgICAgLy8gTm8gbmV3IGRhdGEgd2FzIHNlbnQgZnJvbSB0aGUgc2VydmVyLCBidXQgdGhlIGV4aXN0aW5nIGNhY2hlIG5vZGVcbiAgICAgICAgICAvLyB3YXMgcHJlZmV0Y2hlZCwgc28gd2Ugc2hvdWxkIHJldXNlIHRoYXQuXG4gICAgICAgICAgbmV3Q2FjaGVOb2RlID0ge1xuICAgICAgICAgICAgbGF6eURhdGE6IGV4aXN0aW5nQ2FjaGVOb2RlLmxhenlEYXRhLFxuICAgICAgICAgICAgcnNjOiBleGlzdGluZ0NhY2hlTm9kZS5yc2MsXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGEgUFBSLW9ubHkgZmllbGQuIFVubGlrZSB0aGUgcHJldmlvdXMgYnJhbmNoLCBzaW5jZSB3ZSdyZVxuICAgICAgICAgICAgLy8ganVzdCBjbG9uaW5nIHRoZSBleGlzdGluZyBjYWNoZSBub2RlLCB3ZSBtaWdodCBhcyB3ZWxsIGtlZXAgdGhlXG4gICAgICAgICAgICAvLyBQUFIgdmFsdWUsIGlmIGl0IGV4aXN0cy5cbiAgICAgICAgICAgIHByZWZldGNoUnNjOiBleGlzdGluZ0NhY2hlTm9kZS5wcmVmZXRjaFJzYyxcbiAgICAgICAgICAgIGhlYWQ6IGV4aXN0aW5nQ2FjaGVOb2RlLmhlYWQsXG4gICAgICAgICAgICBwcmVmZXRjaEhlYWQ6IGV4aXN0aW5nQ2FjaGVOb2RlLnByZWZldGNoSGVhZCxcbiAgICAgICAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKGV4aXN0aW5nQ2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzKSxcbiAgICAgICAgICAgIGxvYWRpbmc6IGV4aXN0aW5nQ2FjaGVOb2RlLmxvYWRpbmcsXG4gICAgICAgICAgfSBhcyBDYWNoZU5vZGVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBObyBkYXRhIGF2YWlsYWJsZSBmb3IgdGhpcyBub2RlLiBUaGlzIHdpbGwgdHJpZ2dlciBhIGxhenkgZmV0Y2hcbiAgICAgICAgICAvLyBkdXJpbmcgcmVuZGVyLlxuICAgICAgICAgIG5ld0NhY2hlTm9kZSA9IHtcbiAgICAgICAgICAgIGxhenlEYXRhOiBudWxsLFxuICAgICAgICAgICAgcnNjOiBudWxsLFxuICAgICAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgICAgICBoZWFkOiBudWxsLFxuICAgICAgICAgICAgcHJlZmV0Y2hIZWFkOiBudWxsLFxuICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoZXhpc3RpbmdDYWNoZU5vZGU/LnBhcmFsbGVsUm91dGVzKSxcbiAgICAgICAgICAgIGxvYWRpbmc6IG51bGwsXG4gICAgICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPdmVycmlkZXMgdGhlIGNhY2hlIGtleSB3aXRoIHRoZSBuZXcgY2FjaGUgbm9kZS5cbiAgICAgICAgcGFyYWxsZWxSb3V0ZUNhY2hlTm9kZS5zZXQoY2FjaGVLZXksIG5ld0NhY2hlTm9kZSlcbiAgICAgICAgLy8gVHJhdmVyc2UgZGVlcGVyIHRvIGFwcGx5IHRoZSBoZWFkIC8gZmlsbCBsYXp5IGl0ZW1zIHRpbGwgdGhlIGhlYWQuXG4gICAgICAgIGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkKFxuICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgIG5ld0NhY2hlTm9kZSxcbiAgICAgICAgICBleGlzdGluZ0NhY2hlTm9kZSxcbiAgICAgICAgICBwYXJhbGxlbFJvdXRlU3RhdGUsXG4gICAgICAgICAgcGFyYWxsZWxTZWVkRGF0YSA/IHBhcmFsbGVsU2VlZERhdGEgOiBudWxsLFxuICAgICAgICAgIGhlYWQsXG4gICAgICAgICAgcHJlZmV0Y2hFbnRyeVxuICAgICAgICApXG5cbiAgICAgICAgbmV3Q2FjaGUucGFyYWxsZWxSb3V0ZXMuc2V0KGtleSwgcGFyYWxsZWxSb3V0ZUNhY2hlTm9kZSlcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgbmV3Q2FjaGVOb2RlOiBDYWNoZU5vZGVcbiAgICBpZiAocGFyYWxsZWxTZWVkRGF0YSAhPT0gbnVsbCkge1xuICAgICAgLy8gTmV3IGRhdGEgd2FzIHNlbnQgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgY29uc3Qgc2VlZE5vZGUgPSBwYXJhbGxlbFNlZWREYXRhWzFdXG4gICAgICBjb25zdCBsb2FkaW5nID0gcGFyYWxsZWxTZWVkRGF0YVszXVxuICAgICAgbmV3Q2FjaGVOb2RlID0ge1xuICAgICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgICAgcnNjOiBzZWVkTm9kZSxcbiAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKSxcbiAgICAgICAgbG9hZGluZyxcbiAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGRhdGEgYXZhaWxhYmxlIGZvciB0aGlzIG5vZGUuIFRoaXMgd2lsbCB0cmlnZ2VyIGEgbGF6eSBmZXRjaFxuICAgICAgLy8gZHVyaW5nIHJlbmRlci5cbiAgICAgIG5ld0NhY2hlTm9kZSA9IHtcbiAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgIHJzYzogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKSxcbiAgICAgICAgbG9hZGluZzogbnVsbCxcbiAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmdQYXJhbGxlbFJvdXRlcyA9IG5ld0NhY2hlLnBhcmFsbGVsUm91dGVzLmdldChrZXkpXG4gICAgaWYgKGV4aXN0aW5nUGFyYWxsZWxSb3V0ZXMpIHtcbiAgICAgIGV4aXN0aW5nUGFyYWxsZWxSb3V0ZXMuc2V0KGNhY2hlS2V5LCBuZXdDYWNoZU5vZGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0NhY2hlLnBhcmFsbGVsUm91dGVzLnNldChrZXksIG5ldyBNYXAoW1tjYWNoZUtleSwgbmV3Q2FjaGVOb2RlXV0pKVxuICAgIH1cblxuICAgIGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkKFxuICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICBuZXdDYWNoZU5vZGUsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBwYXJhbGxlbFJvdXRlU3RhdGUsXG4gICAgICBwYXJhbGxlbFNlZWREYXRhLFxuICAgICAgaGVhZCxcbiAgICAgIHByZWZldGNoRW50cnlcbiAgICApXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCIsIm5hdmlnYXRlZEF0IiwibmV3Q2FjaGUiLCJleGlzdGluZ0NhY2hlIiwicm91dGVyU3RhdGUiLCJjYWNoZU5vZGVTZWVkRGF0YSIsImhlYWQiLCJwcmVmZXRjaEVudHJ5IiwiaXNMYXN0U2VnbWVudCIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJrZXkiLCJwYXJhbGxlbFJvdXRlU3RhdGUiLCJzZWdtZW50Rm9yUGFyYWxsZWxSb3V0ZSIsImNhY2hlS2V5IiwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJwYXJhbGxlbFNlZWREYXRhIiwidW5kZWZpbmVkIiwiZXhpc3RpbmdQYXJhbGxlbFJvdXRlc0NhY2hlTm9kZSIsInBhcmFsbGVsUm91dGVzIiwiZ2V0IiwiaGFzUmV1c2FibGVQcmVmZXRjaCIsImtpbmQiLCJzdGF0dXMiLCJQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMiLCJyZXVzYWJsZSIsInBhcmFsbGVsUm91dGVDYWNoZU5vZGUiLCJNYXAiLCJleGlzdGluZ0NhY2hlTm9kZSIsIm5ld0NhY2hlTm9kZSIsInNlZWROb2RlIiwibG9hZGluZyIsImxhenlEYXRhIiwicnNjIiwicHJlZmV0Y2hSc2MiLCJwcmVmZXRjaEhlYWQiLCJzZXQiLCJleGlzdGluZ1BhcmFsbGVsUm91dGVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/handle-mutable.js ***!
|
||
\***********************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"handleMutable\", ({\n enumerable: true,\n get: function() {\n return handleMutable;\n }\n}));\nconst _computechangedpath = __webpack_require__(/*! ./compute-changed-path */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\");\nfunction isNotUndefined(value) {\n return typeof value !== 'undefined';\n}\nfunction handleMutable(state, mutable) {\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, _computechangedpath.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 // 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.onlyHashChange || false,\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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=handle-mutable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2hhbmRsZS1tdXRhYmxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBV2dCQTs7O2VBQUFBOzs7Z0RBWG1CO0FBT25DLFNBQVNDLGVBQWtCQyxLQUFRO0lBQ2pDLE9BQU8sT0FBT0EsVUFBVTtBQUMxQjtBQUVPLFNBQVNGLGNBQ2RHLEtBQTJCLEVBQzNCQyxPQUFnQjtRQUdLQTtJQURyQiwwREFBMEQ7SUFDMUQsTUFBTUMsZUFBZUQsQ0FBQUEsd0JBQUFBLFFBQVFDLFlBQUFBLEtBQVksT0FBcEJELHdCQUF3QjtJQUU3QyxJQUFJRSxVQUFVSCxNQUFNRyxPQUFPO0lBRTNCLElBQUlMLGVBQWVHLFFBQVFHLFdBQVcsR0FBRztRQUN2QyxzRUFBc0U7UUFDdEUsTUFBTUMsY0FBY0MsQ0FBQUEsR0FBQUEsb0JBQUFBLGtCQUFBQSxFQUFtQk4sTUFBTU8sSUFBSSxFQUFFTixRQUFRRyxXQUFXO1FBQ3RFLElBQUlDLGFBQWE7WUFDZixxREFBcUQ7WUFDckRGLFVBQVVFO1FBQ1osT0FBTyxJQUFJLENBQUNGLFNBQVM7WUFDbkIsNkhBQTZIO1lBQzdIQSxVQUFVSCxNQUFNUSxZQUFZO1FBQzlCO0lBQ0EsMEVBQTBFO0lBQzVFO1FBeUNRUDtJQXZDUixPQUFPO1FBQ0wsWUFBWTtRQUNaTyxjQUFjVixlQUFlRyxRQUFRTyxZQUFZLElBQzdDUCxRQUFRTyxZQUFZLEtBQUtSLE1BQU1RLFlBQVksR0FDekNSLE1BQU1RLFlBQVksR0FDbEJQLFFBQVFPLFlBQVksR0FDdEJSLE1BQU1RLFlBQVk7UUFDdEJDLFNBQVM7WUFDUEMsYUFBYVosZUFBZUcsUUFBUVMsV0FBVyxJQUMzQ1QsUUFBUVMsV0FBVyxHQUNuQlYsTUFBTVMsT0FBTyxDQUFDQyxXQUFXO1lBQzdCQyxlQUFlYixlQUFlRyxRQUFRVSxhQUFhLElBQy9DVixRQUFRVSxhQUFhLEdBQ3JCWCxNQUFNUyxPQUFPLENBQUNFLGFBQWE7WUFDL0JDLDRCQUE0QmQsZUFDMUJHLFFBQVFXLDBCQUEwQixJQUVoQ1gsUUFBUVcsMEJBQTBCLEdBQ2xDWixNQUFNUyxPQUFPLENBQUNHLDBCQUEwQjtRQUM5QztRQUNBLGtFQUFrRTtRQUNsRUMsbUJBQW1CO1lBQ2pCQyxPQUFPWixlQUNISixlQUFlRyxXQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxRQUFTYyxrQkFBa0IsSUFDeEMsT0FDQWYsTUFBTWEsaUJBQWlCLENBQUNDLEtBQUssR0FFL0I7WUFDSkUsZ0JBQWdCZixRQUFRZSxjQUFjLElBQUk7WUFDMUNDLGNBQWNmLGVBRVYsUUFDUWUsWUFBWSxJQUFJaEIsUUFBUWdCLElBREksUUFDUSxLQUFLLEtBRS9DQyxtQkFBbUJqQixRQUFRZ0IsWUFBWSxDQUFDRSxLQUFLLENBQUMsTUFDOUNuQixNQUFNYSxpQkFBaUIsQ0FBQ0ksWUFBWSxHQUV0QztZQUNKRyxjQUFjbEIsZUFDVkQsQ0FBQUEsOEJBQUFBLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNjLGtCQUFBQSxLQUFrQixPQUEzQmQsOEJBQStCRCxNQUFNYSxpQkFBaUIsQ0FBQ08sWUFBWSxHQUVuRSxFQUFFO1FBQ1I7UUFDQSxlQUFlO1FBQ2ZDLE9BQU9wQixRQUFRb0IsS0FBSyxHQUFHcEIsUUFBUW9CLEtBQUssR0FBR3JCLE1BQU1xQixLQUFLO1FBQ2xEQyxlQUFlckIsUUFBUXFCLGFBQWEsR0FDaENyQixRQUFRcUIsYUFBYSxHQUNyQnRCLE1BQU1zQixhQUFhO1FBQ3ZCLDhCQUE4QjtRQUM5QmYsTUFBTVQsZUFBZUcsUUFBUUcsV0FBVyxJQUNwQ0gsUUFBUUcsV0FBVyxHQUNuQkosTUFBTU8sSUFBSTtRQUNkSjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvaGFuZGxlLW11dGFibGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZUNoYW5nZWRQYXRoIH0gZnJvbSAnLi9jb21wdXRlLWNoYW5nZWQtcGF0aCdcbmltcG9ydCB0eXBlIHtcbiAgTXV0YWJsZSxcbiAgUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIFJlZHVjZXJTdGF0ZSxcbn0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci10eXBlcydcblxuZnVuY3Rpb24gaXNOb3RVbmRlZmluZWQ8VD4odmFsdWU6IFQpOiB2YWx1ZSBpcyBFeGNsdWRlPFQsIHVuZGVmaW5lZD4ge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlTXV0YWJsZShcbiAgc3RhdGU6IFJlYWRvbmx5UmVkdWNlclN0YXRlLFxuICBtdXRhYmxlOiBNdXRhYmxlXG4pOiBSZWR1Y2VyU3RhdGUge1xuICAvLyBzaG91bGRTY3JvbGwgaXMgdHJ1ZSBieSBkZWZhdWx0LCBjYW4gb3ZlcnJpZGUgdG8gZmFsc2UuXG4gIGNvbnN0IHNob3VsZFNjcm9sbCA9IG11dGFibGUuc2hvdWxkU2Nyb2xsID8/IHRydWVcblxuICBsZXQgbmV4dFVybCA9IHN0YXRlLm5leHRVcmxcblxuICBpZiAoaXNOb3RVbmRlZmluZWQobXV0YWJsZS5wYXRjaGVkVHJlZSkpIHtcbiAgICAvLyBJZiB3ZSByZWNlaXZlZCBhIHBhdGNoZWQgdHJlZSwgd2UgbmVlZCB0byBjb21wdXRlIHRoZSBjaGFuZ2VkIHBhdGguXG4gICAgY29uc3QgY2hhbmdlZFBhdGggPSBjb21wdXRlQ2hhbmdlZFBhdGgoc3RhdGUudHJlZSwgbXV0YWJsZS5wYXRjaGVkVHJlZSlcbiAgICBpZiAoY2hhbmdlZFBhdGgpIHtcbiAgICAgIC8vIElmIHRoZSB0cmVlIGNoYW5nZWQsIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBuZXh0VXJsXG4gICAgICBuZXh0VXJsID0gY2hhbmdlZFBhdGhcbiAgICB9IGVsc2UgaWYgKCFuZXh0VXJsKSB7XG4gICAgICAvLyBpZiB0aGUgdHJlZSBlbmRzIHVwIGJlaW5nIHRoZSBzYW1lIChpZSwgbm8gY2hhbmdlZCBwYXRoKSwgYW5kIHdlIGRvbid0IGhhdmUgYSBuZXh0VXJsLCB0aGVuIHdlIHNob3VsZCB1c2UgdGhlIGNhbm9uaWNhbFVybFxuICAgICAgbmV4dFVybCA9IHN0YXRlLmNhbm9uaWNhbFVybFxuICAgIH1cbiAgICAvLyBvdGhlcndpc2UgdGhpcyB3aWxsIGJlIGEgbm8tb3AgYW5kIGNvbnRpbnVlIHRvIHVzZSB0aGUgZXhpc3RpbmcgbmV4dFVybFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBTZXQgaHJlZi5cbiAgICBjYW5vbmljYWxVcmw6IGlzTm90VW5kZWZpbmVkKG11dGFibGUuY2Fub25pY2FsVXJsKVxuICAgICAgPyBtdXRhYmxlLmNhbm9uaWNhbFVybCA9PT0gc3RhdGUuY2Fub25pY2FsVXJsXG4gICAgICAgID8gc3RhdGUuY2Fub25pY2FsVXJsXG4gICAgICAgIDogbXV0YWJsZS5jYW5vbmljYWxVcmxcbiAgICAgIDogc3RhdGUuY2Fub25pY2FsVXJsLFxuICAgIHB1c2hSZWY6IHtcbiAgICAgIHBlbmRpbmdQdXNoOiBpc05vdFVuZGVmaW5lZChtdXRhYmxlLnBlbmRpbmdQdXNoKVxuICAgICAgICA/IG11dGFibGUucGVuZGluZ1B1c2hcbiAgICAgICAgOiBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoLFxuICAgICAgbXBhTmF2aWdhdGlvbjogaXNOb3RVbmRlZmluZWQobXV0YWJsZS5tcGFOYXZpZ2F0aW9uKVxuICAgICAgICA/IG11dGFibGUubXBhTmF2aWdhdGlvblxuICAgICAgICA6IHN0YXRlLnB1c2hSZWYubXBhTmF2aWdhdGlvbixcbiAgICAgIHByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlOiBpc05vdFVuZGVmaW5lZChcbiAgICAgICAgbXV0YWJsZS5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZVxuICAgICAgKVxuICAgICAgICA/IG11dGFibGUucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGVcbiAgICAgICAgOiBzdGF0ZS5wdXNoUmVmLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlLFxuICAgIH0sXG4gICAgLy8gQWxsIG5hdmlnYXRpb24gcmVxdWlyZXMgc2Nyb2xsIGFuZCBmb2N1cyBtYW5hZ2VtZW50IHRvIHRyaWdnZXIuXG4gICAgZm9jdXNBbmRTY3JvbGxSZWY6IHtcbiAgICAgIGFwcGx5OiBzaG91bGRTY3JvbGxcbiAgICAgICAgPyBpc05vdFVuZGVmaW5lZChtdXRhYmxlPy5zY3JvbGxhYmxlU2VnbWVudHMpXG4gICAgICAgICAgPyB0cnVlXG4gICAgICAgICAgOiBzdGF0ZS5mb2N1c0FuZFNjcm9sbFJlZi5hcHBseVxuICAgICAgICA6IC8vIElmIHNob3VsZFNjcm9sbCBpcyBmYWxzZSB0aGVuIHdlIHNob3VsZCBub3QgYXBwbHkgc2Nyb2xsIGFuZCBmb2N1cyBtYW5hZ2VtZW50LlxuICAgICAgICAgIGZhbHNlLFxuICAgICAgb25seUhhc2hDaGFuZ2U6IG11dGFibGUub25seUhhc2hDaGFuZ2UgfHwgZmFsc2UsXG4gICAgICBoYXNoRnJhZ21lbnQ6IHNob3VsZFNjcm9sbFxuICAgICAgICA/IC8vIEVtcHR5IGhhc2ggc2hvdWxkIHRyaWdnZXIgZGVmYXVsdCBiZWhhdmlvciBvZiBzY3JvbGxpbmcgbGF5b3V0IGludG8gdmlldy5cbiAgICAgICAgICAvLyAjdG9wIGlzIGhhbmRsZWQgaW4gbGF5b3V0LXJvdXRlci5cbiAgICAgICAgICBtdXRhYmxlLmhhc2hGcmFnbWVudCAmJiBtdXRhYmxlLmhhc2hGcmFnbWVudCAhPT0gJydcbiAgICAgICAgICA/IC8vIFJlbW92ZSBsZWFkaW5nICMgYW5kIGRlY29kZSBoYXNoIHRvIG1ha2Ugbm9uLWxhdGluIGhhc2hlcyB3b3JrLlxuICAgICAgICAgICAgZGVjb2RlVVJJQ29tcG9uZW50KG11dGFibGUuaGFzaEZyYWdtZW50LnNsaWNlKDEpKVxuICAgICAgICAgIDogc3RhdGUuZm9jdXNBbmRTY3JvbGxSZWYuaGFzaEZyYWdtZW50XG4gICAgICAgIDogLy8gSWYgc2hvdWxkU2Nyb2xsIGlzIGZhbHNlIHRoZW4gd2Ugc2hvdWxkIG5vdCBhcHBseSBzY3JvbGwgYW5kIGZvY3VzIG1hbmFnZW1lbnQuXG4gICAgICAgICAgbnVsbCxcbiAgICAgIHNlZ21lbnRQYXRoczogc2hvdWxkU2Nyb2xsXG4gICAgICAgID8gbXV0YWJsZT8uc2Nyb2xsYWJsZVNlZ21lbnRzID8/IHN0YXRlLmZvY3VzQW5kU2Nyb2xsUmVmLnNlZ21lbnRQYXRoc1xuICAgICAgICA6IC8vIElmIHNob3VsZFNjcm9sbCBpcyBmYWxzZSB0aGVuIHdlIHNob3VsZCBub3QgYXBwbHkgc2Nyb2xsIGFuZCBmb2N1cyBtYW5hZ2VtZW50LlxuICAgICAgICAgIFtdLFxuICAgIH0sXG4gICAgLy8gQXBwbHkgY2FjaGUuXG4gICAgY2FjaGU6IG11dGFibGUuY2FjaGUgPyBtdXRhYmxlLmNhY2hlIDogc3RhdGUuY2FjaGUsXG4gICAgcHJlZmV0Y2hDYWNoZTogbXV0YWJsZS5wcmVmZXRjaENhY2hlXG4gICAgICA/IG11dGFibGUucHJlZmV0Y2hDYWNoZVxuICAgICAgOiBzdGF0ZS5wcmVmZXRjaENhY2hlLFxuICAgIC8vIEFwcGx5IHBhdGNoZWQgcm91dGVyIHN0YXRlLlxuICAgIHRyZWU6IGlzTm90VW5kZWZpbmVkKG11dGFibGUucGF0Y2hlZFRyZWUpXG4gICAgICA/IG11dGFibGUucGF0Y2hlZFRyZWVcbiAgICAgIDogc3RhdGUudHJlZSxcbiAgICBuZXh0VXJsLFxuICB9XG59XG4iXSwibmFtZXMiOlsiaGFuZGxlTXV0YWJsZSIsImlzTm90VW5kZWZpbmVkIiwidmFsdWUiLCJzdGF0ZSIsIm11dGFibGUiLCJzaG91bGRTY3JvbGwiLCJuZXh0VXJsIiwicGF0Y2hlZFRyZWUiLCJjaGFuZ2VkUGF0aCIsImNvbXB1dGVDaGFuZ2VkUGF0aCIsInRyZWUiLCJjYW5vbmljYWxVcmwiLCJwdXNoUmVmIiwicGVuZGluZ1B1c2giLCJtcGFOYXZpZ2F0aW9uIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJmb2N1c0FuZFNjcm9sbFJlZiIsImFwcGx5Iiwic2Nyb2xsYWJsZVNlZ21lbnRzIiwib25seUhhc2hDaGFuZ2UiLCJoYXNoRnJhZ21lbnQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJzbGljZSIsInNlZ21lbnRQYXRocyIsImNhY2hlIiwicHJlZmV0Y2hDYWNoZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js":
|
||
/*!********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js ***!
|
||
\********************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"handleSegmentMismatch\", ({\n enumerable: true,\n get: function() {\n return handleSegmentMismatch;\n }\n}));\nconst _navigatereducer = __webpack_require__(/*! ./reducers/navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nfunction 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, _navigatereducer.handleExternalUrl)(state, {}, state.canonicalUrl, true);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=handle-segment-mismatch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2hhbmRsZS1zZWdtZW50LW1pc21hdGNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7eURBV2dCQTs7O2VBQUFBOzs7NkNBVmtCO0FBVTNCLFNBQVNBLHNCQUNkQyxLQUEyQixFQUMzQkMsTUFBc0IsRUFDdEJDLFNBQTRCO0lBRTVCLElBQUlDLElBQW9CLEVBQW9CO1FBQzFDRyxRQUFRQyxJQUFJLENBQ1Ysc0pBQ0UsK0JBQ0EsQ0FBQyxrQkFBZU4sT0FBT08sSUFBSSxHQUFDLE9BQUksSUFDaEMsbUJBQWlCQyxLQUFLQyxTQUFTLENBQUNWLE1BQU1XLElBQUksSUFBRSxPQUFJLElBQ2hELHlCQUF1QkYsS0FBS0MsU0FBUyxDQUFDUixVQUFBQSxDQUFXO0lBRXZEO0lBRUEsT0FBT1UsQ0FBQUEsR0FBQUEsaUJBQUFBLGlCQUFBQSxFQUFrQlosT0FBTyxDQUFDLEdBQUdBLE1BQU1hLFlBQVksRUFBRTtBQUMxRCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9oYW5kbGUtc2VnbWVudC1taXNtYXRjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZsaWdodFJvdXRlclN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBoYW5kbGVFeHRlcm5hbFVybCB9IGZyb20gJy4vcmVkdWNlcnMvbmF2aWdhdGUtcmVkdWNlcidcbmltcG9ydCB0eXBlIHtcbiAgUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIFJlZHVjZXJBY3Rpb25zLFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuXG4vKipcbiAqIEhhbmRsZXMgdGhlIGNhc2Ugd2hlcmUgdGhlIGNsaWVudCByb3V0ZXIgYXR0ZW1wdGVkIHRvIHBhdGNoIHRoZSB0cmVlIGJ1dCwgZHVlIHRvIGEgbWlzbWF0Y2gsIHRoZSBwYXRjaCBmYWlsZWQuXG4gKiBUaGlzIHdpbGwgcGVyZm9ybSBhbiBNUEEgbmF2aWdhdGlvbiB0byByZXR1cm4gdGhlIHJvdXRlciB0byBhIHZhbGlkIHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlU2VnbWVudE1pc21hdGNoKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIGFjdGlvbjogUmVkdWNlckFjdGlvbnMsXG4gIHRyZWVQYXRjaDogRmxpZ2h0Um91dGVyU3RhdGVcbikge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICAnUGVyZm9ybWluZyBoYXJkIG5hdmlnYXRpb24gYmVjYXVzZSB5b3VyIGFwcGxpY2F0aW9uIGV4cGVyaWVuY2VkIGFuIHVucmVjb3ZlcmFibGUgZXJyb3IuIElmIHRoaXMga2VlcHMgb2NjdXJyaW5nLCBwbGVhc2UgZmlsZSBhIE5leHQuanMgaXNzdWUuXFxuXFxuJyArXG4gICAgICAgICdSZWFzb246IFNlZ21lbnQgbWlzbWF0Y2hcXG4nICtcbiAgICAgICAgYExhc3QgQWN0aW9uOiAke2FjdGlvbi50eXBlfVxcblxcbmAgK1xuICAgICAgICBgQ3VycmVudCBUcmVlOiAke0pTT04uc3RyaW5naWZ5KHN0YXRlLnRyZWUpfVxcblxcbmAgK1xuICAgICAgICBgVHJlZSBQYXRjaCBQYXlsb2FkOiAke0pTT04uc3RyaW5naWZ5KHRyZWVQYXRjaCl9YFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChzdGF0ZSwge30sIHN0YXRlLmNhbm9uaWNhbFVybCwgdHJ1ZSlcbn1cbiJdLCJuYW1lcyI6WyJoYW5kbGVTZWdtZW50TWlzbWF0Y2giLCJzdGF0ZSIsImFjdGlvbiIsInRyZWVQYXRjaCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbnNvbGUiLCJ3YXJuIiwidHlwZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0cmVlIiwiaGFuZGxlRXh0ZXJuYWxVcmwiLCJjYW5vbmljYWxVcmwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js":
|
||
/*!**************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js ***!
|
||
\**************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"invalidateCacheBelowFlightSegmentPath\", ({\n enumerable: true,\n get: function() {\n return invalidateCacheBelowFlightSegmentPath;\n }\n}));\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nfunction invalidateCacheBelowFlightSegmentPath(newCache, existingCache, flightSegmentPath) {\n const isLastEntry = flightSegmentPath.length <= 2;\n const [parallelRouteKey, segment] = flightSegmentPath;\n const cacheKey = (0, _createroutercachekey.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 head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes)\n };\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n invalidateCacheBelowFlightSegmentPath(childCacheNode, existingChildCacheNode, (0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=invalidate-cache-below-flight-segmentpath.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ludmFsaWRhdGUtY2FjaGUtYmVsb3ctZmxpZ2h0LXNlZ21lbnRwYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7eUVBUWdCQTs7O2VBQUFBOzs7a0RBTnFCOytDQUNJO0FBS2xDLFNBQVNBLHNDQUNkQyxRQUFtQixFQUNuQkMsYUFBd0IsRUFDeEJDLGlCQUFvQztJQUVwQyxNQUFNQyxjQUFjRCxrQkFBa0JFLE1BQU0sSUFBSTtJQUNoRCxNQUFNLENBQUNDLGtCQUFrQkMsUUFBUSxHQUFHSjtJQUVwQyxNQUFNSyxXQUFXQyxDQUFBQSxHQUFBQSxzQkFBQUEsb0JBQUFBLEVBQXFCRjtJQUV0QyxNQUFNRywwQkFDSlIsY0FBY1MsY0FBYyxDQUFDQyxHQUFHLENBQUNOO0lBRW5DLElBQUksQ0FBQ0kseUJBQXlCO1FBQzVCLDZFQUE2RTtRQUM3RSxzRUFBc0U7UUFDdEU7SUFDRjtJQUVBLElBQUlHLGtCQUFrQlosU0FBU1UsY0FBYyxDQUFDQyxHQUFHLENBQUNOO0lBQ2xELElBQUksQ0FBQ08sbUJBQW1CQSxvQkFBb0JILHlCQUF5QjtRQUNuRUcsa0JBQWtCLElBQUlDLElBQUlKO1FBQzFCVCxTQUFTVSxjQUFjLENBQUNJLEdBQUcsQ0FBQ1Qsa0JBQWtCTztJQUNoRDtJQUVBLGlEQUFpRDtJQUNqRCxJQUFJVCxhQUFhO1FBQ2ZTLGdCQUFnQkcsTUFBTSxDQUFDUjtRQUN2QjtJQUNGO0lBRUEsTUFBTVMseUJBQXlCUCx3QkFBd0JFLEdBQUcsQ0FBQ0o7SUFDM0QsSUFBSVUsaUJBQWlCTCxnQkFBZ0JELEdBQUcsQ0FBQ0o7SUFFekMsSUFBSSxDQUFDVSxrQkFBa0IsQ0FBQ0Qsd0JBQXdCO1FBQzlDLDZFQUE2RTtRQUM3RSxzRUFBc0U7UUFDdEU7SUFDRjtJQUVBLElBQUlDLG1CQUFtQkQsd0JBQXdCO1FBQzdDQyxpQkFBaUI7WUFDZkMsVUFBVUQsZUFBZUMsUUFBUTtZQUNqQ0MsS0FBS0YsZUFBZUUsR0FBRztZQUN2QkMsYUFBYUgsZUFBZUcsV0FBVztZQUN2Q0MsTUFBTUosZUFBZUksSUFBSTtZQUN6QkMsY0FBY0wsZUFBZUssWUFBWTtZQUN6Q1osZ0JBQWdCLElBQUlHLElBQUlJLGVBQWVQLGNBQWM7UUFDdkQ7UUFDQUUsZ0JBQWdCRSxHQUFHLENBQUNQLFVBQVVVO0lBQ2hDO0lBRUFsQixzQ0FDRWtCLGdCQUNBRCx3QkFDQU8sQ0FBQUEsR0FBQUEsbUJBQUFBLHdCQUFBQSxFQUF5QnJCO0FBRTdCIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ludmFsaWRhdGUtY2FjaGUtYmVsb3ctZmxpZ2h0LXNlZ21lbnRwYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IEZsaWdodFNlZ21lbnRQYXRoIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4vY3JlYXRlLXJvdXRlci1jYWNoZS1rZXknXG5pbXBvcnQgeyBnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGggfSBmcm9tICcuLi8uLi9mbGlnaHQtZGF0YS1oZWxwZXJzJ1xuXG4vKipcbiAqIEZpbGwgY2FjaGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgZmxpZ2h0U2VnbWVudFBhdGgsIGludmFsaWRhdGluZyBhbnl0aGluZyBiZWxvdyBpdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRhdGVDYWNoZUJlbG93RmxpZ2h0U2VnbWVudFBhdGgoXG4gIG5ld0NhY2hlOiBDYWNoZU5vZGUsXG4gIGV4aXN0aW5nQ2FjaGU6IENhY2hlTm9kZSxcbiAgZmxpZ2h0U2VnbWVudFBhdGg6IEZsaWdodFNlZ21lbnRQYXRoXG4pOiB2b2lkIHtcbiAgY29uc3QgaXNMYXN0RW50cnkgPSBmbGlnaHRTZWdtZW50UGF0aC5sZW5ndGggPD0gMlxuICBjb25zdCBbcGFyYWxsZWxSb3V0ZUtleSwgc2VnbWVudF0gPSBmbGlnaHRTZWdtZW50UGF0aFxuXG4gIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudClcblxuICBjb25zdCBleGlzdGluZ0NoaWxkU2VnbWVudE1hcCA9XG4gICAgZXhpc3RpbmdDYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSlcblxuICBpZiAoIWV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwKSB7XG4gICAgLy8gQmFpbG91dCBiZWNhdXNlIHRoZSBleGlzdGluZyBjYWNoZSBkb2VzIG5vdCBoYXZlIHRoZSBwYXRoIHRvIHRoZSBsZWFmIG5vZGVcbiAgICAvLyBXaWxsIHRyaWdnZXIgbGF6eSBmZXRjaCBpbiBsYXlvdXQtcm91dGVyIGJlY2F1c2Ugb2YgbWlzc2luZyBzZWdtZW50XG4gICAgcmV0dXJuXG4gIH1cblxuICBsZXQgY2hpbGRTZWdtZW50TWFwID0gbmV3Q2FjaGUucGFyYWxsZWxSb3V0ZXMuZ2V0KHBhcmFsbGVsUm91dGVLZXkpXG4gIGlmICghY2hpbGRTZWdtZW50TWFwIHx8IGNoaWxkU2VnbWVudE1hcCA9PT0gZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXApIHtcbiAgICBjaGlsZFNlZ21lbnRNYXAgPSBuZXcgTWFwKGV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwKVxuICAgIG5ld0NhY2hlLnBhcmFsbGVsUm91dGVzLnNldChwYXJhbGxlbFJvdXRlS2V5LCBjaGlsZFNlZ21lbnRNYXApXG4gIH1cblxuICAvLyBJbiBjYXNlIG9mIGxhc3QgZW50cnkgZG9uJ3QgY29weSBmdXJ0aGVyIGRvd24uXG4gIGlmIChpc0xhc3RFbnRyeSkge1xuICAgIGNoaWxkU2VnbWVudE1hcC5kZWxldGUoY2FjaGVLZXkpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlID0gZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXAuZ2V0KGNhY2hlS2V5KVxuICBsZXQgY2hpbGRDYWNoZU5vZGUgPSBjaGlsZFNlZ21lbnRNYXAuZ2V0KGNhY2hlS2V5KVxuXG4gIGlmICghY2hpbGRDYWNoZU5vZGUgfHwgIWV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUpIHtcbiAgICAvLyBCYWlsb3V0IGJlY2F1c2UgdGhlIGV4aXN0aW5nIGNhY2hlIGRvZXMgbm90IGhhdmUgdGhlIHBhdGggdG8gdGhlIGxlYWYgbm9kZVxuICAgIC8vIFdpbGwgdHJpZ2dlciBsYXp5IGZldGNoIGluIGxheW91dC1yb3V0ZXIgYmVjYXVzZSBvZiBtaXNzaW5nIHNlZ21lbnRcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChjaGlsZENhY2hlTm9kZSA9PT0gZXhpc3RpbmdDaGlsZENhY2hlTm9kZSkge1xuICAgIGNoaWxkQ2FjaGVOb2RlID0ge1xuICAgICAgbGF6eURhdGE6IGNoaWxkQ2FjaGVOb2RlLmxhenlEYXRhLFxuICAgICAgcnNjOiBjaGlsZENhY2hlTm9kZS5yc2MsXG4gICAgICBwcmVmZXRjaFJzYzogY2hpbGRDYWNoZU5vZGUucHJlZmV0Y2hSc2MsXG4gICAgICBoZWFkOiBjaGlsZENhY2hlTm9kZS5oZWFkLFxuICAgICAgcHJlZmV0Y2hIZWFkOiBjaGlsZENhY2hlTm9kZS5wcmVmZXRjaEhlYWQsXG4gICAgICBwYXJhbGxlbFJvdXRlczogbmV3IE1hcChjaGlsZENhY2hlTm9kZS5wYXJhbGxlbFJvdXRlcyksXG4gICAgfSBhcyBDYWNoZU5vZGVcbiAgICBjaGlsZFNlZ21lbnRNYXAuc2V0KGNhY2hlS2V5LCBjaGlsZENhY2hlTm9kZSlcbiAgfVxuXG4gIGludmFsaWRhdGVDYWNoZUJlbG93RmxpZ2h0U2VnbWVudFBhdGgoXG4gICAgY2hpbGRDYWNoZU5vZGUsXG4gICAgZXhpc3RpbmdDaGlsZENhY2hlTm9kZSxcbiAgICBnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGgoZmxpZ2h0U2VnbWVudFBhdGgpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpbnZhbGlkYXRlQ2FjaGVCZWxvd0ZsaWdodFNlZ21lbnRQYXRoIiwibmV3Q2FjaGUiLCJleGlzdGluZ0NhY2hlIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJpc0xhc3RFbnRyeSIsImxlbmd0aCIsInBhcmFsbGVsUm91dGVLZXkiLCJzZWdtZW50IiwiY2FjaGVLZXkiLCJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsImV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwIiwicGFyYWxsZWxSb3V0ZXMiLCJnZXQiLCJjaGlsZFNlZ21lbnRNYXAiLCJNYXAiLCJzZXQiLCJkZWxldGUiLCJleGlzdGluZ0NoaWxkQ2FjaGVOb2RlIiwiY2hpbGRDYWNoZU5vZGUiLCJsYXp5RGF0YSIsInJzYyIsInByZWZldGNoUnNjIiwiaGVhZCIsInByZWZldGNoSGVhZCIsImdldE5leHRGbGlnaHRTZWdtZW50UGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js":
|
||
/*!*****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js ***!
|
||
\*****************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"invalidateCacheByRouterState\", ({\n enumerable: true,\n get: function() {\n return invalidateCacheByRouterState;\n }\n}));\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nfunction 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, _createroutercachekey.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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=invalidate-cache-by-router-state.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ludmFsaWRhdGUtY2FjaGUtYnktcm91dGVyLXN0YXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0VBT2dCQTs7O2VBQUFBOzs7a0RBTHFCO0FBSzlCLFNBQVNBLDZCQUNkQyxRQUFtQixFQUNuQkMsYUFBd0IsRUFDeEJDLFdBQThCO0lBRTlCLHVGQUF1RjtJQUN2RixJQUFLLE1BQU1DLE9BQU9ELFdBQVcsQ0FBQyxFQUFFLENBQUU7UUFDaEMsTUFBTUUsMEJBQTBCRixXQUFXLENBQUMsRUFBRSxDQUFDQyxJQUFJLENBQUMsRUFBRTtRQUN0RCxNQUFNRSxXQUFXQyxDQUFBQSxHQUFBQSxzQkFBQUEsb0JBQUFBLEVBQXFCRjtRQUN0QyxNQUFNRyxrQ0FDSk4sY0FBY08sY0FBYyxDQUFDQyxHQUFHLENBQUNOO1FBQ25DLElBQUlJLGlDQUFpQztZQUNuQyxJQUFJRyx5QkFBeUIsSUFBSUMsSUFBSUo7WUFDckNHLHVCQUF1QkUsTUFBTSxDQUFDUDtZQUM5QkwsU0FBU1EsY0FBYyxDQUFDSyxHQUFHLENBQUNWLEtBQUtPO1FBQ25DO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9pbnZhbGlkYXRlLWNhY2hlLWJ5LXJvdXRlci1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgY3JlYXRlUm91dGVyQ2FjaGVLZXkgfSBmcm9tICcuL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5J1xuXG4vKipcbiAqIEludmFsaWRhdGUgY2FjaGUgb25lIGxldmVsIGRvd24gZnJvbSB0aGUgcm91dGVyIHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZGF0ZUNhY2hlQnlSb3V0ZXJTdGF0ZShcbiAgbmV3Q2FjaGU6IENhY2hlTm9kZSxcbiAgZXhpc3RpbmdDYWNoZTogQ2FjaGVOb2RlLFxuICByb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGVcbik6IHZvaWQge1xuICAvLyBSZW1vdmUgc2VnbWVudCB0aGF0IHdlIGdvdCBkYXRhIGZvciBzbyB0aGF0IGl0IGlzIGZpbGxlZCBpbiBkdXJpbmcgcmVuZGVyaW5nIG9mIHJzYy5cbiAgZm9yIChjb25zdCBrZXkgaW4gcm91dGVyU3RhdGVbMV0pIHtcbiAgICBjb25zdCBzZWdtZW50Rm9yUGFyYWxsZWxSb3V0ZSA9IHJvdXRlclN0YXRlWzFdW2tleV1bMF1cbiAgICBjb25zdCBjYWNoZUtleSA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHNlZ21lbnRGb3JQYXJhbGxlbFJvdXRlKVxuICAgIGNvbnN0IGV4aXN0aW5nUGFyYWxsZWxSb3V0ZXNDYWNoZU5vZGUgPVxuICAgICAgZXhpc3RpbmdDYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQoa2V5KVxuICAgIGlmIChleGlzdGluZ1BhcmFsbGVsUm91dGVzQ2FjaGVOb2RlKSB7XG4gICAgICBsZXQgcGFyYWxsZWxSb3V0ZUNhY2hlTm9kZSA9IG5ldyBNYXAoZXhpc3RpbmdQYXJhbGxlbFJvdXRlc0NhY2hlTm9kZSlcbiAgICAgIHBhcmFsbGVsUm91dGVDYWNoZU5vZGUuZGVsZXRlKGNhY2hlS2V5KVxuICAgICAgbmV3Q2FjaGUucGFyYWxsZWxSb3V0ZXMuc2V0KGtleSwgcGFyYWxsZWxSb3V0ZUNhY2hlTm9kZSlcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpbnZhbGlkYXRlQ2FjaGVCeVJvdXRlclN0YXRlIiwibmV3Q2FjaGUiLCJleGlzdGluZ0NhY2hlIiwicm91dGVyU3RhdGUiLCJrZXkiLCJzZWdtZW50Rm9yUGFyYWxsZWxSb3V0ZSIsImNhY2hlS2V5IiwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJleGlzdGluZ1BhcmFsbGVsUm91dGVzQ2FjaGVOb2RlIiwicGFyYWxsZWxSb3V0ZXMiLCJnZXQiLCJwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlIiwiTWFwIiwiZGVsZXRlIiwic2V0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js":
|
||
/*!*****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js ***!
|
||
\*****************************************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNavigatingToNewRootLayout\", ({\n enumerable: true,\n get: function() {\n return isNavigatingToNewRootLayout;\n }\n}));\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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-navigating-to-new-root-layout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0LmpzIiwibWFwcGluZ3MiOiI7Ozs7K0RBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSw0QkFDZEMsV0FBOEIsRUFDOUJDLFFBQTJCO0lBRTNCLG1CQUFtQjtJQUNuQixNQUFNQyxxQkFBcUJGLFdBQVcsQ0FBQyxFQUFFO0lBQ3pDLE1BQU1HLGtCQUFrQkYsUUFBUSxDQUFDLEVBQUU7SUFFbkMsMkZBQTJGO0lBQzNGLDREQUE0RDtJQUM1RCx1SUFBdUk7SUFDdkksSUFBSUcsTUFBTUMsT0FBTyxDQUFDSCx1QkFBdUJFLE1BQU1DLE9BQU8sQ0FBQ0Ysa0JBQWtCO1FBQ3ZFLHNIQUFzSDtRQUN0SCx1R0FBdUc7UUFDdkcsSUFDRUQsa0JBQWtCLENBQUMsRUFBRSxLQUFLQyxlQUFlLENBQUMsRUFBRSxJQUM1Q0Qsa0JBQWtCLENBQUMsRUFBRSxLQUFLQyxlQUFlLENBQUMsRUFBRSxFQUM1QztZQUNBLE9BQU87UUFDVDtJQUNGLE9BQU8sSUFBSUQsdUJBQXVCQyxpQkFBaUI7UUFDakQsT0FBTztJQUNUO0lBRUEsaUNBQWlDO0lBQ2pDLElBQUlILFdBQVcsQ0FBQyxFQUFFLEVBQUU7UUFDbEIsNEVBQTRFO1FBQzVFLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDLEVBQUU7SUFDckI7SUFDQSxvRUFBb0U7SUFDcEUsSUFBSUEsUUFBUSxDQUFDLEVBQUUsRUFBRTtRQUNmLE9BQU87SUFDVDtJQUNBLDRHQUE0RztJQUM1RywyRkFBMkY7SUFDM0YsbURBQW1EO0lBQ25ELE1BQU1LLG1CQUFtQkMsT0FBT0MsTUFBTSxDQUFDUixXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtJQUN6RCxNQUFNUyxnQkFBZ0JGLE9BQU9DLE1BQU0sQ0FBQ1AsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDbkQsSUFBSSxDQUFDSyxvQkFBb0IsQ0FBQ0csZUFBZSxPQUFPO0lBQ2hELE9BQU9WLDRCQUE0Qk8sa0JBQWtCRztBQUN2RCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9pcy1uYXZpZ2F0aW5nLXRvLW5ldy1yb290LWxheW91dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZsaWdodFJvdXRlclN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQoXG4gIGN1cnJlbnRUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgbmV4dFRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4pOiBib29sZWFuIHtcbiAgLy8gQ29tcGFyZSBzZWdtZW50c1xuICBjb25zdCBjdXJyZW50VHJlZVNlZ21lbnQgPSBjdXJyZW50VHJlZVswXVxuICBjb25zdCBuZXh0VHJlZVNlZ21lbnQgPSBuZXh0VHJlZVswXVxuXG4gIC8vIElmIGFueSBzZWdtZW50IGlzIGRpZmZlcmVudCBiZWZvcmUgd2UgZmluZCB0aGUgcm9vdCBsYXlvdXQsIHRoZSByb290IGxheW91dCBoYXMgY2hhbmdlZC5cbiAgLy8gRS5nLiAvc2FtZS8oZ3JvdXAxKS9sYXlvdXQuanMgLT4gL3NhbWUvKGdyb3VwMikvbGF5b3V0LmpzXG4gIC8vIEZpcnN0IHNlZ21lbnQgaXMgJ3NhbWUnIGZvciBib3RoLCBrZWVwIGxvb2tpbmcuIChncm91cDEpIGNoYW5nZWQgdG8gKGdyb3VwMikgYmVmb3JlIHRoZSByb290IGxheW91dCB3YXMgZm91bmQsIGl0IG11c3QgaGF2ZSBjaGFuZ2VkLlxuICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50VHJlZVNlZ21lbnQpICYmIEFycmF5LmlzQXJyYXkobmV4dFRyZWVTZWdtZW50KSkge1xuICAgIC8vIENvbXBhcmUgZHluYW1pYyBwYXJhbSBuYW1lIGFuZCB0eXBlIGJ1dCBpZ25vcmUgdGhlIHZhbHVlLCBkaWZmZXJlbnQgdmFsdWVzIHdvdWxkIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgcm9vdCBsYXlvdXRcbiAgICAvLyAvW25hbWVdIC0gL3NsdWcxIGFuZCAvc2x1ZzIsIGJvdGggdmFsdWVzIChzbHVnMSAmIHNsdWcyKSBzdGlsbCBoYXMgdGhlIHNhbWUgbGF5b3V0IC9bbmFtZV0vbGF5b3V0LmpzXG4gICAgaWYgKFxuICAgICAgY3VycmVudFRyZWVTZWdtZW50WzBdICE9PSBuZXh0VHJlZVNlZ21lbnRbMF0gfHxcbiAgICAgIGN1cnJlbnRUcmVlU2VnbWVudFsyXSAhPT0gbmV4dFRyZWVTZWdtZW50WzJdXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfSBlbHNlIGlmIChjdXJyZW50VHJlZVNlZ21lbnQgIT09IG5leHRUcmVlU2VnbWVudCkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBDdXJyZW50IHRyZWUgcm9vdCBsYXlvdXQgZm91bmRcbiAgaWYgKGN1cnJlbnRUcmVlWzRdKSB7XG4gICAgLy8gSWYgdGhlIG5leHQgdHJlZSBkb2Vzbid0IGhhdmUgdGhlIHJvb3QgbGF5b3V0IGZsYWcsIGl0IG11c3QgaGF2ZSBjaGFuZ2VkLlxuICAgIHJldHVybiAhbmV4dFRyZWVbNF1cbiAgfVxuICAvLyBDdXJyZW50IHRyZWUgZGlkbid0IGhhdmUgaXRzIHJvb3QgbGF5b3V0IGhlcmUsIG11c3QgaGF2ZSBjaGFuZ2VkLlxuICBpZiAobmV4dFRyZWVbNF0pIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIC8vIFdlIGNhbid0IGFzc3VtZSBpdCdzIGBwYXJhbGxlbFJvdXRlcy5jaGlsZHJlbmAgaGVyZSBpbiBjYXNlIHRoZSByb290IGxheW91dCBpcyBgYXBwL0Bzb21ldGhpbmcvbGF5b3V0LmpzYFxuICAvLyBCdXQgaXQncyBub3QgcG9zc2libGUgdG8gYmUgbW9yZSB0aGFuIG9uZSBwYXJhbGxlbFJvdXRlcyBiZWZvcmUgdGhlIHJvb3QgbGF5b3V0IGlzIGZvdW5kXG4gIC8vIFRPRE8tQVBQOiBjaGFuZ2UgdG8gdHJhdmVyc2UgYWxsIHBhcmFsbGVsIHJvdXRlc1xuICBjb25zdCBjdXJyZW50VHJlZUNoaWxkID0gT2JqZWN0LnZhbHVlcyhjdXJyZW50VHJlZVsxXSlbMF1cbiAgY29uc3QgbmV4dFRyZWVDaGlsZCA9IE9iamVjdC52YWx1ZXMobmV4dFRyZWVbMV0pWzBdXG4gIGlmICghY3VycmVudFRyZWVDaGlsZCB8fCAhbmV4dFRyZWVDaGlsZCkgcmV0dXJuIHRydWVcbiAgcmV0dXJuIGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dChjdXJyZW50VHJlZUNoaWxkLCBuZXh0VHJlZUNoaWxkKVxufVxuIl0sIm5hbWVzIjpbImlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCIsImN1cnJlbnRUcmVlIiwibmV4dFRyZWUiLCJjdXJyZW50VHJlZVNlZ21lbnQiLCJuZXh0VHJlZVNlZ21lbnQiLCJBcnJheSIsImlzQXJyYXkiLCJjdXJyZW50VHJlZUNoaWxkIiwiT2JqZWN0IiwidmFsdWVzIiwibmV4dFRyZWVDaGlsZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js ***!
|
||
\************************************************************************************/
|
||
/***/ ((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 abortTask: function() {\n return abortTask;\n },\n listenForDynamicRequest: function() {\n return listenForDynamicRequest;\n },\n startPPRNavigation: function() {\n return startPPRNavigation;\n },\n updateCacheNodeOnPopstateRestoration: function() {\n return updateCacheNodeOnPopstateRestoration;\n }\n});\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _matchsegments = __webpack_require__(/*! ../match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ./is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _prefetchcacheutils = __webpack_require__(/*! ./prefetch-cache-utils */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js\");\nconst MPA_NAVIGATION_TASK = {\n route: null,\n node: null,\n dynamicRequestTree: null,\n children: null\n};\nfunction startPPRNavigation(navigatedAt, oldCacheNode, oldRouterState, newRouterState, prefetchData, prefetchHead, isPrefetchHeadPartial, isSamePageNavigation, scrollableSegmentsResult) {\n const segmentPath = [];\n return updateCacheNodeOnNavigation(navigatedAt, oldCacheNode, oldRouterState, newRouterState, false, prefetchData, prefetchHead, isPrefetchHeadPartial, isSamePageNavigation, segmentPath, scrollableSegmentsResult);\n}\nfunction updateCacheNodeOnNavigation(navigatedAt, oldCacheNode, oldRouterState, newRouterState, didFindRootLayout, prefetchData, prefetchHead, isPrefetchHeadPartial, isSamePageNavigation, segmentPath, scrollableSegmentsResult) {\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 !== null ? prefetchData[2] : null;\n if (!didFindRootLayout) {\n // We're currently traversing the part of the tree that was also part of\n // the previous route. If we discover a root layout, then we don't need to\n // trigger an MPA navigation. See beginRenderingNewRouteTree for context.\n const isRootLayout = newRouterState[4] === true;\n if (isRootLayout) {\n // Found a matching root layout.\n didFindRootLayout = true;\n }\n }\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 // Most navigations require a request to fetch additional data from the\n // server, either because the data was not already prefetched, or because the\n // target route contains dynamic data that cannot be prefetched.\n //\n // However, if the target route is fully static, and it's already completely\n // loaded into the segment cache, then we can skip the server request.\n //\n // This starts off as `false`, and is set to `true` if any of the child\n // routes requires a dynamic request.\n let needsDynamicRequest = false;\n // As we traverse the children, we'll construct a FlightRouterState that can\n // be sent to the server to request the dynamic data. If it turns out that\n // nothing in the subtree is dynamic (i.e. needsDynamicRequest is false at the\n // end), then this will be discarded.\n // TODO: We can probably optimize the format of this data structure to only\n // include paths that are dynamic. Instead of reusing the\n // FlightRouterState type.\n let dynamicRequestTreeChildren = {};\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 !== null ? prefetchDataChildren[parallelRouteKey] : null;\n const newSegmentChild = newRouterStateChild[0];\n const newSegmentPathChild = segmentPath.concat([\n parallelRouteKey,\n newSegmentChild\n ]);\n const newSegmentKeyChild = (0, _createroutercachekey.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 === _segment.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 = beginRenderingNewRouteTree(navigatedAt, oldRouterStateChild, newRouterStateChild, oldCacheNodeChild, didFindRootLayout, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchHeadPartial, newSegmentPathChild, scrollableSegmentsResult);\n }\n } else if (isSamePageNavigation && // Check if this is a page segment.\n // TODO: We're not consistent about how we do this check. Some places\n // check if the segment starts with PAGE_SEGMENT_KEY, but most seem to\n // check if there any any children, which is why I'm doing it here. We\n // should probably encode an empty children set as `null` though. Either\n // way, we should update all the checks to be consistent.\n Object.keys(newRouterStateChild[1]).length === 0) {\n // We special case navigations to the exact same URL as the current\n // location. It's a common UI pattern for apps to refresh when you click a\n // link to the current page. So when this happens, we refresh the dynamic\n // data in the page segments.\n //\n // Note that this does not apply if the any part of the hash or search\n // query has changed. This might feel a bit weird but it makes more sense\n // when you consider that the way to trigger this behavior is to click\n // the same link multiple times.\n //\n // TODO: We should probably refresh the *entire* route when this case\n // occurs, not just the page segments. Essentially treating it the same as\n // a refresh() triggered by an action, which is the more explicit way of\n // modeling the UI pattern described above.\n //\n // Also note that this only refreshes the dynamic data, not static/\n // cached data. If the page segment is fully static and prefetched, the\n // request is skipped. (This is also how refresh() works.)\n taskChild = beginRenderingNewRouteTree(navigatedAt, oldRouterStateChild, newRouterStateChild, oldCacheNodeChild, didFindRootLayout, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchHeadPartial, newSegmentPathChild, scrollableSegmentsResult);\n } else if (oldRouterStateChild !== undefined && oldSegmentChild !== undefined && (0, _matchsegments.matchSegment)(newSegmentChild, oldSegmentChild)) {\n if (oldCacheNodeChild !== undefined && oldRouterStateChild !== undefined) {\n // This segment exists in both the old and new trees. Recursively update\n // the children.\n taskChild = updateCacheNodeOnNavigation(navigatedAt, oldCacheNodeChild, oldRouterStateChild, newRouterStateChild, didFindRootLayout, prefetchDataChild, prefetchHead, isPrefetchHeadPartial, isSamePageNavigation, newSegmentPathChild, scrollableSegmentsResult);\n } else {\n // There's no existing Cache Node for this segment. Switch to the\n // \"create\" path.\n taskChild = beginRenderingNewRouteTree(navigatedAt, oldRouterStateChild, newRouterStateChild, oldCacheNodeChild, didFindRootLayout, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchHeadPartial, newSegmentPathChild, scrollableSegmentsResult);\n }\n } else {\n // This is a new tree. Switch to the \"create\" path.\n taskChild = beginRenderingNewRouteTree(navigatedAt, oldRouterStateChild, newRouterStateChild, oldCacheNodeChild, didFindRootLayout, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchHeadPartial, newSegmentPathChild, scrollableSegmentsResult);\n }\n if (taskChild !== null) {\n // Recursively propagate up the child tasks.\n if (taskChild.route === null) {\n // One of the child tasks discovered a change to the root layout.\n // Immediately unwind from this recursive traversal.\n return MPA_NAVIGATION_TASK;\n }\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 const taskChildRoute = taskChild.route;\n patchedRouterStateChildren[parallelRouteKey] = taskChildRoute;\n const dynamicRequestTreeChild = taskChild.dynamicRequestTree;\n if (dynamicRequestTreeChild !== null) {\n // Something in the child tree is dynamic.\n needsDynamicRequest = true;\n dynamicRequestTreeChildren[parallelRouteKey] = dynamicRequestTreeChild;\n } else {\n dynamicRequestTreeChildren[parallelRouteKey] = taskChildRoute;\n }\n } else {\n // The child didn't change. We can use the prefetched router state.\n patchedRouterStateChildren[parallelRouteKey] = newRouterStateChild;\n dynamicRequestTreeChildren[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 loading: oldCacheNode.loading,\n // Everything is cloned except for the children, which we computed above.\n parallelRoutes: prefetchParallelRoutes,\n navigatedAt\n };\n return {\n // Return a cloned copy of the router state with updated children.\n route: patchRouterStateWithNewChildren(newRouterState, patchedRouterStateChildren),\n node: newCacheNode,\n dynamicRequestTree: needsDynamicRequest ? patchRouterStateWithNewChildren(newRouterState, dynamicRequestTreeChildren) : null,\n children: taskChildren\n };\n}\nfunction beginRenderingNewRouteTree(navigatedAt, oldRouterState, newRouterState, existingCacheNode, didFindRootLayout, prefetchData, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult) {\n if (!didFindRootLayout) {\n // The route tree changed before we reached a layout. (The highest-level\n // layout in a route tree is referred to as the \"root\" layout.) This could\n // mean that we're navigating between two different root layouts. When this\n // happens, we perform a full-page (MPA-style) navigation.\n //\n // However, the algorithm for deciding where to start rendering a route\n // (i.e. the one performed in order to reach this function) is stricter\n // than the one used to detect a change in the root layout. So just because\n // we're re-rendering a segment outside of the root layout does not mean we\n // should trigger a full-page navigation.\n //\n // Specifically, we handle dynamic parameters differently: two segments are\n // considered the same even if their parameter values are different.\n //\n // Refer to isNavigatingToNewRootLayout for details.\n //\n // Note that we only have to perform this extra traversal if we didn't\n // already discover a root layout in the part of the tree that is unchanged.\n // In the common case, this branch is skipped completely.\n if (oldRouterState === undefined || (0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(oldRouterState, newRouterState)) {\n // The root layout changed. Perform a full-page navigation.\n return MPA_NAVIGATION_TASK;\n }\n }\n return createCacheNodeOnNavigation(navigatedAt, newRouterState, existingCacheNode, prefetchData, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult);\n}\nfunction createCacheNodeOnNavigation(navigatedAt, routerState, existingCacheNode, prefetchData, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult) {\n // Same traversal as updateCacheNodeNavigation, but we switch to this path\n // once we reach the part of the tree that was not in the previous route. We\n // don't need to diff against the old tree, we just need to create a new one.\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 routerStateChildren = routerState[1];\n const isLeafSegment = Object.keys(routerStateChildren).length === 0;\n // Even we're rendering inside the \"new\" part of the target tree, we may have\n // a locally cached segment that we can reuse. This may come from either 1)\n // the CacheNode tree, which lives in React state and is populated by previous\n // navigations; or 2) the prefetch cache, which is a separate cache that is\n // populated by prefetches.\n let rsc;\n let loading;\n let head;\n let cacheNodeNavigatedAt;\n if (existingCacheNode !== undefined && // DYNAMIC_STALETIME_MS defaults to 0, but it can be increased using\n // the experimental.staleTimes.dynamic config. When set, we'll avoid\n // refetching dynamic data if it was fetched within the given threshold.\n existingCacheNode.navigatedAt + _prefetchcacheutils.DYNAMIC_STALETIME_MS > navigatedAt) {\n // We have an existing CacheNode for this segment, and it's not stale. We\n // should reuse it rather than request a new one.\n rsc = existingCacheNode.rsc;\n loading = existingCacheNode.loading;\n head = existingCacheNode.head;\n // Don't update the navigatedAt timestamp, since we're reusing stale data.\n cacheNodeNavigatedAt = existingCacheNode.navigatedAt;\n } else if (prefetchData !== null) {\n // There's no existing CacheNode for this segment, but we do have prefetch\n // data. If the prefetch data is fully static (i.e. does not contain any\n // dynamic holes), we don't need to request it from the server.\n rsc = prefetchData[1];\n loading = prefetchData[3];\n head = isLeafSegment ? possiblyPartialPrefetchHead : null;\n // Even though we're accessing the data from the prefetch cache, this is\n // conceptually a new segment, not a reused one. So we should update the\n // navigatedAt timestamp.\n cacheNodeNavigatedAt = navigatedAt;\n const isPrefetchRscPartial = prefetchData[4];\n if (isPrefetchRscPartial || // Check if the head is partial (only relevant if this is a leaf segment)\n isPrefetchHeadPartial && isLeafSegment) {\n // We only have partial data from this segment. Like missing segments, we\n // must request the full data from the server.\n return spawnPendingTask(navigatedAt, routerState, prefetchData, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult);\n } else {\n // The prefetch data is fully static, so we can omit it from the\n // navigation request.\n }\n } else {\n // There's no prefetch for this segment. Everything from this point will be\n // requested from the server, even if there are static children below it.\n // Create a terminal task node that will later be fulfilled by\n // server response.\n return spawnPendingTask(navigatedAt, routerState, null, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult);\n }\n // We already have a full segment we can render, so we don't need to request a\n // new one from the server. Keep traversing down the tree until we reach\n // something that requires a dynamic request.\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : null;\n const taskChildren = new Map();\n const existingCacheNodeChildren = existingCacheNode !== undefined ? existingCacheNode.parallelRoutes : null;\n const cacheNodeChildren = new Map(existingCacheNodeChildren);\n let dynamicRequestTreeChildren = {};\n let needsDynamicRequest = false;\n if (isLeafSegment) {\n // The segment path of every leaf segment (i.e. page) is collected into\n // a result array. This is used by the LayoutRouter to scroll to ensure that\n // new pages are visible after a navigation.\n // TODO: We should use a string to represent the segment path instead of\n // an array. We already use a string representation for the path when\n // accessing the Segment Cache, so we can use the same one.\n scrollableSegmentsResult.push(segmentPath);\n } else {\n for(let parallelRouteKey in routerStateChildren){\n const routerStateChild = routerStateChildren[parallelRouteKey];\n const prefetchDataChild = prefetchDataChildren !== null ? prefetchDataChildren[parallelRouteKey] : null;\n const existingSegmentMapChild = existingCacheNodeChildren !== null ? existingCacheNodeChildren.get(parallelRouteKey) : undefined;\n const segmentChild = routerStateChild[0];\n const segmentPathChild = segmentPath.concat([\n parallelRouteKey,\n segmentChild\n ]);\n const segmentKeyChild = (0, _createroutercachekey.createRouterCacheKey)(segmentChild);\n const existingCacheNodeChild = existingSegmentMapChild !== undefined ? existingSegmentMapChild.get(segmentKeyChild) : undefined;\n const taskChild = createCacheNodeOnNavigation(navigatedAt, routerStateChild, existingCacheNodeChild, prefetchDataChild, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPathChild, scrollableSegmentsResult);\n taskChildren.set(parallelRouteKey, taskChild);\n const dynamicRequestTreeChild = taskChild.dynamicRequestTree;\n if (dynamicRequestTreeChild !== null) {\n // Something in the child tree is dynamic.\n needsDynamicRequest = true;\n dynamicRequestTreeChildren[parallelRouteKey] = dynamicRequestTreeChild;\n } else {\n dynamicRequestTreeChildren[parallelRouteKey] = routerStateChild;\n }\n const newCacheNodeChild = taskChild.node;\n if (newCacheNodeChild !== null) {\n const newSegmentMapChild = new Map();\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild);\n cacheNodeChildren.set(parallelRouteKey, newSegmentMapChild);\n }\n }\n }\n return {\n // Since we're inside a new route tree, unlike the\n // `updateCacheNodeOnNavigation` path, the router state on the children\n // tasks is always the same as the router state we pass in. So we don't need\n // to clone/modify it.\n route: routerState,\n node: {\n lazyData: null,\n // Since this segment is already full, we don't need to use the\n // `prefetchRsc` field.\n rsc,\n prefetchRsc: null,\n head,\n prefetchHead: null,\n loading,\n parallelRoutes: cacheNodeChildren,\n navigatedAt: cacheNodeNavigatedAt\n },\n dynamicRequestTree: needsDynamicRequest ? patchRouterStateWithNewChildren(routerState, dynamicRequestTreeChildren) : null,\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(navigatedAt, routerState, prefetchData, prefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult) {\n // Create a task that will later be fulfilled by data from the server.\n // Clone the prefetched route tree and the `refetch` marker to it. We'll send\n // this to the server so it knows where to start rendering.\n const dynamicRequestTree = patchRouterStateWithNewChildren(routerState, routerState[1]);\n dynamicRequestTree[3] = 'refetch';\n const newTask = {\n route: routerState,\n // Corresponds to the part of the route that will be rendered on the server.\n node: createPendingCacheNode(navigatedAt, routerState, prefetchData, prefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult),\n // Because this is non-null, and it gets propagated up through the parent\n // tasks, the root task will know that it needs to perform a server request.\n dynamicRequestTree,\n children: null\n };\n return newTask;\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 dynamicRequestTree: null,\n children: null\n };\n}\nfunction listenForDynamicRequest(task, responsePromise) {\n responsePromise.then((param)=>{\n let { flightData } = param;\n if (typeof flightData === 'string') {\n // Happens when navigating to page in `pages` from `app`. We shouldn't\n // get here because should have already handled this during\n // the prefetch.\n return;\n }\n for (const normalizedFlightData of flightData){\n const { segmentPath, tree: serverRouterState, seedData: dynamicData, head: dynamicHead } = normalizedFlightData;\n if (!dynamicData) {\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, _matchsegments.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 if (task.dynamicRequestTree === null) {\n // Everything in this subtree is already complete. Bail out.\n return;\n }\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 // Set this to null to indicate that this task is now complete.\n task.dynamicRequestTree = 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[2];\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, _matchsegments.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(navigatedAt, routerState, prefetchData, prefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult) {\n const routerStateChildren = routerState[1];\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : 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 segmentPathChild = segmentPath.concat([\n parallelRouteKey,\n segmentChild\n ]);\n const segmentKeyChild = (0, _createroutercachekey.createRouterCacheKey)(segmentChild);\n const newCacheNodeChild = createPendingCacheNode(navigatedAt, routerStateChild, prefetchDataChild === undefined ? null : prefetchDataChild, prefetchHead, isPrefetchHeadPartial, segmentPathChild, scrollableSegmentsResult);\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 if (isLeafSegment) {\n // The segment path of every leaf segment (i.e. page) is collected into\n // a result array. This is used by the LayoutRouter to scroll to ensure that\n // new pages are visible after a navigation.\n // TODO: We should use a string to represent the segment path instead of\n // an array. We already use a string representation for the path when\n // accessing the Segment Cache, so we can use the same one.\n scrollableSegmentsResult.push(segmentPath);\n }\n const maybePrefetchRsc = prefetchData !== null ? prefetchData[1] : null;\n const maybePrefetchLoading = prefetchData !== null ? prefetchData[3] : null;\n return {\n lazyData: null,\n parallelRoutes: parallelRoutes,\n prefetchRsc: maybePrefetchRsc !== undefined ? maybePrefetchRsc : null,\n prefetchHead: isLeafSegment ? prefetchHead : [\n null,\n null\n ],\n // TODO: Technically, a loading boundary could contain dynamic data. We must\n // have separate `loading` and `prefetchLoading` fields to handle this, like\n // we do for the segment data and head.\n loading: maybePrefetchLoading !== undefined ? maybePrefetchLoading : 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 navigatedAt\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[2];\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, _createroutercachekey.createRouterCacheKey)(taskSegmentChild);\n const cacheNodeChild = segmentMapChild !== undefined ? segmentMapChild.get(taskSegmentKeyChild) : undefined;\n if (cacheNodeChild !== undefined) {\n if (serverStateChild !== undefined && (0, _matchsegments.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[1];\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 // Set this to null to indicate that this task is now complete.\n task.dynamicRequestTree = 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, _createroutercachekey.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, _createroutercachekey.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 : [\n null,\n null\n ],\n prefetchRsc: shouldUsePrefetch ? oldCacheNode.prefetchRsc : null,\n loading: oldCacheNode.loading,\n // These are the cloned children we computed above\n parallelRoutes: newParallelRoutes,\n navigatedAt: oldCacheNode.navigatedAt\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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=ppr-navigations.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3Bwci1uYXZpZ2F0aW9ucy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUEwa0NnQkEsU0FBUztlQUFUQTs7SUExVkFDLHVCQUF1QjtlQUF2QkE7O0lBdnBCQUMsa0JBQWtCO2VBQWxCQTs7SUE2akNBQyxvQ0FBb0M7ZUFBcENBOzs7cUNBem9Db0I7MkNBQ1A7a0RBQ1E7eURBRU87Z0RBQ1A7QUFpQ3JDLE1BQU1DLHNCQUF5QztJQUM3Q0MsT0FBTztJQUNQQyxNQUFNO0lBQ05DLG9CQUFvQjtJQUNwQkMsVUFBVTtBQUNaO0FBaUNPLFNBQVNOLG1CQUNkTyxXQUFtQixFQUNuQkMsWUFBdUIsRUFDdkJDLGNBQWlDLEVBQ2pDQyxjQUFpQyxFQUNqQ0MsWUFBc0MsRUFDdENDLFlBQTZCLEVBQzdCQyxxQkFBOEIsRUFDOUJDLG9CQUE2QixFQUM3QkMsd0JBQWtEO0lBRWxELE1BQU1DLGNBQXdDLEVBQUU7SUFDaEQsT0FBT0MsNEJBQ0xWLGFBQ0FDLGNBQ0FDLGdCQUNBQyxnQkFDQSxPQUNBQyxjQUNBQyxjQUNBQyx1QkFDQUMsc0JBQ0FFLGFBQ0FEO0FBRUo7QUFFQSxTQUFTRSw0QkFDUFYsV0FBbUIsRUFDbkJDLFlBQXVCLEVBQ3ZCQyxjQUFpQyxFQUNqQ0MsY0FBaUMsRUFDakNRLGlCQUEwQixFQUMxQlAsWUFBc0MsRUFDdENDLFlBQTZCLEVBQzdCQyxxQkFBOEIsRUFDOUJDLG9CQUE2QixFQUM3QkUsV0FBOEIsRUFDOUJELHdCQUFrRDtJQUVsRCwwREFBMEQ7SUFDMUQsTUFBTUkseUJBQXlCVixjQUFjLENBQUMsRUFBRTtJQUNoRCxNQUFNVyx5QkFBeUJWLGNBQWMsQ0FBQyxFQUFFO0lBQ2hELE1BQU1XLHVCQUF1QlYsaUJBQWlCLE9BQU9BLFlBQVksQ0FBQyxFQUFFLEdBQUc7SUFFdkUsSUFBSSxDQUFDTyxtQkFBbUI7UUFDdEIsd0VBQXdFO1FB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OEgsb0JBQW9CbEksYUFBYUksWUFBWSxHQUFHO1lBQUM7WUFBTTtTQUFLO1FBQzFFaUQsYUFBYTZFLG9CQUFvQmxJLGFBQWFxRCxXQUFXLEdBQUc7UUFDNURFLFNBQVN2RCxhQUFhdUQsT0FBTztRQUU3QixrREFBa0Q7UUFDbER2QyxnQkFBZ0JpSDtRQUVoQmxJLGFBQWFDLGFBQWFELFdBQVc7SUFDdkM7QUFDRjtBQUVBLE1BQU1xSSxXQUFXQztBQThCakIsOEVBQThFO0FBQzlFLGdGQUFnRjtBQUNoRiw4RUFBOEU7QUFDOUUsbUVBQW1FO0FBQ25FLFNBQVNSLGNBQWNTLEtBQVU7SUFDL0IsT0FBT0EsU0FBU0EsTUFBTUMsR0FBRyxLQUFLSDtBQUNoQztBQUVBLFNBQVN2QjtJQUNQLElBQUlpQjtJQUNKLElBQUlFO0lBQ0osTUFBTVEsYUFBYSxJQUFJQyxRQUF5QixDQUFDQyxLQUFLQztRQUNwRGIsVUFBVVk7UUFDVlYsU0FBU1c7SUFDWDtJQUNBSCxXQUFXTCxNQUFNLEdBQUc7SUFDcEJLLFdBQVdWLE9BQU8sR0FBRyxDQUFDUTtRQUNwQixJQUFJRSxXQUFXTCxNQUFNLEtBQUssV0FBVztZQUNuQyxNQUFNUyxlQUFxQ0o7WUFDM0NJLGFBQWFULE1BQU0sR0FBRztZQUN0QlMsYUFBYU4sS0FBSyxHQUFHQTtZQUNyQlIsUUFBUVE7UUFDVjtJQUNGO0lBQ0FFLFdBQVdSLE1BQU0sR0FBRyxDQUFDbEM7UUFDbkIsSUFBSTBDLFdBQVdMLE1BQU0sS0FBSyxXQUFXO1lBQ25DLE1BQU1VLGNBQW1DTDtZQUN6Q0ssWUFBWVYsTUFBTSxHQUFHO1lBQ3JCVSxZQUFZQyxNQUFNLEdBQUdoRDtZQUNyQmtDLE9BQU9sQztRQUNUO0lBQ0Y7SUFDQTBDLFdBQVdELEdBQUcsR0FBR0g7SUFDakIsT0FBT0k7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9wcHItbmF2aWdhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBDYWNoZU5vZGVTZWVkRGF0YSxcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIEZsaWdodFNlZ21lbnRQYXRoLFxuICBTZWdtZW50LFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgQ2FjaGVOb2RlLFxuICBDaGlsZFNlZ21lbnRNYXAsXG4gIEhlYWREYXRhLFxuICBMb2FkaW5nTW9kdWxlRGF0YSxcbiAgUmVhZHlDYWNoZU5vZGUsXG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgREVGQVVMVF9TRUdNRU5UX0tFWSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvc2VnbWVudCdcbmltcG9ydCB7IG1hdGNoU2VnbWVudCB9IGZyb20gJy4uL21hdGNoLXNlZ21lbnRzJ1xuaW1wb3J0IHsgY3JlYXRlUm91dGVyQ2FjaGVLZXkgfSBmcm9tICcuL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5J1xuaW1wb3J0IHR5cGUgeyBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi9mZXRjaC1zZXJ2ZXItcmVzcG9uc2UnXG5pbXBvcnQgeyBpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQgfSBmcm9tICcuL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0J1xuaW1wb3J0IHsgRFlOQU1JQ19TVEFMRVRJTUVfTVMgfSBmcm9tICcuL3ByZWZldGNoLWNhY2hlLXV0aWxzJ1xuXG4vLyBUaGlzIGlzIHlldCBhbm90aGVyIHRyZWUgdHlwZSB0aGF0IGlzIHVzZWQgdG8gdHJhY2sgcGVuZGluZyBwcm9taXNlcyB0aGF0XG4vLyBuZWVkIHRvIGJlIGZ1bGZpbGxlZCBvbmNlIHRoZSBkeW5hbWljIGRhdGEgaXMgcmVjZWl2ZWQuIFRoZSB0ZXJtaW5hbCBub2RlcyBvZlxuLy8gdGhpcyB0cmVlIHJlcHJlc2VudCB0aGUgbmV3IENhY2hlIE5vZGUgdHJlZXMgdGhhdCB3ZXJlIGNyZWF0ZWQgZHVyaW5nIHRoaXNcbi8vIHJlcXVlc3QuIFdlIGNhbid0IHVzZSB0aGUgQ2FjaGUgTm9kZSB0cmVlIG9yIFJvdXRlIFN0YXRlIHRyZWUgZGlyZWN0bHlcbi8vIGJlY2F1c2UgdGhvc2UgaW5jbHVkZSByZXVzZWQgbm9kZXMsIHRvby4gVGhpcyB0cmVlIGlzIGRpc2NhcmRlZCBhcyBzb29uIGFzXG4vLyB0aGUgbmF2aWdhdGlvbiByZXNwb25zZSBpcyByZWNlaXZlZC5cbnR5cGUgU1BBTmF2aWdhdGlvblRhc2sgPSB7XG4gIC8vIFRoZSByb3V0ZXIgc3RhdGUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgdHJlZSB0aGF0IHRoaXMgVGFzayByZXByZXNlbnRzLlxuICByb3V0ZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgLy8gVGhlIENhY2hlTm9kZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSB0cmVlIHRoYXQgdGhpcyBUYXNrIHJlcHJlc2VudHMuIElmXG4gIC8vIGBjaGlsZHJlbmAgaXMgbnVsbCAoaS5lLiBpZiB0aGlzIGlzIGEgdGVybWluYWwgdGFzayBub2RlKSwgdGhlbiBgbm9kZWBcbiAgLy8gcmVwcmVzZW50cyBhIGJyYW5kIG5ldyBDYWNoZSBOb2RlIHRyZWUsIHdoaWNoIHdheSBvciBtYXkgbm90IG5lZWQgdG8gYmVcbiAgLy8gZmlsbGVkIHdpdGggZHluYW1pYyBkYXRhIGZyb20gdGhlIHNlcnZlci5cbiAgbm9kZTogQ2FjaGVOb2RlIHwgbnVsbFxuICAvLyBUaGUgdHJlZSBzZW50IHRvIHRoZSBzZXJ2ZXIgZHVyaW5nIHRoZSBkeW5hbWljIHJlcXVlc3QuIFRoaXMgaXMgdGhlXG4gIC8vIHNhbWUgYXMgYHJvdXRlYCwgZXhjZXB0IHdpdGggdGhlIGByZWZldGNoYCBtYXJrZXIgc2V0IG9uIGR5bmFtaWMgc2VnbWVudHMuXG4gIC8vIElmIGFsbCB0aGUgc2VnbWVudHMgYXJlIHN0YXRpYywgdGhlbiB0aGlzIHdpbGwgYmUgbnVsbCwgYW5kIG5vIHNlcnZlclxuICAvLyByZXF1ZXN0IGlzIHJlcXVpcmVkLlxuICBkeW5hbWljUmVxdWVzdFRyZWU6IEZsaWdodFJvdXRlclN0YXRlIHwgbnVsbFxuICBjaGlsZHJlbjogTWFwPHN0cmluZywgU1BBTmF2aWdhdGlvblRhc2s+IHwgbnVsbFxufVxuXG4vLyBBIHNwZWNpYWwgdHlwZSB1c2VkIHRvIGJhaWwgb3V0IGFuZCB0cmlnZ2VyIGEgZnVsbC1wYWdlIG5hdmlnYXRpb24uXG50eXBlIE1QQU5hdmlnYXRpb25UYXNrID0ge1xuICAvLyBNUEEgdGFza3MgYXJlIGRpc3Rpbmd1aXNlZCBmcm9tIFNQQSB0YXNrcyBieSBoYXZpbmcgYSBudWxsIGByb3V0ZWAuXG4gIHJvdXRlOiBudWxsXG4gIG5vZGU6IG51bGxcbiAgZHluYW1pY1JlcXVlc3RUcmVlOiBudWxsXG4gIGNoaWxkcmVuOiBudWxsXG59XG5cbmNvbnN0IE1QQV9OQVZJR0FUSU9OX1RBU0s6IE1QQU5hdmlnYXRpb25UYXNrID0ge1xuICByb3V0ZTogbnVsbCxcbiAgbm9kZTogbnVsbCxcbiAgZHluYW1pY1JlcXVlc3RUcmVlOiBudWxsLFxuICBjaGlsZHJlbjogbnVsbCxcbn1cblxuZXhwb3J0IHR5cGUgVGFzayA9IFNQQU5hdmlnYXRpb25UYXNrIHwgTVBBTmF2aWdhdGlvblRhc2tcblxuLy8gQ3JlYXRlcyBhIG5ldyBDYWNoZSBOb2RlIHRyZWUgKGkuZS4gY29weS1vbi13cml0ZSkgdGhhdCByZXByZXNlbnRzIHRoZVxuLy8gb3B0aW1pc3RpYyByZXN1bHQgb2YgYSBuYXZpZ2F0aW9uLCB1c2luZyBib3RoIHRoZSBjdXJyZW50IENhY2hlIE5vZGUgdHJlZSBhbmRcbi8vIGRhdGEgdGhhdCB3YXMgcHJlZmV0Y2hlZCBwcmlvciB0byBuYXZpZ2F0aW9uLlxuLy9cbi8vIEF0IHRoZSBtb21lbnQgd2UgY2FsbCB0aGlzIGZ1bmN0aW9uLCB3ZSBoYXZlbid0IHlldCByZWNlaXZlZCB0aGUgbmF2aWdhdGlvblxuLy8gcmVzcG9uc2UgZnJvbSB0aGUgc2VydmVyLiBJdCBjb3VsZCBzZW5kIGJhY2sgc29tZXRoaW5nIGNvbXBsZXRlbHkgZGlmZmVyZW50XG4vLyBmcm9tIHRoZSB0cmVlIHRoYXQgd2FzIHByZWZldGNoZWQg4oCUIGR1ZSB0byByZXdyaXRlcywgZGVmYXVsdCByb3V0ZXMsIHBhcmFsbGVsXG4vLyByb3V0ZXMsIGV0Yy5cbi8vXG4vLyBCdXQgaW4gbW9zdCBjYXNlcywgaXQgd2lsbCByZXR1cm4gdGhlIHNhbWUgdHJlZSB0aGF0IHdlIHByZWZldGNoZWQsIGp1c3Qgd2l0aFxuLy8gdGhlIGR5bmFtaWMgaG9sZXMgZmlsbGVkIGluLiBTbyB3ZSBvcHRpbWlzdGljYWxseSBhc3N1bWUgdGhpcyB3aWxsIGhhcHBlbixcbi8vIGFuZCBhY2NlcHQgdGhhdCB0aGUgcmVhbCByZXN1bHQgY291bGQgYmUgYXJiaXRyYXJpbHkgZGlmZmVyZW50LlxuLy9cbi8vIFdlJ2xsIHJldXNlIGFueXRoaW5nIHRoYXQgd2FzIGFscmVhZHkgaW4gdGhlIHByZXZpb3VzIHRyZWUsIHNpbmNlIHRoYXQncyB3aGF0XG4vLyB0aGUgc2VydmVyIGRvZXMuXG4vL1xuLy8gTmV3IHNlZ21lbnRzIChvbmVzIHRoYXQgZG9uJ3QgYXBwZWFyIGluIHRoZSBvbGQgdHJlZSkgYXJlIGFzc2lnbmVkIGFuXG4vLyB1bnJlc29sdmVkIHByb21pc2UuIFRoZSBkYXRhIGZvciB0aGVzZSBwcm9taXNlcyB3aWxsIGJlIGZ1bGZpbGxlZCBsYXRlciwgd2hlblxuLy8gdGhlIG5hdmlnYXRpb24gcmVzcG9uc2UgaXMgcmVjZWl2ZWQuXG4vL1xuLy8gVGhlIHRyZWUgY2FuIGJlIHJlbmRlcmVkIGltbWVkaWF0ZWx5IGFmdGVyIGl0IGlzIGNyZWF0ZWQgKHRoYXQncyB3aHkgdGhpcyBpc1xuLy8gYSBzeW5jaHJvbm91cyBmdW5jdGlvbikuIEFueSBuZXcgdHJlZXMgdGhhdCBkbyBub3QgaGF2ZSBwcmVmZXRjaCBkYXRhIHdpbGxcbi8vIHN1c3BlbmQgZHVyaW5nIHJlbmRlcmluZywgdW50aWwgdGhlIGR5bmFtaWMgZGF0YSBzdHJlYW1zIGluLlxuLy9cbi8vIFJldHVybnMgYSBUYXNrIG9iamVjdCwgd2hpY2ggY29udGFpbnMgYm90aCB0aGUgdXBkYXRlZCBDYWNoZSBOb2RlIGFuZCBhIHBhdGhcbi8vIHRvIHRoZSBwZW5kaW5nIHN1YnRyZWVzIHRoYXQgbmVlZCB0byBiZSByZXNvbHZlZCBieSB0aGUgbmF2aWdhdGlvbiByZXNwb25zZS5cbi8vXG4vLyBBIHJldHVybiB2YWx1ZSBvZiBgbnVsbGAgbWVhbnMgdGhlcmUgd2VyZSBubyBjaGFuZ2VzLCBhbmQgdGhlIHByZXZpb3VzIHRyZWVcbi8vIGNhbiBiZSByZXVzZWQgd2l0aG91dCBpbml0aWF0aW5nIGEgc2VydmVyIHJlcXVlc3QuXG5leHBvcnQgZnVuY3Rpb24gc3RhcnRQUFJOYXZpZ2F0aW9uKFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICBvbGRDYWNoZU5vZGU6IENhY2hlTm9kZSxcbiAgb2xkUm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBuZXdSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHByZWZldGNoRGF0YTogQ2FjaGVOb2RlU2VlZERhdGEgfCBudWxsLFxuICBwcmVmZXRjaEhlYWQ6IEhlYWREYXRhIHwgbnVsbCxcbiAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsOiBib29sZWFuLFxuICBpc1NhbWVQYWdlTmF2aWdhdGlvbjogYm9vbGVhbixcbiAgc2Nyb2xsYWJsZVNlZ21lbnRzUmVzdWx0OiBBcnJheTxGbGlnaHRTZWdtZW50UGF0aD5cbik6IFRhc2sgfCBudWxsIHtcbiAgY29uc3Qgc2VnbWVudFBhdGg6IEFycmF5PEZsaWdodFNlZ21lbnRQYXRoPiA9IFtdXG4gIHJldHVybiB1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24oXG4gICAgbmF2aWdhdGVkQXQsXG4gICAgb2xkQ2FjaGVOb2RlLFxuICAgIG9sZFJvdXRlclN0YXRlLFxuICAgIG5ld1JvdXRlclN0YXRlLFxuICAgIGZhbHNlLFxuICAgIHByZWZldGNoRGF0YSxcbiAgICBwcmVmZXRjaEhlYWQsXG4gICAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsLFxuICAgIGlzU2FtZVBhZ2VOYXZpZ2F0aW9uLFxuICAgIHNlZ21lbnRQYXRoLFxuICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICApXG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNhY2hlTm9kZU9uTmF2aWdhdGlvbihcbiAgbmF2aWdhdGVkQXQ6IG51bWJlcixcbiAgb2xkQ2FjaGVOb2RlOiBDYWNoZU5vZGUsXG4gIG9sZFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgbmV3Um91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBkaWRGaW5kUm9vdExheW91dDogYm9vbGVhbixcbiAgcHJlZmV0Y2hEYXRhOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGwsXG4gIHByZWZldGNoSGVhZDogSGVhZERhdGEgfCBudWxsLFxuICBpc1ByZWZldGNoSGVhZFBhcnRpYWw6IGJvb2xlYW4sXG4gIGlzU2FtZVBhZ2VOYXZpZ2F0aW9uOiBib29sZWFuLFxuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGgsXG4gIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdDogQXJyYXk8RmxpZ2h0U2VnbWVudFBhdGg+XG4pOiBUYXNrIHwgbnVsbCB7XG4gIC8vIERpZmYgdGhlIG9sZCBhbmQgbmV3IHRyZWVzIHRvIHJldXNlIHRoZSBzaGFyZWQgbGF5b3V0cy5cbiAgY29uc3Qgb2xkUm91dGVyU3RhdGVDaGlsZHJlbiA9IG9sZFJvdXRlclN0YXRlWzFdXG4gIGNvbnN0IG5ld1JvdXRlclN0YXRlQ2hpbGRyZW4gPSBuZXdSb3V0ZXJTdGF0ZVsxXVxuICBjb25zdCBwcmVmZXRjaERhdGFDaGlsZHJlbiA9IHByZWZldGNoRGF0YSAhPT0gbnVsbCA/IHByZWZldGNoRGF0YVsyXSA6IG51bGxcblxuICBpZiAoIWRpZEZpbmRSb290TGF5b3V0KSB7XG4gICAgLy8gV2UncmUgY3VycmVudGx5IHRyYXZlcnNpbmcgdGhlIHBhcnQgb2YgdGhlIHRyZWUgdGhhdCB3YXMgYWxzbyBwYXJ0IG9mXG4gICAgLy8gdGhlIHByZXZpb3VzIHJvdXRlLiBJZiB3ZSBkaXNjb3ZlciBhIHJvb3QgbGF5b3V0LCB0aGVuIHdlIGRvbid0IG5lZWQgdG9cbiAgICAvLyB0cmlnZ2VyIGFuIE1QQSBuYXZpZ2F0aW9uLiBTZWUgYmVnaW5SZW5kZXJpbmdOZXdSb3V0ZVRyZWUgZm9yIGNvbnRleHQuXG4gICAgY29uc3QgaXNSb290TGF5b3V0ID0gbmV3Um91dGVyU3RhdGVbNF0gPT09IHRydWVcbiAgICBpZiAoaXNSb290TGF5b3V0KSB7XG4gICAgICAvLyBGb3VuZCBhIG1hdGNoaW5nIHJvb3QgbGF5b3V0LlxuICAgICAgZGlkRmluZFJvb3RMYXlvdXQgPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb2xkUGFyYWxsZWxSb3V0ZXMgPSBvbGRDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXNcblxuICAvLyBDbG9uZSB0aGUgY3VycmVudCBzZXQgb2Ygc2VnbWVudCBjaGlsZHJlbiwgZXZlbiBpZiB0aGV5IGFyZW4ndCBhY3RpdmUgaW5cbiAgLy8gdGhlIG5ldyB0cmVlLlxuICAvLyBUT0RPOiBXZSBjdXJyZW50bHkgcmV0YWluIGFsbCB0aGUgaW5hY3RpdmUgc2VnbWVudHMgaW5kZWZpbml0ZWx5LCB1bnRpbFxuICAvLyB0aGVyZSdzIGFuIGV4cGxpY2l0IHJlZnJlc2gsIG9yIGEgcGFyZW50IGxheW91dCBpcyBsYXppbHkgcmVmcmVzaGVkLiBXZVxuICAvLyByZWx5IG9uIHRoaXMgZm9yIHBvcHN0YXRlIG5hdmlnYXRpb25zLCB3aGljaCB1cGRhdGUgdGhlIFJvdXRlciBTdGF0ZSBUcmVlXG4gIC8vIGJ1dCBkbyBub3QgZWFnZXJseSBwZXJmb3JtIGEgZGF0YSBmZXRjaCwgYmVjYXVzZSB0aGV5IGV4cGVjdCB0aGUgc2VnbWVudFxuICAvLyBkYXRhIHRvIGFscmVhZHkgYmUgaW4gdGhlIENhY2hlIE5vZGUgdHJlZS4gRm9yIGhpZ2hseSBzdGF0aWMgc2l0ZXMgdGhhdFxuICAvLyBhcmUgbW9zdGx5IHJlYWQtb25seSwgdGhpcyBtYXkgaGFwcGVuIG9ubHkgcmFyZWx5LCBjYXVzaW5nIG1lbW9yeSB0b1xuICAvLyBsZWFrLiBXZSBzaG91bGQgZmlndXJlIG91dCBhIGJldHRlciBtb2RlbCBmb3IgdGhlIGxpZmV0aW1lIG9mIGluYWN0aXZlXG4gIC8vIHNlZ21lbnRzLCBzbyB3ZSBjYW4gbWFpbnRhaW4gaW5zdGFudCBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbnMgd2l0aG91dFxuICAvLyBsZWFraW5nIG1lbW9yeSBpbmRlZmluaXRlbHkuXG4gIGNvbnN0IHByZWZldGNoUGFyYWxsZWxSb3V0ZXMgPSBuZXcgTWFwKG9sZFBhcmFsbGVsUm91dGVzKVxuXG4gIC8vIEFzIHdlIGRpZmYgdGhlIHRyZWVzLCB3ZSBtYXkgc29tZXRpbWVzIG1vZGlmeSAoY29weS1vbi13cml0ZSwgbm90IG11dGF0ZSlcbiAgLy8gdGhlIFJvdXRlIFRyZWUgdGhhdCB3YXMgcmV0dXJuZWQgYnkgdGhlIHNlcnZlciDigJQgZm9yIGV4YW1wbGUsIGluIHRoZSBjYXNlXG4gIC8vIG9mIGRlZmF1bHQgcGFyYWxsZWwgcm91dGVzLCB3ZSBwcmVzZXJ2ZSB0aGUgY3VycmVudGx5IGFjdGl2ZSBzZWdtZW50LiBUb1xuICAvLyBhdm9pZCBtdXRhdGluZyB0aGUgb3JpZ2luYWwgdHJlZSwgd2UgY2xvbmUgdGhlIHJvdXRlciBzdGF0ZSBjaGlsZHJlbiBhbG9uZ1xuICAvLyB0aGUgcmV0dXJuIHBhdGguXG4gIGxldCBwYXRjaGVkUm91dGVyU3RhdGVDaGlsZHJlbjoge1xuICAgIFtwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmddOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICB9ID0ge31cbiAgbGV0IHRhc2tDaGlsZHJlbiA9IG51bGxcblxuICAvLyBNb3N0IG5hdmlnYXRpb25zIHJlcXVpcmUgYSByZXF1ZXN0IHRvIGZldGNoIGFkZGl0aW9uYWwgZGF0YSBmcm9tIHRoZVxuICAvLyBzZXJ2ZXIsIGVpdGhlciBiZWNhdXNlIHRoZSBkYXRhIHdhcyBub3QgYWxyZWFkeSBwcmVmZXRjaGVkLCBvciBiZWNhdXNlIHRoZVxuICAvLyB0YXJnZXQgcm91dGUgY29udGFpbnMgZHluYW1pYyBkYXRhIHRoYXQgY2Fubm90IGJlIHByZWZldGNoZWQuXG4gIC8vXG4gIC8vIEhvd2V2ZXIsIGlmIHRoZSB0YXJnZXQgcm91dGUgaXMgZnVsbHkgc3RhdGljLCBhbmQgaXQncyBhbHJlYWR5IGNvbXBsZXRlbHlcbiAgLy8gbG9hZGVkIGludG8gdGhlIHNlZ21lbnQgY2FjaGUsIHRoZW4gd2UgY2FuIHNraXAgdGhlIHNlcnZlciByZXF1ZXN0LlxuICAvL1xuICAvLyBUaGlzIHN0YXJ0cyBvZmYgYXMgYGZhbHNlYCwgYW5kIGlzIHNldCB0byBgdHJ1ZWAgaWYgYW55IG9mIHRoZSBjaGlsZFxuICAvLyByb3V0ZXMgcmVxdWlyZXMgYSBkeW5hbWljIHJlcXVlc3QuXG4gIGxldCBuZWVkc0R5bmFtaWNSZXF1ZXN0ID0gZmFsc2VcbiAgLy8gQXMgd2UgdHJhdmVyc2UgdGhlIGNoaWxkcmVuLCB3ZSdsbCBjb25zdHJ1Y3QgYSBGbGlnaHRSb3V0ZXJTdGF0ZSB0aGF0IGNhblxuICAvLyBiZSBzZW50IHRvIHRoZSBzZXJ2ZXIgdG8gcmVxdWVzdCB0aGUgZHluYW1pYyBkYXRhLiBJZiBpdCB0dXJucyBvdXQgdGhhdFxuICAvLyBub3RoaW5nIGluIHRoZSBzdWJ0cmVlIGlzIGR5bmFtaWMgKGkuZS4gbmVlZHNEeW5hbWljUmVxdWVzdCBpcyBmYWxzZSBhdCB0aGVcbiAgLy8gZW5kKSwgdGhlbiB0aGlzIHdpbGwgYmUgZGlzY2FyZGVkLlxuICAvLyBUT0RPOiBXZSBjYW4gcHJvYmFibHkgb3B0aW1pemUgdGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEgc3RydWN0dXJlIHRvIG9ubHlcbiAgLy8gaW5jbHVkZSBwYXRocyB0aGF0IGFyZSBkeW5hbWljLiBJbnN0ZWFkIG9mIHJldXNpbmcgdGhlXG4gIC8vIEZsaWdodFJvdXRlclN0YXRlIHR5cGUuXG4gIGxldCBkeW5hbWljUmVxdWVzdFRyZWVDaGlsZHJlbjoge1xuICAgIFtwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmddOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICB9ID0ge31cblxuICBmb3IgKGxldCBwYXJhbGxlbFJvdXRlS2V5IGluIG5ld1JvdXRlclN0YXRlQ2hpbGRyZW4pIHtcbiAgICBjb25zdCBuZXdSb3V0ZXJTdGF0ZUNoaWxkOiBGbGlnaHRSb3V0ZXJTdGF0ZSA9XG4gICAgICBuZXdSb3V0ZXJTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldXG4gICAgY29uc3Qgb2xkUm91dGVyU3RhdGVDaGlsZDogRmxpZ2h0Um91dGVyU3RhdGUgfCB2b2lkID1cbiAgICAgIG9sZFJvdXRlclN0YXRlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICBjb25zdCBvbGRTZWdtZW50TWFwQ2hpbGQgPSBvbGRQYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSlcbiAgICBjb25zdCBwcmVmZXRjaERhdGFDaGlsZDogQ2FjaGVOb2RlU2VlZERhdGEgfCB2b2lkIHwgbnVsbCA9XG4gICAgICBwcmVmZXRjaERhdGFDaGlsZHJlbiAhPT0gbnVsbFxuICAgICAgICA/IHByZWZldGNoRGF0YUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldXG4gICAgICAgIDogbnVsbFxuXG4gICAgY29uc3QgbmV3U2VnbWVudENoaWxkID0gbmV3Um91dGVyU3RhdGVDaGlsZFswXVxuICAgIGNvbnN0IG5ld1NlZ21lbnRQYXRoQ2hpbGQgPSBzZWdtZW50UGF0aC5jb25jYXQoW1xuICAgICAgcGFyYWxsZWxSb3V0ZUtleSxcbiAgICAgIG5ld1NlZ21lbnRDaGlsZCxcbiAgICBdKVxuICAgIGNvbnN0IG5ld1NlZ21lbnRLZXlDaGlsZCA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KG5ld1NlZ21lbnRDaGlsZClcblxuICAgIGNvbnN0IG9sZFNlZ21lbnRDaGlsZCA9XG4gICAgICBvbGRSb3V0ZXJTdGF0ZUNoaWxkICE9PSB1bmRlZmluZWQgPyBvbGRSb3V0ZXJTdGF0ZUNoaWxkWzBdIDogdW5kZWZpbmVkXG5cbiAgICBjb25zdCBvbGRDYWNoZU5vZGVDaGlsZCA9XG4gICAgICBvbGRTZWdtZW50TWFwQ2hpbGQgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IG9sZFNlZ21lbnRNYXBDaGlsZC5nZXQobmV3U2VnbWVudEtleUNoaWxkKVxuICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgbGV0IHRhc2tDaGlsZDogVGFzayB8IG51bGxcbiAgICBpZiAobmV3U2VnbWVudENoaWxkID09PSBERUZBVUxUX1NFR01FTlRfS0VZKSB7XG4gICAgICAvLyBUaGlzIGlzIGFub3RoZXIga2luZCBvZiBsZWFmIHNlZ21lbnQg4oCUIGEgZGVmYXVsdCByb3V0ZS5cbiAgICAgIC8vXG4gICAgICAvLyBEZWZhdWx0IHJvdXRlcyBoYXZlIHNwZWNpYWwgYmVoYXZpb3IuIFdoZW4gdGhlcmUncyBubyBtYXRjaGluZyBzZWdtZW50XG4gICAgICAvLyBmb3IgYSBwYXJhbGxlbCByb3V0ZSwgTmV4dC5qcyBwcmVzZXJ2ZXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgc2VnbWVudFxuICAgICAgLy8gZHVyaW5nIGEgY2xpZW50IG5hdmlnYXRpb24g4oCUIGJ1dCBub3QgZm9yIGluaXRpYWwgcmVuZGVyLiBUaGUgc2VydmVyXG4gICAgICAvLyBsZWF2ZXMgaXQgdG8gdGhlIGNsaWVudCB0byBhY2NvdW50IGZvciB0aGlzLiBTbyB3ZSBuZWVkIHRvIGhhbmRsZVxuICAgICAgLy8gaXQgaGVyZS5cbiAgICAgIGlmIChvbGRSb3V0ZXJTdGF0ZUNoaWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gUmV1c2UgdGhlIGV4aXN0aW5nIFJvdXRlciBTdGF0ZSBmb3IgdGhpcyBzZWdtZW50LiBXZSBzcGF3biBhIFwidGFza1wiXG4gICAgICAgIC8vIGp1c3QgdG8ga2VlcCB0cmFjayBvZiB0aGUgdXBkYXRlZCByb3V0ZXIgc3RhdGU7IHVubGlrZSBtb3N0LCBpdCdzXG4gICAgICAgIC8vIGFscmVhZHkgZnVsZmlsbGVkIGFuZCB3b24ndCBiZSBhZmZlY3RlZCBieSB0aGUgZHluYW1pYyByZXNwb25zZS5cbiAgICAgICAgdGFza0NoaWxkID0gc3Bhd25SZXVzZWRUYXNrKG9sZFJvdXRlclN0YXRlQ2hpbGQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGVyZSdzIG5vIGN1cnJlbnRseSBhY3RpdmUgc2VnbWVudC4gU3dpdGNoIHRvIHRoZSBcImNyZWF0ZVwiIHBhdGguXG4gICAgICAgIHRhc2tDaGlsZCA9IGJlZ2luUmVuZGVyaW5nTmV3Um91dGVUcmVlKFxuICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgIG9sZFJvdXRlclN0YXRlQ2hpbGQsXG4gICAgICAgICAgbmV3Um91dGVyU3RhdGVDaGlsZCxcbiAgICAgICAgICBvbGRDYWNoZU5vZGVDaGlsZCxcbiAgICAgICAgICBkaWRGaW5kUm9vdExheW91dCxcbiAgICAgICAgICBwcmVmZXRjaERhdGFDaGlsZCAhPT0gdW5kZWZpbmVkID8gcHJlZmV0Y2hEYXRhQ2hpbGQgOiBudWxsLFxuICAgICAgICAgIHByZWZldGNoSGVhZCxcbiAgICAgICAgICBpc1ByZWZldGNoSGVhZFBhcnRpYWwsXG4gICAgICAgICAgbmV3U2VnbWVudFBhdGhDaGlsZCxcbiAgICAgICAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHRcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBpc1NhbWVQYWdlTmF2aWdhdGlvbiAmJlxuICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhIHBhZ2Ugc2VnbWVudC5cbiAgICAgIC8vIFRPRE86IFdlJ3JlIG5vdCBjb25zaXN0ZW50IGFib3V0IGhvdyB3ZSBkbyB0aGlzIGNoZWNrLiBTb21lIHBsYWNlc1xuICAgICAgLy8gY2hlY2sgaWYgdGhlIHNlZ21lbnQgc3RhcnRzIHdpdGggUEFHRV9TRUdNRU5UX0tFWSwgYnV0IG1vc3Qgc2VlbSB0b1xuICAgICAgLy8gY2hlY2sgaWYgdGhlcmUgYW55IGFueSBjaGlsZHJlbiwgd2hpY2ggaXMgd2h5IEknbSBkb2luZyBpdCBoZXJlLiBXZVxuICAgICAgLy8gc2hvdWxkIHByb2JhYmx5IGVuY29kZSBhbiBlbXB0eSBjaGlsZHJlbiBzZXQgYXMgYG51bGxgIHRob3VnaC4gRWl0aGVyXG4gICAgICAvLyB3YXksIHdlIHNob3VsZCB1cGRhdGUgYWxsIHRoZSBjaGVja3MgdG8gYmUgY29uc2lzdGVudC5cbiAgICAgIE9iamVjdC5rZXlzKG5ld1JvdXRlclN0YXRlQ2hpbGRbMV0pLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgLy8gV2Ugc3BlY2lhbCBjYXNlIG5hdmlnYXRpb25zIHRvIHRoZSBleGFjdCBzYW1lIFVSTCBhcyB0aGUgY3VycmVudFxuICAgICAgLy8gbG9jYXRpb24uIEl0J3MgYSBjb21tb24gVUkgcGF0dGVybiBmb3IgYXBwcyB0byByZWZyZXNoIHdoZW4geW91IGNsaWNrIGFcbiAgICAgIC8vIGxpbmsgdG8gdGhlIGN1cnJlbnQgcGFnZS4gU28gd2hlbiB0aGlzIGhhcHBlbnMsIHdlIHJlZnJlc2ggdGhlIGR5bmFtaWNcbiAgICAgIC8vIGRhdGEgaW4gdGhlIHBhZ2Ugc2VnbWVudHMuXG4gICAgICAvL1xuICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgYXBwbHkgaWYgdGhlIGFueSBwYXJ0IG9mIHRoZSBoYXNoIG9yIHNlYXJjaFxuICAgICAgLy8gcXVlcnkgaGFzIGNoYW5nZWQuIFRoaXMgbWlnaHQgZmVlbCBhIGJpdCB3ZWlyZCBidXQgaXQgbWFrZXMgbW9yZSBzZW5zZVxuICAgICAgLy8gd2hlbiB5b3UgY29uc2lkZXIgdGhhdCB0aGUgd2F5IHRvIHRyaWdnZXIgdGhpcyBiZWhhdmlvciBpcyB0byBjbGlja1xuICAgICAgLy8gdGhlIHNhbWUgbGluayBtdWx0aXBsZSB0aW1lcy5cbiAgICAgIC8vXG4gICAgICAvLyBUT0RPOiBXZSBzaG91bGQgcHJvYmFibHkgcmVmcmVzaCB0aGUgKmVudGlyZSogcm91dGUgd2hlbiB0aGlzIGNhc2VcbiAgICAgIC8vIG9jY3Vycywgbm90IGp1c3QgdGhlIHBhZ2Ugc2VnbWVudHMuIEVzc2VudGlhbGx5IHRyZWF0aW5nIGl0IHRoZSBzYW1lIGFzXG4gICAgICAvLyBhIHJlZnJlc2goKSB0cmlnZ2VyZWQgYnkgYW4gYWN0aW9uLCB3aGljaCBpcyB0aGUgbW9yZSBleHBsaWNpdCB3YXkgb2ZcbiAgICAgIC8vIG1vZGVsaW5nIHRoZSBVSSBwYXR0ZXJuIGRlc2NyaWJlZCBhYm92ZS5cbiAgICAgIC8vXG4gICAgICAvLyBBbHNvIG5vdGUgdGhhdCB0aGlzIG9ubHkgcmVmcmVzaGVzIHRoZSBkeW5hbWljIGRhdGEsIG5vdCBzdGF0aWMvXG4gICAgICAvLyBjYWNoZWQgZGF0YS4gSWYgdGhlIHBhZ2Ugc2VnbWVudCBpcyBmdWxseSBzdGF0aWMgYW5kIHByZWZldGNoZWQsIHRoZVxuICAgICAgLy8gcmVxdWVzdCBpcyBza2lwcGVkLiAoVGhpcyBpcyBhbHNvIGhvdyByZWZyZXNoKCkgd29ya3MuKVxuICAgICAgdGFza0NoaWxkID0gYmVnaW5SZW5kZXJpbmdOZXdSb3V0ZVRyZWUoXG4gICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICBvbGRSb3V0ZXJTdGF0ZUNoaWxkLFxuICAgICAgICBuZXdSb3V0ZXJTdGF0ZUNoaWxkLFxuICAgICAgICBvbGRDYWNoZU5vZGVDaGlsZCxcbiAgICAgICAgZGlkRmluZFJvb3RMYXlvdXQsXG4gICAgICAgIHByZWZldGNoRGF0YUNoaWxkICE9PSB1bmRlZmluZWQgPyBwcmVmZXRjaERhdGFDaGlsZCA6IG51bGwsXG4gICAgICAgIHByZWZldGNoSGVhZCxcbiAgICAgICAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsLFxuICAgICAgICBuZXdTZWdtZW50UGF0aENoaWxkLFxuICAgICAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHRcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgb2xkUm91dGVyU3RhdGVDaGlsZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBvbGRTZWdtZW50Q2hpbGQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgbWF0Y2hTZWdtZW50KG5ld1NlZ21lbnRDaGlsZCwgb2xkU2VnbWVudENoaWxkKVxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICBvbGRDYWNoZU5vZGVDaGlsZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIG9sZFJvdXRlclN0YXRlQ2hpbGQgIT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIC8vIFRoaXMgc2VnbWVudCBleGlzdHMgaW4gYm90aCB0aGUgb2xkIGFuZCBuZXcgdHJlZXMuIFJlY3Vyc2l2ZWx5IHVwZGF0ZVxuICAgICAgICAvLyB0aGUgY2hpbGRyZW4uXG4gICAgICAgIHRhc2tDaGlsZCA9IHVwZGF0ZUNhY2hlTm9kZU9uTmF2aWdhdGlvbihcbiAgICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgICAgICBvbGRDYWNoZU5vZGVDaGlsZCxcbiAgICAgICAgICBvbGRSb3V0ZXJTdGF0ZUNoaWxkLFxuICAgICAgICAgIG5ld1JvdXRlclN0YXRlQ2hpbGQsXG4gICAgICAgICAgZGlkRmluZFJvb3RMYXlvdXQsXG4gICAgICAgICAgcHJlZmV0Y2hEYXRhQ2hpbGQsXG4gICAgICAgICAgcHJlZmV0Y2hIZWFkLFxuICAgICAgICAgIGlzUHJlZmV0Y2hIZWFkUGFydGlhbCxcbiAgICAgICAgICBpc1NhbWVQYWdlTmF2aWdhdGlvbixcbiAgICAgICAgICBuZXdTZWdtZW50UGF0aENoaWxkLFxuICAgICAgICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGVyZSdzIG5vIGV4aXN0aW5nIENhY2hlIE5vZGUgZm9yIHRoaXMgc2VnbWVudC4gU3dpdGNoIHRvIHRoZVxuICAgICAgICAvLyBcImNyZWF0ZVwiIHBhdGguXG4gICAgICAgIHRhc2tDaGlsZCA9IGJlZ2luUmVuZGVyaW5nTmV3Um91dGVUcmVlKFxuICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgIG9sZFJvdXRlclN0YXRlQ2hpbGQsXG4gICAgICAgICAgbmV3Um91dGVyU3RhdGVDaGlsZCxcbiAgICAgICAgICBvbGRDYWNoZU5vZGVDaGlsZCxcbiAgICAgICAgICBkaWRGaW5kUm9vdExheW91dCxcbiAgICAgICAgICBwcmVmZXRjaERhdGFDaGlsZCAhPT0gdW5kZWZpbmVkID8gcHJlZmV0Y2hEYXRhQ2hpbGQgOiBudWxsLFxuICAgICAgICAgIHByZWZldGNoSGVhZCxcbiAgICAgICAgICBpc1ByZWZldGNoSGVhZFBhcnRpYWwsXG4gICAgICAgICAgbmV3U2VnbWVudFBhdGhDaGlsZCxcbiAgICAgICAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHRcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGlzIGEgbmV3IHRyZWUuIFN3aXRjaCB0byB0aGUgXCJjcmVhdGVcIiBwYXRoLlxuICAgICAgdGFza0NoaWxkID0gYmVnaW5SZW5kZXJpbmdOZXdSb3V0ZVRyZWUoXG4gICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICBvbGRSb3V0ZXJTdGF0ZUNoaWxkLFxuICAgICAgICBuZXdSb3V0ZXJTdGF0ZUNoaWxkLFxuICAgICAgICBvbGRDYWNoZU5vZGVDaGlsZCxcbiAgICAgICAgZGlkRmluZFJvb3RMYXlvdXQsXG4gICAgICAgIHByZWZldGNoRGF0YUNoaWxkICE9PSB1bmRlZmluZWQgPyBwcmVmZXRjaERhdGFDaGlsZCA6IG51bGwsXG4gICAgICAgIHByZWZldGNoSGVhZCxcbiAgICAgICAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsLFxuICAgICAgICBuZXdTZWdtZW50UGF0aENoaWxkLFxuICAgICAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHRcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAodGFza0NoaWxkICE9PSBudWxsKSB7XG4gICAgICAvLyBSZWN1cnNpdmVseSBwcm9wYWdhdGUgdXAgdGhlIGNoaWxkIHRhc2tzLlxuXG4gICAgICBpZiAodGFza0NoaWxkLnJvdXRlID09PSBudWxsKSB7XG4gICAgICAgIC8vIE9uZSBvZiB0aGUgY2hpbGQgdGFza3MgZGlzY292ZXJlZCBhIGNoYW5nZSB0byB0aGUgcm9vdCBsYXlvdXQuXG4gICAgICAgIC8vIEltbWVkaWF0ZWx5IHVud2luZCBmcm9tIHRoaXMgcmVjdXJzaXZlIHRyYXZlcnNhbC5cbiAgICAgICAgcmV0dXJuIE1QQV9OQVZJR0FUSU9OX1RBU0tcbiAgICAgIH1cblxuICAgICAgaWYgKHRhc2tDaGlsZHJlbiA9PT0gbnVsbCkge1xuICAgICAgICB0YXNrQ2hpbGRyZW4gPSBuZXcgTWFwKClcbiAgICAgIH1cbiAgICAgIHRhc2tDaGlsZHJlbi5zZXQocGFyYWxsZWxSb3V0ZUtleSwgdGFza0NoaWxkKVxuICAgICAgY29uc3QgbmV3Q2FjaGVOb2RlQ2hpbGQgPSB0YXNrQ2hpbGQubm9kZVxuICAgICAgaWYgKG5ld0NhY2hlTm9kZUNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IG5ld1NlZ21lbnRNYXBDaGlsZDogQ2hpbGRTZWdtZW50TWFwID0gbmV3IE1hcChvbGRTZWdtZW50TWFwQ2hpbGQpXG4gICAgICAgIG5ld1NlZ21lbnRNYXBDaGlsZC5zZXQobmV3U2VnbWVudEtleUNoaWxkLCBuZXdDYWNoZU5vZGVDaGlsZClcbiAgICAgICAgcHJlZmV0Y2hQYXJhbGxlbFJvdXRlcy5zZXQocGFyYWxsZWxSb3V0ZUtleSwgbmV3U2VnbWVudE1hcENoaWxkKVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY2hpbGQgdHJlZSdzIHJvdXRlIHN0YXRlIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgcHJlZmV0Y2hlZFxuICAgICAgLy8gcm91dGUgc2VudCBieSB0aGUgc2VydmVyLiBXZSBuZWVkIHRvIGNsb25lIGl0IGFzIHdlIHRyYXZlcnNlIGJhY2sgdXBcbiAgICAgIC8vIHRoZSB0cmVlLlxuICAgICAgY29uc3QgdGFza0NoaWxkUm91dGUgPSB0YXNrQ2hpbGQucm91dGVcbiAgICAgIHBhdGNoZWRSb3V0ZXJTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldID0gdGFza0NoaWxkUm91dGVcblxuICAgICAgY29uc3QgZHluYW1pY1JlcXVlc3RUcmVlQ2hpbGQgPSB0YXNrQ2hpbGQuZHluYW1pY1JlcXVlc3RUcmVlXG4gICAgICBpZiAoZHluYW1pY1JlcXVlc3RUcmVlQ2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgLy8gU29tZXRoaW5nIGluIHRoZSBjaGlsZCB0cmVlIGlzIGR5bmFtaWMuXG4gICAgICAgIG5lZWRzRHluYW1pY1JlcXVlc3QgPSB0cnVlXG4gICAgICAgIGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldID0gZHluYW1pY1JlcXVlc3RUcmVlQ2hpbGRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldID0gdGFza0NoaWxkUm91dGVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIGNoaWxkIGRpZG4ndCBjaGFuZ2UuIFdlIGNhbiB1c2UgdGhlIHByZWZldGNoZWQgcm91dGVyIHN0YXRlLlxuICAgICAgcGF0Y2hlZFJvdXRlclN0YXRlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV0gPSBuZXdSb3V0ZXJTdGF0ZUNoaWxkXG4gICAgICBkeW5hbWljUmVxdWVzdFRyZWVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XSA9IG5ld1JvdXRlclN0YXRlQ2hpbGRcbiAgICB9XG4gIH1cblxuICBpZiAodGFza0NoaWxkcmVuID09PSBudWxsKSB7XG4gICAgLy8gTm8gbmV3IHRhc2tzIHdlcmUgc3Bhd25lZC5cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgbmV3Q2FjaGVOb2RlOiBSZWFkeUNhY2hlTm9kZSA9IHtcbiAgICBsYXp5RGF0YTogbnVsbCxcbiAgICByc2M6IG9sZENhY2hlTm9kZS5yc2MsXG4gICAgLy8gV2UgaW50ZW50aW9uYWxseSBhcmVuJ3QgdXBkYXRpbmcgdGhlIHByZWZldGNoUnNjIGZpZWxkLCBzaW5jZSB0aGlzIG5vZGVcbiAgICAvLyBpcyBhbHJlYWR5IHBhcnQgb2YgdGhlIGN1cnJlbnQgdHJlZSwgYmVjYXVzZSBpdCB3b3VsZCBiZSB3ZWlyZCBmb3JcbiAgICAvLyBwcmVmZXRjaCBkYXRhIHRvIGJlIG5ld2VyIHRoYW4gdGhlIGZpbmFsIGRhdGEuIEl0IHByb2JhYmx5IHdvbid0IGV2ZXIgYmVcbiAgICAvLyBvYnNlcnZhYmxlIGFueXdheSwgYnV0IGl0IGNvdWxkIGhhcHBlbiBpZiB0aGUgc2VnbWVudCBpcyB1bm1vdW50ZWQgdGhlblxuICAgIC8vIG1vdW50ZWQgYWdhaW4sIGJlY2F1c2UgTGF5b3V0Um91dGVyIHdpbGwgbW9tZW50YXJpbHkgc3dpdGNoIHRvIHJlbmRlcmluZ1xuICAgIC8vIHByZWZldGNoUnNjLCB2aWEgdXNlRGVmZXJyZWRWYWx1ZS5cbiAgICBwcmVmZXRjaFJzYzogb2xkQ2FjaGVOb2RlLnByZWZldGNoUnNjLFxuICAgIGhlYWQ6IG9sZENhY2hlTm9kZS5oZWFkLFxuICAgIHByZWZldGNoSGVhZDogb2xkQ2FjaGVOb2RlLnByZWZldGNoSGVhZCxcbiAgICBsb2FkaW5nOiBvbGRDYWNoZU5vZGUubG9hZGluZyxcblxuICAgIC8vIEV2ZXJ5dGhpbmcgaXMgY2xvbmVkIGV4Y2VwdCBmb3IgdGhlIGNoaWxkcmVuLCB3aGljaCB3ZSBjb21wdXRlZCBhYm92ZS5cbiAgICBwYXJhbGxlbFJvdXRlczogcHJlZmV0Y2hQYXJhbGxlbFJvdXRlcyxcblxuICAgIG5hdmlnYXRlZEF0LFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBSZXR1cm4gYSBjbG9uZWQgY29weSBvZiB0aGUgcm91dGVyIHN0YXRlIHdpdGggdXBkYXRlZCBjaGlsZHJlbi5cbiAgICByb3V0ZTogcGF0Y2hSb3V0ZXJTdGF0ZVdpdGhOZXdDaGlsZHJlbihcbiAgICAgIG5ld1JvdXRlclN0YXRlLFxuICAgICAgcGF0Y2hlZFJvdXRlclN0YXRlQ2hpbGRyZW5cbiAgICApLFxuICAgIG5vZGU6IG5ld0NhY2hlTm9kZSxcbiAgICBkeW5hbWljUmVxdWVzdFRyZWU6IG5lZWRzRHluYW1pY1JlcXVlc3RcbiAgICAgID8gcGF0Y2hSb3V0ZXJTdGF0ZVdpdGhOZXdDaGlsZHJlbihcbiAgICAgICAgICBuZXdSb3V0ZXJTdGF0ZSxcbiAgICAgICAgICBkeW5hbWljUmVxdWVzdFRyZWVDaGlsZHJlblxuICAgICAgICApXG4gICAgICA6IG51bGwsXG4gICAgY2hpbGRyZW46IHRhc2tDaGlsZHJlbixcbiAgfVxufVxuXG5mdW5jdGlvbiBiZWdpblJlbmRlcmluZ05ld1JvdXRlVHJlZShcbiAgbmF2aWdhdGVkQXQ6IG51bWJlcixcbiAgb2xkUm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlIHwgdm9pZCxcbiAgbmV3Um91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBleGlzdGluZ0NhY2hlTm9kZTogQ2FjaGVOb2RlIHwgdm9pZCxcbiAgZGlkRmluZFJvb3RMYXlvdXQ6IGJvb2xlYW4sXG4gIHByZWZldGNoRGF0YTogQ2FjaGVOb2RlU2VlZERhdGEgfCBudWxsLFxuICBwb3NzaWJseVBhcnRpYWxQcmVmZXRjaEhlYWQ6IEhlYWREYXRhIHwgbnVsbCxcbiAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsOiBib29sZWFuLFxuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGgsXG4gIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdDogQXJyYXk8RmxpZ2h0U2VnbWVudFBhdGg+XG4pOiBUYXNrIHtcbiAgaWYgKCFkaWRGaW5kUm9vdExheW91dCkge1xuICAgIC8vIFRoZSByb3V0ZSB0cmVlIGNoYW5nZWQgYmVmb3JlIHdlIHJlYWNoZWQgYSBsYXlvdXQuIChUaGUgaGlnaGVzdC1sZXZlbFxuICAgIC8vIGxheW91dCBpbiBhIHJvdXRlIHRyZWUgaXMgcmVmZXJyZWQgdG8gYXMgdGhlIFwicm9vdFwiIGxheW91dC4pIFRoaXMgY291bGRcbiAgICAvLyBtZWFuIHRoYXQgd2UncmUgbmF2aWdhdGluZyBiZXR3ZWVuIHR3byBkaWZmZXJlbnQgcm9vdCBsYXlvdXRzLiBXaGVuIHRoaXNcbiAgICAvLyBoYXBwZW5zLCB3ZSBwZXJmb3JtIGEgZnVsbC1wYWdlIChNUEEtc3R5bGUpIG5hdmlnYXRpb24uXG4gICAgLy9cbiAgICAvLyBIb3dldmVyLCB0aGUgYWxnb3JpdGhtIGZvciBkZWNpZGluZyB3aGVyZSB0byBzdGFydCByZW5kZXJpbmcgYSByb3V0ZVxuICAgIC8vIChpLmUuIHRoZSBvbmUgcGVyZm9ybWVkIGluIG9yZGVyIHRvIHJlYWNoIHRoaXMgZnVuY3Rpb24pIGlzIHN0cmljdGVyXG4gICAgLy8gdGhhbiB0aGUgb25lIHVzZWQgdG8gZGV0ZWN0IGEgY2hhbmdlIGluIHRoZSByb290IGxheW91dC4gU28ganVzdCBiZWNhdXNlXG4gICAgLy8gd2UncmUgcmUtcmVuZGVyaW5nIGEgc2VnbWVudCBvdXRzaWRlIG9mIHRoZSByb290IGxheW91dCBkb2VzIG5vdCBtZWFuIHdlXG4gICAgLy8gc2hvdWxkIHRyaWdnZXIgYSBmdWxsLXBhZ2UgbmF2aWdhdGlvbi5cbiAgICAvL1xuICAgIC8vIFNwZWNpZmljYWxseSwgd2UgaGFuZGxlIGR5bmFtaWMgcGFyYW1ldGVycyBkaWZmZXJlbnRseTogdHdvIHNlZ21lbnRzIGFyZVxuICAgIC8vIGNvbnNpZGVyZWQgdGhlIHNhbWUgZXZlbiBpZiB0aGVpciBwYXJhbWV0ZXIgdmFsdWVzIGFyZSBkaWZmZXJlbnQuXG4gICAgLy9cbiAgICAvLyBSZWZlciB0byBpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQgZm9yIGRldGFpbHMuXG4gICAgLy9cbiAgICAvLyBOb3RlIHRoYXQgd2Ugb25seSBoYXZlIHRvIHBlcmZvcm0gdGhpcyBleHRyYSB0cmF2ZXJzYWwgaWYgd2UgZGlkbid0XG4gICAgLy8gYWxyZWFkeSBkaXNjb3ZlciBhIHJvb3QgbGF5b3V0IGluIHRoZSBwYXJ0IG9mIHRoZSB0cmVlIHRoYXQgaXMgdW5jaGFuZ2VkLlxuICAgIC8vIEluIHRoZSBjb21tb24gY2FzZSwgdGhpcyBicmFuY2ggaXMgc2tpcHBlZCBjb21wbGV0ZWx5LlxuICAgIGlmIChcbiAgICAgIG9sZFJvdXRlclN0YXRlID09PSB1bmRlZmluZWQgfHxcbiAgICAgIGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dChvbGRSb3V0ZXJTdGF0ZSwgbmV3Um91dGVyU3RhdGUpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgcm9vdCBsYXlvdXQgY2hhbmdlZC4gUGVyZm9ybSBhIGZ1bGwtcGFnZSBuYXZpZ2F0aW9uLlxuICAgICAgcmV0dXJuIE1QQV9OQVZJR0FUSU9OX1RBU0tcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZUNhY2hlTm9kZU9uTmF2aWdhdGlvbihcbiAgICBuYXZpZ2F0ZWRBdCxcbiAgICBuZXdSb3V0ZXJTdGF0ZSxcbiAgICBleGlzdGluZ0NhY2hlTm9kZSxcbiAgICBwcmVmZXRjaERhdGEsXG4gICAgcG9zc2libHlQYXJ0aWFsUHJlZmV0Y2hIZWFkLFxuICAgIGlzUHJlZmV0Y2hIZWFkUGFydGlhbCxcbiAgICBzZWdtZW50UGF0aCxcbiAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHRcbiAgKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24oXG4gIG5hdmlnYXRlZEF0OiBudW1iZXIsXG4gIHJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgZXhpc3RpbmdDYWNoZU5vZGU6IENhY2hlTm9kZSB8IHZvaWQsXG4gIHByZWZldGNoRGF0YTogQ2FjaGVOb2RlU2VlZERhdGEgfCBudWxsLFxuICBwb3NzaWJseVBhcnRpYWxQcmVmZXRjaEhlYWQ6IEhlYWREYXRhIHwgbnVsbCxcbiAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsOiBib29sZWFuLFxuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGgsXG4gIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdDogQXJyYXk8RmxpZ2h0U2VnbWVudFBhdGg+XG4pOiBTUEFOYXZpZ2F0aW9uVGFzayB7XG4gIC8vIFNhbWUgdHJhdmVyc2FsIGFzIHVwZGF0ZUNhY2hlTm9kZU5hdmlnYXRpb24sIGJ1dCB3ZSBzd2l0Y2ggdG8gdGhpcyBwYXRoXG4gIC8vIG9uY2Ugd2UgcmVhY2ggdGhlIHBhcnQgb2YgdGhlIHRyZWUgdGhhdCB3YXMgbm90IGluIHRoZSBwcmV2aW91cyByb3V0ZS4gV2VcbiAgLy8gZG9uJ3QgbmVlZCB0byBkaWZmIGFnYWluc3QgdGhlIG9sZCB0cmVlLCB3ZSBqdXN0IG5lZWQgdG8gY3JlYXRlIGEgbmV3IG9uZS5cblxuICAvLyBUaGUgaGVhZCBpcyBhc3NpZ25lZCB0byBldmVyeSBsZWFmIHNlZ21lbnQgZGVsaXZlcmVkIGJ5IHRoZSBzZXJ2ZXIuIEJhc2VkXG4gIC8vIG9uIGNvcnJlc3BvbmRpbmcgbG9naWMgaW4gZmlsbC1sYXp5LWl0ZW1zLXRpbGwtbGVhZi13aXRoLWhlYWQudHNcbiAgY29uc3Qgcm91dGVyU3RhdGVDaGlsZHJlbiA9IHJvdXRlclN0YXRlWzFdXG4gIGNvbnN0IGlzTGVhZlNlZ21lbnQgPSBPYmplY3Qua2V5cyhyb3V0ZXJTdGF0ZUNoaWxkcmVuKS5sZW5ndGggPT09IDBcblxuICAvLyBFdmVuIHdlJ3JlIHJlbmRlcmluZyBpbnNpZGUgdGhlIFwibmV3XCIgcGFydCBvZiB0aGUgdGFyZ2V0IHRyZWUsIHdlIG1heSBoYXZlXG4gIC8vIGEgbG9jYWxseSBjYWNoZWQgc2VnbWVudCB0aGF0IHdlIGNhbiByZXVzZS4gVGhpcyBtYXkgY29tZSBmcm9tIGVpdGhlciAxKVxuICAvLyB0aGUgQ2FjaGVOb2RlIHRyZWUsIHdoaWNoIGxpdmVzIGluIFJlYWN0IHN0YXRlIGFuZCBpcyBwb3B1bGF0ZWQgYnkgcHJldmlvdXNcbiAgLy8gbmF2aWdhdGlvbnM7IG9yIDIpIHRoZSBwcmVmZXRjaCBjYWNoZSwgd2hpY2ggaXMgYSBzZXBhcmF0ZSBjYWNoZSB0aGF0IGlzXG4gIC8vIHBvcHVsYXRlZCBieSBwcmVmZXRjaGVzLlxuICBsZXQgcnNjOiBSZWFjdC5SZWFjdE5vZGVcbiAgbGV0IGxvYWRpbmc6IExvYWRpbmdNb2R1bGVEYXRhIHwgUHJvbWlzZTxMb2FkaW5nTW9kdWxlRGF0YT5cbiAgbGV0IGhlYWQ6IEhlYWREYXRhIHwgbnVsbFxuICBsZXQgY2FjaGVOb2RlTmF2aWdhdGVkQXQ6IG51bWJlclxuICBpZiAoXG4gICAgZXhpc3RpbmdDYWNoZU5vZGUgIT09IHVuZGVmaW5lZCAmJlxuICAgIC8vIERZTkFNSUNfU1RBTEVUSU1FX01TIGRlZmF1bHRzIHRvIDAsIGJ1dCBpdCBjYW4gYmUgaW5jcmVhc2VkIHVzaW5nXG4gICAgLy8gdGhlIGV4cGVyaW1lbnRhbC5zdGFsZVRpbWVzLmR5bmFtaWMgY29uZmlnLiBXaGVuIHNldCwgd2UnbGwgYXZvaWRcbiAgICAvLyByZWZldGNoaW5nIGR5bmFtaWMgZGF0YSBpZiBpdCB3YXMgZmV0Y2hlZCB3aXRoaW4gdGhlIGdpdmVuIHRocmVzaG9sZC5cbiAgICBleGlzdGluZ0NhY2hlTm9kZS5uYXZpZ2F0ZWRBdCArIERZTkFNSUNfU1RBTEVUSU1FX01TID4gbmF2aWdhdGVkQXRcbiAgKSB7XG4gICAgLy8gV2UgaGF2ZSBhbiBleGlzdGluZyBDYWNoZU5vZGUgZm9yIHRoaXMgc2VnbWVudCwgYW5kIGl0J3Mgbm90IHN0YWxlLiBXZVxuICAgIC8vIHNob3VsZCByZXVzZSBpdCByYXRoZXIgdGhhbiByZXF1ZXN0IGEgbmV3IG9uZS5cbiAgICByc2MgPSBleGlzdGluZ0NhY2hlTm9kZS5yc2NcbiAgICBsb2FkaW5nID0gZXhpc3RpbmdDYWNoZU5vZGUubG9hZGluZ1xuICAgIGhlYWQgPSBleGlzdGluZ0NhY2hlTm9kZS5oZWFkXG5cbiAgICAvLyBEb24ndCB1cGRhdGUgdGhlIG5hdmlnYXRlZEF0IHRpbWVzdGFtcCwgc2luY2Ugd2UncmUgcmV1c2luZyBzdGFsZSBkYXRhLlxuICAgIGNhY2hlTm9kZU5hdmlnYXRlZEF0ID0gZXhpc3RpbmdDYWNoZU5vZGUubmF2aWdhdGVkQXRcbiAgfSBlbHNlIGlmIChwcmVmZXRjaERhdGEgIT09IG51bGwpIHtcbiAgICAvLyBUaGVyZSdzIG5vIGV4aXN0aW5nIENhY2hlTm9kZSBmb3IgdGhpcyBzZWdtZW50LCBidXQgd2UgZG8gaGF2ZSBwcmVmZXRjaFxuICAgIC8vIGRhdGEuIElmIHRoZSBwcmVmZXRjaCBkYXRhIGlzIGZ1bGx5IHN0YXRpYyAoaS5lLiBkb2VzIG5vdCBjb250YWluIGFueVxuICAgIC8vIGR5bmFtaWMgaG9sZXMpLCB3ZSBkb24ndCBuZWVkIHRvIHJlcXVlc3QgaXQgZnJvbSB0aGUgc2VydmVyLlxuICAgIHJzYyA9IHByZWZldGNoRGF0YVsxXVxuICAgIGxvYWRpbmcgPSBwcmVmZXRjaERhdGFbM11cbiAgICBoZWFkID0gaXNMZWFmU2VnbWVudCA/IHBvc3NpYmx5UGFydGlhbFByZWZldGNoSGVhZCA6IG51bGxcbiAgICAvLyBFdmVuIHRob3VnaCB3ZSdyZSBhY2Nlc3NpbmcgdGhlIGRhdGEgZnJvbSB0aGUgcHJlZmV0Y2ggY2FjaGUsIHRoaXMgaXNcbiAgICAvLyBjb25jZXB0dWFsbHkgYSBuZXcgc2VnbWVudCwgbm90IGEgcmV1c2VkIG9uZS4gU28gd2Ugc2hvdWxkIHVwZGF0ZSB0aGVcbiAgICAvLyBuYXZpZ2F0ZWRBdCB0aW1lc3RhbXAuXG4gICAgY2FjaGVOb2RlTmF2aWdhdGVkQXQgPSBuYXZpZ2F0ZWRBdFxuICAgIGNvbnN0IGlzUHJlZmV0Y2hSc2NQYXJ0aWFsID0gcHJlZmV0Y2hEYXRhWzRdXG4gICAgaWYgKFxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIHNlZ21lbnQgZGF0YSBpcyBwYXJ0aWFsXG4gICAgICBpc1ByZWZldGNoUnNjUGFydGlhbCB8fFxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGhlYWQgaXMgcGFydGlhbCAob25seSByZWxldmFudCBpZiB0aGlzIGlzIGEgbGVhZiBzZWdtZW50KVxuICAgICAgKGlzUHJlZmV0Y2hIZWFkUGFydGlhbCAmJiBpc0xlYWZTZWdtZW50KVxuICAgICkge1xuICAgICAgLy8gV2Ugb25seSBoYXZlIHBhcnRpYWwgZGF0YSBmcm9tIHRoaXMgc2VnbWVudC4gTGlrZSBtaXNzaW5nIHNlZ21lbnRzLCB3ZVxuICAgICAgLy8gbXVzdCByZXF1ZXN0IHRoZSBmdWxsIGRhdGEgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgcmV0dXJuIHNwYXduUGVuZGluZ1Rhc2soXG4gICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICByb3V0ZXJTdGF0ZSxcbiAgICAgICAgcHJlZmV0Y2hEYXRhLFxuICAgICAgICBwb3NzaWJseVBhcnRpYWxQcmVmZXRjaEhlYWQsXG4gICAgICAgIGlzUHJlZmV0Y2hIZWFkUGFydGlhbCxcbiAgICAgICAgc2VnbWVudFBhdGgsXG4gICAgICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGUgcHJlZmV0Y2ggZGF0YSBpcyBmdWxseSBzdGF0aWMsIHNvIHdlIGNhbiBvbWl0IGl0IGZyb20gdGhlXG4gICAgICAvLyBuYXZpZ2F0aW9uIHJlcXVlc3QuXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFRoZXJlJ3Mgbm8gcHJlZmV0Y2ggZm9yIHRoaXMgc2VnbWVudC4gRXZlcnl0aGluZyBmcm9tIHRoaXMgcG9pbnQgd2lsbCBiZVxuICAgIC8vIHJlcXVlc3RlZCBmcm9tIHRoZSBzZXJ2ZXIsIGV2ZW4gaWYgdGhlcmUgYXJlIHN0YXRpYyBjaGlsZHJlbiBiZWxvdyBpdC5cbiAgICAvLyBDcmVhdGUgYSB0ZXJtaW5hbCB0YXNrIG5vZGUgdGhhdCB3aWxsIGxhdGVyIGJlIGZ1bGZpbGxlZCBieVxuICAgIC8vIHNlcnZlciByZXNwb25zZS5cbiAgICByZXR1cm4gc3Bhd25QZW5kaW5nVGFzayhcbiAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgcm91dGVyU3RhdGUsXG4gICAgICBudWxsLFxuICAgICAgcG9zc2libHlQYXJ0aWFsUHJlZmV0Y2hIZWFkLFxuICAgICAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsLFxuICAgICAgc2VnbWVudFBhdGgsXG4gICAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHRcbiAgICApXG4gIH1cblxuICAvLyBXZSBhbHJlYWR5IGhhdmUgYSBmdWxsIHNlZ21lbnQgd2UgY2FuIHJlbmRlciwgc28gd2UgZG9uJ3QgbmVlZCB0byByZXF1ZXN0IGFcbiAgLy8gbmV3IG9uZSBmcm9tIHRoZSBzZXJ2ZXIuIEtlZXAgdHJhdmVyc2luZyBkb3duIHRoZSB0cmVlIHVudGlsIHdlIHJlYWNoXG4gIC8vIHNvbWV0aGluZyB0aGF0IHJlcXVpcmVzIGEgZHluYW1pYyByZXF1ZXN0LlxuICBjb25zdCBwcmVmZXRjaERhdGFDaGlsZHJlbiA9IHByZWZldGNoRGF0YSAhPT0gbnVsbCA/IHByZWZldGNoRGF0YVsyXSA6IG51bGxcbiAgY29uc3QgdGFza0NoaWxkcmVuID0gbmV3IE1hcCgpXG4gIGNvbnN0IGV4aXN0aW5nQ2FjaGVOb2RlQ2hpbGRyZW4gPVxuICAgIGV4aXN0aW5nQ2FjaGVOb2RlICE9PSB1bmRlZmluZWQgPyBleGlzdGluZ0NhY2hlTm9kZS5wYXJhbGxlbFJvdXRlcyA6IG51bGxcbiAgY29uc3QgY2FjaGVOb2RlQ2hpbGRyZW4gPSBuZXcgTWFwKGV4aXN0aW5nQ2FjaGVOb2RlQ2hpbGRyZW4pXG4gIGxldCBkeW5hbWljUmVxdWVzdFRyZWVDaGlsZHJlbjoge1xuICAgIFtwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmddOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICB9ID0ge31cbiAgbGV0IG5lZWRzRHluYW1pY1JlcXVlc3QgPSBmYWxzZVxuICBpZiAoaXNMZWFmU2VnbWVudCkge1xuICAgIC8vIFRoZSBzZWdtZW50IHBhdGggb2YgZXZlcnkgbGVhZiBzZWdtZW50IChpLmUuIHBhZ2UpIGlzIGNvbGxlY3RlZCBpbnRvXG4gICAgLy8gYSByZXN1bHQgYXJyYXkuIFRoaXMgaXMgdXNlZCBieSB0aGUgTGF5b3V0Um91dGVyIHRvIHNjcm9sbCB0byBlbnN1cmUgdGhhdFxuICAgIC8vIG5ldyBwYWdlcyBhcmUgdmlzaWJsZSBhZnRlciBhIG5hdmlnYXRpb24uXG4gICAgLy8gVE9ETzogV2Ugc2hvdWxkIHVzZSBhIHN0cmluZyB0byByZXByZXNlbnQgdGhlIHNlZ21lbnQgcGF0aCBpbnN0ZWFkIG9mXG4gICAgLy8gYW4gYXJyYXkuIFdlIGFscmVhZHkgdXNlIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgcGF0aCB3aGVuXG4gICAgLy8gYWNjZXNzaW5nIHRoZSBTZWdtZW50IENhY2hlLCBzbyB3ZSBjYW4gdXNlIHRoZSBzYW1lIG9uZS5cbiAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHQucHVzaChzZWdtZW50UGF0aClcbiAgfSBlbHNlIHtcbiAgICBmb3IgKGxldCBwYXJhbGxlbFJvdXRlS2V5IGluIHJvdXRlclN0YXRlQ2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IHJvdXRlclN0YXRlQ2hpbGQ6IEZsaWdodFJvdXRlclN0YXRlID1cbiAgICAgICAgcm91dGVyU3RhdGVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XVxuICAgICAgY29uc3QgcHJlZmV0Y2hEYXRhQ2hpbGQ6IENhY2hlTm9kZVNlZWREYXRhIHwgdm9pZCB8IG51bGwgPVxuICAgICAgICBwcmVmZXRjaERhdGFDaGlsZHJlbiAhPT0gbnVsbFxuICAgICAgICAgID8gcHJlZmV0Y2hEYXRhQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICAgICAgICA6IG51bGxcbiAgICAgIGNvbnN0IGV4aXN0aW5nU2VnbWVudE1hcENoaWxkID1cbiAgICAgICAgZXhpc3RpbmdDYWNoZU5vZGVDaGlsZHJlbiAhPT0gbnVsbFxuICAgICAgICAgID8gZXhpc3RpbmdDYWNoZU5vZGVDaGlsZHJlbi5nZXQocGFyYWxsZWxSb3V0ZUtleSlcbiAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgY29uc3Qgc2VnbWVudENoaWxkID0gcm91dGVyU3RhdGVDaGlsZFswXVxuICAgICAgY29uc3Qgc2VnbWVudFBhdGhDaGlsZCA9IHNlZ21lbnRQYXRoLmNvbmNhdChbXG4gICAgICAgIHBhcmFsbGVsUm91dGVLZXksXG4gICAgICAgIHNlZ21lbnRDaGlsZCxcbiAgICAgIF0pXG4gICAgICBjb25zdCBzZWdtZW50S2V5Q2hpbGQgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50Q2hpbGQpXG5cbiAgICAgIGNvbnN0IGV4aXN0aW5nQ2FjaGVOb2RlQ2hpbGQgPVxuICAgICAgICBleGlzdGluZ1NlZ21lbnRNYXBDaGlsZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBleGlzdGluZ1NlZ21lbnRNYXBDaGlsZC5nZXQoc2VnbWVudEtleUNoaWxkKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAgIGNvbnN0IHRhc2tDaGlsZCA9IGNyZWF0ZUNhY2hlTm9kZU9uTmF2aWdhdGlvbihcbiAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgIHJvdXRlclN0YXRlQ2hpbGQsXG4gICAgICAgIGV4aXN0aW5nQ2FjaGVOb2RlQ2hpbGQsXG4gICAgICAgIHByZWZldGNoRGF0YUNoaWxkLFxuICAgICAgICBwb3NzaWJseVBhcnRpYWxQcmVmZXRjaEhlYWQsXG4gICAgICAgIGlzUHJlZmV0Y2hIZWFkUGFydGlhbCxcbiAgICAgICAgc2VnbWVudFBhdGhDaGlsZCxcbiAgICAgICAgc2Nyb2xsYWJsZVNlZ21lbnRzUmVzdWx0XG4gICAgICApXG4gICAgICB0YXNrQ2hpbGRyZW4uc2V0KHBhcmFsbGVsUm91dGVLZXksIHRhc2tDaGlsZClcbiAgICAgIGNvbnN0IGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkID0gdGFza0NoaWxkLmR5bmFtaWNSZXF1ZXN0VHJlZVxuICAgICAgaWYgKGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIC8vIFNvbWV0aGluZyBpbiB0aGUgY2hpbGQgdHJlZSBpcyBkeW5hbWljLlxuICAgICAgICBuZWVkc0R5bmFtaWNSZXF1ZXN0ID0gdHJ1ZVxuICAgICAgICBkeW5hbWljUmVxdWVzdFRyZWVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XSA9IGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkeW5hbWljUmVxdWVzdFRyZWVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XSA9IHJvdXRlclN0YXRlQ2hpbGRcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5ld0NhY2hlTm9kZUNoaWxkID0gdGFza0NoaWxkLm5vZGVcbiAgICAgIGlmIChuZXdDYWNoZU5vZGVDaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBuZXdTZWdtZW50TWFwQ2hpbGQ6IENoaWxkU2VnbWVudE1hcCA9IG5ldyBNYXAoKVxuICAgICAgICBuZXdTZWdtZW50TWFwQ2hpbGQuc2V0KHNlZ21lbnRLZXlDaGlsZCwgbmV3Q2FjaGVOb2RlQ2hpbGQpXG4gICAgICAgIGNhY2hlTm9kZUNoaWxkcmVuLnNldChwYXJhbGxlbFJvdXRlS2V5LCBuZXdTZWdtZW50TWFwQ2hpbGQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBTaW5jZSB3ZSdyZSBpbnNpZGUgYSBuZXcgcm91dGUgdHJlZSwgdW5saWtlIHRoZVxuICAgIC8vIGB1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb25gIHBhdGgsIHRoZSByb3V0ZXIgc3RhdGUgb24gdGhlIGNoaWxkcmVuXG4gICAgLy8gdGFza3MgaXMgYWx3YXlzIHRoZSBzYW1lIGFzIHRoZSByb3V0ZXIgc3RhdGUgd2UgcGFzcyBpbi4gU28gd2UgZG9uJ3QgbmVlZFxuICAgIC8vIHRvIGNsb25lL21vZGlmeSBpdC5cbiAgICByb3V0ZTogcm91dGVyU3RhdGUsXG4gICAgbm9kZToge1xuICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAvLyBTaW5jZSB0aGlzIHNlZ21lbnQgaXMgYWxyZWFkeSBmdWxsLCB3ZSBkb24ndCBuZWVkIHRvIHVzZSB0aGVcbiAgICAgIC8vIGBwcmVmZXRjaFJzY2AgZmllbGQuXG4gICAgICByc2MsXG4gICAgICBwcmVmZXRjaFJzYzogbnVsbCxcbiAgICAgIGhlYWQsXG4gICAgICBwcmVmZXRjaEhlYWQ6IG51bGwsXG4gICAgICBsb2FkaW5nLFxuICAgICAgcGFyYWxsZWxSb3V0ZXM6IGNhY2hlTm9kZUNoaWxkcmVuLFxuICAgICAgbmF2aWdhdGVkQXQ6IGNhY2hlTm9kZU5hdmlnYXRlZEF0LFxuICAgIH0sXG4gICAgZHluYW1pY1JlcXVlc3RUcmVlOiBuZWVkc0R5bmFtaWNSZXF1ZXN0XG4gICAgICA/IHBhdGNoUm91dGVyU3RhdGVXaXRoTmV3Q2hpbGRyZW4ocm91dGVyU3RhdGUsIGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkcmVuKVxuICAgICAgOiBudWxsLFxuICAgIGNoaWxkcmVuOiB0YXNrQ2hpbGRyZW4sXG4gIH1cbn1cblxuZnVuY3Rpb24gcGF0Y2hSb3V0ZXJTdGF0ZVdpdGhOZXdDaGlsZHJlbihcbiAgYmFzZVJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgbmV3Q2hpbGRyZW46IHsgW3BhcmFsbGVsUm91dGVLZXk6IHN0cmluZ106IEZsaWdodFJvdXRlclN0YXRlIH1cbik6IEZsaWdodFJvdXRlclN0YXRlIHtcbiAgY29uc3QgY2xvbmU6IEZsaWdodFJvdXRlclN0YXRlID0gW2Jhc2VSb3V0ZXJTdGF0ZVswXSwgbmV3Q2hpbGRyZW5dXG4gIC8vIEJhc2VkIG9uIGVxdWl2YWxlbnQgbG9naWMgaW4gYXBwbHktcm91dGVyLXN0YXRlLXBhdGNoLXRvLXRyZWUsIGJ1dCBzaG91bGRcbiAgLy8gY29uZmlybSB3aGV0aGVyIHdlIG5lZWQgdG8gY29weSBhbGwgb2YgdGhlc2UgZmllbGRzLiBOb3Qgc3VyZSB0aGUgc2VydmVyXG4gIC8vIGV2ZXIgc2VuZHMsIGUuZy4gdGhlIHJlZmV0Y2ggbWFya2VyLlxuICBpZiAoMiBpbiBiYXNlUm91dGVyU3RhdGUpIHtcbiAgICBjbG9uZVsyXSA9IGJhc2VSb3V0ZXJTdGF0ZVsyXVxuICB9XG4gIGlmICgzIGluIGJhc2VSb3V0ZXJTdGF0ZSkge1xuICAgIGNsb25lWzNdID0gYmFzZVJvdXRlclN0YXRlWzNdXG4gIH1cbiAgaWYgKDQgaW4gYmFzZVJvdXRlclN0YXRlKSB7XG4gICAgY2xvbmVbNF0gPSBiYXNlUm91dGVyU3RhdGVbNF1cbiAgfVxuICByZXR1cm4gY2xvbmVcbn1cblxuZnVuY3Rpb24gc3Bhd25QZW5kaW5nVGFzayhcbiAgbmF2aWdhdGVkQXQ6IG51bWJlcixcbiAgcm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBwcmVmZXRjaERhdGE6IENhY2hlTm9kZVNlZWREYXRhIHwgbnVsbCxcbiAgcHJlZmV0Y2hIZWFkOiBIZWFkRGF0YSB8IG51bGwsXG4gIGlzUHJlZmV0Y2hIZWFkUGFydGlhbDogYm9vbGVhbixcbiAgc2VnbWVudFBhdGg6IEZsaWdodFNlZ21lbnRQYXRoLFxuICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHQ6IEFycmF5PEZsaWdodFNlZ21lbnRQYXRoPlxuKTogU1BBTmF2aWdhdGlvblRhc2sge1xuICAvLyBDcmVhdGUgYSB0YXNrIHRoYXQgd2lsbCBsYXRlciBiZSBmdWxmaWxsZWQgYnkgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuXG5cbiAgLy8gQ2xvbmUgdGhlIHByZWZldGNoZWQgcm91dGUgdHJlZSBhbmQgdGhlIGByZWZldGNoYCBtYXJrZXIgdG8gaXQuIFdlJ2xsIHNlbmRcbiAgLy8gdGhpcyB0byB0aGUgc2VydmVyIHNvIGl0IGtub3dzIHdoZXJlIHRvIHN0YXJ0IHJlbmRlcmluZy5cbiAgY29uc3QgZHluYW1pY1JlcXVlc3RUcmVlID0gcGF0Y2hSb3V0ZXJTdGF0ZVdpdGhOZXdDaGlsZHJlbihcbiAgICByb3V0ZXJTdGF0ZSxcbiAgICByb3V0ZXJTdGF0ZVsxXVxuICApXG4gIGR5bmFtaWNSZXF1ZXN0VHJlZVszXSA9ICdyZWZldGNoJ1xuXG4gIGNvbnN0IG5ld1Rhc2s6IFRhc2sgPSB7XG4gICAgcm91dGU6IHJvdXRlclN0YXRlLFxuXG4gICAgLy8gQ29ycmVzcG9uZHMgdG8gdGhlIHBhcnQgb2YgdGhlIHJvdXRlIHRoYXQgd2lsbCBiZSByZW5kZXJlZCBvbiB0aGUgc2VydmVyLlxuICAgIG5vZGU6IGNyZWF0ZVBlbmRpbmdDYWNoZU5vZGUoXG4gICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgIHJvdXRlclN0YXRlLFxuICAgICAgcHJlZmV0Y2hEYXRhLFxuICAgICAgcHJlZmV0Y2hIZWFkLFxuICAgICAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsLFxuICAgICAgc2VnbWVudFBhdGgsXG4gICAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHRcbiAgICApLFxuICAgIC8vIEJlY2F1c2UgdGhpcyBpcyBub24tbnVsbCwgYW5kIGl0IGdldHMgcHJvcGFnYXRlZCB1cCB0aHJvdWdoIHRoZSBwYXJlbnRcbiAgICAvLyB0YXNrcywgdGhlIHJvb3QgdGFzayB3aWxsIGtub3cgdGhhdCBpdCBuZWVkcyB0byBwZXJmb3JtIGEgc2VydmVyIHJlcXVlc3QuXG4gICAgZHluYW1pY1JlcXVlc3RUcmVlLFxuICAgIGNoaWxkcmVuOiBudWxsLFxuICB9XG4gIHJldHVybiBuZXdUYXNrXG59XG5cbmZ1bmN0aW9uIHNwYXduUmV1c2VkVGFzayhyZXVzZWRSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUpOiBUYXNrIHtcbiAgLy8gQ3JlYXRlIGEgdGFzayB0aGF0IHJldXNlcyBhbiBleGlzdGluZyBzZWdtZW50LCBlLmcuIHdoZW4gcmV1c2luZ1xuICAvLyB0aGUgY3VycmVudCBhY3RpdmUgc2VnbWVudCBpbiBwbGFjZSBvZiBhIGRlZmF1bHQgcm91dGUuXG4gIHJldHVybiB7XG4gICAgcm91dGU6IHJldXNlZFJvdXRlclN0YXRlLFxuICAgIG5vZGU6IG51bGwsXG4gICAgZHluYW1pY1JlcXVlc3RUcmVlOiBudWxsLFxuICAgIGNoaWxkcmVuOiBudWxsLFxuICB9XG59XG5cbi8vIFdyaXRlcyBhIGR5bmFtaWMgc2VydmVyIHJlc3BvbnNlIGludG8gdGhlIHRyZWUgY3JlYXRlZCBieVxuLy8gdXBkYXRlQ2FjaGVOb2RlT25OYXZpZ2F0aW9uLiBBbGwgcGVuZGluZyBwcm9taXNlcyB0aGF0IHdlcmUgc3Bhd25lZCBieSB0aGVcbi8vIG5hdmlnYXRpb24gd2lsbCBiZSByZXNvbHZlZCwgZWl0aGVyIHdpdGggZHluYW1pYyBkYXRhIGZyb20gdGhlIHNlcnZlciwgb3Jcbi8vIGBudWxsYCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBkYXRhIGlzIG1pc3NpbmcuXG4vL1xuLy8gQSBgbnVsbGAgdmFsdWUgd2lsbCB0cmlnZ2VyIGEgbGF6eSBmZXRjaCBkdXJpbmcgcmVuZGVyLCB3aGljaCB3aWxsIHRoZW4gcGF0Y2hcbi8vIHVwIHRoZSB0cmVlIHVzaW5nIHRoZSBzYW1lIG1lY2hhbmlzbSBhcyB0aGUgbm9uLVBQUiBpbXBsZW1lbnRhdGlvblxuLy8gKHNlcnZlclBhdGNoUmVkdWNlcikuXG4vL1xuLy8gVXN1YWxseSwgdGhlIHNlcnZlciB3aWxsIHJlc3BvbmQgd2l0aCBleGFjdGx5IHRoZSBzdWJzZXQgb2YgZGF0YSB0aGF0IHdlJ3JlXG4vLyB3YWl0aW5nIGZvciDigJQgZXZlcnl0aGluZyBiZWxvdyB0aGUgbmVhcmVzdCBzaGFyZWQgbGF5b3V0LiBCdXQgdGVjaG5pY2FsbHksXG4vLyB0aGUgc2VydmVyIGNhbiByZXR1cm4gYW55dGhpbmcgaXQgd2FudHMuXG4vL1xuLy8gVGhpcyBkb2VzIF9ub3RfIGNyZWF0ZSBhIG5ldyB0cmVlOyBpdCBtb2RpZmllcyB0aGUgZXhpc3Rpbmcgb25lIGluIHBsYWNlLlxuLy8gV2hpY2ggbWVhbnMgaXQgbXVzdCBmb2xsb3cgdGhlIFN1c3BlbnNlIHJ1bGVzIG9mIGNhY2hlIHNhZmV0eS5cbmV4cG9ydCBmdW5jdGlvbiBsaXN0ZW5Gb3JEeW5hbWljUmVxdWVzdChcbiAgdGFzazogU1BBTmF2aWdhdGlvblRhc2ssXG4gIHJlc3BvbnNlUHJvbWlzZTogUHJvbWlzZTxGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0PlxuKSB7XG4gIHJlc3BvbnNlUHJvbWlzZS50aGVuKFxuICAgICh7IGZsaWdodERhdGEgfTogRmV0Y2hTZXJ2ZXJSZXNwb25zZVJlc3VsdCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyBIYXBwZW5zIHdoZW4gbmF2aWdhdGluZyB0byBwYWdlIGluIGBwYWdlc2AgZnJvbSBgYXBwYC4gV2Ugc2hvdWxkbid0XG4gICAgICAgIC8vIGdldCBoZXJlIGJlY2F1c2Ugc2hvdWxkIGhhdmUgYWxyZWFkeSBoYW5kbGVkIHRoaXMgZHVyaW5nXG4gICAgICAgIC8vIHRoZSBwcmVmZXRjaC5cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IG5vcm1hbGl6ZWRGbGlnaHREYXRhIG9mIGZsaWdodERhdGEpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHNlZ21lbnRQYXRoLFxuICAgICAgICAgIHRyZWU6IHNlcnZlclJvdXRlclN0YXRlLFxuICAgICAgICAgIHNlZWREYXRhOiBkeW5hbWljRGF0YSxcbiAgICAgICAgICBoZWFkOiBkeW5hbWljSGVhZCxcbiAgICAgICAgfSA9IG5vcm1hbGl6ZWRGbGlnaHREYXRhXG5cbiAgICAgICAgaWYgKCFkeW5hbWljRGF0YSkge1xuICAgICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbi4gUFBSIHNob3VsZCBhbHdheXMgc2VuZCBiYWNrIGEgcmVzcG9uc2UuXG4gICAgICAgICAgLy8gSG93ZXZlciwgYEZsaWdodERhdGFQYXRoYCBpcyBhIHNoYXJlZCB0eXBlIGFuZCB0aGUgcHJlLVBQUiBoYW5kbGluZyBvZlxuICAgICAgICAgIC8vIHRoaXMgbWlnaHQgcmV0dXJuIG51bGwuXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuXG4gICAgICAgIHdyaXRlRHluYW1pY0RhdGFJbnRvUGVuZGluZ1Rhc2soXG4gICAgICAgICAgdGFzayxcbiAgICAgICAgICBzZWdtZW50UGF0aCxcbiAgICAgICAgICBzZXJ2ZXJSb3V0ZXJTdGF0ZSxcbiAgICAgICAgICBkeW5hbWljRGF0YSxcbiAgICAgICAgICBkeW5hbWljSGVhZFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIC8vIE5vdyB0aGF0IHdlJ3ZlIGV4aGF1c3RlZCBhbGwgdGhlIGRhdGEgd2UgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLCBpZlxuICAgICAgLy8gdGhlcmUgYXJlIGFueSByZW1haW5pbmcgcGVuZGluZyB0YXNrcyBpbiB0aGUgdHJlZSwgYWJvcnQgdGhlbSBub3cuXG4gICAgICAvLyBJZiB0aGVyZSdzIGFueSBtaXNzaW5nIGRhdGEsIGl0IHdpbGwgdHJpZ2dlciBhIGxhenkgZmV0Y2guXG4gICAgICBhYm9ydFRhc2sodGFzaywgbnVsbClcbiAgICB9LFxuICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAvLyBUaGlzIHdpbGwgdHJpZ2dlciBhbiBlcnJvciBkdXJpbmcgcmVuZGVyXG4gICAgICBhYm9ydFRhc2sodGFzaywgZXJyb3IpXG4gICAgfVxuICApXG59XG5cbmZ1bmN0aW9uIHdyaXRlRHluYW1pY0RhdGFJbnRvUGVuZGluZ1Rhc2soXG4gIHJvb3RUYXNrOiBTUEFOYXZpZ2F0aW9uVGFzayxcbiAgc2VnbWVudFBhdGg6IEZsaWdodFNlZ21lbnRQYXRoLFxuICBzZXJ2ZXJSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIGR5bmFtaWNEYXRhOiBDYWNoZU5vZGVTZWVkRGF0YSxcbiAgZHluYW1pY0hlYWQ6IEhlYWREYXRhXG4pIHtcbiAgLy8gVGhlIGRhdGEgc2VudCBieSB0aGUgc2VydmVyIHJlcHJlc2VudHMgb25seSBhIHN1YnRyZWUgb2YgdGhlIGFwcC4gV2UgbmVlZFxuICAvLyB0byBmaW5kIHRoZSBwYXJ0IG9mIHRoZSB0YXNrIHRyZWUgdGhhdCBtYXRjaGVzIHRoZSBzZXJ2ZXIgcmVzcG9uc2UsIGFuZFxuICAvLyBmdWxmaWxsIGl0IHVzaW5nIHRoZSBkeW5hbWljIGRhdGEuXG4gIC8vXG4gIC8vIHNlZ21lbnRQYXRoIHJlcHJlc2VudHMgdGhlIHBhcmVudCBwYXRoIG9mIHN1YnRyZWUuIEl0J3MgYSByZXBlYXRpbmcgcGF0dGVyblxuICAvLyBvZiBwYXJhbGxlbCByb3V0ZSBrZXkgYW5kIHNlZ21lbnQ6XG4gIC8vXG4gIC8vICAgW3N0cmluZywgU2VnbWVudCwgc3RyaW5nLCBTZWdtZW50LCBzdHJpbmcsIFNlZ21lbnQsIC4uLl1cbiAgLy9cbiAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBwYXRoIGFuZCBmaW5pc2ggYW55IHRhc2tzIHRoYXQgbWF0Y2ggdGhpcyBwYXlsb2FkLlxuICBsZXQgdGFzayA9IHJvb3RUYXNrXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudFBhdGgubGVuZ3RoOyBpICs9IDIpIHtcbiAgICBjb25zdCBwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmcgPSBzZWdtZW50UGF0aFtpXVxuICAgIGNvbnN0IHNlZ21lbnQ6IFNlZ21lbnQgPSBzZWdtZW50UGF0aFtpICsgMV1cbiAgICBjb25zdCB0YXNrQ2hpbGRyZW4gPSB0YXNrLmNoaWxkcmVuXG4gICAgaWYgKHRhc2tDaGlsZHJlbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdGFza0NoaWxkID0gdGFza0NoaWxkcmVuLmdldChwYXJhbGxlbFJvdXRlS2V5KVxuICAgICAgaWYgKHRhc2tDaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IHRhc2tTZWdtZW50ID0gdGFza0NoaWxkLnJvdXRlWzBdXG4gICAgICAgIGlmIChtYXRjaFNlZ21lbnQoc2VnbWVudCwgdGFza1NlZ21lbnQpKSB7XG4gICAgICAgICAgLy8gRm91bmQgYSBtYXRjaCBmb3IgdGhpcyB0YXNrLiBLZWVwIHRyYXZlcnNpbmcgZG93biB0aGUgdGFzayB0cmVlLlxuICAgICAgICAgIHRhc2sgPSB0YXNrQ2hpbGRcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFdlIGRpZG4ndCBmaW5kIGEgY2hpbGQgdGFzayB0aGF0IG1hdGNoZXMgdGhlIHNlcnZlciBkYXRhLiBFeGl0LiBXZSB3b24ndFxuICAgIC8vIGFib3J0IHRoZSB0YXNrLCB0aG91Z2gsIGJlY2F1c2UgYSBkaWZmZXJlbnQgRmxpZ2h0RGF0YVBhdGggbWF5IGJlIGFibGUgdG9cbiAgICAvLyBmdWxmaWxsIGl0IChzZWUgbG9vcCBpbiBsaXN0ZW5Gb3JEeW5hbWljUmVxdWVzdCkuIFdlIG9ubHkgYWJvcnQgdGFza3NcbiAgICAvLyBvbmNlIHdlJ3ZlIHJ1biBvdXQgb2YgZGF0YS5cbiAgICByZXR1cm5cbiAgfVxuXG4gIGZpbmlzaFRhc2tVc2luZ0R5bmFtaWNEYXRhUGF5bG9hZChcbiAgICB0YXNrLFxuICAgIHNlcnZlclJvdXRlclN0YXRlLFxuICAgIGR5bmFtaWNEYXRhLFxuICAgIGR5bmFtaWNIZWFkXG4gIClcbn1cblxuZnVuY3Rpb24gZmluaXNoVGFza1VzaW5nRHluYW1pY0RhdGFQYXlsb2FkKFxuICB0YXNrOiBTUEFOYXZpZ2F0aW9uVGFzayxcbiAgc2VydmVyUm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBkeW5hbWljRGF0YTogQ2FjaGVOb2RlU2VlZERhdGEsXG4gIGR5bmFtaWNIZWFkOiBIZWFkRGF0YVxuKSB7XG4gIGlmICh0YXNrLmR5bmFtaWNSZXF1ZXN0VHJlZSA9PT0gbnVsbCkge1xuICAgIC8vIEV2ZXJ5dGhpbmcgaW4gdGhpcyBzdWJ0cmVlIGlzIGFscmVhZHkgY29tcGxldGUuIEJhaWwgb3V0LlxuICAgIHJldHVyblxuICB9XG5cbiAgLy8gZHluYW1pY0RhdGEgbWF5IHJlcHJlc2VudCBhIGxhcmdlciBzdWJ0cmVlIHRoYW4gdGhlIHRhc2suIEJlZm9yZSB3ZSBjYW5cbiAgLy8gZmluaXNoIHRoZSB0YXNrLCB3ZSBuZWVkIHRvIGxpbmUgdGhlbSB1cC5cbiAgY29uc3QgdGFza0NoaWxkcmVuID0gdGFzay5jaGlsZHJlblxuICBjb25zdCB0YXNrTm9kZSA9IHRhc2subm9kZVxuICBpZiAodGFza0NoaWxkcmVuID09PSBudWxsKSB7XG4gICAgLy8gV2UndmUgcmVhY2hlZCB0aGUgbGVhZiBub2RlIG9mIHRoZSBwZW5kaW5nIHRhc2suIFRoZSBzZXJ2ZXIgZGF0YSB0cmVlXG4gICAgLy8gbGluZXMgdXAgdGhlIHBlbmRpbmcgQ2FjaGUgTm9kZSB0cmVlLiBXZSBjYW4gbm93IHN3aXRjaCB0byB0aGVcbiAgICAvLyBub3JtYWwgYWxnb3JpdGhtLlxuICAgIGlmICh0YXNrTm9kZSAhPT0gbnVsbCkge1xuICAgICAgZmluaXNoUGVuZGluZ0NhY2hlTm9kZShcbiAgICAgICAgdGFza05vZGUsXG4gICAgICAgIHRhc2sucm91dGUsXG4gICAgICAgIHNlcnZlclJvdXRlclN0YXRlLFxuICAgICAgICBkeW5hbWljRGF0YSxcbiAgICAgICAgZHluYW1pY0hlYWRcbiAgICAgIClcbiAgICAgIC8vIFNldCB0aGlzIHRvIG51bGwgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIHRhc2sgaXMgbm93IGNvbXBsZXRlLlxuICAgICAgdGFzay5keW5hbWljUmVxdWVzdFRyZWUgPSBudWxsXG4gICAgfVxuICAgIHJldHVyblxuICB9XG4gIC8vIFRoZSBzZXJ2ZXIgcmV0dXJuZWQgbW9yZSBkYXRhIHRoYW4gd2UgbmVlZCB0byBmaW5pc2ggdGhlIHRhc2suIFNraXAgb3ZlclxuICAvLyB0aGUgZXh0cmEgc2VnbWVudHMgdW50aWwgd2UgcmVhY2ggdGhlIGxlYWYgdGFzayBub2RlLlxuICBjb25zdCBzZXJ2ZXJDaGlsZHJlbiA9IHNlcnZlclJvdXRlclN0YXRlWzFdXG4gIGNvbnN0IGR5bmFtaWNEYXRhQ2hpbGRyZW4gPSBkeW5hbWljRGF0YVsyXVxuXG4gIGZvciAoY29uc3QgcGFyYWxsZWxSb3V0ZUtleSBpbiBzZXJ2ZXJSb3V0ZXJTdGF0ZSkge1xuICAgIGNvbnN0IHNlcnZlclJvdXRlclN0YXRlQ2hpbGQ6IEZsaWdodFJvdXRlclN0YXRlID1cbiAgICAgIHNlcnZlckNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldXG4gICAgY29uc3QgZHluYW1pY0RhdGFDaGlsZDogQ2FjaGVOb2RlU2VlZERhdGEgfCBudWxsIHwgdm9pZCA9XG4gICAgICBkeW5hbWljRGF0YUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldXG5cbiAgICBjb25zdCB0YXNrQ2hpbGQgPSB0YXNrQ2hpbGRyZW4uZ2V0KHBhcmFsbGVsUm91dGVLZXkpXG4gICAgaWYgKHRhc2tDaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB0YXNrU2VnbWVudCA9IHRhc2tDaGlsZC5yb3V0ZVswXVxuICAgICAgaWYgKFxuICAgICAgICBtYXRjaFNlZ21lbnQoc2VydmVyUm91dGVyU3RhdGVDaGlsZFswXSwgdGFza1NlZ21lbnQpICYmXG4gICAgICAgIGR5bmFtaWNEYXRhQ2hpbGQgIT09IG51bGwgJiZcbiAgICAgICAgZHluYW1pY0RhdGFDaGlsZCAhPT0gdW5kZWZpbmVkXG4gICAgICApIHtcbiAgICAgICAgLy8gRm91bmQgYSBtYXRjaCBmb3IgdGhpcyB0YXNrLiBLZWVwIHRyYXZlcnNpbmcgZG93biB0aGUgdGFzayB0cmVlLlxuICAgICAgICByZXR1cm4gZmluaXNoVGFza1VzaW5nRHluYW1pY0RhdGFQYXlsb2FkKFxuICAgICAgICAgIHRhc2tDaGlsZCxcbiAgICAgICAgICBzZXJ2ZXJSb3V0ZXJTdGF0ZUNoaWxkLFxuICAgICAgICAgIGR5bmFtaWNEYXRhQ2hpbGQsXG4gICAgICAgICAgZHluYW1pY0hlYWRcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSBkaWRuJ3QgZmluZCBhIGNoaWxkIHRhc2sgdGhhdCBtYXRjaGVzIHRoZSBzZXJ2ZXIgZGF0YS4gV2Ugd29uJ3QgYWJvcnRcbiAgICAvLyB0aGUgdGFzaywgdGhvdWdoLCBiZWNhdXNlIGEgZGlmZmVyZW50IEZsaWdodERhdGFQYXRoIG1heSBiZSBhYmxlIHRvXG4gICAgLy8gZnVsZmlsbCBpdCAoc2VlIGxvb3AgaW4gbGlzdGVuRm9yRHluYW1pY1JlcXVlc3QpLiBXZSBvbmx5IGFib3J0IHRhc2tzXG4gICAgLy8gb25jZSB3ZSd2ZSBydW4gb3V0IG9mIGRhdGEuXG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlUGVuZGluZ0NhY2hlTm9kZShcbiAgbmF2aWdhdGVkQXQ6IG51bWJlcixcbiAgcm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBwcmVmZXRjaERhdGE6IENhY2hlTm9kZVNlZWREYXRhIHwgbnVsbCxcbiAgcHJlZmV0Y2hIZWFkOiBIZWFkRGF0YSB8IG51bGwsXG4gIGlzUHJlZmV0Y2hIZWFkUGFydGlhbDogYm9vbGVhbixcbiAgc2VnbWVudFBhdGg6IEZsaWdodFNlZ21lbnRQYXRoLFxuICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHQ6IEFycmF5PEZsaWdodFNlZ21lbnRQYXRoPlxuKTogUmVhZHlDYWNoZU5vZGUge1xuICBjb25zdCByb3V0ZXJTdGF0ZUNoaWxkcmVuID0gcm91dGVyU3RhdGVbMV1cbiAgY29uc3QgcHJlZmV0Y2hEYXRhQ2hpbGRyZW4gPSBwcmVmZXRjaERhdGEgIT09IG51bGwgPyBwcmVmZXRjaERhdGFbMl0gOiBudWxsXG5cbiAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSBuZXcgTWFwKClcbiAgZm9yIChsZXQgcGFyYWxsZWxSb3V0ZUtleSBpbiByb3V0ZXJTdGF0ZUNoaWxkcmVuKSB7XG4gICAgY29uc3Qgcm91dGVyU3RhdGVDaGlsZDogRmxpZ2h0Um91dGVyU3RhdGUgPVxuICAgICAgcm91dGVyU3RhdGVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XVxuICAgIGNvbnN0IHByZWZldGNoRGF0YUNoaWxkOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGwgfCB2b2lkID1cbiAgICAgIHByZWZldGNoRGF0YUNoaWxkcmVuICE9PSBudWxsXG4gICAgICAgID8gcHJlZmV0Y2hEYXRhQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICAgICAgOiBudWxsXG5cbiAgICBjb25zdCBzZWdtZW50Q2hpbGQgPSByb3V0ZXJTdGF0ZUNoaWxkWzBdXG4gICAgY29uc3Qgc2VnbWVudFBhdGhDaGlsZCA9IHNlZ21lbnRQYXRoLmNvbmNhdChbXG4gICAgICBwYXJhbGxlbFJvdXRlS2V5LFxuICAgICAgc2VnbWVudENoaWxkLFxuICAgIF0pXG4gICAgY29uc3Qgc2VnbWVudEtleUNoaWxkID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudENoaWxkKVxuXG4gICAgY29uc3QgbmV3Q2FjaGVOb2RlQ2hpbGQgPSBjcmVhdGVQZW5kaW5nQ2FjaGVOb2RlKFxuICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICByb3V0ZXJTdGF0ZUNoaWxkLFxuICAgICAgcHJlZmV0Y2hEYXRhQ2hpbGQgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBwcmVmZXRjaERhdGFDaGlsZCxcbiAgICAgIHByZWZldGNoSGVhZCxcbiAgICAgIGlzUHJlZmV0Y2hIZWFkUGFydGlhbCxcbiAgICAgIHNlZ21lbnRQYXRoQ2hpbGQsXG4gICAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHRcbiAgICApXG5cbiAgICBjb25zdCBuZXdTZWdtZW50TWFwQ2hpbGQ6IENoaWxkU2VnbWVudE1hcCA9IG5ldyBNYXAoKVxuICAgIG5ld1NlZ21lbnRNYXBDaGlsZC5zZXQoc2VnbWVudEtleUNoaWxkLCBuZXdDYWNoZU5vZGVDaGlsZClcbiAgICBwYXJhbGxlbFJvdXRlcy5zZXQocGFyYWxsZWxSb3V0ZUtleSwgbmV3U2VnbWVudE1hcENoaWxkKVxuICB9XG5cbiAgLy8gVGhlIGhlYWQgaXMgYXNzaWduZWQgdG8gZXZlcnkgbGVhZiBzZWdtZW50IGRlbGl2ZXJlZCBieSB0aGUgc2VydmVyLiBCYXNlZFxuICAvLyBvbiBjb3JyZXNwb25kaW5nIGxvZ2ljIGluIGZpbGwtbGF6eS1pdGVtcy10aWxsLWxlYWYtd2l0aC1oZWFkLnRzXG4gIGNvbnN0IGlzTGVhZlNlZ21lbnQgPSBwYXJhbGxlbFJvdXRlcy5zaXplID09PSAwXG5cbiAgaWYgKGlzTGVhZlNlZ21lbnQpIHtcbiAgICAvLyBUaGUgc2VnbWVudCBwYXRoIG9mIGV2ZXJ5IGxlYWYgc2VnbWVudCAoaS5lLiBwYWdlKSBpcyBjb2xsZWN0ZWQgaW50b1xuICAgIC8vIGEgcmVzdWx0IGFycmF5LiBUaGlzIGlzIHVzZWQgYnkgdGhlIExheW91dFJvdXRlciB0byBzY3JvbGwgdG8gZW5zdXJlIHRoYXRcbiAgICAvLyBuZXcgcGFnZXMgYXJlIHZpc2libGUgYWZ0ZXIgYSBuYXZpZ2F0aW9uLlxuICAgIC8vIFRPRE86IFdlIHNob3VsZCB1c2UgYSBzdHJpbmcgdG8gcmVwcmVzZW50IHRoZSBzZWdtZW50IHBhdGggaW5zdGVhZCBvZlxuICAgIC8vIGFuIGFycmF5LiBXZSBhbHJlYWR5IHVzZSBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhlIHBhdGggd2hlblxuICAgIC8vIGFjY2Vzc2luZyB0aGUgU2VnbWVudCBDYWNoZSwgc28gd2UgY2FuIHVzZSB0aGUgc2FtZSBvbmUuXG4gICAgc2Nyb2xsYWJsZVNlZ21lbnRzUmVzdWx0LnB1c2goc2VnbWVudFBhdGgpXG4gIH1cblxuICBjb25zdCBtYXliZVByZWZldGNoUnNjID0gcHJlZmV0Y2hEYXRhICE9PSBudWxsID8gcHJlZmV0Y2hEYXRhWzFdIDogbnVsbFxuICBjb25zdCBtYXliZVByZWZldGNoTG9hZGluZyA9IHByZWZldGNoRGF0YSAhPT0gbnVsbCA/IHByZWZldGNoRGF0YVszXSA6IG51bGxcbiAgcmV0dXJuIHtcbiAgICBsYXp5RGF0YTogbnVsbCxcbiAgICBwYXJhbGxlbFJvdXRlczogcGFyYWxsZWxSb3V0ZXMsXG5cbiAgICBwcmVmZXRjaFJzYzogbWF5YmVQcmVmZXRjaFJzYyAhPT0gdW5kZWZpbmVkID8gbWF5YmVQcmVmZXRjaFJzYyA6IG51bGwsXG4gICAgcHJlZmV0Y2hIZWFkOiBpc0xlYWZTZWdtZW50ID8gcHJlZmV0Y2hIZWFkIDogW251bGwsIG51bGxdLFxuXG4gICAgLy8gVE9ETzogVGVjaG5pY2FsbHksIGEgbG9hZGluZyBib3VuZGFyeSBjb3VsZCBjb250YWluIGR5bmFtaWMgZGF0YS4gV2UgbXVzdFxuICAgIC8vIGhhdmUgc2VwYXJhdGUgYGxvYWRpbmdgIGFuZCBgcHJlZmV0Y2hMb2FkaW5nYCBmaWVsZHMgdG8gaGFuZGxlIHRoaXMsIGxpa2VcbiAgICAvLyB3ZSBkbyBmb3IgdGhlIHNlZ21lbnQgZGF0YSBhbmQgaGVhZC5cbiAgICBsb2FkaW5nOiBtYXliZVByZWZldGNoTG9hZGluZyAhPT0gdW5kZWZpbmVkID8gbWF5YmVQcmVmZXRjaExvYWRpbmcgOiBudWxsLFxuXG4gICAgLy8gQ3JlYXRlIGEgZGVmZXJyZWQgcHJvbWlzZS4gVGhpcyB3aWxsIGJlIGZ1bGZpbGxlZCBvbmNlIHRoZSBkeW5hbWljXG4gICAgLy8gcmVzcG9uc2UgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLlxuICAgIHJzYzogY3JlYXRlRGVmZXJyZWRSc2MoKSBhcyBSZWFjdC5SZWFjdE5vZGUsXG4gICAgaGVhZDogaXNMZWFmU2VnbWVudCA/IChjcmVhdGVEZWZlcnJlZFJzYygpIGFzIFJlYWN0LlJlYWN0Tm9kZSkgOiBudWxsLFxuXG4gICAgbmF2aWdhdGVkQXQsXG4gIH1cbn1cblxuZnVuY3Rpb24gZmluaXNoUGVuZGluZ0NhY2hlTm9kZShcbiAgY2FjaGVOb2RlOiBDYWNoZU5vZGUsXG4gIHRhc2tTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHNlcnZlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgZHluYW1pY0RhdGE6IENhY2hlTm9kZVNlZWREYXRhLFxuICBkeW5hbWljSGVhZDogSGVhZERhdGFcbik6IHZvaWQge1xuICAvLyBXcml0ZXMgYSBkeW5hbWljIHJlc3BvbnNlIGludG8gYW4gZXhpc3RpbmcgQ2FjaGUgTm9kZSB0cmVlLiBUaGlzIGRvZXMgX25vdF9cbiAgLy8gY3JlYXRlIGEgbmV3IHRyZWUsIGl0IHVwZGF0ZXMgdGhlIGV4aXN0aW5nIHRyZWUgaW4tcGxhY2UuIFNvIGl0IG11c3QgZm9sbG93XG4gIC8vIHRoZSBTdXNwZW5zZSBydWxlcyBvZiBjYWNoZSBzYWZldHkg4oCUIGl0IGNhbiByZXNvbHZlIHBlbmRpbmcgcHJvbWlzZXMsIGJ1dFxuICAvLyBpdCBjYW5ub3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGRhdGEuIEl0IGNhbiBhZGQgc2VnbWVudHMgdG8gdGhlIHRyZWUgKGJlY2F1c2VcbiAgLy8gYSBtaXNzaW5nIHNlZ21lbnQgd2lsbCBjYXVzZSB0aGUgbGF5b3V0IHJvdXRlciB0byBzdXNwZW5kKS5cbiAgLy8gYnV0IGl0IGNhbm5vdCBkZWxldGUgdGhlbS5cbiAgLy9cbiAgLy8gV2UgbXVzdCByZXNvbHZlIGV2ZXJ5IHByb21pc2UgaW4gdGhlIHRyZWUsIG9yIGVsc2UgaXQgd2lsbCBzdXNwZW5kXG4gIC8vIGluZGVmaW5pdGVseS4gSWYgd2UgZGlkIG5vdCByZWNlaXZlIGRhdGEgZm9yIGEgc2VnbWVudCwgd2Ugd2lsbCByZXNvbHZlIGl0c1xuICAvLyBkYXRhIHByb21pc2UgdG8gYG51bGxgIHRvIHRyaWdnZXIgYSBsYXp5IGZldGNoIGR1cmluZyByZW5kZXIuXG4gIGNvbnN0IHRhc2tTdGF0ZUNoaWxkcmVuID0gdGFza1N0YXRlWzFdXG4gIGNvbnN0IHNlcnZlclN0YXRlQ2hpbGRyZW4gPSBzZXJ2ZXJTdGF0ZVsxXVxuICBjb25zdCBkYXRhQ2hpbGRyZW4gPSBkeW5hbWljRGF0YVsyXVxuXG4gIC8vIFRoZSByb3V0ZXIgc3RhdGUgdGhhdCB3ZSB0cmF2ZXJzZSB0aGUgdHJlZSB3aXRoICh0YXNrU3RhdGUpIGlzIHRoZSBzYW1lIG9uZVxuICAvLyB0aGF0IHdlIHVzZWQgdG8gY29uc3RydWN0IHRoZSBwZW5kaW5nIENhY2hlIE5vZGUgdHJlZS4gVGhhdCB3YXkgd2UncmUgc3VyZVxuICAvLyB0byByZXNvbHZlIGFsbCB0aGUgcGVuZGluZyBwcm9taXNlcy5cbiAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSBjYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXNcbiAgZm9yIChsZXQgcGFyYWxsZWxSb3V0ZUtleSBpbiB0YXNrU3RhdGVDaGlsZHJlbikge1xuICAgIGNvbnN0IHRhc2tTdGF0ZUNoaWxkOiBGbGlnaHRSb3V0ZXJTdGF0ZSA9XG4gICAgICB0YXNrU3RhdGVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XVxuICAgIGNvbnN0IHNlcnZlclN0YXRlQ2hpbGQ6IEZsaWdodFJvdXRlclN0YXRlIHwgdm9pZCA9XG4gICAgICBzZXJ2ZXJTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldXG4gICAgY29uc3QgZGF0YUNoaWxkOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGwgfCB2b2lkID1cbiAgICAgIGRhdGFDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XVxuXG4gICAgY29uc3Qgc2VnbWVudE1hcENoaWxkID0gcGFyYWxsZWxSb3V0ZXMuZ2V0KHBhcmFsbGVsUm91dGVLZXkpXG4gICAgY29uc3QgdGFza1NlZ21lbnRDaGlsZCA9IHRhc2tTdGF0ZUNoaWxkWzBdXG4gICAgY29uc3QgdGFza1NlZ21lbnRLZXlDaGlsZCA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHRhc2tTZWdtZW50Q2hpbGQpXG5cbiAgICBjb25zdCBjYWNoZU5vZGVDaGlsZCA9XG4gICAgICBzZWdtZW50TWFwQ2hpbGQgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHNlZ21lbnRNYXBDaGlsZC5nZXQodGFza1NlZ21lbnRLZXlDaGlsZClcbiAgICAgICAgOiB1bmRlZmluZWRcblxuICAgIGlmIChjYWNoZU5vZGVDaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHNlcnZlclN0YXRlQ2hpbGQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBtYXRjaFNlZ21lbnQodGFza1NlZ21lbnRDaGlsZCwgc2VydmVyU3RhdGVDaGlsZFswXSlcbiAgICAgICkge1xuICAgICAgICBpZiAoZGF0YUNoaWxkICE9PSB1bmRlZmluZWQgJiYgZGF0YUNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyB0aGUgaGFwcHkgcGF0aC4gUmVjdXJzaXZlbHkgdXBkYXRlIGFsbCB0aGUgY2hpbGRyZW4uXG4gICAgICAgICAgZmluaXNoUGVuZGluZ0NhY2hlTm9kZShcbiAgICAgICAgICAgIGNhY2hlTm9kZUNoaWxkLFxuICAgICAgICAgICAgdGFza1N0YXRlQ2hpbGQsXG4gICAgICAgICAgICBzZXJ2ZXJTdGF0ZUNoaWxkLFxuICAgICAgICAgICAgZGF0YUNoaWxkLFxuICAgICAgICAgICAgZHluYW1pY0hlYWRcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVGhlIHNlcnZlciBuZXZlciByZXR1cm5lZCBkYXRhIGZvciB0aGlzIHNlZ21lbnQuIFRyaWdnZXIgYSBsYXp5XG4gICAgICAgICAgLy8gZmV0Y2ggZHVyaW5nIHJlbmRlci4gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJlY2F1c2UgdGhlIFJvdXRlIFRyZWVcbiAgICAgICAgICAvLyBhbmQgdGhlIFNlZWQgRGF0YSB0cmVlIHNlbnQgYnkgdGhlIHNlcnZlciBzaG91bGQgYWx3YXlzIGJlIHRoZSBzYW1lXG4gICAgICAgICAgLy8gc2hhcGUgd2hlbiBwYXJ0IG9mIHRoZSBzYW1lIHNlcnZlciByZXNwb25zZS5cbiAgICAgICAgICBhYm9ydFBlbmRpbmdDYWNoZU5vZGUodGFza1N0YXRlQ2hpbGQsIGNhY2hlTm9kZUNoaWxkLCBudWxsKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGUgc2VydmVyIG5ldmVyIHJldHVybmVkIGRhdGEgZm9yIHRoaXMgc2VnbWVudC4gVHJpZ2dlciBhIGxhenlcbiAgICAgICAgLy8gZmV0Y2ggZHVyaW5nIHJlbmRlci5cbiAgICAgICAgYWJvcnRQZW5kaW5nQ2FjaGVOb2RlKHRhc2tTdGF0ZUNoaWxkLCBjYWNoZU5vZGVDaGlsZCwgbnVsbClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIHNlcnZlciByZXNwb25zZSBtYXRjaGVzIHdoYXQgd2FzIGV4cGVjdGVkIHRvIHJlY2VpdmUsIGJ1dCB0aGVyZSdzXG4gICAgICAvLyBubyBtYXRjaGluZyBDYWNoZSBOb2RlIGluIHRoZSB0YXNrIHRyZWUuIFRoaXMgaXMgYSBidWcgaW4gdGhlXG4gICAgICAvLyBpbXBsZW1lbnRhdGlvbiBiZWNhdXNlIHdlIHNob3VsZCBoYXZlIGNyZWF0ZWQgYSBub2RlIGZvciBldmVyeVxuICAgICAgLy8gc2VnbWVudCBpbiB0aGUgdHJlZSB0aGF0J3MgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFzay5cbiAgICB9XG4gIH1cblxuICAvLyBVc2UgdGhlIGR5bmFtaWMgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIgdG8gZnVsZmlsbCB0aGUgZGVmZXJyZWQgUlNDIHByb21pc2VcbiAgLy8gb24gdGhlIENhY2hlIE5vZGUuXG4gIGNvbnN0IHJzYyA9IGNhY2hlTm9kZS5yc2NcbiAgY29uc3QgZHluYW1pY1NlZ21lbnREYXRhID0gZHluYW1pY0RhdGFbMV1cbiAgaWYgKHJzYyA9PT0gbnVsbCkge1xuICAgIC8vIFRoaXMgaXMgYSBsYXp5IGNhY2hlIG5vZGUuIFdlIGNhbiBvdmVyd3JpdGUgaXQuIFRoaXMgaXMgb25seSBzYWZlXG4gICAgLy8gYmVjYXVzZSB3ZSBrbm93IHRoYXQgdGhlIExheW91dFJvdXRlciBzdXNwZW5kcyBpZiBgcnNjYCBpcyBgbnVsbGAuXG4gICAgY2FjaGVOb2RlLnJzYyA9IGR5bmFtaWNTZWdtZW50RGF0YVxuICB9IGVsc2UgaWYgKGlzRGVmZXJyZWRSc2MocnNjKSkge1xuICAgIC8vIFRoaXMgaXMgYSBkZWZlcnJlZCBSU0MgcHJvbWlzZS4gV2UgY2FuIGZ1bGZpbGwgaXQgd2l0aCB0aGUgZGF0YSB3ZSBqdXN0XG4gICAgLy8gcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLiBJZiBpdCB3YXMgYWxyZWFkeSByZXNvbHZlZCBieSBhIGRpZmZlcmVudFxuICAgIC8vIG5hdmlnYXRpb24sIHRoZW4gdGhpcyBkb2VzIG5vdGhpbmcgYmVjYXVzZSB3ZSBjYW4ndCBvdmVyd3JpdGUgZGF0YS5cbiAgICByc2MucmVzb2x2ZShkeW5hbWljU2VnbWVudERhdGEpXG4gIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBpcyBub3QgYSBkZWZlcnJlZCBSU0MgcHJvbWlzZSwgbm9yIGlzIGl0IGVtcHR5LCBzbyBpdCBtdXN0IGhhdmVcbiAgICAvLyBiZWVuIHBvcHVsYXRlZCBieSBhIGRpZmZlcmVudCBuYXZpZ2F0aW9uLiBXZSBtdXN0IG5vdCBvdmVyd3JpdGUgaXQuXG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgbGVhZiBzZWdtZW50LiBJZiBzbywgaXQgd2lsbCBoYXZlIGEgYGhlYWRgIHByb3BlcnR5IHdpdGhcbiAgLy8gYSBwZW5kaW5nIHByb21pc2UgdGhhdCBuZWVkcyB0byBiZSByZXNvbHZlZCB3aXRoIHRoZSBkeW5hbWljIGhlYWQgZnJvbVxuICAvLyB0aGUgc2VydmVyLlxuICBjb25zdCBoZWFkID0gY2FjaGVOb2RlLmhlYWRcbiAgaWYgKGlzRGVmZXJyZWRSc2MoaGVhZCkpIHtcbiAgICBoZWFkLnJlc29sdmUoZHluYW1pY0hlYWQpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFib3J0VGFzayh0YXNrOiBTUEFOYXZpZ2F0aW9uVGFzaywgZXJyb3I6IGFueSk6IHZvaWQge1xuICBjb25zdCBjYWNoZU5vZGUgPSB0YXNrLm5vZGVcbiAgaWYgKGNhY2hlTm9kZSA9PT0gbnVsbCkge1xuICAgIC8vIFRoaXMgaW5kaWNhdGVzIHRoZSB0YXNrIGlzIGFscmVhZHkgY29tcGxldGUuXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCB0YXNrQ2hpbGRyZW4gPSB0YXNrLmNoaWxkcmVuXG4gIGlmICh0YXNrQ2hpbGRyZW4gPT09IG51bGwpIHtcbiAgICAvLyBSZWFjaGVkIHRoZSBsZWFmIHRhc2sgbm9kZS4gVGhpcyBpcyB0aGUgcm9vdCBvZiBhIHBlbmRpbmcgY2FjaGVcbiAgICAvLyBub2RlIHRyZWUuXG4gICAgYWJvcnRQZW5kaW5nQ2FjaGVOb2RlKHRhc2sucm91dGUsIGNhY2hlTm9kZSwgZXJyb3IpXG4gIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBpcyBhbiBpbnRlcm1lZGlhdGUgdGFzayBub2RlLiBLZWVwIHRyYXZlcnNpbmcgdW50aWwgd2UgcmVhY2ggYVxuICAgIC8vIHRhc2sgbm9kZSB3aXRoIG5vIGNoaWxkcmVuLiBUaGF0IHdpbGwgYmUgdGhlIHJvb3Qgb2YgdGhlIGNhY2hlIG5vZGUgdHJlZVxuICAgIC8vIHRoYXQgbmVlZHMgdG8gYmUgcmVzb2x2ZWQuXG4gICAgZm9yIChjb25zdCB0YXNrQ2hpbGQgb2YgdGFza0NoaWxkcmVuLnZhbHVlcygpKSB7XG4gICAgICBhYm9ydFRhc2sodGFza0NoaWxkLCBlcnJvcilcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgdGhpcyB0byBudWxsIHRvIGluZGljYXRlIHRoYXQgdGhpcyB0YXNrIGlzIG5vdyBjb21wbGV0ZS5cbiAgdGFzay5keW5hbWljUmVxdWVzdFRyZWUgPSBudWxsXG59XG5cbmZ1bmN0aW9uIGFib3J0UGVuZGluZ0NhY2hlTm9kZShcbiAgcm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBjYWNoZU5vZGU6IENhY2hlTm9kZSxcbiAgZXJyb3I6IGFueVxuKTogdm9pZCB7XG4gIC8vIEZvciBldmVyeSBwZW5kaW5nIHNlZ21lbnQgaW4gdGhlIHRyZWUsIHJlc29sdmUgaXRzIGByc2NgIHByb21pc2UgdG8gYG51bGxgXG4gIC8vIHRvIHRyaWdnZXIgYSBsYXp5IGZldGNoIGR1cmluZyByZW5kZXIuXG4gIC8vXG4gIC8vIE9yLCBpZiBhbiBlcnJvciBvYmplY3QgaXMgcHJvdmlkZWQsIGl0IHdpbGwgZXJyb3IgaW5zdGVhZC5cbiAgY29uc3Qgcm91dGVyU3RhdGVDaGlsZHJlbiA9IHJvdXRlclN0YXRlWzFdXG4gIGNvbnN0IHBhcmFsbGVsUm91dGVzID0gY2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzXG4gIGZvciAobGV0IHBhcmFsbGVsUm91dGVLZXkgaW4gcm91dGVyU3RhdGVDaGlsZHJlbikge1xuICAgIGNvbnN0IHJvdXRlclN0YXRlQ2hpbGQ6IEZsaWdodFJvdXRlclN0YXRlID1cbiAgICAgIHJvdXRlclN0YXRlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICBjb25zdCBzZWdtZW50TWFwQ2hpbGQgPSBwYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSlcbiAgICBpZiAoc2VnbWVudE1hcENoaWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBiZWNhdXNlIHdlJ3JlIHRyYXZlcnNpbmcgdGhlIHNhbWUgdHJlZSB0aGF0IHdhc1xuICAgICAgLy8gdXNlZCB0byBjb25zdHJ1Y3QgdGhlIGNhY2hlIG5vZGVzIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHNlZ21lbnRDaGlsZCA9IHJvdXRlclN0YXRlQ2hpbGRbMF1cbiAgICBjb25zdCBzZWdtZW50S2V5Q2hpbGQgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50Q2hpbGQpXG4gICAgY29uc3QgY2FjaGVOb2RlQ2hpbGQgPSBzZWdtZW50TWFwQ2hpbGQuZ2V0KHNlZ21lbnRLZXlDaGlsZClcbiAgICBpZiAoY2FjaGVOb2RlQ2hpbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYWJvcnRQZW5kaW5nQ2FjaGVOb2RlKHJvdXRlclN0YXRlQ2hpbGQsIGNhY2hlTm9kZUNoaWxkLCBlcnJvcilcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJlY2F1c2Ugd2UncmUgdHJhdmVyc2luZyB0aGUgc2FtZSB0cmVlIHRoYXQgd2FzXG4gICAgICAvLyB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgY2FjaGUgbm9kZXMgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIH1cbiAgfVxuICBjb25zdCByc2MgPSBjYWNoZU5vZGUucnNjXG4gIGlmIChpc0RlZmVycmVkUnNjKHJzYykpIHtcbiAgICBpZiAoZXJyb3IgPT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgd2lsbCB0cmlnZ2VyIGEgbGF6eSBmZXRjaCBkdXJpbmcgcmVuZGVyLlxuICAgICAgcnNjLnJlc29sdmUobnVsbClcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhpcyB3aWxsIHRyaWdnZXIgYW4gZXJyb3IgZHVyaW5nIHJlbmRlcmluZy5cbiAgICAgIHJzYy5yZWplY3QoZXJyb3IpXG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhIGxlYWYgc2VnbWVudC4gSWYgc28sIGl0IHdpbGwgaGF2ZSBhIGBoZWFkYCBwcm9wZXJ0eSB3aXRoXG4gIC8vIGEgcGVuZGluZyBwcm9taXNlIHRoYXQgbmVlZHMgdG8gYmUgcmVzb2x2ZWQuIElmIGFuIGVycm9yIHdhcyBwcm92aWRlZCwgd2VcbiAgLy8gd2lsbCBub3QgcmVzb2x2ZSBpdCB3aXRoIGFuIGVycm9yLCBzaW5jZSB0aGlzIGlzIHJlbmRlcmVkIGF0IHRoZSByb290IG9mXG4gIC8vIHRoZSBhcHAuIFdlIHdhbnQgdGhlIHNlZ21lbnQgdG8gZXJyb3IsIG5vdCB0aGUgZW50aXJlIGFwcC5cbiAgY29uc3QgaGVhZCA9IGNhY2hlTm9kZS5oZWFkXG4gIGlmIChpc0RlZmVycmVkUnNjKGhlYWQpKSB7XG4gICAgaGVhZC5yZXNvbHZlKG51bGwpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUNhY2hlTm9kZU9uUG9wc3RhdGVSZXN0b3JhdGlvbihcbiAgb2xkQ2FjaGVOb2RlOiBDYWNoZU5vZGUsXG4gIHJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogUmVhZHlDYWNoZU5vZGUge1xuICAvLyBBIHBvcHN0YXRlIG5hdmlnYXRpb24gcmVhZHMgZGF0YSBmcm9tIHRoZSBsb2NhbCBjYWNoZS4gSXQgZG9lcyBub3QgaXNzdWVcbiAgLy8gbmV3IG5ldHdvcmsgcmVxdWVzdHMgKHVubGVzcyB0aGUgY2FjaGUgZW50cmllcyBoYXZlIGJlZW4gZXZpY3RlZCkuIFNvLCB3ZVxuICAvLyB1cGRhdGUgdGhlIGNhY2hlIHRvIGRyb3AgdGhlIHByZWZldGNoIGRhdGEgZm9yIGFueSBzZWdtZW50IHdob3NlIGR5bmFtaWNcbiAgLy8gZGF0YSB3YXMgYWxyZWFkeSByZWNlaXZlZC4gVGhpcyBwcmV2ZW50cyBhbiB1bm5lY2Vzc2FyeSBmbGFzaCBiYWNrIHRvIFBQUlxuICAvLyBzdGF0ZSBkdXJpbmcgYSBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbi5cbiAgLy9cbiAgLy8gVGhpcyBmdW5jdGlvbiBjbG9uZXMgdGhlIGVudGlyZSBjYWNoZSBub2RlIHRyZWUgYW5kIHNldHMgdGhlIGBwcmVmZXRjaFJzY2BcbiAgLy8gZmllbGQgdG8gYG51bGxgIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyByZW5kZXJlZC4gV2UgY2FuJ3QgbXV0YXRlIHRoZSBub2RlXG4gIC8vIGluIHBsYWNlIGJlY2F1c2UgdGhpcyBpcyBhIGNvbmN1cnJlbnQgZGF0YSBzdHJ1Y3R1cmUuXG5cbiAgY29uc3Qgcm91dGVyU3RhdGVDaGlsZHJlbiA9IHJvdXRlclN0YXRlWzFdXG4gIGNvbnN0IG9sZFBhcmFsbGVsUm91dGVzID0gb2xkQ2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzXG4gIGNvbnN0IG5ld1BhcmFsbGVsUm91dGVzID0gbmV3IE1hcChvbGRQYXJhbGxlbFJvdXRlcylcbiAgZm9yIChsZXQgcGFyYWxsZWxSb3V0ZUtleSBpbiByb3V0ZXJTdGF0ZUNoaWxkcmVuKSB7XG4gICAgY29uc3Qgcm91dGVyU3RhdGVDaGlsZDogRmxpZ2h0Um91dGVyU3RhdGUgPVxuICAgICAgcm91dGVyU3RhdGVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XVxuICAgIGNvbnN0IHNlZ21lbnRDaGlsZCA9IHJvdXRlclN0YXRlQ2hpbGRbMF1cbiAgICBjb25zdCBzZWdtZW50S2V5Q2hpbGQgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50Q2hpbGQpXG4gICAgY29uc3Qgb2xkU2VnbWVudE1hcENoaWxkID0gb2xkUGFyYWxsZWxSb3V0ZXMuZ2V0KHBhcmFsbGVsUm91dGVLZXkpXG4gICAgaWYgKG9sZFNlZ21lbnRNYXBDaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBvbGRDYWNoZU5vZGVDaGlsZCA9IG9sZFNlZ21lbnRNYXBDaGlsZC5nZXQoc2VnbWVudEtleUNoaWxkKVxuICAgICAgaWYgKG9sZENhY2hlTm9kZUNoaWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgbmV3Q2FjaGVOb2RlQ2hpbGQgPSB1cGRhdGVDYWNoZU5vZGVPblBvcHN0YXRlUmVzdG9yYXRpb24oXG4gICAgICAgICAgb2xkQ2FjaGVOb2RlQ2hpbGQsXG4gICAgICAgICAgcm91dGVyU3RhdGVDaGlsZFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IG5ld1NlZ21lbnRNYXBDaGlsZCA9IG5ldyBNYXAob2xkU2VnbWVudE1hcENoaWxkKVxuICAgICAgICBuZXdTZWdtZW50TWFwQ2hpbGQuc2V0KHNlZ21lbnRLZXlDaGlsZCwgbmV3Q2FjaGVOb2RlQ2hpbGQpXG4gICAgICAgIG5ld1BhcmFsbGVsUm91dGVzLnNldChwYXJhbGxlbFJvdXRlS2V5LCBuZXdTZWdtZW50TWFwQ2hpbGQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gT25seSBzaG93IHByZWZldGNoZWQgZGF0YSBpZiB0aGUgZHluYW1pYyBkYXRhIGlzIHN0aWxsIHBlbmRpbmcuXG4gIC8vXG4gIC8vIFRlaG5pY2FsbHksIHdoYXQgd2UncmUgYWN0dWFsbHkgY2hlY2tpbmcgaXMgd2hldGhlciB0aGUgZHluYW1pYyBuZXR3b3JrXG4gIC8vIHJlc3BvbnNlIHdhcyByZWNlaXZlZC4gQnV0IHNpbmNlIGl0J3MgYSBzdHJlYW1pbmcgcmVzcG9uc2UsIHRoaXMgZG9lcyBub3RcbiAgLy8gbWVhbiB0aGF0IGFsbCB0aGUgZHluYW1pYyBkYXRhIGhhcyBmdWxseSBzdHJlYW1lZCBpbi4gSXQganVzdCBtZWFucyB0aGF0XG4gIC8vIF9zb21lXyBvZiB0aGUgZHluYW1pYyBkYXRhIHdhcyByZWNlaXZlZC4gQnV0IGFzIGEgaGV1cmlzdGljLCB3ZSBhc3N1bWUgdGhhdFxuICAvLyB0aGUgcmVzdCBkeW5hbWljIGRhdGEgd2lsbCBzdHJlYW0gaW4gcXVpY2tseSwgc28gaXQncyBzdGlsbCBiZXR0ZXIgdG8gc2tpcFxuICAvLyB0aGUgcHJlZmV0Y2ggc3RhdGUuXG4gIGNvbnN0IHJzYyA9IG9sZENhY2hlTm9kZS5yc2NcbiAgY29uc3Qgc2hvdWxkVXNlUHJlZmV0Y2ggPSBpc0RlZmVycmVkUnNjKHJzYykgJiYgcnNjLnN0YXR1cyA9PT0gJ3BlbmRpbmcnXG5cbiAgcmV0dXJuIHtcbiAgICBsYXp5RGF0YTogbnVsbCxcbiAgICByc2MsXG4gICAgaGVhZDogb2xkQ2FjaGVOb2RlLmhlYWQsXG5cbiAgICBwcmVmZXRjaEhlYWQ6IHNob3VsZFVzZVByZWZldGNoID8gb2xkQ2FjaGVOb2RlLnByZWZldGNoSGVhZCA6IFtudWxsLCBudWxsXSxcbiAgICBwcmVmZXRjaFJzYzogc2hvdWxkVXNlUHJlZmV0Y2ggPyBvbGRDYWNoZU5vZGUucHJlZmV0Y2hSc2MgOiBudWxsLFxuICAgIGxvYWRpbmc6IG9sZENhY2hlTm9kZS5sb2FkaW5nLFxuXG4gICAgLy8gVGhlc2UgYXJlIHRoZSBjbG9uZWQgY2hpbGRyZW4gd2UgY29tcHV0ZWQgYWJvdmVcbiAgICBwYXJhbGxlbFJvdXRlczogbmV3UGFyYWxsZWxSb3V0ZXMsXG5cbiAgICBuYXZpZ2F0ZWRBdDogb2xkQ2FjaGVOb2RlLm5hdmlnYXRlZEF0LFxuICB9XG59XG5cbmNvbnN0IERFRkVSUkVEID0gU3ltYm9sKClcblxudHlwZSBQZW5kaW5nRGVmZXJyZWRSc2MgPSBQcm9taXNlPFJlYWN0LlJlYWN0Tm9kZT4gJiB7XG4gIHN0YXR1czogJ3BlbmRpbmcnXG4gIHJlc29sdmU6ICh2YWx1ZTogUmVhY3QuUmVhY3ROb2RlKSA9PiB2b2lkXG4gIHJlamVjdDogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgdGFnOiBTeW1ib2xcbn1cblxudHlwZSBGdWxmaWxsZWREZWZlcnJlZFJzYyA9IFByb21pc2U8UmVhY3QuUmVhY3ROb2RlPiAmIHtcbiAgc3RhdHVzOiAnZnVsZmlsbGVkJ1xuICB2YWx1ZTogUmVhY3QuUmVhY3ROb2RlXG4gIHJlc29sdmU6ICh2YWx1ZTogUmVhY3QuUmVhY3ROb2RlKSA9PiB2b2lkXG4gIHJlamVjdDogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgdGFnOiBTeW1ib2xcbn1cblxudHlwZSBSZWplY3RlZERlZmVycmVkUnNjID0gUHJvbWlzZTxSZWFjdC5SZWFjdE5vZGU+ICYge1xuICBzdGF0dXM6ICdyZWplY3RlZCdcbiAgcmVhc29uOiBhbnlcbiAgcmVzb2x2ZTogKHZhbHVlOiBSZWFjdC5SZWFjdE5vZGUpID0+IHZvaWRcbiAgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICB0YWc6IFN5bWJvbFxufVxuXG50eXBlIERlZmVycmVkUnNjID1cbiAgfCBQZW5kaW5nRGVmZXJyZWRSc2NcbiAgfCBGdWxmaWxsZWREZWZlcnJlZFJzY1xuICB8IFJlamVjdGVkRGVmZXJyZWRSc2NcblxuLy8gVGhpcyB0eXBlIGV4aXN0cyB0byBkaXN0aW5ndWlzaCBhIERlZmVycmVkUnNjIGZyb20gYSBGbGlnaHQgcHJvbWlzZS4gSXQncyBhXG4vLyBjb21wcm9taXNlIHRvIGF2b2lkIGFkZGluZyBhbiBleHRyYSBmaWVsZCBvbiBldmVyeSBDYWNoZSBOb2RlLCB3aGljaCB3b3VsZCBiZVxuLy8gYXdrd2FyZCBiZWNhdXNlIHRoZSBwcmUtUFBSIHBhcnRzIG9mIGNvZGViYXNlIHdvdWxkIG5lZWQgdG8gYWNjb3VudCBmb3IgaXQsXG4vLyB0b28uIFdlIGNhbiByZW1vdmUgaXQgb25jZSB0eXBlIENhY2hlIE5vZGUgdHlwZSBpcyBtb3JlIHNldHRsZWQuXG5mdW5jdGlvbiBpc0RlZmVycmVkUnNjKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEZWZlcnJlZFJzYyB7XG4gIHJldHVybiB2YWx1ZSAmJiB2YWx1ZS50YWcgPT09IERFRkVSUkVEXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZURlZmVycmVkUnNjKCk6IFBlbmRpbmdEZWZlcnJlZFJzYyB7XG4gIGxldCByZXNvbHZlOiBhbnlcbiAgbGV0IHJlamVjdDogYW55XG4gIGNvbnN0IHBlbmRpbmdSc2MgPSBuZXcgUHJvbWlzZTxSZWFjdC5SZWFjdE5vZGU+KChyZXMsIHJlaikgPT4ge1xuICAgIHJlc29sdmUgPSByZXNcbiAgICByZWplY3QgPSByZWpcbiAgfSkgYXMgUGVuZGluZ0RlZmVycmVkUnNjXG4gIHBlbmRpbmdSc2Muc3RhdHVzID0gJ3BlbmRpbmcnXG4gIHBlbmRpbmdSc2MucmVzb2x2ZSA9ICh2YWx1ZTogUmVhY3QuUmVhY3ROb2RlKSA9PiB7XG4gICAgaWYgKHBlbmRpbmdSc2Muc3RhdHVzID09PSAncGVuZGluZycpIHtcbiAgICAgIGNvbnN0IGZ1bGZpbGxlZFJzYzogRnVsZmlsbGVkRGVmZXJyZWRSc2MgPSBwZW5kaW5nUnNjIGFzIGFueVxuICAgICAgZnVsZmlsbGVkUnNjLnN0YXR1cyA9ICdmdWxmaWxsZWQnXG4gICAgICBmdWxmaWxsZWRSc2MudmFsdWUgPSB2YWx1ZVxuICAgICAgcmVzb2x2ZSh2YWx1ZSlcbiAgICB9XG4gIH1cbiAgcGVuZGluZ1JzYy5yZWplY3QgPSAoZXJyb3I6IGFueSkgPT4ge1xuICAgIGlmIChwZW5kaW5nUnNjLnN0YXR1cyA9PT0gJ3BlbmRpbmcnKSB7XG4gICAgICBjb25zdCByZWplY3RlZFJzYzogUmVqZWN0ZWREZWZlcnJlZFJzYyA9IHBlbmRpbmdSc2MgYXMgYW55XG4gICAgICByZWplY3RlZFJzYy5zdGF0dXMgPSAncmVqZWN0ZWQnXG4gICAgICByZWplY3RlZFJzYy5yZWFzb24gPSBlcnJvclxuICAgICAgcmVqZWN0KGVycm9yKVxuICAgIH1cbiAgfVxuICBwZW5kaW5nUnNjLnRhZyA9IERFRkVSUkVEXG4gIHJldHVybiBwZW5kaW5nUnNjXG59XG4iXSwibmFtZXMiOlsiYWJvcnRUYXNrIiwibGlzdGVuRm9yRHluYW1pY1JlcXVlc3QiLCJzdGFydFBQUk5hdmlnYXRpb24iLCJ1cGRhdGVDYWNoZU5vZGVPblBvcHN0YXRlUmVzdG9yYXRpb24iLCJNUEFfTkFWSUdBVElPTl9UQVNLIiwicm91dGUiLCJub2RlIiwiZHluYW1pY1JlcXVlc3RUcmVlIiwiY2hpbGRyZW4iLCJuYXZpZ2F0ZWRBdCIsIm9sZENhY2hlTm9kZSIsIm9sZFJvdXRlclN0YXRlIiwibmV3Um91dGVyU3RhdGUiLCJwcmVmZXRjaERhdGEiLCJwcmVmZXRjaEhlYWQiLCJpc1ByZWZldGNoSGVhZFBhcnRpYWwiLCJpc1NhbWVQYWdlTmF2aWdhdGlvbiIsInNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdCIsInNlZ21lbnRQYXRoIiwidXBkYXRlQ2FjaGVOb2RlT25OYXZpZ2F0aW9uIiwiZGlkRmluZFJvb3RMYXlvdXQiLCJvbGRSb3V0ZXJTdGF0ZUNoaWxkcmVuIiwibmV3Um91dGVyU3RhdGVDaGlsZHJlbiIsInByZWZldGNoRGF0YUNoaWxkcmVuIiwiaXNSb290TGF5b3V0Iiwib2xkUGFyYWxsZWxSb3V0ZXMiLCJwYXJhbGxlbFJvdXRlcyIsInByZWZldGNoUGFyYWxsZWxSb3V0ZXMiLCJNYXAiLCJwYXRjaGVkUm91dGVyU3RhdGVDaGlsZHJlbiIsInRhc2tDaGlsZHJlbiIsIm5lZWRzRHluYW1pY1JlcXVlc3QiLCJkeW5hbWljUmVxdWVzdFRyZWVDaGlsZHJlbiIsInBhcmFsbGVsUm91dGVLZXkiLCJuZXdSb3V0ZXJTdGF0ZUNoaWxkIiwib2xkUm91dGVyU3RhdGVDaGlsZCIsIm9sZFNlZ21lbnRNYXBDaGlsZCIsImdldCIsInByZWZldGNoRGF0YUNoaWxkIiwibmV3U2VnbWVudENoaWxkIiwibmV3U2VnbWVudFBhdGhDaGlsZCIsImNvbmNhdCIsIm5ld1NlZ21lbnRLZXlDaGlsZCIsImNyZWF0ZVJvdXRlckNhY2hlS2V5Iiwib2xkU2VnbWVudENoaWxkIiwidW5kZWZpbmVkIiwib2xkQ2FjaGVOb2RlQ2hpbGQiLCJ0YXNrQ2hpbGQiLCJERUZBVUxUX1NFR01FTlRfS0VZIiwic3Bhd25SZXVzZWRUYXNrIiwiYmVnaW5SZW5kZXJpbmdOZXdSb3V0ZVRyZWUiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwibWF0Y2hTZWdtZW50Iiwic2V0IiwibmV3Q2FjaGVOb2RlQ2hpbGQiLCJuZXdTZWdtZW50TWFwQ2hpbGQiLCJ0YXNrQ2hpbGRSb3V0ZSIsImR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkIiwibmV3Q2FjaGVOb2RlIiwibGF6eURhdGEiLCJyc2MiLCJwcmVmZXRjaFJzYyIsImhlYWQiLCJsb2FkaW5nIiwicGF0Y2hSb3V0ZXJTdGF0ZVdpdGhOZXdDaGlsZHJlbiIsImV4aXN0aW5nQ2FjaGVOb2RlIiwicG9zc2libHlQYXJ0aWFsUHJlZmV0Y2hIZWFkIiwiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwiY3JlYXRlQ2FjaGVOb2RlT25OYXZpZ2F0aW9uIiwicm91dGVyU3RhdGUiLCJyb3V0ZXJTdGF0ZUNoaWxkcmVuIiwiaXNMZWFmU2VnbWVudCIsImNhY2hlTm9kZU5hdmlnYXRlZEF0IiwiRFlOQU1JQ19TVEFMRVRJTUVfTVMiLCJpc1ByZWZldGNoUnNjUGFydGlhbCIsInNwYXduUGVuZGluZ1Rhc2siLCJleGlzdGluZ0NhY2hlTm9kZUNoaWxkcmVuIiwiY2FjaGVOb2RlQ2hpbGRyZW4iLCJwdXNoIiwicm91dGVyU3RhdGVDaGlsZCIsImV4aXN0aW5nU2VnbWVudE1hcENoaWxkIiwic2VnbWVudENoaWxkIiwic2VnbWVudFBhdGhDaGlsZCIsInNlZ21lbnRLZXlDaGlsZCIsImV4aXN0aW5nQ2FjaGVOb2RlQ2hpbGQiLCJiYXNlUm91dGVyU3RhdGUiLCJuZXdDaGlsZHJlbiIsImNsb25lIiwibmV3VGFzayIsImNyZWF0ZVBlbmRpbmdDYWNoZU5vZGUiLCJyZXVzZWRSb3V0ZXJTdGF0ZSIsInRhc2siLCJyZXNwb25zZVByb21pc2UiLCJ0aGVuIiwiZmxpZ2h0RGF0YSIsIm5vcm1hbGl6ZWRGbGlnaHREYXRhIiwidHJlZSIsInNlcnZlclJvdXRlclN0YXRlIiwic2VlZERhdGEiLCJkeW5hbWljRGF0YSIsImR5bmFtaWNIZWFkIiwid3JpdGVEeW5hbWljRGF0YUludG9QZW5kaW5nVGFzayIsImVycm9yIiwicm9vdFRhc2siLCJpIiwic2VnbWVudCIsInRhc2tTZWdtZW50IiwiZmluaXNoVGFza1VzaW5nRHluYW1pY0RhdGFQYXlsb2FkIiwidGFza05vZGUiLCJmaW5pc2hQZW5kaW5nQ2FjaGVOb2RlIiwic2VydmVyQ2hpbGRyZW4iLCJkeW5hbWljRGF0YUNoaWxkcmVuIiwic2VydmVyUm91dGVyU3RhdGVDaGlsZCIsImR5bmFtaWNEYXRhQ2hpbGQiLCJzaXplIiwibWF5YmVQcmVmZXRjaFJzYyIsIm1heWJlUHJlZmV0Y2hMb2FkaW5nIiwiY3JlYXRlRGVmZXJyZWRSc2MiLCJjYWNoZU5vZGUiLCJ0YXNrU3RhdGUiLCJzZXJ2ZXJTdGF0ZSIsInRhc2tTdGF0ZUNoaWxkcmVuIiwic2VydmVyU3RhdGVDaGlsZHJlbiIsImRhdGFDaGlsZHJlbiIsInRhc2tTdGF0ZUNoaWxkIiwic2VydmVyU3RhdGVDaGlsZCIsImRhdGFDaGlsZCIsInNlZ21lbnRNYXBDaGlsZCIsInRhc2tTZWdtZW50Q2hpbGQiLCJ0YXNrU2VnbWVudEtleUNoaWxkIiwiY2FjaGVOb2RlQ2hpbGQiLCJhYm9ydFBlbmRpbmdDYWNoZU5vZGUiLCJkeW5hbWljU2VnbWVudERhdGEiLCJpc0RlZmVycmVkUnNjIiwicmVzb2x2ZSIsInZhbHVlcyIsInJlamVjdCIsIm5ld1BhcmFsbGVsUm91dGVzIiwic2hvdWxkVXNlUHJlZmV0Y2giLCJzdGF0dXMiLCJERUZFUlJFRCIsIlN5bWJvbCIsInZhbHVlIiwidGFnIiwicGVuZGluZ1JzYyIsIlByb21pc2UiLCJyZXMiLCJyZWoiLCJmdWxmaWxsZWRSc2MiLCJyZWplY3RlZFJzYyIsInJlYXNvbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((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 DYNAMIC_STALETIME_MS: function() {\n return DYNAMIC_STALETIME_MS;\n },\n STATIC_STALETIME_MS: function() {\n return STATIC_STALETIME_MS;\n },\n createSeededPrefetchCacheEntry: function() {\n return createSeededPrefetchCacheEntry;\n },\n getOrCreatePrefetchCacheEntry: function() {\n return getOrCreatePrefetchCacheEntry;\n },\n prunePrefetchCache: function() {\n return prunePrefetchCache;\n }\n});\nconst _fetchserverresponse = __webpack_require__(/*! ./fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _prefetchreducer = __webpack_require__(/*! ./reducers/prefetch-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js\");\nconst INTERCEPTION_CACHE_KEY_MARKER = '%';\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 createPrefetchCacheKeyImpl(url, includeSearchParams, prefix) {\n // Initially we only use the pathname as the cache key. We don't want to include\n // search params so that multiple URLs with the same search parameter can re-use\n // loading states.\n let pathnameFromUrl = url.pathname;\n // RSC responses can differ based on search params, specifically in the case where we aren't\n // returning a partial response (ie with `PrefetchKind.AUTO`).\n // In the auto case, since loading.js & layout.js won't have access to search params,\n // we can safely re-use that cache entry. But for full prefetches, we should not\n // re-use the cache entry as the response may differ.\n if (includeSearchParams) {\n // if we have a full prefetch, we can include the search param in the key,\n // as we'll be getting back a full response. The server might have read the search\n // params when generating the full response.\n pathnameFromUrl += url.search;\n }\n if (prefix) {\n return \"\" + prefix + INTERCEPTION_CACHE_KEY_MARKER + pathnameFromUrl;\n }\n return pathnameFromUrl;\n}\nfunction createPrefetchCacheKey(url, kind, nextUrl) {\n return createPrefetchCacheKeyImpl(url, kind === _routerreducertypes.PrefetchKind.FULL, nextUrl);\n}\nfunction getExistingCacheEntry(url, kind, nextUrl, prefetchCache, allowAliasing) {\n if (kind === void 0) kind = _routerreducertypes.PrefetchKind.TEMPORARY;\n // We first check if there's a more specific interception route prefetch entry\n // This is because when we detect a prefetch that corresponds with an interception route, we prefix it with nextUrl (see `createPrefetchCacheKey`)\n // to avoid conflicts with other pages that may have the same URL but render different things depending on the `Next-URL` header.\n for (const maybeNextUrl of [\n nextUrl,\n null\n ]){\n const cacheKeyWithParams = createPrefetchCacheKeyImpl(url, true, maybeNextUrl);\n const cacheKeyWithoutParams = createPrefetchCacheKeyImpl(url, false, maybeNextUrl);\n // First, we check if we have a cache entry that exactly matches the URL\n const cacheKeyToUse = url.search ? cacheKeyWithParams : cacheKeyWithoutParams;\n const existingEntry = prefetchCache.get(cacheKeyToUse);\n if (existingEntry && allowAliasing) {\n // We know we're returning an aliased entry when the pathname matches but the search params don't,\n const isAliased = existingEntry.url.pathname === url.pathname && existingEntry.url.search !== url.search;\n if (isAliased) {\n return {\n ...existingEntry,\n aliased: true\n };\n }\n return existingEntry;\n }\n // If the request contains search params, and we're not doing a full prefetch, we can return the\n // param-less entry if it exists.\n // This is technically covered by the check at the bottom of this function, which iterates over cache entries,\n // but lets us arrive there quicker in the param-full case.\n const entryWithoutParams = prefetchCache.get(cacheKeyWithoutParams);\n if (false) {}\n }\n // If we've gotten to this point, we didn't find a specific cache entry that matched\n // the request URL.\n // We attempt a partial match by checking if there's a cache entry with the same pathname.\n // Regardless of what we find, since it doesn't correspond with the requested URL, we'll mark it \"aliased\".\n // This will signal to the router that it should only apply the loading state on the prefetched data.\n if (false) {}\n return undefined;\n}\nfunction getOrCreatePrefetchCacheEntry(param) {\n let { url, nextUrl, tree, prefetchCache, kind, allowAliasing = true } = param;\n const existingCacheEntry = getExistingCacheEntry(url, kind, nextUrl, prefetchCache, allowAliasing);\n if (existingCacheEntry) {\n // Grab the latest status of the cache entry and update it\n existingCacheEntry.status = getPrefetchEntryCacheStatus(existingCacheEntry);\n // when `kind` is provided, an explicit prefetch was requested.\n // if the requested prefetch is \"full\" and the current cache entry wasn't, we want to re-prefetch with the new intent\n const switchedToFullPrefetch = existingCacheEntry.kind !== _routerreducertypes.PrefetchKind.FULL && kind === _routerreducertypes.PrefetchKind.FULL;\n if (switchedToFullPrefetch) {\n // If we switched to a full prefetch, validate that the existing cache entry contained partial data.\n // It's possible that the cache entry was seeded with full data but has a cache type of \"auto\" (ie when cache entries\n // are seeded but without a prefetch intent)\n existingCacheEntry.data.then((prefetchResponse)=>{\n const isFullPrefetch = Array.isArray(prefetchResponse.flightData) && prefetchResponse.flightData.some((flightData)=>{\n // If we started rendering from the root and we returned RSC data (seedData), we already had a full prefetch.\n return flightData.isRootRender && flightData.seedData !== null;\n });\n if (!isFullPrefetch) {\n return createLazyPrefetchEntry({\n tree,\n url,\n nextUrl,\n prefetchCache,\n // If we didn't get an explicit prefetch kind, we want to set a temporary kind\n // rather than assuming the same intent as the previous entry, to be consistent with how we\n // lazily create prefetch entries when intent is left unspecified.\n kind: kind != null ? kind : _routerreducertypes.PrefetchKind.TEMPORARY\n });\n }\n });\n }\n // If the existing cache entry was marked as temporary, it means it was lazily created when attempting to get an entry,\n // where we didn't have the prefetch intent. Now that we have the intent (in `kind`), we want to update the entry to the more accurate kind.\n if (kind && existingCacheEntry.kind === _routerreducertypes.PrefetchKind.TEMPORARY) {\n existingCacheEntry.kind = kind;\n }\n // We've determined that the existing entry we found is still valid, so we return it.\n return existingCacheEntry;\n }\n // If we didn't return an entry, create a new one.\n return createLazyPrefetchEntry({\n tree,\n url,\n nextUrl,\n prefetchCache,\n kind: kind || _routerreducertypes.PrefetchKind.TEMPORARY\n });\n}\n/*\n * Used to take an existing cache entry and prefix it with the nextUrl, if it exists.\n * This ensures that we don't have conflicting cache entries for the same URL (as is the case with route interception).\n */ function prefixExistingPrefetchCacheEntry(param) {\n let { url, nextUrl, prefetchCache, existingCacheKey } = param;\n const existingCacheEntry = prefetchCache.get(existingCacheKey);\n if (!existingCacheEntry) {\n // no-op -- there wasn't an entry to move\n return;\n }\n const newCacheKey = createPrefetchCacheKey(url, existingCacheEntry.kind, nextUrl);\n prefetchCache.set(newCacheKey, {\n ...existingCacheEntry,\n key: newCacheKey\n });\n prefetchCache.delete(existingCacheKey);\n return newCacheKey;\n}\nfunction createSeededPrefetchCacheEntry(param) {\n let { nextUrl, tree, prefetchCache, url, data, kind } = param;\n // The initial cache entry technically includes full data, but it isn't explicitly prefetched -- we just seed the\n // prefetch cache so that we can skip an extra prefetch request later, since we already have the data.\n // if the prefetch corresponds with an interception route, we use the nextUrl to prefix the cache key\n const prefetchCacheKey = data.couldBeIntercepted ? createPrefetchCacheKey(url, kind, nextUrl) : createPrefetchCacheKey(url, kind);\n const prefetchEntry = {\n treeAtTimeOfPrefetch: tree,\n data: Promise.resolve(data),\n kind,\n prefetchTime: Date.now(),\n lastUsedTime: Date.now(),\n staleTime: data.staleTime,\n key: prefetchCacheKey,\n status: _routerreducertypes.PrefetchCacheEntryStatus.fresh,\n url\n };\n prefetchCache.set(prefetchCacheKey, prefetchEntry);\n return prefetchEntry;\n}\n/**\n * Creates a prefetch entry entry and enqueues a fetch request to retrieve the data.\n */ function createLazyPrefetchEntry(param) {\n let { url, kind, tree, nextUrl, prefetchCache } = param;\n const prefetchCacheKey = createPrefetchCacheKey(url, kind);\n // initiates the fetch request for the prefetch and attaches a listener\n // to the promise to update the prefetch cache entry when the promise resolves (if necessary)\n const data = _prefetchreducer.prefetchQueue.enqueue(()=>(0, _fetchserverresponse.fetchServerResponse)(url, {\n flightRouterState: tree,\n nextUrl,\n prefetchKind: kind\n }).then((prefetchResponse)=>{\n // TODO: `fetchServerResponse` should be more tighly coupled to these prefetch cache operations\n // to avoid drift between this cache key prefixing logic\n // (which is currently directly influenced by the server response)\n let newCacheKey;\n if (prefetchResponse.couldBeIntercepted) {\n // Determine if we need to prefix the cache key with the nextUrl\n newCacheKey = prefixExistingPrefetchCacheEntry({\n url,\n existingCacheKey: prefetchCacheKey,\n nextUrl,\n prefetchCache\n });\n }\n // If the prefetch was a cache hit, we want to update the existing cache entry to reflect that it was a full prefetch.\n // This is because we know that a static response will contain the full RSC payload, and can be updated to respect the `static`\n // staleTime.\n if (prefetchResponse.prerendered) {\n const existingCacheEntry = prefetchCache.get(newCacheKey != null ? newCacheKey : prefetchCacheKey);\n if (existingCacheEntry) {\n existingCacheEntry.kind = _routerreducertypes.PrefetchKind.FULL;\n if (prefetchResponse.staleTime !== -1) {\n // This is the stale time that was collected by the server during\n // static generation. Use this in place of the default stale time.\n existingCacheEntry.staleTime = prefetchResponse.staleTime;\n }\n }\n }\n return prefetchResponse;\n }));\n const prefetchEntry = {\n treeAtTimeOfPrefetch: tree,\n data,\n kind,\n prefetchTime: Date.now(),\n lastUsedTime: null,\n staleTime: -1,\n key: prefetchCacheKey,\n status: _routerreducertypes.PrefetchCacheEntryStatus.fresh,\n url\n };\n prefetchCache.set(prefetchCacheKey, prefetchEntry);\n return prefetchEntry;\n}\nfunction prunePrefetchCache(prefetchCache) {\n for (const [href, prefetchCacheEntry] of prefetchCache){\n if (getPrefetchEntryCacheStatus(prefetchCacheEntry) === _routerreducertypes.PrefetchCacheEntryStatus.expired) {\n prefetchCache.delete(href);\n }\n }\n}\nconst DYNAMIC_STALETIME_MS = Number(\"0\") * 1000;\nconst STATIC_STALETIME_MS = Number(\"300\") * 1000;\nfunction getPrefetchEntryCacheStatus(param) {\n let { kind, prefetchTime, lastUsedTime } = param;\n // We will re-use the cache entry data for up to the `dynamic` staletime window.\n if (Date.now() < (lastUsedTime != null ? lastUsedTime : prefetchTime) + DYNAMIC_STALETIME_MS) {\n return lastUsedTime ? _routerreducertypes.PrefetchCacheEntryStatus.reusable : _routerreducertypes.PrefetchCacheEntryStatus.fresh;\n }\n // For \"auto\" prefetching, we'll re-use only the loading boundary for up to `static` staletime window.\n // A stale entry will only re-use the `loading` boundary, not the full data.\n // This will trigger a \"lazy fetch\" for the full data.\n if (kind === _routerreducertypes.PrefetchKind.AUTO) {\n if (Date.now() < prefetchTime + STATIC_STALETIME_MS) {\n return _routerreducertypes.PrefetchCacheEntryStatus.stale;\n }\n }\n // for \"full\" prefetching, we'll re-use the cache entry data for up to `static` staletime window.\n if (kind === _routerreducertypes.PrefetchKind.FULL) {\n if (Date.now() < prefetchTime + STATIC_STALETIME_MS) {\n return _routerreducertypes.PrefetchCacheEntryStatus.reusable;\n }\n }\n return _routerreducertypes.PrefetchCacheEntryStatus.expired;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=prefetch-cache-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3ByZWZldGNoLWNhY2hlLXV0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTRZYUEsb0JBQW9CO2VBQXBCQTs7SUFHQUMsbUJBQW1CO2VBQW5CQTs7SUFuSUdDLGdDQUE4QjtlQUE5QkE7O0lBOUdBQyw2QkFBNkI7ZUFBN0JBOztJQStOQUMsa0JBQWtCO2VBQWxCQTs7O2lEQTFYVDtnREFNQTs2Q0FDdUI7QUFFOUIsTUFBTUMsZ0NBQWdDO0FBVXRDOzs7Ozs7Q0FNQyxHQUNELFNBQVNDLDJCQUNQQyxHQUFRLEVBQ1JDLG1CQUE0QixFQUM1QkMsTUFBc0I7SUFFdEIsZ0ZBQWdGO0lBQ2hGLGdGQUFnRjtJQUNoRixrQkFBa0I7SUFDbEIsSUFBSUMsa0JBQWtCSCxJQUFJSSxRQUFRO0lBRWxDLDRGQUE0RjtJQUM1Riw4REFBOEQ7SUFDOUQscUZBQXFGO0lBQ3JGLGdGQUFnRjtJQUNoRixxREFBcUQ7SUFDckQsSUFBSUgscUJBQXFCO1FBQ3ZCLDBFQUEwRTtRQUMxRSxrRkFBa0Y7UUFDbEYsNENBQTRDO1FBQzVDRSxtQkFBbUJILElBQUlLLE1BQU07SUFDL0I7SUFFQSxJQUFJSCxRQUFRO1FBQ1YsT0FBUSxLQUFFQSxTQUFTSixnQ0FBZ0NLO0lBQ3JEO0lBRUEsT0FBT0E7QUFDVDtBQUVBLFNBQVNHLHVCQUNQTixHQUFRLEVBQ1JPLElBQThCLEVBQzlCQyxPQUF1QjtJQUV2QixPQUFPVCwyQkFBMkJDLEtBQUtPLFNBQVNFLG9CQUFBQSxZQUFZLENBQUNDLElBQUksRUFBRUY7QUFDckU7QUFFQSxTQUFTRyxzQkFDUFgsR0FBUSxFQUNSTyxJQUEyQyxFQUMzQ0MsT0FBc0IsRUFDdEJJLGFBQThDLEVBQzlDQyxhQUFzQjtJQUh0Qk4sSUFBQUEsU0FBQUEsS0FBQUEsR0FBQUEsT0FBcUJFLG9CQUFBQSxZQUFZLENBQUNLLFNBQVM7SUFLM0MsOEVB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LHFCQUFxQjtZQUNuRCxPQUFPc0Usb0JBQUFBLHdCQUF3QixDQUFDYyxRQUFRO1FBQzFDO0lBQ0Y7SUFFQSxPQUFPZCxvQkFBQUEsd0JBQXdCLENBQUNVLE9BQU87QUFDekMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcHJlZmV0Y2gtY2FjaGUtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZmV0Y2hTZXJ2ZXJSZXNwb25zZSxcbiAgdHlwZSBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0LFxufSBmcm9tICcuL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcbmltcG9ydCB7XG4gIFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cyxcbiAgdHlwZSBQcmVmZXRjaENhY2hlRW50cnksXG4gIFByZWZldGNoS2luZCxcbiAgdHlwZSBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbn0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IHByZWZldGNoUXVldWUgfSBmcm9tICcuL3JlZHVjZXJzL3ByZWZldGNoLXJlZHVjZXInXG5cbmNvbnN0IElOVEVSQ0VQVElPTl9DQUNIRV9LRVlfTUFSS0VSID0gJyUnXG5cbmV4cG9ydCB0eXBlIEFsaWFzZWRQcmVmZXRjaENhY2hlRW50cnkgPSBQcmVmZXRjaENhY2hlRW50cnkgJiB7XG4gIC8qKiBUaGlzIGlzIGEgc3BlY2lhbCBwcm9wZXJ0eSB0aGF0IGluZGljYXRlcyBhIHByZWZldGNoIGVudHJ5IGFzc29jaWF0ZWQgd2l0aCBhIGRpZmZlcmVudCBVUkxcbiAgICogd2FzIHJldHVybmVkIHJhdGhlciB0aGFuIHRoZSByZXF1ZXN0ZWQgVVJMLiBUaGlzIHNpZ25hbHMgdG8gdGhlIHJvdXRlciB0aGF0IGl0IHNob3VsZCBvbmx5XG4gICAqIGFwcGx5IHRoZSBwYXJ0IHRoYXQgZG9lc24ndCBkZXBlbmQgb24gc2VhcmNoUGFyYW1zIChzcGVjaWZpY2FsbHkgdGhlIGxvYWRpbmcgc3RhdGUpLlxuICAgKi9cbiAgYWxpYXNlZD86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgY2FjaGUga2V5IGZvciB0aGUgcm91dGVyIHByZWZldGNoIGNhY2hlXG4gKlxuICogQHBhcmFtIHVybCAtIFRoZSBVUkwgYmVpbmcgbmF2aWdhdGVkIHRvXG4gKiBAcGFyYW0gbmV4dFVybCAtIGFuIGludGVybmFsIFVSTCwgcHJpbWFyaWx5IHVzZWQgZm9yIGhhbmRsaW5nIHJld3JpdGVzLiBEZWZhdWx0cyB0byAnLycuXG4gKiBAcmV0dXJuIFRoZSBnZW5lcmF0ZWQgcHJlZmV0Y2ggY2FjaGUga2V5LlxuICovXG5mdW5jdGlvbiBjcmVhdGVQcmVmZXRjaENhY2hlS2V5SW1wbChcbiAgdXJsOiBVUkwsXG4gIGluY2x1ZGVTZWFyY2hQYXJhbXM6IGJvb2xlYW4sXG4gIHByZWZpeD86IHN0cmluZyB8IG51bGxcbikge1xuICAvLyBJbml0aWFsbHkgd2Ugb25seSB1c2UgdGhlIHBhdGhuYW1lIGFzIHRoZSBjYWNoZSBrZXkuIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZVxuICAvLyBzZWFyY2ggcGFyYW1zIHNvIHRoYXQgbXVsdGlwbGUgVVJMcyB3aXRoIHRoZSBzYW1lIHNlYXJjaCBwYXJhbWV0ZXIgY2FuIHJlLXVzZVxuICAvLyBsb2FkaW5nIHN0YXRlcy5cbiAgbGV0IHBhdGhuYW1lRnJvbVVybCA9IHVybC5wYXRobmFtZVxuXG4gIC8vIFJTQyByZXNwb25zZXMgY2FuIGRpZmZlciBiYXNlZCBvbiBzZWFyY2ggcGFyYW1zLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGNhc2Ugd2hlcmUgd2UgYXJlbid0XG4gIC8vIHJldHVybmluZyBhIHBhcnRpYWwgcmVzcG9uc2UgKGllIHdpdGggYFByZWZldGNoS2luZC5BVVRPYCkuXG4gIC8vIEluIHRoZSBhdXRvIGNhc2UsIHNpbmNlIGxvYWRpbmcuanMgJiBsYXlvdXQuanMgd29uJ3QgaGF2ZSBhY2Nlc3MgdG8gc2VhcmNoIHBhcmFtcyxcbiAgLy8gd2UgY2FuIHNhZmVseSByZS11c2UgdGhhdCBjYWNoZSBlbnRyeS4gQnV0IGZvciBmdWxsIHByZWZldGNoZXMsIHdlIHNob3VsZCBub3RcbiAgLy8gcmUtdXNlIHRoZSBjYWNoZSBlbnRyeSBhcyB0aGUgcmVzcG9uc2UgbWF5IGRpZmZlci5cbiAgaWYgKGluY2x1ZGVTZWFyY2hQYXJhbXMpIHtcbiAgICAvLyBpZiB3ZSBoYXZlIGEgZnVsbCBwcmVmZXRjaCwgd2UgY2FuIGluY2x1ZGUgdGhlIHNlYXJjaCBwYXJhbSBpbiB0aGUga2V5LFxuICAgIC8vIGFzIHdlJ2xsIGJlIGdldHRpbmcgYmFjayBhIGZ1bGwgcmVzcG9uc2UuIFRoZSBzZXJ2ZXIgbWlnaHQgaGF2ZSByZWFkIHRoZSBzZWFyY2hcbiAgICAvLyBwYXJhbXMgd2hlbiBnZW5lcmF0aW5nIHRoZSBmdWxsIHJlc3BvbnNlLlxuICAgIHBhdGhuYW1lRnJvbVVybCArPSB1cmwuc2VhcmNoXG4gIH1cblxuICBpZiAocHJlZml4KSB7XG4gICAgcmV0dXJuIGAke3ByZWZpeH0ke0lOVEVSQ0VQVElPTl9DQUNIRV9LRVlfTUFSS0VSfSR7cGF0aG5hbWVGcm9tVXJsfWBcbiAgfVxuXG4gIHJldHVybiBwYXRobmFtZUZyb21Vcmxcbn1cblxuZnVuY3Rpb24gY3JlYXRlUHJlZmV0Y2hDYWNoZUtleShcbiAgdXJsOiBVUkwsXG4gIGtpbmQ6IFByZWZldGNoS2luZCB8IHVuZGVmaW5lZCxcbiAgbmV4dFVybD86IHN0cmluZyB8IG51bGxcbikge1xuICByZXR1cm4gY3JlYXRlUHJlZmV0Y2hDYWNoZUtleUltcGwodXJsLCBraW5kID09PSBQcmVmZXRjaEtpbmQuRlVMTCwgbmV4dFVybClcbn1cblxuZnVuY3Rpb24gZ2V0RXhpc3RpbmdDYWNoZUVudHJ5KFxuICB1cmw6IFVSTCxcbiAga2luZDogUHJlZmV0Y2hLaW5kID0gUHJlZmV0Y2hLaW5kLlRFTVBPUkFSWSxcbiAgbmV4dFVybDogc3RyaW5nIHwgbnVsbCxcbiAgcHJlZmV0Y2hDYWNoZTogTWFwPHN0cmluZywgUHJlZmV0Y2hDYWNoZUVudHJ5PixcbiAgYWxsb3dBbGlhc2luZzogYm9vbGVhblxuKTogQWxpYXNlZFByZWZldGNoQ2FjaGVFbnRyeSB8IHVuZGVmaW5lZCB7XG4gIC8vIFdlIGZpcnN0IGNoZWNrIGlmIHRoZXJlJ3MgYSBtb3JlIHNwZWNpZmljIGludGVyY2VwdGlvbiByb3V0ZSBwcmVmZXRjaCBlbnRyeVxuICAvLyBUaGlzIGlzIGJlY2F1c2Ugd2hlbiB3ZSBkZXRlY3QgYSBwcmVmZXRjaCB0aGF0IGNvcnJlc3BvbmRzIHdpdGggYW4gaW50ZXJjZXB0aW9uIHJvdXRlLCB3ZSBwcmVmaXggaXQgd2l0aCBuZXh0VXJsIChzZWUgYGNyZWF0ZVByZWZldGNoQ2FjaGVLZXlgKVxuICAvLyB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBvdGhlciBwYWdlcyB0aGF0IG1heSBoYXZlIHRoZSBzYW1lIFVSTCBidXQgcmVuZGVyIGRpZmZlcmVudCB0aGluZ3MgZGVwZW5kaW5nIG9uIHRoZSBgTmV4dC1VUkxgIGhlYWRlci5cbiAgZm9yIChjb25zdCBtYXliZU5leHRVcmwgb2YgW25leHRVcmwsIG51bGxdKSB7XG4gICAgY29uc3QgY2FjaGVLZXlXaXRoUGFyYW1zID0gY3JlYXRlUHJlZmV0Y2hDYWNoZUtleUltcGwoXG4gICAgICB1cmwsXG4gICAgICB0cnVlLFxuICAgICAgbWF5YmVOZXh0VXJsXG4gICAgKVxuICAgIGNvbnN0IGNhY2hlS2V5V2l0aG91dFBhcmFtcyA9IGNyZWF0ZVByZWZldGNoQ2FjaGVLZXlJbXBsKFxuICAgICAgdXJsLFxuICAgICAgZmFsc2UsXG4gICAgICBtYXliZU5leHRVcmxcbiAgICApXG5cbiAgICAvLyBGaXJzdCwgd2UgY2hlY2sgaWYgd2UgaGF2ZSBhIGNhY2hlIGVudHJ5IHRoYXQgZXhhY3RseSBtYXRjaGVzIHRoZSBVUkxcbiAgICBjb25zdCBjYWNoZUtleVRvVXNlID0gdXJsLnNlYXJjaFxuICAgICAgPyBjYWNoZUtleVdpdGhQYXJhbXNcbiAgICAgIDogY2FjaGVLZXlXaXRob3V0UGFyYW1zXG5cbiAgICBjb25zdCBleGlzdGluZ0VudHJ5ID0gcHJlZmV0Y2hDYWNoZS5nZXQoY2FjaGVLZXlUb1VzZSlcbiAgICBpZiAoZXhpc3RpbmdFbnRyeSAmJiBhbGxvd0FsaWFzaW5nKSB7XG4gICAgICAvLyBXZSBrbm93IHdlJ3JlIHJldHVybmluZyBhbiBhbGlhc2VkIGVudHJ5IHdoZW4gdGhlIHBhdGhuYW1lIG1hdGNoZXMgYnV0IHRoZSBzZWFyY2ggcGFyYW1zIGRvbid0LFxuICAgICAgY29uc3QgaXNBbGlhc2VkID1cbiAgICAgICAgZXhpc3RpbmdFbnRyeS51cmwucGF0aG5hbWUgPT09IHVybC5wYXRobmFtZSAmJlxuICAgICAgICBleGlzdGluZ0VudHJ5LnVybC5zZWFyY2ggIT09IHVybC5zZWFyY2hcblxuICAgICAgaWYgKGlzQWxpYXNlZCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmV4aXN0aW5nRW50cnksXG4gICAgICAgICAgYWxpYXNlZDogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXhpc3RpbmdFbnRyeVxuICAgIH1cblxuICAgIC8vIElmIHRoZSByZXF1ZXN0IGNvbnRhaW5zIHNlYXJjaCBwYXJhbXMsIGFuZCB3ZSdyZSBub3QgZG9pbmcgYSBmdWxsIHByZWZldGNoLCB3ZSBjYW4gcmV0dXJuIHRoZVxuICAgIC8vIHBhcmFtLWxlc3MgZW50cnkgaWYgaXQgZXhpc3RzLlxuICAgIC8vIFRoaXMgaXMgdGVjaG5pY2FsbHkgY292ZXJlZCBieSB0aGUgY2hlY2sgYXQgdGhlIGJvdHRvbSBvZiB0aGlzIGZ1bmN0aW9uLCB3aGljaCBpdGVyYXRlcyBvdmVyIGNhY2hlIGVudHJpZXMsXG4gICAgLy8gYnV0IGxldHMgdXMgYXJyaXZlIHRoZXJlIHF1aWNrZXIgaW4gdGhlIHBhcmFtLWZ1bGwgY2FzZS5cbiAgICBjb25zdCBlbnRyeVdpdGhvdXRQYXJhbXMgPSBwcmVmZXRjaENhY2hlLmdldChjYWNoZUtleVdpdGhvdXRQYXJhbXMpXG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcgJiZcbiAgICAgIGFsbG93QWxpYXNpbmcgJiZcbiAgICAgIHVybC5zZWFyY2ggJiZcbiAgICAgIGtpbmQgIT09IFByZWZldGNoS2luZC5GVUxMICYmXG4gICAgICBlbnRyeVdpdGhvdXRQYXJhbXMgJiZcbiAgICAgIC8vIFdlIHNob3VsZG4ndCByZXR1cm4gdGhlIGFsaWFzZWQgZW50cnkgaWYgaXQgd2FzIHJlbG9jYXRlZCB0byBhIG5ldyBjYWNoZSBrZXkuXG4gICAgICAvLyBTaW5jZSBpdCdzIHJld3JpdHRlbiwgaXQgY291bGQgcmVzcG9uZCB3aXRoIGEgY29tcGxldGVseSBkaWZmZXJlbnQgbG9hZGluZyBzdGF0ZS5cbiAgICAgICFlbnRyeVdpdGhvdXRQYXJhbXMua2V5LmluY2x1ZGVzKElOVEVSQ0VQVElPTl9DQUNIRV9LRVlfTUFSS0VSKVxuICAgICkge1xuICAgICAgcmV0dXJuIHsgLi4uZW50cnlXaXRob3V0UGFyYW1zLCBhbGlhc2VkOiB0cnVlIH1cbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSd2ZSBnb3R0ZW4gdG8gdGhpcyBwb2ludCwgd2UgZGlkbid0IGZpbmQgYSBzcGVjaWZpYyBjYWNoZSBlbnRyeSB0aGF0IG1hdGNoZWRcbiAgLy8gdGhlIHJlcXVlc3QgVVJMLlxuICAvLyBXZSBhdHRlbXB0IGEgcGFydGlhbCBtYXRjaCBieSBjaGVja2luZyBpZiB0aGVyZSdzIGEgY2FjaGUgZW50cnkgd2l0aCB0aGUgc2FtZSBwYXRobmFtZS5cbiAgLy8gUmVnYXJkbGVzcyBvZiB3aGF0IHdlIGZpbmQsIHNpbmNlIGl0IGRvZXNuJ3QgY29ycmVzcG9uZCB3aXRoIHRoZSByZXF1ZXN0ZWQgVVJMLCB3ZSdsbCBtYXJrIGl0IFwiYWxpYXNlZFwiLlxuICAvLyBUaGlzIHdpbGwgc2lnbmFsIHRvIHRoZSByb3V0ZXIgdGhhdCBpdCBzaG91bGQgb25seSBhcHBseSB0aGUgbG9hZGluZyBzdGF0ZSBvbiB0aGUgcHJlZmV0Y2hlZCBkYXRhLlxuICBpZiAoXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcgJiZcbiAgICBraW5kICE9PSBQcmVmZXRjaEtpbmQuRlVMTCAmJlxuICAgIGFsbG93QWxpYXNpbmdcbiAgKSB7XG4gICAgZm9yIChjb25zdCBjYWNoZUVudHJ5IG9mIHByZWZldGNoQ2FjaGUudmFsdWVzKCkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgY2FjaGVFbnRyeS51cmwucGF0aG5hbWUgPT09IHVybC5wYXRobmFtZSAmJlxuICAgICAgICAvLyBXZSBzaG91bGRuJ3QgcmV0dXJuIHRoZSBhbGlhc2VkIGVudHJ5IGlmIGl0IHdhcyByZWxvY2F0ZWQgdG8gYSBuZXcgY2FjaGUga2V5LlxuICAgICAgICAvLyBTaW5jZSBpdCdzIHJld3JpdHRlbiwgaXQgY291bGQgcmVzcG9uZCB3aXRoIGEgY29tcGxldGVseSBkaWZmZXJlbnQgbG9hZGluZyBzdGF0ZS5cbiAgICAgICAgIWNhY2hlRW50cnkua2V5LmluY2x1ZGVzKElOVEVSQ0VQVElPTl9DQUNIRV9LRVlfTUFSS0VSKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB7IC4uLmNhY2hlRW50cnksIGFsaWFzZWQ6IHRydWUgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgcHJlZmV0Y2ggY2FjaGUgZW50cnkgaWYgb25lIGV4aXN0cy4gT3RoZXJ3aXNlIGNyZWF0ZXMgYSBuZXcgb25lIGFuZCBlbnF1ZXVlcyBhIGZldGNoIHJlcXVlc3RcbiAqIHRvIHJldHJpZXZlIHRoZSBwcmVmZXRjaCBkYXRhIGZyb20gdGhlIHNlcnZlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9yQ3JlYXRlUHJlZmV0Y2hDYWNoZUVudHJ5KHtcbiAgdXJsLFxuICBuZXh0VXJsLFxuICB0cmVlLFxuICBwcmVmZXRjaENhY2hlLFxuICBraW5kLFxuICBhbGxvd0FsaWFzaW5nID0gdHJ1ZSxcbn06IFBpY2s8UmVhZG9ubHlSZWR1Y2VyU3RhdGUsICduZXh0VXJsJyB8ICdwcmVmZXRjaENhY2hlJyB8ICd0cmVlJz4gJiB7XG4gIHVybDogVVJMXG4gIGtpbmQ/OiBQcmVmZXRjaEtpbmRcbiAgYWxsb3dBbGlhc2luZzogYm9vbGVhblxufSk6IEFsaWFzZWRQcmVmZXRjaENhY2hlRW50cnkge1xuICBjb25zdCBleGlzdGluZ0NhY2hlRW50cnkgPSBnZXRFeGlzdGluZ0NhY2hlRW50cnkoXG4gICAgdXJsLFxuICAgIGtpbmQsXG4gICAgbmV4dFVybCxcbiAgICBwcmVmZXRjaENhY2hlLFxuICAgIGFsbG93QWxpYXNpbmdcbiAgKVxuXG4gIGlmIChleGlzdGluZ0NhY2hlRW50cnkpIHtcbiAgICAvLyBHcmFiIHRoZSBsYXRlc3Qgc3RhdHVzIG9mIHRoZSBjYWNoZSBlbnRyeSBhbmQgdXBkYXRlIGl0XG4gICAgZXhpc3RpbmdDYWNoZUVudHJ5LnN0YXR1cyA9IGdldFByZWZldGNoRW50cnlDYWNoZVN0YXR1cyhleGlzdGluZ0NhY2hlRW50cnkpXG5cbiAgICAvLyB3aGVuIGBraW5kYCBpcyBwcm92aWRlZCwgYW4gZXhwbGljaXQgcHJlZmV0Y2ggd2FzIHJlcXVlc3RlZC5cbiAgICAvLyBpZiB0aGUgcmVxdWVzdGVkIHByZWZldGNoIGlzIFwiZnVsbFwiIGFuZCB0aGUgY3VycmVudCBjYWNoZSBlbnRyeSB3YXNuJ3QsIHdlIHdhbnQgdG8gcmUtcHJlZmV0Y2ggd2l0aCB0aGUgbmV3IGludGVudFxuICAgIGNvbnN0IHN3aXRjaGVkVG9GdWxsUHJlZmV0Y2ggPVxuICAgICAgZXhpc3RpbmdDYWNoZUVudHJ5LmtpbmQgIT09IFByZWZldGNoS2luZC5GVUxMICYmXG4gICAgICBraW5kID09PSBQcmVmZXRjaEtpbmQuRlVMTFxuXG4gICAgaWYgKHN3aXRjaGVkVG9GdWxsUHJlZmV0Y2gpIHtcbiAgICAgIC8vIElmIHdlIHN3aXRjaGVkIHRvIGEgZnVsbCBwcmVmZXRjaCwgdmFsaWRhdGUgdGhhdCB0aGUgZXhpc3RpbmcgY2FjaGUgZW50cnkgY29udGFpbmVkIHBhcnRpYWwgZGF0YS5cbiAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgY2FjaGUgZW50cnkgd2FzIHNlZWRlZCB3aXRoIGZ1bGwgZGF0YSBidXQgaGFzIGEgY2FjaGUgdHlwZSBvZiBcImF1dG9cIiAoaWUgd2hlbiBjYWNoZSBlbnRyaWVzXG4gICAgICAvLyBhcmUgc2VlZGVkIGJ1dCB3aXRob3V0IGEgcHJlZmV0Y2ggaW50ZW50KVxuICAgICAgZXhpc3RpbmdDYWNoZUVudHJ5LmRhdGEudGhlbigocHJlZmV0Y2hSZXNwb25zZSkgPT4ge1xuICAgICAgICBjb25zdCBpc0Z1bGxQcmVmZXRjaCA9XG4gICAgICAgICAgQXJyYXkuaXNBcnJheShwcmVmZXRjaFJlc3BvbnNlLmZsaWdodERhdGEpICYmXG4gICAgICAgICAgcHJlZmV0Y2hSZXNwb25zZS5mbGlnaHREYXRhLnNvbWUoKGZsaWdodERhdGEpID0+IHtcbiAgICAgICAgICAgIC8vIElmIHdlIHN0YXJ0ZWQgcmVuZGVyaW5nIGZyb20gdGhlIHJvb3QgYW5kIHdlIHJldHVybmVkIFJTQyBkYXRhIChzZWVkRGF0YSksIHdlIGFscmVhZHkgaGFkIGEgZnVsbCBwcmVmZXRjaC5cbiAgICAgICAgICAgIHJldHVybiBmbGlnaHREYXRhLmlzUm9vdFJlbmRlciAmJiBmbGlnaHREYXRhLnNlZWREYXRhICE9PSBudWxsXG4gICAgICAgICAgfSlcblxuICAgICAgICBpZiAoIWlzRnVsbFByZWZldGNoKSB7XG4gICAgICAgICAgcmV0dXJuIGNyZWF0ZUxhenlQcmVmZXRjaEVudHJ5KHtcbiAgICAgICAgICAgIHRyZWUsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBuZXh0VXJsLFxuICAgICAgICAgICAgcHJlZmV0Y2hDYWNoZSxcbiAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBnZXQgYW4gZXhwbGljaXQgcHJlZmV0Y2gga2luZCwgd2Ugd2FudCB0byBzZXQgYSB0ZW1wb3Jhcnkga2luZFxuICAgICAgICAgICAgLy8gcmF0aGVyIHRoYW4gYXNzdW1pbmcgdGhlIHNhbWUgaW50ZW50IGFzIHRoZSBwcmV2aW91cyBlbnRyeSwgdG8gYmUgY29uc2lzdGVudCB3aXRoIGhvdyB3ZVxuICAgICAgICAgICAgLy8gbGF6aWx5IGNyZWF0ZSBwcmVmZXRjaCBlbnRyaWVzIHdoZW4gaW50ZW50IGlzIGxlZnQgdW5zcGVjaWZpZWQuXG4gICAgICAgICAgICBraW5kOiBraW5kID8/IFByZWZldGNoS2luZC5URU1QT1JBUlksXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgZXhpc3RpbmcgY2FjaGUgZW50cnkgd2FzIG1hcmtlZCBhcyB0ZW1wb3JhcnksIGl0IG1lYW5zIGl0IHdhcyBsYXppbHkgY3JlYXRlZCB3aGVuIGF0dGVtcHRpbmcgdG8gZ2V0IGFuIGVudHJ5LFxuICAgIC8vIHdoZXJlIHdlIGRpZG4ndCBoYXZlIHRoZSBwcmVmZXRjaCBpbnRlbnQuIE5vdyB0aGF0IHdlIGhhdmUgdGhlIGludGVudCAoaW4gYGtpbmRgKSwgd2Ugd2FudCB0byB1cGRhdGUgdGhlIGVudHJ5IHRvIHRoZSBtb3JlIGFjY3VyYXRlIGtpbmQuXG4gICAgaWYgKGtpbmQgJiYgZXhpc3RpbmdDYWNoZUVudHJ5LmtpbmQgPT09IFByZWZldGNoS2luZC5URU1QT1JBUlkpIHtcbiAgICAgIGV4aXN0aW5nQ2FjaGVFbnRyeS5raW5kID0ga2luZFxuICAgIH1cblxuICAgIC8vIFdlJ3ZlIGRldGVybWluZWQgdGhhdCB0aGUgZXhpc3RpbmcgZW50cnkgd2UgZm91bmQgaXMgc3RpbGwgdmFsaWQsIHNvIHdlIHJldHVybiBpdC5cbiAgICByZXR1cm4gZXhpc3RpbmdDYWNoZUVudHJ5XG4gIH1cblxuICAvLyBJZiB3ZSBkaWRuJ3QgcmV0dXJuIGFuIGVudHJ5LCBjcmVhdGUgYSBuZXcgb25lLlxuICByZXR1cm4gY3JlYXRlTGF6eVByZWZldGNoRW50cnkoe1xuICAgIHRyZWUsXG4gICAgdXJsLFxuICAgIG5leHRVcmwsXG4gICAgcHJlZmV0Y2hDYWNoZSxcbiAgICBraW5kOiBraW5kIHx8IFByZWZldGNoS2luZC5URU1QT1JBUlksXG4gIH0pXG59XG5cbi8qXG4gKiBVc2VkIHRvIHRha2UgYW4gZXhpc3RpbmcgY2FjaGUgZW50cnkgYW5kIHByZWZpeCBpdCB3aXRoIHRoZSBuZXh0VXJsLCBpZiBpdCBleGlzdHMuXG4gKiBUaGlzIGVuc3VyZXMgdGhhdCB3ZSBkb24ndCBoYXZlIGNvbmZsaWN0aW5nIGNhY2hlIGVudHJpZXMgZm9yIHRoZSBzYW1lIFVSTCAoYXMgaXMgdGhlIGNhc2Ugd2l0aCByb3V0ZSBpbnRlcmNlcHRpb24pLlxuICovXG5mdW5jdGlvbiBwcmVmaXhFeGlzdGluZ1ByZWZldGNoQ2FjaGVFbnRyeSh7XG4gIHVybCxcbiAgbmV4dFVybCxcbiAgcHJlZmV0Y2hDYWNoZSxcbiAgZXhpc3RpbmdDYWNoZUtleSxcbn06IFBpY2s8UmVhZG9ubHlSZWR1Y2VyU3RhdGUsICduZXh0VXJsJyB8ICdwcmVmZXRjaENhY2hlJz4gJiB7XG4gIHVybDogVVJMXG4gIGV4aXN0aW5nQ2FjaGVLZXk6IHN0cmluZ1xufSkge1xuICBjb25zdCBleGlzdGluZ0NhY2hlRW50cnkgPSBwcmVmZXRjaENhY2hlLmdldChleGlzdGluZ0NhY2hlS2V5KVxuICBpZiAoIWV4aXN0aW5nQ2FjaGVFbnRyeSkge1xuICAgIC8vIG5vLW9wIC0tIHRoZXJlIHdhc24ndCBhbiBlbnRyeSB0byBtb3ZlXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBuZXdDYWNoZUtleSA9IGNyZWF0ZVByZWZldGNoQ2FjaGVLZXkoXG4gICAgdXJsLFxuICAgIGV4aXN0aW5nQ2FjaGVFbnRyeS5raW5kLFxuICAgIG5leHRVcmxcbiAgKVxuICBwcmVmZXRjaENhY2hlLnNldChuZXdDYWNoZUtleSwgeyAuLi5leGlzdGluZ0NhY2hlRW50cnksIGtleTogbmV3Q2FjaGVLZXkgfSlcbiAgcHJlZmV0Y2hDYWNoZS5kZWxldGUoZXhpc3RpbmdDYWNoZUtleSlcblxuICByZXR1cm4gbmV3Q2FjaGVLZXlcbn1cblxuLyoqXG4gKiBVc2UgdG8gc2VlZCB0aGUgcHJlZmV0Y2ggY2FjaGUgd2l0aCBkYXRhIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBmZXRjaGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VlZGVkUHJlZmV0Y2hDYWNoZUVudHJ5KHtcbiAgbmV4dFVybCxcbiAgdHJlZSxcbiAgcHJlZmV0Y2hDYWNoZSxcbiAgdXJsLFxuICBkYXRhLFxuICBraW5kLFxufTogUGljazxSZWFkb25seVJlZHVjZXJTdGF0ZSwgJ25leHRVcmwnIHwgJ3RyZWUnIHwgJ3ByZWZldGNoQ2FjaGUnPiAmIHtcbiAgdXJsOiBVUkxcbiAgZGF0YTogRmV0Y2hTZXJ2ZXJSZXNwb25zZVJlc3VsdFxuICBraW5kOiBQcmVmZXRjaEtpbmRcbn0pIHtcbiAgLy8gVGhlIGluaXRpYWwgY2FjaGUgZW50cnkgdGVjaG5pY2FsbHkgaW5jbHVkZXMgZnVsbCBkYXRhLCBidXQgaXQgaXNuJ3QgZXhwbGljaXRseSBwcmVmZXRjaGVkIC0tIHdlIGp1c3Qgc2VlZCB0aGVcbiAgLy8gcHJlZmV0Y2ggY2FjaGUgc28gdGhhdCB3ZSBjYW4gc2tpcCBhbiBleHRyYSBwcmVmZXRjaCByZXF1ZXN0IGxhdGVyLCBzaW5jZSB3ZSBhbHJlYWR5IGhhdmUgdGhlIGRhdGEuXG4gIC8vIGlmIHRoZSBwcmVmZXRjaCBjb3JyZXNwb25kcyB3aXRoIGFuIGludGVyY2VwdGlvbiByb3V0ZSwgd2UgdXNlIHRoZSBuZXh0VXJsIHRvIHByZWZpeCB0aGUgY2FjaGUga2V5XG4gIGNvbnN0IHByZWZldGNoQ2FjaGVLZXkgPSBkYXRhLmNvdWxkQmVJbnRlcmNlcHRlZFxuICAgID8gY3JlYXRlUHJlZmV0Y2hDYWNoZUtleSh1cmwsIGtpbmQsIG5leHRVcmwpXG4gICAgOiBjcmVhdGVQcmVmZXRjaENhY2hlS2V5KHVybCwga2luZClcblxuICBjb25zdCBwcmVmZXRjaEVudHJ5ID0ge1xuICAgIHRyZWVBdFRpbWVPZlByZWZldGNoOiB0cmVlLFxuICAgIGRhdGE6IFByb21pc2UucmVzb2x2ZShkYXRhKSxcbiAgICBraW5kLFxuICAgIHByZWZldGNoVGltZTogRGF0ZS5ub3coKSxcbiAgICBsYXN0VXNlZFRpbWU6IERhdGUubm93KCksXG4gICAgc3RhbGVUaW1lOiBkYXRhLnN0YWxlVGltZSxcbiAgICBrZXk6IHByZWZldGNoQ2FjaGVLZXksXG4gICAgc3RhdHVzOiBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMuZnJlc2gsXG4gICAgdXJsLFxuICB9IHNhdGlzZmllcyBQcmVmZXRjaENhY2hlRW50cnlcblxuICBwcmVmZXRjaENhY2hlLnNldChwcmVmZXRjaENhY2hlS2V5LCBwcmVmZXRjaEVudHJ5KVxuXG4gIHJldHVybiBwcmVmZXRjaEVudHJ5XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHByZWZldGNoIGVudHJ5IGVudHJ5IGFuZCBlbnF1ZXVlcyBhIGZldGNoIHJlcXVlc3QgdG8gcmV0cmlldmUgdGhlIGRhdGEuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUxhenlQcmVmZXRjaEVudHJ5KHtcbiAgdXJsLFxuICBraW5kLFxuICB0cmVlLFxuICBuZXh0VXJsLFxuICBwcmVmZXRjaENhY2hlLFxufTogUGljazxSZWFkb25seVJlZHVjZXJTdGF0ZSwgJ25leHRVcmwnIHwgJ3RyZWUnIHwgJ3ByZWZldGNoQ2FjaGUnPiAmIHtcbiAgdXJsOiBVUkxcbiAga2luZDogUHJlZmV0Y2hLaW5kXG59KTogUHJlZmV0Y2hDYWNoZUVudHJ5IHtcbiAgY29uc3QgcHJlZmV0Y2hDYWNoZUtleSA9IGNyZWF0ZVByZWZldGNoQ2FjaGVLZXkodXJsLCBraW5kKVxuXG4gIC8vIGluaXRpYXRlcyB0aGUgZmV0Y2ggcmVxdWVzdCBmb3IgdGhlIHByZWZldGNoIGFuZCBhdHRhY2hlcyBhIGxpc3RlbmVyXG4gIC8vIHRvIHRoZSBwcm9taXNlIHRvIHVwZGF0ZSB0aGUgcHJlZmV0Y2ggY2FjaGUgZW50cnkgd2hlbiB0aGUgcHJvbWlzZSByZXNvbHZlcyAoaWYgbmVjZXNzYXJ5KVxuICBjb25zdCBkYXRhID0gcHJlZmV0Y2hRdWV1ZS5lbnF1ZXVlKCgpID0+XG4gICAgZmV0Y2hTZXJ2ZXJSZXNwb25zZSh1cmwsIHtcbiAgICAgIGZsaWdodFJvdXRlclN0YXRlOiB0cmVlLFxuICAgICAgbmV4dFVybCxcbiAgICAgIHByZWZldGNoS2luZDoga2luZCxcbiAgICB9KS50aGVuKChwcmVmZXRjaFJlc3BvbnNlKSA9PiB7XG4gICAgICAvLyBUT0RPOiBgZmV0Y2hTZXJ2ZXJSZXNwb25zZWAgc2hvdWxkIGJlIG1vcmUgdGlnaGx5IGNvdXBsZWQgdG8gdGhlc2UgcHJlZmV0Y2ggY2FjaGUgb3BlcmF0aW9uc1xuICAgICAgLy8gdG8gYXZvaWQgZHJpZnQgYmV0d2VlbiB0aGlzIGNhY2hlIGtleSBwcmVmaXhpbmcgbG9naWNcbiAgICAgIC8vICh3aGljaCBpcyBjdXJyZW50bHkgZGlyZWN0bHkgaW5mbHVlbmNlZCBieSB0aGUgc2VydmVyIHJlc3BvbnNlKVxuICAgICAgbGV0IG5ld0NhY2hlS2V5XG5cbiAgICAgIGlmIChwcmVmZXRjaFJlc3BvbnNlLmNvdWxkQmVJbnRlcmNlcHRlZCkge1xuICAgICAgICAvLyBEZXRlcm1pbmUgaWYgd2UgbmVlZCB0byBwcmVmaXggdGhlIGNhY2hlIGtleSB3aXRoIHRoZSBuZXh0VXJsXG4gICAgICAgIG5ld0NhY2hlS2V5ID0gcHJlZml4RXhpc3RpbmdQcmVmZXRjaENhY2hlRW50cnkoe1xuICAgICAgICAgIHVybCxcbiAgICAgICAgICBleGlzdGluZ0NhY2hlS2V5OiBwcmVmZXRjaENhY2hlS2V5LFxuICAgICAgICAgIG5leHRVcmwsXG4gICAgICAgICAgcHJlZmV0Y2hDYWNoZSxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIHByZWZldGNoIHdhcyBhIGNhY2hlIGhpdCwgd2Ugd2FudCB0byB1cGRhdGUgdGhlIGV4aXN0aW5nIGNhY2hlIGVudHJ5IHRvIHJlZmxlY3QgdGhhdCBpdCB3YXMgYSBmdWxsIHByZWZldGNoLlxuICAgICAgLy8gVGhpcyBpcyBiZWNhdXNlIHdlIGtub3cgdGhhdCBhIHN0YXRpYyByZXNwb25zZSB3aWxsIGNvbnRhaW4gdGhlIGZ1bGwgUlNDIHBheWxvYWQsIGFuZCBjYW4gYmUgdXBkYXRlZCB0byByZXNwZWN0IHRoZSBgc3RhdGljYFxuICAgICAgLy8gc3RhbGVUaW1lLlxuICAgICAgaWYgKHByZWZldGNoUmVzcG9uc2UucHJlcmVuZGVyZWQpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdDYWNoZUVudHJ5ID0gcHJlZmV0Y2hDYWNoZS5nZXQoXG4gICAgICAgICAgLy8gaWYgd2UgcHJlZml4ZWQgdGhlIGNhY2hlIGtleSBkdWUgdG8gcm91dGUgaW50ZXJjZXB0aW9uLCB3ZSB3YW50IHRvIHVzZSB0aGUgbmV3IGtleS4gT3RoZXJ3aXNlIHdlIHVzZSB0aGUgb3JpZ2luYWwga2V5XG4gICAgICAgICAgbmV3Q2FjaGVLZXkgPz8gcHJlZmV0Y2hDYWNoZUtleVxuICAgICAgICApXG4gICAgICAgIGlmIChleGlzdGluZ0NhY2hlRW50cnkpIHtcbiAgICAgICAgICBleGlzdGluZ0NhY2hlRW50cnkua2luZCA9IFByZWZldGNoS2luZC5GVUxMXG4gICAgICAgICAgaWYgKHByZWZldGNoUmVzcG9uc2Uuc3RhbGVUaW1lICE9PSAtMSkge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgc3RhbGUgdGltZSB0aGF0IHdhcyBjb2xsZWN0ZWQgYnkgdGhlIHNlcnZlciBkdXJpbmdcbiAgICAgICAgICAgIC8vIHN0YXRpYyBnZW5lcmF0aW9uLiBVc2UgdGhpcyBpbiBwbGFjZSBvZiB0aGUgZGVmYXVsdCBzdGFsZSB0aW1lLlxuICAgICAgICAgICAgZXhpc3RpbmdDYWNoZUVudHJ5LnN0YWxlVGltZSA9IHByZWZldGNoUmVzcG9uc2Uuc3RhbGVUaW1lXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcmVmZXRjaFJlc3BvbnNlXG4gICAgfSlcbiAgKVxuXG4gIGNvbnN0IHByZWZldGNoRW50cnkgPSB7XG4gICAgdHJlZUF0VGltZU9mUHJlZmV0Y2g6IHRyZWUsXG4gICAgZGF0YSxcbiAgICBraW5kLFxuICAgIHByZWZldGNoVGltZTogRGF0ZS5ub3coKSxcbiAgICBsYXN0VXNlZFRpbWU6IG51bGwsXG4gICAgc3RhbGVUaW1lOiAtMSxcbiAgICBrZXk6IHByZWZldGNoQ2FjaGVLZXksXG4gICAgc3RhdHVzOiBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMuZnJlc2gsXG4gICAgdXJsLFxuICB9XG5cbiAgcHJlZmV0Y2hDYWNoZS5zZXQocHJlZmV0Y2hDYWNoZUtleSwgcHJlZmV0Y2hFbnRyeSlcblxuICByZXR1cm4gcHJlZmV0Y2hFbnRyeVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmVQcmVmZXRjaENhY2hlKFxuICBwcmVmZXRjaENhY2hlOiBSZWFkb25seVJlZHVjZXJTdGF0ZVsncHJlZmV0Y2hDYWNoZSddXG4pIHtcbiAgZm9yIChjb25zdCBbaHJlZiwgcHJlZmV0Y2hDYWNoZUVudHJ5XSBvZiBwcmVmZXRjaENhY2hlKSB7XG4gICAgaWYgKFxuICAgICAgZ2V0UHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzKHByZWZldGNoQ2FjaGVFbnRyeSkgPT09XG4gICAgICBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMuZXhwaXJlZFxuICAgICkge1xuICAgICAgcHJlZmV0Y2hDYWNoZS5kZWxldGUoaHJlZilcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlc2UgdmFsdWVzIGFyZSBzZXQgYnkgYGRlZmluZS1lbnYtcGx1Z2luYCAoYmFzZWQgb24gYG5leHRDb25maWcuZXhwZXJpbWVudGFsLnN0YWxlVGltZXNgKVxuLy8gYW5kIGRlZmF1bHQgdG8gNSBtaW51dGVzIChzdGF0aWMpIC8gMCBzZWNvbmRzIChkeW5hbWljKVxuZXhwb3J0IGNvbnN0IERZTkFNSUNfU1RBTEVUSU1FX01TID1cbiAgTnVtYmVyKHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfUk9VVEVSX0RZTkFNSUNfU1RBTEVUSU1FKSAqIDEwMDBcblxuZXhwb3J0IGNvbnN0IFNUQVRJQ19TVEFMRVRJTUVfTVMgPVxuICBOdW1iZXIocHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9ST1VURVJfU1RBVElDX1NUQUxFVElNRSkgKiAxMDAwXG5cbmZ1bmN0aW9uIGdldFByZWZldGNoRW50cnlDYWNoZVN0YXR1cyh7XG4gIGtpbmQsXG4gIHByZWZldGNoVGltZSxcbiAgbGFzdFVzZWRUaW1lLFxufTogUHJlZmV0Y2hDYWNoZUVudHJ5KTogUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzIHtcbiAgLy8gV2Ugd2lsbCByZS11c2UgdGhlIGNhY2hlIGVudHJ5IGRhdGEgZm9yIHVwIHRvIHRoZSBgZHluYW1pY2Agc3RhbGV0aW1lIHdpbmRvdy5cbiAgaWYgKERhdGUubm93KCkgPCAobGFzdFVzZWRUaW1lID8/IHByZWZldGNoVGltZSkgKyBEWU5BTUlDX1NUQUxFVElNRV9NUykge1xuICAgIHJldHVybiBsYXN0VXNlZFRpbWVcbiAgICAgID8gUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzLnJldXNhYmxlXG4gICAgICA6IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5mcmVzaFxuICB9XG5cbiAgLy8gRm9yIFwiYXV0b1wiIHByZWZldGNoaW5nLCB3ZSdsbCByZS11c2Ugb25seSB0aGUgbG9hZGluZyBib3VuZGFyeSBmb3IgdXAgdG8gYHN0YXRpY2Agc3RhbGV0aW1lIHdpbmRvdy5cbiAgLy8gQSBzdGFsZSBlbnRyeSB3aWxsIG9ubHkgcmUtdXNlIHRoZSBgbG9hZGluZ2AgYm91bmRhcnksIG5vdCB0aGUgZnVsbCBkYXRhLlxuICAvLyBUaGlzIHdpbGwgdHJpZ2dlciBhIFwibGF6eSBmZXRjaFwiIGZvciB0aGUgZnVsbCBkYXRhLlxuICBpZiAoa2luZCA9PT0gUHJlZmV0Y2hLaW5kLkFVVE8pIHtcbiAgICBpZiAoRGF0ZS5ub3coKSA8IHByZWZldGNoVGltZSArIFNUQVRJQ19TVEFMRVRJTUVfTVMpIHtcbiAgICAgIHJldHVybiBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMuc3RhbGVcbiAgICB9XG4gIH1cblxuICAvLyBmb3IgXCJmdWxsXCIgcHJlZmV0Y2hpbmcsIHdlJ2xsIHJlLXVzZSB0aGUgY2FjaGUgZW50cnkgZGF0YSBmb3IgdXAgdG8gYHN0YXRpY2Agc3RhbGV0aW1lIHdpbmRvdy5cbiAgaWYgKGtpbmQgPT09IFByZWZldGNoS2luZC5GVUxMKSB7XG4gICAgaWYgKERhdGUubm93KCkgPCBwcmVmZXRjaFRpbWUgKyBTVEFUSUNfU1RBTEVUSU1FX01TKSB7XG4gICAgICByZXR1cm4gUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzLnJldXNhYmxlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5leHBpcmVkXG59XG4iXSwibmFtZXMiOlsiRFlOQU1JQ19TVEFMRVRJTUVfTVMiLCJTVEFUSUNfU1RBTEVUSU1FX01TIiwiY3JlYXRlU2VlZGVkUHJlZmV0Y2hDYWNoZUVudHJ5IiwiZ2V0T3JDcmVhdGVQcmVmZXRjaENhY2hlRW50cnkiLCJwcnVuZVByZWZldGNoQ2FjaGUiLCJJTlRFUkNFUFRJT05fQ0FDSEVfS0VZX01BUktFUiIsImNyZWF0ZVByZWZldGNoQ2FjaGVLZXlJbXBsIiwidXJsIiwiaW5jbHVkZVNlYXJjaFBhcmFtcyIsInByZWZpeCIsInBhdGhuYW1lRnJvbVVybCIsInBhdGhuYW1lIiwic2VhcmNoIiwiY3JlYXRlUHJlZmV0Y2hDYWNoZUtleSIsImtpbmQiLCJuZXh0VXJsIiwiUHJlZmV0Y2hLaW5kIiwiRlVMTCIsImdldEV4aXN0aW5nQ2FjaGVFbnRyeSIsInByZWZldGNoQ2FjaGUiLCJhbGxvd0FsaWFzaW5nIiwiVEVNUE9SQVJZIiwibWF5YmVOZXh0VXJsIiwiY2FjaGVLZXlXaXRoUGFyYW1zIiwiY2FjaGVLZXlXaXRob3V0UGFyYW1zIiwiY2FjaGVLZXlUb1VzZSIsImV4aXN0aW5nRW50cnkiLCJnZXQiLCJpc0FsaWFzZWQiLCJhbGlhc2VkIiwiZW50cnlXaXRob3V0UGFyYW1zIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwia2V5IiwiaW5jbHVkZXMiLCJjYWNoZUVudHJ5IiwidmFsdWVzIiwidW5kZWZpbmVkIiwidHJlZSIsImV4aXN0aW5nQ2FjaGVFbnRyeSIsInN0YXR1cyIsImdldFByZWZldGNoRW50cnlDYWNoZVN0YXR1cyIsInN3aXRjaGVkVG9GdWxsUHJlZmV0Y2giLCJkYXRhIiwidGhlbiIsInByZWZldGNoUmVzcG9uc2UiLCJpc0Z1bGxQcmVmZXRjaCIsIkFycmF5IiwiaXNBcnJheSIsImZsaWdodERhdGEiLCJzb21lIiwiaXNSb290UmVuZGVyIiwic2VlZERhdGEiLCJjcmVhdGVMYXp5UHJlZmV0Y2hFbnRyeSIsInByZWZpeEV4aXN0aW5nUHJlZmV0Y2hDYWNoZUVudHJ5IiwiZXhpc3RpbmdDYWNoZUtleSIsIm5ld0NhY2hlS2V5Iiwic2V0IiwiZGVsZXRlIiwicHJlZmV0Y2hDYWNoZUtleSIsImNvdWxkQmVJbnRlcmNlcHRlZCIsInByZWZldGNoRW50cnkiLCJ0cmVlQXRUaW1lT2ZQcmVmZXRjaCIsIlByb21pc2UiLCJyZXNvbHZlIiwicHJlZmV0Y2hUaW1lIiwiRGF0ZSIsIm5vdyIsImxhc3RVc2VkVGltZSIsInN0YWxlVGltZSIsIlByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cyIsImZyZXNoIiwicHJlZmV0Y2hRdWV1ZSIsImVucXVldWUiLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJwcmVmZXRjaEtpbmQiLCJwcmVyZW5kZXJlZCIsImhyZWYiLCJwcmVmZXRjaENhY2hlRW50cnkiLCJleHBpcmVkIiwiTnVtYmVyIiwiX19ORVhUX0NMSUVOVF9ST1VURVJfRFlOQU1JQ19TVEFMRVRJTUUiLCJfX05FWFRfQ0xJRU5UX1JPVVRFUl9TVEFUSUNfU1RBTEVUSU1FIiwicmV1c2FibGUiLCJBVVRPIiwic3RhbGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js":
|
||
/*!************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js ***!
|
||
\************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"findHeadInCache\", ({\n enumerable: true,\n get: function() {\n return findHeadInCache;\n }\n}));\nconst _segment = __webpack_require__(/*! ../../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _createroutercachekey = __webpack_require__(/*! ../create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nfunction findHeadInCache(cache, parallelRoutes) {\n return findHeadInCacheImpl(cache, parallelRoutes, '', '');\n}\nfunction findHeadInCacheImpl(cache, parallelRoutes, keyPrefix, keyPrefixWithoutSearchParams) {\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 keyPrefixWithoutSearchParams\n ];\n }\n // First try the 'children' parallel route if it exists\n // when starting from the \"root\", this corresponds with the main page component\n const parallelRoutesKeys = Object.keys(parallelRoutes).filter((key)=>key !== 'children');\n // if we are at the root, we need to check the children slot first\n if ('children' in parallelRoutes) {\n parallelRoutesKeys.unshift('children');\n }\n for (const key of parallelRoutesKeys){\n const [segment, childParallelRoutes] = parallelRoutes[key];\n // If the parallel is not matched and using the default segment,\n // skip searching the head from it.\n if (segment === _segment.DEFAULT_SEGMENT_KEY) {\n continue;\n }\n const childSegmentMap = cache.parallelRoutes.get(key);\n if (!childSegmentMap) {\n continue;\n }\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segment);\n const cacheKeyWithoutSearchParams = (0, _createroutercachekey.createRouterCacheKey)(segment, true);\n const cacheNode = childSegmentMap.get(cacheKey);\n if (!cacheNode) {\n continue;\n }\n const item = findHeadInCacheImpl(cacheNode, childParallelRoutes, keyPrefix + '/' + cacheKey, keyPrefix + '/' + cacheKeyWithoutSearchParams);\n if (item) {\n return item;\n }\n }\n return null;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=find-head-in-cache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2ZpbmQtaGVhZC1pbi1jYWNoZS5qcyIsIm1hcHBpbmdzIjoiOzs7O21EQUtnQkE7OztlQUFBQTs7O3FDQUhvQjtrREFDQztBQUU5QixTQUFTQSxnQkFDZEMsS0FBZ0IsRUFDaEJDLGNBQW9DO0lBRXBDLE9BQU9DLG9CQUFvQkYsT0FBT0MsZ0JBQWdCLElBQUk7QUFDeEQ7QUFFQSxTQUFTQyxvQkFDUEYsS0FBZ0IsRUFDaEJDLGNBQW9DLEVBQ3BDRSxTQUFpQixFQUNqQkMsNEJBQW9DO0lBRXBDLE1BQU1DLGFBQWFDLE9BQU9DLElBQUksQ0FBQ04sZ0JBQWdCTyxNQUFNLEtBQUs7SUFDMUQsSUFBSUgsWUFBWTtRQUNkLDBFQUEwRTtRQUMxRSxPQUFPO1lBQUNMO1lBQU9HO1lBQVdDO1NBQTZCO0lBQ3pEO0lBRUEsdURBQXVEO0lBQ3ZELCtFQUErRTtJQUMvRSxNQUFNSyxxQkFBcUJILE9BQU9DLElBQUksQ0FBQ04sZ0JBQWdCUyxNQUFNLENBQzNELENBQUNDLE1BQVFBLFFBQVE7SUFHbkIsa0VBQWtFO0lBQ2xFLElBQUksY0FBY1YsZ0JBQWdCO1FBQ2hDUSxtQkFBbUJHLE9BQU8sQ0FBQztJQUM3QjtJQUVBLEtBQUssTUFBTUQsT0FBT0YsbUJBQW9CO1FBQ3BDLE1BQU0sQ0FBQ0ksU0FBU0Msb0JBQW9CLEdBQUdiLGNBQWMsQ0FBQ1UsSUFBSTtRQUMxRCxnRUFBZ0U7UUFDaEUsbUNBQW1DO1FBQ25DLElBQUlFLFlBQVlFLFNBQUFBLG1CQUFtQixFQUFFO1lBQ25DO1FBQ0Y7UUFDQSxNQUFNQyxrQkFBa0JoQixNQUFNQyxjQUFjLENBQUNnQixHQUFHLENBQUNOO1FBQ2pELElBQUksQ0FBQ0ssaUJBQWlCO1lBQ3BCO1FBQ0Y7UUFFQSxNQUFNRSxXQUFXQyxDQUFBQSxHQUFBQSxzQkFBQUEsb0JBQUFBLEVBQXFCTjtRQUN0QyxNQUFNTyw4QkFBOEJELENBQUFBLEdBQUFBLHNCQUFBQSxvQkFBQUEsRUFBcUJOLFNBQVM7UUFFbEUsTUFBTVEsWUFBWUwsZ0JBQWdCQyxHQUFHLENBQUNDO1FBQ3RDLElBQUksQ0FBQ0csV0FBVztZQUNkO1FBQ0Y7UUFFQSxNQUFNQyxPQUFPcEIsb0JBQ1htQixXQUNBUCxxQkFDQVgsWUFBWSxNQUFNZSxVQUNsQmYsWUFBWSxNQUFNaUI7UUFHcEIsSUFBSUUsTUFBTTtZQUNSLE9BQU9BO1FBQ1Q7SUFDRjtJQUVBLE9BQU87QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9maW5kLWhlYWQtaW4tY2FjaGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IERFRkFVTFRfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4uL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5J1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZEhlYWRJbkNhY2hlKFxuICBjYWNoZTogQ2FjaGVOb2RlLFxuICBwYXJhbGxlbFJvdXRlczogRmxpZ2h0Um91dGVyU3RhdGVbMV1cbik6IFtDYWNoZU5vZGUsIHN0cmluZywgc3RyaW5nXSB8IG51bGwge1xuICByZXR1cm4gZmluZEhlYWRJbkNhY2hlSW1wbChjYWNoZSwgcGFyYWxsZWxSb3V0ZXMsICcnLCAnJylcbn1cblxuZnVuY3Rpb24gZmluZEhlYWRJbkNhY2hlSW1wbChcbiAgY2FjaGU6IENhY2hlTm9kZSxcbiAgcGFyYWxsZWxSb3V0ZXM6IEZsaWdodFJvdXRlclN0YXRlWzFdLFxuICBrZXlQcmVmaXg6IHN0cmluZyxcbiAga2V5UHJlZml4V2l0aG91dFNlYXJjaFBhcmFtczogc3RyaW5nXG4pOiBbQ2FjaGVOb2RlLCBzdHJpbmcsIHN0cmluZ10gfCBudWxsIHtcbiAgY29uc3QgaXNMYXN0SXRlbSA9IE9iamVjdC5rZXlzKHBhcmFsbGVsUm91dGVzKS5sZW5ndGggPT09IDBcbiAgaWYgKGlzTGFzdEl0ZW0pIHtcbiAgICAvLyBSZXR1cm5zIHRoZSBlbnRpcmUgQ2FjaGUgTm9kZSBvZiB0aGUgc2VnbWVudCB3aG9zZSBoZWFkIHdlIHdpbGwgcmVuZGVyLlxuICAgIHJldHVybiBbY2FjaGUsIGtleVByZWZpeCwga2V5UHJlZml4V2l0aG91dFNlYXJjaFBhcmFtc11cbiAgfVxuXG4gIC8vIEZpcnN0IHRyeSB0aGUgJ2NoaWxkcmVuJyBwYXJhbGxlbCByb3V0ZSBpZiBpdCBleGlzdHNcbiAgLy8gd2hlbiBzdGFydGluZyBmcm9tIHRoZSBcInJvb3RcIiwgdGhpcyBjb3JyZXNwb25kcyB3aXRoIHRoZSBtYWluIHBhZ2UgY29tcG9uZW50XG4gIGNvbnN0IHBhcmFsbGVsUm91dGVzS2V5cyA9IE9iamVjdC5rZXlzKHBhcmFsbGVsUm91dGVzKS5maWx0ZXIoXG4gICAgKGtleSkgPT4ga2V5ICE9PSAnY2hpbGRyZW4nXG4gIClcblxuICAvLyBpZiB3ZSBhcmUgYXQgdGhlIHJvb3QsIHdlIG5lZWQgdG8gY2hlY2sgdGhlIGNoaWxkcmVuIHNsb3QgZmlyc3RcbiAgaWYgKCdjaGlsZHJlbicgaW4gcGFyYWxsZWxSb3V0ZXMpIHtcbiAgICBwYXJhbGxlbFJvdXRlc0tleXMudW5zaGlmdCgnY2hpbGRyZW4nKVxuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgcGFyYWxsZWxSb3V0ZXNLZXlzKSB7XG4gICAgY29uc3QgW3NlZ21lbnQsIGNoaWxkUGFyYWxsZWxSb3V0ZXNdID0gcGFyYWxsZWxSb3V0ZXNba2V5XVxuICAgIC8vIElmIHRoZSBwYXJhbGxlbCBpcyBub3QgbWF0Y2hlZCBhbmQgdXNpbmcgdGhlIGRlZmF1bHQgc2VnbWVudCxcbiAgICAvLyBza2lwIHNlYXJjaGluZyB0aGUgaGVhZCBmcm9tIGl0LlxuICAgIGlmIChzZWdtZW50ID09PSBERUZBVUxUX1NFR01FTlRfS0VZKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBjaGlsZFNlZ21lbnRNYXAgPSBjYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQoa2V5KVxuICAgIGlmICghY2hpbGRTZWdtZW50TWFwKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudClcbiAgICBjb25zdCBjYWNoZUtleVdpdGhvdXRTZWFyY2hQYXJhbXMgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50LCB0cnVlKVxuXG4gICAgY29uc3QgY2FjaGVOb2RlID0gY2hpbGRTZWdtZW50TWFwLmdldChjYWNoZUtleSlcbiAgICBpZiAoIWNhY2hlTm9kZSkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtID0gZmluZEhlYWRJbkNhY2hlSW1wbChcbiAgICAgIGNhY2hlTm9kZSxcbiAgICAgIGNoaWxkUGFyYWxsZWxSb3V0ZXMsXG4gICAgICBrZXlQcmVmaXggKyAnLycgKyBjYWNoZUtleSxcbiAgICAgIGtleVByZWZpeCArICcvJyArIGNhY2hlS2V5V2l0aG91dFNlYXJjaFBhcmFtc1xuICAgIClcblxuICAgIGlmIChpdGVtKSB7XG4gICAgICByZXR1cm4gaXRlbVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiZmluZEhlYWRJbkNhY2hlIiwiY2FjaGUiLCJwYXJhbGxlbFJvdXRlcyIsImZpbmRIZWFkSW5DYWNoZUltcGwiLCJrZXlQcmVmaXgiLCJrZXlQcmVmaXhXaXRob3V0U2VhcmNoUGFyYW1zIiwiaXNMYXN0SXRlbSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJwYXJhbGxlbFJvdXRlc0tleXMiLCJmaWx0ZXIiLCJrZXkiLCJ1bnNoaWZ0Iiwic2VnbWVudCIsImNoaWxkUGFyYWxsZWxSb3V0ZXMiLCJERUZBVUxUX1NFR01FTlRfS0VZIiwiY2hpbGRTZWdtZW50TWFwIiwiZ2V0IiwiY2FjaGVLZXkiLCJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsImNhY2hlS2V5V2l0aG91dFNlYXJjaFBhcmFtcyIsImNhY2hlTm9kZSIsIml0ZW0iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js":
|
||
/*!***********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js ***!
|
||
\***********************************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSegmentValue\", ({\n enumerable: true,\n get: function() {\n return getSegmentValue;\n }\n}));\nfunction getSegmentValue(segment) {\n return Array.isArray(segment) ? segment[1] : segment;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-segment-value.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2dldC1zZWdtZW50LXZhbHVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxnQkFBZ0JDLE9BQWdCO0lBQzlDLE9BQU9DLE1BQU1DLE9BQU8sQ0FBQ0YsV0FBV0EsT0FBTyxDQUFDLEVBQUUsR0FBR0E7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZWdtZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWdtZW50VmFsdWUoc2VnbWVudDogU2VnbWVudCkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShzZWdtZW50KSA/IHNlZ21lbnRbMV0gOiBzZWdtZW50XG59XG4iXSwibmFtZXMiOlsiZ2V0U2VnbWVudFZhbHVlIiwic2VnbWVudCIsIkFycmF5IiwiaXNBcnJheSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js":
|
||
/*!********************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js ***!
|
||
\********************************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hasInterceptionRouteInCurrentTree\", ({\n enumerable: true,\n get: function() {\n return hasInterceptionRouteInCurrentTree;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ../../../../shared/lib/router/utils/interception-routes */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nfunction hasInterceptionRouteInCurrentTree(param) {\n let [segment, parallelRoutes] = param;\n // If we have a dynamic segment, it's marked as an interception route by the presence of the `i` suffix.\n if (Array.isArray(segment) && (segment[2] === 'di' || segment[2] === 'ci')) {\n return true;\n }\n // If segment is not an array, apply the existing string-based check\n if (typeof segment === 'string' && (0, _interceptionroutes.isInterceptionRouteAppPath)(segment)) {\n return true;\n }\n // Iterate through parallelRoutes if they exist\n if (parallelRoutes) {\n for(const key in parallelRoutes){\n if (hasInterceptionRouteInCurrentTree(parallelRoutes[key])) {\n return true;\n }\n }\n }\n return false;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=has-interception-route-in-current-tree.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2hhcy1pbnRlcmNlcHRpb24tcm91dGUtaW4tY3VycmVudC10cmVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7cUVBR2dCQTs7O2VBQUFBOzs7Z0RBRjJCO0FBRXBDLFNBQVNBLGtDQUFrQyxLQUc5QjtJQUg4QixLQUNoREMsU0FDQUMsZUFDa0IsR0FIOEI7SUFJaEQsd0dBQXdHO0lBQ3hHLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0gsWUFBYUEsQ0FBQUEsT0FBTyxDQUFDLEVBQUUsS0FBSyxRQUFRQSxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUcsRUFBSTtRQUMxRSxPQUFPO0lBQ1Q7SUFFQSxvRUFBb0U7SUFDcEUsSUFBSSxPQUFPQSxZQUFZLFlBQVlJLENBQUFBLEdBQUFBLG9CQUFBQSwwQkFBQUEsRUFBMkJKLFVBQVU7UUFDdEUsT0FBTztJQUNUO0lBRUEsK0NBQStDO0lBQy9DLElBQUlDLGdCQUFnQjtRQUNsQixJQUFLLE1BQU1JLE9BQU9KLGVBQWdCO1lBQ2hDLElBQUlGLGtDQUFrQ0UsY0FBYyxDQUFDSSxJQUFJLEdBQUc7Z0JBQzFELE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvaGFzLWludGVyY2VwdGlvbi1yb3V0ZS1pbi1jdXJyZW50LXRyZWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGggfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pbnRlcmNlcHRpb24tcm91dGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlKFtcbiAgc2VnbWVudCxcbiAgcGFyYWxsZWxSb3V0ZXMsXG5dOiBGbGlnaHRSb3V0ZXJTdGF0ZSk6IGJvb2xlYW4ge1xuICAvLyBJZiB3ZSBoYXZlIGEgZHluYW1pYyBzZWdtZW50LCBpdCdzIG1hcmtlZCBhcyBhbiBpbnRlcmNlcHRpb24gcm91dGUgYnkgdGhlIHByZXNlbmNlIG9mIHRoZSBgaWAgc3VmZml4LlxuICBpZiAoQXJyYXkuaXNBcnJheShzZWdtZW50KSAmJiAoc2VnbWVudFsyXSA9PT0gJ2RpJyB8fCBzZWdtZW50WzJdID09PSAnY2knKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBJZiBzZWdtZW50IGlzIG5vdCBhbiBhcnJheSwgYXBwbHkgdGhlIGV4aXN0aW5nIHN0cmluZy1iYXNlZCBjaGVja1xuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnICYmIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHNlZ21lbnQpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBwYXJhbGxlbFJvdXRlcyBpZiB0aGV5IGV4aXN0XG4gIGlmIChwYXJhbGxlbFJvdXRlcykge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHBhcmFsbGVsUm91dGVzKSB7XG4gICAgICBpZiAoaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlKHBhcmFsbGVsUm91dGVzW2tleV0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG4iXSwibmFtZXMiOlsiaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlIiwic2VnbWVudCIsInBhcmFsbGVsUm91dGVzIiwiQXJyYXkiLCJpc0FycmF5IiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJrZXkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js":
|
||
/*!*************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js ***!
|
||
\*************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hmrRefreshReducer\", ({\n enumerable: true,\n get: function() {\n return hmrRefreshReducer;\n }\n}));\nconst _fetchserverresponse = __webpack_require__(/*! ../fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _navigatereducer = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nconst _handlemutable = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _applyflightdata = __webpack_require__(/*! ../apply-flight-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js\");\nconst _approuter = __webpack_require__(/*! ../../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _handlesegmentmismatch = __webpack_require__(/*! ../handle-segment-mismatch */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js\");\nconst _hasinterceptionrouteincurrenttree = __webpack_require__(/*! ./has-interception-route-in-current-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\");\n// A version of refresh reducer that keeps the cache around instead of wiping all of it.\nfunction hmrRefreshReducerImpl(state, action) {\n const { origin } = action;\n const mutable = {};\n const href = state.canonicalUrl;\n mutable.preserveCustomHistoryState = false;\n const cache = (0, _approuter.createEmptyCacheNode)();\n // If the current tree was intercepted, the nextUrl should be included in the request.\n // This is to ensure that the refresh request doesn't get intercepted, accidentally triggering the interception route.\n const includeNextUrl = (0, _hasinterceptionrouteincurrenttree.hasInterceptionRouteInCurrentTree)(state.tree);\n // TODO-APP: verify that `href` is not an external url.\n // Fetch data from the root of the tree.\n const navigatedAt = Date.now();\n cache.lazyData = (0, _fetchserverresponse.fetchServerResponse)(new URL(href, origin), {\n flightRouterState: [\n state.tree[0],\n state.tree[1],\n state.tree[2],\n 'refetch'\n ],\n nextUrl: includeNextUrl ? state.nextUrl : null,\n isHmrRefresh: true\n });\n return cache.lazyData.then((param)=>{\n let { flightData, canonicalUrl: canonicalUrlOverride } = param;\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return (0, _navigatereducer.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 normalizedFlightData of flightData){\n const { tree: treePatch, isRootRender } = normalizedFlightData;\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('REFRESH FAILED');\n return state;\n }\n const newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)([\n ''\n ], currentTree, treePatch, state.canonicalUrl);\n if (newTree === null) {\n return (0, _handlesegmentmismatch.handleSegmentMismatch)(state, action, treePatch);\n }\n if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, href, state.pushRef.pendingPush);\n }\n const canonicalUrlOverrideHref = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : undefined;\n if (canonicalUrlOverride) {\n mutable.canonicalUrl = canonicalUrlOverrideHref;\n }\n const applied = (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData);\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, _handlemutable.handleMutable)(state, mutable);\n }, ()=>state);\n}\nfunction hmrRefreshReducerNoop(state, _action) {\n return state;\n}\nconst hmrRefreshReducer = false ? 0 : hmrRefreshReducerImpl;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hmr-refresh-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2htci1yZWZyZXNoLXJlZHVjZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztxREErSGFBOzs7ZUFBQUE7OztpREEvSHVCOytDQUNGO3lEQUNVO3lEQUNBOzZDQU9WOzJDQUNKOzZDQUNFO3VDQUVLO21EQUNDOytEQUNZO0FBRWxELHdGQUF3RjtBQUN4RixTQUFTQyxzQkFDUEMsS0FBMkIsRUFDM0JDLE1BQXdCO0lBRXhCLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdEO0lBQ25CLE1BQU1FLFVBQW1CLENBQUM7SUFDMUIsTUFBTUMsT0FBT0osTUFBTUssWUFBWTtJQUUvQkYsUUFBUUcsMEJBQTBCLEdBQUc7SUFFckMsTUFBTUMsUUFBbUJDLENBQUFBLEdBQUFBLFdBQUFBLG9CQUFBQTtJQUN6QixzRkFBc0Y7SUFDdEYsc0hBQXNIO0lBQ3RILE1BQU1DLGlCQUFpQkMsQ0FBQUEsR0FBQUEsbUNBQUFBLGlDQUFpQyxFQUFDVixNQUFNVyxJQUFJO0lBRW5FLHVEQUF1RDtJQUN2RCx3Q0FBd0M7SUFDeEMsTUFBTUMsY0FBY0MsS0FBS0MsR0FBRztJQUM1QlAsTUFBTVEsUUFBUSxHQUFHQyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CLElBQUlDLElBQUliLE1BQU1GLFNBQVM7UUFDMURnQixtQkFBbUI7WUFBQ2xCLE1BQU1XLElBQUksQ0FBQyxFQUFFO1lBQUVYLE1BQU1XLElBQUksQ0FBQyxFQUFFO1lBQUVYLE1BQU1XLElBQUksQ0FBQyxFQUFFO1lBQUU7U0FBVTtRQUMzRVEsU0FBU1YsaUJBQWlCVCxNQUFNbUIsT0FBTyxHQUFHO1FBQzFDQyxjQUFjO0lBQ2hCO0lBRUEsT0FBT2IsTUFBTVEsUUFBUSxDQUFDTSxJQUFJLENBQ3hCO1lBQUMsRUFBRUMsVUFBVSxFQUFFakIsY0FBY2tCLG9CQUFvQixFQUFFO1FBQ2pELDREQUE0RDtRQUM1RCxJQUFJLE9BQU9ELGVBQWUsVUFBVTtZQUNsQyxPQUFPRSxDQUFBQSxHQUFBQSxpQkFBQUEsaUJBQUFBLEVBQ0x4QixPQUNBRyxTQUNBbUIsWUFDQXRCLE1BQU15QixPQUFPLENBQUNDLFdBQVc7UUFFN0I7UUFFQSwrREFBK0Q7UUFDL0RuQixNQUFNUSxRQUFRLEdBQUc7UUFFakIsSUFBSVksY0FBYzNCLE1BQU1XLElBQUk7UUFDNUIsSUFBSWlCLGVBQWU1QixNQUFNTyxLQUFLO1FBRTlCLEtBQUssTUFBTXNCLHdCQUF3QlAsV0FBWTtZQUM3QyxNQUFNLEVBQUVYLE1BQU1tQixTQUFTLEVBQUVDLFlBQVksRUFBRSxHQUFHRjtZQUMxQyxJQUFJLENBQUNFLGNBQWM7Z0JBQ2pCLG9DQUFvQztnQkFDcENDLFFBQVFDLEdBQUcsQ0FBQztnQkFDWixPQUFPakM7WUFDVDtZQUVBLE1BQU1rQyxVQUFVQyxDQUFBQSxHQUFBQSw2QkFBQUEsMkJBQUFBLEVBQ2Q7Z0JBQ0M7YUFBRyxFQUNKUixhQUNBRyxXQUNBOUIsTUFBTUssWUFBWTtZQUdwQixJQUFJNkIsWUFBWSxNQUFNO2dCQUNwQixPQUFPRSxDQUFBQSxHQUFBQSx1QkFBQUEscUJBQUFBLEVBQXNCcEMsT0FBT0MsUUFBUTZCO1lBQzlDO1lBRUEsSUFBSU8sQ0FBQUEsR0FBQUEsNkJBQUFBLDJCQUFBQSxFQUE0QlYsYUFBYU8sVUFBVTtnQkFDckQsT0FBT1YsQ0FBQUEsR0FBQUEsaUJBQUFBLGlCQUFBQSxFQUNMeEIsT0FDQUcsU0FDQUMsTUFDQUosTUFBTXlCLE9BQU8sQ0FBQ0MsV0FBVztZQUU3QjtZQUVBLE1BQU1ZLDJCQUEyQmYsdUJBQzdCZ0IsQ0FBQUEsR0FBQUEsbUJBQUFBLGlCQUFBQSxFQUFrQmhCLHdCQUNsQmlCO1lBRUosSUFBSWpCLHNCQUFzQjtnQkFDeEJwQixRQUFRRSxZQUFZLEdBQUdpQztZQUN6QjtZQUNBLE1BQU1HLFVBQVVDLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUNkOUIsYUFDQWdCLGNBQ0FyQixPQUNBc0I7WUFHRixJQUFJWSxTQUFTO2dCQUNYdEMsUUFBUUksS0FBSyxHQUFHQTtnQkFDaEJxQixlQUFlckI7WUFDakI7WUFFQUosUUFBUXdDLFdBQVcsR0FBR1Q7WUFDdEIvQixRQUFRRSxZQUFZLEdBQUdEO1lBRXZCdUIsY0FBY087UUFDaEI7UUFDQSxPQUFPVSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjNUMsT0FBT0c7SUFDOUIsR0FDQSxJQUFNSDtBQUVWO0FBRUEsU0FBUzZDLHNCQUNQN0MsS0FBMkIsRUFDM0I4QyxPQUF5QjtJQUV6QixPQUFPOUM7QUFDVDtBQUVPLE1BQU1GLG9CQUNYaUQsTUFBb0IsR0FDaEJGLENBQXFCQSxHQUNyQjlDIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2htci1yZWZyZXNoLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJy4uL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcbmltcG9ydCB7IGNyZWF0ZUhyZWZGcm9tVXJsIH0gZnJvbSAnLi4vY3JlYXRlLWhyZWYtZnJvbS11cmwnXG5pbXBvcnQgeyBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUgfSBmcm9tICcuLi9hcHBseS1yb3V0ZXItc3RhdGUtcGF0Y2gtdG8tdHJlZSdcbmltcG9ydCB7IGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCB9IGZyb20gJy4uL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0J1xuaW1wb3J0IHR5cGUge1xuICBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgUmVkdWNlclN0YXRlLFxuICBIbXJSZWZyZXNoQWN0aW9uLFxuICBNdXRhYmxlLFxufSBmcm9tICcuLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IGhhbmRsZUV4dGVybmFsVXJsIH0gZnJvbSAnLi9uYXZpZ2F0ZS1yZWR1Y2VyJ1xuaW1wb3J0IHsgaGFuZGxlTXV0YWJsZSB9IGZyb20gJy4uL2hhbmRsZS1tdXRhYmxlJ1xuaW1wb3J0IHsgYXBwbHlGbGlnaHREYXRhIH0gZnJvbSAnLi4vYXBwbHktZmxpZ2h0LWRhdGEnXG5pbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgY3JlYXRlRW1wdHlDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi9hcHAtcm91dGVyJ1xuaW1wb3J0IHsgaGFuZGxlU2VnbWVudE1pc21hdGNoIH0gZnJvbSAnLi4vaGFuZGxlLXNlZ21lbnQtbWlzbWF0Y2gnXG5pbXBvcnQgeyBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUgfSBmcm9tICcuL2hhcy1pbnRlcmNlcHRpb24tcm91dGUtaW4tY3VycmVudC10cmVlJ1xuXG4vLyBBIHZlcnNpb24gb2YgcmVmcmVzaCByZWR1Y2VyIHRoYXQga2VlcHMgdGhlIGNhY2hlIGFyb3VuZCBpbnN0ZWFkIG9mIHdpcGluZyBhbGwgb2YgaXQuXG5mdW5jdGlvbiBobXJSZWZyZXNoUmVkdWNlckltcGwoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgYWN0aW9uOiBIbXJSZWZyZXNoQWN0aW9uXG4pOiBSZWR1Y2VyU3RhdGUge1xuICBjb25zdCB7IG9yaWdpbiB9ID0gYWN0aW9uXG4gIGNvbnN0IG11dGFibGU6IE11dGFibGUgPSB7fVxuICBjb25zdCBocmVmID0gc3RhdGUuY2Fub25pY2FsVXJsXG5cbiAgbXV0YWJsZS5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSA9IGZhbHNlXG5cbiAgY29uc3QgY2FjaGU6IENhY2hlTm9kZSA9IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlKClcbiAgLy8gSWYgdGhlIGN1cnJlbnQgdHJlZSB3YXMgaW50ZXJjZXB0ZWQsIHRoZSBuZXh0VXJsIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVxdWVzdC5cbiAgLy8gVGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgcmVmcmVzaCByZXF1ZXN0IGRvZXNuJ3QgZ2V0IGludGVyY2VwdGVkLCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyB0aGUgaW50ZXJjZXB0aW9uIHJvdXRlLlxuICBjb25zdCBpbmNsdWRlTmV4dFVybCA9IGhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZShzdGF0ZS50cmVlKVxuXG4gIC8vIFRPRE8tQVBQOiB2ZXJpZnkgdGhhdCBgaHJlZmAgaXMgbm90IGFuIGV4dGVybmFsIHVybC5cbiAgLy8gRmV0Y2ggZGF0YSBmcm9tIHRoZSByb290IG9mIHRoZSB0cmVlLlxuICBjb25zdCBuYXZpZ2F0ZWRBdCA9IERhdGUubm93KClcbiAgY2FjaGUubGF6eURhdGEgPSBmZXRjaFNlcnZlclJlc3BvbnNlKG5ldyBVUkwoaHJlZiwgb3JpZ2luKSwge1xuICAgIGZsaWdodFJvdXRlclN0YXRlOiBbc3RhdGUudHJlZVswXSwgc3RhdGUudHJlZVsxXSwgc3RhdGUudHJlZVsyXSwgJ3JlZmV0Y2gnXSxcbiAgICBuZXh0VXJsOiBpbmNsdWRlTmV4dFVybCA/IHN0YXRlLm5leHRVcmwgOiBudWxsLFxuICAgIGlzSG1yUmVmcmVzaDogdHJ1ZSxcbiAgfSlcblxuICByZXR1cm4gY2FjaGUubGF6eURhdGEudGhlbihcbiAgICAoeyBmbGlnaHREYXRhLCBjYW5vbmljYWxVcmw6IGNhbm9uaWNhbFVybE92ZXJyaWRlIH0pID0+IHtcbiAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbmF2aWdhdGluZyB0byBwYWdlIGluIGBwYWdlc2AgZnJvbSBgYXBwYFxuICAgICAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgbXV0YWJsZSxcbiAgICAgICAgICBmbGlnaHREYXRhLFxuICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmUgY2FjaGUubGF6eURhdGEgYXMgaXQgaGFzIGJlZW4gcmVzb2x2ZWQgYXQgdGhpcyBwb2ludC5cbiAgICAgIGNhY2hlLmxhenlEYXRhID0gbnVsbFxuXG4gICAgICBsZXQgY3VycmVudFRyZWUgPSBzdGF0ZS50cmVlXG4gICAgICBsZXQgY3VycmVudENhY2hlID0gc3RhdGUuY2FjaGVcblxuICAgICAgZm9yIChjb25zdCBub3JtYWxpemVkRmxpZ2h0RGF0YSBvZiBmbGlnaHREYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgdHJlZTogdHJlZVBhdGNoLCBpc1Jvb3RSZW5kZXIgfSA9IG5vcm1hbGl6ZWRGbGlnaHREYXRhXG4gICAgICAgIGlmICghaXNSb290UmVuZGVyKSB7XG4gICAgICAgICAgLy8gVE9ETy1BUFA6IGhhbmRsZSB0aGlzIGNhc2UgYmV0dGVyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1JFRlJFU0ggRkFJTEVEJylcbiAgICAgICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gICAgICAgICAgLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgIFsnJ10sXG4gICAgICAgICAgY3VycmVudFRyZWUsXG4gICAgICAgICAgdHJlZVBhdGNoLFxuICAgICAgICAgIHN0YXRlLmNhbm9uaWNhbFVybFxuICAgICAgICApXG5cbiAgICAgICAgaWYgKG5ld1RyZWUgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlU2VnbWVudE1pc21hdGNoKHN0YXRlLCBhY3Rpb24sIHRyZWVQYXRjaClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQoY3VycmVudFRyZWUsIG5ld1RyZWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBtdXRhYmxlLFxuICAgICAgICAgICAgaHJlZixcbiAgICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYW5vbmljYWxVcmxPdmVycmlkZUhyZWYgPSBjYW5vbmljYWxVcmxPdmVycmlkZVxuICAgICAgICAgID8gY3JlYXRlSHJlZkZyb21VcmwoY2Fub25pY2FsVXJsT3ZlcnJpZGUpXG4gICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgICBpZiAoY2Fub25pY2FsVXJsT3ZlcnJpZGUpIHtcbiAgICAgICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IGNhbm9uaWNhbFVybE92ZXJyaWRlSHJlZlxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFwcGxpZWQgPSBhcHBseUZsaWdodERhdGEoXG4gICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgY3VycmVudENhY2hlLFxuICAgICAgICAgIGNhY2hlLFxuICAgICAgICAgIG5vcm1hbGl6ZWRGbGlnaHREYXRhXG4gICAgICAgIClcblxuICAgICAgICBpZiAoYXBwbGllZCkge1xuICAgICAgICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZVxuICAgICAgICAgIGN1cnJlbnRDYWNoZSA9IGNhY2hlXG4gICAgICAgIH1cblxuICAgICAgICBtdXRhYmxlLnBhdGNoZWRUcmVlID0gbmV3VHJlZVxuICAgICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IGhyZWZcblxuICAgICAgICBjdXJyZW50VHJlZSA9IG5ld1RyZWVcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKVxuICAgIH0sXG4gICAgKCkgPT4gc3RhdGVcbiAgKVxufVxuXG5mdW5jdGlvbiBobXJSZWZyZXNoUmVkdWNlck5vb3AoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgX2FjdGlvbjogSG1yUmVmcmVzaEFjdGlvblxuKTogUmVkdWNlclN0YXRlIHtcbiAgcmV0dXJuIHN0YXRlXG59XG5cbmV4cG9ydCBjb25zdCBobXJSZWZyZXNoUmVkdWNlciA9XG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbidcbiAgICA/IGhtclJlZnJlc2hSZWR1Y2VyTm9vcFxuICAgIDogaG1yUmVmcmVzaFJlZHVjZXJJbXBsXG4iXSwibmFtZXMiOlsiaG1yUmVmcmVzaFJlZHVjZXIiLCJobXJSZWZyZXNoUmVkdWNlckltcGwiLCJzdGF0ZSIsImFjdGlvbiIsIm9yaWdpbiIsIm11dGFibGUiLCJocmVmIiwiY2Fub25pY2FsVXJsIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJjYWNoZSIsImNyZWF0ZUVtcHR5Q2FjaGVOb2RlIiwiaW5jbHVkZU5leHRVcmwiLCJoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUiLCJ0cmVlIiwibmF2aWdhdGVkQXQiLCJEYXRlIiwibm93IiwibGF6eURhdGEiLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiVVJMIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJuZXh0VXJsIiwiaXNIbXJSZWZyZXNoIiwidGhlbiIsImZsaWdodERhdGEiLCJjYW5vbmljYWxVcmxPdmVycmlkZSIsImhhbmRsZUV4dGVybmFsVXJsIiwicHVzaFJlZiIsInBlbmRpbmdQdXNoIiwiY3VycmVudFRyZWUiLCJjdXJyZW50Q2FjaGUiLCJub3JtYWxpemVkRmxpZ2h0RGF0YSIsInRyZWVQYXRjaCIsImlzUm9vdFJlbmRlciIsImNvbnNvbGUiLCJsb2ciLCJuZXdUcmVlIiwiYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlIiwiaGFuZGxlU2VnbWVudE1pc21hdGNoIiwiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwiY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJ1bmRlZmluZWQiLCJhcHBsaWVkIiwiYXBwbHlGbGlnaHREYXRhIiwicGF0Y2hlZFRyZWUiLCJoYW5kbGVNdXRhYmxlIiwiaG1yUmVmcmVzaFJlZHVjZXJOb29wIiwiX2FjdGlvbiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js":
|
||
/*!**********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js ***!
|
||
\**********************************************************************************************/
|
||
/***/ ((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 generateSegmentsFromPatch: function() {\n return generateSegmentsFromPatch;\n },\n handleExternalUrl: function() {\n return handleExternalUrl;\n },\n navigateReducer: function() {\n return navigateReducer;\n }\n});\nconst _fetchserverresponse = __webpack_require__(/*! ../fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _invalidatecachebelowflightsegmentpath = __webpack_require__(/*! ../invalidate-cache-below-flight-segmentpath */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _shouldhardnavigate = __webpack_require__(/*! ../should-hard-navigate */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _routerreducertypes = __webpack_require__(/*! ../router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _handlemutable = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _applyflightdata = __webpack_require__(/*! ../apply-flight-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js\");\nconst _prefetchreducer = __webpack_require__(/*! ./prefetch-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js\");\nconst _approuter = __webpack_require__(/*! ../../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _segment = __webpack_require__(/*! ../../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _pprnavigations = __webpack_require__(/*! ../ppr-navigations */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js\");\nconst _prefetchcacheutils = __webpack_require__(/*! ../prefetch-cache-utils */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js\");\nconst _clearcachenodedataforsegmentpath = __webpack_require__(/*! ../clear-cache-node-data-for-segment-path */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.js\");\nconst _aliasedprefetchnavigations = __webpack_require__(/*! ../aliased-prefetch-navigations */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/aliased-prefetch-navigations.js\");\nconst _segmentcache = __webpack_require__(/*! ../../segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\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, _handlemutable.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 triggerLazyFetchForLeafSegments(newCache, currentCache, flightSegmentPath, treePatch) {\n let appliedPatch = false;\n newCache.rsc = currentCache.rsc;\n newCache.prefetchRsc = currentCache.prefetchRsc;\n newCache.loading = currentCache.loading;\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, _clearcachenodedataforsegmentpath.clearCacheNodeDataForSegmentPath)(newCache, currentCache, segmentPaths);\n appliedPatch = true;\n }\n return appliedPatch;\n}\nfunction handleNavigationResult(url, state, mutable, pendingPush, result) {\n switch(result.tag){\n case _segmentcache.NavigationResultTag.MPA:\n {\n // Perform an MPA navigation.\n const newUrl = result.data;\n return handleExternalUrl(state, mutable, newUrl, pendingPush);\n }\n case _segmentcache.NavigationResultTag.NoOp:\n {\n // The server responded with no change to the current page. However, if\n // the URL changed, we still need to update that.\n const newCanonicalUrl = result.data.canonicalUrl;\n mutable.canonicalUrl = newCanonicalUrl;\n // Check if the only thing that changed was the hash fragment.\n const oldUrl = new URL(state.canonicalUrl, url);\n const onlyHashChange = // navigations are always same-origin.\n url.pathname === oldUrl.pathname && url.search === oldUrl.search && url.hash !== oldUrl.hash;\n if (onlyHashChange) {\n // The only updated part of the URL is the hash.\n mutable.onlyHashChange = true;\n mutable.shouldScroll = result.data.shouldScroll;\n mutable.hashFragment = url.hash;\n // Setting this to an empty array triggers a scroll for all new and\n // updated segments. See `ScrollAndFocusHandler` for more details.\n mutable.scrollableSegments = [];\n }\n return (0, _handlemutable.handleMutable)(state, mutable);\n }\n case _segmentcache.NavigationResultTag.Success:\n {\n // Received a new result.\n mutable.cache = result.data.cacheNode;\n mutable.patchedTree = result.data.flightRouterState;\n mutable.canonicalUrl = result.data.canonicalUrl;\n mutable.scrollableSegments = result.data.scrollableSegments;\n mutable.shouldScroll = result.data.shouldScroll;\n mutable.hashFragment = result.data.hash;\n return (0, _handlemutable.handleMutable)(state, mutable);\n }\n case _segmentcache.NavigationResultTag.Async:\n {\n return result.data.then((asyncResult)=>handleNavigationResult(url, state, mutable, pendingPush, asyncResult), // TODO: This matches the current behavior but we need to do something\n // better here if the network fails.\n ()=>{\n return state;\n });\n }\n default:\n {\n result;\n return state;\n }\n }\n}\nfunction navigateReducer(state, action) {\n const { url, isExternalUrl, navigateType, shouldScroll, allowAliasing } = action;\n const mutable = {};\n const { hash } = url;\n const href = (0, _createhreffromurl.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, _prefetchcacheutils.prunePrefetchCache)(state.prefetchCache);\n mutable.preserveCustomHistoryState = false;\n mutable.pendingPush = pendingPush;\n if (isExternalUrl) {\n return handleExternalUrl(state, mutable, url.toString(), pendingPush);\n }\n // Handles case where `<meta http-equiv=\"refresh\">` tag is present,\n // which will trigger an MPA navigation.\n if (document.getElementById('__next-page-redirect')) {\n return handleExternalUrl(state, mutable, href, pendingPush);\n }\n if (false) {}\n const prefetchValues = (0, _prefetchcacheutils.getOrCreatePrefetchCacheEntry)({\n url,\n nextUrl: state.nextUrl,\n tree: state.tree,\n prefetchCache: state.prefetchCache,\n allowAliasing\n });\n const { treeAtTimeOfPrefetch, data } = prefetchValues;\n _prefetchreducer.prefetchQueue.bump(data);\n return data.then((param)=>{\n let { flightData, canonicalUrl: canonicalUrlOverride, postponed } = param;\n const navigatedAt = Date.now();\n let isFirstRead = false;\n // we only want to mark this once\n if (!prefetchValues.lastUsedTime) {\n // important: we should only mark the cache node as dirty after we unsuspend from the call above\n prefetchValues.lastUsedTime = navigatedAt;\n isFirstRead = true;\n }\n if (prefetchValues.aliased) {\n // When alias is enabled, search param may not be included in the canonicalUrl.\n // But we want to set url to canonicalUrl so that we use redirected path for fetching dynamic data.\n const urlWithCanonicalPathname = new URL(url.href);\n if (canonicalUrlOverride) {\n urlWithCanonicalPathname.pathname = canonicalUrlOverride.pathname;\n }\n const result = (0, _aliasedprefetchnavigations.handleAliasedPrefetchEntry)(navigatedAt, state, flightData, urlWithCanonicalPathname, mutable);\n // We didn't return new router state because we didn't apply the aliased entry for some reason.\n // We'll re-invoke the navigation handler but ensure that we don't attempt to use the aliased entry. This\n // will create an on-demand prefetch entry.\n if (result === false) {\n return navigateReducer(state, {\n ...action,\n allowAliasing: false\n });\n }\n return result;\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 const updatedCanonicalUrl = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : href;\n const onlyHashChange = !!hash && state.canonicalUrl.split('#', 1)[0] === updatedCanonicalUrl.split('#', 1)[0];\n // If only the hash has changed, the server hasn't sent us any new data. We can just update\n // the mutable properties responsible for URL and scroll handling and return early.\n if (onlyHashChange) {\n mutable.onlyHashChange = true;\n mutable.canonicalUrl = updatedCanonicalUrl;\n mutable.shouldScroll = shouldScroll;\n mutable.hashFragment = hash;\n mutable.scrollableSegments = [];\n return (0, _handlemutable.handleMutable)(state, mutable);\n }\n let currentTree = state.tree;\n let currentCache = state.cache;\n let scrollableSegments = [];\n for (const normalizedFlightData of flightData){\n const { pathToSegment: flightSegmentPath, seedData, head, isHeadPartial, isRootRender } = normalizedFlightData;\n let treePatch = normalizedFlightData.tree;\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, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href);\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, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, treeAtTimeOfPrefetch, treePatch, href);\n }\n if (newTree !== null) {\n if (// will 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 startPPRNavigation. The current structure is just\n // an incremental step.\n seedData && isRootRender && postponed) {\n const task = (0, _pprnavigations.startPPRNavigation)(navigatedAt, currentCache, currentTree, treePatch, seedData, head, isHeadPartial, false, scrollableSegments);\n if (task !== null) {\n if (task.route === null) {\n // Detected a change to the root layout. Perform an full-\n // page navigation.\n return handleExternalUrl(state, mutable, href, pendingPush);\n }\n // Use the tree computed by startPPRNavigation instead\n // of the one computed by applyRouterStatePatchToTree.\n // TODO: We should remove applyRouterStatePatchToTree\n // from the PPR path entirely.\n const patchedRouterState = task.route;\n newTree = patchedRouterState;\n const newCache = task.node;\n if (newCache !== 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 mutable.cache = newCache;\n }\n const dynamicRequestTree = task.dynamicRequestTree;\n if (dynamicRequestTree !== null) {\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 const dynamicRequest = (0, _fetchserverresponse.fetchServerResponse)(new URL(updatedCanonicalUrl, url.origin), {\n flightRouterState: dynamicRequestTree,\n nextUrl: state.nextUrl\n });\n (0, _pprnavigations.listenForDynamicRequest)(task, dynamicRequest);\n // We store the dynamic request on the `lazyData` property of the CacheNode\n // because we're not going to await the dynamic request here. Since we're not blocking\n // on the dynamic request, `layout-router` will\n // task.node.lazyData = dynamicRequest\n } else {\n // The prefetched tree does not contain dynamic holes — it's\n // fully static. We can skip the dynamic request.\n }\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 = treePatch;\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 if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return handleExternalUrl(state, mutable, href, pendingPush);\n }\n const cache = (0, _approuter.createEmptyCacheNode)();\n let applied = false;\n if (prefetchValues.status === _routerreducertypes.PrefetchCacheEntryStatus.stale && !isFirstRead) {\n // When we have a stale prefetch entry, we only want to re-use the loading state of the route we're navigating to, to support instant loading navigations\n // this will trigger a lazy fetch for the actual page data by nulling the `rsc` and `prefetchRsc` values for page data,\n // while copying over the `loading` for the segment that contains the page data.\n // We only do this on subsequent reads, as otherwise there'd be no loading data to re-use.\n // We skip this branch if only the hash fragment has changed, as we don't want to trigger a lazy fetch in that case\n applied = triggerLazyFetchForLeafSegments(cache, currentCache, flightSegmentPath, treePatch);\n // since we re-used the stale cache's loading state & refreshed the data,\n // update the `lastUsedTime` so that it can continue to be re-used for the next 30s\n prefetchValues.lastUsedTime = navigatedAt;\n } else {\n applied = (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData, prefetchValues);\n }\n const hardNavigate = (0, _shouldhardnavigate.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, _invalidatecachebelowflightsegmentpath.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 // If we applied the cache, we update the \"current cache\" value so any other\n // segments in the FlightDataPath will be able to reference the updated cache.\n currentCache = cache;\n }\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] !== _segment.DEFAULT_SEGMENT_KEY) {\n scrollableSegments.push(scrollableSegmentPath);\n }\n }\n }\n currentTree = newTree;\n }\n }\n mutable.patchedTree = currentTree;\n mutable.canonicalUrl = updatedCanonicalUrl;\n mutable.scrollableSegments = scrollableSegments;\n mutable.hashFragment = hash;\n mutable.shouldScroll = shouldScroll;\n return (0, _handlemutable.handleMutable)(state, mutable);\n }, ()=>state);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigate-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL25hdmlnYXRlLXJlZHVjZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBa0RnQkEseUJBQXlCO2VBQXpCQTs7SUFkQUMsaUJBQWlCO2VBQWpCQTs7SUFzSUFDLGVBQWU7ZUFBZkE7OztpREFyS29COytDQUNGO21FQUNvQjt5REFDVjtnREFDVDt5REFDUztnREFPckM7MkNBQ3VCOzZDQUNFOzZDQUNGO3VDQUNPO3FDQUNEOzRDQUN3QjtnREFJckQ7OERBQzBDO3dEQUNOOzBDQUtwQztBQUVBLFNBQVNELGtCQUNkRSxLQUEyQixFQUMzQkMsT0FBZ0IsRUFDaEJDLEdBQVcsRUFDWEMsV0FBb0I7SUFFcEJGLFFBQVFHLGFBQWEsR0FBRztJQUN4QkgsUUFBUUksWUFBWSxHQUFHSDtJQUN2QkQsUUFBUUUsV0FBVyxHQUFHQTtJQUN0QkYsUUFBUUssa0JBQWtCLEdBQUdDO0lBRTdCLE9BQU9DLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNSLE9BQU9DO0FBQzlCO0FBRU8sU0FBU0osMEJBQ2RZLGlCQUFvQztJQUVwQyxNQUFNQyxXQUFnQyxFQUFFO0lBQ3hDLE1BQU0sQ0FBQ0MsU0FBU0MsZUFBZSxHQUFHSDtJQUVsQyxJQUFJSSxPQUFPQyxJQUFJLENBQUNGLGdCQUFnQkcsTUFBTSxLQUFLLEdBQUc7UUFDNUMsT0FBTztZQUFDO2dCQUFDSjthQUFRO1NBQUM7SUFDcEI7SUFFQSxLQUFLLE1BQU0sQ0FBQ0ssa0JBQWtCQyxjQUFjLElBQUlKLE9BQU9LLE9BQU8sQ0FDNUROLGdCQUNDO1FBQ0QsS0FBSyxNQUFNTyxnQkFBZ0J0QiwwQkFBMEJvQixlQUFnQjtZQUNuRSxtRUFBbUU7WUFDbkUsSUFBSU4sWUFBWSxJQUFJO2dCQUNsQkQsU0FBU1UsSUFBSSxDQUFDO29CQUFDSjt1QkFBcUJHO2lCQUFhO1lBQ25ELE9BQU87Z0JBQ0xU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bkI7b0JBRUo7b0JBRUEsTUFBTTZDLGVBQWVDLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFDbkIsc0JBQXNCLGFBRXRCNUI7b0JBR0YsSUFBSTJCLGNBQWM7d0JBQ2hCLDJDQUEyQzt3QkFDM0N0RSxNQUFNMUIsR0FBRyxHQUFHSixhQUFhSSxHQUFHO3dCQUM1QjBCLE1BQU16QixXQUFXLEdBQUdMLGFBQWFLLFdBQVc7d0JBRTVDaUcsQ0FBQUEsR0FBQUEsdUNBQUFBLHFDQUFBQSxFQUNFeEUsT0FDQTlCLGNBQ0FDO3dCQUVGLDhFQUE4RTt3QkFDOUV2QixRQUFRb0QsS0FBSyxHQUFHQTtvQkFDbEIsT0FBTyxJQUFJaUUsU0FBUzt3QkFDbEJySCxRQUFRb0QsS0FBSyxHQUFHQTt3QkFDaEIsNEVBQTRFO3dCQUM1RSw4RUFBOEU7d0JBQzlFOUIsZUFBZThCO29CQUNqQjtvQkFFQSxLQUFLLE1BQU15RSxjQUFjakksMEJBQTBCNEIsV0FBWTt3QkFDN0QsTUFBTXNHLHdCQUF3QjsrQkFDekJ2RzsrQkFDQXNHO3lCQUNKO3dCQUNELGtGQUFrRjt3QkFDbEYsSUFDRUMscUJBQXFCLENBQUNBLHNCQUFzQmhILE1BQU0sR0FBRyxFQUFFLEtBQ3ZEaUgsU0FBQUEsbUJBQW1CLEVBQ25COzRCQUNBMUgsbUJBQW1CYyxJQUFJLENBQUMyRzt3QkFDMUI7b0JBQ0Y7Z0JBQ0Y7Z0JBRUEvQixjQUFjUTtZQUNoQjtRQUNGO1FBRUF2RyxRQUFRc0QsV0FBVyxHQUFHeUM7UUFDdEIvRixRQUFRSSxZQUFZLEdBQUd5RjtRQUN2QjdGLFFBQVFLLGtCQUFrQixHQUFHQTtRQUM3QkwsUUFBUWtELFlBQVksR0FBR0Y7UUFDdkJoRCxRQUFRaUQsWUFBWSxHQUFHQTtRQUV2QixPQUFPMUMsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY1IsT0FBT0M7SUFDOUIsR0FDQSxJQUFNRDtBQUVWIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL25hdmlnYXRlLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHtcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIEZsaWdodFNlZ21lbnRQYXRoLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IGZldGNoU2VydmVyUmVzcG9uc2UgfSBmcm9tICcuLi9mZXRjaC1zZXJ2ZXItcmVzcG9uc2UnXG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gJy4uL2NyZWF0ZS1ocmVmLWZyb20tdXJsJ1xuaW1wb3J0IHsgaW52YWxpZGF0ZUNhY2hlQmVsb3dGbGlnaHRTZWdtZW50UGF0aCB9IGZyb20gJy4uL2ludmFsaWRhdGUtY2FjaGUtYmVsb3ctZmxpZ2h0LXNlZ21lbnRwYXRoJ1xuaW1wb3J0IHsgYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlIH0gZnJvbSAnLi4vYXBwbHktcm91dGVyLXN0YXRlLXBhdGNoLXRvLXRyZWUnXG5pbXBvcnQgeyBzaG91bGRIYXJkTmF2aWdhdGUgfSBmcm9tICcuLi9zaG91bGQtaGFyZC1uYXZpZ2F0ZSdcbmltcG9ydCB7IGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCB9IGZyb20gJy4uL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0J1xuaW1wb3J0IHtcbiAgUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzLFxuICB0eXBlIE11dGFibGUsXG4gIHR5cGUgTmF2aWdhdGVBY3Rpb24sXG4gIHR5cGUgUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIHR5cGUgUmVkdWNlclN0YXRlLFxufSBmcm9tICcuLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IGhhbmRsZU11dGFibGUgfSBmcm9tICcuLi9oYW5kbGUtbXV0YWJsZSdcbmltcG9ydCB7IGFwcGx5RmxpZ2h0RGF0YSB9IGZyb20gJy4uL2FwcGx5LWZsaWdodC1kYXRhJ1xuaW1wb3J0IHsgcHJlZmV0Y2hRdWV1ZSB9IGZyb20gJy4vcHJlZmV0Y2gtcmVkdWNlcidcbmltcG9ydCB7IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vYXBwLXJvdXRlcidcbmltcG9ydCB7IERFRkFVTFRfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgeyBsaXN0ZW5Gb3JEeW5hbWljUmVxdWVzdCwgc3RhcnRQUFJOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vcHByLW5hdmlnYXRpb25zJ1xuaW1wb3J0IHtcbiAgZ2V0T3JDcmVhdGVQcmVmZXRjaENhY2hlRW50cnksXG4gIHBydW5lUHJlZmV0Y2hDYWNoZSxcbn0gZnJvbSAnLi4vcHJlZmV0Y2gtY2FjaGUtdXRpbHMnXG5pbXBvcnQgeyBjbGVhckNhY2hlTm9kZURhdGFGb3JTZWdtZW50UGF0aCB9IGZyb20gJy4uL2NsZWFyLWNhY2hlLW5vZGUtZGF0YS1mb3Itc2VnbWVudC1wYXRoJ1xuaW1wb3J0IHsgaGFuZGxlQWxpYXNlZFByZWZldGNoRW50cnkgfSBmcm9tICcuLi9hbGlhc2VkLXByZWZldGNoLW5hdmlnYXRpb25zJ1xuaW1wb3J0IHtcbiAgbmF2aWdhdGUgYXMgbmF2aWdhdGVVc2luZ1NlZ21lbnRDYWNoZSxcbiAgTmF2aWdhdGlvblJlc3VsdFRhZyxcbiAgdHlwZSBOYXZpZ2F0aW9uUmVzdWx0LFxufSBmcm9tICcuLi8uLi9zZWdtZW50LWNhY2hlJ1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRXh0ZXJuYWxVcmwoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgbXV0YWJsZTogTXV0YWJsZSxcbiAgdXJsOiBzdHJpbmcsXG4gIHBlbmRpbmdQdXNoOiBib29sZWFuXG4pIHtcbiAgbXV0YWJsZS5tcGFOYXZpZ2F0aW9uID0gdHJ1ZVxuICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IHVybFxuICBtdXRhYmxlLnBlbmRpbmdQdXNoID0gcGVuZGluZ1B1c2hcbiAgbXV0YWJsZS5zY3JvbGxhYmxlU2VnbWVudHMgPSB1bmRlZmluZWRcblxuICByZXR1cm4gaGFuZGxlTXV0YWJsZShzdGF0ZSwgbXV0YWJsZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2goXG4gIGZsaWdodFJvdXRlclBhdGNoOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogRmxpZ2h0U2VnbWVudFBhdGhbXSB7XG4gIGNvbnN0IHNlZ21lbnRzOiBGbGlnaHRTZWdtZW50UGF0aFtdID0gW11cbiAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVzXSA9IGZsaWdodFJvdXRlclBhdGNoXG5cbiAgaWYgKE9iamVjdC5rZXlzKHBhcmFsbGVsUm91dGVzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW1tzZWdtZW50XV1cbiAgfVxuXG4gIGZvciAoY29uc3QgW3BhcmFsbGVsUm91dGVLZXksIHBhcmFsbGVsUm91dGVdIG9mIE9iamVjdC5lbnRyaWVzKFxuICAgIHBhcmFsbGVsUm91dGVzXG4gICkpIHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkU2VnbWVudCBvZiBnZW5lcmF0ZVNlZ21lbnRzRnJvbVBhdGNoKHBhcmFsbGVsUm91dGUpKSB7XG4gICAgICAvLyBJZiB0aGUgc2VnbWVudCBpcyBlbXB0eSwgaXQgbWVhbnMgd2UgYXJlIGF0IHRoZSByb290IG9mIHRoZSB0cmVlXG4gICAgICBpZiAoc2VnbWVudCA9PT0gJycpIHtcbiAgICAgICAgc2VnbWVudHMucHVzaChbcGFyYWxsZWxSb3V0ZUtleSwgLi4uY2hpbGRTZWdtZW50XSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlZ21lbnRzLnB1c2goW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVLZXksIC4uLmNoaWxkU2VnbWVudF0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRzXG59XG5cbmZ1bmN0aW9uIHRyaWdnZXJMYXp5RmV0Y2hGb3JMZWFmU2VnbWVudHMoXG4gIG5ld0NhY2hlOiBDYWNoZU5vZGUsXG4gIGN1cnJlbnRDYWNoZTogQ2FjaGVOb2RlLFxuICBmbGlnaHRTZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGgsXG4gIHRyZWVQYXRjaDogRmxpZ2h0Um91dGVyU3RhdGVcbikge1xuICBsZXQgYXBwbGllZFBhdGNoID0gZmFsc2VcblxuICBuZXdDYWNoZS5yc2MgPSBjdXJyZW50Q2FjaGUucnNjXG4gIG5ld0NhY2hlLnByZWZldGNoUnNjID0gY3VycmVudENhY2hlLnByZWZldGNoUnNjXG4gIG5ld0NhY2hlLmxvYWRpbmcgPSBjdXJyZW50Q2FjaGUubG9hZGluZ1xuICBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcyA9IG5ldyBNYXAoY3VycmVudENhY2hlLnBhcmFsbGVsUm91dGVzKVxuXG4gIGNvbnN0IHNlZ21lbnRQYXRoc1RvRmlsbCA9IGdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2godHJlZVBhdGNoKS5tYXAoXG4gICAgKHNlZ21lbnQpID0+IFsuLi5mbGlnaHRTZWdtZW50UGF0aCwgLi4uc2VnbWVudF1cbiAgKVxuXG4gIGZvciAoY29uc3Qgc2VnbWVudFBhdGhzIG9mIHNlZ21lbnRQYXRoc1RvRmlsbCkge1xuICAgIGNsZWFyQ2FjaGVOb2RlRGF0YUZvclNlZ21lbnRQYXRoKG5ld0NhY2hlLCBjdXJyZW50Q2FjaGUsIHNlZ21lbnRQYXRocylcblxuICAgIGFwcGxpZWRQYXRjaCA9IHRydWVcbiAgfVxuXG4gIHJldHVybiBhcHBsaWVkUGF0Y2hcbn1cblxuZnVuY3Rpb24gaGFuZGxlTmF2aWdhdGlvblJlc3VsdChcbiAgdXJsOiBVUkwsXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgbXV0YWJsZTogTXV0YWJsZSxcbiAgcGVuZGluZ1B1c2g6IGJvb2xlYW4sXG4gIHJlc3VsdDogTmF2aWdhdGlvblJlc3VsdFxuKTogUmVkdWNlclN0YXRlIHtcbiAgc3dpdGNoIChyZXN1bHQudGFnKSB7XG4gICAgY2FzZSBOYXZpZ2F0aW9uUmVzdWx0VGFnLk1QQToge1xuICAgICAgLy8gUGVyZm9ybSBhbiBNUEEgbmF2aWdhdGlvbi5cbiAgICAgIGNvbnN0IG5ld1VybCA9IHJlc3VsdC5kYXRhXG4gICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoc3RhdGUsIG11dGFibGUsIG5ld1VybCwgcGVuZGluZ1B1c2gpXG4gICAgfVxuICAgIGNhc2UgTmF2aWdhdGlvblJlc3VsdFRhZy5Ob09wOiB7XG4gICAgICAvLyBUaGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIG5vIGNoYW5nZSB0byB0aGUgY3VycmVudCBwYWdlLiBIb3dldmVyLCBpZlxuICAgICAgLy8gdGhlIFVSTCBjaGFuZ2VkLCB3ZSBzdGlsbCBuZWVkIHRvIHVwZGF0ZSB0aGF0LlxuICAgICAgY29uc3QgbmV3Q2Fub25pY2FsVXJsID0gcmVzdWx0LmRhdGEuY2Fub25pY2FsVXJsXG4gICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IG5ld0Nhbm9uaWNhbFVybFxuXG4gICAgICAvLyBDaGVjayBpZiB0aGUgb25seSB0aGluZyB0aGF0IGNoYW5nZWQgd2FzIHRoZSBoYXNoIGZyYWdtZW50LlxuICAgICAgY29uc3Qgb2xkVXJsID0gbmV3IFVSTChzdGF0ZS5jYW5vbmljYWxVcmwsIHVybClcbiAgICAgIGNvbnN0IG9ubHlIYXNoQ2hhbmdlID1cbiAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjb21wYXJlIHRoZSBvcmlnaW5zLCBiZWNhdXNlIGNsaWVudC1kcml2ZW5cbiAgICAgICAgLy8gbmF2aWdhdGlvbnMgYXJlIGFsd2F5cyBzYW1lLW9yaWdpbi5cbiAgICAgICAgdXJsLnBhdGhuYW1lID09PSBvbGRVcmwucGF0aG5hbWUgJiZcbiAgICAgICAgdXJsLnNlYXJjaCA9PT0gb2xkVXJsLnNlYXJjaCAmJlxuICAgICAgICB1cmwuaGFzaCAhPT0gb2xkVXJsLmhhc2hcbiAgICAgIGlmIChvbmx5SGFzaENoYW5nZSkge1xuICAgICAgICAvLyBUaGUgb25seSB1cGRhdGVkIHBhcnQgb2YgdGhlIFVSTCBpcyB0aGUgaGFzaC5cbiAgICAgICAgbXV0YWJsZS5vbmx5SGFzaENoYW5nZSA9IHRydWVcbiAgICAgICAgbXV0YWJsZS5zaG91bGRTY3JvbGwgPSByZXN1bHQuZGF0YS5zaG91bGRTY3JvbGxcbiAgICAgICAgbXV0YWJsZS5oYXNoRnJhZ21lbnQgPSB1cmwuaGFzaFxuICAgICAgICAvLyBTZXR0aW5nIHRoaXMgdG8gYW4gZW1wdHkgYXJyYXkgdHJpZ2dlcnMgYSBzY3JvbGwgZm9yIGFsbCBuZXcgYW5kXG4gICAgICAgIC8vIHVwZGF0ZWQgc2VnbWVudHMuIFNlZSBgU2Nyb2xsQW5kRm9jdXNIYW5kbGVyYCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICBtdXRhYmxlLnNjcm9sbGFibGVTZWdtZW50cyA9IFtdXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKVxuICAgIH1cbiAgICBjYXNlIE5hdmlnYXRpb25SZXN1bHRUYWcuU3VjY2Vzczoge1xuICAgICAgLy8gUmVjZWl2ZWQgYSBuZXcgcmVzdWx0LlxuICAgICAgbXV0YWJsZS5jYWNoZSA9IHJlc3VsdC5kYXRhLmNhY2hlTm9kZVxuICAgICAgbXV0YWJsZS5wYXRjaGVkVHJlZSA9IHJlc3VsdC5kYXRhLmZsaWdodFJvdXRlclN0YXRlXG4gICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IHJlc3VsdC5kYXRhLmNhbm9uaWNhbFVybFxuICAgICAgbXV0YWJsZS5zY3JvbGxhYmxlU2VnbWVudHMgPSByZXN1bHQuZGF0YS5zY3JvbGxhYmxlU2VnbWVudHNcbiAgICAgIG11dGFibGUuc2hvdWxkU2Nyb2xsID0gcmVzdWx0LmRhdGEuc2hvdWxkU2Nyb2xsXG4gICAgICBtdXRhYmxlLmhhc2hGcmFnbWVudCA9IHJlc3VsdC5kYXRhLmhhc2hcbiAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKVxuICAgIH1cbiAgICBjYXNlIE5hdmlnYXRpb25SZXN1bHRUYWcuQXN5bmM6IHtcbiAgICAgIHJldHVybiByZXN1bHQuZGF0YS50aGVuKFxuICAgICAgICAoYXN5bmNSZXN1bHQpID0+XG4gICAgICAgICAgaGFuZGxlTmF2aWdhdGlvblJlc3VsdCh1cmwsIHN0YXRlLCBtdXRhYmxlLCBwZW5kaW5nUHVzaCwgYXN5bmNSZXN1bHQpLFxuICAgICAgICAvLyBJZiB0aGUgbmF2aWdhdGlvbiBmYWlsZWQsIHJldHVybiB0aGUgY3VycmVudCBzdGF0ZS5cbiAgICAgICAgLy8gVE9ETzogVGhpcyBtYXRjaGVzIHRoZSBjdXJyZW50IGJlaGF2aW9yIGJ1dCB3ZSBuZWVkIHRvIGRvIHNvbWV0aGluZ1xuICAgICAgICAvLyBiZXR0ZXIgaGVyZSBpZiB0aGUgbmV0d29yayBmYWlscy5cbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICB9XG4gICAgICApXG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJlc3VsdCBzYXRpc2ZpZXMgbmV2ZXJcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbmF2aWdhdGVSZWR1Y2VyKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIGFjdGlvbjogTmF2aWdhdGVBY3Rpb25cbik6IFJlZHVjZXJTdGF0ZSB7XG4gIGNvbnN0IHsgdXJsLCBpc0V4dGVybmFsVXJsLCBuYXZpZ2F0ZVR5cGUsIHNob3VsZFNjcm9sbCwgYWxsb3dBbGlhc2luZyB9ID1cbiAgICBhY3Rpb25cbiAgY29uc3QgbXV0YWJsZTogTXV0YWJsZSA9IHt9XG4gIGNvbnN0IHsgaGFzaCB9ID0gdXJsXG4gIGNvbnN0IGhyZWYgPSBjcmVhdGVIcmVmRnJvbVVybCh1cmwpXG4gIGNvbnN0IHBlbmRpbmdQdXNoID0gbmF2aWdhdGVUeXBlID09PSAncHVzaCdcbiAgLy8gd2Ugd2FudCB0byBwcnVuZSB0aGUgcHJlZmV0Y2ggY2FjaGUgb24gZXZlcnkgbmF2aWdhdGlvbiB0byBhdm9pZCBpdCBncm93aW5nIHRvbyBsYXJnZVxuICBwcnVuZVByZWZldGNoQ2FjaGUoc3RhdGUucHJlZmV0Y2hDYWNoZSlcblxuICBtdXRhYmxlLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlID0gZmFsc2VcbiAgbXV0YWJsZS5wZW5kaW5nUHVzaCA9IHBlbmRpbmdQdXNoXG5cbiAgaWYgKGlzRXh0ZXJuYWxVcmwpIHtcbiAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoc3RhdGUsIG11dGFibGUsIHVybC50b1N0cmluZygpLCBwZW5kaW5nUHVzaClcbiAgfVxuXG4gIC8vIEhhbmRsZXMgY2FzZSB3aGVyZSBgPG1ldGEgaHR0cC1lcXVpdj1cInJlZnJlc2hcIj5gIHRhZyBpcyBwcmVzZW50LFxuICAvLyB3aGljaCB3aWxsIHRyaWdnZXIgYW4gTVBBIG5hdmlnYXRpb24uXG4gIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX19uZXh0LXBhZ2UtcmVkaXJlY3QnKSkge1xuICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChzdGF0ZSwgbXV0YWJsZSwgaHJlZiwgcGVuZGluZ1B1c2gpXG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFKSB7XG4gICAgLy8gKFZlcnkgRWFybHkgRXhwZXJpbWVudGFsIEZlYXR1cmUpIFNlZ21lbnQgQ2FjaGVcbiAgICAvL1xuICAgIC8vIEJ5cGFzcyB0aGUgbm9ybWFsIHByZWZldGNoIGNhY2hlIGFuZCB1c2UgdGhlIG5ldyBwZXItc2VnbWVudCBjYWNoZVxuICAgIC8vIGltcGxlbWVudGF0aW9uIGluc3RlYWQuIFRoaXMgaXMgb25seSBzdXBwb3J0ZWQgaWYgUFBSIGlzIGVuYWJsZWQsIHRvby5cbiAgICAvL1xuICAgIC8vIFRlbXBvcmFyeSBnbHVlIGNvZGUgYmV0d2VlbiB0aGUgcm91dGVyIHJlZHVjZXIgYW5kIHRoZSBuZXcgbmF2aWdhdGlvblxuICAgIC8vIGltcGxlbWVudGF0aW9uLiBFdmVudHVhbGx5IHdlJ2xsIHJld3JpdGUgdGhlIHJvdXRlciByZWR1Y2VyIHRvIGFcbiAgICAvLyBzdGF0ZSBtYWNoaW5lLlxuICAgIGNvbnN0IHJlc3VsdCA9IG5hdmlnYXRlVXNpbmdTZWdtZW50Q2FjaGUoXG4gICAgICB1cmwsXG4gICAgICBzdGF0ZS5jYWNoZSxcbiAgICAgIHN0YXRlLnRyZWUsXG4gICAgICBzdGF0ZS5uZXh0VXJsLFxuICAgICAgc2hvdWxkU2Nyb2xsXG4gICAgKVxuICAgIHJldHVybiBoYW5kbGVOYXZpZ2F0aW9uUmVzdWx0KHVybCwgc3RhdGUsIG11dGFibGUsIHBlbmRpbmdQdXNoLCByZXN1bHQpXG4gIH1cblxuICBjb25zdCBwcmVmZXRjaFZhbHVlcyA9IGdldE9yQ3JlYXRlUHJlZmV0Y2hDYWNoZUVudHJ5KHtcbiAgICB1cmwsXG4gICAgbmV4dFVybDogc3RhdGUubmV4dFVybCxcbiAgICB0cmVlOiBzdGF0ZS50cmVlLFxuICAgIHByZWZldGNoQ2FjaGU6IHN0YXRlLnByZWZldGNoQ2FjaGUsXG4gICAgYWxsb3dBbGlhc2luZyxcbiAgfSlcbiAgY29uc3QgeyB0cmVlQXRUaW1lT2ZQcmVmZXRjaCwgZGF0YSB9ID0gcHJlZmV0Y2hWYWx1ZXNcblxuICBwcmVmZXRjaFF1ZXVlLmJ1bXAoZGF0YSlcblxuICByZXR1cm4gZGF0YS50aGVuKFxuICAgICh7IGZsaWdodERhdGEsIGNhbm9uaWNhbFVybDogY2Fub25pY2FsVXJsT3ZlcnJpZGUsIHBvc3Rwb25lZCB9KSA9PiB7XG4gICAgICBjb25zdCBuYXZpZ2F0ZWRBdCA9IERhdGUubm93KClcblxuICAgICAgbGV0IGlzRmlyc3RSZWFkID0gZmFsc2VcbiAgICAgIC8vIHdlIG9ubHkgd2FudCB0byBtYXJrIHRoaXMgb25jZVxuICAgICAgaWYgKCFwcmVmZXRjaFZhbHVlcy5sYXN0VXNlZFRpbWUpIHtcbiAgICAgICAgLy8gaW1wb3J0YW50OiB3ZSBzaG91bGQgb25seSBtYXJrIHRoZSBjYWNoZSBub2RlIGFzIGRpcnR5IGFmdGVyIHdlIHVuc3VzcGVuZCBmcm9tIHRoZSBjYWxsIGFib3ZlXG4gICAgICAgIHByZWZldGNoVmFsdWVzLmxhc3RVc2VkVGltZSA9IG5hdmlnYXRlZEF0XG4gICAgICAgIGlzRmlyc3RSZWFkID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAocHJlZmV0Y2hWYWx1ZXMuYWxpYXNlZCkge1xuICAgICAgICAvLyBXaGVuIGFsaWFzIGlzIGVuYWJsZWQsIHNlYXJjaCBwYXJhbSBtYXkgbm90IGJlIGluY2x1ZGVkIGluIHRoZSBjYW5vbmljYWxVcmwuXG4gICAgICAgIC8vIEJ1dCB3ZSB3YW50IHRvIHNldCB1cmwgdG8gY2Fub25pY2FsVXJsIHNvIHRoYXQgd2UgdXNlIHJlZGlyZWN0ZWQgcGF0aCBmb3IgZmV0Y2hpbmcgZHluYW1pYyBkYXRhLlxuICAgICAgICBjb25zdCB1cmxXaXRoQ2Fub25pY2FsUGF0aG5hbWUgPSBuZXcgVVJMKHVybC5ocmVmKVxuICAgICAgICBpZiAoY2Fub25pY2FsVXJsT3ZlcnJpZGUpIHtcbiAgICAgICAgICB1cmxXaXRoQ2Fub25pY2FsUGF0aG5hbWUucGF0aG5hbWUgPSBjYW5vbmljYWxVcmxPdmVycmlkZS5wYXRobmFtZVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaGFuZGxlQWxpYXNlZFByZWZldGNoRW50cnkoXG4gICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgZmxpZ2h0RGF0YSxcbiAgICAgICAgICB1cmxXaXRoQ2Fub25pY2FsUGF0aG5hbWUsXG4gICAgICAgICAgbXV0YWJsZVxuICAgICAgICApXG5cbiAgICAgICAgLy8gV2UgZGlkbid0IHJldHVybiBuZXcgcm91dGVyIHN0YXRlIGJlY2F1c2Ugd2UgZGlkbid0IGFwcGx5IHRoZSBhbGlhc2VkIGVudHJ5IGZvciBzb21lIHJlYXNvbi5cbiAgICAgICAgLy8gV2UnbGwgcmUtaW52b2tlIHRoZSBuYXZpZ2F0aW9uIGhhbmRsZXIgYnV0IGVuc3VyZSB0aGF0IHdlIGRvbid0IGF0dGVtcHQgdG8gdXNlIHRoZSBhbGlhc2VkIGVudHJ5LiBUaGlzXG4gICAgICAgIC8vIHdpbGwgY3JlYXRlIGFuIG9uLWRlbWFuZCBwcmVmZXRjaCBlbnRyeS5cbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXR1cm4gbmF2aWdhdGVSZWR1Y2VyKHN0YXRlLCB7IC4uLmFjdGlvbiwgYWxsb3dBbGlhc2luZzogZmFsc2UgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlbiBuYXZpZ2F0aW5nIHRvIHBhZ2UgaW4gYHBhZ2VzYCBmcm9tIGBhcHBgXG4gICAgICBpZiAodHlwZW9mIGZsaWdodERhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChzdGF0ZSwgbXV0YWJsZSwgZmxpZ2h0RGF0YSwgcGVuZGluZ1B1c2gpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWRDYW5vbmljYWxVcmwgPSBjYW5vbmljYWxVcmxPdmVycmlkZVxuICAgICAgICA/IGNyZWF0ZUhyZWZGcm9tVXJsKGNhbm9uaWNhbFVybE92ZXJyaWRlKVxuICAgICAgICA6IGhyZWZcblxuICAgICAgY29uc3Qgb25seUhhc2hDaGFuZ2UgPVxuICAgICAgICAhIWhhc2ggJiZcbiAgICAgICAgc3RhdGUuY2Fub25pY2FsVXJsLnNwbGl0KCcjJywgMSlbMF0gPT09XG4gICAgICAgICAgdXBkYXRlZENhbm9uaWNhbFVybC5zcGxpdCgnIycsIDEpWzBdXG5cbiAgICAgIC8vIElmIG9ubHkgdGhlIGhhc2ggaGFzIGNoYW5nZWQsIHRoZSBzZXJ2ZXIgaGFzbid0IHNlbnQgdXMgYW55IG5ldyBkYXRhLiBXZSBjYW4ganVzdCB1cGRhdGVcbiAgICAgIC8vIHRoZSBtdXRhYmxlIHByb3BlcnRpZXMgcmVzcG9uc2libGUgZm9yIFVSTCBhbmQgc2Nyb2xsIGhhbmRsaW5nIGFuZCByZXR1cm4gZWFybHkuXG4gICAgICBpZiAob25seUhhc2hDaGFuZ2UpIHtcbiAgICAgICAgbXV0YWJsZS5vbmx5SGFzaENoYW5nZSA9IHRydWVcbiAgICAgICAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSB1cGRhdGVkQ2Fub25pY2FsVXJsXG4gICAgICAgIG11dGFibGUuc2hvdWxkU2Nyb2xsID0gc2hvdWxkU2Nyb2xsXG4gICAgICAgIG11dGFibGUuaGFzaEZyYWdtZW50ID0gaGFzaFxuICAgICAgICBtdXRhYmxlLnNjcm9sbGFibGVTZWdtZW50cyA9IFtdXG4gICAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKVxuICAgICAgfVxuXG4gICAgICBsZXQgY3VycmVudFRyZWUgPSBzdGF0ZS50cmVlXG4gICAgICBsZXQgY3VycmVudENhY2hlID0gc3RhdGUuY2FjaGVcbiAgICAgIGxldCBzY3JvbGxhYmxlU2VnbWVudHM6IEZsaWdodFNlZ21lbnRQYXRoW10gPSBbXVxuICAgICAgZm9yIChjb25zdCBub3JtYWxpemVkRmxpZ2h0RGF0YSBvZiBmbGlnaHREYXRhKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBwYXRoVG9TZWdtZW50OiBmbGlnaHRTZWdtZW50UGF0aCxcbiAgICAgICAgICBzZWVkRGF0YSxcbiAgICAgICAgICBoZWFkLFxuICAgICAgICAgIGlzSGVhZFBhcnRpYWwsXG4gICAgICAgICAgaXNSb290UmVuZGVyLFxuICAgICAgICB9ID0gbm9ybWFsaXplZEZsaWdodERhdGFcbiAgICAgICAgbGV0IHRyZWVQYXRjaCA9IG5vcm1hbGl6ZWRGbGlnaHREYXRhLnRyZWVcblxuICAgICAgICAvLyBUT0RPLUFQUDogcmVtb3ZlICcnXG4gICAgICAgIGNvbnN0IGZsaWdodFNlZ21lbnRQYXRoV2l0aExlYWRpbmdFbXB0eSA9IFsnJywgLi4uZmxpZ2h0U2VnbWVudFBhdGhdXG5cbiAgICAgICAgLy8gQ3JlYXRlIG5ldyB0cmVlIGJhc2VkIG9uIHRoZSBmbGlnaHRTZWdtZW50UGF0aCBhbmQgcm91dGVyIHN0YXRlIHBhdGNoXG4gICAgICAgIGxldCBuZXdUcmVlID0gYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlKFxuICAgICAgICAgIC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgICAgICBmbGlnaHRTZWdtZW50UGF0aFdpdGhMZWFkaW5nRW1wdHksXG4gICAgICAgICAgY3VycmVudFRyZWUsXG4gICAgICAgICAgdHJlZVBhdGNoLFxuICAgICAgICAgIGhyZWZcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIElmIHRoZSB0cmVlIHBhdGNoIGNhbid0IGJlIGFwcGxpZWQgdG8gdGhlIGN1cnJlbnQgdHJlZSB0aGVuIHdlIHVzZSB0aGUgdHJlZSBhdCB0aW1lIG9mIHByZWZldGNoXG4gICAgICAgIC8vIFRPRE8tQVBQOiBUaGlzIHNob3VsZCBpbnN0ZWFkIGZpbGwgaW4gdGhlIG1pc3NpbmcgcGllY2VzIGluIGBjdXJyZW50VHJlZWAgd2l0aCB0aGUgZGF0YSBmcm9tIGB0cmVlQXRUaW1lT2ZQcmVmZXRjaGAsIHRoZW4gYXBwbHkgdGhlIHBhdGNoLlxuICAgICAgICBpZiAobmV3VHJlZSA9PT0gbnVsbCkge1xuICAgICAgICAgIG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gICAgICAgICAgICAvLyBUT0RPLUFQUDogcmVtb3ZlICcnXG4gICAgICAgICAgICBmbGlnaHRTZWdtZW50UGF0aFdpdGhMZWFkaW5nRW1wdHksXG4gICAgICAgICAgICB0cmVlQXRUaW1lT2ZQcmVmZXRjaCxcbiAgICAgICAgICAgIHRyZWVQYXRjaCxcbiAgICAgICAgICAgIGhyZWZcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV3VHJlZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIFRoaXMgaXMganVzdCBhIHBhcmFub2lkIGNoZWNrLiBXaGVuIGEgcm91dGUgaXMgUFBSZWQsIHRoZSBzZXJ2ZXJcbiAgICAgICAgICAgIC8vIHdpbGwgc2VuZCBiYWNrIGEgc3RhdGljIHJlc3BvbnNlIHRoYXQncyByZW5kZXJlZCBmcm9tXG4gICAgICAgICAgICAvLyB0aGUgcm9vdC4gSWYgZm9yIHNvbWUgcmVhc29uIGl0IGRvZXNuJ3QsIHdlIGZhbGwgYmFjayB0byB0aGVcbiAgICAgICAgICAgIC8vIG5vbi1QUFIgaW1wbGVtZW50YXRpb24uXG4gICAgICAgICAgICAvLyBUT0RPOiBXZSBzaG91bGQgZ2V0IHJpZCBvZiB0aGUgZWxzZSBicmFuY2ggYW5kIGRvIGFsbCBuYXZpZ2F0aW9uc1xuICAgICAgICAgICAgLy8gdmlhIHN0YXJ0UFBSTmF2aWdhdGlvbi4gVGhlIGN1cnJlbnQgc3RydWN0dXJlIGlzIGp1c3RcbiAgICAgICAgICAgIC8vIGFuIGluY3JlbWVudGFsIHN0ZXAuXG4gICAgICAgICAgICBzZWVkRGF0YSAmJlxuICAgICAgICAgICAgaXNSb290UmVuZGVyICYmXG4gICAgICAgICAgICBwb3N0cG9uZWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHRhc2sgPSBzdGFydFBQUk5hdmlnYXRpb24oXG4gICAgICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgICAgICBjdXJyZW50Q2FjaGUsXG4gICAgICAgICAgICAgIGN1cnJlbnRUcmVlLFxuICAgICAgICAgICAgICB0cmVlUGF0Y2gsXG4gICAgICAgICAgICAgIHNlZWREYXRhLFxuICAgICAgICAgICAgICBoZWFkLFxuICAgICAgICAgICAgICBpc0hlYWRQYXJ0aWFsLFxuICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgc2Nyb2xsYWJsZVNlZ21lbnRzXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGlmICh0YXNrICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmICh0YXNrLnJvdXRlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gRGV0ZWN0ZWQgYSBjaGFuZ2UgdG8gdGhlIHJvb3QgbGF5b3V0LiBQZXJmb3JtIGFuIGZ1bGwtXG4gICAgICAgICAgICAgICAgLy8gcGFnZSBuYXZpZ2F0aW9uLlxuICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChzdGF0ZSwgbXV0YWJsZSwgaHJlZiwgcGVuZGluZ1B1c2gpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gVXNlIHRoZSB0cmVlIGNvbXB1dGVkIGJ5IHN0YXJ0UFBSTmF2aWdhdGlvbiBpbnN0ZWFkXG4gICAgICAgICAgICAgIC8vIG9mIHRoZSBvbmUgY29tcHV0ZWQgYnkgYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlLlxuICAgICAgICAgICAgICAvLyBUT0RPOiBXZSBzaG91bGQgcmVtb3ZlIGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZVxuICAgICAgICAgICAgICAvLyBmcm9tIHRoZSBQUFIgcGF0aCBlbnRpcmVseS5cbiAgICAgICAgICAgICAgY29uc3QgcGF0Y2hlZFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSA9IHRhc2sucm91dGVcbiAgICAgICAgICAgICAgbmV3VHJlZSA9IHBhdGNoZWRSb3V0ZXJTdGF0ZVxuXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0NhY2hlID0gdGFzay5ub2RlXG4gICAgICAgICAgICAgIGlmIChuZXdDYWNoZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGNyZWF0ZWQgYSBuZXcgQ2FjaGUgTm9kZSB0cmVlIHRoYXQgY29udGFpbnMgYSBwcmVmZXRjaGVkXG4gICAgICAgICAgICAgICAgLy8gdmVyc2lvbiBvZiB0aGUgbmV4dCBwYWdlLiBUaGlzIGNhbiBiZSByZW5kZXJlZCBpbnN0YW50bHkuXG4gICAgICAgICAgICAgICAgbXV0YWJsZS5jYWNoZSA9IG5ld0NhY2hlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZHluYW1pY1JlcXVlc3RUcmVlID0gdGFzay5keW5hbWljUmVxdWVzdFRyZWVcbiAgICAgICAgICAgICAgaWYgKGR5bmFtaWNSZXF1ZXN0VHJlZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBwcmVmZXRjaGVkIHRyZWUgaGFzIGR5bmFtaWMgaG9sZXMgaW4gaXQuIFdlIGluaXRpYXRlIGFcbiAgICAgICAgICAgICAgICAvLyBkeW5hbWljIHJlcXVlc3QgdG8gZmlsbCB0aGVtIGluLlxuICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgLy8gRG8gbm90IGJsb2NrIG9uIHRoZSByZXN1bHQuIFdlJ2xsIGltbWVkaWF0ZWx5IHJlbmRlciB0aGUgQ2FjaGVcbiAgICAgICAgICAgICAgICAvLyBOb2RlIHRyZWUgYW5kIHN1c3BlbmQgb24gdGhlIGR5bmFtaWMgcGFydHMuIFdoZW4gdGhlIHJlcXVlc3RcbiAgICAgICAgICAgICAgICAvLyBjb21lcyBpbiwgd2UnbGwgZmlsbCBpbiBtaXNzaW5nIGRhdGEgYW5kIHBpbmcgUmVhY3QgdG9cbiAgICAgICAgICAgICAgICAvLyByZS1yZW5kZXIuIFVubGlrZSB0aGUgbGF6eSBmZXRjaGluZyBtb2RlbCBpbiB0aGUgbm9uLVBQUlxuICAgICAgICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9uLCB0aGlzIGlzIG1vZGVsZWQgYXMgYSBzaW5nbGUgUmVhY3QgdXBkYXRlICtcbiAgICAgICAgICAgICAgICAvLyBzdHJlYW1pbmcsIHJhdGhlciB0aGFuIG11bHRpcGxlIHRvcC1sZXZlbCB1cGRhdGVzLiAoSG93ZXZlcixcbiAgICAgICAgICAgICAgICAvLyBldmVuIGluIHRoZSBuZXcgbW9kZWwsIHdlJ2xsIHN0aWxsIG5lZWQgdG8gc29tZXRpbWVzIHVwZGF0ZSB0aGVcbiAgICAgICAgICAgICAgICAvLyByb290IG11bHRpcGxlIHRpbWVzIHBlciBuYXZpZ2F0aW9uLCBsaWtlIGlmIHRoZSBzZXJ2ZXIgc2VuZHMgdXNcbiAgICAgICAgICAgICAgICAvLyBhIGRpZmZlcmVudCByZXNwb25zZSB0aGFuIHdlIGV4cGVjdGVkLiBGb3Igbm93LCB3ZSByZXZlcnQgYmFja1xuICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBsYXp5IGZldGNoaW5nIG1lY2hhbmlzbSBpbiB0aGF0IGNhc2UuKVxuICAgICAgICAgICAgICAgIGNvbnN0IGR5bmFtaWNSZXF1ZXN0ID0gZmV0Y2hTZXJ2ZXJSZXNwb25zZShcbiAgICAgICAgICAgICAgICAgIG5ldyBVUkwodXBkYXRlZENhbm9uaWNhbFVybCwgdXJsLm9yaWdpbiksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZsaWdodFJvdXRlclN0YXRlOiBkeW5hbWljUmVxdWVzdFRyZWUsXG4gICAgICAgICAgICAgICAgICAgIG5leHRVcmw6IHN0YXRlLm5leHRVcmwsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgbGlzdGVuRm9yRHluYW1pY1JlcXVlc3QodGFzaywgZHluYW1pY1JlcXVlc3QpXG4gICAgICAgICAgICAgICAgLy8gV2Ugc3RvcmUgdGhlIGR5bmFtaWMgcmVxdWVzdCBvbiB0aGUgYGxhenlEYXRhYCBwcm9wZXJ0eSBvZiB0aGUgQ2FjaGVOb2RlXG4gICAgICAgICAgICAgICAgLy8gYmVjYXVzZSB3ZSdyZSBub3QgZ29pbmcgdG8gYXdhaXQgdGhlIGR5bmFtaWMgcmVxdWVzdCBoZXJlLiBTaW5jZSB3ZSdyZSBub3QgYmxvY2tpbmdcbiAgICAgICAgICAgICAgICAvLyBvbiB0aGUgZHluYW1pYyByZXF1ZXN0LCBgbGF5b3V0LXJvdXRlcmAgd2lsbFxuICAgICAgICAgICAgICAgIC8vIHRhc2subm9kZS5sYXp5RGF0YSA9IGR5bmFtaWNSZXF1ZXN0XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByZWZldGNoZWQgdHJlZSBkb2VzIG5vdCBjb250YWluIGR5bmFtaWMgaG9sZXMg4oCUIGl0J3NcbiAgICAgICAgICAgICAgICAvLyBmdWxseSBzdGF0aWMuIFdlIGNhbiBza2lwIHRoZSBkeW5hbWljIHJlcXVlc3QuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIE5vdGhpbmcgY2hhbmdlZCwgc28gcmV1c2UgdGhlIG9sZCBjYWNoZS5cbiAgICAgICAgICAgICAgLy8gVE9ETzogV2hhdCBpZiB0aGUgaGVhZCBjaGFuZ2VkIGJ1dCBub3QgYW55IG9mIHRoZSBzZWdtZW50IGRhdGE/XG4gICAgICAgICAgICAgIC8vIElzIHRoYXQgcG9zc2libGU/IElmIHNvLCB3ZSBzaG91bGQgY2xvbmUgdGhlIHdob2xlIHRyZWUgYW5kXG4gICAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgaGVhZC5cbiAgICAgICAgICAgICAgbmV3VHJlZSA9IHRyZWVQYXRjaFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBUaGUgc3RhdGljIHJlc3BvbnNlIGRvZXMgbm90IGluY2x1ZGUgYW55IGR5bmFtaWMgaG9sZXMsIHNvXG4gICAgICAgICAgICAvLyB0aGVyZSdzIG5vIG5lZWQgdG8gZG8gYSBzZWNvbmQgcmVxdWVzdC5cbiAgICAgICAgICAgIC8vIFRPRE86IEFzIGFuIGluY3JlbWVudGFsIHN0ZXAgdGhpcyBqdXN0IHJldmVydHMgYmFjayB0byB0aGVcbiAgICAgICAgICAgIC8vIG5vbi1QUFIgaW1wbGVtZW50YXRpb24uIFdlIGNhbiBzaW1wbGlmeSB0aGlzIGJyYW5jaCBmdXJ0aGVyLFxuICAgICAgICAgICAgLy8gZ2l2ZW4gdGhhdCBQUFIgcHJlZmV0Y2hlcyBhcmUgYWx3YXlzIHN0YXRpYyBhbmQgcmV0dXJuIHRoZSB3aG9sZVxuICAgICAgICAgICAgLy8gdHJlZS4gT3IgaW4gdGhlIG1lYW50aW1lIHdlIGNvdWxkIGZhY3RvciBpdCBvdXQgaW50byBhXG4gICAgICAgICAgICAvLyBzZXBhcmF0ZSBmdW5jdGlvbi5cblxuICAgICAgICAgICAgaWYgKGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dChjdXJyZW50VHJlZSwgbmV3VHJlZSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCBocmVmLCBwZW5kaW5nUHVzaClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY2FjaGU6IENhY2hlTm9kZSA9IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlKClcbiAgICAgICAgICAgIGxldCBhcHBsaWVkID0gZmFsc2VcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBwcmVmZXRjaFZhbHVlcy5zdGF0dXMgPT09IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5zdGFsZSAmJlxuICAgICAgICAgICAgICAhaXNGaXJzdFJlYWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAvLyBXaGVuIHdlIGhhdmUgYSBzdGFsZSBwcmVmZXRjaCBlbnRyeSwgd2Ugb25seSB3YW50IHRvIHJlLXVzZSB0aGUgbG9hZGluZyBzdGF0ZSBvZiB0aGUgcm91dGUgd2UncmUgbmF2aWdhdGluZyB0bywgdG8gc3VwcG9ydCBpbnN0YW50IGxvYWRpbmcgbmF2aWdhdGlvbnNcbiAgICAgICAgICAgICAgLy8gdGhpcyB3aWxsIHRyaWdnZXIgYSBsYXp5IGZldGNoIGZvciB0aGUgYWN0dWFsIHBhZ2UgZGF0YSBieSBudWxsaW5nIHRoZSBgcnNjYCBhbmQgYHByZWZldGNoUnNjYCB2YWx1ZXMgZm9yIHBhZ2UgZGF0YSxcbiAgICAgICAgICAgICAgLy8gd2hpbGUgY29weWluZyBvdmVyIHRoZSBgbG9hZGluZ2AgZm9yIHRoZSBzZWdtZW50IHRoYXQgY29udGFpbnMgdGhlIHBhZ2UgZGF0YS5cbiAgICAgICAgICAgICAgLy8gV2Ugb25seSBkbyB0aGlzIG9uIHN1YnNlcXVlbnQgcmVhZHMsIGFzIG90aGVyd2lzZSB0aGVyZSdkIGJlIG5vIGxvYWRpbmcgZGF0YSB0byByZS11c2UuXG5cbiAgICAgICAgICAgICAgLy8gV2Ugc2tpcCB0aGlzIGJyYW5jaCBpZiBvbmx5IHRoZSBoYXNoIGZyYWdtZW50IGhhcyBjaGFuZ2VkLCBhcyB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgYSBsYXp5IGZldGNoIGluIHRoYXQgY2FzZVxuICAgICAgICAgICAgICBhcHBsaWVkID0gdHJpZ2dlckxhenlGZXRjaEZvckxlYWZTZWdtZW50cyhcbiAgICAgICAgICAgICAgICBjYWNoZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50Q2FjaGUsXG4gICAgICAgICAgICAgICAgZmxpZ2h0U2VnbWVudFBhdGgsXG4gICAgICAgICAgICAgICAgdHJlZVBhdGNoXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLy8gc2luY2Ugd2UgcmUtdXNlZCB0aGUgc3RhbGUgY2FjaGUncyBsb2FkaW5nIHN0YXRlICYgcmVmcmVzaGVkIHRoZSBkYXRhLFxuICAgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGBsYXN0VXNlZFRpbWVgIHNvIHRoYXQgaXQgY2FuIGNvbnRpbnVlIHRvIGJlIHJlLXVzZWQgZm9yIHRoZSBuZXh0IDMwc1xuICAgICAgICAgICAgICBwcmVmZXRjaFZhbHVlcy5sYXN0VXNlZFRpbWUgPSBuYXZpZ2F0ZWRBdFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYXBwbGllZCA9IGFwcGx5RmxpZ2h0RGF0YShcbiAgICAgICAgICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgICAgICAgICAgICBjdXJyZW50Q2FjaGUsXG4gICAgICAgICAgICAgICAgY2FjaGUsXG4gICAgICAgICAgICAgICAgbm9ybWFsaXplZEZsaWdodERhdGEsXG4gICAgICAgICAgICAgICAgcHJlZmV0Y2hWYWx1ZXNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBoYXJkTmF2aWdhdGUgPSBzaG91bGRIYXJkTmF2aWdhdGUoXG4gICAgICAgICAgICAgIC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgICAgICAgICAgZmxpZ2h0U2VnbWVudFBhdGhXaXRoTGVhZGluZ0VtcHR5LFxuICAgICAgICAgICAgICBjdXJyZW50VHJlZVxuICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICBpZiAoaGFyZE5hdmlnYXRlKSB7XG4gICAgICAgICAgICAgIC8vIENvcHkgcnNjIGZvciB0aGUgcm9vdCBub2RlIG9mIHRoZSBjYWNoZS5cbiAgICAgICAgICAgICAgY2FjaGUucnNjID0gY3VycmVudENhY2hlLnJzY1xuICAgICAgICAgICAgICBjYWNoZS5wcmVmZXRjaFJzYyA9IGN1cnJlbnRDYWNoZS5wcmVmZXRjaFJzY1xuXG4gICAgICAgICAgICAgIGludmFsaWRhdGVDYWNoZUJlbG93RmxpZ2h0U2VnbWVudFBhdGgoXG4gICAgICAgICAgICAgICAgY2FjaGUsXG4gICAgICAgICAgICAgICAgY3VycmVudENhY2hlLFxuICAgICAgICAgICAgICAgIGZsaWdodFNlZ21lbnRQYXRoXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoZSBleGlzdGluZyBjYWNoZSB2YWx1ZSBpcyB1c2VkIHdoZW4gdGhlIGNhY2hlIHdhcyBub3QgaW52YWxpZGF0ZWQuXG4gICAgICAgICAgICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZVxuICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBsaWVkKSB7XG4gICAgICAgICAgICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZVxuICAgICAgICAgICAgICAvLyBJZiB3ZSBhcHBsaWVkIHRoZSBjYWNoZSwgd2UgdXBkYXRlIHRoZSBcImN1cnJlbnQgY2FjaGVcIiB2YWx1ZSBzbyBhbnkgb3RoZXJcbiAgICAgICAgICAgICAgLy8gc2VnbWVudHMgaW4gdGhlIEZsaWdodERhdGFQYXRoIHdpbGwgYmUgYWJsZSB0byByZWZlcmVuY2UgdGhlIHVwZGF0ZWQgY2FjaGUuXG4gICAgICAgICAgICAgIGN1cnJlbnRDYWNoZSA9IGNhY2hlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3ViU2VnbWVudCBvZiBnZW5lcmF0ZVNlZ21lbnRzRnJvbVBhdGNoKHRyZWVQYXRjaCkpIHtcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZVNlZ21lbnRQYXRoID0gW1xuICAgICAgICAgICAgICAgIC4uLmZsaWdodFNlZ21lbnRQYXRoLFxuICAgICAgICAgICAgICAgIC4uLnN1YlNlZ21lbnQsXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgLy8gRmlsdGVyIG91dCB0aGUgX19ERUZBVUxUX18gcGF0aHMgYXMgdGhleSBzaG91bGRuJ3QgYmUgc2Nyb2xsZWQgdG8gaW4gdGhpcyBjYXNlLlxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgc2Nyb2xsYWJsZVNlZ21lbnRQYXRoW3Njcm9sbGFibGVTZWdtZW50UGF0aC5sZW5ndGggLSAxXSAhPT1cbiAgICAgICAgICAgICAgICBERUZBVUxUX1NFR01FTlRfS0VZXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHNjcm9sbGFibGVTZWdtZW50cy5wdXNoKHNjcm9sbGFibGVTZWdtZW50UGF0aClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGN1cnJlbnRUcmVlID0gbmV3VHJlZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG11dGFibGUucGF0Y2hlZFRyZWUgPSBjdXJyZW50VHJlZVxuICAgICAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSB1cGRhdGVkQ2Fub25pY2FsVXJsXG4gICAgICBtdXRhYmxlLnNjcm9sbGFibGVTZWdtZW50cyA9IHNjcm9sbGFibGVTZWdtZW50c1xuICAgICAgbXV0YWJsZS5oYXNoRnJhZ21lbnQgPSBoYXNoXG4gICAgICBtdXRhYmxlLnNob3VsZFNjcm9sbCA9IHNob3VsZFNjcm9sbFxuXG4gICAgICByZXR1cm4gaGFuZGxlTXV0YWJsZShzdGF0ZSwgbXV0YWJsZSlcbiAgICB9LFxuICAgICgpID0+IHN0YXRlXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJnZW5lcmF0ZVNlZ21lbnRzRnJvbVBhdGNoIiwiaGFuZGxlRXh0ZXJuYWxVcmwiLCJuYXZpZ2F0ZVJlZHVjZXIiLCJzdGF0ZSIsIm11dGFibGUiLCJ1cmwiLCJwZW5kaW5nUHVzaCIsIm1wYU5hdmlnYXRpb24iLCJjYW5vbmljYWxVcmwiLCJzY3JvbGxhYmxlU2VnbWVudHMiLCJ1bmRlZmluZWQiLCJoYW5kbGVNdXRhYmxlIiwiZmxpZ2h0Um91dGVyUGF0Y2giLCJzZWdtZW50cyIsInNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlcyIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJwYXJhbGxlbFJvdXRlS2V5IiwicGFyYWxsZWxSb3V0ZSIsImVudHJpZXMiLCJjaGlsZFNlZ21lbnQiLCJwdXNoIiwidHJpZ2dlckxhenlGZXRjaEZvckxlYWZTZWdtZW50cyIsIm5ld0NhY2hlIiwiY3VycmVudENhY2hlIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJ0cmVlUGF0Y2giLCJhcHBsaWVkUGF0Y2giLCJyc2MiLCJwcmVmZXRjaFJzYyIsImxvYWRpbmciLCJNYXAiLCJzZWdtZW50UGF0aHNUb0ZpbGwiLCJtYXAiLCJzZWdtZW50UGF0aHMiLCJjbGVhckNhY2hlTm9kZURhdGFGb3JTZWdtZW50UGF0aCIsImhhbmRsZU5hdmlnYXRpb25SZXN1bHQiLCJyZXN1bHQiLCJ0YWciLCJOYXZpZ2F0aW9uUmVzdWx0VGFnIiwiTVBBIiwibmV3VXJsIiwiZGF0YSIsIk5vT3AiLCJuZXdDYW5vbmljYWxVcmwiLCJvbGRVcmwiLCJVUkwiLCJvbmx5SGFzaENoYW5nZSIsInBhdGhuYW1lIiwic2VhcmNoIiwiaGFzaCIsInNob3VsZFNjcm9sbCIsImhhc2hGcmFnbWVudCIsIlN1Y2Nlc3MiLCJjYWNoZSIsImNhY2hlTm9kZSIsInBhdGNoZWRUcmVlIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJBc3luYyIsInRoZW4iLCJhc3luY1Jlc3VsdCIsImFjdGlvbiIsImlzRXh0ZXJuYWxVcmwiLCJuYXZpZ2F0ZVR5cGUiLCJhbGxvd0FsaWFzaW5nIiwiaHJlZiIsImNyZWF0ZUhyZWZGcm9tVXJsIiwicHJ1bmVQcmVmZXRjaENhY2hlIiwicHJlZmV0Y2hDYWNoZSIsInByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlIiwidG9TdHJpbmciLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRSIsIm5hdmlnYXRlVXNpbmdTZWdtZW50Q2FjaGUiLCJ0cmVlIiwibmV4dFVybCIsInByZWZldGNoVmFsdWVzIiwiZ2V0T3JDcmVhdGVQcmVmZXRjaENhY2hlRW50cnkiLCJ0cmVlQXRUaW1lT2ZQcmVmZXRjaCIsInByZWZldGNoUXVldWUiLCJidW1wIiwiZmxpZ2h0RGF0YSIsImNhbm9uaWNhbFVybE92ZXJyaWRlIiwicG9zdHBvbmVkIiwibmF2aWdhdGVkQXQiLCJEYXRlIiwibm93IiwiaXNGaXJzdFJlYWQiLCJsYXN0VXNlZFRpbWUiLCJhbGlhc2VkIiwidXJsV2l0aENhbm9uaWNhbFBhdGhuYW1lIiwiaGFuZGxlQWxpYXNlZFByZWZldGNoRW50cnkiLCJ1cGRhdGVkQ2Fub25pY2FsVXJsIiwic3BsaXQiLCJjdXJyZW50VHJlZSIsIm5vcm1hbGl6ZWRGbGlnaHREYXRhIiwicGF0aFRvU2VnbWVudCIsInNlZWREYXRhIiwiaGVhZCIsImlzSGVhZFBhcnRpYWwiLCJpc1Jvb3RSZW5kZXIiLCJmbGlnaHRTZWdtZW50UGF0aFdpdGhMZWFkaW5nRW1wdHkiLCJuZXdUcmVlIiwiYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlIiwidGFzayIsInN0YXJ0UFBSTmF2aWdhdGlvbiIsInJvdXRlIiwicGF0Y2hlZFJvdXRlclN0YXRlIiwibm9kZSIsImR5bmFtaWNSZXF1ZXN0VHJlZSIsImR5bmFtaWNSZXF1ZXN0IiwiZmV0Y2hTZXJ2ZXJSZXNwb25zZSIsIm9yaWdpbiIsImxpc3RlbkZvckR5bmFtaWNSZXF1ZXN0IiwiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwiY3JlYXRlRW1wdHlDYWNoZU5vZGUiLCJhcHBsaWVkIiwic3RhdHVzIiwiUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzIiwic3RhbGUiLCJhcHBseUZsaWdodERhdGEiLCJoYXJkTmF2aWdhdGUiLCJzaG91bGRIYXJkTmF2aWdhdGUiLCJpbnZhbGlkYXRlQ2FjaGVCZWxvd0ZsaWdodFNlZ21lbnRQYXRoIiwic3ViU2VnbWVudCIsInNjcm9sbGFibGVTZWdtZW50UGF0aCIsIkRFRkFVTFRfU0VHTUVOVF9LRVkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js":
|
||
/*!**********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js ***!
|
||
\**********************************************************************************************/
|
||
/***/ ((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 prefetchQueue: function() {\n return prefetchQueue;\n },\n prefetchReducer: function() {\n return prefetchReducer;\n }\n});\nconst _promisequeue = __webpack_require__(/*! ../../promise-queue */ \"(ssr)/./node_modules/next/dist/client/components/promise-queue.js\");\nconst _prefetchcacheutils = __webpack_require__(/*! ../prefetch-cache-utils */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js\");\nconst prefetchQueue = new _promisequeue.PromiseQueue(5);\nconst prefetchReducer = false ? 0 : prefetchReducerImpl;\nfunction identityReducerWhenSegmentCacheIsEnabled(state) {\n // Unlike the old implementation, the Segment Cache doesn't store its data in\n // the router reducer state.\n //\n // This shouldn't be reachable because we wrap the prefetch API in a check,\n // too, which prevents the action from being dispatched. But it's here for\n // clarity + code elimination.\n return state;\n}\nfunction prefetchReducerImpl(state, action) {\n // let's prune the prefetch cache before we do anything else\n (0, _prefetchcacheutils.prunePrefetchCache)(state.prefetchCache);\n const { url } = action;\n (0, _prefetchcacheutils.getOrCreatePrefetchCacheEntry)({\n url,\n nextUrl: state.nextUrl,\n prefetchCache: state.prefetchCache,\n kind: action.kind,\n tree: state.tree,\n allowAliasing: true\n });\n return state;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=prefetch-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3ByZWZldGNoLXJlZHVjZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBVWFBLGFBQWE7ZUFBYkE7O0lBRUFDLGVBQWU7ZUFBZkE7OzswQ0FQZ0I7Z0RBSXRCO0FBQ0EsTUFBTUQsZ0JBQWdCLElBQUlFLGNBQUFBLFlBQVksQ0FBQztBQUV2QyxNQUFNRCxrQkFBa0JFLE1BQXVDLEdBQ2xFRyxDQUF3Q0EsR0FDeENDO0FBRUosU0FBU0QseUNBQTRDRSxLQUFRO0lBQzNELDZFQUE2RTtJQUM3RSw0QkFBNEI7SUFDNUIsRUFBRTtJQUNGLDJFQUEyRTtJQUMzRSwwRUFBMEU7SUFDMUUsOEJBQThCO0lBQzlCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTRCxvQkFDUEMsS0FBMkIsRUFDM0JDLE1BQXNCO0lBRXRCLDREQUE0RDtJQUM1REMsQ0FBQUEsR0FBQUEsb0JBQUFBLGtCQUFBQSxFQUFtQkYsTUFBTUcsYUFBYTtJQUV0QyxNQUFNLEVBQUVDLEdBQUcsRUFBRSxHQUFHSDtJQUVoQkksQ0FBQUEsR0FBQUEsb0JBQUFBLDZCQUFBQSxFQUE4QjtRQUM1QkQ7UUFDQUUsU0FBU04sTUFBTU0sT0FBTztRQUN0QkgsZUFBZUgsTUFBTUcsYUFBYTtRQUNsQ0ksTUFBTU4sT0FBT00sSUFBSTtRQUNqQkMsTUFBTVIsTUFBTVEsSUFBSTtRQUNoQkMsZUFBZTtJQUNqQjtJQUVBLE9BQU9UO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvcHJlZmV0Y2gtcmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIFByZWZldGNoQWN0aW9uLFxuICBSZWR1Y2VyU3RhdGUsXG4gIFJlYWRvbmx5UmVkdWNlclN0YXRlLFxufSBmcm9tICcuLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IFByb21pc2VRdWV1ZSB9IGZyb20gJy4uLy4uL3Byb21pc2UtcXVldWUnXG5pbXBvcnQge1xuICBnZXRPckNyZWF0ZVByZWZldGNoQ2FjaGVFbnRyeSxcbiAgcHJ1bmVQcmVmZXRjaENhY2hlLFxufSBmcm9tICcuLi9wcmVmZXRjaC1jYWNoZS11dGlscydcbmV4cG9ydCBjb25zdCBwcmVmZXRjaFF1ZXVlID0gbmV3IFByb21pc2VRdWV1ZSg1KVxuXG5leHBvcnQgY29uc3QgcHJlZmV0Y2hSZWR1Y2VyID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFXG4gID8gaWRlbnRpdHlSZWR1Y2VyV2hlblNlZ21lbnRDYWNoZUlzRW5hYmxlZFxuICA6IHByZWZldGNoUmVkdWNlckltcGxcblxuZnVuY3Rpb24gaWRlbnRpdHlSZWR1Y2VyV2hlblNlZ21lbnRDYWNoZUlzRW5hYmxlZDxUPihzdGF0ZTogVCk6IFQge1xuICAvLyBVbmxpa2UgdGhlIG9sZCBpbXBsZW1lbnRhdGlvbiwgdGhlIFNlZ21lbnQgQ2FjaGUgZG9lc24ndCBzdG9yZSBpdHMgZGF0YSBpblxuICAvLyB0aGUgcm91dGVyIHJlZHVjZXIgc3RhdGUuXG4gIC8vXG4gIC8vIFRoaXMgc2hvdWxkbid0IGJlIHJlYWNoYWJsZSBiZWNhdXNlIHdlIHdyYXAgdGhlIHByZWZldGNoIEFQSSBpbiBhIGNoZWNrLFxuICAvLyB0b28sIHdoaWNoIHByZXZlbnRzIHRoZSBhY3Rpb24gZnJvbSBiZWluZyBkaXNwYXRjaGVkLiBCdXQgaXQncyBoZXJlIGZvclxuICAvLyBjbGFyaXR5ICsgY29kZSBlbGltaW5hdGlvbi5cbiAgcmV0dXJuIHN0YXRlXG59XG5cbmZ1bmN0aW9uIHByZWZldGNoUmVkdWNlckltcGwoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgYWN0aW9uOiBQcmVmZXRjaEFjdGlvblxuKTogUmVkdWNlclN0YXRlIHtcbiAgLy8gbGV0J3MgcHJ1bmUgdGhlIHByZWZldGNoIGNhY2hlIGJlZm9yZSB3ZSBkbyBhbnl0aGluZyBlbHNlXG4gIHBydW5lUHJlZmV0Y2hDYWNoZShzdGF0ZS5wcmVmZXRjaENhY2hlKVxuXG4gIGNvbnN0IHsgdXJsIH0gPSBhY3Rpb25cblxuICBnZXRPckNyZWF0ZVByZWZldGNoQ2FjaGVFbnRyeSh7XG4gICAgdXJsLFxuICAgIG5leHRVcmw6IHN0YXRlLm5leHRVcmwsXG4gICAgcHJlZmV0Y2hDYWNoZTogc3RhdGUucHJlZmV0Y2hDYWNoZSxcbiAgICBraW5kOiBhY3Rpb24ua2luZCxcbiAgICB0cmVlOiBzdGF0ZS50cmVlLFxuICAgIGFsbG93QWxpYXNpbmc6IHRydWUsXG4gIH0pXG5cbiAgcmV0dXJuIHN0YXRlXG59XG4iXSwibmFtZXMiOlsicHJlZmV0Y2hRdWV1ZSIsInByZWZldGNoUmVkdWNlciIsIlByb21pc2VRdWV1ZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEUiLCJpZGVudGl0eVJlZHVjZXJXaGVuU2VnbWVudENhY2hlSXNFbmFibGVkIiwicHJlZmV0Y2hSZWR1Y2VySW1wbCIsInN0YXRlIiwiYWN0aW9uIiwicHJ1bmVQcmVmZXRjaENhY2hlIiwicHJlZmV0Y2hDYWNoZSIsInVybCIsImdldE9yQ3JlYXRlUHJlZmV0Y2hDYWNoZUVudHJ5IiwibmV4dFVybCIsImtpbmQiLCJ0cmVlIiwiYWxsb3dBbGlhc2luZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js":
|
||
/*!*********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js ***!
|
||
\*********************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"refreshReducer\", ({\n enumerable: true,\n get: function() {\n return refreshReducer;\n }\n}));\nconst _fetchserverresponse = __webpack_require__(/*! ../fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _navigatereducer = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nconst _handlemutable = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _filllazyitemstillleafwithhead = __webpack_require__(/*! ../fill-lazy-items-till-leaf-with-head */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\nconst _approuter = __webpack_require__(/*! ../../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _handlesegmentmismatch = __webpack_require__(/*! ../handle-segment-mismatch */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js\");\nconst _hasinterceptionrouteincurrenttree = __webpack_require__(/*! ./has-interception-route-in-current-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\");\nconst _refetchinactiveparallelsegments = __webpack_require__(/*! ../refetch-inactive-parallel-segments */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js\");\nconst _segmentcache = __webpack_require__(/*! ../../segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\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, _approuter.createEmptyCacheNode)();\n // If the current tree was intercepted, the nextUrl should be included in the request.\n // This is to ensure that the refresh request doesn't get intercepted, accidentally triggering the interception route.\n const includeNextUrl = (0, _hasinterceptionrouteincurrenttree.hasInterceptionRouteInCurrentTree)(state.tree);\n // TODO-APP: verify that `href` is not an external url.\n // Fetch data from the root of the tree.\n cache.lazyData = (0, _fetchserverresponse.fetchServerResponse)(new URL(href, origin), {\n flightRouterState: [\n currentTree[0],\n currentTree[1],\n currentTree[2],\n 'refetch'\n ],\n nextUrl: includeNextUrl ? state.nextUrl : null\n });\n const navigatedAt = Date.now();\n return cache.lazyData.then(async (param)=>{\n let { flightData, canonicalUrl: canonicalUrlOverride } = param;\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return (0, _navigatereducer.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 normalizedFlightData of flightData){\n const { tree: treePatch, seedData: cacheNodeSeedData, head, isRootRender } = normalizedFlightData;\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('REFRESH FAILED');\n return state;\n }\n const newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)([\n ''\n ], currentTree, treePatch, state.canonicalUrl);\n if (newTree === null) {\n return (0, _handlesegmentmismatch.handleSegmentMismatch)(state, action, treePatch);\n }\n if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, href, state.pushRef.pendingPush);\n }\n const canonicalUrlOverrideHref = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : undefined;\n if (canonicalUrlOverride) {\n mutable.canonicalUrl = canonicalUrlOverrideHref;\n }\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (cacheNodeSeedData !== null) {\n const rsc = cacheNodeSeedData[1];\n const loading = cacheNodeSeedData[3];\n cache.rsc = rsc;\n cache.prefetchRsc = null;\n cache.loading = loading;\n (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, undefined, treePatch, cacheNodeSeedData, head, undefined);\n if (false) {} else {\n mutable.prefetchCache = new Map();\n }\n }\n await (0, _refetchinactiveparallelsegments.refreshInactiveParallelSegments)({\n navigatedAt,\n state,\n updatedTree: newTree,\n updatedCache: cache,\n includeNextUrl,\n canonicalUrl: mutable.canonicalUrl || state.canonicalUrl\n });\n mutable.cache = cache;\n mutable.patchedTree = newTree;\n currentTree = newTree;\n }\n return (0, _handlemutable.handleMutable)(state, mutable);\n }, ()=>state);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=refresh-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3JlZnJlc2gtcmVkdWNlci5qcyIsIm1hcHBpbmdzIjoiOzs7O2tEQW9CZ0JBOzs7ZUFBQUE7OztpREFwQm9COytDQUNGO3lEQUNVO3lEQUNBOzZDQU9WOzJDQUNKOzJEQUVnQjt1Q0FDVDttREFDQzsrREFDWTs2REFDRjswQ0FDVjtBQUUvQixTQUFTQSxlQUNkQyxLQUEyQixFQUMzQkMsTUFBcUI7SUFFckIsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR0Q7SUFDbkIsTUFBTUUsVUFBbUIsQ0FBQztJQUMxQixNQUFNQyxPQUFPSixNQUFNSyxZQUFZO0lBRS9CLElBQUlDLGNBQWNOLE1BQU1PLElBQUk7SUFFNUJKLFFBQVFLLDBCQUEwQixHQUFHO0lBRXJDLE1BQU1DLFFBQW1CQyxDQUFBQSxHQUFBQSxXQUFBQSxvQkFBQUE7SUFFekIsc0ZBQXNGO0lBQ3RGLHNIQUFzSDtJQUN0SCxNQUFNQyxpQkFBaUJDLENBQUFBLEdBQUFBLG1DQUFBQSxpQ0FBaUMsRUFBQ1osTUFBTU8sSUFBSTtJQUVuRSx1REFBdUQ7SUFDdkQsd0NBQXdDO0lBQ3hDRSxNQUFNSSxRQUFRLEdBQUdDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0IsSUFBSUMsSUFBSVgsTUFBTUYsU0FBUztRQUMxRGMsbUJBQW1CO1lBQ2pCVixXQUFXLENBQUMsRUFBRTtZQUNkQSxXQUFXLENBQUMsRUFBRTtZQUNkQSxXQUFXLENBQUMsRUFBRTtZQUNkO1NBQ0Q7UUFDRFcsU0FBU04saUJBQWlCWCxNQUFNaUIsT0FBTyxHQUFHO0lBQzVDO0lBRUEsTUFBTUMsY0FBY0MsS0FBS0MsR0FBRztJQUM1QixPQUFPWCxNQUFNSSxRQUFRLENBQUNRLElBQUksQ0FDeEI7WUFBTyxFQUFFQyxVQUFVLEVBQUVqQixjQUFja0Isb0JBQW9CLEVBQUU7UUFDdkQsNERBQTREO1FBQzVELElBQUksT0FBT0QsZUFBZSxVQUFVO1lBQ2xDLE9BQU9FLENBQUFBLEdBQUFBLGlCQUFBQSxpQkFBQUEsRUFDTHhCLE9BQ0FHLFNBQ0FtQixZQUNBdEIsTUFBTXlCLE9BQU8sQ0FBQ0MsV0FBVztRQUU3QjtRQUVBLCtEQUErRDtRQUMvRGpCLE1BQU1JLFFBQVEsR0FBRztRQUVqQixLQUFLLE1BQU1jLHdCQUF3QkwsV0FBWTtZQUM3QyxNQUFNLEVBQ0pmLE1BQU1xQixTQUFTLEVBQ2ZDLFVBQVVDLGlCQUFpQixFQUMzQkMsSUFBSSxFQUNKQyxZQUFZLEVBQ2IsR0FBR0w7WUFFSixJQUFJLENBQUNLLGNBQWM7Z0JBQ2pCLG9DQUFvQztnQkFDcENDLFFBQVFDLEdBQUcsQ0FBQztnQkFDWixPQUFPbEM7WUFDVDtZQUVBLE1BQU1tQyxVQUFVQyxDQUFBQSxHQUFBQSw2QkFBQUEsMkJBQUFBLEVBQ2Q7Z0JBQ0M7YUFBRyxFQUNKOUIsYUFDQXNCLFdBQ0E1QixNQUFNSyxZQUFZO1lBR3BCLElBQUk4QixZQUFZLE1BQU07Z0JBQ3BCLE9BQU9FLENBQUFBLEdBQUFBLHVCQUFBQSxxQkFBQUEsRUFBc0JyQyxPQUFPQyxRQUFRMkI7WUFDOUM7WUFFQSxJQUFJVSxDQUFBQSxHQUFBQSw2QkFBQUEsMkJBQUFBLEVBQTRCaEMsYUFBYTZCLFVBQVU7Z0JBQ3JELE9BQU9YLENBQUFBLEdBQUFBLGlCQUFBQSxpQkFBQUEsRUFDTHhCLE9BQ0FHLFNBQ0FDLE1BQ0FKLE1BQU15QixPQUFPLENBQUNDLFdBQVc7WUFFN0I7WUFFQSxNQUFNYSwyQkFBMkJoQix1QkFDN0JpQixDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCakIsd0JBQ2xCa0I7WUFFSixJQUFJbEIsc0JBQXNCO2dCQUN4QnBCLFFBQVFFLFlBQVksR0FBR2tDO1lBQ3pCO1lBRUEsOEZBQThGO1lBQzlGLElBQUlULHNCQUFzQixNQUFNO2dCQUM5QixNQUFNWSxNQUFNWixpQkFBaUIsQ0FBQyxFQUFFO2dCQUNoQyxNQUFNYSxVQUFVYixpQkFBaUIsQ0FBQyxFQUFFO2dCQUNwQ3JCLE1BQU1pQyxHQUFHLEdBQUdBO2dCQUNaakMsTUFBTW1DLFdBQVcsR0FBRztnQkFDcEJuQyxNQUFNa0MsT0FBTyxHQUFHQTtnQkFDaEJFLENBQUFBLEdBQUFBLCtCQUFBQSw2QkFBQUEsRUFDRTNCLGFBQ0FULE9BQ0EsV0FFQW1CLFdBQ0FFLG1CQUNBQyxNQUNBVTtnQkFFRixJQUFJSyxLQUF1QyxFQUFFLEVBRTVDLE1BQU07b0JBQ0wzQyxRQUFRK0MsYUFBYSxHQUFHLElBQUlDO2dCQUM5QjtZQUNGO1lBRUEsTUFBTUMsQ0FBQUEsR0FBQUEsaUNBQUFBLCtCQUFBQSxFQUFnQztnQkFDcENsQztnQkFDQWxCO2dCQUNBcUQsYUFBYWxCO2dCQUNibUIsY0FBYzdDO2dCQUNkRTtnQkFDQU4sY0FBY0YsUUFBUUUsWUFBWSxJQUFJTCxNQUFNSyxZQUFZO1lBQzFEO1lBRUFGLFFBQVFNLEtBQUssR0FBR0E7WUFDaEJOLFFBQVFvRCxXQUFXLEdBQUdwQjtZQUV0QjdCLGNBQWM2QjtRQUNoQjtRQUVBLE9BQU9xQixDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjeEQsT0FBT0c7SUFDOUIsR0FDQSxJQUFNSDtBQUVWIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3JlZnJlc2gtcmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnLi4vZmV0Y2gtc2VydmVyLXJlc3BvbnNlJ1xuaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tICcuLi9jcmVhdGUtaHJlZi1mcm9tLXVybCdcbmltcG9ydCB7IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSB9IGZyb20gJy4uL2FwcGx5LXJvdXRlci1zdGF0ZS1wYXRjaC10by10cmVlJ1xuaW1wb3J0IHsgaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IH0gZnJvbSAnLi4vaXMtbmF2aWdhdGluZy10by1uZXctcm9vdC1sYXlvdXQnXG5pbXBvcnQgdHlwZSB7XG4gIE11dGFibGUsXG4gIFJlYWRvbmx5UmVkdWNlclN0YXRlLFxuICBSZWR1Y2VyU3RhdGUsXG4gIFJlZnJlc2hBY3Rpb24sXG59IGZyb20gJy4uL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgaGFuZGxlRXh0ZXJuYWxVcmwgfSBmcm9tICcuL25hdmlnYXRlLXJlZHVjZXInXG5pbXBvcnQgeyBoYW5kbGVNdXRhYmxlIH0gZnJvbSAnLi4vaGFuZGxlLW11dGFibGUnXG5pbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQgfSBmcm9tICcuLi9maWxsLWxhenktaXRlbXMtdGlsbC1sZWFmLXdpdGgtaGVhZCdcbmltcG9ydCB7IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vYXBwLXJvdXRlcidcbmltcG9ydCB7IGhhbmRsZVNlZ21lbnRNaXNtYXRjaCB9IGZyb20gJy4uL2hhbmRsZS1zZWdtZW50LW1pc21hdGNoJ1xuaW1wb3J0IHsgaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlIH0gZnJvbSAnLi9oYXMtaW50ZXJjZXB0aW9uLXJvdXRlLWluLWN1cnJlbnQtdHJlZSdcbmltcG9ydCB7IHJlZnJlc2hJbmFjdGl2ZVBhcmFsbGVsU2VnbWVudHMgfSBmcm9tICcuLi9yZWZldGNoLWluYWN0aXZlLXBhcmFsbGVsLXNlZ21lbnRzJ1xuaW1wb3J0IHsgcmV2YWxpZGF0ZUVudGlyZUNhY2hlIH0gZnJvbSAnLi4vLi4vc2VnbWVudC1jYWNoZSdcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZnJlc2hSZWR1Y2VyKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIGFjdGlvbjogUmVmcmVzaEFjdGlvblxuKTogUmVkdWNlclN0YXRlIHtcbiAgY29uc3QgeyBvcmlnaW4gfSA9IGFjdGlvblxuICBjb25zdCBtdXRhYmxlOiBNdXRhYmxlID0ge31cbiAgY29uc3QgaHJlZiA9IHN0YXRlLmNhbm9uaWNhbFVybFxuXG4gIGxldCBjdXJyZW50VHJlZSA9IHN0YXRlLnRyZWVcblxuICBtdXRhYmxlLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlID0gZmFsc2VcblxuICBjb25zdCBjYWNoZTogQ2FjaGVOb2RlID0gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKVxuXG4gIC8vIElmIHRoZSBjdXJyZW50IHRyZWUgd2FzIGludGVyY2VwdGVkLCB0aGUgbmV4dFVybCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIHJlcXVlc3QuXG4gIC8vIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgdGhlIHJlZnJlc2ggcmVxdWVzdCBkb2Vzbid0IGdldCBpbnRlcmNlcHRlZCwgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgdGhlIGludGVyY2VwdGlvbiByb3V0ZS5cbiAgY29uc3QgaW5jbHVkZU5leHRVcmwgPSBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUoc3RhdGUudHJlZSlcblxuICAvLyBUT0RPLUFQUDogdmVyaWZ5IHRoYXQgYGhyZWZgIGlzIG5vdCBhbiBleHRlcm5hbCB1cmwuXG4gIC8vIEZldGNoIGRhdGEgZnJvbSB0aGUgcm9vdCBvZiB0aGUgdHJlZS5cbiAgY2FjaGUubGF6eURhdGEgPSBmZXRjaFNlcnZlclJlc3BvbnNlKG5ldyBVUkwoaHJlZiwgb3JpZ2luKSwge1xuICAgIGZsaWdodFJvdXRlclN0YXRlOiBbXG4gICAgICBjdXJyZW50VHJlZVswXSxcbiAgICAgIGN1cnJlbnRUcmVlWzFdLFxuICAgICAgY3VycmVudFRyZWVbMl0sXG4gICAgICAncmVmZXRjaCcsXG4gICAgXSxcbiAgICBuZXh0VXJsOiBpbmNsdWRlTmV4dFVybCA/IHN0YXRlLm5leHRVcmwgOiBudWxsLFxuICB9KVxuXG4gIGNvbnN0IG5hdmlnYXRlZEF0ID0gRGF0ZS5ub3coKVxuICByZXR1cm4gY2FjaGUubGF6eURhdGEudGhlbihcbiAgICBhc3luYyAoeyBmbGlnaHREYXRhLCBjYW5vbmljYWxVcmw6IGNhbm9uaWNhbFVybE92ZXJyaWRlIH0pID0+IHtcbiAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbmF2aWdhdGluZyB0byBwYWdlIGluIGBwYWdlc2AgZnJvbSBgYXBwYFxuICAgICAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgbXV0YWJsZSxcbiAgICAgICAgICBmbGlnaHREYXRhLFxuICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmUgY2FjaGUubGF6eURhdGEgYXMgaXQgaGFzIGJlZW4gcmVzb2x2ZWQgYXQgdGhpcyBwb2ludC5cbiAgICAgIGNhY2hlLmxhenlEYXRhID0gbnVsbFxuXG4gICAgICBmb3IgKGNvbnN0IG5vcm1hbGl6ZWRGbGlnaHREYXRhIG9mIGZsaWdodERhdGEpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRyZWU6IHRyZWVQYXRjaCxcbiAgICAgICAgICBzZWVkRGF0YTogY2FjaGVOb2RlU2VlZERhdGEsXG4gICAgICAgICAgaGVhZCxcbiAgICAgICAgICBpc1Jvb3RSZW5kZXIsXG4gICAgICAgIH0gPSBub3JtYWxpemVkRmxpZ2h0RGF0YVxuXG4gICAgICAgIGlmICghaXNSb290UmVuZGVyKSB7XG4gICAgICAgICAgLy8gVE9ETy1BUFA6IGhhbmRsZSB0aGlzIGNhc2UgYmV0dGVyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1JFRlJFU0ggRkFJTEVEJylcbiAgICAgICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gICAgICAgICAgLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgIFsnJ10sXG4gICAgICAgICAgY3VycmVudFRyZWUsXG4gICAgICAgICAgdHJlZVBhdGNoLFxuICAgICAgICAgIHN0YXRlLmNhbm9uaWNhbFVybFxuICAgICAgICApXG5cbiAgICAgICAgaWYgKG5ld1RyZWUgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlU2VnbWVudE1pc21hdGNoKHN0YXRlLCBhY3Rpb24sIHRyZWVQYXRjaClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQoY3VycmVudFRyZWUsIG5ld1RyZWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBtdXRhYmxlLFxuICAgICAgICAgICAgaHJlZixcbiAgICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYW5vbmljYWxVcmxPdmVycmlkZUhyZWYgPSBjYW5vbmljYWxVcmxPdmVycmlkZVxuICAgICAgICAgID8gY3JlYXRlSHJlZkZyb21VcmwoY2Fub25pY2FsVXJsT3ZlcnJpZGUpXG4gICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgICBpZiAoY2Fub25pY2FsVXJsT3ZlcnJpZGUpIHtcbiAgICAgICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IGNhbm9uaWNhbFVybE92ZXJyaWRlSHJlZlxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlcyBjYXNlIHdoZXJlIHByZWZldGNoIG9ubHkgcmV0dXJucyB0aGUgcm91dGVyIHRyZWUgcGF0Y2ggd2l0aG91dCByZW5kZXJlZCBjb21wb25lbnRzLlxuICAgICAgICBpZiAoY2FjaGVOb2RlU2VlZERhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCByc2MgPSBjYWNoZU5vZGVTZWVkRGF0YVsxXVxuICAgICAgICAgIGNvbnN0IGxvYWRpbmcgPSBjYWNoZU5vZGVTZWVkRGF0YVszXVxuICAgICAgICAgIGNhY2hlLnJzYyA9IHJzY1xuICAgICAgICAgIGNhY2hlLnByZWZldGNoUnNjID0gbnVsbFxuICAgICAgICAgIGNhY2hlLmxvYWRpbmcgPSBsb2FkaW5nXG4gICAgICAgICAgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQoXG4gICAgICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgICAgICAgIGNhY2hlLFxuICAgICAgICAgICAgLy8gRXhpc3RpbmcgY2FjaGUgaXMgbm90IHBhc3NlZCBpbiBhcyBgcm91dGVyLnJlZnJlc2goKWAgaGFzIHRvIGludmFsaWRhdGUgdGhlIGVudGlyZSBjYWNoZS5cbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRyZWVQYXRjaCxcbiAgICAgICAgICAgIGNhY2hlTm9kZVNlZWREYXRhLFxuICAgICAgICAgICAgaGVhZCxcbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFKSB7XG4gICAgICAgICAgICByZXZhbGlkYXRlRW50aXJlQ2FjaGUoc3RhdGUubmV4dFVybCwgbmV3VHJlZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbXV0YWJsZS5wcmVmZXRjaENhY2hlID0gbmV3IE1hcCgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgcmVmcmVzaEluYWN0aXZlUGFyYWxsZWxTZWdtZW50cyh7XG4gICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgdXBkYXRlZFRyZWU6IG5ld1RyZWUsXG4gICAgICAgICAgdXBkYXRlZENhY2hlOiBjYWNoZSxcbiAgICAgICAgICBpbmNsdWRlTmV4dFVybCxcbiAgICAgICAgICBjYW5vbmljYWxVcmw6IG11dGFibGUuY2Fub25pY2FsVXJsIHx8IHN0YXRlLmNhbm9uaWNhbFVybCxcbiAgICAgICAgfSlcblxuICAgICAgICBtdXRhYmxlLmNhY2hlID0gY2FjaGVcbiAgICAgICAgbXV0YWJsZS5wYXRjaGVkVHJlZSA9IG5ld1RyZWVcblxuICAgICAgICBjdXJyZW50VHJlZSA9IG5ld1RyZWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhhbmRsZU11dGFibGUoc3RhdGUsIG11dGFibGUpXG4gICAgfSxcbiAgICAoKSA9PiBzdGF0ZVxuICApXG59XG4iXSwibmFtZXMiOlsicmVmcmVzaFJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsIm9yaWdpbiIsIm11dGFibGUiLCJocmVmIiwiY2Fub25pY2FsVXJsIiwiY3VycmVudFRyZWUiLCJ0cmVlIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJjYWNoZSIsImNyZWF0ZUVtcHR5Q2FjaGVOb2RlIiwiaW5jbHVkZU5leHRVcmwiLCJoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUiLCJsYXp5RGF0YSIsImZldGNoU2VydmVyUmVzcG9uc2UiLCJVUkwiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIm5leHRVcmwiLCJuYXZpZ2F0ZWRBdCIsIkRhdGUiLCJub3ciLCJ0aGVuIiwiZmxpZ2h0RGF0YSIsImNhbm9uaWNhbFVybE92ZXJyaWRlIiwiaGFuZGxlRXh0ZXJuYWxVcmwiLCJwdXNoUmVmIiwicGVuZGluZ1B1c2giLCJub3JtYWxpemVkRmxpZ2h0RGF0YSIsInRyZWVQYXRjaCIsInNlZWREYXRhIiwiY2FjaGVOb2RlU2VlZERhdGEiLCJoZWFkIiwiaXNSb290UmVuZGVyIiwiY29uc29sZSIsImxvZyIsIm5ld1RyZWUiLCJhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUiLCJoYW5kbGVTZWdtZW50TWlzbWF0Y2giLCJpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQiLCJjYW5vbmljYWxVcmxPdmVycmlkZUhyZWYiLCJjcmVhdGVIcmVmRnJvbVVybCIsInVuZGVmaW5lZCIsInJzYyIsImxvYWRpbmciLCJwcmVmZXRjaFJzYyIsImZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRSIsInJldmFsaWRhdGVFbnRpcmVDYWNoZSIsInByZWZldGNoQ2FjaGUiLCJNYXAiLCJyZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzIiwidXBkYXRlZFRyZWUiLCJ1cGRhdGVkQ2FjaGUiLCJwYXRjaGVkVHJlZSIsImhhbmRsZU11dGFibGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js":
|
||
/*!*********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js ***!
|
||
\*********************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"restoreReducer\", ({\n enumerable: true,\n get: function() {\n return restoreReducer;\n }\n}));\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _computechangedpath = __webpack_require__(/*! ../compute-changed-path */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\");\nconst _pprnavigations = __webpack_require__(/*! ../ppr-navigations */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js\");\nfunction restoreReducer(state, action) {\n const { url, tree } = action;\n const href = (0, _createhreffromurl.createHrefFromUrl)(url);\n // This action is used to restore the router state from the history state.\n // However, it's possible that the history state no longer contains the `FlightRouterState`.\n // We will copy over the internal state on pushState/replaceState events, but if a history entry\n // occurred before hydration, or if the user navigated to a hash using a regular anchor link,\n // the history state will not contain the `FlightRouterState`.\n // In this case, we'll continue to use the existing tree so the router doesn't get into an invalid state.\n const treeToRestore = tree || state.tree;\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 // 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: treeToRestore,\n nextUrl: (_extractPathFromFlightRouterState = (0, _computechangedpath.extractPathFromFlightRouterState)(treeToRestore)) != null ? _extractPathFromFlightRouterState : url.pathname\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=restore-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3Jlc3RvcmUtcmVkdWNlci5qcyIsIm1hcHBpbmdzIjoiOzs7O2tEQVNnQkE7OztlQUFBQTs7OytDQVRrQjtnREFNZTs0Q0FDSTtBQUU5QyxTQUFTQSxlQUNkQyxLQUEyQixFQUMzQkMsTUFBcUI7SUFFckIsTUFBTSxFQUFFQyxHQUFHLEVBQUVDLElBQUksRUFBRSxHQUFHRjtJQUN0QixNQUFNRyxPQUFPQyxDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCSDtJQUMvQiwwRUFBMEU7SUFDMUUsNEZBQTRGO0lBQzVGLGdHQUFnRztJQUNoRyw2RkFBNkY7SUFDN0YsOERBQThEO0lBQzlELHlHQUF5RztJQUN6RyxNQUFNSSxnQkFBZ0JILFFBQVFILE1BQU1HLElBQUk7SUFFeEMsTUFBTUksV0FBV1AsTUFBTVEsS0FBSztJQUM1QixNQUFNQyxXQUFXQyxNQUFzQixHQUVuQywyREFDMkQ7SUFDM0QsMkJBQTJCO0lBQzNCRyxDQUE2RFAsR0FDN0RDO1FBZ0JPTztJQWRYLE9BQU87UUFDTCxvQkFBb0I7UUFDcEJDLGNBQWNYO1FBQ2RZLFNBQVM7WUFDUEMsYUFBYTtZQUNiQyxlQUFlO1lBQ2YsNkZBQTZGO1lBQzdGQyw0QkFBNEI7UUFDOUI7UUFDQUMsbUJBQW1CcEIsTUFBTW9CLGlCQUFpQjtRQUMxQ1osT0FBT0M7UUFDUFksZUFBZXJCLE1BQU1xQixhQUFhO1FBQ2xDLHdCQUF3QjtRQUN4QmxCLE1BQU1HO1FBQ05nQixTQUFTUixDQUFBQSxvQ0FBQUEsQ0FBQUEsR0FBQUEsb0JBQUFBLGdDQUFBQSxFQUFpQ1IsY0FBQUEsS0FBQUEsT0FBakNRLG9DQUFtRFosSUFBSXFCLFFBQVE7SUFDMUU7QUFDRiIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9yZXN0b3JlLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tICcuLi9jcmVhdGUtaHJlZi1mcm9tLXVybCdcbmltcG9ydCB0eXBlIHtcbiAgUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIFJlZHVjZXJTdGF0ZSxcbiAgUmVzdG9yZUFjdGlvbixcbn0gZnJvbSAnLi4vcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyBleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uL2NvbXB1dGUtY2hhbmdlZC1wYXRoJ1xuaW1wb3J0IHsgdXBkYXRlQ2FjaGVOb2RlT25Qb3BzdGF0ZVJlc3RvcmF0aW9uIH0gZnJvbSAnLi4vcHByLW5hdmlnYXRpb25zJ1xuXG5leHBvcnQgZnVuY3Rpb24gcmVzdG9yZVJlZHVjZXIoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgYWN0aW9uOiBSZXN0b3JlQWN0aW9uXG4pOiBSZWR1Y2VyU3RhdGUge1xuICBjb25zdCB7IHVybCwgdHJlZSB9ID0gYWN0aW9uXG4gIGNvbnN0IGhyZWYgPSBjcmVhdGVIcmVmRnJvbVVybCh1cmwpXG4gIC8vIFRoaXMgYWN0aW9uIGlzIHVzZWQgdG8gcmVzdG9yZSB0aGUgcm91dGVyIHN0YXRlIGZyb20gdGhlIGhpc3Rvcnkgc3RhdGUuXG4gIC8vIEhvd2V2ZXIsIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgaGlzdG9yeSBzdGF0ZSBubyBsb25nZXIgY29udGFpbnMgdGhlIGBGbGlnaHRSb3V0ZXJTdGF0ZWAuXG4gIC8vIFdlIHdpbGwgY29weSBvdmVyIHRoZSBpbnRlcm5hbCBzdGF0ZSBvbiBwdXNoU3RhdGUvcmVwbGFjZVN0YXRlIGV2ZW50cywgYnV0IGlmIGEgaGlzdG9yeSBlbnRyeVxuICAvLyBvY2N1cnJlZCBiZWZvcmUgaHlkcmF0aW9uLCBvciBpZiB0aGUgdXNlciBuYXZpZ2F0ZWQgdG8gYSBoYXNoIHVzaW5nIGEgcmVndWxhciBhbmNob3IgbGluayxcbiAgLy8gdGhlIGhpc3Rvcnkgc3RhdGUgd2lsbCBub3QgY29udGFpbiB0aGUgYEZsaWdodFJvdXRlclN0YXRlYC5cbiAgLy8gSW4gdGhpcyBjYXNlLCB3ZSdsbCBjb250aW51ZSB0byB1c2UgdGhlIGV4aXN0aW5nIHRyZWUgc28gdGhlIHJvdXRlciBkb2Vzbid0IGdldCBpbnRvIGFuIGludmFsaWQgc3RhdGUuXG4gIGNvbnN0IHRyZWVUb1Jlc3RvcmUgPSB0cmVlIHx8IHN0YXRlLnRyZWVcblxuICBjb25zdCBvbGRDYWNoZSA9IHN0YXRlLmNhY2hlXG4gIGNvbnN0IG5ld0NhY2hlID0gcHJvY2Vzcy5lbnYuX19ORVhUX1BQUlxuICAgID8gLy8gV2hlbiBQUFIgaXMgZW5hYmxlZCwgd2UgdXBkYXRlIHRoZSBjYWNoZSB0byBkcm9wIHRoZSBwcmVmZXRjaFxuICAgICAgLy8gZGF0YSBmb3IgYW55IHNlZ21lbnQgd2hvc2UgZHluYW1pYyBkYXRhIHdhcyBhbHJlYWR5IHJlY2VpdmVkLiBUaGlzXG4gICAgICAvLyBwcmV2ZW50cyBhbiB1bm5lY2Vzc2FyeSBmbGFzaCBiYWNrIHRvIFBQUiBzdGF0ZSBkdXJpbmcgYVxuICAgICAgLy8gYmFjay9mb3J3YXJkIG5hdmlnYXRpb24uXG4gICAgICB1cGRhdGVDYWNoZU5vZGVPblBvcHN0YXRlUmVzdG9yYXRpb24ob2xkQ2FjaGUsIHRyZWVUb1Jlc3RvcmUpXG4gICAgOiBvbGRDYWNoZVxuXG4gIHJldHVybiB7XG4gICAgLy8gU2V0IGNhbm9uaWNhbCB1cmxcbiAgICBjYW5vbmljYWxVcmw6IGhyZWYsXG4gICAgcHVzaFJlZjoge1xuICAgICAgcGVuZGluZ1B1c2g6IGZhbHNlLFxuICAgICAgbXBhTmF2aWdhdGlvbjogZmFsc2UsXG4gICAgICAvLyBFbnN1cmVzIHRoYXQgdGhlIGN1c3RvbSBoaXN0b3J5IHN0YXRlIHRoYXQgd2FzIHNldCBpcyBwcmVzZXJ2ZWQgd2hlbiBhcHBseWluZyB0aGlzIHVwZGF0ZS5cbiAgICAgIHByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlOiB0cnVlLFxuICAgIH0sXG4gICAgZm9jdXNBbmRTY3JvbGxSZWY6IHN0YXRlLmZvY3VzQW5kU2Nyb2xsUmVmLFxuICAgIGNhY2hlOiBuZXdDYWNoZSxcbiAgICBwcmVmZXRjaENhY2hlOiBzdGF0ZS5wcmVmZXRjaENhY2hlLFxuICAgIC8vIFJlc3RvcmUgcHJvdmlkZWQgdHJlZVxuICAgIHRyZWU6IHRyZWVUb1Jlc3RvcmUsXG4gICAgbmV4dFVybDogZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUodHJlZVRvUmVzdG9yZSkgPz8gdXJsLnBhdGhuYW1lLFxuICB9XG59XG4iXSwibmFtZXMiOlsicmVzdG9yZVJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInVybCIsInRyZWUiLCJocmVmIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJ0cmVlVG9SZXN0b3JlIiwib2xkQ2FjaGUiLCJjYWNoZSIsIm5ld0NhY2hlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9QUFIiLCJ1cGRhdGVDYWNoZU5vZGVPblBvcHN0YXRlUmVzdG9yYXRpb24iLCJleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSIsImNhbm9uaWNhbFVybCIsInB1c2hSZWYiLCJwZW5kaW5nUHVzaCIsIm1wYU5hdmlnYXRpb24iLCJwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSIsImZvY3VzQW5kU2Nyb2xsUmVmIiwicHJlZmV0Y2hDYWNoZSIsIm5leHRVcmwiLCJwYXRobmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js":
|
||
/*!***************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js ***!
|
||
\***************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"serverActionReducer\", ({\n enumerable: true,\n get: function() {\n return serverActionReducer;\n }\n}));\nconst _appcallserver = __webpack_require__(/*! ../../../app-call-server */ \"(ssr)/./node_modules/next/dist/client/app-call-server.js\");\nconst _appfindsourcemapurl = __webpack_require__(/*! ../../../app-find-source-map-url */ \"(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js\");\nconst _approuterheaders = __webpack_require__(/*! ../../app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _unrecognizedactionerror = __webpack_require__(/*! ../../unrecognized-action-error */ \"(ssr)/./node_modules/next/dist/client/components/unrecognized-action-error.js\");\nconst _client = __webpack_require__(/*! react-server-dom-webpack/client */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js\");\nconst _routerreducertypes = __webpack_require__(/*! ../router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _assignlocation = __webpack_require__(/*! ../../../assign-location */ \"(ssr)/./node_modules/next/dist/client/assign-location.js\");\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _navigatereducer = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _handlemutable = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _filllazyitemstillleafwithhead = __webpack_require__(/*! ../fill-lazy-items-till-leaf-with-head */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\nconst _approuter = __webpack_require__(/*! ../../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _hasinterceptionrouteincurrenttree = __webpack_require__(/*! ./has-interception-route-in-current-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\");\nconst _handlesegmentmismatch = __webpack_require__(/*! ../handle-segment-mismatch */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js\");\nconst _refetchinactiveparallelsegments = __webpack_require__(/*! ../refetch-inactive-parallel-segments */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js\");\nconst _flightdatahelpers = __webpack_require__(/*! ../../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _redirect = __webpack_require__(/*! ../../redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _redirecterror = __webpack_require__(/*! ../../redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nconst _prefetchcacheutils = __webpack_require__(/*! ../prefetch-cache-utils */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js\");\nconst _removebasepath = __webpack_require__(/*! ../../../remove-base-path */ \"(ssr)/./node_modules/next/dist/client/remove-base-path.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../has-base-path */ \"(ssr)/./node_modules/next/dist/client/has-base-path.js\");\nconst _serverreferenceinfo = __webpack_require__(/*! ../../../../shared/lib/server-reference-info */ \"(ssr)/./node_modules/next/dist/shared/lib/server-reference-info.js\");\nconst _segmentcache = __webpack_require__(/*! ../../segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\nconst createFromFetch = _client.createFromFetch;\nasync function fetchServerAction(state, nextUrl, param) {\n let { actionId, actionArgs } = param;\n const temporaryReferences = (0, _client.createTemporaryReferenceSet)();\n const info = (0, _serverreferenceinfo.extractInfoFromServerReferenceId)(actionId);\n // TODO: Currently, we're only omitting unused args for the experimental \"use\n // cache\" functions. Once the server reference info byte feature is stable, we\n // should apply this to server actions as well.\n const usedArgs = info.type === 'use-cache' ? (0, _serverreferenceinfo.omitUnusedArgs)(actionArgs, info) : actionArgs;\n const body = await (0, _client.encodeReply)(usedArgs, {\n temporaryReferences\n });\n const res = await fetch(state.canonicalUrl, {\n method: 'POST',\n headers: {\n Accept: _approuterheaders.RSC_CONTENT_TYPE_HEADER,\n [_approuterheaders.ACTION_HEADER]: actionId,\n [_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER]: (0, _flightdatahelpers.prepareFlightRouterStateForRequest)(state.tree),\n ... false ? 0 : {},\n ...nextUrl ? {\n [_approuterheaders.NEXT_URL]: nextUrl\n } : {}\n },\n body\n });\n // Handle server actions that the server didn't recognize.\n const unrecognizedActionHeader = res.headers.get(_approuterheaders.NEXT_ACTION_NOT_FOUND_HEADER);\n if (unrecognizedActionHeader === '1') {\n throw Object.defineProperty(new _unrecognizedactionerror.UnrecognizedActionError('Server Action \"' + actionId + '\" was not found on the server. \\nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action'), \"__NEXT_ERROR_CODE\", {\n value: \"E715\",\n enumerable: false,\n configurable: true\n });\n }\n const redirectHeader = res.headers.get('x-action-redirect');\n const [location, _redirectType] = (redirectHeader == null ? void 0 : redirectHeader.split(';')) || [];\n let redirectType;\n switch(_redirectType){\n case 'push':\n redirectType = _redirecterror.RedirectType.push;\n break;\n case 'replace':\n redirectType = _redirecterror.RedirectType.replace;\n break;\n default:\n redirectType = undefined;\n }\n const isPrerender = !!res.headers.get(_approuterheaders.NEXT_IS_PRERENDER_HEADER);\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 = NO_REVALIDATED_PARTS;\n }\n const redirectLocation = location ? (0, _assignlocation.assignLocation)(location, new URL(state.canonicalUrl, window.location.href)) : undefined;\n const contentType = res.headers.get('content-type');\n const isRscResponse = !!(contentType && contentType.startsWith(_approuterheaders.RSC_CONTENT_TYPE_HEADER));\n // Handle invalid server action responses.\n // A valid response must have `content-type: text/x-component`, unless it's an external redirect.\n // (external redirects have an 'x-action-redirect' header, but the body is an empty 'text/plain')\n if (!isRscResponse && !redirectLocation) {\n // The server can respond with a text/plain error message, but we'll fallback to something generic\n // if there isn't one.\n const message = res.status >= 400 && contentType === 'text/plain' ? await res.text() : 'An unexpected response was received from the server.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n let actionResult;\n let actionFlightData;\n if (isRscResponse) {\n const response = await createFromFetch(Promise.resolve(res), {\n callServer: _appcallserver.callServer,\n findSourceMapURL: _appfindsourcemapurl.findSourceMapURL,\n temporaryReferences\n });\n // An internal redirect can send an RSC response, but does not have a useful `actionResult`.\n actionResult = redirectLocation ? undefined : response.a;\n actionFlightData = (0, _flightdatahelpers.normalizeFlightData)(response.f);\n } else {\n // An external redirect doesn't contain RSC data.\n actionResult = undefined;\n actionFlightData = undefined;\n }\n return {\n actionResult,\n actionFlightData,\n redirectLocation,\n redirectType,\n revalidatedParts,\n isPrerender\n };\n}\nconst NO_REVALIDATED_PARTS = {\n paths: [],\n tag: false,\n cookie: false\n};\nfunction serverActionReducer(state, action) {\n const { resolve, reject } = action;\n const mutable = {};\n let currentTree = state.tree;\n mutable.preserveCustomHistoryState = false;\n // only pass along the `nextUrl` param (used for interception routes) if the current route was intercepted.\n // If the route has been intercepted, the action should be as well.\n // Otherwise the server action might be intercepted with the wrong action id\n // (ie, one that corresponds with the intercepted route)\n const nextUrl = state.nextUrl && (0, _hasinterceptionrouteincurrenttree.hasInterceptionRouteInCurrentTree)(state.tree) ? state.nextUrl : null;\n const navigatedAt = Date.now();\n return fetchServerAction(state, nextUrl, action).then(async (param)=>{\n let { actionResult, actionFlightData: flightData, redirectLocation, redirectType, isPrerender, revalidatedParts } = param;\n let redirectHref;\n // honor the redirect type instead of defaulting to push in case of server actions.\n if (redirectLocation) {\n if (redirectType === _redirecterror.RedirectType.replace) {\n state.pushRef.pendingPush = false;\n mutable.pendingPush = false;\n } else {\n state.pushRef.pendingPush = true;\n mutable.pendingPush = true;\n }\n redirectHref = (0, _createhreffromurl.createHrefFromUrl)(redirectLocation, false);\n mutable.canonicalUrl = redirectHref;\n }\n if (!flightData) {\n resolve(actionResult);\n // If there is a redirect but no flight data we need to do a mpaNavigation.\n if (redirectLocation) {\n return (0, _navigatereducer.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 resolve(actionResult);\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, flightData, state.pushRef.pendingPush);\n }\n const actionRevalidated = revalidatedParts.paths.length > 0 || revalidatedParts.tag || revalidatedParts.cookie;\n for (const normalizedFlightData of flightData){\n const { tree: treePatch, seedData: cacheNodeSeedData, head, isRootRender } = normalizedFlightData;\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('SERVER ACTION APPLY FAILED');\n resolve(actionResult);\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 newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)([\n ''\n ], currentTree, treePatch, redirectHref ? redirectHref : state.canonicalUrl);\n if (newTree === null) {\n resolve(actionResult);\n return (0, _handlesegmentmismatch.handleSegmentMismatch)(state, action, treePatch);\n }\n if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n resolve(actionResult);\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, redirectHref || state.canonicalUrl, state.pushRef.pendingPush);\n }\n // The server sent back RSC data for the server action, so we need to apply it to the cache.\n if (cacheNodeSeedData !== null) {\n const rsc = cacheNodeSeedData[1];\n const cache = (0, _approuter.createEmptyCacheNode)();\n cache.rsc = rsc;\n cache.prefetchRsc = null;\n cache.loading = cacheNodeSeedData[3];\n (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, undefined, treePatch, cacheNodeSeedData, head, undefined);\n mutable.cache = cache;\n if (false) {} else {\n mutable.prefetchCache = new Map();\n }\n if (actionRevalidated) {\n await (0, _refetchinactiveparallelsegments.refreshInactiveParallelSegments)({\n navigatedAt,\n state,\n updatedTree: newTree,\n updatedCache: cache,\n includeNextUrl: Boolean(nextUrl),\n canonicalUrl: mutable.canonicalUrl || state.canonicalUrl\n });\n }\n }\n mutable.patchedTree = newTree;\n currentTree = newTree;\n }\n if (redirectLocation && redirectHref) {\n if ( true && !actionRevalidated) {\n // Because the RedirectBoundary will trigger a navigation, we need to seed the prefetch cache\n // with the FlightData that we got from the server action for the target page, so that it's\n // available when the page is navigated to and doesn't need to be re-fetched.\n // We only do this if the server action didn't revalidate any data, as in that case the\n // client cache will be cleared and the data will be re-fetched anyway.\n // NOTE: We don't do this in the Segment Cache implementation.\n // Dynamic data should never be placed into the cache, unless it's\n // \"converted\" to static data using <Link prefetch={true}>. What we\n // do instead is re-prefetch links and forms whenever the cache is\n // invalidated.\n (0, _prefetchcacheutils.createSeededPrefetchCacheEntry)({\n url: redirectLocation,\n data: {\n flightData,\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n // TODO: We should be able to set this if the server action\n // returned a fully static response.\n staleTime: -1\n },\n tree: state.tree,\n prefetchCache: state.prefetchCache,\n nextUrl: state.nextUrl,\n kind: isPrerender ? _routerreducertypes.PrefetchKind.FULL : _routerreducertypes.PrefetchKind.AUTO\n });\n mutable.prefetchCache = state.prefetchCache;\n }\n // If the action triggered a redirect, the action promise will be rejected with\n // a redirect so that it's handled by RedirectBoundary as we won't have a valid\n // action result to resolve the promise with. This will effectively reset the state of\n // the component that called the action as the error boundary will remount the tree.\n // The status code doesn't matter here as the action handler will have already sent\n // a response with the correct status code.\n reject((0, _redirect.getRedirectError)((0, _hasbasepath.hasBasePath)(redirectHref) ? (0, _removebasepath.removeBasePath)(redirectHref) : redirectHref, redirectType || _redirecterror.RedirectType.push));\n } else {\n resolve(actionResult);\n }\n return (0, _handlemutable.handleMutable)(state, mutable);\n }, (e)=>{\n // When the server action is rejected we don't update the state and instead call the reject handler of the promise.\n reject(e);\n return state;\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=server-action-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3NlcnZlci1hY3Rpb24tcmVkdWNlci5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQXFOZ0JBOzs7ZUFBQUE7OzsyQ0FqTlc7aURBQ007OENBUTFCO3FEQUNpQztvQ0FRakM7Z0RBUUE7NENBQ3dCOytDQUNHOzZDQUNBO3lEQUNVO3lEQUNBOzJDQUVkOzJEQUNnQjt1Q0FDVDsrREFDYTttREFDWjs2REFDVTsrQ0FLekM7c0NBQzBCOzJDQUNKO2dEQUNrQjs0Q0FDaEI7eUNBQ0g7aURBSXJCOzBDQUMrQjtBQUV0QyxNQUFNQyxrQkFDSkMsUUFBQUEsZUFBc0I7QUFleEIsZUFBZUMsa0JBQ2JDLEtBQTJCLEVBQzNCQyxPQUF3QyxFQUN4QyxLQUE0QztJQUE1QyxNQUFFQyxRQUFRLEVBQUVDLFVBQVUsRUFBc0IsR0FBNUM7SUFFQSxNQUFNQyxzQkFBc0JDLENBQUFBLEdBQUFBLFFBQUFBLDJCQUFBQTtJQUM1QixNQUFNQyxPQUFPQyxDQUFBQSxHQUFBQSxxQkFBQUEsZ0NBQWdDLEVBQUNMO0lBRTlDLDZFQUE2RTtJQUM3RSw4RUFBOEU7SUFDOUUsK0NBQStDO0lBQy9DLE1BQU1NLFdBQ0pGLEtBQUtHLElBQUksS0FBSyxjQUFjQyxDQUFBQSxHQUFBQSxxQkFBQUEsY0FBQUEsRUFBZVAsWUFBWUcsUUFBUUg7SUFFakUsTUFBTVEsT0FBTyxNQUFNQyxDQUFBQSxHQUFBQSxRQUFBQSxXQUFBQSxFQUFZSixVQUFVO1FBQUVKO0lBQW9CO0lBRS9ELE1BQU1TLE1BQU0sTUFBTUMsTUFBTWQsTUFBTWUsWUFBWSxFQUFFO1FBQzFDQyxRQUFRO1FBQ1JDLFNBQVM7WUFDUEMsUUFBUUMsa0JBQUFBLHVCQUF1QjtZQUMvQixDQUFDQyxrQkFBQUEsYUFBYSxDQUFDLEVBQUVsQjtZQUNqQixDQUFDbUIsa0JBQUFBLDZCQUE2QixDQUFDLEVBQUVDLENBQUFBLEdB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ZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9zZXJ2ZXItYWN0aW9uLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBY3Rpb25GbGlnaHRSZXNwb25zZSxcbiAgQWN0aW9uUmVzdWx0LFxufSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IGNhbGxTZXJ2ZXIgfSBmcm9tICcuLi8uLi8uLi9hcHAtY2FsbC1zZXJ2ZXInXG5pbXBvcnQgeyBmaW5kU291cmNlTWFwVVJMIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWZpbmQtc291cmNlLW1hcC11cmwnXG5pbXBvcnQge1xuICBBQ1RJT05fSEVBREVSLFxuICBORVhUX0FDVElPTl9OT1RfRk9VTkRfSEVBREVSLFxuICBORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSLFxuICBORVhUX1VSTCxcbiAgUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIsXG59IGZyb20gJy4uLy4uL2FwcC1yb3V0ZXItaGVhZGVycydcbmltcG9ydCB7IFVucmVjb2duaXplZEFjdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vdW5yZWNvZ25pemVkLWFjdGlvbi1lcnJvcidcblxuLy8gVE9ETzogRXhwbGljaXRseSBpbXBvcnQgZnJvbSBjbGllbnQuYnJvd3NlclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHtcbiAgY3JlYXRlRnJvbUZldGNoIGFzIGNyZWF0ZUZyb21GZXRjaEJyb3dzZXIsXG4gIGNyZWF0ZVRlbXBvcmFyeVJlZmVyZW5jZVNldCxcbiAgZW5jb2RlUmVwbHksXG59IGZyb20gJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQnXG5cbmltcG9ydCB7XG4gIFByZWZldGNoS2luZCxcbiAgdHlwZSBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgdHlwZSBSZWR1Y2VyU3RhdGUsXG4gIHR5cGUgU2VydmVyQWN0aW9uQWN0aW9uLFxuICB0eXBlIFNlcnZlckFjdGlvbk11dGFibGUsXG59IGZyb20gJy4uL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgYXNzaWduTG9jYXRpb24gfSBmcm9tICcuLi8uLi8uLi9hc3NpZ24tbG9jYXRpb24nXG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gJy4uL2NyZWF0ZS1ocmVmLWZyb20tdXJsJ1xuaW1wb3J0IHsgaGFuZGxlRXh0ZXJuYWxVcmwgfSBmcm9tICcuL25hdmlnYXRlLXJlZHVjZXInXG5pbXBvcnQgeyBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUgfSBmcm9tICcuLi9hcHBseS1yb3V0ZXItc3RhdGUtcGF0Y2gtdG8tdHJlZSdcbmltcG9ydCB7IGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCB9IGZyb20gJy4uL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0J1xuaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGhhbmRsZU11dGFibGUgfSBmcm9tICcuLi9oYW5kbGUtbXV0YWJsZSdcbmltcG9ydCB7IGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIH0gZnJvbSAnLi4vZmlsbC1sYXp5LWl0ZW1zLXRpbGwtbGVhZi13aXRoLWhlYWQnXG5pbXBvcnQgeyBjcmVhdGVFbXB0eUNhY2hlTm9kZSB9IGZyb20gJy4uLy4uL2FwcC1yb3V0ZXInXG5pbXBvcnQgeyBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUgfSBmcm9tICcuL2hhcy1pbnRlcmNlcHRpb24tcm91dGUtaW4tY3VycmVudC10cmVlJ1xuaW1wb3J0IHsgaGFuZGxlU2VnbWVudE1pc21hdGNoIH0gZnJvbSAnLi4vaGFuZGxlLXNlZ21lbnQtbWlzbWF0Y2gnXG5pbXBvcnQgeyByZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzIH0gZnJvbSAnLi4vcmVmZXRjaC1pbmFjdGl2ZS1wYXJhbGxlbC1zZWdtZW50cydcbmltcG9ydCB7XG4gIG5vcm1hbGl6ZUZsaWdodERhdGEsXG4gIHByZXBhcmVGbGlnaHRSb3V0ZXJTdGF0ZUZvclJlcXVlc3QsXG4gIHR5cGUgTm9ybWFsaXplZEZsaWdodERhdGEsXG59IGZyb20gJy4uLy4uLy4uL2ZsaWdodC1kYXRhLWhlbHBlcnMnXG5pbXBvcnQgeyBnZXRSZWRpcmVjdEVycm9yIH0gZnJvbSAnLi4vLi4vcmVkaXJlY3QnXG5pbXBvcnQgeyBSZWRpcmVjdFR5cGUgfSBmcm9tICcuLi8uLi9yZWRpcmVjdC1lcnJvcidcbmltcG9ydCB7IGNyZWF0ZVNlZWRlZFByZWZldGNoQ2FjaGVFbnRyeSB9IGZyb20gJy4uL3ByZWZldGNoLWNhY2hlLXV0aWxzJ1xuaW1wb3J0IHsgcmVtb3ZlQmFzZVBhdGggfSBmcm9tICcuLi8uLi8uLi9yZW1vdmUtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tICcuLi8uLi8uLi9oYXMtYmFzZS1wYXRoJ1xuaW1wb3J0IHtcbiAgZXh0cmFjdEluZm9Gcm9tU2VydmVyUmVmZXJlbmNlSWQsXG4gIG9taXRVbnVzZWRBcmdzLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL3NlcnZlci1yZWZlcmVuY2UtaW5mbydcbmltcG9ydCB7IHJldmFsaWRhdGVFbnRpcmVDYWNoZSB9IGZyb20gJy4uLy4uL3NlZ21lbnQtY2FjaGUnXG5cbmNvbnN0IGNyZWF0ZUZyb21GZXRjaCA9XG4gIGNyZWF0ZUZyb21GZXRjaEJyb3dzZXIgYXMgKHR5cGVvZiBpbXBvcnQoJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQuYnJvd3NlcicpKVsnY3JlYXRlRnJvbUZldGNoJ11cblxudHlwZSBGZXRjaFNlcnZlckFjdGlvblJlc3VsdCA9IHtcbiAgcmVkaXJlY3RMb2NhdGlvbjogVVJMIHwgdW5kZWZpbmVkXG4gIHJlZGlyZWN0VHlwZTogUmVkaXJlY3RUeXBlIHwgdW5kZWZpbmVkXG4gIGFjdGlvblJlc3VsdDogQWN0aW9uUmVzdWx0IHwgdW5kZWZpbmVkXG4gIGFjdGlvbkZsaWdodERhdGE6IE5vcm1hbGl6ZWRGbGlnaHREYXRhW10gfCBzdHJpbmcgfCB1bmRlZmluZWRcbiAgaXNQcmVyZW5kZXI6IGJvb2xlYW5cbiAgcmV2YWxpZGF0ZWRQYXJ0czoge1xuICAgIHRhZzogYm9vbGVhblxuICAgIGNvb2tpZTogYm9vbGVhblxuICAgIHBhdGhzOiBzdHJpbmdbXVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoU2VydmVyQWN0aW9uKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIG5leHRVcmw6IFJlYWRvbmx5UmVkdWNlclN0YXRlWyduZXh0VXJsJ10sXG4gIHsgYWN0aW9uSWQsIGFjdGlvbkFyZ3MgfTogU2VydmVyQWN0aW9uQWN0aW9uXG4pOiBQcm9taXNlPEZldGNoU2VydmVyQWN0aW9uUmVzdWx0PiB7XG4gIGNvbnN0IHRlbXBvcmFyeVJlZmVyZW5jZXMgPSBjcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXQoKVxuICBjb25zdCBpbmZvID0gZXh0cmFjdEluZm9Gcm9tU2VydmVyUmVmZXJlbmNlSWQoYWN0aW9uSWQpXG5cbiAgLy8gVE9ETzogQ3VycmVudGx5LCB3ZSdyZSBvbmx5IG9taXR0aW5nIHVudXNlZCBhcmdzIGZvciB0aGUgZXhwZXJpbWVudGFsIFwidXNlXG4gIC8vIGNhY2hlXCIgZnVuY3Rpb25zLiBPbmNlIHRoZSBzZXJ2ZXIgcmVmZXJlbmNlIGluZm8gYnl0ZSBmZWF0dXJlIGlzIHN0YWJsZSwgd2VcbiAgLy8gc2hvdWxkIGFwcGx5IHRoaXMgdG8gc2VydmVyIGFjdGlvbnMgYXMgd2VsbC5cbiAgY29uc3QgdXNlZEFyZ3MgPVxuICAgIGluZm8udHlwZSA9PT0gJ3VzZS1jYWNoZScgPyBvbWl0VW51c2VkQXJncyhhY3Rpb25BcmdzLCBpbmZvKSA6IGFjdGlvbkFyZ3NcblxuICBjb25zdCBib2R5ID0gYXdhaXQgZW5jb2RlUmVwbHkodXNlZEFyZ3MsIHsgdGVtcG9yYXJ5UmVmZXJlbmNlcyB9KVxuXG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHN0YXRlLmNhbm9uaWNhbFVybCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIEFjY2VwdDogUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIsXG4gICAgICBbQUNUSU9OX0hFQURFUl06IGFjdGlvbklkLFxuICAgICAgW05FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSXTogcHJlcGFyZUZsaWdodFJvdXRlclN0YXRlRm9yUmVxdWVzdChcbiAgICAgICAgc3RhdGUudHJlZVxuICAgICAgKSxcbiAgICAgIC4uLihwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSURcbiAgICAgICAgPyB7XG4gICAgICAgICAgICAneC1kZXBsb3ltZW50LWlkJzogcHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lELFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7fSksXG4gICAgICAuLi4obmV4dFVybFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIFtORVhUX1VSTF06IG5leHRVcmwsXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9KSxcbiAgICB9LFxuICAgIGJvZHksXG4gIH0pXG5cbiAgLy8gSGFuZGxlIHNlcnZlciBhY3Rpb25zIHRoYXQgdGhlIHNlcnZlciBkaWRuJ3QgcmVjb2duaXplLlxuICBjb25zdCB1bnJlY29nbml6ZWRBY3Rpb25IZWFkZXIgPSByZXMuaGVhZGVycy5nZXQoTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUilcbiAgaWYgKHVucmVjb2duaXplZEFjdGlvbkhlYWRlciA9PT0gJzEnKSB7XG4gICAgdGhyb3cgbmV3IFVucmVjb2duaXplZEFjdGlvbkVycm9yKFxuICAgICAgYFNlcnZlciBBY3Rpb24gXCIke2FjdGlvbklkfVwiIHdhcyBub3QgZm91bmQgb24gdGhlIHNlcnZlci4gXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9mYWlsZWQtdG8tZmluZC1zZXJ2ZXItYWN0aW9uYFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHJlZGlyZWN0SGVhZGVyID0gcmVzLmhlYWRlcnMuZ2V0KCd4LWFjdGlvbi1yZWRpcmVjdCcpXG4gIGNvbnN0IFtsb2NhdGlvbiwgX3JlZGlyZWN0VHlwZV0gPSByZWRpcmVjdEhlYWRlcj8uc3BsaXQoJzsnKSB8fCBbXVxuICBsZXQgcmVkaXJlY3RUeXBlOiBSZWRpcmVjdFR5cGUgfCB1bmRlZmluZWRcbiAgc3dpdGNoIChfcmVkaXJlY3RUeXBlKSB7XG4gICAgY2FzZSAncHVzaCc6XG4gICAgICByZWRpcmVjdFR5cGUgPSBSZWRpcmVjdFR5cGUucHVzaFxuICAgICAgYnJlYWtcbiAgICBjYXNlICdyZXBsYWNlJzpcbiAgICAgIHJlZGlyZWN0VHlwZSA9IFJlZGlyZWN0VHlwZS5yZXBsYWNlXG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWRpcmVjdFR5cGUgPSB1bmRlZmluZWRcbiAgfVxuXG4gIGNvbnN0IGlzUHJlcmVuZGVyID0gISFyZXMuaGVhZGVycy5nZXQoTkVYVF9JU19QUkVSRU5ERVJfSEVBREVSKVxuICBsZXQgcmV2YWxpZGF0ZWRQYXJ0czogRmV0Y2hTZXJ2ZXJBY3Rpb25SZXN1bHRbJ3JldmFsaWRhdGVkUGFydHMnXVxuICB0cnkge1xuICAgIGNvbnN0IHJldmFsaWRhdGVkSGVhZGVyID0gSlNPTi5wYXJzZShcbiAgICAgIHJlcy5oZWFkZXJzLmdldCgneC1hY3Rpb24tcmV2YWxpZGF0ZWQnKSB8fCAnW1tdLDAsMF0nXG4gICAgKVxuICAgIHJldmFsaWRhdGVkUGFydHMgPSB7XG4gICAgICBwYXRoczogcmV2YWxpZGF0ZWRIZWFkZXJbMF0gfHwgW10sXG4gICAgICB0YWc6ICEhcmV2YWxpZGF0ZWRIZWFkZXJbMV0sXG4gICAgICBjb29raWU6IHJldmFsaWRhdGVkSGVhZGVyWzJdLFxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldmFsaWRhdGVkUGFydHMgPSBOT19SRVZBTElEQVRFRF9QQVJUU1xuICB9XG5cbiAgY29uc3QgcmVkaXJlY3RMb2NhdGlvbiA9IGxvY2F0aW9uXG4gICAgPyBhc3NpZ25Mb2NhdGlvbihcbiAgICAgICAgbG9jYXRpb24sXG4gICAgICAgIG5ldyBVUkwoc3RhdGUuY2Fub25pY2FsVXJsLCB3aW5kb3cubG9jYXRpb24uaHJlZilcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxuXG4gIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKVxuICBjb25zdCBpc1JzY1Jlc3BvbnNlID0gISEoXG4gICAgY29udGVudFR5cGUgJiYgY29udGVudFR5cGUuc3RhcnRzV2l0aChSU0NfQ09OVEVOVF9UWVBFX0hFQURFUilcbiAgKVxuXG4gIC8vIEhhbmRsZSBpbnZhbGlkIHNlcnZlciBhY3Rpb24gcmVzcG9uc2VzLlxuICAvLyBBIHZhbGlkIHJlc3BvbnNlIG11c3QgaGF2ZSBgY29udGVudC10eXBlOiB0ZXh0L3gtY29tcG9uZW50YCwgdW5sZXNzIGl0J3MgYW4gZXh0ZXJuYWwgcmVkaXJlY3QuXG4gIC8vIChleHRlcm5hbCByZWRpcmVjdHMgaGF2ZSBhbiAneC1hY3Rpb24tcmVkaXJlY3QnIGhlYWRlciwgYnV0IHRoZSBib2R5IGlzIGFuIGVtcHR5ICd0ZXh0L3BsYWluJylcbiAgaWYgKCFpc1JzY1Jlc3BvbnNlICYmICFyZWRpcmVjdExvY2F0aW9uKSB7XG4gICAgLy8gVGhlIHNlcnZlciBjYW4gcmVzcG9uZCB3aXRoIGEgdGV4dC9wbGFpbiBlcnJvciBtZXNzYWdlLCBidXQgd2UnbGwgZmFsbGJhY2sgdG8gc29tZXRoaW5nIGdlbmVyaWNcbiAgICAvLyBpZiB0aGVyZSBpc24ndCBvbmUuXG4gICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICByZXMuc3RhdHVzID49IDQwMCAmJiBjb250ZW50VHlwZSA9PT0gJ3RleHQvcGxhaW4nXG4gICAgICAgID8gYXdhaXQgcmVzLnRleHQoKVxuICAgICAgICA6ICdBbiB1bmV4cGVjdGVkIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIuJ1xuXG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpXG4gIH1cblxuICBsZXQgYWN0aW9uUmVzdWx0OiBGZXRjaFNlcnZlckFjdGlvblJlc3VsdFsnYWN0aW9uUmVzdWx0J11cbiAgbGV0IGFjdGlvbkZsaWdodERhdGE6IEZldGNoU2VydmVyQWN0aW9uUmVzdWx0WydhY3Rpb25GbGlnaHREYXRhJ11cbiAgaWYgKGlzUnNjUmVzcG9uc2UpIHtcbiAgICBjb25zdCByZXNwb25zZTogQWN0aW9uRmxpZ2h0UmVzcG9uc2UgPSBhd2FpdCBjcmVhdGVGcm9tRmV0Y2goXG4gICAgICBQcm9taXNlLnJlc29sdmUocmVzKSxcbiAgICAgIHsgY2FsbFNlcnZlciwgZmluZFNvdXJjZU1hcFVSTCwgdGVtcG9yYXJ5UmVmZXJlbmNlcyB9XG4gICAgKVxuXG4gICAgLy8gQW4gaW50ZXJuYWwgcmVkaXJlY3QgY2FuIHNlbmQgYW4gUlNDIHJlc3BvbnNlLCBidXQgZG9lcyBub3QgaGF2ZSBhIHVzZWZ1bCBgYWN0aW9uUmVzdWx0YC5cbiAgICBhY3Rpb25SZXN1bHQgPSByZWRpcmVjdExvY2F0aW9uID8gdW5kZWZpbmVkIDogcmVzcG9uc2UuYVxuICAgIGFjdGlvbkZsaWdodERhdGEgPSBub3JtYWxpemVGbGlnaHREYXRhKHJlc3BvbnNlLmYpXG4gIH0gZWxzZSB7XG4gICAgLy8gQW4gZXh0ZXJuYWwgcmVkaXJlY3QgZG9lc24ndCBjb250YWluIFJTQyBkYXRhLlxuICAgIGFjdGlvblJlc3VsdCA9IHVuZGVmaW5lZFxuICAgIGFjdGlvbkZsaWdodERhdGEgPSB1bmRlZmluZWRcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWN0aW9uUmVzdWx0LFxuICAgIGFjdGlvbkZsaWdodERhdGEsXG4gICAgcmVkaXJlY3RMb2NhdGlvbixcbiAgICByZWRpcmVjdFR5cGUsXG4gICAgcmV2YWxpZGF0ZWRQYXJ0cyxcbiAgICBpc1ByZXJlbmRlcixcbiAgfVxufVxuXG5jb25zdCBOT19SRVZBTElEQVRFRF9QQVJUUyA9IHtcbiAgcGF0aHM6IFtdLFxuICB0YWc6IGZhbHNlLFxuICBjb29raWU6IGZhbHNlLFxufVxuXG4vKlxuICogVGhpcyByZWR1Y2VyIGlzIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIHRoZSBzZXJ2ZXIgYWN0aW9uIGFuZCBwcm9jZXNzaW5nIGFueSBzaWRlLWVmZmVjdHMgZnJvbSB0aGUgc2VydmVyIGFjdGlvbi5cbiAqIEl0IGRvZXMgbm90IG11dGF0ZSB0aGUgc3RhdGUgYnkgaXRzZWxmIGJ1dCByYXRoZXIgZGVsZWdhdGVzIHRvIG90aGVyIHJlZHVjZXJzIHRvIGRvIHRoZSBhY3R1YWwgbXV0YXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2ZXJBY3Rpb25SZWR1Y2VyKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIGFjdGlvbjogU2VydmVyQWN0aW9uQWN0aW9uXG4pOiBSZWR1Y2VyU3RhdGUge1xuICBjb25zdCB7IHJlc29sdmUsIHJlamVjdCB9ID0gYWN0aW9uXG4gIGNvbnN0IG11dGFibGU6IFNlcnZlckFjdGlvbk11dGFibGUgPSB7fVxuXG4gIGxldCBjdXJyZW50VHJlZSA9IHN0YXRlLnRyZWVcblxuICBtdXRhYmxlLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlID0gZmFsc2VcblxuICAvLyBvbmx5IHBhc3MgYWxvbmcgdGhlIGBuZXh0VXJsYCBwYXJhbSAodXNlZCBmb3IgaW50ZXJjZXB0aW9uIHJvdXRlcykgaWYgdGhlIGN1cnJlbnQgcm91dGUgd2FzIGludGVyY2VwdGVkLlxuICAvLyBJZiB0aGUgcm91dGUgaGFzIGJlZW4gaW50ZXJjZXB0ZWQsIHRoZSBhY3Rpb24gc2hvdWxkIGJlIGFzIHdlbGwuXG4gIC8vIE90aGVyd2lzZSB0aGUgc2VydmVyIGFjdGlvbiBtaWdodCBiZSBpbnRlcmNlcHRlZCB3aXRoIHRoZSB3cm9uZyBhY3Rpb24gaWRcbiAgLy8gKGllLCBvbmUgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBpbnRlcmNlcHRlZCByb3V0ZSlcbiAgY29uc3QgbmV4dFVybCA9XG4gICAgc3RhdGUubmV4dFVybCAmJiBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUoc3RhdGUudHJlZSlcbiAgICAgID8gc3RhdGUubmV4dFVybFxuICAgICAgOiBudWxsXG5cbiAgY29uc3QgbmF2aWdhdGVkQXQgPSBEYXRlLm5vdygpXG5cbiAgcmV0dXJuIGZldGNoU2VydmVyQWN0aW9uKHN0YXRlLCBuZXh0VXJsLCBhY3Rpb24pLnRoZW4oXG4gICAgYXN5bmMgKHtcbiAgICAgIGFjdGlvblJlc3VsdCxcbiAgICAgIGFjdGlvbkZsaWdodERhdGE6IGZsaWdodERhdGEsXG4gICAgICByZWRpcmVjdExvY2F0aW9uLFxuICAgICAgcmVkaXJlY3RUeXBlLFxuICAgICAgaXNQcmVyZW5kZXIsXG4gICAgICByZXZhbGlkYXRlZFBhcnRzLFxuICAgIH0pID0+IHtcbiAgICAgIGxldCByZWRpcmVjdEhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gICAgICAvLyBob25vciB0aGUgcmVkaXJlY3QgdHlwZSBpbnN0ZWFkIG9mIGRlZmF1bHRpbmcgdG8gcHVzaCBpbiBjYXNlIG9mIHNlcnZlciBhY3Rpb25zLlxuICAgICAgaWYgKHJlZGlyZWN0TG9jYXRpb24pIHtcbiAgICAgICAgaWYgKHJlZGlyZWN0VHlwZSA9PT0gUmVkaXJlY3RUeXBlLnJlcGxhY2UpIHtcbiAgICAgICAgICBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoID0gZmFsc2VcbiAgICAgICAgICBtdXRhYmxlLnBlbmRpbmdQdXNoID0gZmFsc2VcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoID0gdHJ1ZVxuICAgICAgICAgIG11dGFibGUucGVuZGluZ1B1c2ggPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICByZWRpcmVjdEhyZWYgPSBjcmVhdGVIcmVmRnJvbVVybChyZWRpcmVjdExvY2F0aW9uLCBmYWxzZSlcbiAgICAgICAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSByZWRpcmVjdEhyZWZcbiAgICAgIH1cblxuICAgICAgaWYgKCFmbGlnaHREYXRhKSB7XG4gICAgICAgIHJlc29sdmUoYWN0aW9uUmVzdWx0KVxuXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcmVkaXJlY3QgYnV0IG5vIGZsaWdodCBkYXRhIHdlIG5lZWQgdG8gZG8gYSBtcGFOYXZpZ2F0aW9uLlxuICAgICAgICBpZiAocmVkaXJlY3RMb2NhdGlvbikge1xuICAgICAgICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgbXV0YWJsZSxcbiAgICAgICAgICAgIHJlZGlyZWN0TG9jYXRpb24uaHJlZixcbiAgICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgZmxpZ2h0RGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gSGFuZGxlIGNhc2Ugd2hlbiBuYXZpZ2F0aW5nIHRvIHBhZ2UgaW4gYHBhZ2VzYCBmcm9tIGBhcHBgXG4gICAgICAgIHJlc29sdmUoYWN0aW9uUmVzdWx0KVxuXG4gICAgICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChcbiAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICBtdXRhYmxlLFxuICAgICAgICAgIGZsaWdodERhdGEsXG4gICAgICAgICAgc3RhdGUucHVzaFJlZi5wZW5kaW5nUHVzaFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFjdGlvblJldmFsaWRhdGVkID1cbiAgICAgICAgcmV2YWxpZGF0ZWRQYXJ0cy5wYXRocy5sZW5ndGggPiAwIHx8XG4gICAgICAgIHJldmFsaWRhdGVkUGFydHMudGFnIHx8XG4gICAgICAgIHJldmFsaWRhdGVkUGFydHMuY29va2llXG5cbiAgICAgIGZvciAoY29uc3Qgbm9ybWFsaXplZEZsaWdodERhdGEgb2YgZmxpZ2h0RGF0YSkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgdHJlZTogdHJlZVBhdGNoLFxuICAgICAgICAgIHNlZWREYXRhOiBjYWNoZU5vZGVTZWVkRGF0YSxcbiAgICAgICAgICBoZWFkLFxuICAgICAgICAgIGlzUm9vdFJlbmRlcixcbiAgICAgICAgfSA9IG5vcm1hbGl6ZWRGbGlnaHREYXRhXG5cbiAgICAgICAgaWYgKCFpc1Jvb3RSZW5kZXIpIHtcbiAgICAgICAgICAvLyBUT0RPLUFQUDogaGFuZGxlIHRoaXMgY2FzZSBiZXR0ZXJcbiAgICAgICAgICBjb25zb2xlLmxvZygnU0VSVkVSIEFDVElPTiBBUFBMWSBGQUlMRUQnKVxuICAgICAgICAgIHJlc29sdmUoYWN0aW9uUmVzdWx0KVxuXG4gICAgICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICAgIH1cblxuICAgICAgICAvLyBHaXZlbiB0aGUgcGF0aCBjYW4gb25seSBoYXZlIHR3byBpdGVtcyB0aGUgaXRlbXMgYXJlIG9ubHkgdGhlIHJvdXRlciBzdGF0ZSBhbmQgcnNjIGZvciB0aGUgcm9vdC5cbiAgICAgICAgY29uc3QgbmV3VHJlZSA9IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZShcbiAgICAgICAgICAvLyBUT0RPLUFQUDogcmVtb3ZlICcnXG4gICAgICAgICAgWycnXSxcbiAgICAgICAgICBjdXJyZW50VHJlZSxcbiAgICAgICAgICB0cmVlUGF0Y2gsXG4gICAgICAgICAgcmVkaXJlY3RIcmVmID8gcmVkaXJlY3RIcmVmIDogc3RhdGUuY2Fub25pY2FsVXJsXG4gICAgICAgIClcblxuICAgICAgICBpZiAobmV3VHJlZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJlc29sdmUoYWN0aW9uUmVzdWx0KVxuXG4gICAgICAgICAgcmV0dXJuIGhhbmRsZVNlZ21lbnRNaXNtYXRjaChzdGF0ZSwgYWN0aW9uLCB0cmVlUGF0Y2gpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0KGN1cnJlbnRUcmVlLCBuZXdUcmVlKSkge1xuICAgICAgICAgIHJlc29sdmUoYWN0aW9uUmVzdWx0KVxuXG4gICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBtdXRhYmxlLFxuICAgICAgICAgICAgcmVkaXJlY3RIcmVmIHx8IHN0YXRlLmNhbm9uaWNhbFVybCxcbiAgICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgc2VydmVyIHNlbnQgYmFjayBSU0MgZGF0YSBmb3IgdGhlIHNlcnZlciBhY3Rpb24sIHNvIHdlIG5lZWQgdG8gYXBwbHkgaXQgdG8gdGhlIGNhY2hlLlxuICAgICAgICBpZiAoY2FjaGVOb2RlU2VlZERhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCByc2MgPSBjYWNoZU5vZGVTZWVkRGF0YVsxXVxuICAgICAgICAgIGNvbnN0IGNhY2hlOiBDYWNoZU5vZGUgPSBjcmVhdGVFbXB0eUNhY2hlTm9kZSgpXG4gICAgICAgICAgY2FjaGUucnNjID0gcnNjXG4gICAgICAgICAgY2FjaGUucHJlZmV0Y2hSc2MgPSBudWxsXG4gICAgICAgICAgY2FjaGUubG9hZGluZyA9IGNhY2hlTm9kZVNlZWREYXRhWzNdXG4gICAgICAgICAgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQoXG4gICAgICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgICAgICAgIGNhY2hlLFxuICAgICAgICAgICAgLy8gRXhpc3RpbmcgY2FjaGUgaXMgbm90IHBhc3NlZCBpbiBhcyBzZXJ2ZXIgYWN0aW9ucyBoYXZlIHRvIGludmFsaWRhdGUgdGhlIGVudGlyZSBjYWNoZS5cbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRyZWVQYXRjaCxcbiAgICAgICAgICAgIGNhY2hlTm9kZVNlZWREYXRhLFxuICAgICAgICAgICAgaGVhZCxcbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgIClcblxuICAgICAgICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZVxuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEUpIHtcbiAgICAgICAgICAgIHJldmFsaWRhdGVFbnRpcmVDYWNoZShzdGF0ZS5uZXh0VXJsLCBuZXdUcmVlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtdXRhYmxlLnByZWZldGNoQ2FjaGUgPSBuZXcgTWFwKClcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGFjdGlvblJldmFsaWRhdGVkKSB7XG4gICAgICAgICAgICBhd2FpdCByZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzKHtcbiAgICAgICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgICB1cGRhdGVkVHJlZTogbmV3VHJlZSxcbiAgICAgICAgICAgICAgdXBkYXRlZENhY2hlOiBjYWNoZSxcbiAgICAgICAgICAgICAgaW5jbHVkZU5leHRVcmw6IEJvb2xlYW4obmV4dFVybCksXG4gICAgICAgICAgICAgIGNhbm9uaWNhbFVybDogbXV0YWJsZS5jYW5vbmljYWxVcmwgfHwgc3RhdGUuY2Fub25pY2FsVXJsLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBtdXRhYmxlLnBhdGNoZWRUcmVlID0gbmV3VHJlZVxuICAgICAgICBjdXJyZW50VHJlZSA9IG5ld1RyZWVcbiAgICAgIH1cblxuICAgICAgaWYgKHJlZGlyZWN0TG9jYXRpb24gJiYgcmVkaXJlY3RIcmVmKSB7XG4gICAgICAgIGlmICghcHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFICYmICFhY3Rpb25SZXZhbGlkYXRlZCkge1xuICAgICAgICAgIC8vIEJlY2F1c2UgdGhlIFJlZGlyZWN0Qm91bmRhcnkgd2lsbCB0cmlnZ2VyIGEgbmF2aWdhdGlvbiwgd2UgbmVlZCB0byBzZWVkIHRoZSBwcmVmZXRjaCBjYWNoZVxuICAgICAgICAgIC8vIHdpdGggdGhlIEZsaWdodERhdGEgdGhhdCB3ZSBnb3QgZnJvbSB0aGUgc2VydmVyIGFjdGlvbiBmb3IgdGhlIHRhcmdldCBwYWdlLCBzbyB0aGF0IGl0J3NcbiAgICAgICAgICAvLyBhdmFpbGFibGUgd2hlbiB0aGUgcGFnZSBpcyBuYXZpZ2F0ZWQgdG8gYW5kIGRvZXNuJ3QgbmVlZCB0byBiZSByZS1mZXRjaGVkLlxuICAgICAgICAgIC8vIFdlIG9ubHkgZG8gdGhpcyBpZiB0aGUgc2VydmVyIGFjdGlvbiBkaWRuJ3QgcmV2YWxpZGF0ZSBhbnkgZGF0YSwgYXMgaW4gdGhhdCBjYXNlIHRoZVxuICAgICAgICAgIC8vIGNsaWVudCBjYWNoZSB3aWxsIGJlIGNsZWFyZWQgYW5kIHRoZSBkYXRhIHdpbGwgYmUgcmUtZmV0Y2hlZCBhbnl3YXkuXG4gICAgICAgICAgLy8gTk9URTogV2UgZG9uJ3QgZG8gdGhpcyBpbiB0aGUgU2VnbWVudCBDYWNoZSBpbXBsZW1lbnRhdGlvbi5cbiAgICAgICAgICAvLyBEeW5hbWljIGRhdGEgc2hvdWxkIG5ldmVyIGJlIHBsYWNlZCBpbnRvIHRoZSBjYWNoZSwgdW5sZXNzIGl0J3NcbiAgICAgICAgICAvLyBcImNvbnZlcnRlZFwiIHRvIHN0YXRpYyBkYXRhIHVzaW5nIDxMaW5rIHByZWZldGNoPXt0cnVlfT4uIFdoYXQgd2VcbiAgICAgICAgICAvLyBkbyBpbnN0ZWFkIGlzIHJlLXByZWZldGNoIGxpbmtzIGFuZCBmb3JtcyB3aGVuZXZlciB0aGUgY2FjaGUgaXNcbiAgICAgICAgICAvLyBpbnZhbGlkYXRlZC5cbiAgICAgICAgICBjcmVhdGVTZWVkZWRQcmVmZXRjaENhY2hlRW50cnkoe1xuICAgICAgICAgICAgdXJsOiByZWRpcmVjdExvY2F0aW9uLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBmbGlnaHREYXRhLFxuICAgICAgICAgICAgICBjYW5vbmljYWxVcmw6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgY291bGRCZUludGVyY2VwdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgcHJlcmVuZGVyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBwb3N0cG9uZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAvLyBUT0RPOiBXZSBzaG91bGQgYmUgYWJsZSB0byBzZXQgdGhpcyBpZiB0aGUgc2VydmVyIGFjdGlvblxuICAgICAgICAgICAgICAvLyByZXR1cm5lZCBhIGZ1bGx5IHN0YXRpYyByZXNwb25zZS5cbiAgICAgICAgICAgICAgc3RhbGVUaW1lOiAtMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0cmVlOiBzdGF0ZS50cmVlLFxuICAgICAgICAgICAgcHJlZmV0Y2hDYWNoZTogc3RhdGUucHJlZmV0Y2hDYWNoZSxcbiAgICAgICAgICAgIG5leHRVcmw6IHN0YXRlLm5leHRVcmwsXG4gICAgICAgICAgICBraW5kOiBpc1ByZXJlbmRlciA/IFByZWZldGNoS2luZC5GVUxMIDogUHJlZmV0Y2hLaW5kLkFVVE8sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBtdXRhYmxlLnByZWZldGNoQ2FjaGUgPSBzdGF0ZS5wcmVmZXRjaENhY2hlXG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgYWN0aW9uIHRyaWdnZXJlZCBhIHJlZGlyZWN0LCB0aGUgYWN0aW9uIHByb21pc2Ugd2lsbCBiZSByZWplY3RlZCB3aXRoXG4gICAgICAgIC8vIGEgcmVkaXJlY3Qgc28gdGhhdCBpdCdzIGhhbmRsZWQgYnkgUmVkaXJlY3RCb3VuZGFyeSBhcyB3ZSB3b24ndCBoYXZlIGEgdmFsaWRcbiAgICAgICAgLy8gYWN0aW9uIHJlc3VsdCB0byByZXNvbHZlIHRoZSBwcm9taXNlIHdpdGguIFRoaXMgd2lsbCBlZmZlY3RpdmVseSByZXNldCB0aGUgc3RhdGUgb2ZcbiAgICAgICAgLy8gdGhlIGNvbXBvbmVudCB0aGF0IGNhbGxlZCB0aGUgYWN0aW9uIGFzIHRoZSBlcnJvciBib3VuZGFyeSB3aWxsIHJlbW91bnQgdGhlIHRyZWUuXG4gICAgICAgIC8vIFRoZSBzdGF0dXMgY29kZSBkb2Vzbid0IG1hdHRlciBoZXJlIGFzIHRoZSBhY3Rpb24gaGFuZGxlciB3aWxsIGhhdmUgYWxyZWFkeSBzZW50XG4gICAgICAgIC8vIGEgcmVzcG9uc2Ugd2l0aCB0aGUgY29ycmVjdCBzdGF0dXMgY29kZS5cbiAgICAgICAgcmVqZWN0KFxuICAgICAgICAgIGdldFJlZGlyZWN0RXJyb3IoXG4gICAgICAgICAgICBoYXNCYXNlUGF0aChyZWRpcmVjdEhyZWYpXG4gICAgICAgICAgICAgID8gcmVtb3ZlQmFzZVBhdGgocmVkaXJlY3RIcmVmKVxuICAgICAgICAgICAgICA6IHJlZGlyZWN0SHJlZixcbiAgICAgICAgICAgIHJlZGlyZWN0VHlwZSB8fCBSZWRpcmVjdFR5cGUucHVzaFxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShhY3Rpb25SZXN1bHQpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKVxuICAgIH0sXG4gICAgKGU6IGFueSkgPT4ge1xuICAgICAgLy8gV2hlbiB0aGUgc2VydmVyIGFjdGlvbiBpcyByZWplY3RlZCB3ZSBkb24ndCB1cGRhdGUgdGhlIHN0YXRlIGFuZCBpbnN0ZWFkIGNhbGwgdGhlIHJlamVjdCBoYW5kbGVyIG9mIHRoZSBwcm9taXNlLlxuICAgICAgcmVqZWN0KGUpXG5cbiAgICAgIHJldHVybiBzdGF0ZVxuICAgIH1cbiAgKVxufVxuIl0sIm5hbWVzIjpbInNlcnZlckFjdGlvblJlZHVjZXIiLCJjcmVhdGVGcm9tRmV0Y2giLCJjcmVhdGVGcm9tRmV0Y2hCcm93c2VyIiwiZmV0Y2hTZXJ2ZXJBY3Rpb24iLCJzdGF0ZSIsIm5leHRVcmwiLCJhY3Rpb25JZCIsImFjdGlvbkFyZ3MiLCJ0ZW1wb3JhcnlSZWZlcmVuY2VzIiwiY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0IiwiaW5mbyIsImV4dHJhY3RJbmZvRnJvbVNlcnZlclJlZmVyZW5jZUlkIiwidXNlZEFyZ3MiLCJ0eXBlIiwib21pdFVudXNlZEFyZ3MiLCJib2R5IiwiZW5jb2RlUmVwbHkiLCJyZXMiLCJmZXRjaCIsImNhbm9uaWNhbFVybCIsIm1ldGhvZCIsImhlYWRlcnMiLCJBY2NlcHQiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsIkFDVElPTl9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUiIsInByZXBhcmVGbGlnaHRSb3V0ZXJTdGF0ZUZvclJlcXVlc3QiLCJ0cmVlIiwicHJvY2VzcyIsImVudiIsIk5FWFRfREVQTE9ZTUVOVF9JRCIsIk5FWFRfVVJMIiwidW5yZWNvZ25pemVkQWN0aW9uSGVhZGVyIiwiZ2V0IiwiTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUiIsIlVucmVjb2duaXplZEFjdGlvbkVycm9yIiwicmVkaXJlY3RIZWFkZXIiLCJsb2NhdGlvbiIsIl9yZWRpcmVjdFR5cGUiLCJzcGxpdCIsInJlZGlyZWN0VHlwZSIsIlJlZGlyZWN0VHlwZSIsInB1c2giLCJyZXBsYWNlIiwidW5kZWZpbmVkIiwiaXNQcmVyZW5kZXIiLCJORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIiLCJyZXZhbGlkYXRlZFBhcnRzIiwicmV2YWxpZGF0ZWRIZWFkZXIiLCJKU09OIiwicGFyc2UiLCJwYXRocyIsInRhZyIsImNvb2tpZSIsImUiLCJOT19SRVZBTElEQVRFRF9QQVJUUyIsInJlZGlyZWN0TG9jYXRpb24iLCJhc3NpZ25Mb2NhdGlvbiIsIlVSTCIsIndpbmRvdyIsImhyZWYiLCJjb250ZW50VHlwZSIsImlzUnNjUmVzcG9uc2UiLCJzdGFydHNXaXRoIiwibWVzc2FnZSIsInN0YXR1cyIsInRleHQiLCJFcnJvciIsImFjdGlvblJlc3VsdCIsImFjdGlvbkZsaWdodERhdGEiLCJyZXNwb25zZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2FsbFNlcnZlciIsImZpbmRTb3VyY2VNYXBVUkwiLCJhIiwibm9ybWFsaXplRmxpZ2h0RGF0YSIsImYiLCJhY3Rpb24iLCJyZWplY3QiLCJtdXRhYmxlIiwiY3VycmVudFRyZWUiLCJwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSIsImhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZSIsIm5hdmlnYXRlZEF0IiwiRGF0ZSIsIm5vdyIsInRoZW4iLCJmbGlnaHREYXRhIiwicmVkaXJlY3RIcmVmIiwicHVzaFJlZiIsInBlbmRpbmdQdXNoIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJoYW5kbGVFeHRlcm5hbFVybCIsImFjdGlvblJldmFsaWRhdGVkIiwibGVuZ3RoIiwibm9ybWFsaXplZEZsaWdodERhdGEiLCJ0cmVlUGF0Y2giLCJzZWVkRGF0YSIsImNhY2hlTm9kZVNlZWREYXRhIiwiaGVhZCIsImlzUm9vdFJlbmRlciIsImNvbnNvbGUiLCJsb2ciLCJuZXdUcmVlIiwiYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlIiwiaGFuZGxlU2VnbWVudE1pc21hdGNoIiwiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwicnNjIiwiY2FjaGUiLCJjcmVhdGVFbXB0eUNhY2hlTm9kZSIsInByZWZldGNoUnNjIiwibG9hZGluZyIsImZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIiwiX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFIiwicmV2YWxpZGF0ZUVudGlyZUNhY2hlIiwicHJlZmV0Y2hDYWNoZSIsIk1hcCIsInJlZnJlc2hJbmFjdGl2ZVBhcmFsbGVsU2VnbWVudHMiLCJ1cGRhdGVkVHJlZSIsInVwZGF0ZWRDYWNoZSIsImluY2x1ZGVOZXh0VXJsIiwiQm9vbGVhbiIsInBhdGNoZWRUcmVlIiwiY3JlYXRlU2VlZGVkUHJlZmV0Y2hDYWNoZUVudHJ5IiwidXJsIiwiZGF0YSIsImNvdWxkQmVJbnRlcmNlcHRlZCIsInByZXJlbmRlcmVkIiwicG9zdHBvbmVkIiwic3RhbGVUaW1lIiwia2luZCIsIlByZWZldGNoS2luZCIsIkZVTEwiLCJBVVRPIiwiZ2V0UmVkaXJlY3RFcnJvciIsImhhc0Jhc2VQYXRoIiwicmVtb3ZlQmFzZVBhdGgiLCJoYW5kbGVNdXRhYmxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js":
|
||
/*!**************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js ***!
|
||
\**************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"serverPatchReducer\", ({\n enumerable: true,\n get: function() {\n return serverPatchReducer;\n }\n}));\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _navigatereducer = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nconst _applyflightdata = __webpack_require__(/*! ../apply-flight-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js\");\nconst _handlemutable = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _approuter = __webpack_require__(/*! ../../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nfunction serverPatchReducer(state, action) {\n const { serverResponse: { flightData, canonicalUrl: canonicalUrlOverride }, navigatedAt } = 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, _navigatereducer.handleExternalUrl)(state, mutable, flightData, state.pushRef.pendingPush);\n }\n let currentTree = state.tree;\n let currentCache = state.cache;\n for (const normalizedFlightData of flightData){\n const { segmentPath: flightSegmentPath, tree: treePatch } = normalizedFlightData;\n const newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)([\n '',\n ...flightSegmentPath\n ], currentTree, treePatch, state.canonicalUrl);\n // `applyRouterStatePatchToTree` returns `null` when it determined that the server response is not applicable to the current tree.\n // In other words, the server responded with a tree that doesn't match what the client is currently rendering.\n // This can happen if the server patch action took longer to resolve than a subsequent navigation which would have changed the tree.\n // Previously this case triggered an MPA navigation but it should be safe to simply discard the server response rather than forcing\n // the entire page to reload.\n if (newTree === null) {\n return state;\n }\n if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, state.canonicalUrl, state.pushRef.pendingPush);\n }\n const canonicalUrlOverrideHref = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : undefined;\n if (canonicalUrlOverrideHref) {\n mutable.canonicalUrl = canonicalUrlOverrideHref;\n }\n const cache = (0, _approuter.createEmptyCacheNode)();\n (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData);\n mutable.patchedTree = newTree;\n mutable.cache = cache;\n currentCache = cache;\n currentTree = newTree;\n }\n return (0, _handlemutable.handleMutable)(state, mutable);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=server-patch-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3NlcnZlci1wYXRjaC1yZWR1Y2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBZWdCQTs7O2VBQUFBOzs7K0NBZmtCO3lEQUNVO3lEQUNBOzZDQU9WOzZDQUNGOzJDQUNGO3VDQUVPO0FBRTlCLFNBQVNBLG1CQUNkQyxLQUEyQixFQUMzQkMsTUFBeUI7SUFFekIsTUFBTSxFQUNKQyxnQkFBZ0IsRUFBRUMsVUFBVSxFQUFFQyxjQUFjQyxvQkFBb0IsRUFBRSxFQUNsRUMsV0FBVyxFQUNaLEdBQUdMO0lBRUosTUFBTU0sVUFBbUIsQ0FBQztJQUUxQkEsUUFBUUMsMEJBQTBCLEdBQUc7SUFFckMsNERBQTREO0lBQzVELElBQUksT0FBT0wsZUFBZSxVQUFVO1FBQ2xDLE9BQU9NLENBQUFBLEdBQUFBLGlCQUFBQSxpQkFBQUEsRUFDTFQsT0FDQU8sU0FDQUosWUFDQUgsTUFBTVUsT0FBTyxDQUFDQyxXQUFXO0lBRTdCO0lBRUEsSUFBSUMsY0FBY1osTUFBTWEsSUFBSTtJQUM1QixJQUFJQyxlQUFlZCxNQUFNZSxLQUFLO0lBRTlCLEtBQUssTUFBTUMsd0JBQXdCYixXQUFZO1FBQzdDLE1BQU0sRUFBRWMsYUFBYUMsaUJBQWlCLEVBQUVMLE1BQU1NLFNBQVMsRUFBRSxHQUN2REg7UUFFRixNQUFNSSxVQUFVQyxDQUFBQSxHQUFBQSw2QkFBQUEsMkJBQUFBLEVBQ2Q7WUFDQztlQUFPSDtTQUFrQixFQUMxQk4sYUFDQU8sV0FDQW5CLE1BQU1JLFlBQVk7UUFHcEIsa0lBQWtJO1FBQ2xJLDhHQUE4RztRQUM5RyxvSUFBb0k7UUFDcEksbUlBQW1JO1FBQ25JLDZCQUE2QjtRQUM3QixJQUFJZ0IsWUFBWSxNQUFNO1lBQ3BCLE9BQU9wQjtRQUNUO1FBRUEsSUFBSXNCLENBQUFBLEdBQUFBLDZCQUFBQSwyQkFBQUEsRUFBNEJWLGFBQWFRLFVBQVU7WUFDckQsT0FBT1gsQ0FBQUEsR0FBQUEsaUJBQUFBLGlCQUFBQSxFQUNMVCxPQUNBTyxTQUNBUCxNQUFNSSxZQUFZLEVBQ2xCSixNQUFNVSxPQUFPLENBQUNDLFdBQVc7UUFFN0I7UUFFQSxNQUFNWSwyQkFBMkJsQix1QkFDN0JtQixDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCbkIsd0JBQ2xCb0I7UUFFSixJQUFJRiwwQkFBMEI7WUFDNUJoQixRQUFRSCxZQUFZLEdBQUdtQjtRQUN6QjtRQUVBLE1BQU1SLFFBQW1CVyxDQUFBQSxHQUFBQSxXQUFBQSxvQkFBQUE7UUFDekJDLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQnJCLGFBQWFRLGNBQWNDLE9BQU9DO1FBRWxEVCxRQUFRcUIsV0FBVyxHQUFHUjtRQUN0QmIsUUFBUVEsS0FBSyxHQUFHQTtRQUVoQkQsZUFBZUM7UUFDZkgsY0FBY1E7SUFDaEI7SUFFQSxPQUFPUyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjN0IsT0FBT087QUFDOUIiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvc2VydmVyLXBhdGNoLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tICcuLi9jcmVhdGUtaHJlZi1mcm9tLXVybCdcbmltcG9ydCB7IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSB9IGZyb20gJy4uL2FwcGx5LXJvdXRlci1zdGF0ZS1wYXRjaC10by10cmVlJ1xuaW1wb3J0IHsgaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IH0gZnJvbSAnLi4vaXMtbmF2aWdhdGluZy10by1uZXctcm9vdC1sYXlvdXQnXG5pbXBvcnQgdHlwZSB7XG4gIFNlcnZlclBhdGNoQWN0aW9uLFxuICBSZWR1Y2VyU3RhdGUsXG4gIFJlYWRvbmx5UmVkdWNlclN0YXRlLFxuICBNdXRhYmxlLFxufSBmcm9tICcuLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IGhhbmRsZUV4dGVybmFsVXJsIH0gZnJvbSAnLi9uYXZpZ2F0ZS1yZWR1Y2VyJ1xuaW1wb3J0IHsgYXBwbHlGbGlnaHREYXRhIH0gZnJvbSAnLi4vYXBwbHktZmxpZ2h0LWRhdGEnXG5pbXBvcnQgeyBoYW5kbGVNdXRhYmxlIH0gZnJvbSAnLi4vaGFuZGxlLW11dGFibGUnXG5pbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgY3JlYXRlRW1wdHlDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi9hcHAtcm91dGVyJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2VydmVyUGF0Y2hSZWR1Y2VyKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIGFjdGlvbjogU2VydmVyUGF0Y2hBY3Rpb25cbik6IFJlZHVjZXJTdGF0ZSB7XG4gIGNvbnN0IHtcbiAgICBzZXJ2ZXJSZXNwb25zZTogeyBmbGlnaHREYXRhLCBjYW5vbmljYWxVcmw6IGNhbm9uaWNhbFVybE92ZXJyaWRlIH0sXG4gICAgbmF2aWdhdGVkQXQsXG4gIH0gPSBhY3Rpb25cblxuICBjb25zdCBtdXRhYmxlOiBNdXRhYmxlID0ge31cblxuICBtdXRhYmxlLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlID0gZmFsc2VcblxuICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5hdmlnYXRpbmcgdG8gcGFnZSBpbiBgcGFnZXNgIGZyb20gYGFwcGBcbiAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChcbiAgICAgIHN0YXRlLFxuICAgICAgbXV0YWJsZSxcbiAgICAgIGZsaWdodERhdGEsXG4gICAgICBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoXG4gICAgKVxuICB9XG5cbiAgbGV0IGN1cnJlbnRUcmVlID0gc3RhdGUudHJlZVxuICBsZXQgY3VycmVudENhY2hlID0gc3RhdGUuY2FjaGVcblxuICBmb3IgKGNvbnN0IG5vcm1hbGl6ZWRGbGlnaHREYXRhIG9mIGZsaWdodERhdGEpIHtcbiAgICBjb25zdCB7IHNlZ21lbnRQYXRoOiBmbGlnaHRTZWdtZW50UGF0aCwgdHJlZTogdHJlZVBhdGNoIH0gPVxuICAgICAgbm9ybWFsaXplZEZsaWdodERhdGFcblxuICAgIGNvbnN0IG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gICAgICAvLyBUT0RPLUFQUDogcmVtb3ZlICcnXG4gICAgICBbJycsIC4uLmZsaWdodFNlZ21lbnRQYXRoXSxcbiAgICAgIGN1cnJlbnRUcmVlLFxuICAgICAgdHJlZVBhdGNoLFxuICAgICAgc3RhdGUuY2Fub25pY2FsVXJsXG4gICAgKVxuXG4gICAgLy8gYGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZWAgcmV0dXJucyBgbnVsbGAgd2hlbiBpdCBkZXRlcm1pbmVkIHRoYXQgdGhlIHNlcnZlciByZXNwb25zZSBpcyBub3QgYXBwbGljYWJsZSB0byB0aGUgY3VycmVudCB0cmVlLlxuICAgIC8vIEluIG90aGVyIHdvcmRzLCB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIGEgdHJlZSB0aGF0IGRvZXNuJ3QgbWF0Y2ggd2hhdCB0aGUgY2xpZW50IGlzIGN1cnJlbnRseSByZW5kZXJpbmcuXG4gICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBzZXJ2ZXIgcGF0Y2ggYWN0aW9uIHRvb2sgbG9uZ2VyIHRvIHJlc29sdmUgdGhhbiBhIHN1YnNlcXVlbnQgbmF2aWdhdGlvbiB3aGljaCB3b3VsZCBoYXZlIGNoYW5nZWQgdGhlIHRyZWUuXG4gICAgLy8gUHJldmlvdXNseSB0aGlzIGNhc2UgdHJpZ2dlcmVkIGFuIE1QQSBuYXZpZ2F0aW9uIGJ1dCBpdCBzaG91bGQgYmUgc2FmZSB0byBzaW1wbHkgZGlzY2FyZCB0aGUgc2VydmVyIHJlc3BvbnNlIHJhdGhlciB0aGFuIGZvcmNpbmdcbiAgICAvLyB0aGUgZW50aXJlIHBhZ2UgdG8gcmVsb2FkLlxuICAgIGlmIChuZXdUcmVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gc3RhdGVcbiAgICB9XG5cbiAgICBpZiAoaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0KGN1cnJlbnRUcmVlLCBuZXdUcmVlKSkge1xuICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKFxuICAgICAgICBzdGF0ZSxcbiAgICAgICAgbXV0YWJsZSxcbiAgICAgICAgc3RhdGUuY2Fub25pY2FsVXJsLFxuICAgICAgICBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmID0gY2Fub25pY2FsVXJsT3ZlcnJpZGVcbiAgICAgID8gY3JlYXRlSHJlZkZyb21VcmwoY2Fub25pY2FsVXJsT3ZlcnJpZGUpXG4gICAgICA6IHVuZGVmaW5lZFxuXG4gICAgaWYgKGNhbm9uaWNhbFVybE92ZXJyaWRlSHJlZikge1xuICAgICAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSBjYW5vbmljYWxVcmxPdmVycmlkZUhyZWZcbiAgICB9XG5cbiAgICBjb25zdCBjYWNoZTogQ2FjaGVOb2RlID0gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKVxuICAgIGFwcGx5RmxpZ2h0RGF0YShuYXZpZ2F0ZWRBdCwgY3VycmVudENhY2hlLCBjYWNoZSwgbm9ybWFsaXplZEZsaWdodERhdGEpXG5cbiAgICBtdXRhYmxlLnBhdGNoZWRUcmVlID0gbmV3VHJlZVxuICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZVxuXG4gICAgY3VycmVudENhY2hlID0gY2FjaGVcbiAgICBjdXJyZW50VHJlZSA9IG5ld1RyZWVcbiAgfVxuXG4gIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKVxufVxuIl0sIm5hbWVzIjpbInNlcnZlclBhdGNoUmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwic2VydmVyUmVzcG9uc2UiLCJmbGlnaHREYXRhIiwiY2Fub25pY2FsVXJsIiwiY2Fub25pY2FsVXJsT3ZlcnJpZGUiLCJuYXZpZ2F0ZWRBdCIsIm11dGFibGUiLCJwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSIsImhhbmRsZUV4dGVybmFsVXJsIiwicHVzaFJlZiIsInBlbmRpbmdQdXNoIiwiY3VycmVudFRyZWUiLCJ0cmVlIiwiY3VycmVudENhY2hlIiwiY2FjaGUiLCJub3JtYWxpemVkRmxpZ2h0RGF0YSIsInNlZ21lbnRQYXRoIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJ0cmVlUGF0Y2giLCJuZXdUcmVlIiwiYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlIiwiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwiY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJ1bmRlZmluZWQiLCJjcmVhdGVFbXB0eUNhY2hlTm9kZSIsImFwcGx5RmxpZ2h0RGF0YSIsInBhdGNoZWRUcmVlIiwiaGFuZGxlTXV0YWJsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js":
|
||
/*!*******************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js ***!
|
||
\*******************************************************************************************************/
|
||
/***/ ((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 addRefreshMarkerToActiveParallelSegments: function() {\n return addRefreshMarkerToActiveParallelSegments;\n },\n refreshInactiveParallelSegments: function() {\n return refreshInactiveParallelSegments;\n }\n});\nconst _applyflightdata = __webpack_require__(/*! ./apply-flight-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js\");\nconst _fetchserverresponse = __webpack_require__(/*! ./fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nasync function refreshInactiveParallelSegments(options) {\n const fetchedSegments = new Set();\n await refreshInactiveParallelSegmentsImpl({\n ...options,\n rootTree: options.updatedTree,\n fetchedSegments\n });\n}\nasync function refreshInactiveParallelSegmentsImpl(param) {\n let { navigatedAt, state, updatedTree, updatedCache, includeNextUrl, fetchedSegments, rootTree = updatedTree, canonicalUrl } = param;\n const [, parallelRoutes, refetchPath, refetchMarker] = updatedTree;\n const fetchPromises = [];\n if (refetchPath && refetchPath !== canonicalUrl && refetchMarker === 'refresh' && // it's possible for the tree to contain multiple segments that contain data at the same URL\n // we keep track of them so we can dedupe the requests\n !fetchedSegments.has(refetchPath)) {\n fetchedSegments.add(refetchPath) // Mark this URL as fetched\n ;\n // Eagerly kick off the fetch for the refetch path & the parallel routes. This should be fine to do as they each operate\n // independently on their own cache nodes, and `applyFlightData` will copy anything it doesn't care about from the existing cache.\n const fetchPromise = (0, _fetchserverresponse.fetchServerResponse)(new URL(refetchPath, location.origin), {\n // refetch from the root of the updated tree, otherwise it will be scoped to the current segment\n // and might not contain the data we need to patch in interception route data (such as dynamic params from a previous segment)\n flightRouterState: [\n rootTree[0],\n rootTree[1],\n rootTree[2],\n 'refetch'\n ],\n nextUrl: includeNextUrl ? state.nextUrl : null\n }).then((param)=>{\n let { flightData } = param;\n if (typeof flightData !== 'string') {\n for (const flightDataPath of flightData){\n // we only pass the new cache as this function is called after clearing the router cache\n // and filling in the new page data from the server. Meaning the existing cache is actually the cache that's\n // just been created & has been written to, but hasn't been \"committed\" yet.\n (0, _applyflightdata.applyFlightData)(navigatedAt, updatedCache, updatedCache, flightDataPath);\n }\n } else {\n // When flightData is a string, it suggests that the server response should have triggered an MPA navigation\n // I'm not 100% sure of this decision, but it seems unlikely that we'd want to introduce a redirect side effect\n // when refreshing on-screen data, so handling this has been ommitted.\n }\n });\n fetchPromises.push(fetchPromise);\n }\n for(const key in parallelRoutes){\n const parallelFetchPromise = refreshInactiveParallelSegmentsImpl({\n navigatedAt,\n state,\n updatedTree: parallelRoutes[key],\n updatedCache,\n includeNextUrl,\n fetchedSegments,\n rootTree,\n canonicalUrl\n });\n fetchPromises.push(parallelFetchPromise);\n }\n await Promise.all(fetchPromises);\n}\nfunction addRefreshMarkerToActiveParallelSegments(tree, path) {\n const [segment, parallelRoutes, , refetchMarker] = tree;\n // a page segment might also contain concatenated search params, so we do a partial match on the key\n if (segment.includes(_segment.PAGE_SEGMENT_KEY) && refetchMarker !== 'refresh') {\n tree[2] = path;\n tree[3] = 'refresh';\n }\n for(const key in parallelRoutes){\n addRefreshMarkerToActiveParallelSegments(parallelRoutes[key], path);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=refetch-inactive-parallel-segments.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZmV0Y2gtaW5hY3RpdmUtcGFyYWxsZWwtc2VnbWVudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBeUhnQkEsd0NBQXdDO2VBQXhDQTs7SUE5Rk1DLCtCQUErQjtlQUEvQkE7Ozs2Q0F4QlU7aURBQ0k7cUNBQ0g7QUFzQjFCLGVBQWVBLGdDQUNwQkMsT0FBd0M7SUFFeEMsTUFBTUMsa0JBQWtCLElBQUlDO0lBQzVCLE1BQU1DLG9DQUFvQztRQUN4QyxHQUFHSCxPQUFPO1FBQ1ZJLFVBQVVKLFFBQVFLLFdBQVc7UUFDN0JKO0lBQ0Y7QUFDRjtBQUVBLGVBQWVFLG9DQUFvQyxLQVlsRDtJQVprRCxNQUNqREcsV0FBVyxFQUNYQyxLQUFLLEVBQ0xGLFdBQVcsRUFDWEcsWUFBWSxFQUNaQyxjQUFjLEVBQ2RSLGVBQWUsRUFDZkcsV0FBV0MsV0FBVyxFQUN0QkssWUFBWSxFQUliLEdBWmtEO0lBYWpELE1BQU0sR0FBR0MsZ0JBQWdCQyxhQUFhQyxjQUFjLEdBQUdSO0lBQ3ZELE1BQU1TLGdCQUFnQixFQUFFO0lBRXhCLElBQ0VGLGVBQ0FBLGdCQUFnQkYsZ0JBQ2hCRyxrQkFBa0IsYUFDbEIsNEZBQTRGO0lBQzVGLHNEQUFzRDtJQUN0RCxDQUFDWixnQkFBZ0JjLEdBQUcsQ0FBQ0gsY0FDckI7UUFDQVgsZ0JBQWdCZSxHQUFHLENBQUNKLGFBQWEsMkJBQTJCOztRQUU1RCx3SEFBd0g7UUFDeEgsa0lBQWtJO1FBQ2xJLE1BQU1LLGVBQWVDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFDbkIsSUFBSUMsSUFBSVAsYUFBYVEsU0FBU0MsTUFBTSxHQUNwQztZQUNFLGdHQUFnRztZQUNoRyw4SEFBOEg7WUFDOUhDLG1CQUFtQjtnQkFBQ2xCLFFBQVEsQ0FBQyxFQUFFO2dCQUFFQSxRQUFRLENBQUMsRUFBRTtnQkFBRUEsUUFBUSxDQUFDLEVBQUU7Z0JBQUU7YUFBVTtZQUNyRW1CLFNBQVNkLGlCQUFpQkYsTUFBTWdCLE9BQU8sR0FBRztRQUM1QyxHQUNBQyxJQUFJLENBQUM7Z0JBQUMsRUFBRUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksT0FBT0EsZUFBZSxVQUFVO2dCQUNsQyxLQUFLLE1BQU1DLGtCQUFrQkQsV0FBWTtvQkFDdkMsd0ZBQXdGO29CQUN4Riw0R0FBNEc7b0JBQzVHLDRFQUE0RTtvQkFDNUVFLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUNFckIsYUFDQUUsY0FDQUEsY0FDQWtCO2dCQUVKO1lBQ0YsT0FBTztZQUNMLDRHQUE0RztZQUM1RywrR0FBK0c7WUFDL0csc0VBQXNFO1lBQ3hFO1FBQ0Y7UUFFQVosY0FBY2MsSUFBSSxDQUFDWDtJQUNyQjtJQUVBLElBQUssTUFBTVksT0FBT2xCLGVBQWdCO1FBQ2hDLE1BQU1tQix1QkFBdUIzQixvQ0FBb0M7WUFDL0RHO1lBQ0FDO1lBQ0FGLGFBQWFNLGNBQWMsQ0FBQ2tCLElBQUk7WUFDaENyQjtZQUNBQztZQUNBUjtZQUNBRztZQUNBTTtRQUNGO1FBRUFJLGNBQWNjLElBQUksQ0FBQ0U7SUFDckI7SUFFQSxNQUFNQyxRQUFRQyxHQUFHLENBQUNsQjtBQUNwQjtBQVFPLFNBQVNoQix5Q0FDZG1DLElBQXVCLEVBQ3ZCQyxJQUFZO0lBRVosTUFBTSxDQUFDQyxTQUFTeEIsa0JBQWtCRSxjQUFjLEdBQUdvQjtJQUNuRCxvR0FBb0c7SUFDcEcsSUFBSUUsUUFBUUMsUUFBUSxDQUFDQyxTQUFBQSxnQkFBZ0IsS0FBS3hCLGtCQUFrQixXQUFXO1FBQ3JFb0IsSUFBSSxDQUFDLEVBQUUsR0FBR0M7UUFDVkQsSUFBSSxDQUFDLEVBQUUsR0FBRztJQUNaO0lBRUEsSUFBSyxNQUFNSixPQUFPbEIsZUFBZ0I7UUFDaENiLHlDQUF5Q2EsY0FBYyxDQUFDa0IsSUFBSSxFQUFFSztJQUNoRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZmV0Y2gtaW5hY3RpdmUtcGFyYWxsZWwtc2VnbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHsgQXBwUm91dGVyU3RhdGUgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgYXBwbHlGbGlnaHREYXRhIH0gZnJvbSAnLi9hcHBseS1mbGlnaHQtZGF0YSdcbmltcG9ydCB7IGZldGNoU2VydmVyUmVzcG9uc2UgfSBmcm9tICcuL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcbmltcG9ydCB7IFBBR0VfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5cbmludGVyZmFjZSBSZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzIHtcbiAgbmF2aWdhdGVkQXQ6IG51bWJlclxuICBzdGF0ZTogQXBwUm91dGVyU3RhdGVcbiAgdXBkYXRlZFRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIHVwZGF0ZWRDYWNoZTogQ2FjaGVOb2RlXG4gIGluY2x1ZGVOZXh0VXJsOiBib29sZWFuXG4gIGNhbm9uaWNhbFVybDogc3RyaW5nXG59XG5cbi8qKlxuICogUmVmcmVzaGVzIGluYWN0aXZlIHNlZ21lbnRzIHRoYXQgYXJlIHN0aWxsIGluIHRoZSBjdXJyZW50IEZsaWdodFJvdXRlclN0YXRlLlxuICogQSBzZWdtZW50IGlzIGNvbnNpZGVyZWQgXCJpbmFjdGl2ZVwiIHdoZW4gdGhlIHNlcnZlciByZXNwb25zZSBpbmRpY2F0ZXMgaXQgZGlkbid0IG1hdGNoIHRvIGEgcGFnZSBjb21wb25lbnQuXG4gKiBUaGlzIGhhcHBlbnMgZHVyaW5nIGEgc29mdC1uYXZpZ2F0aW9uLCB3aGVyZSB0aGUgc2VydmVyIHdpbGwgd2FudCB0byBwYXRjaCBpbiB0aGUgc2VnbWVudFxuICogd2l0aCB0aGUgXCJkZWZhdWx0XCIgY29tcG9uZW50LCBidXQgd2UgZXhwbGljaXRseSBpZ25vcmUgdGhlIHNlcnZlciBpbiB0aGlzIGNhc2VcbiAqIGFuZCBrZWVwIHRoZSBleGlzdGluZyBzdGF0ZSBmb3IgdGhhdCBzZWdtZW50LiBOZXcgZGF0YSBmb3IgaW5hY3RpdmUgc2VnbWVudHMgYXJlIGluaGVyZW50bHlcbiAqIG5vdCBwYXJ0IG9mIHRoZSBzZXJ2ZXIgcmVzcG9uc2Ugd2hlbiB3ZSBwYXRjaCB0aGUgdHJlZSwgYmVjYXVzZSB0aGV5IHdlcmUgYXNzb2NpYXRlZCB3aXRoIGEgcmVzcG9uc2VcbiAqIGZyb20gYW4gZWFybGllciBuYXZpZ2F0aW9uL3JlcXVlc3QuIEZvciBlYWNoIHNlZ21lbnQsIG9uY2UgaXQgYmVjb21lcyBcImFjdGl2ZVwiLCB3ZSBlbmNvZGUgdGhlIFVSTCB0aGF0IHByb3ZpZGVkXG4gKiB0aGUgZGF0YSBmb3IgaXQuIFRoaXMgZnVuY3Rpb24gdHJhdmVyc2VzIHBhcmFsbGVsIHJvdXRlcyBsb29raW5nIGZvciB0aGVzZSBtYXJrZXJzIHNvIHRoYXQgaXQgY2FuIHJlLWZldGNoXG4gKiBhbmQgcGF0Y2ggdGhlIG5ldyBkYXRhIGludG8gdGhlIHRyZWUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzKFxuICBvcHRpb25zOiBSZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzXG4pIHtcbiAgY29uc3QgZmV0Y2hlZFNlZ21lbnRzID0gbmV3IFNldDxzdHJpbmc+KClcbiAgYXdhaXQgcmVmcmVzaEluYWN0aXZlUGFyYWxsZWxTZWdtZW50c0ltcGwoe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgcm9vdFRyZWU6IG9wdGlvbnMudXBkYXRlZFRyZWUsXG4gICAgZmV0Y2hlZFNlZ21lbnRzLFxuICB9KVxufVxuXG5hc3luYyBmdW5jdGlvbiByZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzSW1wbCh7XG4gIG5hdmlnYXRlZEF0LFxuICBzdGF0ZSxcbiAgdXBkYXRlZFRyZWUsXG4gIHVwZGF0ZWRDYWNoZSxcbiAgaW5jbHVkZU5leHRVcmwsXG4gIGZldGNoZWRTZWdtZW50cyxcbiAgcm9vdFRyZWUgPSB1cGRhdGVkVHJlZSxcbiAgY2Fub25pY2FsVXJsLFxufTogUmVmcmVzaEluYWN0aXZlUGFyYWxsZWxTZWdtZW50cyAmIHtcbiAgZmV0Y2hlZFNlZ21lbnRzOiBTZXQ8c3RyaW5nPlxuICByb290VHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbn0pIHtcbiAgY29uc3QgWywgcGFyYWxsZWxSb3V0ZXMsIHJlZmV0Y2hQYXRoLCByZWZldGNoTWFya2VyXSA9IHVwZGF0ZWRUcmVlXG4gIGNvbnN0IGZldGNoUHJvbWlzZXMgPSBbXVxuXG4gIGlmIChcbiAgICByZWZldGNoUGF0aCAmJlxuICAgIHJlZmV0Y2hQYXRoICE9PSBjYW5vbmljYWxVcmwgJiZcbiAgICByZWZldGNoTWFya2VyID09PSAncmVmcmVzaCcgJiZcbiAgICAvLyBpdCdzIHBvc3NpYmxlIGZvciB0aGUgdHJlZSB0byBjb250YWluIG11bHRpcGxlIHNlZ21lbnRzIHRoYXQgY29udGFpbiBkYXRhIGF0IHRoZSBzYW1lIFVSTFxuICAgIC8vIHdlIGtlZXAgdHJhY2sgb2YgdGhlbSBzbyB3ZSBjYW4gZGVkdXBlIHRoZSByZXF1ZXN0c1xuICAgICFmZXRjaGVkU2VnbWVudHMuaGFzKHJlZmV0Y2hQYXRoKVxuICApIHtcbiAgICBmZXRjaGVkU2VnbWVudHMuYWRkKHJlZmV0Y2hQYXRoKSAvLyBNYXJrIHRoaXMgVVJMIGFzIGZldGNoZWRcblxuICAgIC8vIEVhZ2VybHkga2ljayBvZmYgdGhlIGZldGNoIGZvciB0aGUgcmVmZXRjaCBwYXRoICYgdGhlIHBhcmFsbGVsIHJvdXRlcy4gVGhpcyBzaG91bGQgYmUgZmluZSB0byBkbyBhcyB0aGV5IGVhY2ggb3BlcmF0ZVxuICAgIC8vIGluZGVwZW5kZW50bHkgb24gdGhlaXIgb3duIGNhY2hlIG5vZGVzLCBhbmQgYGFwcGx5RmxpZ2h0RGF0YWAgd2lsbCBjb3B5IGFueXRoaW5nIGl0IGRvZXNuJ3QgY2FyZSBhYm91dCBmcm9tIHRoZSBleGlzdGluZyBjYWNoZS5cbiAgICBjb25zdCBmZXRjaFByb21pc2UgPSBmZXRjaFNlcnZlclJlc3BvbnNlKFxuICAgICAgbmV3IFVSTChyZWZldGNoUGF0aCwgbG9jYXRpb24ub3JpZ2luKSxcbiAgICAgIHtcbiAgICAgICAgLy8gcmVmZXRjaCBmcm9tIHRoZSByb290IG9mIHRoZSB1cGRhdGVkIHRyZWUsIG90aGVyd2lzZSBpdCB3aWxsIGJlIHNjb3BlZCB0byB0aGUgY3VycmVudCBzZWdtZW50XG4gICAgICAgIC8vIGFuZCBtaWdodCBub3QgY29udGFpbiB0aGUgZGF0YSB3ZSBuZWVkIHRvIHBhdGNoIGluIGludGVyY2VwdGlvbiByb3V0ZSBkYXRhIChzdWNoIGFzIGR5bmFtaWMgcGFyYW1zIGZyb20gYSBwcmV2aW91cyBzZWdtZW50KVxuICAgICAgICBmbGlnaHRSb3V0ZXJTdGF0ZTogW3Jvb3RUcmVlWzBdLCByb290VHJlZVsxXSwgcm9vdFRyZWVbMl0sICdyZWZldGNoJ10sXG4gICAgICAgIG5leHRVcmw6IGluY2x1ZGVOZXh0VXJsID8gc3RhdGUubmV4dFVybCA6IG51bGwsXG4gICAgICB9XG4gICAgKS50aGVuKCh7IGZsaWdodERhdGEgfSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBmbGlnaHREYXRhICE9PSAnc3RyaW5nJykge1xuICAgICAgICBmb3IgKGNvbnN0IGZsaWdodERhdGFQYXRoIG9mIGZsaWdodERhdGEpIHtcbiAgICAgICAgICAvLyB3ZSBvbmx5IHBhc3MgdGhlIG5ldyBjYWNoZSBhcyB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhZnRlciBjbGVhcmluZyB0aGUgcm91dGVyIGNhY2hlXG4gICAgICAgICAgLy8gYW5kIGZpbGxpbmcgaW4gdGhlIG5ldyBwYWdlIGRhdGEgZnJvbSB0aGUgc2VydmVyLiBNZWFuaW5nIHRoZSBleGlzdGluZyBjYWNoZSBpcyBhY3R1YWxseSB0aGUgY2FjaGUgdGhhdCdzXG4gICAgICAgICAgLy8ganVzdCBiZWVuIGNyZWF0ZWQgJiBoYXMgYmVlbiB3cml0dGVuIHRvLCBidXQgaGFzbid0IGJlZW4gXCJjb21taXR0ZWRcIiB5ZXQuXG4gICAgICAgICAgYXBwbHlGbGlnaHREYXRhKFxuICAgICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgICB1cGRhdGVkQ2FjaGUsXG4gICAgICAgICAgICB1cGRhdGVkQ2FjaGUsXG4gICAgICAgICAgICBmbGlnaHREYXRhUGF0aFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2hlbiBmbGlnaHREYXRhIGlzIGEgc3RyaW5nLCBpdCBzdWdnZXN0cyB0aGF0IHRoZSBzZXJ2ZXIgcmVzcG9uc2Ugc2hvdWxkIGhhdmUgdHJpZ2dlcmVkIGFuIE1QQSBuYXZpZ2F0aW9uXG4gICAgICAgIC8vIEknbSBub3QgMTAwJSBzdXJlIG9mIHRoaXMgZGVjaXNpb24sIGJ1dCBpdCBzZWVtcyB1bmxpa2VseSB0aGF0IHdlJ2Qgd2FudCB0byBpbnRyb2R1Y2UgYSByZWRpcmVjdCBzaWRlIGVmZmVjdFxuICAgICAgICAvLyB3aGVuIHJlZnJlc2hpbmcgb24tc2NyZWVuIGRhdGEsIHNvIGhhbmRsaW5nIHRoaXMgaGFzIGJlZW4gb21taXR0ZWQuXG4gICAgICB9XG4gICAgfSlcblxuICAgIGZldGNoUHJvbWlzZXMucHVzaChmZXRjaFByb21pc2UpXG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBpbiBwYXJhbGxlbFJvdXRlcykge1xuICAgIGNvbnN0IHBhcmFsbGVsRmV0Y2hQcm9taXNlID0gcmVmcmVzaEluYWN0aXZlUGFyYWxsZWxTZWdtZW50c0ltcGwoe1xuICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICBzdGF0ZSxcbiAgICAgIHVwZGF0ZWRUcmVlOiBwYXJhbGxlbFJvdXRlc1trZXldLFxuICAgICAgdXBkYXRlZENhY2hlLFxuICAgICAgaW5jbHVkZU5leHRVcmwsXG4gICAgICBmZXRjaGVkU2VnbWVudHMsXG4gICAgICByb290VHJlZSxcbiAgICAgIGNhbm9uaWNhbFVybCxcbiAgICB9KVxuXG4gICAgZmV0Y2hQcm9taXNlcy5wdXNoKHBhcmFsbGVsRmV0Y2hQcm9taXNlKVxuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoZmV0Y2hQcm9taXNlcylcbn1cblxuLyoqXG4gKiBXYWxrcyB0aGUgY3VycmVudCBwYXJhbGxlbCBzZWdtZW50cyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgXCJhY3RpdmVcIi5cbiAqIEFuIGFjdGl2ZSBwYXJhbGxlbCByb3V0ZSB3aWxsIGhhdmUgYSBgX19QQUdFX19gIHNlZ21lbnQgaW4gdGhlIEZsaWdodFJvdXRlclN0YXRlLlxuICogQXMgb3Bwb3NlZCB0byBhIGBfX0RFRkFVTFRfX2Agc2VnbWVudCwgd2hpY2ggbWVhbnMgdGhlcmUgd2FzIG5vIG1hdGNoIGZvciB0aGF0IHBhcmFsbGVsIHJvdXRlLlxuICogV2UgYWRkIGEgc3BlY2lhbCBtYXJrZXIgaGVyZSBzbyB0aGF0IHdlIGtub3cgaG93IHRvIHJlZnJlc2ggaXRzIGRhdGEgd2hlbiB0aGUgcm91dGVyIGlzIHJldmFsaWRhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkUmVmcmVzaE1hcmtlclRvQWN0aXZlUGFyYWxsZWxTZWdtZW50cyhcbiAgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHBhdGg6IHN0cmluZ1xuKSB7XG4gIGNvbnN0IFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlcywgLCByZWZldGNoTWFya2VyXSA9IHRyZWVcbiAgLy8gYSBwYWdlIHNlZ21lbnQgbWlnaHQgYWxzbyBjb250YWluIGNvbmNhdGVuYXRlZCBzZWFyY2ggcGFyYW1zLCBzbyB3ZSBkbyBhIHBhcnRpYWwgbWF0Y2ggb24gdGhlIGtleVxuICBpZiAoc2VnbWVudC5pbmNsdWRlcyhQQUdFX1NFR01FTlRfS0VZKSAmJiByZWZldGNoTWFya2VyICE9PSAncmVmcmVzaCcpIHtcbiAgICB0cmVlWzJdID0gcGF0aFxuICAgIHRyZWVbM10gPSAncmVmcmVzaCdcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IGluIHBhcmFsbGVsUm91dGVzKSB7XG4gICAgYWRkUmVmcmVzaE1hcmtlclRvQWN0aXZlUGFyYWxsZWxTZWdtZW50cyhwYXJhbGxlbFJvdXRlc1trZXldLCBwYXRoKVxuICB9XG59XG4iXSwibmFtZXMiOlsiYWRkUmVmcmVzaE1hcmtlclRvQWN0aXZlUGFyYWxsZWxTZWdtZW50cyIsInJlZnJlc2hJbmFjdGl2ZVBhcmFsbGVsU2VnbWVudHMiLCJvcHRpb25zIiwiZmV0Y2hlZFNlZ21lbnRzIiwiU2V0IiwicmVmcmVzaEluYWN0aXZlUGFyYWxsZWxTZWdtZW50c0ltcGwiLCJyb290VHJlZSIsInVwZGF0ZWRUcmVlIiwibmF2aWdhdGVkQXQiLCJzdGF0ZSIsInVwZGF0ZWRDYWNoZSIsImluY2x1ZGVOZXh0VXJsIiwiY2Fub25pY2FsVXJsIiwicGFyYWxsZWxSb3V0ZXMiLCJyZWZldGNoUGF0aCIsInJlZmV0Y2hNYXJrZXIiLCJmZXRjaFByb21pc2VzIiwiaGFzIiwiYWRkIiwiZmV0Y2hQcm9taXNlIiwiZmV0Y2hTZXJ2ZXJSZXNwb25zZSIsIlVSTCIsImxvY2F0aW9uIiwib3JpZ2luIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJuZXh0VXJsIiwidGhlbiIsImZsaWdodERhdGEiLCJmbGlnaHREYXRhUGF0aCIsImFwcGx5RmxpZ2h0RGF0YSIsInB1c2giLCJrZXkiLCJwYXJhbGxlbEZldGNoUHJvbWlzZSIsIlByb21pc2UiLCJhbGwiLCJ0cmVlIiwicGF0aCIsInNlZ21lbnQiLCJpbmNsdWRlcyIsIlBBR0VfU0VHTUVOVF9LRVkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 ACTION_HMR_REFRESH: function() {\n return ACTION_HMR_REFRESH;\n },\n ACTION_NAVIGATE: function() {\n return ACTION_NAVIGATE;\n },\n ACTION_PREFETCH: function() {\n return ACTION_PREFETCH;\n },\n ACTION_REFRESH: function() {\n return ACTION_REFRESH;\n },\n ACTION_RESTORE: function() {\n return ACTION_RESTORE;\n },\n ACTION_SERVER_ACTION: function() {\n return ACTION_SERVER_ACTION;\n },\n ACTION_SERVER_PATCH: function() {\n return ACTION_SERVER_PATCH;\n },\n PrefetchCacheEntryStatus: function() {\n return PrefetchCacheEntryStatus;\n },\n PrefetchKind: function() {\n return PrefetchKind;\n }\n});\nconst ACTION_REFRESH = 'refresh';\nconst ACTION_NAVIGATE = 'navigate';\nconst ACTION_RESTORE = 'restore';\nconst ACTION_SERVER_PATCH = 'server-patch';\nconst ACTION_PREFETCH = 'prefetch';\nconst ACTION_HMR_REFRESH = 'hmr-refresh';\nconst ACTION_SERVER_ACTION = 'server-action';\nvar PrefetchKind = /*#__PURE__*/ function(PrefetchKind) {\n PrefetchKind[\"AUTO\"] = \"auto\";\n PrefetchKind[\"FULL\"] = \"full\";\n PrefetchKind[\"TEMPORARY\"] = \"temporary\";\n return PrefetchKind;\n}({});\nvar PrefetchCacheEntryStatus = /*#__PURE__*/ function(PrefetchCacheEntryStatus) {\n PrefetchCacheEntryStatus[\"fresh\"] = \"fresh\";\n PrefetchCacheEntryStatus[\"reusable\"] = \"reusable\";\n PrefetchCacheEntryStatus[\"expired\"] = \"expired\";\n PrefetchCacheEntryStatus[\"stale\"] = \"stale\";\n return PrefetchCacheEntryStatus;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=router-reducer-types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVlhQSxrQkFBa0I7ZUFBbEJBOztJQUpBQyxlQUFlO2VBQWZBOztJQUdBQyxlQUFlO2VBQWZBOztJQUpBQyxjQUFjO2VBQWRBOztJQUVBQyxjQUFjO2VBQWRBOztJQUlBQyxvQkFBb0I7ZUFBcEJBOztJQUhBQyxtQkFBbUI7ZUFBbkJBOztJQXlNREMsd0JBQXdCO2VBQXhCQTs7SUFoRUFDLFlBQVk7ZUFBWkE7OztBQTVJTCxNQUFNTCxpQkFBaUI7QUFDdkIsTUFBTUYsa0JBQWtCO0FBQ3hCLE1BQU1HLGlCQUFpQjtBQUN2QixNQUFNRSxzQkFBc0I7QUFDNUIsTUFBTUosa0JBQWtCO0FBQ3hCLE1BQU1GLHFCQUFxQjtBQUMzQixNQUFNSyx1QkFBdUI7QUFzSTdCLElBQUtHLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7O1dBQUFBOztBQWdFTCxJQUFLRCwyQkFBQUEsV0FBQUEsR0FBQUEsU0FBQUEsd0JBQUFBOzs7OztXQUFBQSIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yb3V0ZXItcmVkdWNlci10eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUge1xuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgRmxpZ2h0U2VnbWVudFBhdGgsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi9mZXRjaC1zZXJ2ZXItcmVzcG9uc2UnXG5cbmV4cG9ydCBjb25zdCBBQ1RJT05fUkVGUkVTSCA9ICdyZWZyZXNoJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9OQVZJR0FURSA9ICduYXZpZ2F0ZSdcbmV4cG9ydCBjb25zdCBBQ1RJT05fUkVTVE9SRSA9ICdyZXN0b3JlJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9TRVJWRVJfUEFUQ0ggPSAnc2VydmVyLXBhdGNoJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9QUkVGRVRDSCA9ICdwcmVmZXRjaCdcbmV4cG9ydCBjb25zdCBBQ1RJT05fSE1SX1JFRlJFU0ggPSAnaG1yLXJlZnJlc2gnXG5leHBvcnQgY29uc3QgQUNUSU9OX1NFUlZFUl9BQ1RJT04gPSAnc2VydmVyLWFjdGlvbidcblxuZXhwb3J0IHR5cGUgUm91dGVyQ2hhbmdlQnlTZXJ2ZXJSZXNwb25zZSA9ICh7XG4gIG5hdmlnYXRlZEF0LFxuICBwcmV2aW91c1RyZWUsXG4gIHNlcnZlclJlc3BvbnNlLFxufToge1xuICBuYXZpZ2F0ZWRBdDogbnVtYmVyXG4gIHByZXZpb3VzVHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgc2VydmVyUmVzcG9uc2U6IEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHRcbn0pID0+IHZvaWRcblxuZXhwb3J0IGludGVyZmFjZSBNdXRhYmxlIHtcbiAgbXBhTmF2aWdhdGlvbj86IGJvb2xlYW5cbiAgcGF0Y2hlZFRyZWU/OiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICBjYW5vbmljYWxVcmw/OiBzdHJpbmdcbiAgc2Nyb2xsYWJsZVNlZ21lbnRzPzogRmxpZ2h0U2VnbWVudFBhdGhbXVxuICBwZW5kaW5nUHVzaD86IGJvb2xlYW5cbiAgY2FjaGU/OiBDYWNoZU5vZGVcbiAgcHJlZmV0Y2hDYWNoZT86IEFwcFJvdXRlclN0YXRlWydwcmVmZXRjaENhY2hlJ11cbiAgaGFzaEZyYWdtZW50Pzogc3RyaW5nXG4gIHNob3VsZFNjcm9sbD86IGJvb2xlYW5cbiAgcHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGU/OiBib29sZWFuXG4gIG9ubHlIYXNoQ2hhbmdlPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckFjdGlvbk11dGFibGUgZXh0ZW5kcyBNdXRhYmxlIHtcbiAgaW5GbGlnaHRTZXJ2ZXJBY3Rpb24/OiBQcm9taXNlPGFueT4gfCBudWxsXG59XG5cbi8qKlxuICogUmVmcmVzaCB0cmlnZ2VycyBhIHJlZnJlc2ggb2YgdGhlIGZ1bGwgcGFnZSBkYXRhLlxuICogLSBmZXRjaGVzIHRoZSBGbGlnaHQgZGF0YSBhbmQgZmlsbHMgcnNjIGF0IHRoZSByb290IG9mIHRoZSBjYWNoZS5cbiAqIC0gVGhlIHJvdXRlciBzdGF0ZSBpcyB1cGRhdGVkIGF0IHRoZSByb290LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZnJlc2hBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX1JFRlJFU0hcbiAgb3JpZ2luOiBMb2NhdGlvblsnb3JpZ2luJ11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBIbXJSZWZyZXNoQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIEFDVElPTl9ITVJfUkVGUkVTSFxuICBvcmlnaW46IExvY2F0aW9uWydvcmlnaW4nXVxufVxuXG5leHBvcnQgdHlwZSBTZXJ2ZXJBY3Rpb25EaXNwYXRjaGVyID0gKFxuICBhcmdzOiBPbWl0PFxuICAgIFNlcnZlckFjdGlvbkFjdGlvbixcbiAgICAndHlwZScgfCAnbXV0YWJsZScgfCAnbmF2aWdhdGUnIHwgJ2NoYW5nZUJ5U2VydmVyUmVzcG9uc2UnIHwgJ2NhY2hlJ1xuICA+XG4pID0+IHZvaWRcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJBY3Rpb25BY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX1NFUlZFUl9BQ1RJT05cbiAgYWN0aW9uSWQ6IHN0cmluZ1xuICBhY3Rpb25BcmdzOiBhbnlbXVxuICByZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZFxuICByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWRcbn1cblxuLyoqXG4gKiBOYXZpZ2F0ZSB0cmlnZ2VycyBhIG5hdmlnYXRpb24gdG8gdGhlIHByb3ZpZGVkIHVybC4gSXQgc3VwcG9ydHMgdHdvIHR5cGVzOiBgcHVzaGAgYW5kIGByZXBsYWNlYC5cbiAqXG4gKiBgbmF2aWdhdGVUeXBlYDpcbiAqIC0gYHB1c2hgIC0gcHVzaGVzIGEgbmV3IGhpc3RvcnkgZW50cnkgaW4gdGhlIGJyb3dzZXIgaGlzdG9yeVxuICogLSBgcmVwbGFjZWAgLSByZXBsYWNlcyB0aGUgY3VycmVudCBoaXN0b3J5IGVudHJ5IGluIHRoZSBicm93c2VyIGhpc3RvcnlcbiAqXG4gKiBOYXZpZ2F0ZSBoYXMgbXVsdGlwbGUgY2FjaGUgaGV1cmlzdGljczpcbiAqIC0gcGFnZSB3YXMgcHJlZmV0Y2hlZFxuICogIC0gQXBwbHkgcm91dGVyIHN0YXRlIHRyZWUgZnJvbSBwcmVmZXRjaFxuICogIC0gQXBwbHkgRmxpZ2h0IGRhdGEgZnJvbSBwcmVmZXRjaCB0byB0aGUgY2FjaGVcbiAqICAtIElmIEZsaWdodCBkYXRhIGlzIGEgc3RyaW5nLCBpdCdzIGEgcmVkaXJlY3QgYW5kIHRoZSBzdGF0ZSBpcyB1cGRhdGVkIHRvIHRyaWdnZXIgYSByZWRpcmVjdFxuICogIC0gQ2hlY2sgaWYgaGFyZCBuYXZpZ2F0aW9uIGlzIG5lZWRlZFxuICogICAgLSBIYXJkIG5hdmlnYXRpb24gaGFwcGVucyB3aGVuIGEgZHluYW1pYyBwYXJhbWV0ZXIgYmVsb3cgdGhlIGNvbW1vbiBsYXlvdXQgY2hhbmdlZFxuICogICAgLSBXaGVuIGhhcmQgbmF2aWdhdGlvbiBpcyBuZWVkZWQgdGhlIGNhY2hlIGlzIGludmFsaWRhdGVkIGJlbG93IHRoZSBmbGlnaHRTZWdtZW50UGF0aFxuICogICAgLSBUaGUgbWlzc2luZyBjYWNoZSBub2RlcyBvZiB0aGUgcGFnZSB3aWxsIGJlIGZldGNoZWQgaW4gbGF5b3V0LXJvdXRlciBhbmQgdHJpZ2dlciB0aGUgU0VSVkVSX1BBVENIIGFjdGlvblxuICogIC0gSWYgaGFyZCBuYXZpZ2F0aW9uIGlzIG5vdCBuZWVkZWRcbiAqICAgIC0gVGhlIGNhY2hlIGlzIHJldXNlZFxuICogICAgLSBJZiBhbnkgY2FjaGUgbm9kZXMgYXJlIG1pc3NpbmcgdGhleSdsbCBiZSBmZXRjaGVkIGluIGxheW91dC1yb3V0ZXIgYW5kIHRyaWdnZXIgdGhlIFNFUlZFUl9QQVRDSCBhY3Rpb25cbiAqIC0gcGFnZSB3YXMgbm90IHByZWZldGNoZWRcbiAqICAtIFRoZSBuYXZpZ2F0ZSB3YXMgY2FsbGVkIGZyb20gYG5leHQvcm91dGVyYCAoYHJvdXRlci5wdXNoKClgIC8gYHJvdXRlci5yZXBsYWNlKClgKSAvIGBuZXh0L2xpbmtgIHdpdGhvdXQgcHJlZmV0Y2hlZCBkYXRhIGF2YWlsYWJsZSAoZS5nLiB0aGUgcHJlZmV0Y2ggZGlkbid0IGNvbWUgYmFjayBmcm9tIHRoZSBzZXJ2ZXIgYmVmb3JlIGNsaWNraW5nIHRoZSBsaW5rKVxuICogICAgLSBGbGlnaHQgZGF0YSBpcyBmZXRjaGVkIGluIHRoZSByZWR1Y2VyIChzdXNwZW5kcyB0aGUgcmVkdWNlcilcbiAqICAgIC0gUm91dGVyIHN0YXRlIHRyZWUgaXMgY3JlYXRlZCBiYXNlZCBvbiBGbGlnaHQgZGF0YVxuICogICAgLSBDYWNoZSBpcyBmaWxsZWQgYmFzZWQgb24gdGhlIEZsaWdodCBkYXRhXG4gKlxuICogQWJvdmUgc3RlcHMgZXhwbGFpbiAzIGNhc2VzOlxuICogLSBgc29mdGAgLSBSZXVzZXMgdGhlIGV4aXN0aW5nIGNhY2hlIGFuZCBmZXRjaGVzIG1pc3Npbmcgbm9kZXMgaW4gbGF5b3V0LXJvdXRlci5cbiAqIC0gYGhhcmRgIC0gQ3JlYXRlcyBhIG5ldyBjYWNoZSB3aGVyZSBjYWNoZSBub2RlcyBhcmUgcmVtb3ZlZCBiZWxvdyB0aGUgY29tbW9uIGxheW91dCBhbmQgZmV0Y2hlcyBtaXNzaW5nIG5vZGVzIGluIGxheW91dC1yb3V0ZXIuXG4gKiAtIGBvcHRpbWlzdGljYCAoZXhwbGljaXQgbm8gcHJlZmV0Y2gpIC0gQ3JlYXRlcyBhIG5ldyBjYWNoZSBhbmQga2lja3Mgb2ZmIHRoZSBkYXRhIGZldGNoIGluIHRoZSByZWR1Y2VyLiBUaGUgZGF0YSBmZXRjaCBpcyBhd2FpdGVkIGluIHRoZSBsYXlvdXQtcm91dGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRlQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIEFDVElPTl9OQVZJR0FURVxuICB1cmw6IFVSTFxuICBpc0V4dGVybmFsVXJsOiBib29sZWFuXG4gIGxvY2F0aW9uU2VhcmNoOiBMb2NhdGlvblsnc2VhcmNoJ11cbiAgbmF2aWdhdGVUeXBlOiAncHVzaCcgfCAncmVwbGFjZSdcbiAgc2hvdWxkU2Nyb2xsOiBib29sZWFuXG4gIGFsbG93QWxpYXNpbmc6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBSZXN0b3JlIGFwcGxpZXMgdGhlIHByb3ZpZGVkIHJvdXRlciBzdGF0ZS5cbiAqIC0gVXNlZCBmb3IgYHBvcHN0YXRlYCAoYmFjay9mb3J3YXJkIG5hdmlnYXRpb24pIHdoZXJlIGEga25vd24gcm91dGVyIHN0YXRlIGhhcyB0byBiZSBhcHBsaWVkLlxuICogLSBBbHNvIHVzZWQgd2hlbiBzeW5jaW5nIHRoZSByb3V0ZXIgc3RhdGUgd2l0aCBgcHVzaFN0YXRlYC9gcmVwbGFjZVN0YXRlYCBjYWxscy5cbiAqIC0gUm91dGVyIHN0YXRlIGlzIGFwcGxpZWQgYXMtaXMgZnJvbSB0aGUgaGlzdG9yeSBzdGF0ZSwgaWYgYXZhaWxhYmxlLlxuICogLSBJZiB0aGUgaGlzdG9yeSBzdGF0ZSBkb2VzIG5vdCBjb250YWluIHRoZSByb3V0ZXIgc3RhdGUsIHRoZSBleGlzdGluZyByb3V0ZXIgc3RhdGUgaXMgdXNlZC5cbiAqIC0gSWYgYW55IGNhY2hlIG5vZGUgaXMgbWlzc2luZyBpdCB3aWxsIGJlIGZldGNoZWQgaW4gbGF5b3V0LXJvdXRlciBkdXJpbmcgcmVuZGVyaW5nIGFuZCB0aGUgc2VydmVyLXBhdGNoIGNhc2UuXG4gKiAtIElmIGV4aXN0aW5nIGNhY2hlIG5vZGVzIG1hdGNoIHRoZXNlIGFyZSB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RvcmVBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX1JFU1RPUkVcbiAgdXJsOiBVUkxcbiAgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGUgfCB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBTZXJ2ZXItcGF0Y2ggYXBwbGllcyB0aGUgcHJvdmlkZWQgRmxpZ2h0IGRhdGEgdG8gdGhlIGNhY2hlIGFuZCByb3V0ZXIgdHJlZS5cbiAqIC0gT25seSB0cmlnZ2VyZWQgaW4gbGF5b3V0LXJvdXRlci5cbiAqIC0gQ3JlYXRlcyBhIG5ldyBjYWNoZSBhbmQgcm91dGVyIHN0YXRlIHdpdGggdGhlIEZsaWdodCBkYXRhIGFwcGxpZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyUGF0Y2hBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX1NFUlZFUl9QQVRDSFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyXG4gIHNlcnZlclJlc3BvbnNlOiBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0XG4gIHByZXZpb3VzVHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbn1cblxuLyoqXG4gKiBQcmVmZXRjaEtpbmQgZGVmaW5lcyB0aGUgdHlwZSBvZiBwcmVmZXRjaGluZyB0aGF0IHNob3VsZCBiZSBkb25lLlxuICogLSBgYXV0b2AgLSBpZiB0aGUgcGFnZSBpcyBkeW5hbWljLCBwcmVmZXRjaCB0aGUgcGFnZSBkYXRhIHBhcnRpYWxseSwgaWYgc3RhdGljIHByZWZldGNoIHRoZSBwYWdlIGRhdGEgZnVsbHkuXG4gKiAtIGBmdWxsYCAtIHByZWZldGNoIHRoZSBwYWdlIGRhdGEgZnVsbHkuXG4gKiAtIGB0ZW1wb3JhcnlgIC0gYSB0ZW1wb3JhcnkgcHJlZmV0Y2ggZW50cnkgaXMgYWRkZWQgdG8gdGhlIGNhY2hlLCB0aGlzIGlzIHVzZWQgd2hlbiBwcmVmZXRjaD17ZmFsc2V9IGlzIHVzZWQgaW4gbmV4dC9saW5rIG9yIHdoZW4geW91IHB1c2ggYSByb3V0ZSBwcm9ncmFtbWF0aWNhbGx5LlxuICovXG5cbmV4cG9ydCBlbnVtIFByZWZldGNoS2luZCB7XG4gIEFVVE8gPSAnYXV0bycsXG4gIEZVTEwgPSAnZnVsbCcsXG4gIFRFTVBPUkFSWSA9ICd0ZW1wb3JhcnknLFxufVxuXG4vKipcbiAqIFByZWZldGNoIGFkZHMgdGhlIHByb3ZpZGVkIEZsaWdodERhdGEgdG8gdGhlIHByZWZldGNoIGNhY2hlXG4gKiAtIENyZWF0ZXMgdGhlIHJvdXRlciBzdGF0ZSB0cmVlIGJhc2VkIG9uIHRoZSBwYXRjaCBpbiBGbGlnaHREYXRhXG4gKiAtIEFkZHMgdGhlIEZsaWdodERhdGEgdG8gdGhlIHByZWZldGNoIGNhY2hlXG4gKiAtIEluIEFDVElPTl9OQVZJR0FURSB0aGUgcHJlZmV0Y2ggY2FjaGUgaXMgY2hlY2tlZCBhbmQgdGhlIHJvdXRlciBzdGF0ZSB0cmVlIGFuZCBGbGlnaHREYXRhIGFyZSBhcHBsaWVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWZldGNoQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIEFDVElPTl9QUkVGRVRDSFxuICB1cmw6IFVSTFxuICBraW5kOiBQcmVmZXRjaEtpbmRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdXNoUmVmIHtcbiAgLyoqXG4gICAqIElmIHRoZSBhcHAtcm91dGVyIHNob3VsZCBwdXNoIGEgbmV3IGhpc3RvcnkgZW50cnkgaW4gYXBwLXJvdXRlcidzIHVzZUVmZmVjdCgpXG4gICAqL1xuICBwZW5kaW5nUHVzaDogYm9vbGVhblxuICAvKipcbiAgICogTXVsdGktcGFnZSBuYXZpZ2F0aW9uIHRocm91Z2ggbG9jYXRpb24uaHJlZi5cbiAgICovXG4gIG1wYU5hdmlnYXRpb246IGJvb2xlYW5cbiAgLyoqXG4gICAqIFNraXAgYXBwbHlpbmcgdGhlIHJvdXRlciBzdGF0ZSB0byB0aGUgYnJvd3NlciBoaXN0b3J5IHN0YXRlLlxuICAgKi9cbiAgcHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGU6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgRm9jdXNBbmRTY3JvbGxSZWYgPSB7XG4gIC8qKlxuICAgKiBJZiBmb2N1cyBhbmQgc2Nyb2xsIHNob3VsZCBiZSBzZXQgaW4gdGhlIGxheW91dC1yb3V0ZXIncyB1c2VFZmZlY3QoKVxuICAgKi9cbiAgYXBwbHk6IGJvb2xlYW5cbiAgLyoqXG4gICAqIFRoZSBoYXNoIGZyYWdtZW50IHRoYXQgc2hvdWxkIGJlIHNjcm9sbGVkIHRvLlxuICAgKi9cbiAgaGFzaEZyYWdtZW50OiBzdHJpbmcgfCBudWxsXG4gIC8qKlxuICAgKiBUaGUgcGF0aHMgb2YgdGhlIHNlZ21lbnRzIHRoYXQgc2hvdWxkIGJlIGZvY3VzZWQuXG4gICAqL1xuICBzZWdtZW50UGF0aHM6IEZsaWdodFNlZ21lbnRQYXRoW11cbiAgLyoqXG4gICAqIElmIG9ubHkgdGhlIFVSTHMgaGFzaCBmcmFnbWVudCBjaGFuZ2VkXG4gICAqL1xuICBvbmx5SGFzaENoYW5nZTogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBQcmVmZXRjaENhY2hlRW50cnkgPSB7XG4gIHRyZWVBdFRpbWVPZlByZWZldGNoOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICBkYXRhOiBQcm9taXNlPEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQ+XG4gIGtpbmQ6IFByZWZldGNoS2luZFxuICBwcmVmZXRjaFRpbWU6IG51bWJlclxuICBzdGFsZVRpbWU6IG51bWJlclxuICBsYXN0VXNlZFRpbWU6IG51bWJlciB8IG51bGxcbiAga2V5OiBzdHJpbmdcbiAgc3RhdHVzOiBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXNcbiAgdXJsOiBVUkxcbn1cblxuZXhwb3J0IGVudW0gUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzIHtcbiAgZnJlc2ggPSAnZnJlc2gnLFxuICByZXVzYWJsZSA9ICdyZXVzYWJsZScsXG4gIGV4cGlyZWQgPSAnZXhwaXJlZCcsXG4gIHN0YWxlID0gJ3N0YWxlJyxcbn1cblxuLyoqXG4gKiBIYW5kbGVzIGtlZXBpbmcgdGhlIHN0YXRlIG9mIGFwcC1yb3V0ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIEFwcFJvdXRlclN0YXRlID0ge1xuICAvKipcbiAgICogVGhlIHJvdXRlciBzdGF0ZSwgdGhpcyBpcyB3cml0dGVuIGludG8gdGhlIGhpc3Rvcnkgc3RhdGUgaW4gYXBwLXJvdXRlciB1c2luZyByZXBsYWNlU3RhdGUvcHVzaFN0YXRlLlxuICAgKiAtIEhhcyB0byBiZSBzZXJpYWxpemFibGUgYXMgaXQgaXMgd3JpdHRlbiBpbnRvIHRoZSBoaXN0b3J5IHN0YXRlLlxuICAgKiAtIEhvbGRzIHdoaWNoIHNlZ21lbnRzIGFuZCBwYXJhbGxlbCByb3V0ZXMgYXJlIHNob3duIG9uIHRoZSBzY3JlZW4uXG4gICAqL1xuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICAvKipcbiAgICogVGhlIGNhY2hlIGhvbGRzIFJlYWN0IG5vZGVzIGZvciBldmVyeSBzZWdtZW50IHRoYXQgaXMgc2hvd24gb24gc2NyZWVuIGFzIHdlbGwgYXMgcHJldmlvdXNseSBzaG93biBzZWdtZW50cy5cbiAgICogSXQgYWxzbyBob2xkcyBpbi1wcm9ncmVzcyBkYXRhIHJlcXVlc3RzLlxuICAgKiBQcmVmZXRjaGVkIGRhdGEgaXMgc3RvcmVkIHNlcGFyYXRlbHkgaW4gYHByZWZldGNoQ2FjaGVgLCB0aGF0IGlzIGFwcGxpZWQgZHVyaW5nIEFDVElPTl9OQVZJR0FURS5cbiAgICovXG4gIGNhY2hlOiBDYWNoZU5vZGVcbiAgLyoqXG4gICAqIENhY2hlIHRoYXQgaG9sZHMgcHJlZmV0Y2hlZCBGbGlnaHQgcmVzcG9uc2VzIGtleWVkIGJ5IHVybC5cbiAgICovXG4gIHByZWZldGNoQ2FjaGU6IE1hcDxzdHJpbmcsIFByZWZldGNoQ2FjaGVFbnRyeT5cbiAgLyoqXG4gICAqIERlY2lkZXMgaWYgdGhlIHVwZGF0ZSBzaG91bGQgY3JlYXRlIGEgbmV3IGhpc3RvcnkgZW50cnkgYW5kIGlmIHRoZSBuYXZpZ2F0aW9uIGhhcyB0byB0cmlnZ2VyIGEgYnJvd3NlciBuYXZpZ2F0aW9uLlxuICAgKi9cbiAgcHVzaFJlZjogUHVzaFJlZlxuICAvKipcbiAgICogRGVjaWRlcyBpZiB0aGUgdXBkYXRlIHNob3VsZCBhcHBseSBzY3JvbGwgYW5kIGZvY3VzIG1hbmFnZW1lbnQuXG4gICAqL1xuICBmb2N1c0FuZFNjcm9sbFJlZjogRm9jdXNBbmRTY3JvbGxSZWZcbiAgLyoqXG4gICAqIFRoZSBjYW5vbmljYWwgdXJsIHRoYXQgaXMgcHVzaGVkL3JlcGxhY2VkLlxuICAgKiAtIFRoaXMgaXMgdGhlIHVybCB5b3Ugc2VlIGluIHRoZSBicm93c2VyLlxuICAgKi9cbiAgY2Fub25pY2FsVXJsOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSB1bmRlcmx5aW5nIFwidXJsXCIgcmVwcmVzZW50aW5nIHRoZSBVSSBzdGF0ZSwgd2hpY2ggaXMgdXNlZCBmb3IgaW50ZXJjZXB0aW5nIHJvdXRlcy5cbiAgICovXG4gIG5leHRVcmw6IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgUmVhZG9ubHlSZWR1Y2VyU3RhdGUgPSBSZWFkb25seTxBcHBSb3V0ZXJTdGF0ZT5cbmV4cG9ydCB0eXBlIFJlZHVjZXJTdGF0ZSA9IFByb21pc2U8QXBwUm91dGVyU3RhdGU+IHwgQXBwUm91dGVyU3RhdGVcbmV4cG9ydCB0eXBlIFJlZHVjZXJBY3Rpb25zID0gUmVhZG9ubHk8XG4gIHwgUmVmcmVzaEFjdGlvblxuICB8IE5hdmlnYXRlQWN0aW9uXG4gIHwgUmVzdG9yZUFjdGlvblxuICB8IFNlcnZlclBhdGNoQWN0aW9uXG4gIHwgUHJlZmV0Y2hBY3Rpb25cbiAgfCBIbXJSZWZyZXNoQWN0aW9uXG4gIHwgU2VydmVyQWN0aW9uQWN0aW9uXG4+XG4iXSwibmFtZXMiOlsiQUNUSU9OX0hNUl9SRUZSRVNIIiwiQUNUSU9OX05BVklHQVRFIiwiQUNUSU9OX1BSRUZFVENIIiwiQUNUSU9OX1JFRlJFU0giLCJBQ1RJT05fUkVTVE9SRSIsIkFDVElPTl9TRVJWRVJfQUNUSU9OIiwiQUNUSU9OX1NFUlZFUl9QQVRDSCIsIlByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cyIsIlByZWZldGNoS2luZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer.js":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/router-reducer.js ***!
|
||
\***********************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"reducer\", ({\n enumerable: true,\n get: function() {\n return reducer;\n }\n}));\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _navigatereducer = __webpack_require__(/*! ./reducers/navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nconst _serverpatchreducer = __webpack_require__(/*! ./reducers/server-patch-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js\");\nconst _restorereducer = __webpack_require__(/*! ./reducers/restore-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js\");\nconst _refreshreducer = __webpack_require__(/*! ./reducers/refresh-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js\");\nconst _prefetchreducer = __webpack_require__(/*! ./reducers/prefetch-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js\");\nconst _hmrrefreshreducer = __webpack_require__(/*! ./reducers/hmr-refresh-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js\");\nconst _serveractionreducer = __webpack_require__(/*! ./reducers/server-action-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js\");\n/**\n * Reducer that handles the app-router state updates.\n */ function clientReducer(state, action) {\n switch(action.type){\n case _routerreducertypes.ACTION_NAVIGATE:\n {\n return (0, _navigatereducer.navigateReducer)(state, action);\n }\n case _routerreducertypes.ACTION_SERVER_PATCH:\n {\n return (0, _serverpatchreducer.serverPatchReducer)(state, action);\n }\n case _routerreducertypes.ACTION_RESTORE:\n {\n return (0, _restorereducer.restoreReducer)(state, action);\n }\n case _routerreducertypes.ACTION_REFRESH:\n {\n return (0, _refreshreducer.refreshReducer)(state, action);\n }\n case _routerreducertypes.ACTION_HMR_REFRESH:\n {\n return (0, _hmrrefreshreducer.hmrRefreshReducer)(state, action);\n }\n case _routerreducertypes.ACTION_PREFETCH:\n {\n return (0, _prefetchreducer.prefetchReducer)(state, action);\n }\n case _routerreducertypes.ACTION_SERVER_ACTION:\n {\n return (0, _serveractionreducer.serverActionReducer)(state, action);\n }\n // This case should never be hit as dispatch is strongly typed.\n default:\n throw Object.defineProperty(new Error('Unknown action'), \"__NEXT_ERROR_CODE\", {\n value: \"E295\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction serverReducer(state, _action) {\n return state;\n}\nconst reducer = true ? serverReducer : 0;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=router-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBaUVhQTs7O2VBQUFBOzs7Z0RBekROOzZDQU15QjtnREFDRzs0Q0FDSjs0Q0FDQTs2Q0FDQzsrQ0FDRTtpREFDRTtBQUVwQzs7Q0FFQyxHQUNELFNBQVNDLGNBQ1BDLEtBQTJCLEVBQzNCQyxNQUFzQjtJQUV0QixPQUFRQSxPQUFPQyxJQUFJO1FBQ2pCLEtBQUtDLG9CQUFBQSxlQUFlO1lBQUU7Z0JBQ3BCLE9BQU9DLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQkosT0FBT0M7WUFDaEM7UUFDQSxLQUFLSSxvQkFBQUEsbUJBQW1CO1lBQUU7Z0JBQ3hCLE9BQU9DLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFBbUJOLE9BQU9DO1lBQ25DO1FBQ0EsS0FBS00sb0JBQUFBLGNBQWM7WUFBRTtnQkFDbkIsT0FBT0MsQ0FBQUEsR0FBQUEsZ0JBQUFBLGNBQUFBLEVBQWVSLE9BQU9DO1lBQy9CO1FBQ0EsS0FBS1Esb0JBQUFBLGNBQWM7WUFBRTtnQkFDbkIsT0FBT0MsQ0FBQUEsR0FBQUEsZ0JBQUFBLGNBQUFBLEVBQWVWLE9BQU9DO1lBQy9CO1FBQ0EsS0FBS1Usb0JBQUFBLGtCQUFrQjtZQUFFO2dCQUN2QixPQUFPQyxDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCWixPQUFPQztZQUNsQztRQUNBLEtBQUtZLG9CQUFBQSxlQUFlO1lBQUU7Z0JBQ3BCLE9BQU9DLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQmQsT0FBT0M7WUFDaEM7UUFDQSxLQUFLYyxvQkFBQUEsb0JBQW9CO1lBQUU7Z0JBQ3pCLE9BQU9DLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JoQixPQUFPQztZQUNwQztRQUNBLCtEQUErRDtRQUMvRDtZQUNFLE1BQU0scUJBQTJCLENBQTNCLElBQUlnQixNQUFNLG1CQUFWO3VCQUFBOzRCQUFBOzhCQUFBO1lBQTBCO0lBQ3BDO0FBQ0Y7QUFFQSxTQUFTQyxjQUNQbEIsS0FBMkIsRUFDM0JtQixPQUF1QjtJQUV2QixPQUFPbkI7QUFDVDtBQUdPLE1BQU1GLFVBQ1gsS0FBNkIsR0FBR29CLGdCQUFnQm5CLENBQWFBIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFDVElPTl9OQVZJR0FURSxcbiAgQUNUSU9OX1NFUlZFUl9QQVRDSCxcbiAgQUNUSU9OX1JFU1RPUkUsXG4gIEFDVElPTl9SRUZSRVNILFxuICBBQ1RJT05fUFJFRkVUQ0gsXG4gIEFDVElPTl9ITVJfUkVGUkVTSCxcbiAgQUNUSU9OX1NFUlZFUl9BQ1RJT04sXG59IGZyb20gJy4vcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgdHlwZSB7XG4gIFJlZHVjZXJBY3Rpb25zLFxuICBSZWR1Y2VyU3RhdGUsXG4gIFJlYWRvbmx5UmVkdWNlclN0YXRlLFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgbmF2aWdhdGVSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2Vycy9uYXZpZ2F0ZS1yZWR1Y2VyJ1xuaW1wb3J0IHsgc2VydmVyUGF0Y2hSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2Vycy9zZXJ2ZXItcGF0Y2gtcmVkdWNlcidcbmltcG9ydCB7IHJlc3RvcmVSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2Vycy9yZXN0b3JlLXJlZHVjZXInXG5pbXBvcnQgeyByZWZyZXNoUmVkdWNlciB9IGZyb20gJy4vcmVkdWNlcnMvcmVmcmVzaC1yZWR1Y2VyJ1xuaW1wb3J0IHsgcHJlZmV0Y2hSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2Vycy9wcmVmZXRjaC1yZWR1Y2VyJ1xuaW1wb3J0IHsgaG1yUmVmcmVzaFJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXJzL2htci1yZWZyZXNoLXJlZHVjZXInXG5pbXBvcnQgeyBzZXJ2ZXJBY3Rpb25SZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2Vycy9zZXJ2ZXItYWN0aW9uLXJlZHVjZXInXG5cbi8qKlxuICogUmVkdWNlciB0aGF0IGhhbmRsZXMgdGhlIGFwcC1yb3V0ZXIgc3RhdGUgdXBkYXRlcy5cbiAqL1xuZnVuY3Rpb24gY2xpZW50UmVkdWNlcihcbiAgc3RhdGU6IFJlYWRvbmx5UmVkdWNlclN0YXRlLFxuICBhY3Rpb246IFJlZHVjZXJBY3Rpb25zXG4pOiBSZWR1Y2VyU3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBBQ1RJT05fTkFWSUdBVEU6IHtcbiAgICAgIHJldHVybiBuYXZpZ2F0ZVJlZHVjZXIoc3RhdGUsIGFjdGlvbilcbiAgICB9XG4gICAgY2FzZSBBQ1RJT05fU0VSVkVSX1BBVENIOiB7XG4gICAgICByZXR1cm4gc2VydmVyUGF0Y2hSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pXG4gICAgfVxuICAgIGNhc2UgQUNUSU9OX1JFU1RPUkU6IHtcbiAgICAgIHJldHVybiByZXN0b3JlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKVxuICAgIH1cbiAgICBjYXNlIEFDVElPTl9SRUZSRVNIOiB7XG4gICAgICByZXR1cm4gcmVmcmVzaFJlZHVjZXIoc3RhdGUsIGFjdGlvbilcbiAgICB9XG4gICAgY2FzZSBBQ1RJT05fSE1SX1JFRlJFU0g6IHtcbiAgICAgIHJldHVybiBobXJSZWZyZXNoUmVkdWNlcihzdGF0ZSwgYWN0aW9uKVxuICAgIH1cbiAgICBjYXNlIEFDVElPTl9QUkVGRVRDSDoge1xuICAgICAgcmV0dXJuIHByZWZldGNoUmVkdWNlcihzdGF0ZSwgYWN0aW9uKVxuICAgIH1cbiAgICBjYXNlIEFDVElPTl9TRVJWRVJfQUNUSU9OOiB7XG4gICAgICByZXR1cm4gc2VydmVyQWN0aW9uUmVkdWNlcihzdGF0ZSwgYWN0aW9uKVxuICAgIH1cbiAgICAvLyBUaGlzIGNhc2Ugc2hvdWxkIG5ldmVyIGJlIGhpdCBhcyBkaXNwYXRjaCBpcyBzdHJvbmdseSB0eXBlZC5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGFjdGlvbicpXG4gIH1cbn1cblxuZnVuY3Rpb24gc2VydmVyUmVkdWNlcihcbiAgc3RhdGU6IFJlYWRvbmx5UmVkdWNlclN0YXRlLFxuICBfYWN0aW9uOiBSZWR1Y2VyQWN0aW9uc1xuKTogUmVkdWNlclN0YXRlIHtcbiAgcmV0dXJuIHN0YXRlXG59XG5cbi8vIHdlIGRvbid0IHJ1biB0aGUgY2xpZW50IHJlZHVjZXIgb24gdGhlIHNlcnZlciwgc28gd2UgdXNlIGEgbm9vcCBmdW5jdGlvbiBmb3IgYmV0dGVyIHRyZWUgc2hha2luZ1xuZXhwb3J0IGNvbnN0IHJlZHVjZXIgPVxuICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/IHNlcnZlclJlZHVjZXIgOiBjbGllbnRSZWR1Y2VyXG4iXSwibmFtZXMiOlsicmVkdWNlciIsImNsaWVudFJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInR5cGUiLCJBQ1RJT05fTkFWSUdBVEUiLCJuYXZpZ2F0ZVJlZHVjZXIiLCJBQ1RJT05fU0VSVkVSX1BBVENIIiwic2VydmVyUGF0Y2hSZWR1Y2VyIiwiQUNUSU9OX1JFU1RPUkUiLCJyZXN0b3JlUmVkdWNlciIsIkFDVElPTl9SRUZSRVNIIiwicmVmcmVzaFJlZHVjZXIiLCJBQ1RJT05fSE1SX1JFRlJFU0giLCJobXJSZWZyZXNoUmVkdWNlciIsIkFDVElPTl9QUkVGRVRDSCIsInByZWZldGNoUmVkdWNlciIsIkFDVElPTl9TRVJWRVJfQUNUSU9OIiwic2VydmVyQWN0aW9uUmVkdWNlciIsIkVycm9yIiwic2VydmVyUmVkdWNlciIsIl9hY3Rpb24iLCJ3aW5kb3ciXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js":
|
||
/*!***************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js ***!
|
||
\***************************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \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 setCacheBustingSearchParam: function() {\n return setCacheBustingSearchParam;\n },\n setCacheBustingSearchParamWithHash: function() {\n return setCacheBustingSearchParamWithHash;\n }\n});\nconst _cachebustingsearchparam = __webpack_require__(/*! ../../../shared/lib/router/utils/cache-busting-search-param */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js\");\nconst _approuterheaders = __webpack_require__(/*! ../app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst setCacheBustingSearchParam = (url, headers)=>{\n const uniqueCacheKey = (0, _cachebustingsearchparam.computeCacheBustingSearchParam)(headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER], headers[_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER], headers[_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER], headers[_approuterheaders.NEXT_URL]);\n setCacheBustingSearchParamWithHash(url, uniqueCacheKey);\n};\nconst setCacheBustingSearchParamWithHash = (url, hash)=>{\n /**\n * Note that we intentionally do not use `url.searchParams.set` here:\n *\n * const url = new URL('https://example.com/search?q=custom%20spacing');\n * url.searchParams.set('_rsc', 'abc123');\n * console.log(url.toString()); // Outputs: https://example.com/search?q=custom+spacing&_rsc=abc123\n * ^ <--- this is causing confusion\n * This is in fact intended based on https://url.spec.whatwg.org/#interface-urlsearchparams, but\n * we want to preserve the %20 as %20 if that's what the user passed in, hence the custom\n * logic below.\n */ const existingSearch = url.search;\n const rawQuery = existingSearch.startsWith('?') ? existingSearch.slice(1) : existingSearch;\n // Always remove any existing cache busting param and add a fresh one to ensure\n // we have the correct value based on current request headers\n const pairs = rawQuery.split('&').filter((pair)=>pair && !pair.startsWith(\"\" + _approuterheaders.NEXT_RSC_UNION_QUERY + \"=\"));\n if (hash.length > 0) {\n pairs.push(_approuterheaders.NEXT_RSC_UNION_QUERY + \"=\" + hash);\n } else {\n pairs.push(\"\" + _approuterheaders.NEXT_RSC_UNION_QUERY);\n }\n url.search = pairs.length ? \"?\" + pairs.join('&') : '';\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=set-cache-busting-search-param.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3NldC1jYWNoZS1idXN0aW5nLXNlYXJjaC1wYXJhbS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLDBCQUEwQjtlQUExQkE7O0lBNkJBQyxrQ0FBa0M7ZUFBbENBOzs7cURBdkRrQzs4Q0FPeEM7QUFtQkEsTUFBTUQsNkJBQTZCLENBQ3hDRSxLQUNBQztJQUVBLE1BQU1DLGlCQUFpQkMsQ0FBQUEsR0FBQUEseUJBQUFBLDhCQUFBQSxFQUNyQkYsT0FBTyxDQUFDRyxrQkFBQUEsMkJBQTJCLENBQUMsRUFDcENILE9BQU8sQ0FBQ0ksa0JBQUFBLG1DQUFtQyxDQUFDLEVBQzVDSixPQUFPLENBQUNLLGtCQUFBQSw2QkFBNkIsQ0FBQyxFQUN0Q0wsT0FBTyxDQUFDTSxrQkFBQUEsUUFBUSxDQUFDO0lBRW5CUixtQ0FBbUNDLEtBQUtFO0FBQzFDO0FBa0JPLE1BQU1ILHFDQUFxQyxDQUNoREMsS0FDQVE7SUFFQTs7Ozs7Ozs7OztHQVVDLEdBQ0QsTUFBTUMsaUJBQWlCVCxJQUFJVSxNQUFNO0lBQ2pDLE1BQU1DLFdBQVdGLGVBQWVHLFVBQVUsQ0FBQyxPQUN2Q0gsZUFBZUksS0FBSyxDQUFDLEtBQ3JCSjtJQUVKLCtFQUErRTtJQUMvRSw2REFBNkQ7SUFDN0QsTUFBTUssUUFBUUgsU0FDWEksS0FBSyxDQUFDLEtBQ05DLE1BQU0sQ0FBQyxDQUFDQyxPQUFTQSxRQUFRLENBQUNBLEtBQUtMLFVBQVUsQ0FBRSxLQUFFTSxrQkFBQUEsb0JBQW9CLEdBQUM7SUFFckUsSUFBSVYsS0FBS1csTUFBTSxHQUFHLEdBQUc7UUFDbkJMLE1BQU1NLElBQUksQ0FBSUYsa0JBQUFBLG9CQUFvQixHQUFDLE1BQUdWO0lBQ3hDLE9BQU87UUFDTE0sTUFBTU0sSUFBSSxDQUFFLEtBQUVGLGtCQUFBQSxvQkFBb0I7SUFDcEM7SUFDQWxCLElBQUlVLE1BQU0sR0FBR0ksTUFBTUssTUFBTSxHQUFJLE1BQUdMLE1BQU1PLElBQUksQ0FBQyxPQUFTO0FBQ3REIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3NldC1jYWNoZS1idXN0aW5nLXNlYXJjaC1wYXJhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY29tcHV0ZUNhY2hlQnVzdGluZ1NlYXJjaFBhcmFtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvY2FjaGUtYnVzdGluZy1zZWFyY2gtcGFyYW0nXG5pbXBvcnQge1xuICBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSLFxuICBORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUixcbiAgTkVYVF9VUkwsXG4gIE5FWFRfUlNDX1VOSU9OX1FVRVJZLFxufSBmcm9tICcuLi9hcHAtcm91dGVyLWhlYWRlcnMnXG5pbXBvcnQgdHlwZSB7IFJlcXVlc3RIZWFkZXJzIH0gZnJvbSAnLi9mZXRjaC1zZXJ2ZXItcmVzcG9uc2UnXG5cbi8qKlxuICogTXV0YXRlcyB0aGUgcHJvdmlkZWQgVVJMIGJ5IGFkZGluZyBhIGNhY2hlLWJ1c3Rpbmcgc2VhcmNoIHBhcmFtZXRlciBmb3IgQ0ROcyB0aGF0IGRvbid0XG4gKiBzdXBwb3J0IGN1c3RvbSBoZWFkZXJzLiBUaGlzIGhlbHBzIGF2b2lkIGNhY2hpbmcgY29uZmxpY3RzIGJ5IG1ha2luZyBlYWNoIHJlcXVlc3QgdW5pcXVlLlxuICpcbiAqIFJhdGhlciB0aGFuIHJlbHlpbmcgb24gdGhlIFZhcnkgaGVhZGVyIHdoaWNoIHNvbWUgQ0ROcyBpZ25vcmUsIHdlIGFwcGVuZCBhIHNlYXJjaCBwYXJhbVxuICogdG8gY3JlYXRlIGEgdW5pcXVlIFVSTCB0aGF0IGZvcmNlcyBhIGZyZXNoIHJlcXVlc3QuXG4gKlxuICogRXhhbXBsZTpcbiAqIFVSTCBiZWZvcmU6IGh0dHBzOi8vZXhhbXBsZS5jb20vcGF0aD9xdWVyeT0xXG4gKiBVUkwgYWZ0ZXI6IGh0dHBzOi8vZXhhbXBsZS5jb20vcGF0aD9xdWVyeT0xJl9yc2M9YWJjMTIzXG4gKlxuICogTm90ZTogVGhpcyBmdW5jdGlvbiBtdXRhdGVzIHRoZSBpbnB1dCBVUkwgZGlyZWN0bHkgYW5kIGRvZXMgbm90IHJldHVybiBhbnl0aGluZy5cbiAqXG4gKiBUT0RPOiBTaW5jZSB3ZSBuZWVkIHRvIHVzZSBhIHNlYXJjaCBwYXJhbSBhbnl3YXksIHdlIGNvdWxkIHNpbXBsaWZ5IGJ5IHJlbW92aW5nIHRoZSBjdXN0b21cbiAqIGhlYWRlcnMgYXBwcm9hY2ggZW50aXJlbHkgYW5kIGp1c3QgdXNlIHNlYXJjaCBwYXJhbXMuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbSA9IChcbiAgdXJsOiBVUkwsXG4gIGhlYWRlcnM6IFJlcXVlc3RIZWFkZXJzXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgdW5pcXVlQ2FjaGVLZXkgPSBjb21wdXRlQ2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0oXG4gICAgaGVhZGVyc1tORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVJdLFxuICAgIGhlYWRlcnNbTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVJdLFxuICAgIGhlYWRlcnNbTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVJdLFxuICAgIGhlYWRlcnNbTkVYVF9VUkxdXG4gIClcbiAgc2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW1XaXRoSGFzaCh1cmwsIHVuaXF1ZUNhY2hlS2V5KVxufVxuXG4vKipcbiAqIFNldHMgYSBjYWNoZS1idXN0aW5nIHNlYXJjaCBwYXJhbWV0ZXIgb24gYSBVUkwgdXNpbmcgYSBwcm92aWRlZCBoYXNoIHZhbHVlLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgdGhlIHNhbWUgbG9naWMgYXMgYHNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtYCBidXQgYWNjZXB0c1xuICogYSBwcmUtY29tcHV0ZWQgaGFzaCBpbnN0ZWFkIG9mIGNvbXB1dGluZyBpdCBmcm9tIGhlYWRlcnMuXG4gKlxuICogRXhhbXBsZTpcbiAqIFVSTCBiZWZvcmU6IGh0dHBzOi8vZXhhbXBsZS5jb20vcGF0aD9xdWVyeT0xXG4gKiBoYXNoOiBcImFiYzEyM1wiXG4gKiBVUkwgYWZ0ZXI6IGh0dHBzOi8vZXhhbXBsZS5jb20vcGF0aD9xdWVyeT0xJl9yc2M9YWJjMTIzXG4gKlxuICogSWYgdGhlIGhhc2ggaXMgbnVsbCwgd2Ugd2lsbCBzZXQgYF9yc2NgIHNlYXJjaCBwYXJhbSB3aXRob3V0IGEgdmFsdWUuXG4gKiBMaWtlIHRoaXM6IGh0dHBzOi8vZXhhbXBsZS5jb20vcGF0aD9xdWVyeT0xJl9yc2NcbiAqXG4gKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIG11dGF0ZXMgdGhlIGlucHV0IFVSTCBkaXJlY3RseSBhbmQgZG9lcyBub3QgcmV0dXJuIGFueXRoaW5nLlxuICovXG5leHBvcnQgY29uc3Qgc2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW1XaXRoSGFzaCA9IChcbiAgdXJsOiBVUkwsXG4gIGhhc2g6IHN0cmluZ1xuKTogdm9pZCA9PiB7XG4gIC8qKlxuICAgKiBOb3RlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBkbyBub3QgdXNlIGB1cmwuc2VhcmNoUGFyYW1zLnNldGAgaGVyZTpcbiAgICpcbiAgICogY29uc3QgdXJsID0gbmV3IFVSTCgnaHR0cHM6Ly9leGFtcGxlLmNvbS9zZWFyY2g/cT1jdXN0b20lMjBzcGFjaW5nJyk7XG4gICAqIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdfcnNjJywgJ2FiYzEyMycpO1xuICAgKiBjb25zb2xlLmxvZyh1cmwudG9TdHJpbmcoKSk7IC8vIE91dHB1dHM6IGh0dHBzOi8vZXhhbXBsZS5jb20vc2VhcmNoP3E9Y3VzdG9tK3NwYWNpbmcmX3JzYz1hYmMxMjNcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gPC0tLSB0aGlzIGlzIGNhdXNpbmcgY29uZnVzaW9uXG4gICAqIFRoaXMgaXMgaW4gZmFjdCBpbnRlbmRlZCBiYXNlZCBvbiBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS11cmxzZWFyY2hwYXJhbXMsIGJ1dFxuICAgKiB3ZSB3YW50IHRvIHByZXNlcnZlIHRoZSAlMjAgYXMgJTIwIGlmIHRoYXQncyB3aGF0IHRoZSB1c2VyIHBhc3NlZCBpbiwgaGVuY2UgdGhlIGN1c3RvbVxuICAgKiBsb2dpYyBiZWxvdy5cbiAgICovXG4gIGNvbnN0IGV4aXN0aW5nU2VhcmNoID0gdXJsLnNlYXJjaFxuICBjb25zdCByYXdRdWVyeSA9IGV4aXN0aW5nU2VhcmNoLnN0YXJ0c1dpdGgoJz8nKVxuICAgID8gZXhpc3RpbmdTZWFyY2guc2xpY2UoMSlcbiAgICA6IGV4aXN0aW5nU2VhcmNoXG5cbiAgLy8gQWx3YXlzIHJlbW92ZSBhbnkgZXhpc3RpbmcgY2FjaGUgYnVzdGluZyBwYXJhbSBhbmQgYWRkIGEgZnJlc2ggb25lIHRvIGVuc3VyZVxuICAvLyB3ZSBoYXZlIHRoZSBjb3JyZWN0IHZhbHVlIGJhc2VkIG9uIGN1cnJlbnQgcmVxdWVzdCBoZWFkZXJzXG4gIGNvbnN0IHBhaXJzID0gcmF3UXVlcnlcbiAgICAuc3BsaXQoJyYnKVxuICAgIC5maWx0ZXIoKHBhaXIpID0+IHBhaXIgJiYgIXBhaXIuc3RhcnRzV2l0aChgJHtORVhUX1JTQ19VTklPTl9RVUVSWX09YCkpXG5cbiAgaWYgKGhhc2gubGVuZ3RoID4gMCkge1xuICAgIHBhaXJzLnB1c2goYCR7TkVYVF9SU0NfVU5JT05fUVVFUll9PSR7aGFzaH1gKVxuICB9IGVsc2Uge1xuICAgIHBhaXJzLnB1c2goYCR7TkVYVF9SU0NfVU5JT05fUVVFUll9YClcbiAgfVxuICB1cmwuc2VhcmNoID0gcGFpcnMubGVuZ3RoID8gYD8ke3BhaXJzLmpvaW4oJyYnKX1gIDogJydcbn1cbiJdLCJuYW1lcyI6WyJzZXRDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbSIsInNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtV2l0aEhhc2giLCJ1cmwiLCJoZWFkZXJzIiwidW5pcXVlQ2FjaGVLZXkiLCJjb21wdXRlQ2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0iLCJORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIiLCJORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSIiwiTkVYVF9VUkwiLCJoYXNoIiwiZXhpc3RpbmdTZWFyY2giLCJzZWFyY2giLCJyYXdRdWVyeSIsInN0YXJ0c1dpdGgiLCJzbGljZSIsInBhaXJzIiwic3BsaXQiLCJmaWx0ZXIiLCJwYWlyIiwiTkVYVF9SU0NfVU5JT05fUVVFUlkiLCJsZW5ndGgiLCJwdXNoIiwiam9pbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"shouldHardNavigate\", ({\n enumerable: true,\n get: function() {\n return shouldHardNavigate;\n }\n}));\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _matchsegments = __webpack_require__(/*! ../match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\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, _matchsegments.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((0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath), parallelRoutes[parallelRouteKey]);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=should-hard-navigate.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3Nob3VsZC1oYXJkLW5hdmlnYXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBU2dCQTs7O2VBQUFBOzs7K0NBSnlCOzJDQUNaO0FBR3RCLFNBQVNBLG1CQUNkQyxpQkFBaUMsRUFDakNDLGlCQUFvQztJQUVwQyxNQUFNLENBQUNDLFNBQVNDLGVBQWUsR0FBR0Y7SUFDbEMsMkNBQTJDO0lBQzNDLE1BQU0sQ0FBQ0csZ0JBQWdCQyxpQkFBaUIsR0FBR0w7SUFLM0MseURBQXlEO0lBQ3pELElBQUksQ0FBQ00sQ0FBQUEsR0FBQUEsZUFBQUEsWUFBQUEsRUFBYUYsZ0JBQWdCRixVQUFVO1FBQzFDLGtHQUFrRztRQUNsRyxJQUFJSyxNQUFNQyxPQUFPLENBQUNKLGlCQUFpQjtZQUNqQyxPQUFPO1FBQ1Q7UUFFQSxzRUFBc0U7UUFDdEUsT0FBTztJQUNUO0lBQ0EsTUFBTUssY0FBY1Qsa0JBQWtCVSxNQUFNLElBQUk7SUFFaEQsSUFBSUQsYUFBYTtRQUNmLE9BQU87SUFDVDtJQUVBLE9BQU9WLG1CQUNMWSxDQUFBQSxHQUFBQSxtQkFBQUEsd0JBQUFBLEVBQXlCWCxvQkFDekJHLGNBQWMsQ0FBQ0UsaUJBQWlCO0FBRXBDIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3Nob3VsZC1oYXJkLW5hdmlnYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIEZsaWdodERhdGFQYXRoLFxuICBTZWdtZW50LFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IGdldE5leHRGbGlnaHRTZWdtZW50UGF0aCB9IGZyb20gJy4uLy4uL2ZsaWdodC1kYXRhLWhlbHBlcnMnXG5pbXBvcnQgeyBtYXRjaFNlZ21lbnQgfSBmcm9tICcuLi9tYXRjaC1zZWdtZW50cydcblxuLy8gVE9ETy1BUFA6IGZsaWdodFNlZ21lbnRQYXRoIHdpbGwgYmUgZW1wdHkgaW4gY2FzZSBvZiBzdGF0aWMgcmVzcG9uc2UsIG5lZWRzIHRvIGJlIGhhbmRsZWQuXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkSGFyZE5hdmlnYXRlKFxuICBmbGlnaHRTZWdtZW50UGF0aDogRmxpZ2h0RGF0YVBhdGgsXG4gIGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlc10gPSBmbGlnaHRSb3V0ZXJTdGF0ZVxuICAvLyBUT0RPLUFQUDogQ2hlY2sgaWYgYGFzYCBjYW4gYmUgcmVwbGFjZWQuXG4gIGNvbnN0IFtjdXJyZW50U2VnbWVudCwgcGFyYWxsZWxSb3V0ZUtleV0gPSBmbGlnaHRTZWdtZW50UGF0aCBhcyBbXG4gICAgU2VnbWVudCxcbiAgICBzdHJpbmcsXG4gIF1cblxuICAvLyBDaGVjayBpZiBjdXJyZW50IHNlZ21lbnQgbWF0Y2hlcyB0aGUgZXhpc3Rpbmcgc2VnbWVudC5cbiAgaWYgKCFtYXRjaFNlZ21lbnQoY3VycmVudFNlZ21lbnQsIHNlZ21lbnQpKSB7XG4gICAgLy8gSWYgZHluYW1pYyBwYXJhbWV0ZXIgaW4gdHJlZSBkb2Vzbid0IG1hdGNoIHVwIHdpdGggc2VnbWVudCBwYXRoIGEgaGFyZCBuYXZpZ2F0aW9uIGlzIHRyaWdnZXJlZC5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50U2VnbWVudCkpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGV4aXN0aW5nIHNlZ21lbnQgZGlkIG5vdCBtYXRjaCBzb2Z0IG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkLlxuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IGxhc3RTZWdtZW50ID0gZmxpZ2h0U2VnbWVudFBhdGgubGVuZ3RoIDw9IDJcblxuICBpZiAobGFzdFNlZ21lbnQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBzaG91bGRIYXJkTmF2aWdhdGUoXG4gICAgZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoKGZsaWdodFNlZ21lbnRQYXRoKSxcbiAgICBwYXJhbGxlbFJvdXRlc1twYXJhbGxlbFJvdXRlS2V5XVxuICApXG59XG4iXSwibmFtZXMiOlsic2hvdWxkSGFyZE5hdmlnYXRlIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsInNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlcyIsImN1cnJlbnRTZWdtZW50IiwicGFyYWxsZWxSb3V0ZUtleSIsIm1hdGNoU2VnbWVudCIsIkFycmF5IiwiaXNBcnJheSIsImxhc3RTZWdtZW50IiwibGVuZ3RoIiwiZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/segment-cache.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/segment-cache.js ***!
|
||
\*******************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Entry point to the Segment Cache implementation.\n *\n * All code related to the Segment Cache lives `segment-cache-impl` directory.\n * Callers access it through this indirection.\n *\n * This is to ensure the code is dead code eliminated from the bundle if the\n * flag is disabled.\n *\n * TODO: This is super tedious. Since experimental flags are an essential part\n * of our workflow, we should establish a better pattern for dead code\n * elimination. Ideally it would be done at the bundler level, like how React's\n * build process works. In the React repo, you don't even need to add any extra\n * configuration per experiment — if the code is not reachable, it gets stripped\n * from the build automatically by Rollup. Or, shorter term, we could stub out\n * experimental modules at build time by updating the build config, i.e. a more\n * automated version of what I'm doing manually in this file.\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 FetchStrategy: function() {\n return FetchStrategy;\n },\n NavigationResultTag: function() {\n return NavigationResultTag;\n },\n PrefetchPriority: function() {\n return PrefetchPriority;\n },\n cancelPrefetchTask: function() {\n return cancelPrefetchTask;\n },\n createCacheKey: function() {\n return createCacheKey;\n },\n getCurrentCacheVersion: function() {\n return getCurrentCacheVersion;\n },\n isPrefetchTaskDirty: function() {\n return isPrefetchTaskDirty;\n },\n navigate: function() {\n return navigate;\n },\n prefetch: function() {\n return prefetch;\n },\n reschedulePrefetchTask: function() {\n return reschedulePrefetchTask;\n },\n revalidateEntireCache: function() {\n return revalidateEntireCache;\n },\n schedulePrefetchTask: function() {\n return schedulePrefetchTask;\n }\n});\nconst notEnabled = ()=>{\n throw Object.defineProperty(new Error('Segment Cache experiment is not enabled. This is a bug in Next.js.'), \"__NEXT_ERROR_CODE\", {\n value: \"E654\",\n enumerable: false,\n configurable: true\n });\n};\nconst prefetch = false ? 0 : notEnabled;\nconst navigate = false ? 0 : notEnabled;\nconst revalidateEntireCache = false ? 0 : notEnabled;\nconst getCurrentCacheVersion = false ? 0 : notEnabled;\nconst schedulePrefetchTask = false ? 0 : notEnabled;\nconst cancelPrefetchTask = false ? 0 : notEnabled;\nconst reschedulePrefetchTask = false ? 0 : notEnabled;\nconst isPrefetchTaskDirty = false ? 0 : notEnabled;\nconst createCacheKey = false ? 0 : notEnabled;\nvar NavigationResultTag = /*#__PURE__*/ function(NavigationResultTag) {\n NavigationResultTag[NavigationResultTag[\"MPA\"] = 0] = \"MPA\";\n NavigationResultTag[NavigationResultTag[\"Success\"] = 1] = \"Success\";\n NavigationResultTag[NavigationResultTag[\"NoOp\"] = 2] = \"NoOp\";\n NavigationResultTag[NavigationResultTag[\"Async\"] = 3] = \"Async\";\n return NavigationResultTag;\n}({});\nvar PrefetchPriority = /*#__PURE__*/ function(PrefetchPriority) {\n /**\n * Assigned to the most recently hovered/touched link. Special network\n * bandwidth is reserved for this task only. There's only ever one Intent-\n * priority task at a time; when a new Intent task is scheduled, the previous\n * one is bumped down to Default.\n */ PrefetchPriority[PrefetchPriority[\"Intent\"] = 2] = \"Intent\";\n /**\n * The default priority for prefetch tasks.\n */ PrefetchPriority[PrefetchPriority[\"Default\"] = 1] = \"Default\";\n /**\n * Assigned to tasks when they spawn non-blocking background work, like\n * revalidating a partially cached entry to see if more data is available.\n */ PrefetchPriority[PrefetchPriority[\"Background\"] = 0] = \"Background\";\n return PrefetchPriority;\n}({});\nvar FetchStrategy = /*#__PURE__*/ function(FetchStrategy) {\n // Deliberately ordered so we can easily compare two segments\n // and determine if one segment is \"more specific\" than another\n // (i.e. if it's likely that it contains more data)\n FetchStrategy[FetchStrategy[\"LoadingBoundary\"] = 0] = \"LoadingBoundary\";\n FetchStrategy[FetchStrategy[\"PPR\"] = 1] = \"PPR\";\n FetchStrategy[FetchStrategy[\"PPRRuntime\"] = 2] = \"PPRRuntime\";\n FetchStrategy[FetchStrategy[\"Full\"] = 3] = \"Full\";\n return FetchStrategy;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=segment-cache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3NlZ21lbnQtY2FjaGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJDOzs7Ozs7Ozs7Ozs7SUErSGlCQSxhQUFhO2VBQWJBOztJQTdCQUMsbUJBQW1CO2VBQW5CQTs7SUFVQUMsZ0JBQWdCO2VBQWhCQTs7SUFuRExDLGtCQUFrQjtlQUFsQkE7O0lBMkJBQyxjQUFjO2VBQWRBOztJQTdDQUMsc0JBQXNCO2VBQXRCQTs7SUFvQ0FDLG1CQUFtQjtlQUFuQkE7O0lBdERBQyxRQUFRO2VBQVJBOztJQVRBQyxRQUFRO2VBQVJBOztJQXNEQUMsc0JBQXNCO2VBQXRCQTs7SUFwQ0FDLHFCQUFxQjtlQUFyQkE7O0lBa0JBQyxvQkFBb0I7ZUFBcEJBOzs7QUExQ2IsTUFBTUMsYUFBa0I7SUFDdEIsTUFBTSxxQkFFTCxDQUZLLElBQUlDLE1BQ1IsdUVBREk7ZUFBQTtvQkFBQTtzQkFBQTtJQUVOO0FBQ0Y7QUFFTyxNQUFNTCxXQUNYTSxNQUF1QyxHQUNuQyxDQUlDLEdBQ0RGO0FBRUMsTUFBTUwsV0FDWE8sTUFBdUMsR0FDbkMsQ0FJQyxHQUNERjtBQUVDLE1BQU1GLHdCQUNYSSxNQUF1QyxHQUNuQyxDQUlDLEdBQ0RGO0FBRUMsTUFBTVAseUJBQ1hTLE1BQXVDLEdBQ25DLENBSUMsR0FDREY7QUFFQyxNQUFNRCx1QkFDWEcsTUFBdUMsR0FDbkMsQ0FJQyxHQUNERjtBQUVDLE1BQU1ULHFCQUNYVyxNQUF1QyxHQUNuQyxDQUlDLEdBQ0RGO0FBRUMsTUFBTUgseUJBQ1hLLE1BQXVDLEdBQ25DLENBSUMsR0FDREY7QUFFQyxNQUFNTixzQkFDWFEsTUFBdUMsR0FDbkMsQ0FJQyxHQUNERjtBQUVDLE1BQU1SLGlCQUNYVSxNQUF1QyxHQUNuQyxDQUlDLEdBQ0RGO0FBT0MsSUFBV1gsc0JBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLG1CQUFBQTs7Ozs7V0FBQUE7O0FBVVgsSUFBV0MsbUJBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLGdCQUFBQTtJQUNoQjs7Ozs7R0FLQztJQUVEOztHQUVDO0lBRUQ7OztHQUdDO1dBZmVBOztBQW1CWCxJQUFXRixnQkFBQUEsV0FBQUEsR0FBQUEsU0FBQUEsYUFBQUE7SUFDaEIsNkRBQTZEO0lBQzdELCtEQUErRDtJQUMvRCxtREFBbUQ7Ozs7O1dBSG5DQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL3NlZ21lbnQtY2FjaGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFbnRyeSBwb2ludCB0byB0aGUgU2VnbWVudCBDYWNoZSBpbXBsZW1lbnRhdGlvbi5cbiAqXG4gKiBBbGwgY29kZSByZWxhdGVkIHRvIHRoZSBTZWdtZW50IENhY2hlIGxpdmVzIGBzZWdtZW50LWNhY2hlLWltcGxgIGRpcmVjdG9yeS5cbiAqIENhbGxlcnMgYWNjZXNzIGl0IHRocm91Z2ggdGhpcyBpbmRpcmVjdGlvbi5cbiAqXG4gKiBUaGlzIGlzIHRvIGVuc3VyZSB0aGUgY29kZSBpcyBkZWFkIGNvZGUgZWxpbWluYXRlZCBmcm9tIHRoZSBidW5kbGUgaWYgdGhlXG4gKiBmbGFnIGlzIGRpc2FibGVkLlxuICpcbiAqIFRPRE86IFRoaXMgaXMgc3VwZXIgdGVkaW91cy4gU2luY2UgZXhwZXJpbWVudGFsIGZsYWdzIGFyZSBhbiBlc3NlbnRpYWwgcGFydFxuICogb2Ygb3VyIHdvcmtmbG93LCB3ZSBzaG91bGQgZXN0YWJsaXNoIGEgYmV0dGVyIHBhdHRlcm4gZm9yIGRlYWQgY29kZVxuICogZWxpbWluYXRpb24uIElkZWFsbHkgaXQgd291bGQgYmUgZG9uZSBhdCB0aGUgYnVuZGxlciBsZXZlbCwgbGlrZSBob3cgUmVhY3Qnc1xuICogYnVpbGQgcHJvY2VzcyB3b3Jrcy4gSW4gdGhlIFJlYWN0IHJlcG8sIHlvdSBkb24ndCBldmVuIG5lZWQgdG8gYWRkIGFueSBleHRyYVxuICogY29uZmlndXJhdGlvbiBwZXIgZXhwZXJpbWVudCDigJQgaWYgdGhlIGNvZGUgaXMgbm90IHJlYWNoYWJsZSwgaXQgZ2V0cyBzdHJpcHBlZFxuICogZnJvbSB0aGUgYnVpbGQgYXV0b21hdGljYWxseSBieSBSb2xsdXAuIE9yLCBzaG9ydGVyIHRlcm0sIHdlIGNvdWxkIHN0dWIgb3V0XG4gKiBleHBlcmltZW50YWwgbW9kdWxlcyBhdCBidWlsZCB0aW1lIGJ5IHVwZGF0aW5nIHRoZSBidWlsZCBjb25maWcsIGkuZS4gYSBtb3JlXG4gKiBhdXRvbWF0ZWQgdmVyc2lvbiBvZiB3aGF0IEknbSBkb2luZyBtYW51YWxseSBpbiB0aGlzIGZpbGUuXG4gKi9cblxuZXhwb3J0IHR5cGUgeyBOYXZpZ2F0aW9uUmVzdWx0IH0gZnJvbSAnLi9zZWdtZW50LWNhY2hlLWltcGwvbmF2aWdhdGlvbidcbmV4cG9ydCB0eXBlIHsgUHJlZmV0Y2hUYXNrIH0gZnJvbSAnLi9zZWdtZW50LWNhY2hlLWltcGwvc2NoZWR1bGVyJ1xuZXhwb3J0IHR5cGUgeyBOb3JtYWxpemVkU2VhcmNoIH0gZnJvbSAnLi9zZWdtZW50LWNhY2hlLWltcGwvY2FjaGUta2V5J1xuXG5jb25zdCBub3RFbmFibGVkOiBhbnkgPSAoKSA9PiB7XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICAnU2VnbWVudCBDYWNoZSBleHBlcmltZW50IGlzIG5vdCBlbmFibGVkLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuJ1xuICApXG59XG5cbmV4cG9ydCBjb25zdCBwcmVmZXRjaDogdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvcHJlZmV0Y2gnKS5wcmVmZXRjaCA9XG4gIHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRVxuICAgID8gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICByZXF1aXJlKCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9wcmVmZXRjaCcpIGFzIHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3ByZWZldGNoJylcbiAgICAgICAgKS5wcmVmZXRjaCguLi5hcmdzKVxuICAgICAgfVxuICAgIDogbm90RW5hYmxlZFxuXG5leHBvcnQgY29uc3QgbmF2aWdhdGU6IHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL25hdmlnYXRpb24nKS5uYXZpZ2F0ZSA9XG4gIHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRVxuICAgID8gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICByZXF1aXJlKCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9uYXZpZ2F0aW9uJykgYXMgdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvbmF2aWdhdGlvbicpXG4gICAgICAgICkubmF2aWdhdGUoLi4uYXJncylcbiAgICAgIH1cbiAgICA6IG5vdEVuYWJsZWRcblxuZXhwb3J0IGNvbnN0IHJldmFsaWRhdGVFbnRpcmVDYWNoZTogdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvY2FjaGUnKS5yZXZhbGlkYXRlRW50aXJlQ2FjaGUgPVxuICBwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEVcbiAgICA/IGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcmVxdWlyZSgnLi9zZWdtZW50LWNhY2hlLWltcGwvY2FjaGUnKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9jYWNoZScpXG4gICAgICAgICkucmV2YWxpZGF0ZUVudGlyZUNhY2hlKC4uLmFyZ3MpXG4gICAgICB9XG4gICAgOiBub3RFbmFibGVkXG5cbmV4cG9ydCBjb25zdCBnZXRDdXJyZW50Q2FjaGVWZXJzaW9uOiB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9jYWNoZScpLmdldEN1cnJlbnRDYWNoZVZlcnNpb24gPVxuICBwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEVcbiAgICA/IGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcmVxdWlyZSgnLi9zZWdtZW50LWNhY2hlLWltcGwvY2FjaGUnKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9jYWNoZScpXG4gICAgICAgICkuZ2V0Q3VycmVudENhY2hlVmVyc2lvbiguLi5hcmdzKVxuICAgICAgfVxuICAgIDogbm90RW5hYmxlZFxuXG5leHBvcnQgY29uc3Qgc2NoZWR1bGVQcmVmZXRjaFRhc2s6IHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3NjaGVkdWxlcicpLnNjaGVkdWxlUHJlZmV0Y2hUYXNrID1cbiAgcHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFXG4gICAgPyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHJlcXVpcmUoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3NjaGVkdWxlcicpIGFzIHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3NjaGVkdWxlcicpXG4gICAgICAgICkuc2NoZWR1bGVQcmVmZXRjaFRhc2soLi4uYXJncylcbiAgICAgIH1cbiAgICA6IG5vdEVuYWJsZWRcblxuZXhwb3J0IGNvbnN0IGNhbmNlbFByZWZldGNoVGFzazogdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvc2NoZWR1bGVyJykuY2FuY2VsUHJlZmV0Y2hUYXNrID1cbiAgcHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFXG4gICAgPyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHJlcXVpcmUoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3NjaGVkdWxlcicpIGFzIHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3NjaGVkdWxlcicpXG4gICAgICAgICkuY2FuY2VsUHJlZmV0Y2hUYXNrKC4uLmFyZ3MpXG4gICAgICB9XG4gICAgOiBub3RFbmFibGVkXG5cbmV4cG9ydCBjb25zdCByZXNjaGVkdWxlUHJlZmV0Y2hUYXNrOiB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9zY2hlZHVsZXInKS5yZXNjaGVkdWxlUHJlZmV0Y2hUYXNrID1cbiAgcHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFXG4gICAgPyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHJlcXVpcmUoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3NjaGVkdWxlcicpIGFzIHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3NjaGVkdWxlcicpXG4gICAgICAgICkucmVzY2hlZHVsZVByZWZldGNoVGFzayguLi5hcmdzKVxuICAgICAgfVxuICAgIDogbm90RW5hYmxlZFxuXG5leHBvcnQgY29uc3QgaXNQcmVmZXRjaFRhc2tEaXJ0eTogdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvc2NoZWR1bGVyJykuaXNQcmVmZXRjaFRhc2tEaXJ0eSA9XG4gIHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRVxuICAgID8gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICByZXF1aXJlKCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9zY2hlZHVsZXInKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9zY2hlZHVsZXInKVxuICAgICAgICApLmlzUHJlZmV0Y2hUYXNrRGlydHkoLi4uYXJncylcbiAgICAgIH1cbiAgICA6IG5vdEVuYWJsZWRcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNhY2hlS2V5OiB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9jYWNoZS1rZXknKS5jcmVhdGVDYWNoZUtleSA9XG4gIHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRVxuICAgID8gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICByZXF1aXJlKCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9jYWNoZS1rZXknKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9jYWNoZS1rZXknKVxuICAgICAgICApLmNyZWF0ZUNhY2hlS2V5KC4uLmFyZ3MpXG4gICAgICB9XG4gICAgOiBub3RFbmFibGVkXG5cbi8qKlxuICogQmVsb3cgYXJlIHB1YmxpYyBjb25zdGFudHMuIFRoZXkncmUgc21hbGwgZW5vdWdoIHRoYXQgd2UgZG9uJ3QgbmVlZCB0b1xuICogRENFIHRoZW0uXG4gKi9cblxuZXhwb3J0IGNvbnN0IGVudW0gTmF2aWdhdGlvblJlc3VsdFRhZyB7XG4gIE1QQSxcbiAgU3VjY2VzcyxcbiAgTm9PcCxcbiAgQXN5bmMsXG59XG5cbi8qKlxuICogVGhlIHByaW9yaXR5IG9mIHRoZSBwcmVmZXRjaCB0YXNrLiBIaWdoZXIgbnVtYmVycyBhcmUgaGlnaGVyIHByaW9yaXR5LlxuICovXG5leHBvcnQgY29uc3QgZW51bSBQcmVmZXRjaFByaW9yaXR5IHtcbiAgLyoqXG4gICAqIEFzc2lnbmVkIHRvIHRoZSBtb3N0IHJlY2VudGx5IGhvdmVyZWQvdG91Y2hlZCBsaW5rLiBTcGVjaWFsIG5ldHdvcmtcbiAgICogYmFuZHdpZHRoIGlzIHJlc2VydmVkIGZvciB0aGlzIHRhc2sgb25seS4gVGhlcmUncyBvbmx5IGV2ZXIgb25lIEludGVudC1cbiAgICogcHJpb3JpdHkgdGFzayBhdCBhIHRpbWU7IHdoZW4gYSBuZXcgSW50ZW50IHRhc2sgaXMgc2NoZWR1bGVkLCB0aGUgcHJldmlvdXNcbiAgICogb25lIGlzIGJ1bXBlZCBkb3duIHRvIERlZmF1bHQuXG4gICAqL1xuICBJbnRlbnQgPSAyLFxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgcHJpb3JpdHkgZm9yIHByZWZldGNoIHRhc2tzLlxuICAgKi9cbiAgRGVmYXVsdCA9IDEsXG4gIC8qKlxuICAgKiBBc3NpZ25lZCB0byB0YXNrcyB3aGVuIHRoZXkgc3Bhd24gbm9uLWJsb2NraW5nIGJhY2tncm91bmQgd29yaywgbGlrZVxuICAgKiByZXZhbGlkYXRpbmcgYSBwYXJ0aWFsbHkgY2FjaGVkIGVudHJ5IHRvIHNlZSBpZiBtb3JlIGRhdGEgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgQmFja2dyb3VuZCA9IDAsXG59XG5cbmV4cG9ydCBjb25zdCBlbnVtIEZldGNoU3RyYXRlZ3kge1xuICAvLyBEZWxpYmVyYXRlbHkgb3JkZXJlZCBzbyB3ZSBjYW4gZWFzaWx5IGNvbXBhcmUgdHdvIHNlZ21lbnRzXG4gIC8vIGFuZCBkZXRlcm1pbmUgaWYgb25lIHNlZ21lbnQgaXMgXCJtb3JlIHNwZWNpZmljXCIgdGhhbiBhbm90aGVyXG4gIC8vIChpLmUuIGlmIGl0J3MgbGlrZWx5IHRoYXQgaXQgY29udGFpbnMgbW9yZSBkYXRhKVxuICBMb2FkaW5nQm91bmRhcnkgPSAwLFxuICBQUFIgPSAxLFxuICBQUFJSdW50aW1lID0gMixcbiAgRnVsbCA9IDMsXG59XG5cbi8qKlxuICogQSBzdWJzZXQgb2YgZmV0Y2ggc3RyYXRlZ2llcyB1c2VkIGZvciBwcmVmZXRjaCB0YXNrcy5cbiAqIEEgcHJlZmV0Y2ggdGFzayBjYW4ndCBrbm93IGlmIGl0IHNob3VsZCB1c2UgYFBQUmAgb3IgYExvYWRpbmdCb3VuZGFyeWBcbiAqIHVudGlsIHdlIGNvbXBsZXRlIHRoZSBpbml0aWFsIHRyZWUgcHJlZmV0Y2ggcmVxdWVzdCwgc28gd2UgdXNlIGBQUFJgIHRvIHNpZ25hbCBib3RoIGNhc2VzXG4gKiBhbmQgYWRqdXN0IGl0IGJhc2VkIG9uIHRoZSByb3V0ZSB3aGVuIGFjdHVhbGx5IGZldGNoaW5nLlxuICogKi9cbmV4cG9ydCB0eXBlIFByZWZldGNoVGFza0ZldGNoU3RyYXRlZ3kgPVxuICB8IEZldGNoU3RyYXRlZ3kuUFBSXG4gIHwgRmV0Y2hTdHJhdGVneS5QUFJSdW50aW1lXG4gIHwgRmV0Y2hTdHJhdGVneS5GdWxsXG4iXSwibmFtZXMiOlsiRmV0Y2hTdHJhdGVneSIsIk5hdmlnYXRpb25SZXN1bHRUYWciLCJQcmVmZXRjaFByaW9yaXR5IiwiY2FuY2VsUHJlZmV0Y2hUYXNrIiwiY3JlYXRlQ2FjaGVLZXkiLCJnZXRDdXJyZW50Q2FjaGVWZXJzaW9uIiwiaXNQcmVmZXRjaFRhc2tEaXJ0eSIsIm5hdmlnYXRlIiwicHJlZmV0Y2giLCJyZXNjaGVkdWxlUHJlZmV0Y2hUYXNrIiwicmV2YWxpZGF0ZUVudGlyZUNhY2hlIiwic2NoZWR1bGVQcmVmZXRjaFRhc2siLCJub3RFbmFibGVkIiwiRXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFIiwiYXJncyIsInJlcXVpcmUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/segment-cache.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/static-generation-bailout.js ***!
|
||
\*******************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 StaticGenBailoutError: function() {\n return StaticGenBailoutError;\n },\n isStaticGenBailoutError: function() {\n return isStaticGenBailoutError;\n }\n});\nconst NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT';\nclass StaticGenBailoutError extends Error {\n constructor(...args){\n super(...args), 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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=static-generation-bailout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWFBLHFCQUFxQjtlQUFyQkE7O0lBSUdDLHVCQUF1QjtlQUF2QkE7OztBQU5oQixNQUFNQywwQkFBMEI7QUFFekIsTUFBTUYsOEJBQThCRzs7UUFBcEMscUJBQ1dDLElBQUFBLEdBQU9GOztBQUN6QjtBQUVPLFNBQVNELHdCQUNkSSxLQUFjO0lBRWQsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxDQUFFLFdBQVVBLEtBQUFBLENBQUksRUFBSTtRQUNyRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQSxNQUFNRCxJQUFJLEtBQUtGO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCA9ICdORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCdcblxuZXhwb3J0IGNsYXNzIFN0YXRpY0dlbkJhaWxvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGNvZGUgPSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBTdGF0aWNHZW5CYWlsb3V0RXJyb3Ige1xuICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCB8fCAhKCdjb2RlJyBpbiBlcnJvcikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnJvci5jb2RlID09PSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuIl0sIm5hbWVzIjpbIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsImlzU3RhdGljR2VuQmFpbG91dEVycm9yIiwiTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQiLCJFcnJvciIsImNvZGUiLCJlcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/unauthorized.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/unauthorized.js ***!
|
||
\******************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unauthorized\", ({\n enumerable: true,\n get: function() {\n return unauthorized;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\n// TODO: Add `unauthorized` docs\n/**\n * @experimental\n * This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)\n * within a route segment as well as inject a tag.\n *\n * `unauthorized()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n *\n * Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)\n */ const DIGEST = \"\" + _httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE + \";401\";\nfunction unauthorized() {\n if (true) {\n throw Object.defineProperty(new Error(\"`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E411\",\n enumerable: false,\n configurable: true\n });\n }\n // eslint-disable-next-line no-throw-literal\n const error = Object.defineProperty(new Error(DIGEST), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = DIGEST;\n throw error;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unauthorized.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQXNCZ0JBOzs7ZUFBQUE7OztnREFuQlQ7QUFFUCxnQ0FBZ0M7QUFDaEM7Ozs7Ozs7Ozs7OztDQVlDLEdBRUQsTUFBTUMsU0FBVSxLQUFFQyxvQkFBQUEsOEJBQThCLEdBQUM7QUFFMUMsU0FBU0Y7SUFDZCxJQUFJLElBQWdELEVBQUU7UUFDcEQsTUFBTSxxQkFFTCxDQUZLLElBQUlNLE1BQ1AsZ0hBREc7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUEsNENBQTRDO0lBQzVDLE1BQU1DLFFBQVEscUJBQWlCLENBQWpCLElBQUlELE1BQU1MLFNBQVY7ZUFBQTtvQkFBQTtzQkFBQTtJQUFnQjtJQUM1Qk0sTUFBa0NDLE1BQU0sR0FBR1A7SUFDN0MsTUFBTU07QUFDUiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUsXG4gIHR5cGUgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IsXG59IGZyb20gJy4vaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2snXG5cbi8vIFRPRE86IEFkZCBgdW5hdXRob3JpemVkYCBkb2NzXG4vKipcbiAqIEBleHBlcmltZW50YWxcbiAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byByZW5kZXIgdGhlIFt1bmF1dGhvcml6ZWQuanMgZmlsZV0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZmlsZS1jb252ZW50aW9ucy91bmF1dGhvcml6ZWQpXG4gKiB3aXRoaW4gYSByb3V0ZSBzZWdtZW50IGFzIHdlbGwgYXMgaW5qZWN0IGEgdGFnLlxuICpcbiAqIGB1bmF1dGhvcml6ZWQoKWAgY2FuIGJlIHVzZWQgaW5cbiAqIFtTZXJ2ZXIgQ29tcG9uZW50c10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzKSxcbiAqIFtSb3V0ZSBIYW5kbGVyc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9yb3V0ZS1oYW5kbGVycyksIGFuZFxuICogW1NlcnZlciBBY3Rpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL3NlcnZlci1hY3Rpb25zLWFuZC1tdXRhdGlvbnMpLlxuICpcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1bmF1dGhvcml6ZWRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5hdXRob3JpemVkKVxuICovXG5cbmNvbnN0IERJR0VTVCA9IGAke0hUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERX07NDAxYFxuXG5leHBvcnQgZnVuY3Rpb24gdW5hdXRob3JpemVkKCk6IG5ldmVyIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX0FVVEhfSU5URVJSVVBUUykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBcXGB1bmF1dGhvcml6ZWQoKVxcYCBpcyBleHBlcmltZW50YWwgYW5kIG9ubHkgYWxsb3dlZCB0byBiZSB1c2VkIHdoZW4gXFxgZXhwZXJpbWVudGFsLmF1dGhJbnRlcnJ1cHRzXFxgIGlzIGVuYWJsZWQuYFxuICAgIClcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10aHJvdy1saXRlcmFsXG4gIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKERJR0VTVCkgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JcbiAgOyhlcnJvciBhcyBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcikuZGlnZXN0ID0gRElHRVNUXG4gIHRocm93IGVycm9yXG59XG4iXSwibmFtZXMiOlsidW5hdXRob3JpemVkIiwiRElHRVNUIiwiSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9FWFBFUklNRU5UQUxfQVVUSF9JTlRFUlJVUFRTIiwiRXJyb3IiLCJlcnJvciIsImRpZ2VzdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unauthorized.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/unrecognized-action-error.js":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/unrecognized-action-error.js ***!
|
||
\*******************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 UnrecognizedActionError: function() {\n return UnrecognizedActionError;\n },\n unstable_isUnrecognizedActionError: function() {\n return unstable_isUnrecognizedActionError;\n }\n});\nclass UnrecognizedActionError extends Error {\n constructor(...args){\n super(...args);\n this.name = 'UnrecognizedActionError';\n }\n}\nfunction unstable_isUnrecognizedActionError(error) {\n return !!(error && typeof error === 'object' && error instanceof UnrecognizedActionError);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unrecognized-action-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VucmVjb2duaXplZC1hY3Rpb24tZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQWFBLHVCQUF1QjtlQUF2QkE7O0lBeUJHQyxrQ0FBa0M7ZUFBbENBOzs7QUF6QlQsTUFBTUQsZ0NBQWdDRTtJQUMzQ0MsWUFBWSxHQUFHQyxJQUF5QyxDQUFFO1FBQ3hELEtBQUssSUFBSUE7UUFDVCxJQUFJLENBQUNDLElBQUksR0FBRztJQUNkO0FBQ0Y7QUFvQk8sU0FBU0osbUNBQ2RLLEtBQWM7SUFFZCxPQUFPLENBQUMsQ0FDTkEsQ0FBQUEsU0FDQSxPQUFPQSxVQUFVLFlBQ2pCQSxpQkFBaUJOLHVCQUFBQSxDQUFzQjtBQUUzQyIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL3VucmVjb2duaXplZC1hY3Rpb24tZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVucmVjb2duaXplZEFjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvciguLi5hcmdzOiBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEVycm9yPikge1xuICAgIHN1cGVyKC4uLmFyZ3MpXG4gICAgdGhpcy5uYW1lID0gJ1VucmVjb2duaXplZEFjdGlvbkVycm9yJ1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIHNlcnZlciBhY3Rpb24gY2FsbCBmYWlsZWQgYmVjYXVzZSB0aGUgc2VydmVyIGFjdGlvbiB3YXMgbm90IHJlY29nbml6ZWQgYnkgdGhlIHNlcnZlci5cbiAqIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgY2xpZW50IGFuZCB0aGUgc2VydmVyIGFyZSBub3QgZnJvbSB0aGUgc2FtZSBkZXBsb3ltZW50LlxuICpcbiAqIEV4YW1wbGUgdXNhZ2U6XG4gKiBgYGB0c1xuICogdHJ5IHtcbiAqICAgYXdhaXQgbXlTZXJ2ZXJBY3Rpb24oKTtcbiAqIH0gY2F0Y2ggKGVycikge1xuICogICBpZiAodW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcihlcnIpKSB7XG4gKiAgICAgLy8gVGhlIGNsaWVudCBpcyBmcm9tIGEgZGlmZmVyZW50IGRlcGxveW1lbnQgdGhhbiB0aGUgc2VydmVyLlxuICogICAgIC8vIFJlbG9hZGluZyB0aGUgcGFnZSB3aWxsIGZpeCB0aGlzIG1pc21hdGNoLlxuICogICAgIHdpbmRvdy5hbGVydChcIlBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIGFuZCB0cnkgYWdhaW5cIik7XG4gKiAgICAgcmV0dXJuO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqICovXG5leHBvcnQgZnVuY3Rpb24gdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcihcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIFVucmVjb2duaXplZEFjdGlvbkVycm9yIHtcbiAgcmV0dXJuICEhKFxuICAgIGVycm9yICYmXG4gICAgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJlxuICAgIGVycm9yIGluc3RhbmNlb2YgVW5yZWNvZ25pemVkQWN0aW9uRXJyb3JcbiAgKVxufVxuIl0sIm5hbWVzIjpbIlVucmVjb2duaXplZEFjdGlvbkVycm9yIiwidW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJhcmdzIiwibmFtZSIsImVycm9yIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unrecognized-action-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js":
|
||
/*!*************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/unresolved-thenable.js ***!
|
||
\*************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Create a \"Thenable\" that does not resolve. This is used to suspend indefinitely when data is not available yet.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unresolvedThenable\", ({\n enumerable: true,\n get: function() {\n return unresolvedThenable;\n }\n}));\nconst unresolvedThenable = {\n then: ()=>{}\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unresolved-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VucmVzb2x2ZWQtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7O0NBRUM7Ozs7c0RBQ1lBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHFCQUFxQjtJQUNoQ0MsTUFBTSxLQUFPO0FBQ2YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvY29tcG9uZW50cy91bnJlc29sdmVkLXRoZW5hYmxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlIGEgXCJUaGVuYWJsZVwiIHRoYXQgZG9lcyBub3QgcmVzb2x2ZS4gVGhpcyBpcyB1c2VkIHRvIHN1c3BlbmQgaW5kZWZpbml0ZWx5IHdoZW4gZGF0YSBpcyBub3QgYXZhaWxhYmxlIHlldC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVucmVzb2x2ZWRUaGVuYWJsZSA9IHtcbiAgdGhlbjogKCkgPT4ge30sXG59IGFzIFByb21pc2VMaWtlPHZvaWQ+XG4iXSwibmFtZXMiOlsidW5yZXNvbHZlZFRoZW5hYmxlIiwidGhlbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/unstable-rethrow.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.\n * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.\n * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.\n *\n * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unstable_rethrow\", ({\n enumerable: true,\n get: function() {\n return unstable_rethrow;\n }\n}));\nconst unstable_rethrow = true ? (__webpack_require__(/*! ./unstable-rethrow.server */ \"(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.server.js\").unstable_rethrow) : 0;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unstable-rethrow.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3Vuc3RhYmxlLXJldGhyb3cuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztDQU1DOzs7O29EQUNZQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxtQkFDWCxLQUE2QixHQUV2QkUsc0pBQ2dCLEdBRWhCQSxDQUNnQiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9jb21wb25lbnRzL3Vuc3RhYmxlLXJldGhyb3cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHRvIHJldGhyb3cgaW50ZXJuYWwgTmV4dC5qcyBlcnJvcnMgc28gdGhhdCB0aGV5IGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBmcmFtZXdvcmsuXG4gKiBXaGVuIHdyYXBwaW5nIGFuIEFQSSB0aGF0IHVzZXMgZXJyb3JzIHRvIGludGVycnVwdCBjb250cm9sIGZsb3csIHlvdSBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gYmVmb3JlIHlvdSBkbyBhbnkgZXJyb3IgaGFuZGxpbmcuXG4gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0aHJvdyB0aGUgZXJyb3IgaWYgaXQgaXMgYSBOZXh0LmpzIGVycm9yIHNvIGl0IGNhbiBiZSBoYW5kbGVkLCBvdGhlcndpc2UgaXQgd2lsbCBkbyBub3RoaW5nLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYHVuc3RhYmxlX3JldGhyb3dgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5zdGFibGVfcmV0aHJvdylcbiAqL1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX3JldGhyb3cgPVxuICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJ1xuICAgID8gKFxuICAgICAgICByZXF1aXJlKCcuL3Vuc3RhYmxlLXJldGhyb3cuc2VydmVyJykgYXMgdHlwZW9mIGltcG9ydCgnLi91bnN0YWJsZS1yZXRocm93LnNlcnZlcicpXG4gICAgICApLnVuc3RhYmxlX3JldGhyb3dcbiAgICA6IChcbiAgICAgICAgcmVxdWlyZSgnLi91bnN0YWJsZS1yZXRocm93LmJyb3dzZXInKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3Vuc3RhYmxlLXJldGhyb3cuYnJvd3NlcicpXG4gICAgICApLnVuc3RhYmxlX3JldGhyb3dcbiJdLCJuYW1lcyI6WyJ1bnN0YWJsZV9yZXRocm93Iiwid2luZG93IiwicmVxdWlyZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.server.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/unstable-rethrow.server.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unstable_rethrow\", ({\n enumerable: true,\n get: function() {\n return unstable_rethrow;\n }\n}));\nconst _dynamicrenderingutils = __webpack_require__(/*! ../../server/dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _ispostpone = __webpack_require__(/*! ../../server/lib/router-utils/is-postpone */ \"(ssr)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _isnextroutererror = __webpack_require__(/*! ./is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../../server/app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _hooksservercontext = __webpack_require__(/*! ./hooks-server-context */ \"(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nfunction unstable_rethrow(error) {\n if ((0, _isnextroutererror.isNextRouterError)(error) || (0, _bailouttocsr.isBailoutToCSRError)(error) || (0, _hooksservercontext.isDynamicServerError)(error) || (0, _dynamicrendering.isDynamicPostpone)(error) || (0, _ispostpone.isPostpone)(error) || (0, _dynamicrenderingutils.isHangingPromiseRejectionError)(error)) {\n throw error;\n }\n if (error instanceof Error && 'cause' in error) {\n unstable_rethrow(error.cause);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unstable-rethrow.server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3Vuc3RhYmxlLXJldGhyb3cuc2VydmVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7b0RBT2dCQTs7O2VBQUFBOzs7bURBUCtCO3dDQUNwQjswQ0FDUzsrQ0FDRjs4Q0FDQTtnREFDRztBQUU5QixTQUFTQSxpQkFBaUJDLEtBQWM7SUFDN0MsSUFDRUMsQ0FBQUEsR0FBQUEsbUJBQUFBLGlCQUFBQSxFQUFrQkQsVUFDbEJFLENBQUFBLEdBQUFBLGNBQUFBLG1CQUFBQSxFQUFvQkYsVUFDcEJHLENBQUFBLEdBQUFBLG9CQUFBQSxvQkFBQUEsRUFBcUJILFVBQ3JCSSxDQUFBQSxHQUFBQSxrQkFBQUEsaUJBQUFBLEVBQWtCSixVQUNsQkssQ0FBQUEsR0FBQUEsWUFBQUEsVUFBQUEsRUFBV0wsVUFDWE0sQ0FBQUEsR0FBQUEsdUJBQUFBLDhCQUFBQSxFQUErQk4sUUFDL0I7UUFDQSxNQUFNQTtJQUNSO0lBRUEsSUFBSUEsaUJBQWlCTyxTQUFTLFdBQVdQLE9BQU87UUFDOUNELGlCQUFpQkMsTUFBTVEsS0FBSztJQUM5QjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvdW5zdGFibGUtcmV0aHJvdy5zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vc2VydmVyL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHsgaXNQb3N0cG9uZSB9IGZyb20gJy4uLy4uL3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lJ1xuaW1wb3J0IHsgaXNCYWlsb3V0VG9DU1JFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyJ1xuaW1wb3J0IHsgaXNOZXh0Um91dGVyRXJyb3IgfSBmcm9tICcuL2lzLW5leHQtcm91dGVyLWVycm9yJ1xuaW1wb3J0IHsgaXNEeW5hbWljUG9zdHBvbmUgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZydcbmltcG9ydCB7IGlzRHluYW1pY1NlcnZlckVycm9yIH0gZnJvbSAnLi9ob29rcy1zZXJ2ZXItY29udGV4dCdcblxuZXhwb3J0IGZ1bmN0aW9uIHVuc3RhYmxlX3JldGhyb3coZXJyb3I6IHVua25vd24pOiB2b2lkIHtcbiAgaWYgKFxuICAgIGlzTmV4dFJvdXRlckVycm9yKGVycm9yKSB8fFxuICAgIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyb3IpIHx8XG4gICAgaXNEeW5hbWljU2VydmVyRXJyb3IoZXJyb3IpIHx8XG4gICAgaXNEeW5hbWljUG9zdHBvbmUoZXJyb3IpIHx8XG4gICAgaXNQb3N0cG9uZShlcnJvcikgfHxcbiAgICBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3IoZXJyb3IpXG4gICkge1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiAnY2F1c2UnIGluIGVycm9yKSB7XG4gICAgdW5zdGFibGVfcmV0aHJvdyhlcnJvci5jYXVzZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbInVuc3RhYmxlX3JldGhyb3ciLCJlcnJvciIsImlzTmV4dFJvdXRlckVycm9yIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsImlzRHluYW1pY1NlcnZlckVycm9yIiwiaXNEeW5hbWljUG9zdHBvbmUiLCJpc1Bvc3Rwb25lIiwiaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yIiwiRXJyb3IiLCJjYXVzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.server.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/components/use-action-queue.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/components/use-action-queue.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((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 dispatchAppRouterAction: function() {\n return dispatchAppRouterAction;\n },\n useActionQueue: function() {\n return useActionQueue;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _isthenable = __webpack_require__(/*! ../../shared/lib/is-thenable */ \"(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js\");\n// The app router state lives outside of React, so we can import the dispatch\n// method directly wherever we need it, rather than passing it around via props\n// or context.\nlet dispatch = null;\nfunction dispatchAppRouterAction(action) {\n if (dispatch === null) {\n throw Object.defineProperty(new Error('Internal Next.js error: Router action dispatched before initialization.'), \"__NEXT_ERROR_CODE\", {\n value: \"E668\",\n enumerable: false,\n configurable: true\n });\n }\n dispatch(action);\n}\nfunction useActionQueue(actionQueue) {\n const [state, setState] = _react.default.useState(actionQueue.state);\n // Because of a known issue that requires to decode Flight streams inside the\n // render phase, we have to be a bit clever and assign the dispatch method to\n // a module-level variable upon initialization. The useState hook in this\n // module only exists to synchronize state that lives outside of React.\n // Ideally, what we'd do instead is pass the state as a prop to root.render;\n // this is conceptually how we're modeling the app router state, despite the\n // weird implementation details.\n if (true) {\n const { useAppDevRenderingIndicator } = __webpack_require__(/*! ../../next-devtools/userspace/use-app-dev-rendering-indicator */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js\");\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const appDevRenderingIndicator = useAppDevRenderingIndicator();\n dispatch = (action)=>{\n appDevRenderingIndicator(()=>{\n actionQueue.dispatch(action, setState);\n });\n };\n } else {}\n return (0, _isthenable.isThenable)(state) ? (0, _react.use)(state) : state;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-action-queue.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VzZS1hY3Rpb24tcXVldWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBZWdCQSx1QkFBdUI7ZUFBdkJBOztJQVNBQyxjQUFjO2VBQWRBOzs7OzZFQXZCVzt3Q0FDQTtBQVEzQiw2RUFBNkU7QUFDN0UsK0VBQStFO0FBQy9FLGNBQWM7QUFDZCxJQUFJQyxXQUE0QztBQUV6QyxTQUFTRix3QkFBd0JHLE1BQXNCO0lBQzVELElBQUlELGFBQWEsTUFBTTtRQUNyQixNQUFNLHFCQUVMLENBRkssSUFBSUUsTUFDUiw0RUFESTttQkFBQTt3QkFBQTswQkFBQTtRQUVOO0lBQ0Y7SUFDQUYsU0FBU0M7QUFDWDtBQUVPLFNBQVNGLGVBQ2RJLFdBQWlDO0lBRWpDLE1BQU0sQ0FBQ0MsT0FBT0MsU0FBUyxHQUFHQyxPQUFBQSxPQUFLLENBQUNDLFFBQVEsQ0FBZUosWUFBWUMsS0FBSztJQUV4RSw2RUFBNkU7SUFDN0UsNkVBQTZFO0lBQzdFLHlFQUF5RTtJQUN6RSx1RUFBdUU7SUFDdkUsNEVBQTRFO0lBQzVFLDRFQUE0RTtJQUM1RSxnQ0FBZ0M7SUFDaEMsSUFBSUksSUFBb0IsRUFBbUI7UUFDekMsTUFBTSxFQUFFRywyQkFBMkIsRUFBRSxHQUNuQ0MsbUJBQU9BLENBQUMsZ0tBQStEO1FBQ3pFLHNEQUFzRDtRQUN0RCxNQUFNQywyQkFBMkJGO1FBRWpDWCxXQUFXLENBQUNDO1lBQ1ZZLHlCQUF5QjtnQkFDdkJWLFlBQVlILFFBQVEsQ0FBQ0MsUUFBUUk7WUFDL0I7UUFDRjtJQUNGLE9BQU8sRUFHTjtJQUVELE9BQU9TLENBQUFBLEdBQUFBLFlBQUFBLFVBQUFBLEVBQVdWLFNBQVNXLENBQUFBLEdBQUFBLE9BQUFBLEdBQUFBLEVBQUlYLFNBQVNBO0FBQzFDIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2NvbXBvbmVudHMvdXNlLWFjdGlvbi1xdWV1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc3BhdGNoIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHsgdXNlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBpc1RoZW5hYmxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9pcy10aGVuYWJsZSdcbmltcG9ydCB0eXBlIHsgQXBwUm91dGVyQWN0aW9uUXVldWUgfSBmcm9tICcuL2FwcC1yb3V0ZXItaW5zdGFuY2UnXG5pbXBvcnQgdHlwZSB7XG4gIEFwcFJvdXRlclN0YXRlLFxuICBSZWR1Y2VyQWN0aW9ucyxcbiAgUmVkdWNlclN0YXRlLFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuXG4vLyBUaGUgYXBwIHJvdXRlciBzdGF0ZSBsaXZlcyBvdXRzaWRlIG9mIFJlYWN0LCBzbyB3ZSBjYW4gaW1wb3J0IHRoZSBkaXNwYXRjaFxuLy8gbWV0aG9kIGRpcmVjdGx5IHdoZXJldmVyIHdlIG5lZWQgaXQsIHJhdGhlciB0aGFuIHBhc3NpbmcgaXQgYXJvdW5kIHZpYSBwcm9wc1xuLy8gb3IgY29udGV4dC5cbmxldCBkaXNwYXRjaDogRGlzcGF0Y2g8UmVkdWNlckFjdGlvbnM+IHwgbnVsbCA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKGFjdGlvbjogUmVkdWNlckFjdGlvbnMpIHtcbiAgaWYgKGRpc3BhdGNoID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0ludGVybmFsIE5leHQuanMgZXJyb3I6IFJvdXRlciBhY3Rpb24gZGlzcGF0Y2hlZCBiZWZvcmUgaW5pdGlhbGl6YXRpb24uJ1xuICAgIClcbiAgfVxuICBkaXNwYXRjaChhY3Rpb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VBY3Rpb25RdWV1ZShcbiAgYWN0aW9uUXVldWU6IEFwcFJvdXRlckFjdGlvblF1ZXVlXG4pOiBBcHBSb3V0ZXJTdGF0ZSB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gUmVhY3QudXNlU3RhdGU8UmVkdWNlclN0YXRlPihhY3Rpb25RdWV1ZS5zdGF0ZSlcblxuICAvLyBCZWNhdXNlIG9mIGEga25vd24gaXNzdWUgdGhhdCByZXF1aXJlcyB0byBkZWNvZGUgRmxpZ2h0IHN0cmVhbXMgaW5zaWRlIHRoZVxuICAvLyByZW5kZXIgcGhhc2UsIHdlIGhhdmUgdG8gYmUgYSBiaXQgY2xldmVyIGFuZCBhc3NpZ24gdGhlIGRpc3BhdGNoIG1ldGhvZCB0b1xuICAvLyBhIG1vZHVsZS1sZXZlbCB2YXJpYWJsZSB1cG9uIGluaXRpYWxpemF0aW9uLiBUaGUgdXNlU3RhdGUgaG9vayBpbiB0aGlzXG4gIC8vIG1vZHVsZSBvbmx5IGV4aXN0cyB0byBzeW5jaHJvbml6ZSBzdGF0ZSB0aGF0IGxpdmVzIG91dHNpZGUgb2YgUmVhY3QuXG4gIC8vIElkZWFsbHksIHdoYXQgd2UnZCBkbyBpbnN0ZWFkIGlzIHBhc3MgdGhlIHN0YXRlIGFzIGEgcHJvcCB0byByb290LnJlbmRlcjtcbiAgLy8gdGhpcyBpcyBjb25jZXB0dWFsbHkgaG93IHdlJ3JlIG1vZGVsaW5nIHRoZSBhcHAgcm91dGVyIHN0YXRlLCBkZXNwaXRlIHRoZVxuICAvLyB3ZWlyZCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLlxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNvbnN0IHsgdXNlQXBwRGV2UmVuZGVyaW5nSW5kaWNhdG9yIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvdXNlLWFwcC1kZXYtcmVuZGVyaW5nLWluZGljYXRvcicpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL3VzZS1hcHAtZGV2LXJlbmRlcmluZy1pbmRpY2F0b3InKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIGNvbnN0IGFwcERldlJlbmRlcmluZ0luZGljYXRvciA9IHVzZUFwcERldlJlbmRlcmluZ0luZGljYXRvcigpXG5cbiAgICBkaXNwYXRjaCA9IChhY3Rpb246IFJlZHVjZXJBY3Rpb25zKSA9PiB7XG4gICAgICBhcHBEZXZSZW5kZXJpbmdJbmRpY2F0b3IoKCkgPT4ge1xuICAgICAgICBhY3Rpb25RdWV1ZS5kaXNwYXRjaChhY3Rpb24sIHNldFN0YXRlKVxuICAgICAgfSlcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZGlzcGF0Y2ggPSAoYWN0aW9uOiBSZWR1Y2VyQWN0aW9ucykgPT5cbiAgICAgIGFjdGlvblF1ZXVlLmRpc3BhdGNoKGFjdGlvbiwgc2V0U3RhdGUpXG4gIH1cblxuICByZXR1cm4gaXNUaGVuYWJsZShzdGF0ZSkgPyB1c2Uoc3RhdGUpIDogc3RhdGVcbn1cbiJdLCJuYW1lcyI6WyJkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiIsInVzZUFjdGlvblF1ZXVlIiwiZGlzcGF0Y2giLCJhY3Rpb24iLCJFcnJvciIsImFjdGlvblF1ZXVlIiwic3RhdGUiLCJzZXRTdGF0ZSIsIlJlYWN0IiwidXNlU3RhdGUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1c2VBcHBEZXZSZW5kZXJpbmdJbmRpY2F0b3IiLCJyZXF1aXJlIiwiYXBwRGV2UmVuZGVyaW5nSW5kaWNhdG9yIiwiaXNUaGVuYWJsZSIsInVzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js":
|
||
/*!********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js ***!
|
||
\********************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* module decorator */ module = __webpack_require__.nmd(module);\n/// <reference types=\"webpack/module.d.ts\" />\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 default: function() {\n return HotReload;\n },\n waitForWebpackRuntimeHotUpdate: function() {\n return waitForWebpackRuntimeHotUpdate;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\nconst _formatwebpackmessages = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../shared/lib/format-webpack-messages */ \"(ssr)/./node_modules/next/dist/shared/lib/format-webpack-messages.js\"));\nconst _navigation = __webpack_require__(/*! ../../../components/navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\nconst _shared = __webpack_require__(/*! ../shared */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/shared.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _replayssronlyerrors = __webpack_require__(/*! ../../../../next-devtools/userspace/app/errors/replay-ssr-only-errors */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js\");\nconst _appdevoverlayerrorboundary = __webpack_require__(/*! ../../../../next-devtools/userspace/app/app-dev-overlay-error-boundary */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js\");\nconst _useerrorhandler = __webpack_require__(/*! ../../../../next-devtools/userspace/app/errors/use-error-handler */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ../../runtime-error-handler */ \"(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js\");\nconst _usewebsocket = __webpack_require__(/*! ./use-websocket */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js\");\nconst _hotreloadertypes = __webpack_require__(/*! ../../../../server/dev/hot-reloader-types */ \"(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _navigationuntracked = __webpack_require__(/*! ../../../components/navigation-untracked */ \"(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\");\nconst _reporthmrlatency = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../report-hmr-latency */ \"(ssr)/./node_modules/next/dist/client/dev/report-hmr-latency.js\"));\nconst _turbopackhotreloadercommon = __webpack_require__(/*! ../turbopack-hot-reloader-common */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js\");\nconst _approuterheaders = __webpack_require__(/*! ../../../components/app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _useforwardconsolelog = __webpack_require__(/*! ../../../../next-devtools/userspace/app/errors/use-forward-console-log */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js\");\nlet mostRecentCompilationHash = null;\nlet __nextDevClientId = Math.round(Math.random() * 100 + Date.now());\nlet reloading = false;\nlet webpackStartMsSinceEpoch = null;\nconst turbopackHmr = false ? 0 : null;\nlet pendingHotUpdateWebpack = Promise.resolve();\nlet resolvePendingHotUpdateWebpack = ()=>{};\nfunction setPendingHotUpdateWebpack() {\n pendingHotUpdateWebpack = new Promise((resolve)=>{\n resolvePendingHotUpdateWebpack = ()=>{\n resolve();\n };\n });\n}\nfunction waitForWebpackRuntimeHotUpdate() {\n return pendingHotUpdateWebpack;\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 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 module.hot.removeStatusHandler(handler);\n fn();\n }\n }\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: !!_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError,\n dependencyChain: err ? err.dependencyChain : undefined\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 tryApplyUpdatesWebpack(sendMessage) {\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n resolvePendingHotUpdateWebpack();\n _nextdevtools.dispatcher.onBuildOk();\n (0, _reporthmrlatency.default)(sendMessage, [], webpackStartMsSinceEpoch, Date.now());\n return;\n }\n function handleApplyUpdates(err, updatedModules) {\n if (err || _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError || updatedModules == null) {\n if (err) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD);\n } else if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n }\n performFullReload(err, sendMessage);\n return;\n }\n _nextdevtools.dispatcher.onBuildOk();\n if (isUpdateAvailable()) {\n // While we were updating, there was a new update! Do it again.\n tryApplyUpdatesWebpack(sendMessage);\n return;\n }\n _nextdevtools.dispatcher.onRefresh();\n resolvePendingHotUpdateWebpack();\n (0, _reporthmrlatency.default)(sendMessage, updatedModules, webpackStartMsSinceEpoch, Date.now());\n if (false) {}\n }\n // https://webpack.js.org/api/hot-module-replacement/#check\n module.hot.check(/* autoApply */ false).then((updatedModules)=>{\n if (updatedModules == null) {\n return null;\n }\n // We should always handle an update, even if updatedModules is empty (but\n // non-null) for any reason. That's what webpack would normally do:\n // https://github.com/webpack/webpack/blob/3aa6b6bc3a64/lib/hmr/HotModuleReplacement.runtime.js#L296-L298\n _nextdevtools.dispatcher.onBeforeRefresh();\n // https://webpack.js.org/api/hot-module-replacement/#apply\n return module.hot.apply();\n }).then((updatedModules)=>{\n handleApplyUpdates(null, updatedModules);\n }, (err)=>{\n handleApplyUpdates(err, null);\n });\n}\n/** Handles messages from the server for the App Router. */ function processMessage(obj, sendMessage, processTurbopackMessage, router, appIsrManifestRef, pathnameRef) {\n if (!('action' in obj)) {\n return;\n }\n function handleErrors(errors) {\n // \"Massage\" webpack messages.\n const formatted = (0, _formatwebpackmessages.default)({\n errors: errors,\n warnings: []\n });\n // Only show the first error.\n _nextdevtools.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((0, _stripansi.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() {\n if (false) {} else {\n tryApplyUpdatesWebpack(sendMessage);\n }\n }\n switch(obj.action){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.ISR_MANIFEST:\n {\n if (true) {\n if (appIsrManifestRef) {\n appIsrManifestRef.current = obj.data;\n // handle initial status on receiving manifest\n // navigation is handled in useEffect for pathname changes\n // as we'll receive the updated manifest before usePathname\n // triggers for new value\n if (pathnameRef.current in obj.data) {\n _nextdevtools.dispatcher.onStaticIndicator(true);\n } else {\n _nextdevtools.dispatcher.onStaticIndicator(false);\n }\n }\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILDING:\n {\n _nextdevtools.dispatcher.buildingIndicatorShow();\n if (false) {} else {\n webpackStartMsSinceEpoch = Date.now();\n setPendingHotUpdateWebpack();\n console.log('[Fast Refresh] rebuilding');\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SYNC:\n {\n _nextdevtools.dispatcher.buildingIndicatorHide();\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) _nextdevtools.dispatcher.onVersionInfo(obj.versionInfo);\n if ('debug' in obj && obj.debug) _nextdevtools.dispatcher.onDebugInfo(obj.debug);\n if ('devIndicator' in obj) _nextdevtools.dispatcher.onDevIndicator(obj.devIndicator);\n if ('devToolsConfig' in obj) _nextdevtools.dispatcher.onDevToolsConfig(obj.devToolsConfig);\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, _formatwebpackmessages.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((0, _stripansi.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 === _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT) {\n handleHotUpdate();\n }\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED:\n {\n processTurbopackMessage({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED,\n data: {\n sessionId: obj.data.sessionId\n }\n });\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE:\n {\n turbopackHmr.onTurbopackMessage(obj);\n _nextdevtools.dispatcher.onBeforeRefresh();\n processTurbopackMessage({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE,\n data: obj.data\n });\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n performFullReload(null, sendMessage);\n }\n _nextdevtools.dispatcher.onRefresh();\n break;\n }\n // TODO-APP: make server component change more granular\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES:\n {\n turbopackHmr == null ? void 0 : turbopackHmr.onServerComponentChanges();\n sendMessage(JSON.stringify({\n event: 'server-component-reload-page',\n clientId: __nextDevClientId,\n hash: obj.hash\n }));\n // Store the latest hash in a session cookie so that it's sent back to the\n // server with any subsequent requests.\n document.cookie = _approuterheaders.NEXT_HMR_REFRESH_HASH_COOKIE + \"=\" + obj.hash + \";path=/\";\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError || document.documentElement.id === '__next_error__') {\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n (0, _react.startTransition)(()=>{\n router.hmrRefresh();\n _nextdevtools.dispatcher.onRefresh();\n });\n if (false) {}\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE:\n {\n turbopackHmr == null ? void 0 : turbopackHmr.onReloadPage();\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 _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.ADDED_PAGE:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.REMOVED_PAGE:\n {\n turbopackHmr == null ? void 0 : turbopackHmr.onPageAddRemove();\n // TODO-APP: potentially only refresh if the currently viewed page was added/removed.\n return router.hmrRefresh();\n }\n case _hotreloadertypes.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 = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = stack;\n handleErrors([\n error\n ]);\n }\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE:\n {\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.DEVTOOLS_CONFIG:\n {\n _nextdevtools.dispatcher.onDevToolsConfig(obj.data);\n return;\n }\n default:\n {\n obj;\n }\n }\n}\nfunction HotReload(param) {\n let { assetPrefix, children, globalError } = param;\n (0, _useerrorhandler.useErrorHandler)(_nextdevtools.dispatcher.onUnhandledError, _nextdevtools.dispatcher.onUnhandledRejection);\n const webSocketRef = (0, _usewebsocket.useWebsocket)(assetPrefix);\n (0, _usewebsocket.useWebsocketPing)(webSocketRef);\n const sendMessage = (0, _usewebsocket.useSendMessage)(webSocketRef);\n (0, _useforwardconsolelog.useForwardConsoleLog)(webSocketRef);\n const processTurbopackMessage = (0, _usewebsocket.useTurbopack)(sendMessage, (err)=>performFullReload(err, sendMessage));\n const router = (0, _navigation.useRouter)();\n // We don't want access of the pathname for the dev tools to trigger a dynamic\n // access (as the dev overlay will never be present in production).\n const pathname = (0, _navigationuntracked.useUntrackedPathname)();\n const appIsrManifestRef = (0, _react.useRef)({});\n const pathnameRef = (0, _react.useRef)(pathname);\n if (true) {\n // this conditional is only for dead-code elimination which\n // isn't a runtime conditional only build-time so ignore hooks rule\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, _react.useEffect)(()=>{\n pathnameRef.current = pathname;\n const appIsrManifest = appIsrManifestRef.current;\n if (appIsrManifest) {\n if (pathname && pathname in appIsrManifest) {\n try {\n _nextdevtools.dispatcher.onStaticIndicator(true);\n } catch (reason) {\n let message = '';\n if (reason instanceof DOMException) {\n var _reason_stack;\n // Most likely a SecurityError, because of an unavailable localStorage\n message = (_reason_stack = reason.stack) != null ? _reason_stack : reason.message;\n } else if (reason instanceof Error) {\n var _reason_stack1;\n message = 'Error: ' + reason.message + '\\n' + ((_reason_stack1 = reason.stack) != null ? _reason_stack1 : '');\n } else {\n message = 'Unexpected Exception: ' + reason;\n }\n console.warn('[HMR] ' + message);\n }\n } else {\n _nextdevtools.dispatcher.onStaticIndicator(false);\n }\n }\n }, [\n pathname\n ]);\n }\n (0, _react.useEffect)(()=>{\n const websocket = webSocketRef.current;\n if (!websocket) return;\n const handler = (event)=>{\n try {\n const obj = JSON.parse(event.data);\n processMessage(obj, sendMessage, processTurbopackMessage, router, appIsrManifestRef, pathnameRef);\n } catch (err) {\n (0, _shared.reportInvalidHmrMessage)(event, err);\n }\n };\n websocket.addEventListener('message', handler);\n return ()=>websocket.removeEventListener('message', handler);\n }, [\n sendMessage,\n router,\n webSocketRef,\n processTurbopackMessage,\n appIsrManifestRef\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_appdevoverlayerrorboundary.AppDevOverlayErrorBoundary, {\n globalError: globalError,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_replayssronlyerrors.ReplaySsrOnlyErrors, {\n onBlockingError: _nextdevtools.dispatcher.openErrorOverlay\n }),\n children\n ]\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hot-reloader-app.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL2FwcC9ob3QtcmVsb2FkZXItYXBwLmpzIiwibWFwcGluZ3MiOiI7QUFBQSw2Q0FBNkM7Ozs7Ozs7Ozs7Ozs7SUF5YzdDLE9BaUdDO2VBakd1QkE7O0lBcFpSQyw4QkFBOEI7ZUFBOUJBOzs7OzttQ0FsRG1DO2dGQUM3Qjs0RkFDWTt3Q0FDUjtvQ0FLbkI7MENBQ29CO2lEQUNTO3dEQUNPOzZDQUNYO2lEQUNJOzBDQU03Qjs4Q0FDcUM7aURBS1A7dUZBQ1I7d0RBQ0E7OENBQ2dCO2tEQUVSO0FBRXJDLElBQUlDLDRCQUFpQztBQUNyQyxJQUFJQyxvQkFBb0JDLEtBQUtDLEtBQUssQ0FBQ0QsS0FBS0UsTUFBTSxLQUFLLE1BQU1DLEtBQUtDLEdBQUc7QUFDakUsSUFBSUMsWUFBWTtBQUNoQixJQUFJQywyQkFBMEM7QUFDOUMsTUFBTUMsZUFBb0NDLE1BQXFCLEdBQzNELENBQWtCLEdBQ2xCO0FBRUosSUFBSUksMEJBQTBCQyxRQUFRQyxPQUFPO0FBQzdDLElBQUlDLGlDQUE2QyxLQUFPO0FBQ3hELFNBQVNDO0lBQ1BKLDBCQUEwQixJQUFJQyxRQUFRLENBQUNDO1FBQ3JDQyxpQ0FBaUM7WUFDL0JEO1FBQ0Y7SUFDRjtBQUNGO0FBRU8sU0FBU2pCO0lBQ2QsT0FBT2U7QUFDVDtBQUVBLGtEQUFrRDtBQUNsRCxTQUFTSyxvQkFBb0JDLElBQVk7SUFDdkMsc0NBQXNDO0lBQ3RDcEIsNEJBQTRCb0I7QUFDOUI7QUFFQTs7OztDQUlDLEdBQ0QsU0FBU0M7SUFDUCxJQUFJWCxLQUFxQixFQUFFLEVBRTFCO0lBRUQsNEJBQTRCLEdBQzVCLDJEQUEyRDtJQUMzRCw4Q0FBOEM7SUFDOUMsT0FBT1YsOEJBQThCc0IsdUJBQWdCQTtBQUN2RDtBQUVBLDZDQUE2QztBQUM3QyxTQUFTQztJQUNQLE9BQU9DLE9BQU9DLEdBQUcsQ0FBQ0MsTUFBTSxPQUFPO0FBQ2pDO0FBQ0EsU0FBU0Ms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dUIscUJBQUFBLG1CQUFtQjtnQkFBQ0MsaUJBQWlCdkgsY0FBQUEsVUFBVSxDQUFDd0gsZ0JBQWdCOztZQUNoRTFCOzs7QUFHUCIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvZGV2L2hvdC1yZWxvYWRlci9hcHAvaG90LXJlbG9hZGVyLWFwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ3ZWJwYWNrL21vZHVsZS5kLnRzXCIgLz5cblxuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUVmZmVjdCwgc3RhcnRUcmFuc2l0aW9uLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBzdHJpcEFuc2kgZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2knXG5pbXBvcnQgZm9ybWF0V2VicGFja01lc3NhZ2VzIGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMnXG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL25hdmlnYXRpb24nXG5pbXBvcnQge1xuICBSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FELFxuICBSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IsXG4gIHJlcG9ydEludmFsaWRIbXJNZXNzYWdlLFxufSBmcm9tICcuLi9zaGFyZWQnXG5pbXBvcnQgeyBkaXNwYXRjaGVyIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHMnXG5pbXBvcnQgeyBSZXBsYXlTc3JPbmx5RXJyb3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2Vycm9ycy9yZXBsYXktc3NyLW9ubHktZXJyb3JzJ1xuaW1wb3J0IHsgQXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvYXBwLWRldi1vdmVybGF5LWVycm9yLWJvdW5kYXJ5J1xuaW1wb3J0IHsgdXNlRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2Vycm9ycy91c2UtZXJyb3ItaGFuZGxlcidcbmltcG9ydCB7IFJ1bnRpbWVFcnJvckhhbmRsZXIgfSBmcm9tICcuLi8uLi9ydW50aW1lLWVycm9yLWhhbmRsZXInXG5pbXBvcnQge1xuICB1c2VTZW5kTWVzc2FnZSxcbiAgdXNlVHVyYm9wYWNrLFxuICB1c2VXZWJzb2NrZXQsXG4gIHVzZVdlYnNvY2tldFBpbmcsXG59IGZyb20gJy4vdXNlLXdlYnNvY2tldCdcbmltcG9ydCB7IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBITVJfQUNUSU9OX1RZUEVTLFxuICBUdXJib3BhY2tNc2dUb0Jyb3dzZXIsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzJ1xuaW1wb3J0IHsgdXNlVW50cmFja2VkUGF0aG5hbWUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL25hdmlnYXRpb24tdW50cmFja2VkJ1xuaW1wb3J0IHJlcG9ydEhtckxhdGVuY3kgZnJvbSAnLi4vLi4vcmVwb3J0LWhtci1sYXRlbmN5J1xuaW1wb3J0IHsgVHVyYm9wYWNrSG1yIH0gZnJvbSAnLi4vdHVyYm9wYWNrLWhvdC1yZWxvYWRlci1jb21tb24nXG5pbXBvcnQgeyBORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnMnXG5pbXBvcnQgdHlwZSB7IEdsb2JhbEVycm9yU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2FwcC1yb3V0ZXItaW5zdGFuY2UnXG5pbXBvcnQgeyB1c2VGb3J3YXJkQ29uc29sZUxvZyB9IGZyb20gJy4uLy4uLy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWZvcndhcmQtY29uc29sZS1sb2cnXG5cbmxldCBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoOiBhbnkgPSBudWxsXG5sZXQgX19uZXh0RGV2Q2xpZW50SWQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAgKyBEYXRlLm5vdygpKVxubGV0IHJlbG9hZGluZyA9IGZhbHNlXG5sZXQgd2VicGFja1N0YXJ0TXNTaW5jZUVwb2NoOiBudW1iZXIgfCBudWxsID0gbnVsbFxuY29uc3QgdHVyYm9wYWNrSG1yOiBUdXJib3BhY2tIbXIgfCBudWxsID0gcHJvY2Vzcy5lbnYuVFVSQk9QQUNLXG4gID8gbmV3IFR1cmJvcGFja0htcigpXG4gIDogbnVsbFxuXG5sZXQgcGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2sgPSBQcm9taXNlLnJlc29sdmUoKVxubGV0IHJlc29sdmVQZW5kaW5nSG90VXBkYXRlV2VicGFjazogKCkgPT4gdm9pZCA9ICgpID0+IHt9XG5mdW5jdGlvbiBzZXRQZW5kaW5nSG90VXBkYXRlV2VicGFjaygpIHtcbiAgcGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2sgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHJlc29sdmVQZW5kaW5nSG90VXBkYXRlV2VicGFjayA9ICgpID0+IHtcbiAgICAgIHJlc29sdmUoKVxuICAgIH1cbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JXZWJwYWNrUnVudGltZUhvdFVwZGF0ZSgpIHtcbiAgcmV0dXJuIHBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrXG59XG5cbi8vIFRoZXJlIGlzIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGUgY29kZSBhdmFpbGFibGUuXG5mdW5jdGlvbiBoYW5kbGVBdmFpbGFibGVIYXNoKGhhc2g6IHN0cmluZykge1xuICAvLyBVcGRhdGUgbGFzdCBrbm93biBjb21waWxhdGlvbiBoYXNoLlxuICBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoID0gaGFzaFxufVxuXG4vKipcbiAqIElzIHRoZXJlIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGlzIGNvZGUgYXZhaWxhYmxlP1xuICogRm9yIHdlYnBhY2s6IENoZWNrIGlmIHRoZSBoYXNoIGNoYW5nZWQgY29tcGFyZWQgdG8gX193ZWJwYWNrX2hhc2hfX1xuICogRm9yIFR1cmJvcGFjazogQWx3YXlzIHRydWUgYmVjYXVzZSBpdCBkb2Vzbid0IGhhdmUgX193ZWJwYWNrX2hhc2hfX1xuICovXG5mdW5jdGlvbiBpc1VwZGF0ZUF2YWlsYWJsZSgpIHtcbiAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKiBnbG9iYWxzIF9fd2VicGFja19oYXNoX18gKi9cbiAgLy8gX193ZWJwYWNrX2hhc2hfXyBpcyB0aGUgaGFzaCBvZiB0aGUgY3VycmVudCBjb21waWxhdGlvbi5cbiAgLy8gSXQncyBhIGdsb2JhbCB2YXJpYWJsZSBpbmplY3RlZCBieSBXZWJwYWNrLlxuICByZXR1cm4gbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCAhPT0gX193ZWJwYWNrX2hhc2hfX1xufVxuXG4vLyBXZWJwYWNrIGRpc2FsbG93cyB1cGRhdGVzIGluIG90aGVyIHN0YXRlcy5cbmZ1bmN0aW9uIGNhbkFwcGx5VXBkYXRlcygpIHtcbiAgcmV0dXJuIG1vZHVsZS5ob3Quc3RhdHVzKCkgPT09ICdpZGxlJ1xufVxuZnVuY3Rpb24gYWZ0ZXJBcHBseVVwZGF0ZXMoZm46IGFueSkge1xuICBpZiAoY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICBmbigpXG4gIH0gZWxzZSB7XG4gICAgZnVuY3Rpb24gaGFuZGxlcihzdGF0dXM6IGFueSkge1xuICAgICAgaWYgKHN0YXR1cyA9PT0gJ2lkbGUnKSB7XG4gICAgICAgIG1vZHVsZS5ob3QucmVtb3ZlU3RhdHVzSGFuZGxlcihoYW5kbGVyKVxuICAgICAgICBmbigpXG4gICAgICB9XG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWRkU3RhdHVzSGFuZGxlcihoYW5kbGVyKVxuICB9XG59XG5cbmZ1bmN0aW9uIHBlcmZvcm1GdWxsUmVsb2FkKGVycjogYW55LCBzZW5kTWVzc2FnZTogYW55KSB7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPVxuICAgIGVyciAmJlxuICAgICgoZXJyLnN0YWNrICYmIGVyci5zdGFjay5zcGxpdCgnXFxuJykuc2xpY2UoMCwgNSkuam9pbignXFxuJykpIHx8XG4gICAgICBlcnIubWVzc2FnZSB8fFxuICAgICAgZXJyICsgJycpXG5cbiAgc2VuZE1lc3NhZ2UoXG4gICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZXZlbnQ6ICdjbGllbnQtZnVsbC1yZWxvYWQnLFxuICAgICAgc3RhY2tUcmFjZSxcbiAgICAgIGhhZFJ1bnRpbWVFcnJvcjogISFSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcixcbiAgICAgIGRlcGVuZGVuY3lDaGFpbjogZXJyID8gZXJyLmRlcGVuZGVuY3lDaGFpbiA6IHVuZGVmaW5lZCxcbiAgICB9KVxuICApXG5cbiAgaWYgKHJlbG9hZGluZykgcmV0dXJuXG4gIHJlbG9hZGluZyA9IHRydWVcbiAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG59XG5cbi8vIEF0dGVtcHQgdG8gdXBkYXRlIGNvZGUgb24gdGhlIGZseSwgZmFsbCBiYWNrIHRvIGEgaGFyZCByZWxvYWQuXG5mdW5jdGlvbiB0cnlBcHBseVVwZGF0ZXNXZWJwYWNrKHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkKSB7XG4gIGlmICghaXNVcGRhdGVBdmFpbGFibGUoKSB8fCAhY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICByZXNvbHZlUGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2soKVxuICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcbiAgICByZXBvcnRIbXJMYXRlbmN5KHNlbmRNZXNzYWdlLCBbXSwgd2VicGFja1N0YXJ0TXNTaW5jZUVwb2NoISwgRGF0ZS5ub3coKSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUFwcGx5VXBkYXRlcyhcbiAgICBlcnI6IGFueSxcbiAgICB1cGRhdGVkTW9kdWxlczogKHN0cmluZyB8IG51bWJlcilbXSB8IG51bGxcbiAgKSB7XG4gICAgaWYgKGVyciB8fCBSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvciB8fCB1cGRhdGVkTW9kdWxlcyA9PSBudWxsKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEKVxuICAgICAgfSBlbHNlIGlmIChSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SKVxuICAgICAgfVxuICAgICAgcGVyZm9ybUZ1bGxSZWxvYWQoZXJyLCBzZW5kTWVzc2FnZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcblxuICAgIGlmIChpc1VwZGF0ZUF2YWlsYWJsZSgpKSB7XG4gICAgICAvLyBXaGlsZSB3ZSB3ZXJlIHVwZGF0aW5nLCB0aGVyZSB3YXMgYSBuZXcgdXBkYXRlISBEbyBpdCBhZ2Fpbi5cbiAgICAgIHRyeUFwcGx5VXBkYXRlc1dlYnBhY2soc2VuZE1lc3NhZ2UpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpXG4gICAgcmVzb2x2ZVBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrKClcbiAgICByZXBvcnRIbXJMYXRlbmN5KFxuICAgICAgc2VuZE1lc3NhZ2UsXG4gICAgICB1cGRhdGVkTW9kdWxlcyxcbiAgICAgIHdlYnBhY2tTdGFydE1zU2luY2VFcG9jaCEsXG4gICAgICBEYXRlLm5vdygpXG4gICAgKVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgIGFmdGVyQXBwbHlVcGRhdGVzKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQigpXG4gICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8vIGh0dHBzOi8vd2VicGFjay5qcy5vcmcvYXBpL2hvdC1tb2R1bGUtcmVwbGFjZW1lbnQvI2NoZWNrXG4gIG1vZHVsZS5ob3RcbiAgICAuY2hlY2soLyogYXV0b0FwcGx5ICovIGZhbHNlKVxuICAgIC50aGVuKCh1cGRhdGVkTW9kdWxlczogKHN0cmluZyB8IG51bWJlcilbXSB8IG51bGwpID0+IHtcbiAgICAgIGlmICh1cGRhdGVkTW9kdWxlcyA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIHNob3VsZCBhbHdheXMgaGFuZGxlIGFuIHVwZGF0ZSwgZXZlbiBpZiB1cGRhdGVkTW9kdWxlcyBpcyBlbXB0eSAoYnV0XG4gICAgICAvLyBub24tbnVsbCkgZm9yIGFueSByZWFzb24uIFRoYXQncyB3aGF0IHdlYnBhY2sgd291bGQgbm9ybWFsbHkgZG86XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvM2FhNmI2YmMzYTY0L2xpYi9obXIvSG90TW9kdWxlUmVwbGFjZW1lbnQucnVudGltZS5qcyNMMjk2LUwyOThcbiAgICAgIGRpc3BhdGNoZXIub25CZWZvcmVSZWZyZXNoKClcbiAgICAgIC8vIGh0dHBzOi8vd2VicGFjay5qcy5vcmcvYXBpL2hvdC1tb2R1bGUtcmVwbGFjZW1lbnQvI2FwcGx5XG4gICAgICByZXR1cm4gbW9kdWxlLmhvdC5hcHBseSgpXG4gICAgfSlcbiAgICAudGhlbihcbiAgICAgICh1cGRhdGVkTW9kdWxlczogKHN0cmluZyB8IG51bWJlcilbXSB8IG51bGwpID0+IHtcbiAgICAgICAgaGFuZGxlQXBwbHlVcGRhdGVzKG51bGwsIHVwZGF0ZWRNb2R1bGVzKVxuICAgICAgfSxcbiAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICBoYW5kbGVBcHBseVVwZGF0ZXMoZXJyLCBudWxsKVxuICAgICAgfVxuICAgIClcbn1cblxuLyoqIEhhbmRsZXMgbWVzc2FnZXMgZnJvbSB0aGUgc2VydmVyIGZvciB0aGUgQXBwIFJvdXRlci4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NNZXNzYWdlKFxuICBvYmo6IEhNUl9BQ1RJT05fVFlQRVMsXG4gIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkLFxuICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZTogKG1zZzogVHVyYm9wYWNrTXNnVG9Ccm93c2VyKSA9PiB2b2lkLFxuICByb3V0ZXI6IFJldHVyblR5cGU8dHlwZW9mIHVzZVJvdXRlcj4sXG4gIGFwcElzck1hbmlmZXN0UmVmOiBSZXR1cm5UeXBlPHR5cGVvZiB1c2VSZWY+LFxuICBwYXRobmFtZVJlZjogUmV0dXJuVHlwZTx0eXBlb2YgdXNlUmVmPlxuKSB7XG4gIGlmICghKCdhY3Rpb24nIGluIG9iaikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9ycyhlcnJvcnM6IFJlYWRvbmx5QXJyYXk8dW5rbm93bj4pIHtcbiAgICAvLyBcIk1hc3NhZ2VcIiB3ZWJwYWNrIG1lc3NhZ2VzLlxuICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFdlYnBhY2tNZXNzYWdlcyh7XG4gICAgICBlcnJvcnM6IGVycm9ycyxcbiAgICAgIHdhcm5pbmdzOiBbXSxcbiAgICB9KVxuXG4gICAgLy8gT25seSBzaG93IHRoZSBmaXJzdCBlcnJvci5cbiAgICBkaXNwYXRjaGVyLm9uQnVpbGRFcnJvcihmb3JtYXR0ZWQuZXJyb3JzWzBdKVxuXG4gICAgLy8gQWxzbyBsb2cgdGhlbSB0byB0aGUgY29uc29sZS5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZC5lcnJvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnNvbGUuZXJyb3Ioc3RyaXBBbnNpKGZvcm1hdHRlZC5lcnJvcnNbaV0pKVxuICAgIH1cblxuICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHJlbG9hZCBub3cuXG4gICAgLy8gV2Ugd2lsbCByZWxvYWQgb24gbmV4dCBzdWNjZXNzIGluc3RlYWQuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKGZvcm1hdHRlZC5lcnJvcnNbMF0pXG4gICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQiA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVIb3RVcGRhdGUoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgY29uc3QgaG1yVXBkYXRlID0gdHVyYm9wYWNrSG1yIS5vbkJ1aWx0KClcbiAgICAgIGlmIChobXJVcGRhdGUgIT0gbnVsbCkge1xuICAgICAgICByZXBvcnRIbXJMYXRlbmN5KFxuICAgICAgICAgIHNlbmRNZXNzYWdlLFxuICAgICAgICAgIFsuLi5obXJVcGRhdGUudXBkYXRlZE1vZHVsZXNdLFxuICAgICAgICAgIGhtclVwZGF0ZS5zdGFydE1zU2luY2VFcG9jaCxcbiAgICAgICAgICBobXJVcGRhdGUuZW5kTXNTaW5jZUVwb2NoLFxuICAgICAgICAgIC8vIHN1cHByZXNzIHRoZSBgY2xpZW50LWhtci1sYXRlbmN5YCBldmVudCBpZiB0aGUgdXBkYXRlIHdhcyBhIG5vLW9wOlxuICAgICAgICAgIGhtclVwZGF0ZS5oYXNVcGRhdGVzXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5QXBwbHlVcGRhdGVzV2VicGFjayhzZW5kTWVzc2FnZSlcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKG9iai5hY3Rpb24pIHtcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5JU1JfTUFOSUZFU1Q6IHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfREVWX0lORElDQVRPUikge1xuICAgICAgICBpZiAoYXBwSXNyTWFuaWZlc3RSZWYpIHtcbiAgICAgICAgICBhcHBJc3JNYW5pZmVzdFJlZi5jdXJyZW50ID0gb2JqLmRhdGFcblxuICAgICAgICAgIC8vIGhhbmRsZSBpbml0aWFsIHN0YXR1cyBvbiByZWNlaXZpbmcgbWFuaWZlc3RcbiAgICAgICAgICAvLyBuYXZpZ2F0aW9uIGlzIGhhbmRsZWQgaW4gdXNlRWZmZWN0IGZvciBwYXRobmFtZSBjaGFuZ2VzXG4gICAgICAgICAgLy8gYXMgd2UnbGwgcmVjZWl2ZSB0aGUgdXBkYXRlZCBtYW5pZmVzdCBiZWZvcmUgdXNlUGF0aG5hbWVcbiAgICAgICAgICAvLyB0cmlnZ2VycyBmb3IgbmV3IHZhbHVlXG4gICAgICAgICAgaWYgKChwYXRobmFtZVJlZi5jdXJyZW50IGFzIHN0cmluZykgaW4gb2JqLmRhdGEpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoZXIub25TdGF0aWNJbmRpY2F0b3IodHJ1ZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlzcGF0Y2hlci5vblN0YXRpY0luZGljYXRvcihmYWxzZSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxESU5HOiB7XG4gICAgICBkaXNwYXRjaGVyLmJ1aWxkaW5nSW5kaWNhdG9yU2hvdygpXG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgdHVyYm9wYWNrSG1yIS5vbkJ1aWxkaW5nKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdlYnBhY2tTdGFydE1zU2luY2VFcG9jaCA9IERhdGUubm93KClcbiAgICAgICAgc2V0UGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2soKVxuICAgICAgICBjb25zb2xlLmxvZygnW0Zhc3QgUmVmcmVzaF0gcmVidWlsZGluZycpXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5CVUlMVDpcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TWU5DOiB7XG4gICAgICBkaXNwYXRjaGVyLmJ1aWxkaW5nSW5kaWNhdG9ySGlkZSgpXG5cbiAgICAgIGlmIChvYmouaGFzaCkge1xuICAgICAgICBoYW5kbGVBdmFpbGFibGVIYXNoKG9iai5oYXNoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGVycm9ycywgd2FybmluZ3MgfSA9IG9ialxuXG4gICAgICAvLyBJcyB1bmRlZmluZWQgd2hlbiBpdCdzIGEgJ2J1aWx0JyBldmVudFxuICAgICAgaWYgKCd2ZXJzaW9uSW5mbycgaW4gb2JqKSBkaXNwYXRjaGVyLm9uVmVyc2lvbkluZm8ob2JqLnZlcnNpb25JbmZvKVxuICAgICAgaWYgKCdkZWJ1ZycgaW4gb2JqICYmIG9iai5kZWJ1ZykgZGlzcGF0Y2hlci5vbkRlYnVnSW5mbyhvYmouZGVidWcpXG4gICAgICBpZiAoJ2RldkluZGljYXRvcicgaW4gb2JqKSBkaXNwYXRjaGVyLm9uRGV2SW5kaWNhdG9yKG9iai5kZXZJbmRpY2F0b3IpXG4gICAgICBpZiAoJ2RldlRvb2xzQ29uZmlnJyBpbiBvYmopXG4gICAgICAgIGRpc3BhdGNoZXIub25EZXZUb29sc0NvbmZpZyhvYmouZGV2VG9vbHNDb25maWcpXG5cbiAgICAgIGNvbnN0IGhhc0Vycm9ycyA9IEJvb2xlYW4oZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpXG4gICAgICAvLyBDb21waWxhdGlvbiB3aXRoIGVycm9ycyAoZS5nLiBzeW50YXggZXJyb3Igb3IgbWlzc2luZyBtb2R1bGVzKS5cbiAgICAgIGlmIChoYXNFcnJvcnMpIHtcbiAgICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgZXJyb3JDb3VudDogZXJyb3JzLmxlbmd0aCxcbiAgICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICB9KVxuICAgICAgICApXG5cbiAgICAgICAgaGFuZGxlRXJyb3JzKGVycm9ycylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhc1dhcm5pbmdzID0gQm9vbGVhbih3YXJuaW5ncyAmJiB3YXJuaW5ncy5sZW5ndGgpXG4gICAgICBpZiAoaGFzV2FybmluZ3MpIHtcbiAgICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtd2FybmluZycsXG4gICAgICAgICAgICB3YXJuaW5nQ291bnQ6IHdhcm5pbmdzLmxlbmd0aCxcbiAgICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICB9KVxuICAgICAgICApXG5cbiAgICAgICAgLy8gUHJpbnQgd2FybmluZ3MgdG8gdGhlIGNvbnNvbGUuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE1lc3NhZ2VzID0gZm9ybWF0V2VicGFja01lc3NhZ2VzKHtcbiAgICAgICAgICB3YXJuaW5nczogd2FybmluZ3MsXG4gICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgfSlcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZE1lc3NhZ2VzLndhcm5pbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGkgPT09IDUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgJ1RoZXJlIHdlcmUgbW9yZSB3YXJuaW5ncyBpbiBvdGhlciBmaWxlcy5cXG4nICtcbiAgICAgICAgICAgICAgICAnWW91IGNhbiBmaW5kIGEgY29tcGxldGUgbG9nIGluIHRoZSB0ZXJtaW5hbC4nXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zb2xlLndhcm4oc3RyaXBBbnNpKGZvcm1hdHRlZE1lc3NhZ2VzLndhcm5pbmdzW2ldKSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vIGVhcmx5IHJldHVybiBoZXJlIGFzIHdlIG5lZWQgdG8gYXBwbHkgbW9kdWxlcyBpbiB0aGUgc2FtZSB3YXkgYmV0d2VlbiB3YXJuaW5ncyBvbmx5IGFuZCBjb21waWxlcyB3aXRob3V0IHdhcm5pbmdzXG4gICAgICB9XG5cbiAgICAgIHNlbmRNZXNzYWdlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgZXZlbnQ6ICdjbGllbnQtc3VjY2VzcycsXG4gICAgICAgICAgY2xpZW50SWQ6IF9fbmV4dERldkNsaWVudElkLFxuICAgICAgICB9KVxuICAgICAgKVxuXG4gICAgICBpZiAob2JqLmFjdGlvbiA9PT0gSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxUKSB7XG4gICAgICAgIGhhbmRsZUhvdFVwZGF0ZSgpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX0NPTk5FQ1RFRDoge1xuICAgICAgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2Uoe1xuICAgICAgICB0eXBlOiBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX0NPTk5FQ1RFRCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHNlc3Npb25JZDogb2JqLmRhdGEuc2Vzc2lvbklkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlRVUkJPUEFDS19NRVNTQUdFOiB7XG4gICAgICB0dXJib3BhY2tIbXIhLm9uVHVyYm9wYWNrTWVzc2FnZShvYmopXG4gICAgICBkaXNwYXRjaGVyLm9uQmVmb3JlUmVmcmVzaCgpXG4gICAgICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSh7XG4gICAgICAgIHR5cGU6IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5UVVJCT1BBQ0tfTUVTU0FHRSxcbiAgICAgICAgZGF0YTogb2JqLmRhdGEsXG4gICAgICB9KVxuICAgICAgaWYgKFJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IpXG4gICAgICAgIHBlcmZvcm1GdWxsUmVsb2FkKG51bGwsIHNlbmRNZXNzYWdlKVxuICAgICAgfVxuICAgICAgZGlzcGF0Y2hlci5vblJlZnJlc2goKVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgLy8gVE9ETy1BUFA6IG1ha2Ugc2VydmVyIGNvbXBvbmVudCBjaGFuZ2UgbW9yZSBncmFudWxhclxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFUzoge1xuICAgICAgdHVyYm9wYWNrSG1yPy5vblNlcnZlckNvbXBvbmVudENoYW5nZXMoKVxuICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBldmVudDogJ3NlcnZlci1jb21wb25lbnQtcmVsb2FkLXBhZ2UnLFxuICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICBoYXNoOiBvYmouaGFzaCxcbiAgICAgICAgfSlcbiAgICAgIClcblxuICAgICAgLy8gU3RvcmUgdGhlIGxhdGVzdCBoYXNoIGluIGEgc2Vzc2lvbiBjb29raWUgc28gdGhhdCBpdCdzIHNlbnQgYmFjayB0byB0aGVcbiAgICAgIC8vIHNlcnZlciB3aXRoIGFueSBzdWJzZXF1ZW50IHJlcXVlc3RzLlxuICAgICAgZG9jdW1lbnQuY29va2llID0gYCR7TkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRX09JHtvYmouaGFzaH07cGF0aD0vYFxuXG4gICAgICBpZiAoXG4gICAgICAgIFJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yIHx8XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5pZCA9PT0gJ19fbmV4dF9lcnJvcl9fJ1xuICAgICAgKSB7XG4gICAgICAgIGlmIChyZWxvYWRpbmcpIHJldHVyblxuICAgICAgICByZWxvYWRpbmcgPSB0cnVlXG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgIH1cblxuICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgcm91dGVyLmhtclJlZnJlc2goKVxuICAgICAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpXG4gICAgICB9KVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICBpZiAoc2VsZi5fX05FWFRfSE1SX0NCKSB7XG4gICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKClcbiAgICAgICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IgPSBudWxsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlJFTE9BRF9QQUdFOiB7XG4gICAgICB0dXJib3BhY2tIbXI/Lm9uUmVsb2FkUGFnZSgpXG4gICAgICBzZW5kTWVzc2FnZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGV2ZW50OiAnY2xpZW50LXJlbG9hZC1wYWdlJyxcbiAgICAgICAgICBjbGllbnRJZDogX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICBpZiAocmVsb2FkaW5nKSByZXR1cm5cbiAgICAgIHJlbG9hZGluZyA9IHRydWVcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQURERURfUEFHRTpcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5SRU1PVkVEX1BBR0U6IHtcbiAgICAgIHR1cmJvcGFja0htcj8ub25QYWdlQWRkUmVtb3ZlKClcbiAgICAgIC8vIFRPRE8tQVBQOiBwb3RlbnRpYWxseSBvbmx5IHJlZnJlc2ggaWYgdGhlIGN1cnJlbnRseSB2aWV3ZWQgcGFnZSB3YXMgYWRkZWQvcmVtb3ZlZC5cbiAgICAgIHJldHVybiByb3V0ZXIuaG1yUmVmcmVzaCgpXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9FUlJPUjoge1xuICAgICAgY29uc3QgeyBlcnJvckpTT04gfSA9IG9ialxuICAgICAgaWYgKGVycm9ySlNPTikge1xuICAgICAgICBjb25zdCB7IG1lc3NhZ2UsIHN0YWNrIH0gPSBKU09OLnBhcnNlKGVycm9ySlNPTilcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICAgICAgZXJyb3Iuc3RhY2sgPSBzdGFja1xuICAgICAgICBoYW5kbGVFcnJvcnMoW2Vycm9yXSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5ERVZfUEFHRVNfTUFOSUZFU1RfVVBEQVRFOiB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuREVWVE9PTFNfQ09ORklHOiB7XG4gICAgICBkaXNwYXRjaGVyLm9uRGV2VG9vbHNDb25maWcob2JqLmRhdGEpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgb2JqIHNhdGlzZmllcyBuZXZlclxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb3RSZWxvYWQoe1xuICBhc3NldFByZWZpeCxcbiAgY2hpbGRyZW4sXG4gIGdsb2JhbEVycm9yLFxufToge1xuICBhc3NldFByZWZpeDogc3RyaW5nXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgZ2xvYmFsRXJyb3I6IEdsb2JhbEVycm9yU3RhdGVcbn0pIHtcbiAgdXNlRXJyb3JIYW5kbGVyKGRpc3BhdGNoZXIub25VbmhhbmRsZWRFcnJvciwgZGlzcGF0Y2hlci5vblVuaGFuZGxlZFJlamVjdGlvbilcblxuICBjb25zdCB3ZWJTb2NrZXRSZWYgPSB1c2VXZWJzb2NrZXQoYXNzZXRQcmVmaXgpXG5cbiAgdXNlV2Vic29ja2V0UGluZyh3ZWJTb2NrZXRSZWYpXG4gIGNvbnN0IHNlbmRNZXNzYWdlID0gdXNlU2VuZE1lc3NhZ2Uod2ViU29ja2V0UmVmKVxuICB1c2VGb3J3YXJkQ29uc29sZUxvZyh3ZWJTb2NrZXRSZWYpXG4gIGNvbnN0IHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlID0gdXNlVHVyYm9wYWNrKHNlbmRNZXNzYWdlLCAoZXJyKSA9PlxuICAgIHBlcmZvcm1GdWxsUmVsb2FkKGVyciwgc2VuZE1lc3NhZ2UpXG4gIClcblxuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuXG4gIC8vIFdlIGRvbid0IHdhbnQgYWNjZXNzIG9mIHRoZSBwYXRobmFtZSBmb3IgdGhlIGRldiB0b29scyB0byB0cmlnZ2VyIGEgZHluYW1pY1xuICAvLyBhY2Nlc3MgKGFzIHRoZSBkZXYgb3ZlcmxheSB3aWxsIG5ldmVyIGJlIHByZXNlbnQgaW4gcHJvZHVjdGlvbikuXG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlVW50cmFja2VkUGF0aG5hbWUoKVxuICBjb25zdCBhcHBJc3JNYW5pZmVzdFJlZiA9IHVzZVJlZjxSZWNvcmQ8c3RyaW5nLCBmYWxzZSB8IG51bWJlcj4+KHt9KVxuICBjb25zdCBwYXRobmFtZVJlZiA9IHVzZVJlZihwYXRobmFtZSlcblxuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0RFVl9JTkRJQ0FUT1IpIHtcbiAgICAvLyB0aGlzIGNvbmRpdGlvbmFsIGlzIG9ubHkgZm9yIGRlYWQtY29kZSBlbGltaW5hdGlvbiB3aGljaFxuICAgIC8vIGlzbid0IGEgcnVudGltZSBjb25kaXRpb25hbCBvbmx5IGJ1aWxkLXRpbWUgc28gaWdub3JlIGhvb2tzIHJ1bGVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcGF0aG5hbWVSZWYuY3VycmVudCA9IHBhdGhuYW1lXG5cbiAgICAgIGNvbnN0IGFwcElzck1hbmlmZXN0ID0gYXBwSXNyTWFuaWZlc3RSZWYuY3VycmVudFxuXG4gICAgICBpZiAoYXBwSXNyTWFuaWZlc3QpIHtcbiAgICAgICAgaWYgKHBhdGhuYW1lICYmIHBhdGhuYW1lIGluIGFwcElzck1hbmlmZXN0KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRpc3BhdGNoZXIub25TdGF0aWNJbmRpY2F0b3IodHJ1ZSlcbiAgICAgICAgICB9IGNhdGNoIChyZWFzb24pIHtcbiAgICAgICAgICAgIGxldCBtZXNzYWdlID0gJydcblxuICAgICAgICAgICAgaWYgKHJlYXNvbiBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbikge1xuICAgICAgICAgICAgICAvLyBNb3N0IGxpa2VseSBhIFNlY3VyaXR5RXJyb3IsIGJlY2F1c2Ugb2YgYW4gdW5hdmFpbGFibGUgbG9jYWxTdG9yYWdlXG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSByZWFzb24uc3RhY2sgPz8gcmVhc29uLm1lc3NhZ2VcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVhc29uIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgICAgbWVzc2FnZSA9ICdFcnJvcjogJyArIHJlYXNvbi5tZXNzYWdlICsgJ1xcbicgKyAocmVhc29uLnN0YWNrID8/ICcnKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbWVzc2FnZSA9ICdVbmV4cGVjdGVkIEV4Y2VwdGlvbjogJyArIHJlYXNvblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tITVJdICcgKyBtZXNzYWdlKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaXNwYXRjaGVyLm9uU3RhdGljSW5kaWNhdG9yKGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW3BhdGhuYW1lXSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgd2Vic29ja2V0ID0gd2ViU29ja2V0UmVmLmN1cnJlbnRcbiAgICBpZiAoIXdlYnNvY2tldCkgcmV0dXJuXG5cbiAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQ8YW55PikgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShldmVudC5kYXRhKVxuICAgICAgICBwcm9jZXNzTWVzc2FnZShcbiAgICAgICAgICBvYmosXG4gICAgICAgICAgc2VuZE1lc3NhZ2UsXG4gICAgICAgICAgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UsXG4gICAgICAgICAgcm91dGVyLFxuICAgICAgICAgIGFwcElzck1hbmlmZXN0UmVmLFxuICAgICAgICAgIHBhdGhuYW1lUmVmXG4gICAgICAgIClcbiAgICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgICByZXBvcnRJbnZhbGlkSG1yTWVzc2FnZShldmVudCwgZXJyKVxuICAgICAgfVxuICAgIH1cblxuICAgIHdlYnNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgaGFuZGxlcilcbiAgICByZXR1cm4gKCkgPT4gd2Vic29ja2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBoYW5kbGVyKVxuICB9LCBbXG4gICAgc2VuZE1lc3NhZ2UsXG4gICAgcm91dGVyLFxuICAgIHdlYlNvY2tldFJlZixcbiAgICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSxcbiAgICBhcHBJc3JNYW5pZmVzdFJlZixcbiAgXSlcbiAgcmV0dXJuIChcbiAgICA8QXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnkgZ2xvYmFsRXJyb3I9e2dsb2JhbEVycm9yfT5cbiAgICAgIDxSZXBsYXlTc3JPbmx5RXJyb3JzIG9uQmxvY2tpbmdFcnJvcj17ZGlzcGF0Y2hlci5vcGVuRXJyb3JPdmVybGF5fSAvPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvQXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnk+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJIb3RSZWxvYWQiLCJ3YWl0Rm9yV2VicGFja1J1bnRpbWVIb3RVcGRhdGUiLCJtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoIiwiX19uZXh0RGV2Q2xpZW50SWQiLCJNYXRoIiwicm91bmQiLCJyYW5kb20iLCJEYXRlIiwibm93IiwicmVsb2FkaW5nIiwid2VicGFja1N0YXJ0TXNTaW5jZUVwb2NoIiwidHVyYm9wYWNrSG1yIiwicHJvY2VzcyIsImVudiIsIlRVUkJPUEFDSyIsIlR1cmJvcGFja0htciIsInBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZXNvbHZlUGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2siLCJzZXRQZW5kaW5nSG90VXBkYXRlV2VicGFjayIsImhhbmRsZUF2YWlsYWJsZUhhc2giLCJoYXNoIiwiaXNVcGRhdGVBdmFpbGFibGUiLCJfX3dlYnBhY2tfaGFzaF9fIiwiY2FuQXBwbHlVcGRhdGVzIiwibW9kdWxlIiwiaG90Iiwic3RhdHVzIiwiYWZ0ZXJBcHBseVVwZGF0ZXMiLCJmbiIsImhhbmRsZXIiLCJyZW1vdmVTdGF0dXNIYW5kbGVyIiwiYWRkU3RhdHVzSGFuZGxlciIsInBlcmZvcm1GdWxsUmVsb2FkIiwiZXJyIiwic2VuZE1lc3NhZ2UiLCJzdGFja1RyYWNlIiwic3RhY2siLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsIm1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJoYWRSdW50aW1lRXJyb3IiLCJSdW50aW1lRXJyb3JIYW5kbGVyIiwiZGVwZW5kZW5jeUNoYWluIiwidW5kZWZpbmVkIiwid2luZG93IiwibG9jYXRpb24iLCJyZWxvYWQiLCJ0cnlBcHBseVVwZGF0ZXNXZWJwYWNrIiwiZGlzcGF0Y2hlciIsIm9uQnVpbGRPayIsInJlcG9ydEhtckxhdGVuY3kiLCJoYW5kbGVBcHBseVVwZGF0ZXMiLCJ1cGRhdGVkTW9kdWxlcyIsImNvbnNvbGUiLCJ3YXJuIiwiUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRCIsIlJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiIsIm9uUmVmcmVzaCIsIl9fTkVYVF9URVNUX01PREUiLCJzZWxmIiwiX19ORVhUX0hNUl9DQiIsImNoZWNrIiwidGhlbiIsIm9uQmVmb3JlUmVmcmVzaCIsImFwcGx5IiwicHJvY2Vzc01lc3NhZ2UiLCJvYmoiLCJwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSIsInJvdXRlciIsImFwcElzck1hbmlmZXN0UmVmIiwicGF0aG5hbWVSZWYiLCJoYW5kbGVFcnJvcnMiLCJlcnJvcnMiLCJmb3JtYXR0ZWQiLCJmb3JtYXRXZWJwYWNrTWVzc2FnZXMiLCJ3YXJuaW5ncyIsIm9uQnVpbGRFcnJvciIsImkiLCJsZW5ndGgiLCJlcnJvciIsInN0cmlwQW5zaSIsImhhbmRsZUhvdFVwZGF0ZSIsImhtclVwZGF0ZSIsIm9uQnVpbHQiLCJzdGFydE1zU2luY2VFcG9jaCIsImVuZE1zU2luY2VFcG9jaCIsImhhc1VwZGF0ZXMiLCJhY3Rpb24iLCJITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIiLCJJU1JfTUFOSUZFU1QiLCJfX05FWFRfREVWX0lORElDQVRPUiIsImN1cnJlbnQiLCJkYXRhIiwib25TdGF0aWNJbmRpY2F0b3IiLCJCVUlMRElORyIsImJ1aWxkaW5nSW5kaWNhdG9yU2hvdyIsIm9uQnVpbGRpbmciLCJsb2ciLCJCVUlMVCIsIlNZTkMiLCJidWlsZGluZ0luZGljYXRvckhpZGUiLCJvblZlcnNpb25JbmZvIiwidmVyc2lvbkluZm8iLCJkZWJ1ZyIsIm9uRGVidWdJbmZvIiwib25EZXZJbmRpY2F0b3IiLCJkZXZJbmRpY2F0b3IiLCJvbkRldlRvb2xzQ29uZmlnIiwiZGV2VG9vbHNDb25maWciLCJoYXNFcnJvcnMiLCJCb29sZWFuIiwiZXJyb3JDb3VudCIsImNsaWVudElkIiwiaGFzV2FybmluZ3MiLCJ3YXJuaW5nQ291bnQiLCJmb3JtYXR0ZWRNZXNzYWdlcyIsIlRVUkJPUEFDS19DT05ORUNURUQiLCJ0eXBlIiwic2Vzc2lvbklkIiwiVFVSQk9QQUNLX01FU1NBR0UiLCJvblR1cmJvcGFja01lc3NhZ2UiLCJTRVJWRVJfQ09NUE9ORU5UX0NIQU5HRVMiLCJvblNlcnZlckNvbXBvbmVudENoYW5nZXMiLCJkb2N1bWVudCIsImNvb2tpZSIsIk5FWFRfSE1SX1JFRlJFU0hfSEFTSF9DT09LSUUiLCJkb2N1bWVudEVsZW1lbnQiLCJpZCIsInN0YXJ0VHJhbnNpdGlvbiIsImhtclJlZnJlc2giLCJSRUxPQURfUEFHRSIsIm9uUmVsb2FkUGFnZSIsIkFEREVEX1BBR0UiLCJSRU1PVkVEX1BBR0UiLCJvblBhZ2VBZGRSZW1vdmUiLCJTRVJWRVJfRVJST1IiLCJlcnJvckpTT04iLCJwYXJzZSIsIkVycm9yIiwiREVWX1BBR0VTX01BTklGRVNUX1VQREFURSIsIkRFVlRPT0xTX0NPTkZJRyIsImFzc2V0UHJlZml4IiwiY2hpbGRyZW4iLCJnbG9iYWxFcnJvciIsInVzZUVycm9ySGFuZGxlciIsIm9uVW5oYW5kbGVkRXJyb3IiLCJvblVuaGFuZGxlZFJlamVjdGlvbiIsIndlYlNvY2tldFJlZiIsInVzZVdlYnNvY2tldCIsInVzZVdlYnNvY2tldFBpbmciLCJ1c2VTZW5kTWVzc2FnZSIsInVzZUZvcndhcmRDb25zb2xlTG9nIiwidXNlVHVyYm9wYWNrIiwidXNlUm91dGVyIiwicGF0aG5hbWUiLCJ1c2VVbnRyYWNrZWRQYXRobmFtZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsImFwcElzck1hbmlmZXN0IiwicmVhc29uIiwiRE9NRXhjZXB0aW9uIiwid2Vic29ja2V0IiwicmVwb3J0SW52YWxpZEhtck1lc3NhZ2UiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIkFwcERldk92ZXJsYXlFcnJvckJvdW5kYXJ5IiwiUmVwbGF5U3NyT25seUVycm9ycyIsIm9uQmxvY2tpbmdFcnJvciIsIm9wZW5FcnJvck92ZXJsYXkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\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 useSendMessage: function() {\n return useSendMessage;\n },\n useTurbopack: function() {\n return useTurbopack;\n },\n useWebsocket: function() {\n return useWebsocket;\n },\n useWebsocketPing: function() {\n return useWebsocketPing;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _getsocketurl = __webpack_require__(/*! ../get-socket-url */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js\");\nfunction useWebsocket(assetPrefix) {\n const webSocketRef = (0, _react.useRef)(undefined);\n (0, _react.useEffect)(()=>{\n if (webSocketRef.current) {\n return;\n }\n const url = (0, _getsocketurl.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.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, onUpdateError) {\n const turbopackState = (0, _react.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.useCallback)((msg)=>{\n const { callback, queue } = turbopackState.current;\n if (callback) {\n callback(msg);\n } else {\n queue.push(msg);\n }\n }, []);\n (0, _react.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().then(()=>/*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! @vercel/turbopack-ecmascript-runtime/browser/dev/hmr-client/hmr-client.ts */ \"(ssr)/./node_modules/next/dist/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 onUpdateError\n });\n });\n }, [\n sendMessage,\n onUpdateError\n ]);\n return processTurbopackMessage;\n}\nfunction useWebsocketPing(websocketRef) {\n const sendMessage = useSendMessage(websocketRef);\n const { tree } = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n (0, _react.useEffect)(()=>{\n // Never send pings when using Turbopack as it's not used.\n // Pings were originally used to keep track of active routes in on-demand-entries with webpack.\n if (false) {}\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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-websocket.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL2FwcC91c2Utd2Vic29ja2V0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7SUFxQmdCQSxjQUFjO2VBQWRBOztJQWNBQyxZQUFZO2VBQVpBOztJQTlCQUMsWUFBWTtlQUFaQTs7SUFzRkFDLGdCQUFnQjtlQUFoQkE7OzttQ0EzRjJDOzJEQUNqQjswQ0FDYjtBQUd0QixTQUFTRCxhQUFhRSxXQUFtQjtJQUM5QyxNQUFNQyxlQUFlQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFNLEVBQVlDO0lBRXZDQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1IsSUFBSUgsYUFBYUksT0FBTyxFQUFFO1lBQ3hCO1FBQ0Y7UUFFQSxNQUFNQyxNQUFNQyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhUDtRQUV6QkMsYUFBYUksT0FBTyxHQUFHLElBQUlHLE9BQU9DLFNBQVMsQ0FBRSxLQUFFSCxNQUFJO0lBQ3JELEdBQUc7UUFBQ047S0FBWTtJQUVoQixPQUFPQztBQUNUO0FBRU8sU0FBU0wsZUFBZUssWUFBNkM7SUFDMUUsTUFBTVMsY0FBY0MsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFDbEIsQ0FBQ0M7UUFDQyxNQUFNQyxTQUFTWixhQUFhSSxPQUFPO1FBQ25DLElBQUksQ0FBQ1EsVUFBVUEsT0FBT0MsVUFBVSxLQUFLRCxPQUFPRSxJQUFJLEVBQUU7WUFDaEQ7UUFDRjtRQUNBLE9BQU9GLE9BQU9HLElBQUksQ0FBQ0o7SUFDckIsR0FDQTtRQUFDWDtLQUFhO0lBRWhCLE9BQU9TO0FBQ1Q7QUFFTyxTQUFTYixhQUNkYSxXQUE4QyxFQUM5Q08sYUFBcUM7SUFFckMsTUFBTUMsaUJBQWlCaEIsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFJcEI7UUFDRGlCLE1BQU07UUFDTiwwRkFBMEY7UUFDMUZDLE9BQU8sRUFBRTtRQUNUQyxVQUFVbEI7SUFDWjtJQUVBLE1BQU1tQiwwQkFBMEJYLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVksQ0FBQ1k7UUFDM0MsTUFBTSxFQUFFRixRQUFRLEVBQUVELEtBQUssRUFBRSxHQUFHRixlQUFlYixPQUFPO1FBQ2xELElBQUlnQixVQUFVO1lBQ1pBLFNBQVNFO1FBQ1gsT0FBTztZQUNMSCxNQUFPSSxJQUFJLENBQUNEO1FBQ2Q7SUFDRixHQUFHLEVBQUU7SUFFTG5CLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixNQUFNLEVBQUVDLFNBQVNvQixXQUFXLEVBQUUsR0FBR1A7UUFDakMsMkRBQTJEO1FBQzNELElBQUlPLFlBQVlOLElBQUksRUFBRTtZQUNwQjtRQUNGO1FBQ0FNLFlBQVlOLElBQUksR0FBRzs2RUFFbkIsbUJBQ0UsQ0FDQSxzSkFDQU8sSUFBSSxDQUFDO2dCQUFDLEVBQUVDLE9BQU8sRUFBRTtZQUNqQixNQUFNLEVBQUV0QixPQUFPLEVBQUUsR0FBR2E7WUFDcEJTLFFBQVE7Z0JBQ05DLG9CQUFtQkMsRUFBd0M7b0JBQ3pEeEIsUUFBUWdCLFFBQVEsR0FBR1E7b0JBRW5CLGlGQUFpRjtvQkFDakYsS0FBSyxNQUFNTixPQUFPbEIsUUFBUWUsS0FBSyxDQUFHO3dCQUNoQ1MsR0FBR047b0JBQ0w7b0JBQ0FsQixRQUFRZSxLQUFLLEdBQUdqQjtnQkFDbEI7Z0JBQ0FPO2dCQUNBTztZQUNGO1FBQ0Y7SUFDRixHQUFHO1FBQUNQO1FBQWFPO0tBQWM7SUFFL0IsT0FBT0s7QUFDVDtBQUVPLFNBQVN2QixpQkFDZCtCLFlBQTZDO0lBRTdDLE1BQU1wQixjQUFjZCxlQUFla0M7SUFDbkMsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsK0JBQUFBLHlCQUF5QjtJQUVyRDdCLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUiwwREFBMEQ7UUFDMUQsK0ZBQStGO1FBQy9GLElBQUk4QixLQUFxQixFQUFFLEVBRTFCO1FBRUQseUNBQXlDO1FBQ3pDLE1BQU1HLFdBQVdDLFlBQVk7WUFDM0I1QixZQUNFNkIsS0FBS0MsU0FBUyxDQUFDO2dCQUNiQyxPQUFPO2dCQUNQVjtnQkFDQVcsYUFBYTtZQUNmO1FBRUosR0FBRztRQUNILE9BQU8sSUFBTUMsY0FBY047SUFDN0IsR0FBRztRQUFDTjtRQUFNckI7S0FBWTtBQUN4QiIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvZGV2L2hvdC1yZWxvYWRlci9hcHAvdXNlLXdlYnNvY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEdsb2JhbExheW91dFJvdXRlckNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGdldFNvY2tldFVybCB9IGZyb20gJy4uL2dldC1zb2NrZXQtdXJsJ1xuaW1wb3J0IHR5cGUgeyBUdXJib3BhY2tNc2dUb0Jyb3dzZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVdlYnNvY2tldChhc3NldFByZWZpeDogc3RyaW5nKSB7XG4gIGNvbnN0IHdlYlNvY2tldFJlZiA9IHVzZVJlZjxXZWJTb2NrZXQ+KHVuZGVmaW5lZClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3ZWJTb2NrZXRSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdXJsID0gZ2V0U29ja2V0VXJsKGFzc2V0UHJlZml4KVxuXG4gICAgd2ViU29ja2V0UmVmLmN1cnJlbnQgPSBuZXcgd2luZG93LldlYlNvY2tldChgJHt1cmx9L19uZXh0L3dlYnBhY2staG1yYClcbiAgfSwgW2Fzc2V0UHJlZml4XSlcblxuICByZXR1cm4gd2ViU29ja2V0UmVmXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTZW5kTWVzc2FnZSh3ZWJTb2NrZXRSZWY6IFJldHVyblR5cGU8dHlwZW9mIHVzZVdlYnNvY2tldD4pIHtcbiAgY29uc3Qgc2VuZE1lc3NhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzb2NrZXQgPSB3ZWJTb2NrZXRSZWYuY3VycmVudFxuICAgICAgaWYgKCFzb2NrZXQgfHwgc29ja2V0LnJlYWR5U3RhdGUgIT09IHNvY2tldC5PUEVOKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgcmV0dXJuIHNvY2tldC5zZW5kKGRhdGEpXG4gICAgfSxcbiAgICBbd2ViU29ja2V0UmVmXVxuICApXG4gIHJldHVybiBzZW5kTWVzc2FnZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlVHVyYm9wYWNrKFxuICBzZW5kTWVzc2FnZTogUmV0dXJuVHlwZTx0eXBlb2YgdXNlU2VuZE1lc3NhZ2U+LFxuICBvblVwZGF0ZUVycm9yOiAoZXJyOiB1bmtub3duKSA9PiB2b2lkXG4pIHtcbiAgY29uc3QgdHVyYm9wYWNrU3RhdGUgPSB1c2VSZWY8e1xuICAgIGluaXQ6IGJvb2xlYW5cbiAgICBxdWV1ZTogQXJyYXk8VHVyYm9wYWNrTXNnVG9Ccm93c2VyPiB8IHVuZGVmaW5lZFxuICAgIGNhbGxiYWNrOiAoKG1zZzogVHVyYm9wYWNrTXNnVG9Ccm93c2VyKSA9PiB2b2lkKSB8IHVuZGVmaW5lZFxuICB9Pih7XG4gICAgaW5pdDogZmFsc2UsXG4gICAgLy8gVW50aWwgdGhlIGR5bmFtaWMgaW1wb3J0IHJlc29sdmVzLCBxdWV1ZSBhbnkgdHVyYm9wYWNrIG1lc3NhZ2VzIHdoaWNoIHdpbGwgYmUgcmVwbGF5ZWQuXG4gICAgcXVldWU6IFtdLFxuICAgIGNhbGxiYWNrOiB1bmRlZmluZWQsXG4gIH0pXG5cbiAgY29uc3QgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UgPSB1c2VDYWxsYmFjaygobXNnOiBUdXJib3BhY2tNc2dUb0Jyb3dzZXIpID0+IHtcbiAgICBjb25zdCB7IGNhbGxiYWNrLCBxdWV1ZSB9ID0gdHVyYm9wYWNrU3RhdGUuY3VycmVudFxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobXNnKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWV1ZSEucHVzaChtc2cpXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudDogaW5pdEN1cnJlbnQgfSA9IHR1cmJvcGFja1N0YXRlXG4gICAgLy8gVE9ETyhXRUItMTU4OSk6IG9ubHkgaW5zdGFsbCBpZiBgcHJvY2Vzcy50dXJib3BhY2tgIHNldC5cbiAgICBpZiAoaW5pdEN1cnJlbnQuaW5pdCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGluaXRDdXJyZW50LmluaXQgPSB0cnVlXG5cbiAgICBpbXBvcnQoXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHJlcXVpcmVzIFwibW9kdWxlUmVzb2x1dGlvblwiOiBcIm5vZGUxNlwiIGluIHRzY29uZmlnLmpzb24gYW5kIG5vdCAudHMgZXh0ZW5zaW9uXG4gICAgICAnQHZlcmNlbC90dXJib3BhY2stZWNtYXNjcmlwdC1ydW50aW1lL2Jyb3dzZXIvZGV2L2htci1jbGllbnQvaG1yLWNsaWVudC50cydcbiAgICApLnRoZW4oKHsgY29ubmVjdCB9KSA9PiB7XG4gICAgICBjb25zdCB7IGN1cnJlbnQgfSA9IHR1cmJvcGFja1N0YXRlXG4gICAgICBjb25uZWN0KHtcbiAgICAgICAgYWRkTWVzc2FnZUxpc3RlbmVyKGNiOiAobXNnOiBUdXJib3BhY2tNc2dUb0Jyb3dzZXIpID0+IHZvaWQpIHtcbiAgICAgICAgICBjdXJyZW50LmNhbGxiYWNrID0gY2JcblxuICAgICAgICAgIC8vIFJlcGxheSBhbGwgVHVyYm9wYWNrIG1lc3NhZ2VzIGJlZm9yZSB3ZSB3ZXJlIGFibGUgdG8gZXN0YWJsaXNoIHRoZSBITVIgY2xpZW50LlxuICAgICAgICAgIGZvciAoY29uc3QgbXNnIG9mIGN1cnJlbnQucXVldWUhKSB7XG4gICAgICAgICAgICBjYihtc2cpXG4gICAgICAgICAgfVxuICAgICAgICAgIGN1cnJlbnQucXVldWUgPSB1bmRlZmluZWRcbiAgICAgICAgfSxcbiAgICAgICAgc2VuZE1lc3NhZ2UsXG4gICAgICAgIG9uVXBkYXRlRXJyb3IsXG4gICAgICB9KVxuICAgIH0pXG4gIH0sIFtzZW5kTWVzc2FnZSwgb25VcGRhdGVFcnJvcl0pXG5cbiAgcmV0dXJuIHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VXZWJzb2NrZXRQaW5nKFxuICB3ZWJzb2NrZXRSZWY6IFJldHVyblR5cGU8dHlwZW9mIHVzZVdlYnNvY2tldD5cbikge1xuICBjb25zdCBzZW5kTWVzc2FnZSA9IHVzZVNlbmRNZXNzYWdlKHdlYnNvY2tldFJlZilcbiAgY29uc3QgeyB0cmVlIH0gPSB1c2VDb250ZXh0KEdsb2JhbExheW91dFJvdXRlckNvbnRleHQpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBOZXZlciBzZW5kIHBpbmdzIHdoZW4gdXNpbmcgVHVyYm9wYWNrIGFzIGl0J3Mgbm90IHVzZWQuXG4gICAgLy8gUGluZ3Mgd2VyZSBvcmlnaW5hbGx5IHVzZWQgdG8ga2VlcCB0cmFjayBvZiBhY3RpdmUgcm91dGVzIGluIG9uLWRlbWFuZC1lbnRyaWVzIHdpdGggd2VicGFjay5cbiAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBUYWtlbiBmcm9tIG9uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qc1xuICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBldmVudDogJ3BpbmcnLFxuICAgICAgICAgIHRyZWUsXG4gICAgICAgICAgYXBwRGlyUm91dGU6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSwgMjUwMClcbiAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChpbnRlcnZhbClcbiAgfSwgW3RyZWUsIHNlbmRNZXNzYWdlXSlcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTZW5kTWVzc2FnZSIsInVzZVR1cmJvcGFjayIsInVzZVdlYnNvY2tldCIsInVzZVdlYnNvY2tldFBpbmciLCJhc3NldFByZWZpeCIsIndlYlNvY2tldFJlZiIsInVzZVJlZiIsInVuZGVmaW5lZCIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJ1cmwiLCJnZXRTb2NrZXRVcmwiLCJ3aW5kb3ciLCJXZWJTb2NrZXQiLCJzZW5kTWVzc2FnZSIsInVzZUNhbGxiYWNrIiwiZGF0YSIsInNvY2tldCIsInJlYWR5U3RhdGUiLCJPUEVOIiwic2VuZCIsIm9uVXBkYXRlRXJyb3IiLCJ0dXJib3BhY2tTdGF0ZSIsImluaXQiLCJxdWV1ZSIsImNhbGxiYWNrIiwicHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UiLCJtc2ciLCJwdXNoIiwiaW5pdEN1cnJlbnQiLCJ0aGVuIiwiY29ubmVjdCIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsImNiIiwid2Vic29ja2V0UmVmIiwidHJlZSIsInVzZUNvbnRleHQiLCJHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0IiwicHJvY2VzcyIsImVudiIsIlRVUkJPUEFDSyIsImludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJhcHBEaXJSb3V0ZSIsImNsZWFySW50ZXJ2YWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSocketUrl\", ({\n enumerable: true,\n get: function() {\n return getSocketUrl;\n }\n}));\nconst _normalizedassetprefix = __webpack_require__(/*! ../../../shared/lib/normalized-asset-prefix */ \"(ssr)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js\");\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 prefix = (0, _normalizedassetprefix.normalizedAssetPrefix)(assetPrefix);\n const protocol = getSocketProtocol(assetPrefix || '');\n if (URL.canParse(prefix)) {\n // since normalized asset prefix is ensured to be a URL format,\n // we can safely replace the protocol\n return prefix.replace(/^http/, 'ws');\n }\n const { hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? \":\" + port : '') + prefix;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-socket-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL2dldC1zb2NrZXQtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBYWdCQTs7O2VBQUFBOzs7bURBYnNCO0FBRXRDLFNBQVNDLGtCQUFrQkMsV0FBbUI7SUFDNUMsSUFBSUMsV0FBV0MsT0FBT0MsUUFBUSxDQUFDRixRQUFRO0lBRXZDLElBQUk7UUFDRix1QkFBdUI7UUFDdkJBLFdBQVcsSUFBSUcsSUFBSUosYUFBYUMsUUFBUTtJQUMxQyxFQUFFLFVBQU0sQ0FBQztJQUVULE9BQU9BLGFBQWEsVUFBVSxRQUFRO0FBQ3hDO0FBRU8sU0FBU0gsYUFBYUUsV0FBK0I7SUFDMUQsTUFBTUssU0FBU0MsQ0FBQUEsR0FBQUEsdUJBQUFBLHFCQUFBQSxFQUFzQk47SUFDckMsTUFBTUMsV0FBV0Ysa0JBQWtCQyxlQUFlO0lBRWxELElBQUlJLElBQUlHLFFBQVEsQ0FBQ0YsU0FBUztRQUN4QiwrREFBK0Q7UUFDL0QscUNBQXFDO1FBQ3JDLE9BQU9BLE9BQU9HLE9BQU8sQ0FBQyxTQUFTO0lBQ2pDO0lBRUEsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRSxHQUFHUixPQUFPQyxRQUFRO0lBQzFDLE9BQVVGLFdBQVMsT0FBSVEsV0FBV0MsQ0FBQUEsT0FBUSxNQUFHQSxPQUFTLEdBQUMsR0FBSUw7QUFDN0QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2Rldi9ob3QtcmVsb2FkZXIvZ2V0LXNvY2tldC11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplZEFzc2V0UHJlZml4IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9ub3JtYWxpemVkLWFzc2V0LXByZWZpeCdcblxuZnVuY3Rpb24gZ2V0U29ja2V0UHJvdG9jb2woYXNzZXRQcmVmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBwcm90b2NvbCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbFxuXG4gIHRyeSB7XG4gICAgLy8gYXNzZXRQcmVmaXggaXMgYSB1cmxcbiAgICBwcm90b2NvbCA9IG5ldyBVUkwoYXNzZXRQcmVmaXgpLnByb3RvY29sXG4gIH0gY2F0Y2gge31cblxuICByZXR1cm4gcHJvdG9jb2wgPT09ICdodHRwOicgPyAnd3M6JyA6ICd3c3M6J1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ja2V0VXJsKGFzc2V0UHJlZml4OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICBjb25zdCBwcmVmaXggPSBub3JtYWxpemVkQXNzZXRQcmVmaXgoYXNzZXRQcmVmaXgpXG4gIGNvbnN0IHByb3RvY29sID0gZ2V0U29ja2V0UHJvdG9jb2woYXNzZXRQcmVmaXggfHwgJycpXG5cbiAgaWYgKFVSTC5jYW5QYXJzZShwcmVmaXgpKSB7XG4gICAgLy8gc2luY2Ugbm9ybWFsaXplZCBhc3NldCBwcmVmaXggaXMgZW5zdXJlZCB0byBiZSBhIFVSTCBmb3JtYXQsXG4gICAgLy8gd2UgY2FuIHNhZmVseSByZXBsYWNlIHRoZSBwcm90b2NvbFxuICAgIHJldHVybiBwcmVmaXgucmVwbGFjZSgvXmh0dHAvLCAnd3MnKVxuICB9XG5cbiAgY29uc3QgeyBob3N0bmFtZSwgcG9ydCB9ID0gd2luZG93LmxvY2F0aW9uXG4gIHJldHVybiBgJHtwcm90b2NvbH0vLyR7aG9zdG5hbWV9JHtwb3J0ID8gYDoke3BvcnR9YCA6ICcnfSR7cHJlZml4fWBcbn1cbiJdLCJuYW1lcyI6WyJnZXRTb2NrZXRVcmwiLCJnZXRTb2NrZXRQcm90b2NvbCIsImFzc2V0UHJlZml4IiwicHJvdG9jb2wiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsIlVSTCIsInByZWZpeCIsIm5vcm1hbGl6ZWRBc3NldFByZWZpeCIsImNhblBhcnNlIiwicmVwbGFjZSIsImhvc3RuYW1lIiwicG9ydCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/shared.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/dev/hot-reloader/shared.js ***!
|
||
\******************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 REACT_REFRESH_FULL_RELOAD: function() {\n return REACT_REFRESH_FULL_RELOAD;\n },\n REACT_REFRESH_FULL_RELOAD_FROM_ERROR: function() {\n return REACT_REFRESH_FULL_RELOAD_FROM_ERROR;\n },\n reportInvalidHmrMessage: function() {\n return reportInvalidHmrMessage;\n }\n});\nconst REACT_REFRESH_FULL_RELOAD = '[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.';\nconst REACT_REFRESH_FULL_RELOAD_FROM_ERROR = '[Fast Refresh] performing full reload because your application had an unrecoverable error';\nfunction reportInvalidHmrMessage(message, err) {\n console.warn('[HMR] Invalid message: ' + JSON.stringify(message) + '\\n' + (err instanceof Error && (err == null ? void 0 : err.stack) || ''));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=shared.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL3NoYXJlZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFFYUEseUJBQXlCO2VBQXpCQTs7SUFRQUMsb0NBQW9DO2VBQXBDQTs7SUFHR0MsdUJBQXVCO2VBQXZCQTs7O0FBWFQsTUFBTUYsNEJBQ1gsOENBQ0EsbUlBQ0EscUlBQ0EsK0dBQ0EsOEhBQ0E7QUFFSyxNQUFNQyx1Q0FDWDtBQUVLLFNBQVNDLHdCQUNkQyxPQUFpRCxFQUNqREMsR0FBWTtJQUVaQyxRQUFRQyxJQUFJLENBQ1YsNEJBQ0VDLEtBQUtDLFNBQVMsQ0FBQ0wsV0FDZixPQUNDLENBQUNDLGVBQWVLLFVBQVNMLE9BQUFBLE9BQUFBLEtBQUFBLElBQUFBLElBQUtNLEtBQUFBLEtBQVUsR0FBQztBQUVoRCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvZGV2L2hvdC1yZWxvYWRlci9zaGFyZWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBITVJfQUNUSU9OX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEID1cbiAgJ1tGYXN0IFJlZnJlc2hdIHBlcmZvcm1pbmcgZnVsbCByZWxvYWRcXG5cXG4nICtcbiAgXCJGYXN0IFJlZnJlc2ggd2lsbCBwZXJmb3JtIGEgZnVsbCByZWxvYWQgd2hlbiB5b3UgZWRpdCBhIGZpbGUgdGhhdCdzIGltcG9ydGVkIGJ5IG1vZHVsZXMgb3V0c2lkZSBvZiB0aGUgUmVhY3QgcmVuZGVyaW5nIHRyZWUuXFxuXCIgK1xuICAnWW91IG1pZ2h0IGhhdmUgYSBmaWxlIHdoaWNoIGV4cG9ydHMgYSBSZWFjdCBjb21wb25lbnQgYnV0IGFsc28gZXhwb3J0cyBhIHZhbHVlIHRoYXQgaXMgaW1wb3J0ZWQgYnkgYSBub24tUmVhY3QgY29tcG9uZW50IGZpbGUuXFxuJyArXG4gICdDb25zaWRlciBtaWdyYXRpbmcgdGhlIG5vbi1SZWFjdCBjb21wb25lbnQgZXhwb3J0IHRvIGEgc2VwYXJhdGUgZmlsZSBhbmQgaW1wb3J0aW5nIGl0IGludG8gYm90aCBmaWxlcy5cXG5cXG4nICtcbiAgJ0l0IGlzIGFsc28gcG9zc2libGUgdGhlIHBhcmVudCBjb21wb25lbnQgb2YgdGhlIGNvbXBvbmVudCB5b3UgZWRpdGVkIGlzIGEgY2xhc3MgY29tcG9uZW50LCB3aGljaCBkaXNhYmxlcyBGYXN0IFJlZnJlc2guXFxuJyArXG4gICdGYXN0IFJlZnJlc2ggcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHBhcmVudCBmdW5jdGlvbiBjb21wb25lbnQgaW4geW91ciBSZWFjdCB0cmVlLidcblxuZXhwb3J0IGNvbnN0IFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiA9XG4gICdbRmFzdCBSZWZyZXNoXSBwZXJmb3JtaW5nIGZ1bGwgcmVsb2FkIGJlY2F1c2UgeW91ciBhcHBsaWNhdGlvbiBoYWQgYW4gdW5yZWNvdmVyYWJsZSBlcnJvcidcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcG9ydEludmFsaWRIbXJNZXNzYWdlKFxuICBtZXNzYWdlOiBITVJfQUNUSU9OX1RZUEVTIHwgTWVzc2FnZUV2ZW50PHVua25vd24+LFxuICBlcnI6IHVua25vd25cbikge1xuICBjb25zb2xlLndhcm4oXG4gICAgJ1tITVJdIEludmFsaWQgbWVzc2FnZTogJyArXG4gICAgICBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSArXG4gICAgICAnXFxuJyArXG4gICAgICAoKGVyciBpbnN0YW5jZW9mIEVycm9yICYmIGVycj8uc3RhY2spIHx8ICcnKVxuICApXG59XG4iXSwibmFtZXMiOlsiUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRCIsIlJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiIsInJlcG9ydEludmFsaWRIbXJNZXNzYWdlIiwibWVzc2FnZSIsImVyciIsImNvbnNvbGUiLCJ3YXJuIiwiSlNPTiIsInN0cmluZ2lmeSIsIkVycm9yIiwic3RhY2siXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/shared.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"TurbopackHmr\", ({\n enumerable: true,\n get: function() {\n return TurbopackHmr;\n }\n}));\nconst _class_private_field_loose_base = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_base */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\");\nconst _class_private_field_loose_key = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_key */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\");\n// How long to wait before reporting the HMR start, used to suppress irrelevant\n// `BUILDING` events. Does not impact reported latency.\nconst TURBOPACK_HMR_START_DELAY_MS = 100;\nvar _updatedModules = /*#__PURE__*/ _class_private_field_loose_key._(\"_updatedModules\"), _startMsSinceEpoch = /*#__PURE__*/ _class_private_field_loose_key._(\"_startMsSinceEpoch\"), _lastUpdateMsSinceEpoch = /*#__PURE__*/ _class_private_field_loose_key._(\"_lastUpdateMsSinceEpoch\"), _deferredReportHmrStartId = /*#__PURE__*/ _class_private_field_loose_key._(\"_deferredReportHmrStartId\"), _reportedHmrStart = /*#__PURE__*/ _class_private_field_loose_key._(\"_reportedHmrStart\"), // as it reports *any* compilation, including fully no-op/cached compilations\n// and those unrelated to HMR. Fixing this would require significant\n// architectural changes.\n//\n// Work around this by deferring any \"rebuilding\" message by 100ms. If we get\n// a BUILT event within that threshold and nothing has changed, just suppress\n// the message entirely.\n_runDeferredReportHmrStart = /*#__PURE__*/ _class_private_field_loose_key._(\"_runDeferredReportHmrStart\"), _cancelDeferredReportHmrStart = /*#__PURE__*/ _class_private_field_loose_key._(\"_cancelDeferredReportHmrStart\"), /** Helper for other `onEvent` methods. */ _onUpdate = /*#__PURE__*/ _class_private_field_loose_key._(\"_onUpdate\");\nclass TurbopackHmr {\n onBuilding() {\n _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] = undefined;\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch] = Date.now();\n // report the HMR start after a short delay\n _class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] = setTimeout(()=>_class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart](), self.__NEXT_HMR_TURBOPACK_REPORT_NOISY_NOOP_EVENTS ? 0 : TURBOPACK_HMR_START_DELAY_MS);\n }\n onTurbopackMessage(msg) {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n const updatedModules = extractModulesFromTurbopackMessage(msg.data);\n for (const module1 of updatedModules){\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules].add(module1);\n }\n }\n onServerComponentChanges() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n onReloadPage() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n onPageAddRemove() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n /**\n * @returns `null` if the caller should ignore the update entirely. Returns an\n * object with `hasUpdates: false` if the caller should report the end of\n * the HMR in the browser console, but the HMR was a no-op.\n */ onBuilt() {\n // Check that we got *any* `TurbopackMessageAction`, even if\n // `updatedModules` is empty (not everything gets recorded there).\n //\n // There's also a case where `onBuilt` gets called before `onBuilding`,\n // which can happen during initial page load. Ignore that too!\n const hasUpdates = _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] != null && _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch] != null;\n if (!hasUpdates && !_class_private_field_loose_base._(this, _reportedHmrStart)[_reportedHmrStart]) {\n // suppress the update entirely\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n return null;\n }\n _class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart]();\n var _class_private_field_loose_base__lastUpdateMsSinceEpoch;\n const result = {\n hasUpdates,\n updatedModules: _class_private_field_loose_base._(this, _updatedModules)[_updatedModules],\n startMsSinceEpoch: _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch],\n endMsSinceEpoch: (_class_private_field_loose_base__lastUpdateMsSinceEpoch = _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch]) != null ? _class_private_field_loose_base__lastUpdateMsSinceEpoch : Date.now()\n };\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules] = new Set();\n _class_private_field_loose_base._(this, _reportedHmrStart)[_reportedHmrStart] = false;\n return result;\n }\n constructor(){\n Object.defineProperty(this, _runDeferredReportHmrStart, {\n value: runDeferredReportHmrStart\n });\n Object.defineProperty(this, _cancelDeferredReportHmrStart, {\n value: cancelDeferredReportHmrStart\n });\n Object.defineProperty(this, _onUpdate, {\n value: onUpdate\n });\n Object.defineProperty(this, _updatedModules, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _startMsSinceEpoch, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _lastUpdateMsSinceEpoch, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _deferredReportHmrStartId, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _reportedHmrStart, {\n writable: true,\n value: void 0\n });\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules] = new Set();\n _class_private_field_loose_base._(this, _reportedHmrStart)[_reportedHmrStart] = false;\n }\n}\nfunction runDeferredReportHmrStart() {\n if (_class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] != null) {\n console.log('[Fast Refresh] rebuilding');\n _class_private_field_loose_base._(this, _reportedHmrStart)[_reportedHmrStart] = true;\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n }\n}\nfunction cancelDeferredReportHmrStart() {\n clearTimeout(_class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId]);\n _class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] = undefined;\n}\nfunction onUpdate() {\n _class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart]();\n _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] = Date.now();\n}\nfunction extractModulesFromTurbopackMessage(data) {\n const updatedModules = new Set();\n const updates = Array.isArray(data) ? data : [\n data\n ];\n for (const update of updates){\n // TODO this won't capture changes to CSS since they don't result in a \"merged\" update\n if (update.type !== 'partial' || update.instruction.type !== 'ChunkListUpdate' || update.instruction.merged === undefined) {\n continue;\n }\n for (const mergedUpdate of update.instruction.merged){\n for (const name of Object.keys(mergedUpdate.entries)){\n const res = /(.*)\\s+\\[.*/.exec(name);\n if (res === null) {\n console.error('[Turbopack HMR] Expected module to match pattern: ' + name);\n continue;\n }\n updatedModules.add(res[1]);\n }\n }\n }\n return updatedModules;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=turbopack-hot-reloader-common.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL3R1cmJvcGFjay1ob3QtcmVsb2FkZXItY29tbW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBb0JhQTs7O2VBQUFBOzs7OztBQVhiLCtFQUErRTtBQUMvRSx1REFBdUQ7QUFDdkQsTUFBTUMsK0JBQStCO0lBVW5DLHFGQUNBLDJGQUNBLHFHQUNBLHlHQUNBLHlGQU9BLDRFQUE0RSxDQUNDO0FBQzdFLG9FQUFvRTtBQUNwRSx5QkFBeUI7QUFDekIsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSw2RUFBNkU7QUFDN0Usd0JBQXdCO0FBQ3hCLDJHQVFBLGlIQW9CQSx3Q0FBd0MsR0FDeEM7QUFqREssTUFBTUQ7SUFpQ1hFLGFBQWE7UUFDWCxzQ0FBSSxFQUFDLG9EQUEwQkM7UUFDL0Isc0NBQUksRUFBQztRQUNMLHNDQUFJLEVBQUMsMENBQXFCQyxLQUFLQyxHQUFHO1FBRWxDLDJDQUEyQztRQUMzQyxzQ0FBSSxFQUFDLHdEQUE0QkMsV0FDL0IsSUFBTSxzQ0FBSSxFQUFDLDJEQUVYQyxLQUFLQyw2Q0FBNkMsR0FDOUMsSUFDQVAsaUJBSHNFO0lBSzlFO0lBUUFRLG1CQUFtQkMsR0FBMkIsRUFBRTtRQUM5QyxzQ0FBSSxFQUFDO1FBQ0wsTUFBTUMsaUJBQWlCQyxtQ0FBbUNGLElBQUlHLElBQUk7UUFDbEUsS0FBSyxNQUFNQyxXQUFVSCxlQUFnQjtZQUNuQyxzQ0FBSSxFQUFDLGtDQUFnQkksR0FBRyxDQUFDRDtRQUMzQjtJQUNGO0lBRUFFLDJCQUEyQjtRQUN6QixzQ0FBSSxFQUFDO0lBQ1A7SUFFQUMsZUFBZTtRQUNiLHNDQUFJLEVBQUM7SUFDUDtJQUVBQyxrQkFBa0I7UUFDaEIsc0NBQUksRUFBQztJQUNQO0lBRUE7Ozs7R0FJQyxHQUNEQyxVQUE0QjtRQUMxQiw0REFBNEQ7UUFDNUQsa0VBQWtFO1FBQ2xFLEVBQUU7UUFDRix1RUFBdUU7UUFDdkUsOERBQThEO1FBQzlELE1BQU1DLGFBQ0osc0NBQUksRUFBQyxxREFBMkIsUUFBUSxzQ0FBSSxFQUFDLDJDQUFzQjtRQUNyRSxJQUFJLENBQUNBLGNBQWMsQ0FBQyxzQ0FBSSxFQUFDLHVDQUFtQjtZQUMxQywrQkFBK0I7WUFDL0Isc0NBQUksRUFBQztZQUNMLE9BQU87UUFDVDtRQUNBLHNDQUFJLEVBQUM7O1FBRUwsTUFBTUMsU0FBUztZQUNiRDtZQUNBVCxjQUFjLEVBQUUsc0NBQUksRUFBQztZQUNyQlcsaUJBQWlCLEVBQUUsc0NBQUksRUFBQztZQUN4QkMsaUJBQWlCLGlHQUFJLEVBQUMsdUhBQTJCbkIsS0FBS0MsR0FBRztRQUMzRDtRQUNBLHNDQUFJLEVBQUMsb0NBQWtCLElBQUltQjtRQUMzQixzQ0FBSSxFQUFDLHdDQUFvQjtRQUN6QixPQUFPSDtJQUNUO0lBaEdBSSxhQUFjO1FBYWQ7bUJBQUE7O1FBUUE7bUJBQUE7O1FBcUJBO21CQUFBOztRQWhEQTs7bUJBQUE7O1FBQ0E7O21CQUFBOztRQUNBOzttQkFBQTs7UUFDQTs7bUJBQUE7O1FBQ0E7O21CQUFBOztRQUdFLHNDQUFJLEVBQUMsb0NBQWtCLElBQUlEO1FBQzNCLHNDQUFJLEVBQUMsd0NBQW9CO0lBQzNCO0FBOEZGO0FBcEZFO0lBQ0UsSUFBSSxzQ0FBSSxFQUFDLHlEQUE2QixNQUFNO1FBQzFDRSxRQUFRQyxHQUFHLENBQUM7UUFDWixzQ0FBSSxFQUFDLHdDQUFvQjtRQUN6QixzQ0FBSSxFQUFDO0lBQ1A7QUFDRjtBQUVBO0lBQ0VDLGFBQWEsc0NBQUksRUFBQztJQUNsQixzQ0FBSSxFQUFDLHdEQUE0QnpCO0FBQ25DO0FBa0JBO0lBQ0Usc0NBQUksRUFBQztJQUNMLHNDQUFJLEVBQUMsb0RBQTBCQyxLQUFLQyxHQUFHO0FBQ3pDO0FBc0RGLFNBQVNPLG1DQUNQQyxJQUF5QztJQUV6QyxNQUFNRixpQkFBOEIsSUFBSWE7SUFFeEMsTUFBTUssVUFBVUMsTUFBTUMsT0FBTyxDQUFDbEIsUUFBUUEsT0FBTztRQUFDQTtLQUFLO0lBQ25ELEtBQUssTUFBTW1CLFVBQVVILFFBQVM7UUFDNUIsc0ZBQXNGO1FBQ3RGLElBQ0VHLE9BQU9DLElBQUksS0FBSyxhQUNoQkQsT0FBT0UsV0FBVyxDQUFDRCxJQUFJLEtBQUsscUJBQzVCRCxPQUFPRSxXQUFXLENBQUNDLE1BQU0sS0FBS2hDLFdBQzlCO1lBQ0E7UUFDRjtRQUVBLEtBQUssTUFBTWlDLGdCQUFnQkosT0FBT0UsV0FBVyxDQUFDQyxNQUFNLENBQUU7WUFDcEQsS0FBSyxNQUFNRSxRQUFRQyxPQUFPQyxJQUFJLENBQUNILGFBQWFJLE9BQU8sRUFBRztnQkFDcEQsTUFBTUMsTUFBTSxjQUFjQyxJQUFJLENBQUNMO2dCQUMvQixJQUFJSSxRQUFRLE1BQU07b0JBQ2hCZixRQUFRaUIsS0FBSyxDQUNYLHVEQUF1RE47b0JBRXpEO2dCQUNGO2dCQUVBMUIsZUFBZUksR0FBRyxDQUFDMEIsR0FBRyxDQUFDLEVBQUU7WUFDM0I7UUFDRjtJQUNGO0lBRUEsT0FBTzlCO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2Rldi9ob3QtcmVsb2FkZXIvdHVyYm9wYWNrLWhvdC1yZWxvYWRlci1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUdXJib3BhY2tNZXNzYWdlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFVwZGF0ZSBhcyBUdXJib3BhY2tVcGRhdGUgfSBmcm9tICcuLi8uLi8uLi9idWlsZC9zd2MvdHlwZXMnXG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgX19ORVhUX0hNUl9UVVJCT1BBQ0tfUkVQT1JUX05PSVNZX05PT1BfRVZFTlRTOiBib29sZWFuIHwgdW5kZWZpbmVkXG4gIH1cbn1cblxuLy8gSG93IGxvbmcgdG8gd2FpdCBiZWZvcmUgcmVwb3J0aW5nIHRoZSBITVIgc3RhcnQsIHVzZWQgdG8gc3VwcHJlc3MgaXJyZWxldmFudFxuLy8gYEJVSUxESU5HYCBldmVudHMuIERvZXMgbm90IGltcGFjdCByZXBvcnRlZCBsYXRlbmN5LlxuY29uc3QgVFVSQk9QQUNLX0hNUl9TVEFSVF9ERUxBWV9NUyA9IDEwMFxuXG5pbnRlcmZhY2UgSG1yVXBkYXRlIHtcbiAgaGFzVXBkYXRlczogYm9vbGVhblxuICB1cGRhdGVkTW9kdWxlczogU2V0PHN0cmluZz5cbiAgc3RhcnRNc1NpbmNlRXBvY2g6IG51bWJlclxuICBlbmRNc1NpbmNlRXBvY2g6IG51bWJlclxufVxuXG5leHBvcnQgY2xhc3MgVHVyYm9wYWNrSG1yIHtcbiAgI3VwZGF0ZWRNb2R1bGVzOiBTZXQ8c3RyaW5nPlxuICAjc3RhcnRNc1NpbmNlRXBvY2g6IG51bWJlciB8IHVuZGVmaW5lZFxuICAjbGFzdFVwZGF0ZU1zU2luY2VFcG9jaDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gICNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkXG4gICNyZXBvcnRlZEhtclN0YXJ0OiBib29sZWFuXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jdXBkYXRlZE1vZHVsZXMgPSBuZXcgU2V0KClcbiAgICB0aGlzLiNyZXBvcnRlZEhtclN0YXJ0ID0gZmFsc2VcbiAgfVxuXG4gIC8vIEhBQ0s6IFR1cmJvcGFjayB0ZW5kcyB0byBnZW5lcmF0ZSBhIGxvdCBvZiBpcnJlbGV2YW50IFwiQlVJTERJTkdcIiBhY3Rpb25zLFxuICAvLyBhcyBpdCByZXBvcnRzICphbnkqIGNvbXBpbGF0aW9uLCBpbmNsdWRpbmcgZnVsbHkgbm8tb3AvY2FjaGVkIGNvbXBpbGF0aW9uc1xuICAvLyBhbmQgdGhvc2UgdW5yZWxhdGVkIHRvIEhNUi4gRml4aW5nIHRoaXMgd291bGQgcmVxdWlyZSBzaWduaWZpY2FudFxuICAvLyBhcmNoaXRlY3R1cmFsIGNoYW5nZXMuXG4gIC8vXG4gIC8vIFdvcmsgYXJvdW5kIHRoaXMgYnkgZGVmZXJyaW5nIGFueSBcInJlYnVpbGRpbmdcIiBtZXNzYWdlIGJ5IDEwMG1zLiBJZiB3ZSBnZXRcbiAgLy8gYSBCVUlMVCBldmVudCB3aXRoaW4gdGhhdCB0aHJlc2hvbGQgYW5kIG5vdGhpbmcgaGFzIGNoYW5nZWQsIGp1c3Qgc3VwcHJlc3NcbiAgLy8gdGhlIG1lc3NhZ2UgZW50aXJlbHkuXG4gICNydW5EZWZlcnJlZFJlcG9ydEhtclN0YXJ0KCkge1xuICAgIGlmICh0aGlzLiNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQgIT0gbnVsbCkge1xuICAgICAgY29uc29sZS5sb2coJ1tGYXN0IFJlZnJlc2hdIHJlYnVpbGRpbmcnKVxuICAgICAgdGhpcy4jcmVwb3J0ZWRIbXJTdGFydCA9IHRydWVcbiAgICAgIHRoaXMuI2NhbmNlbERlZmVycmVkUmVwb3J0SG1yU3RhcnQoKVxuICAgIH1cbiAgfVxuXG4gICNjYW5jZWxEZWZlcnJlZFJlcG9ydEhtclN0YXJ0KCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLiNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQpXG4gICAgdGhpcy4jZGVmZXJyZWRSZXBvcnRIbXJTdGFydElkID0gdW5kZWZpbmVkXG4gIH1cblxuICBvbkJ1aWxkaW5nKCkge1xuICAgIHRoaXMuI2xhc3RVcGRhdGVNc1NpbmNlRXBvY2ggPSB1bmRlZmluZWRcbiAgICB0aGlzLiNjYW5jZWxEZWZlcnJlZFJlcG9ydEhtclN0YXJ0KClcbiAgICB0aGlzLiNzdGFydE1zU2luY2VFcG9jaCA9IERhdGUubm93KClcblxuICAgIC8vIHJlcG9ydCB0aGUgSE1SIHN0YXJ0IGFmdGVyIGEgc2hvcnQgZGVsYXlcbiAgICB0aGlzLiNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gdGhpcy4jcnVuRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpLFxuICAgICAgLy8gZGVidWdnaW5nIGZlYXR1cmU6IGRvbid0IGRlZmVyL3N1cHByZXNzIG5vaXN5IG5vLW9wIEhNUiB1cGRhdGUgbWVzc2FnZXNcbiAgICAgIHNlbGYuX19ORVhUX0hNUl9UVVJCT1BBQ0tfUkVQT1JUX05PSVNZX05PT1BfRVZFTlRTXG4gICAgICAgID8gMFxuICAgICAgICA6IFRVUkJPUEFDS19ITVJfU1RBUlRfREVMQVlfTVNcbiAgICApXG4gIH1cblxuICAvKiogSGVscGVyIGZvciBvdGhlciBgb25FdmVudGAgbWV0aG9kcy4gKi9cbiAgI29uVXBkYXRlKCkge1xuICAgIHRoaXMuI3J1bkRlZmVycmVkUmVwb3J0SG1yU3RhcnQoKVxuICAgIHRoaXMuI2xhc3RVcGRhdGVNc1NpbmNlRXBvY2ggPSBEYXRlLm5vdygpXG4gIH1cblxuICBvblR1cmJvcGFja01lc3NhZ2UobXNnOiBUdXJib3BhY2tNZXNzYWdlQWN0aW9uKSB7XG4gICAgdGhpcy4jb25VcGRhdGUoKVxuICAgIGNvbnN0IHVwZGF0ZWRNb2R1bGVzID0gZXh0cmFjdE1vZHVsZXNGcm9tVHVyYm9wYWNrTWVzc2FnZShtc2cuZGF0YSlcbiAgICBmb3IgKGNvbnN0IG1vZHVsZSBvZiB1cGRhdGVkTW9kdWxlcykge1xuICAgICAgdGhpcy4jdXBkYXRlZE1vZHVsZXMuYWRkKG1vZHVsZSlcbiAgICB9XG4gIH1cblxuICBvblNlcnZlckNvbXBvbmVudENoYW5nZXMoKSB7XG4gICAgdGhpcy4jb25VcGRhdGUoKVxuICB9XG5cbiAgb25SZWxvYWRQYWdlKCkge1xuICAgIHRoaXMuI29uVXBkYXRlKClcbiAgfVxuXG4gIG9uUGFnZUFkZFJlbW92ZSgpIHtcbiAgICB0aGlzLiNvblVwZGF0ZSgpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgYG51bGxgIGlmIHRoZSBjYWxsZXIgc2hvdWxkIGlnbm9yZSB0aGUgdXBkYXRlIGVudGlyZWx5LiBSZXR1cm5zIGFuXG4gICAqICAgb2JqZWN0IHdpdGggYGhhc1VwZGF0ZXM6IGZhbHNlYCBpZiB0aGUgY2FsbGVyIHNob3VsZCByZXBvcnQgdGhlIGVuZCBvZlxuICAgKiAgIHRoZSBITVIgaW4gdGhlIGJyb3dzZXIgY29uc29sZSwgYnV0IHRoZSBITVIgd2FzIGEgbm8tb3AuXG4gICAqL1xuICBvbkJ1aWx0KCk6IEhtclVwZGF0ZSB8IG51bGwge1xuICAgIC8vIENoZWNrIHRoYXQgd2UgZ290ICphbnkqIGBUdXJib3BhY2tNZXNzYWdlQWN0aW9uYCwgZXZlbiBpZlxuICAgIC8vIGB1cGRhdGVkTW9kdWxlc2AgaXMgZW1wdHkgKG5vdCBldmVyeXRoaW5nIGdldHMgcmVjb3JkZWQgdGhlcmUpLlxuICAgIC8vXG4gICAgLy8gVGhlcmUncyBhbHNvIGEgY2FzZSB3aGVyZSBgb25CdWlsdGAgZ2V0cyBjYWxsZWQgYmVmb3JlIGBvbkJ1aWxkaW5nYCxcbiAgICAvLyB3aGljaCBjYW4gaGFwcGVuIGR1cmluZyBpbml0aWFsIHBhZ2UgbG9hZC4gSWdub3JlIHRoYXQgdG9vIVxuICAgIGNvbnN0IGhhc1VwZGF0ZXMgPVxuICAgICAgdGhpcy4jbGFzdFVwZGF0ZU1zU2luY2VFcG9jaCAhPSBudWxsICYmIHRoaXMuI3N0YXJ0TXNTaW5jZUVwb2NoICE9IG51bGxcbiAgICBpZiAoIWhhc1VwZGF0ZXMgJiYgIXRoaXMuI3JlcG9ydGVkSG1yU3RhcnQpIHtcbiAgICAgIC8vIHN1cHByZXNzIHRoZSB1cGRhdGUgZW50aXJlbHlcbiAgICAgIHRoaXMuI2NhbmNlbERlZmVycmVkUmVwb3J0SG1yU3RhcnQoKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgdGhpcy4jcnVuRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpXG5cbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICBoYXNVcGRhdGVzLFxuICAgICAgdXBkYXRlZE1vZHVsZXM6IHRoaXMuI3VwZGF0ZWRNb2R1bGVzLFxuICAgICAgc3RhcnRNc1NpbmNlRXBvY2g6IHRoaXMuI3N0YXJ0TXNTaW5jZUVwb2NoISxcbiAgICAgIGVuZE1zU2luY2VFcG9jaDogdGhpcy4jbGFzdFVwZGF0ZU1zU2luY2VFcG9jaCA/PyBEYXRlLm5vdygpLFxuICAgIH1cbiAgICB0aGlzLiN1cGRhdGVkTW9kdWxlcyA9IG5ldyBTZXQoKVxuICAgIHRoaXMuI3JlcG9ydGVkSG1yU3RhcnQgPSBmYWxzZVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuXG5mdW5jdGlvbiBleHRyYWN0TW9kdWxlc0Zyb21UdXJib3BhY2tNZXNzYWdlKFxuICBkYXRhOiBUdXJib3BhY2tVcGRhdGUgfCBUdXJib3BhY2tVcGRhdGVbXVxuKTogU2V0PHN0cmluZz4ge1xuICBjb25zdCB1cGRhdGVkTW9kdWxlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KClcblxuICBjb25zdCB1cGRhdGVzID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV1cbiAgZm9yIChjb25zdCB1cGRhdGUgb2YgdXBkYXRlcykge1xuICAgIC8vIFRPRE8gdGhpcyB3b24ndCBjYXB0dXJlIGNoYW5nZXMgdG8gQ1NTIHNpbmNlIHRoZXkgZG9uJ3QgcmVzdWx0IGluIGEgXCJtZXJnZWRcIiB1cGRhdGVcbiAgICBpZiAoXG4gICAgICB1cGRhdGUudHlwZSAhPT0gJ3BhcnRpYWwnIHx8XG4gICAgICB1cGRhdGUuaW5zdHJ1Y3Rpb24udHlwZSAhPT0gJ0NodW5rTGlzdFVwZGF0ZScgfHxcbiAgICAgIHVwZGF0ZS5pbnN0cnVjdGlvbi5tZXJnZWQgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG1lcmdlZFVwZGF0ZSBvZiB1cGRhdGUuaW5zdHJ1Y3Rpb24ubWVyZ2VkKSB7XG4gICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMobWVyZ2VkVXBkYXRlLmVudHJpZXMpKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IC8oLiopXFxzK1xcWy4qLy5leGVjKG5hbWUpXG4gICAgICAgIGlmIChyZXMgPT09IG51bGwpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ1tUdXJib3BhY2sgSE1SXSBFeHBlY3RlZCBtb2R1bGUgdG8gbWF0Y2ggcGF0dGVybjogJyArIG5hbWVcbiAgICAgICAgICApXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZWRNb2R1bGVzLmFkZChyZXNbMV0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZWRNb2R1bGVzXG59XG4iXSwibmFtZXMiOlsiVHVyYm9wYWNrSG1yIiwiVFVSQk9QQUNLX0hNUl9TVEFSVF9ERUxBWV9NUyIsIm9uQnVpbGRpbmciLCJ1bmRlZmluZWQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsInNlbGYiLCJfX05FWFRfSE1SX1RVUkJPUEFDS19SRVBPUlRfTk9JU1lfTk9PUF9FVkVOVFMiLCJvblR1cmJvcGFja01lc3NhZ2UiLCJtc2ciLCJ1cGRhdGVkTW9kdWxlcyIsImV4dHJhY3RNb2R1bGVzRnJvbVR1cmJvcGFja01lc3NhZ2UiLCJkYXRhIiwibW9kdWxlIiwiYWRkIiwib25TZXJ2ZXJDb21wb25lbnRDaGFuZ2VzIiwib25SZWxvYWRQYWdlIiwib25QYWdlQWRkUmVtb3ZlIiwib25CdWlsdCIsImhhc1VwZGF0ZXMiLCJyZXN1bHQiLCJzdGFydE1zU2luY2VFcG9jaCIsImVuZE1zU2luY2VFcG9jaCIsIlNldCIsImNvbnN0cnVjdG9yIiwiY29uc29sZSIsImxvZyIsImNsZWFyVGltZW91dCIsInVwZGF0ZXMiLCJBcnJheSIsImlzQXJyYXkiLCJ1cGRhdGUiLCJ0eXBlIiwiaW5zdHJ1Y3Rpb24iLCJtZXJnZWQiLCJtZXJnZWRVcGRhdGUiLCJuYW1lIiwiT2JqZWN0Iiwia2V5cyIsImVudHJpZXMiLCJyZXMiLCJleGVjIiwiZXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/dev/noop-turbopack-hmr.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/dev/noop-turbopack-hmr.js ***!
|
||
\*****************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// 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.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"connect\", ({\n enumerable: true,\n get: function() {\n return connect;\n }\n}));\nfunction connect() {}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=noop-turbopack-hmr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvbm9vcC10dXJib3BhY2staG1yLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtFQUErRTtBQUMvRSxpRUFBaUU7Ozs7OzJDQUNqREE7OztlQUFBQTs7O0FBQVQsU0FBU0EsV0FBVyIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL2NsaWVudC9kZXYvbm9vcC10dXJib3BhY2staG1yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBUdXJib3BhY2sgSE1SIGNsaWVudCBjYW4ndCBiZSBwcm9wZXJseSBvbWl0dGVkIGF0IHRoZSBtb21lbnQgKFdFQi0xNTg5KSxcbi8vIHNvIGluc3RlYWQgd2UgcmVtYXAgaXRzIGltcG9ydCB0byB0aGlzIGZpbGUgaW4gd2VicGFjayBidWlsZHMuXG5leHBvcnQgZnVuY3Rpb24gY29ubmVjdCgpIHt9XG4iXSwibmFtZXMiOlsiY29ubmVjdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/noop-turbopack-hmr.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/dev/report-hmr-latency.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/dev/report-hmr-latency.js ***!
|
||
\*****************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return reportHmrLatency;\n }\n}));\nfunction reportHmrLatency(sendMessage, updatedModules, startMsSinceEpoch, endMsSinceEpoch, hasUpdate) {\n if (hasUpdate === void 0) hasUpdate = true;\n const latencyMs = endMsSinceEpoch - startMsSinceEpoch;\n console.log(\"[Fast Refresh] done in \" + latencyMs + \"ms\");\n if (!hasUpdate) {\n return;\n }\n sendMessage(JSON.stringify({\n event: 'client-hmr-latency',\n id: window.__nextDevClientId,\n startTime: startMsSinceEpoch,\n endTime: endMsSinceEpoch,\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 (self.__NEXT_HMR_LATENCY_CB) {\n self.__NEXT_HMR_LATENCY_CB(latencyMs);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=report-hmr-latency.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvcmVwb3J0LWhtci1sYXRlbmN5LmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBaUJBOzs7ZUFBd0JBOzs7QUFBVCxTQUFTQSxpQkFDdEJDLFdBQXNDLEVBQ3RDQyxjQUE4QyxFQUM5Q0MsaUJBQXlCLEVBQ3pCQyxlQUF1QixFQUN2QkMsU0FBeUI7SUFBekJBLElBQUFBLGNBQUFBLEtBQUFBLEdBQUFBLFlBQXFCO0lBRXJCLE1BQU1DLFlBQVlGLGtCQUFrQkQ7SUFDcENJLFFBQVFDLEdBQUcsQ0FBRSw0QkFBeUJGLFlBQVU7SUFDaEQsSUFBSSxDQUFDRCxXQUFXO1FBQ2Q7SUFDRjtJQUNBSixZQUNFUSxLQUFLQyxTQUFTLENBQUM7UUFDYkMsT0FBTztRQUNQQyxJQUFJQyxPQUFPQyxpQkFBaUI7UUFDNUJDLFdBQVdaO1FBQ1hhLFNBQVNaO1FBQ1RhLE1BQU1KLE9BQU9LLFFBQVEsQ0FBQ0MsUUFBUTtRQUM5QmpCO1FBQ0Esb0VBQW9FO1FBQ3BFLHNEQUFzRDtRQUN0RGtCLGNBQWNDLFNBQVNDLGVBQWUsS0FBSztJQUM3QztJQUVGLElBQUlDLEtBQUtDLHFCQUFxQixFQUFFO1FBQzlCRCxLQUFLQyxxQkFBcUIsQ0FBQ2xCO0lBQzdCO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvZGV2L3JlcG9ydC1obXItbGF0ZW5jeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIF9fTkVYVF9ITVJfTEFURU5DWV9DQjogKChsYXRlbmN5TXM6IG51bWJlcikgPT4gdm9pZCkgfCB1bmRlZmluZWRcbiAgfVxufVxuXG4vKipcbiAqIExvZ3MgaW5mb3JtYXRpb24gYWJvdXQgYSBjb21wbGV0ZWQgSE1SIHRvIHRoZSBjb25zb2xlLCB0aGUgc2VydmVyICh2aWEgYVxuICogYGNsaWVudC1obXItbGF0ZW5jeWAgZXZlbnQpLCBhbmQgdG8gYHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCYCAoYSBkZWJ1Z2dpbmdcbiAqIGhvb2spLlxuICpcbiAqIEBwYXJhbSBoYXNVcGRhdGUgU2V0IHRoaXMgdG8gYGZhbHNlYCB0byBhdm9pZCByZXBvcnRpbmcgdGhlIEhNUiBldmVudCB2aWEgYVxuICogICBgY2xpZW50LWhtci1sYXRlbmN5YCBldmVudCBvciB0byBgc2VsZi5fX05FWFRfSE1SX0xBVEVOQ1lfQ0JgLiBVc2VkIGJ5XG4gKiAgIHR1cmJvcGFjayB3aGVuIHdlIG11c3QgcmVwb3J0IGEgbWVzc2FnZSB0byB0aGUgYnJvd3NlciBjb25zb2xlIChiZWNhdXNlIHdlXG4gKiAgIGFscmVhZHkgbG9nZ2VkIGEgXCJyZWJ1aWxkaW5nXCIgbWVzc2FnZSksIGJ1dCBpdCdzIG5vdCBhIHJlYWwgSE1SLCBzbyB3ZVxuICogICBkb24ndCB3YW50IHRvIGltcGFjdCBvdXIgdGVsZW1ldHJ5LlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXBvcnRIbXJMYXRlbmN5KFxuICBzZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCxcbiAgdXBkYXRlZE1vZHVsZXM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgc3RhcnRNc1NpbmNlRXBvY2g6IG51bWJlcixcbiAgZW5kTXNTaW5jZUVwb2NoOiBudW1iZXIsXG4gIGhhc1VwZGF0ZTogYm9vbGVhbiA9IHRydWVcbikge1xuICBjb25zdCBsYXRlbmN5TXMgPSBlbmRNc1NpbmNlRXBvY2ggLSBzdGFydE1zU2luY2VFcG9jaFxuICBjb25zb2xlLmxvZyhgW0Zhc3QgUmVmcmVzaF0gZG9uZSBpbiAke2xhdGVuY3lNc31tc2ApXG4gIGlmICghaGFzVXBkYXRlKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgc2VuZE1lc3NhZ2UoXG4gICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZXZlbnQ6ICdjbGllbnQtaG1yLWxhdGVuY3knLFxuICAgICAgaWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgIHN0YXJ0VGltZTogc3RhcnRNc1NpbmNlRXBvY2gsXG4gICAgICBlbmRUaW1lOiBlbmRNc1NpbmNlRXBvY2gsXG4gICAgICBwYWdlOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICB1cGRhdGVkTW9kdWxlcyxcbiAgICAgIC8vIFdoZXRoZXIgdGhlIHBhZ2UgKHRhYikgd2FzIGhpZGRlbiBhdCB0aGUgdGltZSB0aGUgZXZlbnQgb2NjdXJyZWQuXG4gICAgICAvLyBUaGlzIGNhbiBpbXBhY3QgdGhlIGFjY3VyYWN5IG9mIHRoZSBldmVudCdzIHRpbWluZy5cbiAgICAgIGlzUGFnZUhpZGRlbjogZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJyxcbiAgICB9KVxuICApXG4gIGlmIChzZWxmLl9fTkVYVF9ITVJfTEFURU5DWV9DQikge1xuICAgIHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCKGxhdGVuY3lNcylcbiAgfVxufVxuIl0sIm5hbWVzIjpbInJlcG9ydEhtckxhdGVuY3kiLCJzZW5kTWVzc2FnZSIsInVwZGF0ZWRNb2R1bGVzIiwic3RhcnRNc1NpbmNlRXBvY2giLCJlbmRNc1NpbmNlRXBvY2giLCJoYXNVcGRhdGUiLCJsYXRlbmN5TXMiLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwiaWQiLCJ3aW5kb3ciLCJfX25leHREZXZDbGllbnRJZCIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJwYWdlIiwibG9jYXRpb24iLCJwYXRobmFtZSIsImlzUGFnZUhpZGRlbiIsImRvY3VtZW50IiwidmlzaWJpbGl0eVN0YXRlIiwic2VsZiIsIl9fTkVYVF9ITVJfTEFURU5DWV9DQiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/report-hmr-latency.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/dev/runtime-error-handler.js ***!
|
||
\********************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RuntimeErrorHandler\", ({\n enumerable: true,\n get: function() {\n return RuntimeErrorHandler;\n }\n}));\nconst RuntimeErrorHandler = {\n hadRuntimeError: false\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=runtime-error-handler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvcnVudGltZS1lcnJvci1oYW5kbGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHNCQUFzQjtJQUNqQ0MsaUJBQWlCO0FBQ25CIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvY2xpZW50L2Rldi9ydW50aW1lLWVycm9yLWhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJ1bnRpbWVFcnJvckhhbmRsZXIgPSB7XG4gIGhhZFJ1bnRpbWVFcnJvcjogZmFsc2UsXG59XG4iXSwibmFtZXMiOlsiUnVudGltZUVycm9ySGFuZGxlciIsImhhZFJ1bnRpbWVFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/flight-data-helpers.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/flight-data-helpers.js ***!
|
||
\**************************************************************/
|
||
/***/ ((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 getFlightDataPartsFromPath: function() {\n return getFlightDataPartsFromPath;\n },\n getNextFlightSegmentPath: function() {\n return getNextFlightSegmentPath;\n },\n normalizeFlightData: function() {\n return normalizeFlightData;\n },\n prepareFlightRouterStateForRequest: function() {\n return prepareFlightRouterStateForRequest;\n }\n});\nconst _segment = __webpack_require__(/*! ../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction getFlightDataPartsFromPath(flightDataPath) {\n // Pick the last 4 items from the `FlightDataPath` to get the [tree, seedData, viewport, isHeadPartial].\n const flightDataPathLength = 4;\n // tree, seedData, and head are *always* the last three items in the `FlightDataPath`.\n const [tree, seedData, head, isHeadPartial] = flightDataPath.slice(-flightDataPathLength);\n // The `FlightSegmentPath` is everything except the last three items. For a root render, it won't be present.\n const segmentPath = flightDataPath.slice(0, -flightDataPathLength);\n var _segmentPath_;\n return {\n // TODO: Unify these two segment path helpers. We are inconsistently pushing an empty segment (\"\")\n // to the start of the segment path in some places which makes it hard to use solely the segment path.\n // Look for \"// TODO-APP: remove ''\" in the codebase.\n pathToSegment: segmentPath.slice(0, -1),\n segmentPath,\n // if the `FlightDataPath` corresponds with the root, there'll be no segment path,\n // in which case we default to ''.\n segment: (_segmentPath_ = segmentPath[segmentPath.length - 1]) != null ? _segmentPath_ : '',\n tree,\n seedData,\n head,\n isHeadPartial,\n isRootRender: flightDataPath.length === flightDataPathLength\n };\n}\nfunction getNextFlightSegmentPath(flightSegmentPath) {\n // Since `FlightSegmentPath` is a repeated tuple of `Segment` and `ParallelRouteKey`, we slice off two items\n // to get the next segment path.\n return flightSegmentPath.slice(2);\n}\nfunction normalizeFlightData(flightData) {\n // FlightData can be a string when the server didn't respond with a proper flight response,\n // or when a redirect happens, to signal to the client that it needs to perform an MPA navigation.\n if (typeof flightData === 'string') {\n return flightData;\n }\n return flightData.map((flightDataPath)=>getFlightDataPartsFromPath(flightDataPath));\n}\nfunction prepareFlightRouterStateForRequest(flightRouterState, isHmrRefresh) {\n // HMR requests need the complete, unmodified state for proper functionality\n if (isHmrRefresh) {\n return encodeURIComponent(JSON.stringify(flightRouterState));\n }\n return encodeURIComponent(JSON.stringify(stripClientOnlyDataFromFlightRouterState(flightRouterState)));\n}\n/**\n * Recursively strips client-only data from FlightRouterState while preserving\n * server-needed information for proper rendering decisions.\n */ function stripClientOnlyDataFromFlightRouterState(flightRouterState) {\n const [segment, parallelRoutes, _url, refreshMarker, isRootLayout, hasLoadingBoundary] = flightRouterState;\n // __PAGE__ segments are always fetched from the server, so there's\n // no need to send them up\n const cleanedSegment = stripSearchParamsFromPageSegment(segment);\n // Recursively process parallel routes\n const cleanedParallelRoutes = {};\n for (const [key, childState] of Object.entries(parallelRoutes)){\n cleanedParallelRoutes[key] = stripClientOnlyDataFromFlightRouterState(childState);\n }\n const result = [\n cleanedSegment,\n cleanedParallelRoutes,\n null,\n shouldPreserveRefreshMarker(refreshMarker) ? refreshMarker : null\n ];\n // Append optional fields if present\n if (isRootLayout !== undefined) {\n result[4] = isRootLayout;\n }\n if (hasLoadingBoundary !== undefined) {\n result[5] = hasLoadingBoundary;\n }\n return result;\n}\n/**\n * Strips search parameters from __PAGE__ segments to prevent sensitive\n * client-side data from being sent to the server.\n */ function stripSearchParamsFromPageSegment(segment) {\n if (typeof segment === 'string' && segment.startsWith(_segment.PAGE_SEGMENT_KEY + '?')) {\n return _segment.PAGE_SEGMENT_KEY;\n }\n return segment;\n}\n/**\n * Determines whether the refresh marker should be sent to the server\n * Client-only markers like 'refresh' are stripped, while server-needed markers\n * like 'refetch' and 'inside-shared-layout' are preserved.\n */ function shouldPreserveRefreshMarker(refreshMarker) {\n return Boolean(refreshMarker && refreshMarker !== 'refresh');\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=flight-data-helpers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9mbGlnaHQtZGF0YS1oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdDZ0JBLDBCQUEwQjtlQUExQkE7O0lBNEJBQyx3QkFBd0I7ZUFBeEJBOztJQVFBQyxtQkFBbUI7ZUFBbkJBOztJQXNCQUMsa0NBQWtDO2VBQWxDQTs7O3FDQWpGaUI7QUF1QjFCLFNBQVNILDJCQUNkSSxjQUE4QjtJQUU5Qix3R0FBd0c7SUFDeEcsTUFBTUMsdUJBQXVCO0lBQzdCLHNGQUFzRjtJQUN0RixNQUFNLENBQUNDLE1BQU1DLFVBQVVDLE1BQU1DLGNBQWMsR0FDekNMLGVBQWVNLEtBQUssQ0FBQyxDQUFDTDtJQUN4Qiw2R0FBNkc7SUFDN0csTUFBTU0sY0FBY1AsZUFBZU0sS0FBSyxDQUFDLEdBQUcsQ0FBQ0w7UUFVbENNO0lBUlgsT0FBTztRQUNMLGtHQUFrRztRQUNsRyxzR0FBc0c7UUFDdEcscURBQXFEO1FBQ3JEQyxlQUFlRCxZQUFZRCxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JDQztRQUNBLGtGQUFrRjtRQUNsRixrQ0FBa0M7UUFDbENFLFNBQVNGLENBQUFBLGdCQUFBQSxXQUFXLENBQUNBLFlBQVlHLE1BQU0sR0FBRyxPQUFFLE9BQW5DSCxnQkFBdUM7UUFDaERMO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FNLGNBQWNYLGVBQWVVLE1BQU0sS0FBS1Q7SUFDMUM7QUFDRjtBQUVPLFNBQVNKLHlCQUNkZSxpQkFBb0M7SUFFcEMsNEdBQTRHO0lBQzVHLGdDQUFnQztJQUNoQyxPQUFPQSxrQkFBa0JOLEtBQUssQ0FBQztBQUNqQztBQUVPLFNBQVNSLG9CQUNkZSxVQUFzQjtJQUV0QiwyRkFBMkY7SUFDM0Ysa0dBQWtHO0lBQ2xHLElBQUksT0FBT0EsZUFBZSxVQUFVO1FBQ2xDLE9BQU9BO0lBQ1Q7SUFFQSxPQUFPQSxXQUFXQyxHQUFHLENBQUMsQ0FBQ2QsaUJBQ3JCSiwyQkFBMkJJO0FBRS9CO0FBVU8sU0FBU0QsbUNBQ2RnQixpQkFBb0MsRUFDcENDLFlBQXNCO0lBRXRCLDRFQUE0RTtJQUM1RSxJQUFJQSxjQUFjO1FBQ2hCLE9BQU9DLG1CQUFtQkMsS0FBS0MsU0FBUyxDQUFDSjtJQUMzQztJQUVBLE9BQU9FLG1CQUNMQyxLQUFLQyxTQUFTLENBQUNDLHlDQUF5Q0w7QUFFNUQ7QUFFQTs7O0NBR0MsR0FDRCxTQUFTSyx5Q0FDUEwsaUJBQW9DO0lBRXBDLE1BQU0sQ0FDSk4sU0FDQVksZ0JBQ0FDLE1BQ0FDLGVBQ0FDLGNBQ0FDLG1CQUNELEdBQUdWO0lBRUosbUVBQW1FO0lBQ25FLDBCQUEwQjtJQUMxQixNQUFNVyxpQkFBaUJDLGlDQUFpQ2xCO0lBRXhELHNDQUFzQztJQUN0QyxNQUFNbUIsd0JBQThELENBQUM7SUFDckUsS0FBSyxNQUFNLENBQUNDLEtBQUtDLFdBQVcsSUFBSUMsT0FBT0MsT0FBTyxDQUFDWCxnQkFBaUI7UUFDOURPLHFCQUFxQixDQUFDQyxJQUFJLEdBQ3hCVCx5Q0FBeUNVO0lBQzdDO0lBRUEsTUFBTUcsU0FBNEI7UUFDaENQO1FBQ0FFO1FBQ0E7UUFDQU0sNEJBQTRCWCxpQkFBaUJBLGdCQUFnQjtLQUM5RDtJQUVELG9DQUFvQztJQUNwQyxJQUFJQyxpQkFBaUJXLFdBQVc7UUFDOUJGLE1BQU0sQ0FBQyxFQUFFLEdBQUdUO0lBQ2Q7SUFDQSxJQUFJQyx1QkFBdUJVLFdBQVc7UUFDcENGLE1BQU0sQ0FBQyxFQUFFLEdBQUdSO0lBQ2Q7SUFFQSxPQUFPUTtBQUNUO0FBRUE7OztDQUdDLEdBQ0QsU0FBU04saUNBQWlDbEIsT0FBZ0I7SUFDeEQsSUFDRSxPQUFPQSxZQUFZLFlBQ25CQSxRQUFRMkIsVUFBVSxDQUFDQyxTQUFBQSxnQkFBZ0IsR0FBRyxNQUN0QztRQUNBLE9BQU9BLFNBQUFBLGdCQUFnQjtJQUN6QjtJQUNBLE9BQU81QjtBQUNUO0FBRUE7Ozs7Q0FJQyxHQUNELFNBQVN5Qiw0QkFDUFgsYUFBbUM7SUFFbkMsT0FBT2UsUUFBUWYsaUJBQWlCQSxrQkFBa0I7QUFDcEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvc3JjL2NsaWVudC9mbGlnaHQtZGF0YS1oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ2FjaGVOb2RlU2VlZERhdGEsXG4gIEZsaWdodERhdGEsXG4gIEZsaWdodERhdGFQYXRoLFxuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgRmxpZ2h0U2VnbWVudFBhdGgsXG4gIFNlZ21lbnQsXG59IGZyb20gJy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBIZWFkRGF0YSB9IGZyb20gJy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgUEFHRV9TRUdNRU5UX0tFWSB9IGZyb20gJy4uL3NoYXJlZC9saWIvc2VnbWVudCdcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplZEZsaWdodERhdGEgPSB7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBgRmxpZ2h0U2VnbWVudFBhdGhgIGluY2x1c2l2ZSBvZiB0aGUgZmluYWwgYFNlZ21lbnRgXG4gICAqL1xuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbiAgLyoqXG4gICAqIFRoZSBgRmxpZ2h0U2VnbWVudFBhdGhgIGV4Y2x1c2l2ZSBvZiB0aGUgZmluYWwgYFNlZ21lbnRgXG4gICAqL1xuICBwYXRoVG9TZWdtZW50OiBGbGlnaHRTZWdtZW50UGF0aFxuICBzZWdtZW50OiBTZWdtZW50XG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIHNlZWREYXRhOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGxcbiAgaGVhZDogSGVhZERhdGFcbiAgaXNIZWFkUGFydGlhbDogYm9vbGVhblxuICBpc1Jvb3RSZW5kZXI6IGJvb2xlYW5cbn1cblxuLy8gVE9ETzogV2Ugc2hvdWxkIG9ubHkgaGF2ZSB0byBleHBvcnQgYG5vcm1hbGl6ZUZsaWdodERhdGFgLCBob3dldmVyIGJlY2F1c2UgdGhlIGluaXRpYWwgZmxpZ2h0IGRhdGFcbi8vIHRoYXQgZ2V0cyBwYXNzZWQgdG8gYGNyZWF0ZUluaXRpYWxSb3V0ZXJTdGF0ZWAgZG9lc24ndCBjb25mb3JtIHRvIHRoZSBgRmxpZ2h0RGF0YVBhdGhgIHR5cGUgKGl0J3MgbWlzc2luZyB0aGUgcm9vdCBzZWdtZW50KVxuLy8gd2UncmUgY3VycmVudGx5IGV4cG9ydGluZyBpdCBzbyB3ZSBjYW4gdXNlIGl0IGRpcmVjdGx5LiBUaGlzIHNob3VsZCBiZSBmaXhlZCBhcyBwYXJ0IG9mIHRoZSB1bmlmaWNhdGlvbiBvZlxuLy8gdGhlIGRpZmZlcmVudCB3YXlzIHdlIGV4cHJlc3MgYEZsaWdodFNlZ21lbnRQYXRoYC5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGbGlnaHREYXRhUGFydHNGcm9tUGF0aChcbiAgZmxpZ2h0RGF0YVBhdGg6IEZsaWdodERhdGFQYXRoXG4pOiBOb3JtYWxpemVkRmxpZ2h0RGF0YSB7XG4gIC8vIFBpY2sgdGhlIGxhc3QgNCBpdGVtcyBmcm9tIHRoZSBgRmxpZ2h0RGF0YVBhdGhgIHRvIGdldCB0aGUgW3RyZWUsIHNlZWREYXRhLCB2aWV3cG9ydCwgaXNIZWFkUGFydGlhbF0uXG4gIGNvbnN0IGZsaWdodERhdGFQYXRoTGVuZ3RoID0gNFxuICAvLyB0cmVlLCBzZWVkRGF0YSwgYW5kIGhlYWQgYXJlICphbHdheXMqIHRoZSBsYXN0IHRocmVlIGl0ZW1zIGluIHRoZSBgRmxpZ2h0RGF0YVBhdGhgLlxuICBjb25zdCBbdHJlZSwgc2VlZERhdGEsIGhlYWQsIGlzSGVhZFBhcnRpYWxdID1cbiAgICBmbGlnaHREYXRhUGF0aC5zbGljZSgtZmxpZ2h0RGF0YVBhdGhMZW5ndGgpXG4gIC8vIFRoZSBgRmxpZ2h0U2VnbWVudFBhdGhgIGlzIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBsYXN0IHRocmVlIGl0ZW1zLiBGb3IgYSByb290IHJlbmRlciwgaXQgd29uJ3QgYmUgcHJlc2VudC5cbiAgY29uc3Qgc2VnbWVudFBhdGggPSBmbGlnaHREYXRhUGF0aC5zbGljZSgwLCAtZmxpZ2h0RGF0YVBhdGhMZW5ndGgpXG5cbiAgcmV0dXJuIHtcbiAgICAvLyBUT0RPOiBVbmlmeSB0aGVzZSB0d28gc2VnbWVudCBwYXRoIGhlbHBlcnMuIFdlIGFyZSBpbmNvbnNpc3RlbnRseSBwdXNoaW5nIGFuIGVtcHR5IHNlZ21lbnQgKFwiXCIpXG4gICAgLy8gdG8gdGhlIHN0YXJ0IG9mIHRoZSBzZWdtZW50IHBhdGggaW4gc29tZSBwbGFjZXMgd2hpY2ggbWFrZXMgaXQgaGFyZCB0byB1c2Ugc29sZWx5IHRoZSBzZWdtZW50IHBhdGguXG4gICAgLy8gTG9vayBmb3IgXCIvLyBUT0RPLUFQUDogcmVtb3ZlICcnXCIgaW4gdGhlIGNvZGViYXNlLlxuICAgIHBhdGhUb1NlZ21lbnQ6IHNlZ21lbnRQYXRoLnNsaWNlKDAsIC0xKSxcbiAgICBzZWdtZW50UGF0aCxcbiAgICAvLyBpZiB0aGUgYEZsaWdodERhdGFQYXRoYCBjb3JyZXNwb25kcyB3aXRoIHRoZSByb290LCB0aGVyZSdsbCBiZSBubyBzZWdtZW50IHBhdGgsXG4gICAgLy8gaW4gd2hpY2ggY2FzZSB3ZSBkZWZhdWx0IHRvICcnLlxuICAgIHNlZ21lbnQ6IHNlZ21lbnRQYXRoW3NlZ21lbnRQYXRoLmxlbmd0aCAtIDFdID8/ICcnLFxuICAgIHRyZWUsXG4gICAgc2VlZERhdGEsXG4gICAgaGVhZCxcbiAgICBpc0hlYWRQYXJ0aWFsLFxuICAgIGlzUm9vdFJlbmRlcjogZmxpZ2h0RGF0YVBhdGgubGVuZ3RoID09PSBmbGlnaHREYXRhUGF0aExlbmd0aCxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoKFxuICBmbGlnaHRTZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbik6IEZsaWdodFNlZ21lbnRQYXRoIHtcbiAgLy8gU2luY2UgYEZsaWdodFNlZ21lbnRQYXRoYCBpcyBhIHJlcGVhdGVkIHR1cGxlIG9mIGBTZWdtZW50YCBhbmQgYFBhcmFsbGVsUm91dGVLZXlgLCB3ZSBzbGljZSBvZmYgdHdvIGl0ZW1zXG4gIC8vIHRvIGdldCB0aGUgbmV4dCBzZWdtZW50IHBhdGguXG4gIHJldHVybiBmbGlnaHRTZWdtZW50UGF0aC5zbGljZSgyKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRmxpZ2h0RGF0YShcbiAgZmxpZ2h0RGF0YTogRmxpZ2h0RGF0YVxuKTogTm9ybWFsaXplZEZsaWdodERhdGFbXSB8IHN0cmluZyB7XG4gIC8vIEZsaWdodERhdGEgY2FuIGJlIGEgc3RyaW5nIHdoZW4gdGhlIHNlcnZlciBkaWRuJ3QgcmVzcG9uZCB3aXRoIGEgcHJvcGVyIGZsaWdodCByZXNwb25zZSxcbiAgLy8gb3Igd2hlbiBhIHJlZGlyZWN0IGhhcHBlbnMsIHRvIHNpZ25hbCB0byB0aGUgY2xpZW50IHRoYXQgaXQgbmVlZHMgdG8gcGVyZm9ybSBhbiBNUEEgbmF2aWdhdGlvbi5cbiAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmbGlnaHREYXRhXG4gIH1cblxuICByZXR1cm4gZmxpZ2h0RGF0YS5tYXAoKGZsaWdodERhdGFQYXRoKSA9PlxuICAgIGdldEZsaWdodERhdGFQYXJ0c0Zyb21QYXRoKGZsaWdodERhdGFQYXRoKVxuICApXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHByZXBhcmUgdGhlIGZsaWdodCByb3V0ZXIgc3RhdGUgZm9yIHRoZSByZXF1ZXN0LlxuICogSXQgcmVtb3ZlcyBtYXJrZXJzIHRoYXQgYXJlIG5vdCBuZWVkZWQgYnkgdGhlIHNlcnZlciwgYW5kIGFyZSBwdXJlbHkgdXNlZFxuICogZm9yIHN0YXNoaW5nIHN0YXRlIG9uIHRoZSBjbGllbnQuXG4gKiBAcGFyYW0gZmxpZ2h0Um91dGVyU3RhdGUgLSBUaGUgZmxpZ2h0IHJvdXRlciBzdGF0ZSB0byBwcmVwYXJlLlxuICogQHBhcmFtIGlzSG1yUmVmcmVzaCAtIFdoZXRoZXIgdGhpcyBpcyBhbiBITVIgcmVmcmVzaCByZXF1ZXN0LlxuICogQHJldHVybnMgVGhlIHByZXBhcmVkIGZsaWdodCByb3V0ZXIgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0KFxuICBmbGlnaHRSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIGlzSG1yUmVmcmVzaD86IGJvb2xlYW5cbik6IHN0cmluZyB7XG4gIC8vIEhNUiByZXF1ZXN0cyBuZWVkIHRoZSBjb21wbGV0ZSwgdW5tb2RpZmllZCBzdGF0ZSBmb3IgcHJvcGVyIGZ1bmN0aW9uYWxpdHlcbiAgaWYgKGlzSG1yUmVmcmVzaCkge1xuICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZmxpZ2h0Um91dGVyU3RhdGUpKVxuICB9XG5cbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChcbiAgICBKU09OLnN0cmluZ2lmeShzdHJpcENsaWVudE9ubHlEYXRhRnJvbUZsaWdodFJvdXRlclN0YXRlKGZsaWdodFJvdXRlclN0YXRlKSlcbiAgKVxufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IHN0cmlwcyBjbGllbnQtb25seSBkYXRhIGZyb20gRmxpZ2h0Um91dGVyU3RhdGUgd2hpbGUgcHJlc2VydmluZ1xuICogc2VydmVyLW5lZWRlZCBpbmZvcm1hdGlvbiBmb3IgcHJvcGVyIHJlbmRlcmluZyBkZWNpc2lvbnMuXG4gKi9cbmZ1bmN0aW9uIHN0cmlwQ2xpZW50T25seURhdGFGcm9tRmxpZ2h0Um91dGVyU3RhdGUoXG4gIGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogRmxpZ2h0Um91dGVyU3RhdGUge1xuICBjb25zdCBbXG4gICAgc2VnbWVudCxcbiAgICBwYXJhbGxlbFJvdXRlcyxcbiAgICBfdXJsLCAvLyBJbnRlbnRpb25hbGx5IHVudXNlZCAtIFVSTHMgYXJlIGNsaWVudC1vbmx5XG4gICAgcmVmcmVzaE1hcmtlcixcbiAgICBpc1Jvb3RMYXlvdXQsXG4gICAgaGFzTG9hZGluZ0JvdW5kYXJ5LFxuICBdID0gZmxpZ2h0Um91dGVyU3RhdGVcblxuICAvLyBfX1BBR0VfXyBzZWdtZW50cyBhcmUgYWx3YXlzIGZldGNoZWQgZnJvbSB0aGUgc2VydmVyLCBzbyB0aGVyZSdzXG4gIC8vIG5vIG5lZWQgdG8gc2VuZCB0aGVtIHVwXG4gIGNvbnN0IGNsZWFuZWRTZWdtZW50ID0gc3RyaXBTZWFyY2hQYXJhbXNGcm9tUGFnZVNlZ21lbnQoc2VnbWVudClcblxuICAvLyBSZWN1cnNpdmVseSBwcm9jZXNzIHBhcmFsbGVsIHJvdXRlc1xuICBjb25zdCBjbGVhbmVkUGFyYWxsZWxSb3V0ZXM6IHsgW2tleTogc3RyaW5nXTogRmxpZ2h0Um91dGVyU3RhdGUgfSA9IHt9XG4gIGZvciAoY29uc3QgW2tleSwgY2hpbGRTdGF0ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYWxsZWxSb3V0ZXMpKSB7XG4gICAgY2xlYW5lZFBhcmFsbGVsUm91dGVzW2tleV0gPVxuICAgICAgc3RyaXBDbGllbnRPbmx5RGF0YUZyb21GbGlnaHRSb3V0ZXJTdGF0ZShjaGlsZFN0YXRlKVxuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBGbGlnaHRSb3V0ZXJTdGF0ZSA9IFtcbiAgICBjbGVhbmVkU2VnbWVudCxcbiAgICBjbGVhbmVkUGFyYWxsZWxSb3V0ZXMsXG4gICAgbnVsbCwgLy8gVVJMcyBvbWl0dGVkIC0gc2VydmVyIHJlY29uc3RydWN0cyBwYXRocyBmcm9tIHNlZ21lbnRzXG4gICAgc2hvdWxkUHJlc2VydmVSZWZyZXNoTWFya2VyKHJlZnJlc2hNYXJrZXIpID8gcmVmcmVzaE1hcmtlciA6IG51bGwsXG4gIF1cblxuICAvLyBBcHBlbmQgb3B0aW9uYWwgZmllbGRzIGlmIHByZXNlbnRcbiAgaWYgKGlzUm9vdExheW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmVzdWx0WzRdID0gaXNSb290TGF5b3V0XG4gIH1cbiAgaWYgKGhhc0xvYWRpbmdCb3VuZGFyeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmVzdWx0WzVdID0gaGFzTG9hZGluZ0JvdW5kYXJ5XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogU3RyaXBzIHNlYXJjaCBwYXJhbWV0ZXJzIGZyb20gX19QQUdFX18gc2VnbWVudHMgdG8gcHJldmVudCBzZW5zaXRpdmVcbiAqIGNsaWVudC1zaWRlIGRhdGEgZnJvbSBiZWluZyBzZW50IHRvIHRoZSBzZXJ2ZXIuXG4gKi9cbmZ1bmN0aW9uIHN0cmlwU2VhcmNoUGFyYW1zRnJvbVBhZ2VTZWdtZW50KHNlZ21lbnQ6IFNlZ21lbnQpOiBTZWdtZW50IHtcbiAgaWYgKFxuICAgIHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJyAmJlxuICAgIHNlZ21lbnQuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZICsgJz8nKVxuICApIHtcbiAgICByZXR1cm4gUEFHRV9TRUdNRU5UX0tFWVxuICB9XG4gIHJldHVybiBzZWdtZW50XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSByZWZyZXNoIG1hcmtlciBzaG91bGQgYmUgc2VudCB0byB0aGUgc2VydmVyXG4gKiBDbGllbnQtb25seSBtYXJrZXJzIGxpa2UgJ3JlZnJlc2gnIGFyZSBzdHJpcHBlZCwgd2hpbGUgc2VydmVyLW5lZWRlZCBtYXJrZXJzXG4gKiBsaWtlICdyZWZldGNoJyBhbmQgJ2luc2lkZS1zaGFyZWQtbGF5b3V0JyBhcmUgcHJlc2VydmVkLlxuICovXG5mdW5jdGlvbiBzaG91bGRQcmVzZXJ2ZVJlZnJlc2hNYXJrZXIoXG4gIHJlZnJlc2hNYXJrZXI6IEZsaWdodFJvdXRlclN0YXRlWzNdXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4ocmVmcmVzaE1hcmtlciAmJiByZWZyZXNoTWFya2VyICE9PSAncmVmcmVzaCcpXG59XG4iXSwibmFtZXMiOlsiZ2V0RmxpZ2h0RGF0YVBhcnRzRnJvbVBhdGgiLCJnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGgiLCJub3JtYWxpemVGbGlnaHREYXRhIiwicHJlcGFyZUZsaWdodFJvdXRlclN0YXRlRm9yUmVxdWVzdCIsImZsaWdodERhdGFQYXRoIiwiZmxpZ2h0RGF0YVBhdGhMZW5ndGgiLCJ0cmVlIiwic2VlZERhdGEiLCJoZWFkIiwiaXNIZWFkUGFydGlhbCIsInNsaWNlIiwic2VnbWVudFBhdGgiLCJwYXRoVG9TZWdtZW50Iiwic2VnbWVudCIsImxlbmd0aCIsImlzUm9vdFJlbmRlciIsImZsaWdodFNlZ21lbnRQYXRoIiwiZmxpZ2h0RGF0YSIsIm1hcCIsImZsaWdodFJvdXRlclN0YXRlIiwiaXNIbXJSZWZyZXNoIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsInN0cmlwQ2xpZW50T25seURhdGFGcm9tRmxpZ2h0Um91dGVyU3RhdGUiLCJwYXJhbGxlbFJvdXRlcyIsIl91cmwiLCJyZWZyZXNoTWFya2VyIiwiaXNSb290TGF5b3V0IiwiaGFzTG9hZGluZ0JvdW5kYXJ5IiwiY2xlYW5lZFNlZ21lbnQiLCJzdHJpcFNlYXJjaFBhcmFtc0Zyb21QYWdlU2VnbWVudCIsImNsZWFuZWRQYXJhbGxlbFJvdXRlcyIsImtleSIsImNoaWxkU3RhdGUiLCJPYmplY3QiLCJlbnRyaWVzIiwicmVzdWx0Iiwic2hvdWxkUHJlc2VydmVSZWZyZXNoTWFya2VyIiwidW5kZWZpbmVkIiwic3RhcnRzV2l0aCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJCb29sZWFuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/has-base-path.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/client/has-base-path.js ***!
|
||
\********************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hasBasePath\", ({\n enumerable: true,\n get: function() {\n return hasBasePath;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ../shared/lib/router/utils/path-has-prefix */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nconst basePath = false || '';\nfunction hasBasePath(path) {\n return (0, _pathhasprefix.pathHasPrefix)(path, basePath);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=has-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oYXMtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBSWdCQTs7O2VBQUFBOzs7MkNBSmM7QUFFOUIsTUFBTUMsV0FBWUMsTUFBa0MsSUFBZTtBQUU1RCxTQUFTRixZQUFZSyxJQUFZO0lBQ3RDLE9BQU9DLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNELE1BQU1KO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL3NyYy9jbGllbnQvaGFzLWJhc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4J1xuXG5jb25zdCBiYXNlUGF0aCA9IChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIGFzIHN0cmluZykgfHwgJydcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Jhc2VQYXRoKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gcGF0aEhhc1ByZWZpeChwYXRoLCBiYXNlUGF0aClcbn1cbiJdLCJuYW1lcyI6WyJoYXNCYXNlUGF0aCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwicGF0aEhhc1ByZWZpeCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/has-base-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/lib/console.js":
|
||
/*!******************************************************!*\
|
||
!*** ./node_modules/next/dist/client/lib/console.js ***!
|
||
\******************************************************/
|
||
/***/ ((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 formatConsoleArgs: function() {\n return formatConsoleArgs;\n },\n parseConsoleArgs: function() {\n return parseConsoleArgs;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../lib/is-error */ \"(ssr)/./node_modules/next/dist/lib/is-error.js\"));\nfunction formatObject(arg, depth) {\n switch(typeof arg){\n case 'object':\n if (arg === null) {\n return 'null';\n } else if (Array.isArray(arg)) {\n let result = '[';\n if (depth < 1) {\n for(let i = 0; i < arg.length; i++){\n if (result !== '[') {\n result += ',';\n }\n if (Object.prototype.hasOwnProperty.call(arg, i)) {\n result += formatObject(arg[i], depth + 1);\n }\n }\n } else {\n result += arg.length > 0 ? '...' : '';\n }\n result += ']';\n return result;\n } else if (arg instanceof Error) {\n return arg + '';\n } else {\n const keys = Object.keys(arg);\n let result = '{';\n if (depth < 1) {\n for(let i = 0; i < keys.length; i++){\n const key = keys[i];\n const desc = Object.getOwnPropertyDescriptor(arg, 'key');\n if (desc && !desc.get && !desc.set) {\n const jsonKey = JSON.stringify(key);\n if (jsonKey !== '\"' + key + '\"') {\n result += jsonKey + ': ';\n } else {\n result += key + ': ';\n }\n result += formatObject(desc.value, depth + 1);\n }\n }\n } else {\n result += keys.length > 0 ? '...' : '';\n }\n result += '}';\n return result;\n }\n case 'string':\n return JSON.stringify(arg);\n case 'number':\n case 'bigint':\n case 'boolean':\n case 'symbol':\n case 'undefined':\n case 'function':\n default:\n return String(arg);\n }\n}\nfunction formatConsoleArgs(args) {\n let message;\n let idx;\n if (typeof args[0] === 'string') {\n message = args[0];\n idx = 1;\n } else {\n message = '';\n idx = 0;\n }\n let result = '';\n let startQuote = false;\n for(let i = 0; i < message.length; ++i){\n const char = message[i];\n if (char !== '%' || i === message.length - 1 || idx >= args.length) {\n result += char;\n continue;\n }\n const code = message[++i];\n switch(code){\n case 'c':\n {\n // TODO: We should colorize with HTML instead of turning into a string.\n // Ignore for now.\n result = startQuote ? \"\" + result + \"]\" : \"[\" + result;\n startQuote = !startQuote;\n idx++;\n break;\n }\n case 'O':\n case 'o':\n {\n result += formatObject(args[idx++], 0);\n break;\n }\n case 'd':\n case 'i':\n {\n result += parseInt(args[idx++], 10);\n break;\n }\n case 'f':\n {\n result += parseFloat(args[idx++]);\n break;\n }\n case 's':\n {\n result += String(args[idx++]);\n break;\n }\n default:\n result += '%' + code;\n }\n }\n for(; idx < args.length; idx++){\n result += (idx > 0 ? ' ' : '') + formatObject(args[idx], 0);\n }\n return result;\n}\nfunction parseConsoleArgs(args) {\n // See\n // https://github.com/facebook/react/blob/65a56d0e99261481c721334a3ec4561d173594cd/packages/react-devtools-shared/src/backend/flight/renderer.js#L88-L93\n //\n // Logs replayed from the server look like this:\n // [\n // \"%c%s%c%o\\n\\n%s\\n\\n%s\\n\",\n // \"background: #e6e6e6; ...\",\n // \" Server \", // can also be e.g. \" Prerender \"\n // \"\",\n // Error,\n // \"The above error occurred in the <Page> component.\",\n // ...\n // ]\n if (args.length > 3 && typeof args[0] === 'string' && args[0].startsWith('%c%s%c') && typeof args[1] === 'string' && typeof args[2] === 'string' && typeof args[3] === 'string') {\n const environmentName = args[2];\n const maybeError = args[4];\n return {\n environmentName: environmentName.trim(),\n error: (0, _iserror.default)(maybeError) ? maybeError : null\n };\n }\n return {\n environmentName: null,\n error: null\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=console.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saWIvY29uc29sZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE2RGdCQSxpQkFBaUI7ZUFBakJBOztJQTJEQUMsZ0JBQWdCO2VBQWhCQTs7Ozs4RUF4SEk7QUFFcEIsU0FBU0MsYUFBYUMsR0FBWSxFQUFFQyxLQUFhO0lBQy9DLE9BQVEsT0FBT0Q7UUFDYixLQUFLO1lBQ0gsSUFBSUEsUUFBUSxNQUFNO2dCQUNoQixPQUFPO1lBQ1QsT0FBTyxJQUFJRSxNQUFNQyxPQUFPLENBQUNILE1BQU07Z0JBQzdCLElBQUlJLFNBQVM7Z0JBQ2IsSUFBSUgsUUFBUSxHQUFHO29CQUNiLElBQUssSUFBSUksSUFBSSxHQUFHQSxJQUFJTCxJQUFJTSxNQUFNLEVBQUVELElBQUs7d0JBQ25DLElBQUlELFdBQVcsS0FBSzs0QkFDbEJBLFVBQVU7d0JBQ1o7d0JBQ0EsSUFBSUcsT0FBT0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1YsS0FBS0ssSUFBSTs0QkFDaERELFVBQVVMLGFBQWFDLEdBQUcsQ0FBQ0ssRUFBRSxFQUFFSixRQUFRO3dCQUN6QztvQkFDRjtnQkFDRixPQUFPO29CQUNMRyxVQUFVSixJQUFJTSxNQUFNLEdBQUcsSUFBSSxRQUFRO2dCQUNyQztnQkFDQUYsVUFBVTtnQkFDVixPQUFPQTtZQUNULE9BQU8sSUFBSUosZUFBZVcsT0FBTztnQkFDL0IsT0FBT1gsTUFBTTtZQUNmLE9BQU87Z0JBQ0wsTUFBTVksT0FBT0wsT0FBT0ssSUFBSSxDQUFDWjtnQkFDekIsSUFBSUksU0FBUztnQkFDYixJQUFJSCxRQUFRLEdBQUc7b0JBQ2IsSUFBSyxJQUFJSSxJQUFJLEdBQUdBLElBQUlPLEtBQUtOLE1BQU0sRUFBRUQsSUFBSzt3QkFDcEMsTUFBTVEsTUFBTUQsSUFBSSxDQUFDUCxFQUFFO3dCQUNuQixNQUFNUyxPQUFPUCxPQUFPUSx3QkFBd0IsQ0FBQ2YsS0FBSzt3QkFDbEQsSUFB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QUFFLEtBQUssWUFDbkIsT0FBT0EsSUFBSSxDQUFDLEVBQUUsS0FBSyxZQUNuQixPQUFPQSxJQUFJLENBQUMsRUFBRSxLQUFLLFVBQ25CO1FBQ0EsTUFBTVMsa0JBQWtCVCxJQUFJLENBQUMsRUFBRTtRQUMvQixNQUFNVSxhQUFhVixJQUFJLENBQUMsRUFBRTtRQUUxQixPQUFPO1lBQ0xTLGlCQUFpQkEsZ0JBQWdCRSxJQUFJO1lBQ3JDQyxPQUFPQyxDQUFBQSxHQUFBQSxTQUFBQSxPQUFBQSxFQUFRSCxjQUFjQSxhQUFhO1FBQzVDO0lBQ0Y7SUFFQSxPQUFPO1FBQ0xELGlCQUFpQjtRQUNqQkcsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9jbGllbnQvbGliL2NvbnNvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzRXJyb3IgZnJvbSAnLi4vLi4vbGliL2lzLWVycm9yJ1xuXG5mdW5jdGlvbiBmb3JtYXRPYmplY3QoYXJnOiB1bmtub3duLCBkZXB0aDogbnVtYmVyKSB7XG4gIHN3aXRjaCAodHlwZW9mIGFyZykge1xuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBpZiAoYXJnID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAnbnVsbCdcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhcmcpKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSAnWydcbiAgICAgICAgaWYgKGRlcHRoIDwgMSkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSAnWycpIHtcbiAgICAgICAgICAgICAgcmVzdWx0ICs9ICcsJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmcsIGkpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdCArPSBmb3JtYXRPYmplY3QoYXJnW2ldLCBkZXB0aCArIDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCArPSBhcmcubGVuZ3RoID4gMCA/ICcuLi4nIDogJydcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgKz0gJ10nXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH0gZWxzZSBpZiAoYXJnIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGFyZyArICcnXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoYXJnKVxuICAgICAgICBsZXQgcmVzdWx0ID0gJ3snXG4gICAgICAgIGlmIChkZXB0aCA8IDEpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNbaV1cbiAgICAgICAgICAgIGNvbnN0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFyZywgJ2tleScpXG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAhZGVzYy5nZXQgJiYgIWRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGpzb25LZXkgPSBKU09OLnN0cmluZ2lmeShrZXkpXG4gICAgICAgICAgICAgIGlmIChqc29uS2V5ICE9PSAnXCInICsga2V5ICsgJ1wiJykge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBqc29uS2V5ICsgJzogJ1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBrZXkgKyAnOiAnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVzdWx0ICs9IGZvcm1hdE9iamVjdChkZXNjLnZhbHVlLCBkZXB0aCArIDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCArPSBrZXlzLmxlbmd0aCA+IDAgPyAnLi4uJyA6ICcnXG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ICs9ICd9J1xuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmcpXG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICBjYXNlICdiaWdpbnQnOlxuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBTdHJpbmcoYXJnKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDb25zb2xlQXJncyhhcmdzOiB1bmtub3duW10pOiBzdHJpbmcge1xuICBsZXQgbWVzc2FnZTogc3RyaW5nXG4gIGxldCBpZHg6IG51bWJlclxuICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgbWVzc2FnZSA9IGFyZ3NbMF1cbiAgICBpZHggPSAxXG4gIH0gZWxzZSB7XG4gICAgbWVzc2FnZSA9ICcnXG4gICAgaWR4ID0gMFxuICB9XG4gIGxldCByZXN1bHQgPSAnJ1xuICBsZXQgc3RhcnRRdW90ZSA9IGZhbHNlXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWVzc2FnZS5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IGNoYXIgPSBtZXNzYWdlW2ldXG4gICAgaWYgKGNoYXIgIT09ICclJyB8fCBpID09PSBtZXNzYWdlLmxlbmd0aCAtIDEgfHwgaWR4ID49IGFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXN1bHQgKz0gY2hhclxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBjb2RlID0gbWVzc2FnZVsrK2ldXG4gICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICBjYXNlICdjJzoge1xuICAgICAgICAvLyBUT0RPOiBXZSBzaG91bGQgY29sb3JpemUgd2l0aCBIVE1MIGluc3RlYWQgb2YgdHVybmluZyBpbnRvIGEgc3RyaW5nLlxuICAgICAgICAvLyBJZ25vcmUgZm9yIG5vdy5cbiAgICAgICAgcmVzdWx0ID0gc3RhcnRRdW90ZSA/IGAke3Jlc3VsdH1dYCA6IGBbJHtyZXN1bHR9YFxuICAgICAgICBzdGFydFF1b3RlID0gIXN0YXJ0UXVvdGVcbiAgICAgICAgaWR4KytcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ08nOlxuICAgICAgY2FzZSAnbyc6IHtcbiAgICAgICAgcmVzdWx0ICs9IGZvcm1hdE9iamVjdChhcmdzW2lkeCsrXSwgMClcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2QnOlxuICAgICAgY2FzZSAnaSc6IHtcbiAgICAgICAgcmVzdWx0ICs9IHBhcnNlSW50KGFyZ3NbaWR4KytdIGFzIGFueSwgMTApXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdmJzoge1xuICAgICAgICByZXN1bHQgKz0gcGFyc2VGbG9hdChhcmdzW2lkeCsrXSBhcyBhbnkpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdzJzoge1xuICAgICAgICByZXN1bHQgKz0gU3RyaW5nKGFyZ3NbaWR4KytdKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmVzdWx0ICs9ICclJyArIGNvZGVcbiAgICB9XG4gIH1cblxuICBmb3IgKDsgaWR4IDwgYXJncy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgcmVzdWx0ICs9IChpZHggPiAwID8gJyAnIDogJycpICsgZm9ybWF0T2JqZWN0KGFyZ3NbaWR4XSwgMClcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29uc29sZUFyZ3MoYXJnczogdW5rbm93bltdKToge1xuICBlbnZpcm9ubWVudE5hbWU6IHN0cmluZyB8IG51bGxcbiAgZXJyb3I6IEVycm9yIHwgbnVsbFxufSB7XG4gIC8vIFNlZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi82NWE1NmQwZTk5MjYxNDgxYzcyMTMzNGEzZWM0NTYxZDE3MzU5NGNkL3BhY2thZ2VzL3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9mbGlnaHQvcmVuZGVyZXIuanMjTDg4LUw5M1xuICAvL1xuICAvLyBMb2dzIHJlcGxheWVkIGZyb20gdGhlIHNlcnZlciBsb29rIGxpa2UgdGhpczpcbiAgLy8gW1xuICAvLyAgIFwiJWMlcyVjJW9cXG5cXG4lc1xcblxcbiVzXFxuXCIsXG4gIC8vICAgXCJiYWNrZ3JvdW5kOiAjZTZlNmU2OyAuLi5cIixcbiAgLy8gICBcIiBTZXJ2ZXIgXCIsIC8vIGNhbiBhbHNvIGJlIGUuZy4gXCIgUHJlcmVuZGVyIFwiXG4gIC8vICAgXCJcIixcbiAgLy8gICBFcnJvcixcbiAgLy8gICBcIlRoZSBhYm92ZSBlcnJvciBvY2N1cnJlZCBpbiB0aGUgPFBhZ2U+IGNvbXBvbmVudC5cIixcbiAgLy8gICAuLi5cbiAgLy8gXVxuICBpZiAoXG4gICAgYXJncy5sZW5ndGggPiAzICYmXG4gICAgdHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnICYmXG4gICAgYXJnc1swXS5zdGFydHNXaXRoKCclYyVzJWMnKSAmJlxuICAgIHR5cGVvZiBhcmdzWzFdID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBhcmdzWzJdID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBhcmdzWzNdID09PSAnc3RyaW5nJ1xuICApIHtcbiAgICBjb25zdCBlbnZpcm9ubWVudE5hbWUgPSBhcmdzWzJdXG4gICAgY29uc3QgbWF5YmVFcnJvciA9IGFyZ3NbNF1cblxuICAgIHJldHVybiB7XG4gICAgICBlbnZpcm9ubWVudE5hbWU6IGVudmlyb25tZW50TmFtZS50cmltKCksXG4gICAgICBlcnJvcjogaXNFcnJvcihtYXliZUVycm9yKSA/IG1heWJlRXJyb3IgOiBudWxsLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZW52aXJvbm1lbnROYW1lOiBudWxsLFxuICAgIGVycm9yOiBudWxsLFxuICB9XG59XG4iXSwibmFtZXMiOlsiZm9ybWF0Q29uc29sZUFyZ3MiLCJwYXJzZUNvbnNvbGVBcmdzIiwiZm9ybWF0T2JqZWN0IiwiYXJnIiwiZGVwdGgiLCJBcnJheSIsImlzQXJyYXkiLCJyZXN1bHQiLCJpIiwibGVuZ3RoIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiRXJyb3IiLCJrZXlzIiwia2V5IiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsInNldCIsImpzb25LZXkiLCJKU09OIiwic3RyaW5naWZ5IiwidmFsdWUiLCJTdHJpbmciLCJhcmdzIiwibWVzc2FnZSIsImlkeCIsInN0YXJ0UXVvdGUiLCJjaGFyIiwiY29kZSIsInBhcnNlSW50IiwicGFyc2VGbG9hdCIsInN0YXJ0c1dpdGgiLCJlbnZpcm9ubWVudE5hbWUiLCJtYXliZUVycm9yIiwidHJpbSIsImVycm9yIiwiaXNFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/lib/console.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/normalize-trailing-slash.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***!
|
||
\*******************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return normalizePathTrailingSlash;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _parsepath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nconst normalizePathTrailingSlash = (path)=>{\n if (!path.startsWith('/') || undefined) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n if (false) {}\n return \"\" + (0, _removetrailingslash.removeTrailingSlash)(pathname) + query + hash;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=normalize-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs4REFPYUE7OztlQUFBQTs7O2lEQVB1Qjt1Q0FDVjtBQU1uQixNQUFNQSw2QkFBNkIsQ0FBQ0M7SUFDekMsSUFBSSxDQUFDQSxLQUFLQyxVQUFVLENBQUMsUUFBUUMsU0FBd0MsRUFBRTtRQUNyRSxPQUFPRjtJQUNUO0lBRUEsTUFBTSxFQUFFSyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVSO0lBQzVDLElBQUlFLEtBQWlDLEVBQUUsRUFRdEM7SUFFRCxPQUFRLEtBQUVTLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JOLFlBQVlDLFFBQVFDO0FBQ3BEIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL3NyYy9jbGllbnQvbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2gnXG5pbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIG9mIGEgcGF0aCBhY2NvcmRpbmcgdG8gdGhlIGB0cmFpbGluZ1NsYXNoYCBvcHRpb25cbiAqIGluIGBuZXh0LmNvbmZpZy5qc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCA9IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCBwcm9jZXNzLmVudi5fX05FWFRfTUFOVUFMX1RSQUlMSU5HX1NMQVNIKSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9UUkFJTElOR19TTEFTSCkge1xuICAgIGlmICgvXFwuW14vXStcXC8/JC8udGVzdChwYXRobmFtZSkpIHtcbiAgICAgIHJldHVybiBgJHtyZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKX0ke3F1ZXJ5fSR7aGFzaH1gXG4gICAgfSBlbHNlIGlmIChwYXRobmFtZS5lbmRzV2l0aCgnLycpKSB7XG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9JHtxdWVyeX0ke2hhc2h9YFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7cGF0aG5hbWV9LyR7cXVlcnl9JHtoYXNofWBcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYCR7cmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSl9JHtxdWVyeX0ke2hhc2h9YFxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX01BTlVBTF9UUkFJTElOR19TTEFTSCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIiwiX19ORVhUX1RSQUlMSU5HX1NMQVNIIiwidGVzdCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJlbmRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/normalize-trailing-slash.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/remove-base-path.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/client/remove-base-path.js ***!
|
||
\***********************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeBasePath\", ({\n enumerable: true,\n get: function() {\n return removeBasePath;\n }\n}));\nconst _hasbasepath = __webpack_require__(/*! ./has-base-path */ \"(ssr)/./node_modules/next/dist/client/has-base-path.js\");\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}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=remove-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZW1vdmUtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBSWdCQTs7O2VBQUFBOzs7eUNBSlk7QUFFNUIsTUFBTUMsV0FBWUMsTUFBa0MsSUFBZTtBQUU1RCxTQUFTRixlQUFlSyxJQUFZO0lBQ3pDLElBQUlILEtBQTBDLEVBQUUsRUFJL0M7SUFFRCxpREFBaUQ7SUFDakQsSUFBSUQsU0FBU08sTUFBTSxLQUFLLEdBQUcsT0FBT0g7SUFFbENBLE9BQU9BLEtBQUtJLEtBQUssQ0FBQ1IsU0FBU08sTUFBTTtJQUNqQyxJQUFJLENBQUNILEtBQUtLLFVBQVUsQ0FBQyxNQUFNTCxPQUFRLE1BQUdBO0lBQ3RDLE9BQU9BO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvc3JjL2NsaWVudC9yZW1vdmUtYmFzZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhc0Jhc2VQYXRoIH0gZnJvbSAnLi9oYXMtYmFzZS1wYXRoJ1xuXG5jb25zdCBiYXNlUGF0aCA9IChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIGFzIHN0cmluZykgfHwgJydcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUJhc2VQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfTUFOVUFMX0NMSUVOVF9CQVNFX1BBVEgpIHtcbiAgICBpZiAoIWhhc0Jhc2VQYXRoKHBhdGgpKSB7XG4gICAgICByZXR1cm4gcGF0aFxuICAgIH1cbiAgfVxuXG4gIC8vIENhbid0IHRyaW0gdGhlIGJhc2VQYXRoIGlmIGl0IGhhcyB6ZXJvIGxlbmd0aCFcbiAgaWYgKGJhc2VQYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHBhdGhcblxuICBwYXRoID0gcGF0aC5zbGljZShiYXNlUGF0aC5sZW5ndGgpXG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykpIHBhdGggPSBgLyR7cGF0aH1gXG4gIHJldHVybiBwYXRoXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlQmFzZVBhdGgiLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsIl9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCIsImhhc0Jhc2VQYXRoIiwibGVuZ3RoIiwic2xpY2UiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/remove-base-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/route-params.js":
|
||
/*!*******************************************************!*\
|
||
!*** ./node_modules/next/dist/client/route-params.js ***!
|
||
\*******************************************************/
|
||
/***/ ((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 doesStaticSegmentAppearInURL: function() {\n return doesStaticSegmentAppearInURL;\n },\n getCacheKeyForDynamicParam: function() {\n return getCacheKeyForDynamicParam;\n },\n getParamValueFromCacheKey: function() {\n return getParamValueFromCacheKey;\n },\n getRenderedPathname: function() {\n return getRenderedPathname;\n },\n getRenderedSearch: function() {\n return getRenderedSearch;\n },\n parseDynamicParamFromURLPart: function() {\n return parseDynamicParamFromURLPart;\n },\n urlToUrlWithoutFlightMarker: function() {\n return urlToUrlWithoutFlightMarker;\n }\n});\nconst _segment = __webpack_require__(/*! ../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _segmentvalueencoding = __webpack_require__(/*! ../shared/lib/segment-cache/segment-value-encoding */ \"(ssr)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js\");\nconst _approuterheaders = __webpack_require__(/*! ./components/app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nfunction getRenderedSearch(response) {\n // If the server performed a rewrite, the search params used to render the\n // page will be different from the params in the request URL. In this case,\n // the response will include a header that gives the rewritten search query.\n const rewrittenQuery = response.headers.get(_approuterheaders.NEXT_REWRITTEN_QUERY_HEADER);\n if (rewrittenQuery !== null) {\n return rewrittenQuery === '' ? '' : '?' + rewrittenQuery;\n }\n // If the header is not present, there was no rewrite, so we use the search\n // query of the response URL.\n return urlToUrlWithoutFlightMarker(new URL(response.url)).search;\n}\nfunction getRenderedPathname(response) {\n // If the server performed a rewrite, the pathname used to render the\n // page will be different from the pathname in the request URL. In this case,\n // the response will include a header that gives the rewritten pathname.\n const rewrittenPath = response.headers.get(_approuterheaders.NEXT_REWRITTEN_PATH_HEADER);\n return rewrittenPath != null ? rewrittenPath : urlToUrlWithoutFlightMarker(new URL(response.url)).pathname;\n}\nfunction parseDynamicParamFromURLPart(paramType, pathnameParts, partIndex) {\n // This needs to match the behavior in get-dynamic-param.ts.\n switch(paramType){\n // Catchalls\n case 'c':\n case 'ci':\n {\n // Catchalls receive all the remaining URL parts. If there are no\n // remaining pathname parts, return an empty array.\n return partIndex < pathnameParts.length ? pathnameParts.slice(partIndex).map((s)=>encodeURIComponent(s)) : [];\n }\n // Optional catchalls\n case 'oc':\n {\n // Optional catchalls receive all the remaining URL parts, unless this is\n // the end of the pathname, in which case they return null.\n return partIndex < pathnameParts.length ? pathnameParts.slice(partIndex).map((s)=>encodeURIComponent(s)) : null;\n }\n // Dynamic\n case 'd':\n case 'di':\n {\n if (partIndex >= pathnameParts.length) {\n // The route tree expected there to be more parts in the URL than there\n // actually are. This could happen if the x-nextjs-rewritten-path header\n // is incorrectly set, or potentially due to bug in Next.js. TODO:\n // Should this be a hard error? During a prefetch, we can just abort.\n // During a client navigation, we could trigger a hard refresh. But if\n // it happens during initial render, we don't really have any\n // recovery options.\n return '';\n }\n return encodeURIComponent(pathnameParts[partIndex]);\n }\n default:\n paramType;\n return '';\n }\n}\nfunction doesStaticSegmentAppearInURL(segment) {\n // This is not a parameterized segment; however, we need to determine\n // whether or not this segment appears in the URL. For example, this route\n // groups do not appear in the URL, so they should be skipped. Any other\n // special cases must be handled here.\n // TODO: Consider encoding this directly into the router tree instead of\n // inferring it on the client based on the segment type. Something like\n // a `doesAppearInURL` flag in FlightRouterState.\n if (segment === _segmentvalueencoding.ROOT_SEGMENT_REQUEST_KEY || // For some reason, the loader tree sometimes includes extra __PAGE__\n // \"layouts\" when part of a parallel route. But it's not a leaf node.\n // Otherwise, we wouldn't need this special case because pages are\n // always leaf nodes.\n // TODO: Investigate why the loader produces these fake page segments.\n segment.startsWith(_segment.PAGE_SEGMENT_KEY) || // Route groups.\n segment[0] === '(' && segment.endsWith(')') || segment === _segment.DEFAULT_SEGMENT_KEY || segment === '/_not-found') {\n return false;\n } else {\n // All other segment types appear in the URL\n return true;\n }\n}\nfunction getCacheKeyForDynamicParam(paramValue, renderedSearch) {\n // This needs to match the logic in get-dynamic-param.ts, until we're able to\n // unify the various implementations so that these are always computed on\n // the client.\n if (typeof paramValue === 'string') {\n // TODO: Refactor or remove this helper function to accept a string rather\n // than the whole segment type. Also we can probably just append the\n // search string instead of turning it into JSON.\n const pageSegmentWithSearchParams = (0, _segment.addSearchParamsIfPageSegment)(paramValue, Object.fromEntries(new URLSearchParams(renderedSearch)));\n return pageSegmentWithSearchParams;\n } else if (paramValue === null) {\n return '';\n } else {\n return paramValue.join('/');\n }\n}\nfunction urlToUrlWithoutFlightMarker(url) {\n const urlWithoutFlightParameters = new URL(url);\n urlWithoutFlightParameters.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n if (false) {}\n return urlWithoutFlightParameters;\n}\nfunction getParamValueFromCacheKey(paramCacheKey, paramType) {\n // Turn the cache key string sent by the server (as part of FlightRouterState)\n // into a value that can be passed to `useParams` and client components.\n const isCatchAll = paramType === 'c' || paramType === 'oc';\n if (isCatchAll) {\n // Catch-all param keys are a concatenation of the path segments.\n // See equivalent logic in `getSelectedParams`.\n // TODO: We should just pass the array directly, rather than concatenate\n // it to a string and then split it back to an array. It needs to be an\n // array in some places, like when passing a key React, but we can convert\n // it at runtime in those places.\n return paramCacheKey.split('/');\n }\n return paramCacheKey;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=route-params.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1wYXJhbXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBOEZnQkEsNEJBQTRCO2VBQTVCQTs7SUE0QkFDLDRCQUEwQjtlQUExQkE7O0lBd0NBQyx5QkFBeUI7ZUFBekJBOztJQTNIQUMsbUJBQW1CO2VBQW5CQTs7SUFoQkFDLGlCQUFpQjtlQUFqQkE7O0lBMEJBQyw0QkFBNEI7ZUFBNUJBOztJQWdHQUMsMkJBQTJCO2VBQTNCQTs7O3FDQTVJVDtrREFDa0M7OENBS2xDO0FBWUEsU0FBU0Ysa0JBQWtCRyxRQUFxQjtJQUNyRCwwRUFBMEU7SUFDMUUsMkVBQTJFO0lBQzNFLDRFQUE0RTtJQUM1RSxNQUFNQyxpQkFBaUJELFNBQVNFLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxrQkFBQUEsMkJBQTJCO0lBQ3ZFLElBQUlILG1CQUFtQixNQUFNO1FBQzNCLE9BQ0VBLG1CQUFtQixLQUFLLEtBQUssTUFBTUE7SUFFdkM7SUFDQSwyRUFBMkU7SUFDM0UsNkJBQTZCO0lBQzdCLE9BQU9GLDRCQUE0QixJQUFJTSxJQUFJTCxTQUFTTSxHQUFHLEdBQ3BEQyxNQUFNO0FBQ1g7QUFFTyxTQUFTWCxvQkFBb0JJLFFBQXFCO0lBQ3ZELHFFQUFxRTtJQUNyRSw2RUFBNkU7SUFDN0Usd0VBQXdFO0lBQ3hFLE1BQU1RLGdCQUFnQlIsU0FBU0UsT0FBTyxDQUFDQyxHQUFHLENBQUNNLGtCQUFBQSwwQkFBMEI7SUFDckUsT0FDRUQsaUJBQUFBLE9BQUFBLGdCQUFpQlQsNEJBQTRCLElBQUlNLElBQUlMLFNBQVNNLEdBQUcsR0FBR0ksUUFBUTtBQUVoRjtBQUVPLFNBQVNaLDZCQUNkYSxTQUFpQyxFQUNqQ0MsYUFBNEIsRUFDNUJDLFNBQWlCO0lBRWpCLDREQUE0RDtJQUM1RCxPQUFRRjtRQUNOLFlBQVk7UUFDWixLQUFLO1FBQ0wsS0FBSztZQUFNO2dCQUNULGlFQUFpRTtnQkFDakUsbURBQW1EO2dCQUNuRCxPQUFPRSxZQUFZRCxjQUFjRSxNQUFNLEdBQ25DRixjQUFjRyxLQUFLLENBQUNGLFdBQVdHLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQyxtQkFBbUJELE1BQzdELEVBQUU7WUFDUjtRQUNBLHFCQUFxQjtRQUNyQixLQUFLO1lBQU07Z0JBQ1QseUVBQXlFO2dCQUN6RSwyREFBMkQ7Z0JBQzNELE9BQU9KLFlBQVlELGNBQWNFLE1BQU0sR0FDbkNGLGNBQWNHLEtBQUssQ0FBQ0YsV0FBV0csR0FBRyxDQUFDLENBQUNDLElBQU1DLG1CQUFtQkQsTUFDN0Q7WUFDTjtRQUNBLFVBQVU7UUFDVixLQUFLO1FBQ0wsS0FBSztZQUFNO2dCQUNULElBQUlKLGFBQWFELGNBQWNFLE1BQU0sRUFBRTtvQkFDckMsdUVBQXVFO29CQUN2RSx3RUFBd0U7b0JBQ3hFLGtFQUFrRTtvQkFDbEUscUVBQXFFO29CQUNyRSxzRUFBc0U7b0JBQ3RFLDZEQUE2RDtvQkFDN0Qsb0JBQW9CO29CQUNwQixPQUFPO2dCQUNUO2dCQUNBLE9BQU9JLG1CQUFtQk4sYUFBYSxDQUFDQyxVQUFVO1lBQ3BEO1FBQ0E7WUFDRUY7WUFDQSxPQUFPO0lBQ1g7QUFDRjtBQUVPLFNBQVNsQiw2QkFBNkIwQixPQUFlO0lBQzFELHFFQUFxRTtJQUNyRSwwRUFBMEU7SUFDMUUsd0VBQXdFO0lBQ3hFLHNDQUFzQztJQUN0Qyx3RUFBd0U7SUFDeEUsdUVBQXVFO0lBQ3ZFLGlEQUFpRDtJQUNqRCxJQUNFQSxZQUFZQyxzQkFBQUEsd0JBQXdCLElBQ3BDLHFFQUFxRTtJQUNyRSxxRUFBcUU7SUFDckUsa0VBQWtFO0lBQ2xFLHFCQUFxQjtJQUNyQixzRUFBc0U7SUFDdEVELFFBQVFFLFVBQVUsQ0FBQ0MsU0FBQUEsZ0JBQWdCLEtBQ25DLGdCQUFnQjtJQUNmSCxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFJLFFBQVEsQ0FBQyxRQUN4Q0osWUFBWUssU0FBQUEsbUJBQW1CLElBQy9CTCxZQUFZLGVBQ1o7UUFDQSxPQUFPO0lBQ1QsT0FBTztRQUNMLDRDQUE0QztRQUM1QyxPQUFPO0lBQ1Q7QUFDRjtBQUVPLFNBQVN6QiwyQkFDZCtCLFVBQTJCLEVBQzNCQyxjQUFnQztJQUVoQyw2RUFBNkU7SUFDN0UseUVBQXlFO0lBQ3pFLGNBQWM7SUFDZCxJQUFJLE9BQU9ELGVBQWUsVUFBVTtRQUNsQywwRUFBMEU7UUFDMUUsb0VBQW9FO1FBQ3BFLGlEQUFpRDtRQUNqRCxNQUFNRSw4QkFBOEJDLENBQUFBLEdBQUFBLFNBQUFBLDRCQUFBQSxFQUNsQ0gsWUFDQUksT0FBT0MsV0FBVyxDQUFDLElBQUlDLGdCQUFnQkw7UUFFekMsT0FBT0M7SUFDVCxPQUFPLElBQUlGLGVBQWUsTUFBTTtRQUM5QixPQUFPO0lBQ1QsT0FBTztRQUNMLE9BQU9BLFdBQVdPLElBQUksQ0FBQztJQUN6QjtBQUNGO0FBRU8sU0FBU2pDLDRCQUE0Qk8sR0FBUTtJQUNsRCxNQUFNMkIsNkJBQTZCLElBQUk1QixJQUFJQztJQUMzQzJCLDJCQUEyQkMsWUFBWSxDQUFDQyxNQUFNLENBQUNDLGtCQUFBQSxvQkFBb0I7SUFDbkUsSUExQmMxQyxLQUEwQixFQTBCRyxFQVUxQztJQUNELE9BQU91QztBQUNUO0FBRU8sU0FBU3RDLDBCQUNkOEMsYUFBcUIsRUFDckI5QixTQUFpQztJQUVqQyw4RUFBOEU7SUFDOUUsd0VBQXdFO0lBQ3hFLE1BQU0rQixhQUFhL0IsY0FBYyxPQUFPQSxjQUFjO0lBQ3RELElBQUkrQixZQUFZO1FBQ2QsaUVBQWlFO1FBQ2pFLCtDQUErQztRQUMvQyx3RUFBd0U7UUFDeEUsdUVBQXVFO1FBQ3ZFLDBFQUEwRTtRQUMxRSxpQ0FBaUM7UUFDakMsT0FBT0QsY0FBY0UsS0FBSyxDQUFDO0lBQzdCO0lBQ0EsT0FBT0Y7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9zcmMvY2xpZW50L3JvdXRlLXBhcmFtcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IER5bmFtaWNQYXJhbVR5cGVzU2hvcnQgfSBmcm9tICcuLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7XG4gIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQsXG4gIERFRkFVTFRfU0VHTUVOVF9LRVksXG4gIFBBR0VfU0VHTUVOVF9LRVksXG59IGZyb20gJy4uL3NoYXJlZC9saWIvc2VnbWVudCdcbmltcG9ydCB7IFJPT1RfU0VHTUVOVF9SRVFVRVNUX0tFWSB9IGZyb20gJy4uL3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9zZWdtZW50LXZhbHVlLWVuY29kaW5nJ1xuaW1wb3J0IHtcbiAgTkVYVF9SRVdSSVRURU5fUEFUSF9IRUFERVIsXG4gIE5FWFRfUkVXUklUVEVOX1FVRVJZX0hFQURFUixcbiAgTkVYVF9SU0NfVU5JT05fUVVFUlksXG59IGZyb20gJy4vY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnMnXG5pbXBvcnQgdHlwZSB7IE5vcm1hbGl6ZWRTZWFyY2ggfSBmcm9tICcuL2NvbXBvbmVudHMvc2VnbWVudC1jYWNoZSdcbmltcG9ydCB0eXBlIHsgUlNDUmVzcG9uc2UgfSBmcm9tICcuL2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmV0Y2gtc2VydmVyLXJlc3BvbnNlJ1xuXG5leHBvcnQgdHlwZSBSb3V0ZVBhcmFtVmFsdWUgPSBzdHJpbmcgfCBBcnJheTxzdHJpbmc+IHwgbnVsbFxuXG5leHBvcnQgdHlwZSBSb3V0ZVBhcmFtID0ge1xuICBuYW1lOiBzdHJpbmdcbiAgdmFsdWU6IFJvdXRlUGFyYW1WYWx1ZVxuICB0eXBlOiBEeW5hbWljUGFyYW1UeXBlc1Nob3J0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZW5kZXJlZFNlYXJjaChyZXNwb25zZTogUlNDUmVzcG9uc2UpOiBOb3JtYWxpemVkU2VhcmNoIHtcbiAgLy8gSWYgdGhlIHNlcnZlciBwZXJmb3JtZWQgYSByZXdyaXRlLCB0aGUgc2VhcmNoIHBhcmFtcyB1c2VkIHRvIHJlbmRlciB0aGVcbiAgLy8gcGFnZSB3aWxsIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBwYXJhbXMgaW4gdGhlIHJlcXVlc3QgVVJMLiBJbiB0aGlzIGNhc2UsXG4gIC8vIHRoZSByZXNwb25zZSB3aWxsIGluY2x1ZGUgYSBoZWFkZXIgdGhhdCBnaXZlcyB0aGUgcmV3cml0dGVuIHNlYXJjaCBxdWVyeS5cbiAgY29uc3QgcmV3cml0dGVuUXVlcnkgPSByZXNwb25zZS5oZWFkZXJzLmdldChORVhUX1JFV1JJVFRFTl9RVUVSWV9IRUFERVIpXG4gIGlmIChyZXdyaXR0ZW5RdWVyeSAhPT0gbnVsbCkge1xuICAgIHJldHVybiAoXG4gICAgICByZXdyaXR0ZW5RdWVyeSA9PT0gJycgPyAnJyA6ICc/JyArIHJld3JpdHRlblF1ZXJ5XG4gICAgKSBhcyBOb3JtYWxpemVkU2VhcmNoXG4gIH1cbiAgLy8gSWYgdGhlIGhlYWRlciBpcyBub3QgcHJlc2VudCwgdGhlcmUgd2FzIG5vIHJld3JpdGUsIHNvIHdlIHVzZSB0aGUgc2VhcmNoXG4gIC8vIHF1ZXJ5IG9mIHRoZSByZXNwb25zZSBVUkwuXG4gIHJldHVybiB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIobmV3IFVSTChyZXNwb25zZS51cmwpKVxuICAgIC5zZWFyY2ggYXMgTm9ybWFsaXplZFNlYXJjaFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVuZGVyZWRQYXRobmFtZShyZXNwb25zZTogUlNDUmVzcG9uc2UpOiBzdHJpbmcge1xuICAvLyBJZiB0aGUgc2VydmVyIHBlcmZvcm1lZCBhIHJld3JpdGUsIHRoZSBwYXRobmFtZSB1c2VkIHRvIHJlbmRlciB0aGVcbiAgLy8gcGFnZSB3aWxsIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBwYXRobmFtZSBpbiB0aGUgcmVxdWVzdCBVUkwuIEluIHRoaXMgY2FzZSxcbiAgLy8gdGhlIHJlc3BvbnNlIHdpbGwgaW5jbHVkZSBhIGhlYWRlciB0aGF0IGdpdmVzIHRoZSByZXdyaXR0ZW4gcGF0aG5hbWUuXG4gIGNvbnN0IHJld3JpdHRlblBhdGggPSByZXNwb25zZS5oZWFkZXJzLmdldChORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUilcbiAgcmV0dXJuIChcbiAgICByZXdyaXR0ZW5QYXRoID8/IHVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcihuZXcgVVJMKHJlc3BvbnNlLnVybCkpLnBhdGhuYW1lXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRHluYW1pY1BhcmFtRnJvbVVSTFBhcnQoXG4gIHBhcmFtVHlwZTogRHluYW1pY1BhcmFtVHlwZXNTaG9ydCxcbiAgcGF0aG5hbWVQYXJ0czogQXJyYXk8c3RyaW5nPixcbiAgcGFydEluZGV4OiBudW1iZXJcbik6IFJvdXRlUGFyYW1WYWx1ZSB7XG4gIC8vIFRoaXMgbmVlZHMgdG8gbWF0Y2ggdGhlIGJlaGF2aW9yIGluIGdldC1keW5hbWljLXBhcmFtLnRzLlxuICBzd2l0Y2ggKHBhcmFtVHlwZSkge1xuICAgIC8vIENhdGNoYWxsc1xuICAgIGNhc2UgJ2MnOlxuICAgIGNhc2UgJ2NpJzoge1xuICAgICAgLy8gQ2F0Y2hhbGxzIHJlY2VpdmUgYWxsIHRoZSByZW1haW5pbmcgVVJMIHBhcnRzLiBJZiB0aGVyZSBhcmUgbm9cbiAgICAgIC8vIHJlbWFpbmluZyBwYXRobmFtZSBwYXJ0cywgcmV0dXJuIGFuIGVtcHR5IGFycmF5LlxuICAgICAgcmV0dXJuIHBhcnRJbmRleCA8IHBhdGhuYW1lUGFydHMubGVuZ3RoXG4gICAgICAgID8gcGF0aG5hbWVQYXJ0cy5zbGljZShwYXJ0SW5kZXgpLm1hcCgocykgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHMpKVxuICAgICAgICA6IFtdXG4gICAgfVxuICAgIC8vIE9wdGlvbmFsIGNhdGNoYWxsc1xuICAgIGNhc2UgJ29jJzoge1xuICAgICAgLy8gT3B0aW9uYWwgY2F0Y2hhbGxzIHJlY2VpdmUgYWxsIHRoZSByZW1haW5pbmcgVVJMIHBhcnRzLCB1bmxlc3MgdGhpcyBpc1xuICAgICAgLy8gdGhlIGVuZCBvZiB0aGUgcGF0aG5hbWUsIGluIHdoaWNoIGNhc2UgdGhleSByZXR1cm4gbnVsbC5cbiAgICAgIHJldHVybiBwYXJ0SW5kZXggPCBwYXRobmFtZVBhcnRzLmxlbmd0aFxuICAgICAgICA/IHBhdGhuYW1lUGFydHMuc2xpY2UocGFydEluZGV4KS5tYXAoKHMpID0+IGVuY29kZVVSSUNvbXBvbmVudChzKSlcbiAgICAgICAgOiBudWxsXG4gICAgfVxuICAgIC8vIER5bmFtaWNcbiAgICBjYXNlICdkJzpcbiAgICBjYXNlICdkaSc6IHtcbiAgICAgIGlmIChwYXJ0SW5kZXggPj0gcGF0aG5hbWVQYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgLy8gVGhlIHJvdXRlIHRyZWUgZXhwZWN0ZWQgdGhlcmUgdG8gYmUgbW9yZSBwYXJ0cyBpbiB0aGUgVVJMIHRoYW4gdGhlcmVcbiAgICAgICAgLy8gYWN0dWFsbHkgYXJlLiBUaGlzIGNvdWxkIGhhcHBlbiBpZiB0aGUgeC1uZXh0anMtcmV3cml0dGVuLXBhdGggaGVhZGVyXG4gICAgICAgIC8vIGlzIGluY29ycmVjdGx5IHNldCwgb3IgcG90ZW50aWFsbHkgZHVlIHRvIGJ1ZyBpbiBOZXh0LmpzLiBUT0RPOlxuICAgICAgICAvLyBTaG91bGQgdGhpcyBiZSBhIGhhcmQgZXJyb3I/IER1cmluZyBhIHByZWZldGNoLCB3ZSBjYW4ganVzdCBhYm9ydC5cbiAgICAgICAgLy8gRHVyaW5nIGEgY2xpZW50IG5hdmlnYXRpb24sIHdlIGNvdWxkIHRyaWdnZXIgYSBoYXJkIHJlZnJlc2guIEJ1dCBpZlxuICAgICAgICAvLyBpdCBoYXBwZW5zIGR1cmluZyBpbml0aWFsIHJlbmRlciwgd2UgZG9uJ3QgcmVhbGx5IGhhdmUgYW55XG4gICAgICAgIC8vIHJlY292ZXJ5IG9wdGlvbnMuXG4gICAgICAgIHJldHVybiAnJ1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChwYXRobmFtZVBhcnRzW3BhcnRJbmRleF0pXG4gICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICBwYXJhbVR5cGUgc2F0aXNmaWVzIG5ldmVyXG4gICAgICByZXR1cm4gJydcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9lc1N0YXRpY1NlZ21lbnRBcHBlYXJJblVSTChzZWdtZW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gVGhpcyBpcyBub3QgYSBwYXJhbWV0ZXJpemVkIHNlZ21lbnQ7IGhvd2V2ZXIsIHdlIG5lZWQgdG8gZGV0ZXJtaW5lXG4gIC8vIHdoZXRoZXIgb3Igbm90IHRoaXMgc2VnbWVudCBhcHBlYXJzIGluIHRoZSBVUkwuIEZvciBleGFtcGxlLCB0aGlzIHJvdXRlXG4gIC8vIGdyb3VwcyBkbyBub3QgYXBwZWFyIGluIHRoZSBVUkwsIHNvIHRoZXkgc2hvdWxkIGJlIHNraXBwZWQuIEFueSBvdGhlclxuICAvLyBzcGVjaWFsIGNhc2VzIG11c3QgYmUgaGFuZGxlZCBoZXJlLlxuICAvLyBUT0RPOiBDb25zaWRlciBlbmNvZGluZyB0aGlzIGRpcmVjdGx5IGludG8gdGhlIHJvdXRlciB0cmVlIGluc3RlYWQgb2ZcbiAgLy8gaW5mZXJyaW5nIGl0IG9uIHRoZSBjbGllbnQgYmFzZWQgb24gdGhlIHNlZ21lbnQgdHlwZS4gU29tZXRoaW5nIGxpa2VcbiAgLy8gYSBgZG9lc0FwcGVhckluVVJMYCBmbGFnIGluIEZsaWdodFJvdXRlclN0YXRlLlxuICBpZiAoXG4gICAgc2VnbWVudCA9PT0gUk9PVF9TRUdNRU5UX1JFUVVFU1RfS0VZIHx8XG4gICAgLy8gRm9yIHNvbWUgcmVhc29uLCB0aGUgbG9hZGVyIHRyZWUgc29tZXRpbWVzIGluY2x1ZGVzIGV4dHJhIF9fUEFHRV9fXG4gICAgLy8gXCJsYXlvdXRzXCIgd2hlbiBwYXJ0IG9mIGEgcGFyYWxsZWwgcm91dGUuIEJ1dCBpdCdzIG5vdCBhIGxlYWYgbm9kZS5cbiAgICAvLyBPdGhlcndpc2UsIHdlIHdvdWxkbid0IG5lZWQgdGhpcyBzcGVjaWFsIGNhc2UgYmVjYXVzZSBwYWdlcyBhcmVcbiAgICAvLyBhbHdheXMgbGVhZiBub2Rlcy5cbiAgICAvLyBUT0RPOiBJbnZlc3RpZ2F0ZSB3aHkgdGhlIGxvYWRlciBwcm9kdWNlcyB0aGVzZSBmYWtlIHBhZ2Ugc2VnbWVudHMuXG4gICAgc2VnbWVudC5zdGFydHNXaXRoKFBBR0VfU0VHTUVOVF9LRVkpIHx8XG4gICAgLy8gUm91dGUgZ3JvdXBzLlxuICAgIChzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpKSB8fFxuICAgIHNlZ21lbnQgPT09IERFRkFVTFRfU0VHTUVOVF9LRVkgfHxcbiAgICBzZWdtZW50ID09PSAnL19ub3QtZm91bmQnXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9IGVsc2Uge1xuICAgIC8vIEFsbCBvdGhlciBzZWdtZW50IHR5cGVzIGFwcGVhciBpbiB0aGUgVVJMXG4gICAgcmV0dXJuIHRydWVcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FjaGVLZXlGb3JEeW5hbWljUGFyYW0oXG4gIHBhcmFtVmFsdWU6IFJvdXRlUGFyYW1WYWx1ZSxcbiAgcmVuZGVyZWRTZWFyY2g6IE5vcm1hbGl6ZWRTZWFyY2hcbik6IHN0cmluZyB7XG4gIC8vIFRoaXMgbmVlZHMgdG8gbWF0Y2ggdGhlIGxvZ2ljIGluIGdldC1keW5hbWljLXBhcmFtLnRzLCB1bnRpbCB3ZSdyZSBhYmxlIHRvXG4gIC8vIHVuaWZ5IHRoZSB2YXJpb3VzIGltcGxlbWVudGF0aW9ucyBzbyB0aGF0IHRoZXNlIGFyZSBhbHdheXMgY29tcHV0ZWQgb25cbiAgLy8gdGhlIGNsaWVudC5cbiAgaWYgKHR5cGVvZiBwYXJhbVZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIC8vIFRPRE86IFJlZmFjdG9yIG9yIHJlbW92ZSB0aGlzIGhlbHBlciBmdW5jdGlvbiB0byBhY2NlcHQgYSBzdHJpbmcgcmF0aGVyXG4gICAgLy8gdGhhbiB0aGUgd2hvbGUgc2VnbWVudCB0eXBlLiBBbHNvIHdlIGNhbiBwcm9iYWJseSBqdXN0IGFwcGVuZCB0aGVcbiAgICAvLyBzZWFyY2ggc3RyaW5nIGluc3RlYWQgb2YgdHVybmluZyBpdCBpbnRvIEpTT04uXG4gICAgY29uc3QgcGFnZVNlZ21lbnRXaXRoU2VhcmNoUGFyYW1zID0gYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudChcbiAgICAgIHBhcmFtVmFsdWUsXG4gICAgICBPYmplY3QuZnJvbUVudHJpZXMobmV3IFVSTFNlYXJjaFBhcmFtcyhyZW5kZXJlZFNlYXJjaCkpXG4gICAgKSBhcyBzdHJpbmdcbiAgICByZXR1cm4gcGFnZVNlZ21lbnRXaXRoU2VhcmNoUGFyYW1zXG4gIH0gZWxzZSBpZiAocGFyYW1WYWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiAnJ1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwYXJhbVZhbHVlLmpvaW4oJy8nKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIodXJsOiBVUkwpOiBVUkwge1xuICBjb25zdCB1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVycyA9IG5ldyBVUkwodXJsKVxuICB1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVycy5zZWFyY2hQYXJhbXMuZGVsZXRlKE5FWFRfUlNDX1VOSU9OX1FVRVJZKVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9DT05GSUdfT1VUUFVUID09PSAnZXhwb3J0JyAmJlxuICAgICAgdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnMucGF0aG5hbWUuZW5kc1dpdGgoJy50eHQnKVxuICAgICkge1xuICAgICAgY29uc3QgeyBwYXRobmFtZSB9ID0gdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnNcbiAgICAgIGNvbnN0IGxlbmd0aCA9IHBhdGhuYW1lLmVuZHNXaXRoKCcvaW5kZXgudHh0JykgPyAxMCA6IDRcbiAgICAgIC8vIFNsaWNlIG9mZiBgL2luZGV4LnR4dGAgb3IgYC50eHRgIGZyb20gdGhlIGVuZCBvZiB0aGUgcGF0aG5hbWVcbiAgICAgIHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzLnBhdGhuYW1lID0gcGF0aG5hbWUuc2xpY2UoMCwgLWxlbmd0aClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJhbVZhbHVlRnJvbUNhY2hlS2V5KFxuICBwYXJhbUNhY2hlS2V5OiBzdHJpbmcsXG4gIHBhcmFtVHlwZTogRHluYW1pY1BhcmFtVHlwZXNTaG9ydFxuKSB7XG4gIC8vIFR1cm4gdGhlIGNhY2hlIGtleSBzdHJpbmcgc2VudCBieSB0aGUgc2VydmVyIChhcyBwYXJ0IG9mIEZsaWdodFJvdXRlclN0YXRlKVxuICAvLyBpbnRvIGEgdmFsdWUgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGB1c2VQYXJhbXNgIGFuZCBjbGllbnQgY29tcG9uZW50cy5cbiAgY29uc3QgaXNDYXRjaEFsbCA9IHBhcmFtVHlwZSA9PT0gJ2MnIHx8IHBhcmFtVHlwZSA9PT0gJ29jJ1xuICBpZiAoaXNDYXRjaEFsbCkge1xuICAgIC8vIENhdGNoLWFsbCBwYXJhbSBrZXlzIGFyZSBhIGNvbmNhdGVuYXRpb24gb2YgdGhlIHBhdGggc2VnbWVudHMuXG4gICAgLy8gU2VlIGVxdWl2YWxlbnQgbG9naWMgaW4gYGdldFNlbGVjdGVkUGFyYW1zYC5cbiAgICAvLyBUT0RPOiBXZSBzaG91bGQganVzdCBwYXNzIHRoZSBhcnJheSBkaXJlY3RseSwgcmF0aGVyIHRoYW4gY29uY2F0ZW5hdGVcbiAgICAvLyBpdCB0byBhIHN0cmluZyBhbmQgdGhlbiBzcGxpdCBpdCBiYWNrIHRvIGFuIGFycmF5LiBJdCBuZWVkcyB0byBiZSBhblxuICAgIC8vIGFycmF5IGluIHNvbWUgcGxhY2VzLCBsaWtlIHdoZW4gcGFzc2luZyBhIGtleSBSZWFjdCwgYnV0IHdlIGNhbiBjb252ZXJ0XG4gICAgLy8gaXQgYXQgcnVudGltZSBpbiB0aG9zZSBwbGFjZXMuXG4gICAgcmV0dXJuIHBhcmFtQ2FjaGVLZXkuc3BsaXQoJy8nKVxuICB9XG4gIHJldHVybiBwYXJhbUNhY2hlS2V5XG59XG4iXSwibmFtZXMiOlsiZG9lc1N0YXRpY1NlZ21lbnRBcHBlYXJJblVSTCIsImdldENhY2hlS2V5Rm9yRHluYW1pY1BhcmFtIiwiZ2V0UGFyYW1WYWx1ZUZyb21DYWNoZUtleSIsImdldFJlbmRlcmVkUGF0aG5hbWUiLCJnZXRSZW5kZXJlZFNlYXJjaCIsInBhcnNlRHluYW1pY1BhcmFtRnJvbVVSTFBhcnQiLCJ1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIiLCJyZXNwb25zZSIsInJld3JpdHRlblF1ZXJ5IiwiaGVhZGVycyIsImdldCIsIk5FWFRfUkVXUklUVEVOX1FVRVJZX0hFQURFUiIsIlVSTCIsInVybCIsInNlYXJjaCIsInJld3JpdHRlblBhdGgiLCJORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiIsInBhdGhuYW1lIiwicGFyYW1UeXBlIiwicGF0aG5hbWVQYXJ0cyIsInBhcnRJbmRleCIsImxlbmd0aCIsInNsaWNlIiwibWFwIiwicyIsImVuY29kZVVSSUNvbXBvbmVudCIsInNlZ21lbnQiLCJST09UX1NFR01FTlRfUkVRVUVTVF9LRVkiLCJzdGFydHNXaXRoIiwiUEFHRV9TRUdNRU5UX0tFWSIsImVuZHNXaXRoIiwiREVGQVVMVF9TRUdNRU5UX0tFWSIsInBhcmFtVmFsdWUiLCJyZW5kZXJlZFNlYXJjaCIsInBhZ2VTZWdtZW50V2l0aFNlYXJjaFBhcmFtcyIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJPYmplY3QiLCJmcm9tRW50cmllcyIsIlVSTFNlYXJjaFBhcmFtcyIsImpvaW4iLCJ1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVycyIsInNlYXJjaFBhcmFtcyIsImRlbGV0ZSIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiX19ORVhUX0NPTkZJR19PVVRQVVQiLCJwYXJhbUNhY2hlS2V5IiwiaXNDYXRjaEFsbCIsInNwbGl0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/route-params.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/client/use-merged-ref.js":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/next/dist/client/use-merged-ref.js ***!
|
||
\*********************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useMergedRef\", ({\n enumerable: true,\n get: function() {\n return useMergedRef;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nfunction useMergedRef(refA, refB) {\n const cleanupA = (0, _react.useRef)(null);\n const cleanupB = (0, _react.useRef)(null);\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return (0, _react.useCallback)((current)=>{\n if (current === null) {\n const cleanupFnA = cleanupA.current;\n if (cleanupFnA) {\n cleanupA.current = null;\n cleanupFnA();\n }\n const cleanupFnB = cleanupB.current;\n if (cleanupFnB) {\n cleanupB.current = null;\n cleanupFnB();\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current);\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current);\n }\n }\n }, [\n refA,\n refB\n ]);\n}\nfunction applyRef(refA, current) {\n if (typeof refA === 'function') {\n const cleanup = refA(current);\n if (typeof cleanup === 'function') {\n return cleanup;\n } else {\n return ()=>refA(null);\n }\n } else {\n refA.current = current;\n return ()=>{\n refA.current = null;\n };\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-merged-ref.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtbWVyZ2VkLXJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQVNnQkE7OztlQUFBQTs7O21DQVQ4QjtBQVN2QyxTQUFTQSxhQUNkQyxJQUFtQixFQUNuQkMsSUFBbUI7SUFFbkIsTUFBTUMsV0FBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFBNEI7SUFDN0MsTUFBTUMsV0FBV0QsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFBNEI7SUFFN0MsbUZBQW1GO0lBQ25GLHlFQUF5RTtJQUN6RSxpR0FBaUc7SUFDakcsOEZBQThGO0lBQzlGLGdEQUFnRDtJQUNoRCxtR0FBbUc7SUFDbkcsd0ZBQXdGO0lBQ3hGLE9BQU9FLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQ0wsQ0FBQ0M7UUFDQyxJQUFJQSxZQUFZLE1BQU07WUFDcEIsTUFBTUMsYUFBYUwsU0FBU0ksT0FBTztZQUNuQyxJQUFJQyxZQUFZO2dCQUNkTCxTQUFTSSxPQUFPLEdBQUc7Z0JBQ25CQztZQUNGO1lBQ0EsTUFBTUMsYUFBYUosU0FBU0UsT0FBTztZQUNuQyxJQUFJRSxZQUFZO2dCQUNkSixTQUFTRSxPQUFPLEdBQUc7Z0JBQ25CRTtZQUNGO1FBQ0YsT0FBTztZQUNMLElBQUlSLE1BQU07Z0JBQ1JFLFNBQVNJLE9BQU8sR0FBR0csU0FBU1QsTUFBTU07WUFDcEM7WUFDQSxJQUFJTCxNQUFNO2dCQUNSRyxTQUFTRSxPQUFPLEdBQUdHLFNBQVNSLE1BQU1LO1lBQ3BDO1FBQ0Y7SUFDRixHQUNBO1FBQUNOO1FBQU1DO0tBQUs7QUFFaEI7QUFFQSxTQUFTUSxTQUNQVCxJQUFnQyxFQUNoQ00sT0FBaUI7SUFFakIsSUFBSSxPQUFPTixTQUFTLFlBQVk7UUFDOUIsTUFBTVUsVUFBVVYsS0FBS007UUFDckIsSUFBSSxPQUFPSSxZQUFZLFlBQVk7WUFDakMsT0FBT0E7UUFDVCxPQUFPO1lBQ0wsT0FBTyxJQUFNVixLQUFLO1FBQ3BCO0lBQ0YsT0FBTztRQUNMQSxLQUFLTSxPQUFPLEdBQUdBO1FBQ2YsT0FBTztZQUNMTixLQUFLTSxPQUFPLEdBQUc7UUFDakI7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL3NyYy9jbGllbnQvdXNlLW1lcmdlZC1yZWYudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdHlwZSBSZWYgfSBmcm9tICdyZWFjdCdcblxuLy8gVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgaG9vayB0byBzdXBwb3J0IFJlYWN0IDE4IGFuZCAxOSByZWZzLlxuLy8gSW4gMTksIGEgY2xlYW51cCBmdW5jdGlvbiBmcm9tIHJlZnMgbWF5IGJlIHJldHVybmVkLlxuLy8gSW4gMTgsIHJldHVybmluZyBhIGNsZWFudXAgZnVuY3Rpb24gY3JlYXRlcyBhIHdhcm5pbmcuXG4vLyBTaW5jZSB3ZSB0YWtlIHVzZXJzcGFjZSByZWZzLCB3ZSBkb24ndCBrbm93IGFoZWFkIG9mIHRpbWUgaWYgYSBjbGVhbnVwIGZ1bmN0aW9uIHdpbGwgYmUgcmV0dXJuZWQuXG4vLyBUaGlzIGltcGxlbWVudHMgY2xlYW51cCBmdW5jdGlvbnMgd2l0aCB0aGUgb2xkIGJlaGF2aW9yIGluIDE4LlxuLy8gV2Uga25vdyByZWZzIGFyZSBhbHdheXMgY2FsbGVkIGFsdGVybmF0aW5nIHdpdGggYG51bGxgIGFuZCB0aGVuIGBUYC5cbi8vIFNvIGEgY2FsbCB3aXRoIGBudWxsYCBtZWFucyB3ZSBuZWVkIHRvIGNhbGwgdGhlIHByZXZpb3VzIGNsZWFudXAgZnVuY3Rpb25zLlxuZXhwb3J0IGZ1bmN0aW9uIHVzZU1lcmdlZFJlZjxURWxlbWVudD4oXG4gIHJlZkE6IFJlZjxURWxlbWVudD4sXG4gIHJlZkI6IFJlZjxURWxlbWVudD5cbik6IFJlZjxURWxlbWVudD4ge1xuICBjb25zdCBjbGVhbnVwQSA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuICBjb25zdCBjbGVhbnVwQiA9IHVzZVJlZjwoKCkgPT4gdm9pZCkgfCBudWxsPihudWxsKVxuXG4gIC8vIE5PVEU6IEluIHRoZW9yeSwgd2UgY291bGQgc2tpcCB0aGUgd3JhcHBpbmcgaWYgb25seSBvbmUgb2YgdGhlIHJlZnMgaXMgbm9uLW51bGwuXG4gIC8vICh0aGlzIGhhcHBlbnMgb2Z0ZW4gaWYgdGhlIHVzZXIgZG9lc24ndCBwYXNzIGEgcmVmIHRvIExpbmsvRm9ybS9JbWFnZSlcbiAgLy8gQnV0IHRoaXMgY2FuIGNhdXNlIHVzIHRvIGxlYWsgYSBjbGVhbnVwLXJlZiBpbnRvIHVzZXIgY29kZSAoZS5nLiB2aWEgYDxMaW5rIGxlZ2FjeUJlaGF2aW9yPmApLFxuICAvLyBhbmQgdGhlIHVzZXIgbWlnaHQgcGFzcyB0aGF0IHJlZiBpbnRvIHJlZi1tZXJnaW5nIGxpYnJhcnkgdGhhdCBkb2Vzbid0IHN1cHBvcnQgY2xlYW51cCByZWZzXG4gIC8vIChiZWNhdXNlIGl0IGhhc24ndCBiZWVuIHVwZGF0ZWQgZm9yIFJlYWN0IDE5KVxuICAvLyB3aGljaCBjYW4gdGhlbiBjYXVzZSB0aGluZ3MgdG8gYmxvdyB1cCwgYmVjYXVzZSBhIGNsZWFudXAtcmV0dXJuaW5nIHJlZiBnZXRzIGNhbGxlZCB3aXRoIGBudWxsYC5cbiAgLy8gU28gaW4gcHJhY3RpY2UsIGl0J3Mgc2FmZXIgdG8gYmUgZGVmZW5zaXZlIGFuZCBhbHdheXMgd3JhcCB0aGUgcmVmLCBldmVuIG9uIFJlYWN0IDE5LlxuICByZXR1cm4gdXNlQ2FsbGJhY2soXG4gICAgKGN1cnJlbnQ6IFRFbGVtZW50IHwgbnVsbCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY2xlYW51cEZuQSA9IGNsZWFudXBBLmN1cnJlbnRcbiAgICAgICAgaWYgKGNsZWFudXBGbkEpIHtcbiAgICAgICAgICBjbGVhbnVwQS5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgIGNsZWFudXBGbkEoKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNsZWFudXBGbkIgPSBjbGVhbnVwQi5jdXJyZW50XG4gICAgICAgIGlmIChjbGVhbnVwRm5CKSB7XG4gICAgICAgICAgY2xlYW51cEIuY3VycmVudCA9IG51bGxcbiAgICAgICAgICBjbGVhbnVwRm5CKClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHJlZkEpIHtcbiAgICAgICAgICBjbGVhbnVwQS5jdXJyZW50ID0gYXBwbHlSZWYocmVmQSwgY3VycmVudClcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVmQikge1xuICAgICAgICAgIGNsZWFudXBCLmN1cnJlbnQgPSBhcHBseVJlZihyZWZCLCBjdXJyZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbcmVmQSwgcmVmQl1cbiAgKVxufVxuXG5mdW5jdGlvbiBhcHBseVJlZjxURWxlbWVudD4oXG4gIHJlZkE6IE5vbk51bGxhYmxlPFJlZjxURWxlbWVudD4+LFxuICBjdXJyZW50OiBURWxlbWVudFxuKSB7XG4gIGlmICh0eXBlb2YgcmVmQSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IGNsZWFudXAgPSByZWZBKGN1cnJlbnQpXG4gICAgaWYgKHR5cGVvZiBjbGVhbnVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gY2xlYW51cFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKCkgPT4gcmVmQShudWxsKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZWZBLmN1cnJlbnQgPSBjdXJyZW50XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJlZkEuY3VycmVudCA9IG51bGxcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZXJnZWRSZWYiLCJyZWZBIiwicmVmQiIsImNsZWFudXBBIiwidXNlUmVmIiwiY2xlYW51cEIiLCJ1c2VDYWxsYmFjayIsImN1cnJlbnQiLCJjbGVhbnVwRm5BIiwiY2xlYW51cEZuQiIsImFwcGx5UmVmIiwiY2xlYW51cCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/use-merged-ref.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/next-devtools/index.js ***!
|
||
\****************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
eval("var __webpack_modules__={\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-indicator/devtools-indicator.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`[data-nextjs-toast] {\n &[data-hidden='true'] {\n display: none;\n }\n}\n\n.dev-tools-indicator-menu {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-alpha-400);\n background-clip: padding-box;\n box-shadow: var(--shadow-menu);\n border-radius: var(--rounded-xl);\n position: absolute;\n font-family: var(--font-stack-sans);\n z-index: 3;\n overflow: hidden;\n opacity: 0;\n outline: 0;\n min-width: 248px;\n transition: opacity var(--animate-out-duration-ms)\n var(--animate-out-timing-function);\n\n &[data-rendered='true'] {\n opacity: 1;\n scale: 1;\n }\n}\n\n.dev-tools-indicator-inner {\n padding: 6px;\n width: 100%;\n}\n\n.dev-tools-indicator-item {\n display: flex;\n align-items: center;\n padding: 8px 6px;\n height: var(--size-36);\n border-radius: 6px;\n text-decoration: none !important;\n user-select: none;\n white-space: nowrap;\n\n svg {\n width: var(--size-16);\n height: var(--size-16);\n }\n\n &:focus-visible {\n outline: 0;\n }\n}\n\n.dev-tools-indicator-footer {\n background: var(--color-background-200);\n padding: 6px;\n border-top: 1px solid var(--color-gray-400);\n width: 100%;\n}\n\n.dev-tools-indicator-item[data-selected='true'] {\n cursor: pointer;\n background-color: var(--color-gray-200);\n}\n\n.dev-tools-indicator-label {\n font-size: var(--size-14);\n line-height: var(--size-20);\n color: var(--color-gray-1000);\n}\n\n.dev-tools-indicator-value {\n font-size: var(--size-14);\n line-height: var(--size-20);\n color: var(--color-gray-900);\n margin-left: auto;\n}\n\n.dev-tools-indicator-issue-count {\n --color-primary: var(--color-gray-800);\n --color-secondary: var(--color-gray-100);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 8px;\n min-width: var(--size-40);\n height: var(--size-24);\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-alpha-400);\n background-clip: padding-box;\n box-shadow: var(--shadow-small);\n padding: 2px;\n color: var(--color-gray-1000);\n border-radius: 128px;\n font-weight: 500;\n font-size: var(--size-13);\n font-variant-numeric: tabular-nums;\n\n &[data-has-issues='true'] {\n --color-primary: var(--color-red-800);\n --color-secondary: var(--color-red-100);\n }\n\n .dev-tools-indicator-issue-count-indicator {\n width: var(--size-8);\n height: var(--size-8);\n background: var(--color-primary);\n box-shadow: 0 0 0 2px var(--color-secondary);\n border-radius: 50%;\n }\n}\n\n.dev-tools-indicator-shortcut {\n display: flex;\n gap: 4px;\n\n kbd {\n width: var(--size-20);\n height: var(--size-20);\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--rounded-md);\n border: 1px solid var(--color-gray-400);\n font-family: var(--font-stack-sans);\n background: var(--color-background-100);\n color: var(--color-gray-1000);\n text-align: center;\n font-size: var(--size-12);\n line-height: var(--size-16);\n }\n}\n\n.dev-tools-grabbing {\n cursor: grabbing;\n\n > * {\n pointer-events: none;\n }\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/devtools-indicator/devtools-indicator.css\"],names:[],mappings:\"AAAA;EACE;IACE,aAAa;EACf;AACF;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,uCAAuC;EACvC,6CAA6C;EAC7C,4BAA4B;EAC5B,8BAA8B;EAC9B,gCAAgC;EAChC,kBAAkB;EAClB,mCAAmC;EACnC,UAAU;EACV,gBAAgB;EAChB,UAAU;EACV,UAAU;EACV,gBAAgB;EAChB;sCACoC;;EAEpC;IACE,UAAU;IACV,QAAQ;EACV;AACF;;AAEA;EACE,YAAY;EACZ,WAAW;AACb;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,gBAAgB;EAChB,sBAAsB;EACtB,kBAAkB;EAClB,gCAAgC;EAChC,iBAAiB;EACjB,mBAAmB;;EAEnB;IACE,qBAAqB;IACrB,sBAAsB;EACxB;;EAEA;IACE,UAAU;EACZ;AACF;;AAEA;EACE,uCAAuC;EACvC,YAAY;EACZ,2CAA2C;EAC3C,WAAW;AACb;;AAEA;EACE,eAAe;EACf,uCAAuC;AACzC;;AAEA;EACE,yBAAyB;EACzB,2BAA2B;EAC3B,6BAA6B;AAC/B;;AAEA;EACE,yBAAyB;EACzB,2BAA2B;EAC3B,4BAA4B;EAC5B,iBAAiB;AACnB;;AAEA;EACE,sCAAsC;EACtC,wCAAwC;EACxC,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;EACvB,QAAQ;EACR,yBAAyB;EACzB,sBAAsB;EACtB,uCAAuC;EACvC,6CAA6C;EAC7C,4BAA4B;EAC5B,+BAA+B;EAC/B,YAAY;EACZ,6BAA6B;EAC7B,oBAAoB;EACpB,gBAAgB;EAChB,yBAAyB;EACzB,kCAAkC;;EAElC;IACE,qCAAqC;IACrC,uCAAuC;EACzC;;EAEA;IACE,oBAAoB;IACpB,qBAAqB;IACrB,gCAAgC;IAChC,4CAA4C;IAC5C,kBAAkB;EACpB;AACF;;AAEA;EACE,aAAa;EACb,QAAQ;;EAER;IACE,qBAAqB;IACrB,sBAAsB;IACtB,aAAa;IACb,uBAAuB;IACvB,mBAAmB;IACnB,gCAAgC;IAChC,uCAAuC;IACvC,mCAAmC;IACnC,uCAAuC;IACvC,6BAA6B;IAC7B,kBAAkB;IAClB,yBAAyB;IACzB,2BAA2B;EAC7B;AACF;;AAEA;EACE,gBAAgB;;EAEhB;IACE,oBAAoB;EACtB;AACF\",sourcesContent:[\"[data-nextjs-toast] {\\n &[data-hidden='true'] {\\n display: none;\\n }\\n}\\n\\n.dev-tools-indicator-menu {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n background-clip: padding-box;\\n box-shadow: var(--shadow-menu);\\n border-radius: var(--rounded-xl);\\n position: absolute;\\n font-family: var(--font-stack-sans);\\n z-index: 3;\\n overflow: hidden;\\n opacity: 0;\\n outline: 0;\\n min-width: 248px;\\n transition: opacity var(--animate-out-duration-ms)\\n var(--animate-out-timing-function);\\n\\n &[data-rendered='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n}\\n\\n.dev-tools-indicator-inner {\\n padding: 6px;\\n width: 100%;\\n}\\n\\n.dev-tools-indicator-item {\\n display: flex;\\n align-items: center;\\n padding: 8px 6px;\\n height: var(--size-36);\\n border-radius: 6px;\\n text-decoration: none !important;\\n user-select: none;\\n white-space: nowrap;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n}\\n\\n.dev-tools-indicator-footer {\\n background: var(--color-background-200);\\n padding: 6px;\\n border-top: 1px solid var(--color-gray-400);\\n width: 100%;\\n}\\n\\n.dev-tools-indicator-item[data-selected='true'] {\\n cursor: pointer;\\n background-color: var(--color-gray-200);\\n}\\n\\n.dev-tools-indicator-label {\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n color: var(--color-gray-1000);\\n}\\n\\n.dev-tools-indicator-value {\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n color: var(--color-gray-900);\\n margin-left: auto;\\n}\\n\\n.dev-tools-indicator-issue-count {\\n --color-primary: var(--color-gray-800);\\n --color-secondary: var(--color-gray-100);\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n min-width: var(--size-40);\\n height: var(--size-24);\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n background-clip: padding-box;\\n box-shadow: var(--shadow-small);\\n padding: 2px;\\n color: var(--color-gray-1000);\\n border-radius: 128px;\\n font-weight: 500;\\n font-size: var(--size-13);\\n font-variant-numeric: tabular-nums;\\n\\n &[data-has-issues='true'] {\\n --color-primary: var(--color-red-800);\\n --color-secondary: var(--color-red-100);\\n }\\n\\n .dev-tools-indicator-issue-count-indicator {\\n width: var(--size-8);\\n height: var(--size-8);\\n background: var(--color-primary);\\n box-shadow: 0 0 0 2px var(--color-secondary);\\n border-radius: 50%;\\n }\\n}\\n\\n.dev-tools-indicator-shortcut {\\n display: flex;\\n gap: 4px;\\n\\n kbd {\\n width: var(--size-20);\\n height: var(--size-20);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: var(--rounded-md);\\n border: 1px solid var(--color-gray-400);\\n font-family: var(--font-stack-sans);\\n background: var(--color-background-100);\\n color: var(--color-gray-1000);\\n text-align: center;\\n font-size: var(--size-12);\\n line-height: var(--size-16);\\n }\\n}\\n\\n.dev-tools-grabbing {\\n cursor: grabbing;\\n\\n > * {\\n pointer-events: none;\\n }\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`.resize-container {\n position: absolute;\n /* todo: better z index */\n z-index: 10;\n /* todo: is this needed */\n background: transparent;\n}\n\n.resize-line {\n position: absolute;\n /* todo smarter z index */\n z-index: -1;\n pointer-events: none;\n /* a normal exit animation curve- at this point the exit animation is */\n /* immediately responsive so we don't need a bespoke curve */\n transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n /* todo: better var? */\n border: 1px solid var(--color-gray-400);\n}\n\n/* start really fast because we start super hidden initially behind the panel, otherwise feels like an unintended animation delay */\n.resize-container:hover ~ .resize-line {\n transition: transform 0.25s cubic-bezier(0.23, 1, 0.32, 0.9);\n}\n\n.resize-container.right,\n.resize-container.left {\n top: 0;\n height: 100%;\n width: 22px;\n cursor: ew-resize;\n}\n\n/* todo: don't hard code all these values/use vars */\n\n.resize-container.bottom,\n.resize-container.top {\n left: 0;\n width: 100%;\n height: 22px;\n cursor: ns-resize;\n}\n\n.resize-container.top {\n top: -7px;\n}\n.resize-container.bottom {\n bottom: -7px;\n}\n.resize-container.left {\n left: -7px;\n}\n.resize-container.right {\n right: -7px;\n}\n\n.resize-container.top-left,\n.resize-container.top-right,\n.resize-container.bottom-left,\n.resize-container.bottom-right {\n width: 26px;\n height: 26px;\n z-index: 15;\n}\n\n.resize-container.top-left {\n top: -5px;\n left: -5px;\n cursor: nwse-resize;\n}\n.resize-container.top-right {\n top: -5px;\n right: -5px;\n cursor: nesw-resize;\n}\n.resize-container.bottom-left {\n bottom: -5px;\n left: -5px;\n cursor: nesw-resize;\n}\n.resize-container.bottom-right {\n bottom: -5px;\n right: -5px;\n cursor: nwse-resize;\n}\n\n.resize-line.top,\n.resize-line.bottom {\n height: 18px;\n width: 100%;\n background-color: var(--color-background-200);\n}\n\n.resize-line.left,\n.resize-line.right {\n width: 18px;\n height: 100%;\n background-color: var(--color-background-200);\n}\n\n.resize-line.top {\n top: -7px;\n left: calc(-1 * var(--border-left, 2px));\n width: calc(100% + var(--border-horizontal, 4px));\n border-radius: var(--rounded-lg) var(--rounded-lg) 0 0;\n transform: translateY(18px);\n}\n\n.resize-line.bottom {\n bottom: -7px;\n left: calc(-1 * var(--border-left, 2px));\n width: calc(100% + var(--border-horizontal, 4px));\n border-radius: 0 0 var(--rounded-lg) var(--rounded-lg);\n transform: translateY(-18px);\n}\n\n.resize-line.left {\n top: calc(-1 * var(--border-top, 2px));\n left: -7px;\n height: calc(100% + var(--border-vertical, 4px));\n border-radius: var(--rounded-lg) 0 0 var(--rounded-lg);\n transform: translateX(18px);\n}\n\n.resize-line.right {\n top: calc(-1 * var(--border-top, 2px));\n right: -7px;\n height: calc(100% + var(--border-vertical, 4px));\n border-radius: 0 var(--rounded-lg) var(--rounded-lg) 0;\n transform: translateX(-18px);\n}\n\n.resize-container.right:hover ~ .resize-line.right,\n.resize-container.left:hover ~ .resize-line.left,\n.resize-line.right.dragging,\n.resize-line.left.dragging {\n transform: translateX(0);\n}\n\n.resize-container.bottom:hover ~ .resize-line.bottom,\n.resize-container.top:hover ~ .resize-line.top,\n.resize-line.bottom.dragging,\n.resize-line.top.dragging {\n transform: translateY(0);\n}\n\n/* make sure that we don't show multiple handles at once\n * we should only ever show the currently resizing handle\n * regardless of hover state \n */\n.resize-container.no-hover.right:hover ~ .resize-line.right {\n transform: translateX(-20px);\n}\n.resize-container.no-hover.left:hover ~ .resize-line.left {\n transform: translateX(20px);\n}\n.resize-container.no-hover.bottom:hover ~ .resize-line.bottom {\n transform: translateY(-20px);\n}\n.resize-container.no-hover.top:hover ~ .resize-line.top {\n transform: translateY(20px);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\"],names:[],mappings:\"AAAA;EACE,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;EACX,yBAAyB;EACzB,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;EACX,oBAAoB;EACpB,uEAAuE;EACvE,4DAA4D;EAC5D,uDAAuD;EACvD,sBAAsB;EACtB,uCAAuC;AACzC;;AAEA,mIAAmI;AACnI;EACE,4DAA4D;AAC9D;;AAEA;;EAEE,MAAM;EACN,YAAY;EACZ,WAAW;EACX,iBAAiB;AACnB;;AAEA,oDAAoD;;AAEpD;;EAEE,OAAO;EACP,WAAW;EACX,YAAY;EACZ,iBAAiB;AACnB;;AAEA;EACE,SAAS;AACX;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,WAAW;AACb;;AAEA;;;;EAIE,WAAW;EACX,YAAY;EACZ,WAAW;AACb;;AAEA;EACE,SAAS;EACT,UAAU;EACV,mBAAmB;AACrB;AACA;EACE,SAAS;EACT,WAAW;EACX,mBAAmB;AACrB;AACA;EACE,YAAY;EACZ,UAAU;EACV,mBAAmB;AACrB;AACA;EACE,YAAY;EACZ,WAAW;EACX,mBAAmB;AACrB;;AAEA;;EAEE,YAAY;EACZ,WAAW;EACX,6CAA6C;AAC/C;;AAEA;;EAEE,WAAW;EACX,YAAY;EACZ,6CAA6C;AAC/C;;AAEA;EACE,SAAS;EACT,wCAAwC;EACxC,iDAAiD;EACjD,sDAAsD;EACtD,2BAA2B;AAC7B;;AAEA;EACE,YAAY;EACZ,wCAAwC;EACxC,iDAAiD;EACjD,sDAAsD;EACtD,4BAA4B;AAC9B;;AAEA;EACE,sCAAsC;EACtC,UAAU;EACV,gDAAgD;EAChD,sDAAsD;EACtD,2BAA2B;AAC7B;;AAEA;EACE,sCAAsC;EACtC,WAAW;EACX,gDAAgD;EAChD,sDAAsD;EACtD,4BAA4B;AAC9B;;AAEA;;;;EAIE,wBAAwB;AAC1B;;AAEA;;;;EAIE,wBAAwB;AAC1B;;AAEA;;;EAGE;AACF;EACE,4BAA4B;AAC9B;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,2BAA2B;AAC7B\",sourcesContent:[\".resize-container {\\n position: absolute;\\n /* todo: better z index */\\n z-index: 10;\\n /* todo: is this needed */\\n background: transparent;\\n}\\n\\n.resize-line {\\n position: absolute;\\n /* todo smarter z index */\\n z-index: -1;\\n pointer-events: none;\\n /* a normal exit animation curve- at this point the exit animation is */\\n /* immediately responsive so we don't need a bespoke curve */\\n transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\\n /* todo: better var? */\\n border: 1px solid var(--color-gray-400);\\n}\\n\\n/* start really fast because we start super hidden initially behind the panel, otherwise feels like an unintended animation delay */\\n.resize-container:hover ~ .resize-line {\\n transition: transform 0.25s cubic-bezier(0.23, 1, 0.32, 0.9);\\n}\\n\\n.resize-container.right,\\n.resize-container.left {\\n top: 0;\\n height: 100%;\\n width: 22px;\\n cursor: ew-resize;\\n}\\n\\n/* todo: don't hard code all these values/use vars */\\n\\n.resize-container.bottom,\\n.resize-container.top {\\n left: 0;\\n width: 100%;\\n height: 22px;\\n cursor: ns-resize;\\n}\\n\\n.resize-container.top {\\n top: -7px;\\n}\\n.resize-container.bottom {\\n bottom: -7px;\\n}\\n.resize-container.left {\\n left: -7px;\\n}\\n.resize-container.right {\\n right: -7px;\\n}\\n\\n.resize-container.top-left,\\n.resize-container.top-right,\\n.resize-container.bottom-left,\\n.resize-container.bottom-right {\\n width: 26px;\\n height: 26px;\\n z-index: 15;\\n}\\n\\n.resize-container.top-left {\\n top: -5px;\\n left: -5px;\\n cursor: nwse-resize;\\n}\\n.resize-container.top-right {\\n top: -5px;\\n right: -5px;\\n cursor: nesw-resize;\\n}\\n.resize-container.bottom-left {\\n bottom: -5px;\\n left: -5px;\\n cursor: nesw-resize;\\n}\\n.resize-container.bottom-right {\\n bottom: -5px;\\n right: -5px;\\n cursor: nwse-resize;\\n}\\n\\n.resize-line.top,\\n.resize-line.bottom {\\n height: 18px;\\n width: 100%;\\n background-color: var(--color-background-200);\\n}\\n\\n.resize-line.left,\\n.resize-line.right {\\n width: 18px;\\n height: 100%;\\n background-color: var(--color-background-200);\\n}\\n\\n.resize-line.top {\\n top: -7px;\\n left: calc(-1 * var(--border-left, 2px));\\n width: calc(100% + var(--border-horizontal, 4px));\\n border-radius: var(--rounded-lg) var(--rounded-lg) 0 0;\\n transform: translateY(18px);\\n}\\n\\n.resize-line.bottom {\\n bottom: -7px;\\n left: calc(-1 * var(--border-left, 2px));\\n width: calc(100% + var(--border-horizontal, 4px));\\n border-radius: 0 0 var(--rounded-lg) var(--rounded-lg);\\n transform: translateY(-18px);\\n}\\n\\n.resize-line.left {\\n top: calc(-1 * var(--border-top, 2px));\\n left: -7px;\\n height: calc(100% + var(--border-vertical, 4px));\\n border-radius: var(--rounded-lg) 0 0 var(--rounded-lg);\\n transform: translateX(18px);\\n}\\n\\n.resize-line.right {\\n top: calc(-1 * var(--border-top, 2px));\\n right: -7px;\\n height: calc(100% + var(--border-vertical, 4px));\\n border-radius: 0 var(--rounded-lg) var(--rounded-lg) 0;\\n transform: translateX(-18px);\\n}\\n\\n.resize-container.right:hover ~ .resize-line.right,\\n.resize-container.left:hover ~ .resize-line.left,\\n.resize-line.right.dragging,\\n.resize-line.left.dragging {\\n transform: translateX(0);\\n}\\n\\n.resize-container.bottom:hover ~ .resize-line.bottom,\\n.resize-container.top:hover ~ .resize-line.top,\\n.resize-line.bottom.dragging,\\n.resize-line.top.dragging {\\n transform: translateY(0);\\n}\\n\\n/* make sure that we don't show multiple handles at once\\n * we should only ever show the currently resizing handle\\n * regardless of hover state \\n */\\n.resize-container.no-hover.right:hover ~ .resize-line.right {\\n transform: translateX(-20px);\\n}\\n.resize-container.no-hover.left:hover ~ .resize-line.left {\\n transform: translateX(20px);\\n}\\n.resize-container.no-hover.bottom:hover ~ .resize-line.bottom {\\n transform: translateY(-20px);\\n}\\n.resize-container.no-hover.top:hover ~ .resize-line.top {\\n transform: translateY(20px);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`.segment-boundary-trigger {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 6px;\n line-height: 16px;\n font-weight: 500;\n color: var(--color-gray-1000);\n border-radius: 999px;\n border: none;\n font-size: var(--size-12);\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.segment-boundary-trigger-text {\n font-size: var(--size-12);\n font-weight: 500;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.segment-boundary-trigger-text .plus-icon {\n transition: transform 0.25s ease;\n}\n\n.segment-boundary-trigger-text:hover .plus-icon {\n color: var(--color-gray-800);\n}\n\n.segment-boundary-trigger svg {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n vertical-align: middle;\n}\n\n.segment-boundary-trigger:hover svg {\n color: var(--color-gray-700);\n}\n\n.segment-boundary-trigger[disabled] svg,\n.segment-boundary-trigger[disabled]:hover svg {\n color: var(--color-gray-400);\n cursor: not-allowed;\n}\n\n.segment-boundary-dropdown {\n padding: 8px;\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-400);\n border-radius: 16px;\n min-width: 120px;\n user-select: none;\n cursor: default;\n box-shadow: 0px 4px 8px -4px color-mix(in srgb, var(--color-gray-900) 4%, transparent);\n}\n\n.segment-boundary-dropdown-positioner {\n z-index: var(--top-z-index);\n}\n\n.segment-boundary-dropdown-item {\n display: flex;\n align-items: center;\n padding: 8px;\n line-height: 20px;\n font-size: 14px;\n border-radius: 6px;\n color: var(--color-gray-1000);\n cursor: pointer;\n min-width: 220px;\n border: none;\n background: none;\n width: 100%;\n}\n\n.segment-boundary-dropdown-item[data-disabled] {\n color: var(--color-gray-400);\n cursor: not-allowed;\n}\n\n.segment-boundary-dropdown-item svg {\n margin-right: 12px;\n color: currentColor;\n}\n\n.segment-boundary-dropdown-item:hover {\n background: var(--color-gray-200);\n}\n\n.segment-boundary-dropdown-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n\n.segment-boundary-dropdown-item:last-child {\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n\n.segment-boundary-group-label {\n padding: 8px;\n font-size: 13px;\n line-height: 16px;\n font-weight: 400;\n color: var(--color-gray-900);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\"],names:[],mappings:\"AAAA;EACE,aAAa;EACb,mBAAmB;EACnB,QAAQ;EACR,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;EAChB,6BAA6B;EAC7B,oBAAoB;EACpB,YAAY;EACZ,yBAAyB;EACzB,eAAe;EACf,uCAAuC;AACzC;;AAEA;EACE,yBAAyB;EACzB,gBAAgB;EAChB,iBAAiB;EACjB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;EACd,sBAAsB;AACxB;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;;EAEE,4BAA4B;EAC5B,mBAAmB;AACrB;;AAEA;EACE,YAAY;EACZ,uCAAuC;EACvC,uCAAuC;EACvC,mBAAmB;EACnB,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,sFAAsF;AACxF;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,iBAAiB;EACjB,eAAe;EACf,kBAAkB;EAClB,6BAA6B;EAC7B,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,WAAW;AACb;;AAEA;EACE,4BAA4B;EAC5B,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,8BAA8B;EAC9B,+BAA+B;AACjC;;AAEA;EACE,YAAY;EACZ,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,4BAA4B;AAC9B\",sourcesContent:[\".segment-boundary-trigger {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n padding: 4px 6px;\\n line-height: 16px;\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n border-radius: 999px;\\n border: none;\\n font-size: var(--size-12);\\n cursor: pointer;\\n transition: background-color 0.15s ease;\\n}\\n\\n.segment-boundary-trigger-text {\\n font-size: var(--size-12);\\n font-weight: 500;\\n user-select: none;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.segment-boundary-trigger-text .plus-icon {\\n transition: transform 0.25s ease;\\n}\\n\\n.segment-boundary-trigger-text:hover .plus-icon {\\n color: var(--color-gray-800);\\n}\\n\\n.segment-boundary-trigger svg {\\n width: 14px;\\n height: 14px;\\n flex-shrink: 0;\\n vertical-align: middle;\\n}\\n\\n.segment-boundary-trigger:hover svg {\\n color: var(--color-gray-700);\\n}\\n\\n.segment-boundary-trigger[disabled] svg,\\n.segment-boundary-trigger[disabled]:hover svg {\\n color: var(--color-gray-400);\\n cursor: not-allowed;\\n}\\n\\n.segment-boundary-dropdown {\\n padding: 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: 16px;\\n min-width: 120px;\\n user-select: none;\\n cursor: default;\\n box-shadow: 0px 4px 8px -4px color-mix(in srgb, var(--color-gray-900) 4%, transparent);\\n}\\n\\n.segment-boundary-dropdown-positioner {\\n z-index: var(--top-z-index);\\n}\\n\\n.segment-boundary-dropdown-item {\\n display: flex;\\n align-items: center;\\n padding: 8px;\\n line-height: 20px;\\n font-size: 14px;\\n border-radius: 6px;\\n color: var(--color-gray-1000);\\n cursor: pointer;\\n min-width: 220px;\\n border: none;\\n background: none;\\n width: 100%;\\n}\\n\\n.segment-boundary-dropdown-item[data-disabled] {\\n color: var(--color-gray-400);\\n cursor: not-allowed;\\n}\\n\\n.segment-boundary-dropdown-item svg {\\n margin-right: 12px;\\n color: currentColor;\\n}\\n\\n.segment-boundary-dropdown-item:hover {\\n background: var(--color-gray-200);\\n}\\n\\n.segment-boundary-dropdown-item:first-child {\\n border-top-left-radius: 4px;\\n border-top-right-radius: 4px;\\n}\\n\\n.segment-boundary-dropdown-item:last-child {\\n border-bottom-left-radius: 4px;\\n border-bottom-right-radius: 4px;\\n}\\n\\n.segment-boundary-group-label {\\n padding: 8px;\\n font-size: 13px;\\n line-height: 16px;\\n font-weight: 400;\\n color: var(--color-gray-900);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`.segment-explorer-content {\n font-size: var(--size-14);\n padding: 0 8px;\n width: 100%;\n height: 100%;\n}\n\n.segment-explorer-page-route-bar {\n display: flex;\n align-items: center;\n padding: 14px 16px;\n background-color: var(--color-background-200);\n gap: 12px;\n}\n\n.segment-explorer-page-route-bar-path {\n font-size: var(--size-14);\n font-weight: 500;\n color: var(--color-gray-1000);\n font-family: var(--font-mono);\n white-space: nowrap;\n line-height: 20px;\n}\n\n.segment-explorer-item {\n margin: 4px 0;\n border-radius: 6px;\n}\n\n.segment-explorer-item:nth-child(even) {\n background-color: var(--color-background-200);\n}\n.segment-explorer-item-row {\n display: flex;\n flex-direction: column;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-right: 4px;\n}\n.segment-explorer-item-row-main {\n display: flex;\n align-items: center;\n white-space: pre;\n cursor: default;\n color: var(--color-gray-1000);\n}\n\n.segment-explorer-children--intended {\n padding-left: 16px;\n}\n\n.segment-explorer-filename {\n display: inline-flex;\n width: 100%;\n align-items: center;\n}\n\n.segment-explorer-filename select {\n margin-left: auto;\n}\n.segment-explorer-filename--path {\n margin-right: 8px;\n}\n.segment-explorer-filename--path small {\n display: inline-block;\n width: 0;\n opacity: 0;\n}\n.segment-explorer-filename--name {\n color: var(--color-gray-800);\n}\n\n.segment-explorer-files {\n display: inline-flex;\n gap: 8px;\n margin-left: auto;\n}\n\n.segment-explorer-files + .segment-boundary-trigger {\n margin-left: 8px;\n}\n\n.segment-explorer-file-label {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 6px;\n height: 20px;\n border-radius: 16px;\n line-height: 16px;\n font-size: var(--size-12);\n font-weight: 500;\n user-select: none;\n cursor: pointer;\n background-color: var(--color-gray-300);\n color: var(--color-gray-1000);\n}\n.segment-explorer-file-label-text {\n display: inline-flex;\n align-items: center;\n}\n\n.segment-explorer-file-label--overridden {\n background-color: var(--color-amber-300);\n color: var(--color-amber-900);\n}\n\n.segment-explorer-file-label .code-icon {\n opacity: 0;\n margin-left: 0;\n width: 0;\n transition: all 0.15s ease-in-out;\n}\n.segment-explorer-file-label:hover .code-icon {\n opacity: 1;\n width: 12px;\n margin-left: 4px;\n}\n\n.segment-explorer-file-label:hover {\n filter: brightness(0.95);\n}\n\n.segment-explorer-file-label--builtin {\n background-color: transparent;\n color: var(--color-gray-900);\n border: 1px dashed var(--color-gray-500);\n height: 24px;\n cursor: default;\n}\n.segment-explorer-file-label--builtin svg {\n margin-left: 4px;\n margin-right: -4px;\n}\n\n/* Footer styles */\n.segment-explorer-footer {\n padding: 8px;\n border-top: 1px solid var(--color-gray-400);\n user-select: none;\n}\n\n.segment-explorer-footer-button {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n width: 100%;\n padding: 6px;\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-400);\n border-radius: 6px;\n color: var(--color-gray-1000);\n font-size: var(--size-14);\n font-weight: 500;\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.segment-explorer-footer-button:hover:not(:disabled) {\n background: var(--color-gray-200);\n}\n\n.segment-explorer-footer-button--disabled {\n cursor: not-allowed;\n}\n\n.segment-explorer-footer-text {\n text-align: center;\n}\n\n.segment-explorer-footer-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: var(--color-amber-300);\n color: var(--color-amber-900);\n border-radius: 10px;\n font-size: var(--size-12);\n font-weight: 600;\n line-height: 1;\n}\n\n.segment-explorer-file-label-tooltip--sm {\n white-space: nowrap;\n}\n\n.segment-explorer-file-label-tooltip--lg {\n min-width: 200px;\n}\n\n.segment-explorer-suggestions {\n display: inline-flex;\n gap: 8px;\n}\n\n.segment-explorer-suggestions-tooltip {\n width: 200px;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\"],names:[],mappings:\"AAAA;EACE,yBAAyB;EACzB,cAAc;EACd,WAAW;EACX,YAAY;AACd;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,6CAA6C;EAC7C,SAAS;AACX;;AAEA;EACE,yBAAyB;EACzB,gBAAgB;EAChB,6BAA6B;EAC7B,6BAA6B;EAC7B,mBAAmB;EACnB,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,kBAAkB;AACpB;;AAEA;EACE,6CAA6C;AAC/C;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,iBAAiB;EACjB,oBAAoB;EACpB,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,gBAAgB;EAChB,eAAe;EACf,6BAA6B;AAC/B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,oBAAoB;EACpB,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,qBAAqB;EACrB,QAAQ;EACR,UAAU;AACZ;AACA;EACE,4BAA4B;AAC9B;;AAEA;EACE,oBAAoB;EACpB,QAAQ;EACR,iBAAiB;AACnB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,cAAc;EACd,YAAY;EACZ,mBAAmB;EACnB,iBAAiB;EACjB,yBAAyB;EACzB,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,uCAAuC;EACvC,6BAA6B;AAC/B;AACA;EACE,oBAAoB;EACpB,mBAAmB;AACrB;;AAEA;EACE,wCAAwC;EACxC,6BAA6B;AAC/B;;AAEA;EACE,UAAU;EACV,cAAc;EACd,QAAQ;EACR,iCAAiC;AACnC;AACA;EACE,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,6BAA6B;EAC7B,4BAA4B;EAC5B,wCAAwC;EACxC,YAAY;EACZ,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,kBAAkB;AACpB;;AAEA,kBAAkB;AAClB;EACE,YAAY;EACZ,2CAA2C;EAC3C,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,QAAQ;EACR,WAAW;EACX,YAAY;EACZ,uCAAuC;EACvC,uCAAuC;EACvC,kBAAkB;EAClB,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf,uCAAuC;AACzC;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,YAAY;EACZ,cAAc;EACd,kCAAkC;EAClC,6BAA6B;EAC7B,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,oBAAoB;EACpB,QAAQ;AACV;;AAEA;EACE,YAAY;AACd\",sourcesContent:[\".segment-explorer-content {\\n font-size: var(--size-14);\\n padding: 0 8px;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.segment-explorer-page-route-bar {\\n display: flex;\\n align-items: center;\\n padding: 14px 16px;\\n background-color: var(--color-background-200);\\n gap: 12px;\\n}\\n\\n.segment-explorer-page-route-bar-path {\\n font-size: var(--size-14);\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n font-family: var(--font-mono);\\n white-space: nowrap;\\n line-height: 20px;\\n}\\n\\n.segment-explorer-item {\\n margin: 4px 0;\\n border-radius: 6px;\\n}\\n\\n.segment-explorer-item:nth-child(even) {\\n background-color: var(--color-background-200);\\n}\\n.segment-explorer-item-row {\\n display: flex;\\n flex-direction: column;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n padding-right: 4px;\\n}\\n.segment-explorer-item-row-main {\\n display: flex;\\n align-items: center;\\n white-space: pre;\\n cursor: default;\\n color: var(--color-gray-1000);\\n}\\n\\n.segment-explorer-children--intended {\\n padding-left: 16px;\\n}\\n\\n.segment-explorer-filename {\\n display: inline-flex;\\n width: 100%;\\n align-items: center;\\n}\\n\\n.segment-explorer-filename select {\\n margin-left: auto;\\n}\\n.segment-explorer-filename--path {\\n margin-right: 8px;\\n}\\n.segment-explorer-filename--path small {\\n display: inline-block;\\n width: 0;\\n opacity: 0;\\n}\\n.segment-explorer-filename--name {\\n color: var(--color-gray-800);\\n}\\n\\n.segment-explorer-files {\\n display: inline-flex;\\n gap: 8px;\\n margin-left: auto;\\n}\\n\\n.segment-explorer-files + .segment-boundary-trigger {\\n margin-left: 8px;\\n}\\n\\n.segment-explorer-file-label {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n padding: 0 6px;\\n height: 20px;\\n border-radius: 16px;\\n line-height: 16px;\\n font-size: var(--size-12);\\n font-weight: 500;\\n user-select: none;\\n cursor: pointer;\\n background-color: var(--color-gray-300);\\n color: var(--color-gray-1000);\\n}\\n.segment-explorer-file-label-text {\\n display: inline-flex;\\n align-items: center;\\n}\\n\\n.segment-explorer-file-label--overridden {\\n background-color: var(--color-amber-300);\\n color: var(--color-amber-900);\\n}\\n\\n.segment-explorer-file-label .code-icon {\\n opacity: 0;\\n margin-left: 0;\\n width: 0;\\n transition: all 0.15s ease-in-out;\\n}\\n.segment-explorer-file-label:hover .code-icon {\\n opacity: 1;\\n width: 12px;\\n margin-left: 4px;\\n}\\n\\n.segment-explorer-file-label:hover {\\n filter: brightness(0.95);\\n}\\n\\n.segment-explorer-file-label--builtin {\\n background-color: transparent;\\n color: var(--color-gray-900);\\n border: 1px dashed var(--color-gray-500);\\n height: 24px;\\n cursor: default;\\n}\\n.segment-explorer-file-label--builtin svg {\\n margin-left: 4px;\\n margin-right: -4px;\\n}\\n\\n/* Footer styles */\\n.segment-explorer-footer {\\n padding: 8px;\\n border-top: 1px solid var(--color-gray-400);\\n user-select: none;\\n}\\n\\n.segment-explorer-footer-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n width: 100%;\\n padding: 6px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: 6px;\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n cursor: pointer;\\n transition: background-color 0.15s ease;\\n}\\n\\n.segment-explorer-footer-button:hover:not(:disabled) {\\n background: var(--color-gray-200);\\n}\\n\\n.segment-explorer-footer-button--disabled {\\n cursor: not-allowed;\\n}\\n\\n.segment-explorer-footer-text {\\n text-align: center;\\n}\\n\\n.segment-explorer-footer-badge {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n min-width: 20px;\\n height: 20px;\\n padding: 0 6px;\\n background: var(--color-amber-300);\\n color: var(--color-amber-900);\\n border-radius: 10px;\\n font-size: var(--size-12);\\n font-weight: 600;\\n line-height: 1;\\n}\\n\\n.segment-explorer-file-label-tooltip--sm {\\n white-space: nowrap;\\n}\\n\\n.segment-explorer-file-label-tooltip--lg {\\n min-width: 200px;\\n}\\n\\n.segment-explorer-suggestions {\\n display: inline-flex;\\n gap: 8px;\\n}\\n\\n.segment-explorer-suggestions-tooltip {\\n width: 200px;\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/toast/style.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`.nextjs-toast {\n position: fixed;\n z-index: var(--top-z-index);\n max-width: 420px;\n box-shadow: 0px 16px 32px rgba(0, 0, 0, 0.25);\n}\n\n.nextjs-toast-errors-parent {\n padding: 16px;\n border-radius: var(--rounded-4xl);\n font-weight: 500;\n color: var(--color-ansi-bright-white);\n background-color: var(--color-ansi-red);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/toast/style.css\"],names:[],mappings:\"AAAA;EACE,eAAe;EACf,2BAA2B;EAC3B,gBAAgB;EAChB,6CAA6C;AAC/C;;AAEA;EACE,aAAa;EACb,iCAAiC;EACjC,gBAAgB;EAChB,qCAAqC;EACrC,uCAAuC;AACzC\",sourcesContent:[\".nextjs-toast {\\n position: fixed;\\n z-index: var(--top-z-index);\\n max-width: 420px;\\n box-shadow: 0px 16px 32px rgba(0, 0, 0, 0.25);\\n}\\n\\n.nextjs-toast-errors-parent {\\n padding: 16px;\\n border-radius: var(--rounded-4xl);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/tooltip/tooltip.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`.tooltip-wrapper {\n position: relative;\n display: inline-block;\n line-height: 1;\n}\n\n.tooltip {\n position: relative;\n padding: 6px 12px;\n border-radius: 8px;\n font-size: 14px;\n line-height: 1.4;\n pointer-events: none;\n color: var(--color-gray-100);\n background-color: var(--color-gray-1000);\n}\n\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: var(--arrow-size, 6px);\n border-color: transparent;\n}\n\n.tooltip-arrow--top {\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px) 0\n var(--arrow-size, 6px);\n border-top-color: var(--color-gray-1000);\n bottom: 0;\n transform: translateY(100%);\n}\n\n.tooltip-arrow--bottom {\n border-width: 0 var(--arrow-size, 6px) var(--arrow-size, 6px)\n var(--arrow-size, 6px);\n border-bottom-color: var(--color-gray-1000);\n top: 0;\n transform: translateY(-100%);\n}\n\n.tooltip-arrow--left {\n border-width: var(--arrow-size, 6px) 0 var(--arrow-size, 6px)\n var(--arrow-size, 6px);\n border-left-color: var(--color-gray-1000);\n right: 0;\n transform: translateX(100%);\n}\n\n.tooltip-arrow--right {\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px)\n var(--arrow-size, 6px) 0;\n border-right-color: var(--color-gray-1000);\n left: 0;\n transform: translateX(-100%);\n}\n\n.tooltip-positioner {\n z-index: var(--top-z-index);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/tooltip/tooltip.css\"],names:[],mappings:\"AAAA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,4BAA4B;EAC5B,wCAAwC;AAC1C;;AAEA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,mBAAmB;EACnB,oCAAoC;EACpC,yBAAyB;AAC3B;;AAEA;EACE;0BACwB;EACxB,wCAAwC;EACxC,SAAS;EACT,2BAA2B;AAC7B;;AAEA;EACE;0BACwB;EACxB,2CAA2C;EAC3C,MAAM;EACN,4BAA4B;AAC9B;;AAEA;EACE;0BACwB;EACxB,yCAAyC;EACzC,QAAQ;EACR,2BAA2B;AAC7B;;AAEA;EACE;4BAC0B;EAC1B,0CAA0C;EAC1C,OAAO;EACP,4BAA4B;AAC9B;;AAEA;EACE,2BAA2B;AAC7B\",sourcesContent:[\".tooltip-wrapper {\\n position: relative;\\n display: inline-block;\\n line-height: 1;\\n}\\n\\n.tooltip {\\n position: relative;\\n padding: 6px 12px;\\n border-radius: 8px;\\n font-size: 14px;\\n line-height: 1.4;\\n pointer-events: none;\\n color: var(--color-gray-100);\\n background-color: var(--color-gray-1000);\\n}\\n\\n.tooltip-arrow {\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: var(--arrow-size, 6px);\\n border-color: transparent;\\n}\\n\\n.tooltip-arrow--top {\\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px) 0\\n var(--arrow-size, 6px);\\n border-top-color: var(--color-gray-1000);\\n bottom: 0;\\n transform: translateY(100%);\\n}\\n\\n.tooltip-arrow--bottom {\\n border-width: 0 var(--arrow-size, 6px) var(--arrow-size, 6px)\\n var(--arrow-size, 6px);\\n border-bottom-color: var(--color-gray-1000);\\n top: 0;\\n transform: translateY(-100%);\\n}\\n\\n.tooltip-arrow--left {\\n border-width: var(--arrow-size, 6px) 0 var(--arrow-size, 6px)\\n var(--arrow-size, 6px);\\n border-left-color: var(--color-gray-1000);\\n right: 0;\\n transform: translateX(100%);\\n}\\n\\n.tooltip-arrow--right {\\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px)\\n var(--arrow-size, 6px) 0;\\n border-right-color: var(--color-gray-1000);\\n left: 0;\\n transform: translateX(-100%);\\n}\\n\\n.tooltip-positioner {\\n z-index: var(--top-z-index);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/global.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>f});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a),l=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/normalize.css\"),s=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/default-theme.css\"),c=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/dark-theme.css\"),u=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/colors.css\"),d=i()(o());d.i(l.Z),d.i(s.Z),d.i(c.Z),d.i(u.Z),d.push([e.id,`/* devtool global css variables */\n:host {\n /* variables */\n --top-z-index: 2147483647;\n}\n\n/* global styles */\n* {\n -webkit-font-smoothing: antialiased;\n}\n\n/* global reset for draggable content scrollbar styles */\n[data-nextjs-scrollable-content],\n[data-nextjs-scrollable-content] * {\n &::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n border-radius: 0 0 1rem 1rem;\n margin-bottom: 1rem;\n }\n\n &::-webkit-scrollbar-button {\n display: none;\n }\n\n &::-webkit-scrollbar-track {\n border-radius: 0 0 1rem 1rem;\n background-color: var(--color-background-100);\n }\n\n &::-webkit-scrollbar-thumb {\n border-radius: 1rem;\n background-color: var(--color-gray-500);\n }\n}\n\n/* Place overflow: hidden on this so we can break out from [data-nextjs-dialog] */\n[data-nextjs-scrollable-content] {\n overflow: hidden;\n border-radius: inherit;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/global.css\"],names:[],mappings:\"AAKA,iCAAiC;AACjC;EACE,cAAc;EACd,yBAAyB;AAC3B;;AAEA,kBAAkB;AAClB;EACE,mCAAmC;AACrC;;AAEA,wDAAwD;AACxD;;EAEE;IACE,UAAU;IACV,WAAW;IACX,4BAA4B;IAC5B,mBAAmB;EACrB;;EAEA;IACE,aAAa;EACf;;EAEA;IACE,4BAA4B;IAC5B,6CAA6C;EAC/C;;EAEA;IACE,mBAAmB;IACnB,uCAAuC;EACzC;AACF;;AAEA,iFAAiF;AACjF;EACE,gBAAgB;EAChB,sBAAsB;AACxB\",sourcesContent:[\"@import './normalize.css';\\n@import './styles/default-theme.css';\\n@import './styles/dark-theme.css';\\n@import './styles/colors.css';\\n\\n/* devtool global css variables */\\n:host {\\n /* variables */\\n --top-z-index: 2147483647;\\n}\\n\\n/* global styles */\\n* {\\n -webkit-font-smoothing: antialiased;\\n}\\n\\n/* global reset for draggable content scrollbar styles */\\n[data-nextjs-scrollable-content],\\n[data-nextjs-scrollable-content] * {\\n &::-webkit-scrollbar {\\n width: 6px;\\n height: 6px;\\n border-radius: 0 0 1rem 1rem;\\n margin-bottom: 1rem;\\n }\\n\\n &::-webkit-scrollbar-button {\\n display: none;\\n }\\n\\n &::-webkit-scrollbar-track {\\n border-radius: 0 0 1rem 1rem;\\n background-color: var(--color-background-100);\\n }\\n\\n &::-webkit-scrollbar-thumb {\\n border-radius: 1rem;\\n background-color: var(--color-gray-500);\\n }\\n}\\n\\n/* Place overflow: hidden on this so we can break out from [data-nextjs-dialog] */\\n[data-nextjs-scrollable-content] {\\n overflow: hidden;\\n border-radius: inherit;\\n}\\n\"],sourceRoot:\"\"}]);let f=d},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/menu/panel-router.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`/* Panel content padding styles */\n.panel-content {\n padding: 16px;\n padding-top: 8px;\n overflow: hidden;\n}\n\n/* User preferences wrapper styles */\n.user-preferences-wrapper {\n padding: 20px;\n padding-top: 8px;\n overflow: hidden;\n}\n\n/* Panel route base styles */\n.panel-route {\n opacity: var(--panel-opacity);\n transition: var(--panel-transition);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/menu/panel-router.css\"],names:[],mappings:\"AAAA,iCAAiC;AACjC;EACE,aAAa;EACb,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA,oCAAoC;AACpC;EACE,aAAa;EACb,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA,4BAA4B;AAC5B;EACE,6BAA6B;EAC7B,mCAAmC;AACrC\",sourcesContent:[\"/* Panel content padding styles */\\n.panel-content {\\n padding: 16px;\\n padding-top: 8px;\\n overflow: hidden;\\n}\\n\\n/* User preferences wrapper styles */\\n.user-preferences-wrapper {\\n padding: 20px;\\n padding-top: 8px;\\n overflow: hidden;\\n}\\n\\n/* Panel route base styles */\\n.panel-route {\\n opacity: var(--panel-opacity);\\n transition: var(--panel-transition);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/normalize.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`: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\narticle,\naside,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection {\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, 'Apple Color Emoji',\n 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n font-size: 16px;\n font-weight: 400;\n line-height: 1.5;\n color: var(--color-font);\n text-align: left;\n}\n\n:host:not(button) {\n background-color: #fff;\n}\n\n[tabindex='-1']:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 8px;\n}\n\np {\n margin-top: 0;\n margin-bottom: 16px;\n}\n\nabbr[title],\nabbr[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\naddress {\n margin-bottom: 16px;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 16px;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 8px;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 16px;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',\n 'Courier New', monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 16px;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 16px;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 12px;\n padding-bottom: 12px;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 8px;\n}\n\nbutton {\n border-radius: 0;\n border: 0;\n padding: 0;\n margin: 0;\n background: none;\n appearance: none;\n -webkit-appearance: none;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: none;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type='button']:not(:disabled),\n[type='reset']:not(:disabled),\n[type='submit']:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-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\ninput[type='radio'],\ninput[type='checkbox'] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type='date'],\ninput[type='time'],\ninput[type='datetime-local'],\ninput[type='month'] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\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\nprogress {\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\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/normalize.css\"],names:[],mappings:\"AAAA;EACE,YAAY;;EAEZ,iDAAiD;EACjD,cAAc;AAChB;;AAEA;;;;;;EAME;AACF;;;EAGE,sBAAsB;AACxB;;AAEA;EACE,uBAAuB;EACvB,iBAAiB;EACjB,8BAA8B;EAC9B,6CAA6C;AAC/C;;AAEA;;;;;;;;;;EAUE,cAAc;AAChB;;AAEA;EACE,SAAS;EACT;;2DAEyD;EACzD,eAAe;EACf,gBAAgB;EAChB,gBAAgB;EAChB,wBAAwB;EACxB,gBAAgB;AAClB;;AAEA;EACE,sBAAsB;AACxB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,uBAAuB;EACvB,SAAS;EACT,iBAAiB;AACnB;;AAEA;;;;;;EAME,aAAa;EACb,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,mBAAmB;AACrB;;AAEA;;EAEE,0BAA0B;EAC1B,yCAAyC;EACzC,iCAAiC;EACjC,YAAY;EACZ,gBAAgB;EAChB,sCAAsC;EACtC,8BAA8B;AAChC;;AAEA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB;AACtB;;AAEA;;;EAGE,aAAa;EACb,mBAAmB;AACrB;;AAEA;;;;EAIE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;EAClB,cAAc;AAChB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;;EAEE,mBAAmB;AACrB;;AAEA;EACE,cAAc;AAChB;;AAEA;;EAEE,kBAAkB;EAClB,cAAc;EACd,cAAc;EACd,wBAAwB;AAC1B;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,cAAc;EACd,qBAAqB;EACrB,6BAA6B;AAC/B;;AAEA;EACE,cAAc;EACd,0BAA0B;AAC5B;;AAEA;EACE,cAAc;EACd,qBAAqB;AACvB;;AAEA;EACE,cAAc;EACd,qBAAqB;AACvB;;AAEA;;;;EAIE;4BAC0B;EAC1B,cAAc;AAChB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,cAAc;AAChB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,sBAAsB;EACtB,kBAAkB;AACpB;;AAEA;EACE,gBAAgB;EAChB,sBAAsB;AACxB;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,iBAAiB;EACjB,oBAAoB;EACpB,cAAc;EACd,gBAAgB;EAChB,oBAAoB;AACtB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;EACrB,kBAAkB;AACpB;;AAEA;EACE,gBAAgB;EAChB,SAAS;EACT,UAAU;EACV,SAAS;EACT,gBAAgB;EAChB,gBAAgB;EAChB,wBAAwB;AAC1B;;AAEA;EACE,mBAAmB;EACnB,0CAA0C;AAC5C;;AAEA;EACE,aAAa;AACf;;AAEA;;;;;EAKE,SAAS;EACT,oBAAoB;EACpB,kBAAkB;EAClB,oBAAoB;AACtB;;AAEA;;EAEE,iBAAiB;AACnB;;AAEA;;EAEE,oBAAoB;AACtB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;;;;EAIE,0BAA0B;AAC5B;;AAEA;;;;EAIE,eAAe;AACjB;;AAEA;;;;EAIE,UAAU;EACV,kBAAkB;AACpB;;AAEA;;EAEE,sBAAsB;EACtB,UAAU;AACZ;;AAEA;;;;EAIE,2BAA2B;AAC7B;;AAEA;EACE,cAAc;EACd,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,UAAU;EACV,SAAS;EACT,SAAS;AACX;;AAEA;EACE,cAAc;EACd,WAAW;EACX,eAAe;EACf,UAAU;EACV,kBAAkB;EAClB,eAAe;EACf,oBAAoB;EACpB,cAAc;EACd,mBAAmB;AACrB;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;;EAEE,YAAY;AACd;;AAEA;EACE,oBAAoB;EACpB,wBAAwB;AAC1B;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,aAAa;EACb,0BAA0B;AAC5B;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,kBAAkB;EAClB,eAAe;AACjB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,wBAAwB;AAC1B\",sourcesContent:[\":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\\narticle,\\naside,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nnav,\\nsection {\\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, 'Apple Color Emoji',\\n 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 1.5;\\n color: var(--color-font);\\n text-align: left;\\n}\\n\\n:host:not(button) {\\n background-color: #fff;\\n}\\n\\n[tabindex='-1']:focus:not(:focus-visible) {\\n outline: 0 !important;\\n}\\n\\nhr {\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible;\\n}\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n margin-top: 0;\\n margin-bottom: 8px;\\n}\\n\\np {\\n margin-top: 0;\\n margin-bottom: 16px;\\n}\\n\\nabbr[title],\\nabbr[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\\naddress {\\n margin-bottom: 16px;\\n font-style: normal;\\n line-height: inherit;\\n}\\n\\nol,\\nul,\\ndl {\\n margin-top: 0;\\n margin-bottom: 16px;\\n}\\n\\nol ol,\\nul ul,\\nol ul,\\nul ol {\\n margin-bottom: 0;\\n}\\n\\ndt {\\n font-weight: 700;\\n}\\n\\ndd {\\n margin-bottom: 8px;\\n margin-left: 0;\\n}\\n\\nblockquote {\\n margin: 0 0 16px;\\n}\\n\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\n\\nsmall {\\n font-size: 80%;\\n}\\n\\nsub,\\nsup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline;\\n}\\n\\nsub {\\n bottom: -0.25em;\\n}\\n\\nsup {\\n top: -0.5em;\\n}\\n\\na {\\n color: #007bff;\\n text-decoration: none;\\n background-color: transparent;\\n}\\n\\na:hover {\\n color: #0056b3;\\n text-decoration: underline;\\n}\\n\\na:not([href]) {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\na:not([href]):hover {\\n color: inherit;\\n text-decoration: none;\\n}\\n\\npre,\\ncode,\\nkbd,\\nsamp {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',\\n 'Courier New', monospace;\\n font-size: 1em;\\n}\\n\\npre {\\n margin-top: 0;\\n margin-bottom: 16px;\\n overflow: auto;\\n}\\n\\nfigure {\\n margin: 0 0 16px;\\n}\\n\\nimg {\\n vertical-align: middle;\\n border-style: none;\\n}\\n\\nsvg {\\n overflow: hidden;\\n vertical-align: middle;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n}\\n\\ncaption {\\n padding-top: 12px;\\n padding-bottom: 12px;\\n color: #6c757d;\\n text-align: left;\\n caption-side: bottom;\\n}\\n\\nth {\\n text-align: inherit;\\n}\\n\\nlabel {\\n display: inline-block;\\n margin-bottom: 8px;\\n}\\n\\nbutton {\\n border-radius: 0;\\n border: 0;\\n padding: 0;\\n margin: 0;\\n background: none;\\n appearance: none;\\n -webkit-appearance: none;\\n}\\n\\nbutton:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n}\\n\\nbutton:focus:not(:focus-visible) {\\n outline: none;\\n}\\n\\ninput,\\nbutton,\\nselect,\\noptgroup,\\ntextarea {\\n margin: 0;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit;\\n}\\n\\nbutton,\\ninput {\\n overflow: visible;\\n}\\n\\nbutton,\\nselect {\\n text-transform: none;\\n}\\n\\nselect {\\n word-wrap: normal;\\n}\\n\\nbutton,\\n[type='button'],\\n[type='reset'],\\n[type='submit'] {\\n -webkit-appearance: button;\\n}\\n\\nbutton:not(:disabled),\\n[type='button']:not(:disabled),\\n[type='reset']:not(:disabled),\\n[type='submit']:not(:disabled) {\\n cursor: pointer;\\n}\\n\\nbutton::-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\\ninput[type='radio'],\\ninput[type='checkbox'] {\\n box-sizing: border-box;\\n padding: 0;\\n}\\n\\ninput[type='date'],\\ninput[type='time'],\\ninput[type='datetime-local'],\\ninput[type='month'] {\\n -webkit-appearance: listbox;\\n}\\n\\ntextarea {\\n overflow: auto;\\n resize: vertical;\\n}\\n\\nfieldset {\\n min-width: 0;\\n padding: 0;\\n margin: 0;\\n border: 0;\\n}\\n\\nlegend {\\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\\nprogress {\\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\\noutput {\\n display: inline-block;\\n}\\n\\nsummary {\\n display: list-item;\\n cursor: pointer;\\n}\\n\\ntemplate {\\n display: none;\\n}\\n\\n[hidden] {\\n display: none !important;\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/panel/dynamic-panel.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`/* Panel container base styles with dynamic positioning and sizing */\n.dynamic-panel-container {\n position: fixed;\n z-index: 2147483646;\n outline: none;\n top: var(--panel-top, auto);\n bottom: var(--panel-bottom, auto);\n left: var(--panel-left, auto);\n right: var(--panel-right, auto);\n width: var(--panel-width);\n height: var(--panel-height);\n min-width: var(--panel-min-width);\n min-height: var(--panel-min-height);\n max-width: var(--panel-max-width);\n max-height: var(--panel-max-height);\n}\n\n/* Panel content container styles */\n.panel-content-container {\n position: relative;\n width: 100%;\n height: 100%;\n border: 1px solid var(--color-gray-alpha-400);\n border-radius: var(--rounded-xl);\n background: var(--color-background-100);\n display: flex;\n flex-direction: column;\n}\n\n/* Draggable content area styles */\n.draggable-content {\n flex: 1;\n overflow: auto;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/panel/dynamic-panel.css\"],names:[],mappings:\"AAAA,oEAAoE;AACpE;EACE,eAAe;EACf,mBAAmB;EACnB,aAAa;EACb,2BAA2B;EAC3B,iCAAiC;EACjC,6BAA6B;EAC7B,+BAA+B;EAC/B,yBAAyB;EACzB,2BAA2B;EAC3B,iCAAiC;EACjC,mCAAmC;EACnC,iCAAiC;EACjC,mCAAmC;AACrC;;AAEA,mCAAmC;AACnC;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,6CAA6C;EAC7C,gCAAgC;EAChC,uCAAuC;EACvC,aAAa;EACb,sBAAsB;AACxB;;AAEA,kCAAkC;AAClC;EACE,OAAO;EACP,cAAc;AAChB\",sourcesContent:[\"/* Panel container base styles with dynamic positioning and sizing */\\n.dynamic-panel-container {\\n position: fixed;\\n z-index: 2147483646;\\n outline: none;\\n top: var(--panel-top, auto);\\n bottom: var(--panel-bottom, auto);\\n left: var(--panel-left, auto);\\n right: var(--panel-right, auto);\\n width: var(--panel-width);\\n height: var(--panel-height);\\n min-width: var(--panel-min-width);\\n min-height: var(--panel-min-height);\\n max-width: var(--panel-max-width);\\n max-height: var(--panel-max-height);\\n}\\n\\n/* Panel content container styles */\\n.panel-content-container {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: var(--rounded-xl);\\n background: var(--color-background-100);\\n display: flex;\\n flex-direction: column;\\n}\\n\\n/* Draggable content area styles */\\n.draggable-content {\\n flex: 1;\\n overflow: auto;\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/colors.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`:host {\n /* \n * CAUTION: THIS IS A WORKAROUND!\n * For now, we use @babel/code-frame to parse the code frame which does not support option to change the color.\n * x-ref: https://github.com/babel/babel/blob/efa52324ff835b794c48080f14877b6caf32cd15/packages/babel-code-frame/src/defs.ts#L40-L54\n * So, we do a workaround mapping to change the color matching the theme.\n *\n * For example, in @babel/code-frame, the \"keyword\" is mapped to ANSI \"cyan\".\n * We want the \"keyword\" to use the \"syntax-keyword\" color in the theme.\n * So, we map the \"cyan\" to the \"syntax-keyword\" in the theme.\n */\n /* cyan: keyword */\n --color-ansi-cyan: var(--color-syntax-keyword);\n /* yellow: capitalized, jsxIdentifier, punctuation */\n --color-ansi-yellow: var(--color-syntax-function);\n /* magenta: number, regex */\n --color-ansi-magenta: var(--color-syntax-keyword);\n /* green: string */\n --color-ansi-green: var(--color-syntax-string);\n /* gray (bright black): comment, gutter */\n --color-ansi-bright-black: var(--color-syntax-comment);\n\n /* Ansi - Temporary */\n --color-ansi-selection: var(--color-gray-alpha-300);\n --color-ansi-bg: var(--color-background-200);\n --color-ansi-fg: var(--color-gray-1000);\n\n --color-ansi-white: var(--color-gray-700);\n --color-ansi-black: var(--color-gray-200);\n --color-ansi-blue: var(--color-blue-700);\n --color-ansi-red: var(--color-red-700);\n --color-ansi-bright-white: var(--color-gray-1000);\n --color-ansi-bright-blue: var(--color-blue-800);\n --color-ansi-bright-cyan: var(--color-blue-800);\n --color-ansi-bright-green: var(--color-green-800);\n --color-ansi-bright-magenta: var(--color-blue-800);\n --color-ansi-bright-red: var(--color-red-800);\n --color-ansi-bright-yellow: var(--color-amber-900);\n\n /* Background Light */\n --color-background-100: #ffffff;\n --color-background-200: #fafafa;\n\n /* Syntax Light */\n --color-syntax-comment: #545454;\n --color-syntax-constant: #171717;\n --color-syntax-function: #0054ad;\n --color-syntax-keyword: #a51850;\n --color-syntax-link: #066056;\n --color-syntax-parameter: #8f3e00;\n --color-syntax-punctuation: #171717;\n --color-syntax-string: #036157;\n --color-syntax-string-expression: #066056;\n\n /* Gray Scale Light */\n --color-gray-100: #f2f2f2;\n --color-gray-200: #ebebeb;\n --color-gray-300: #e6e6e6;\n --color-gray-400: #eaeaea;\n --color-gray-500: #c9c9c9;\n --color-gray-600: #a8a8a8;\n --color-gray-700: #8f8f8f;\n --color-gray-800: #7d7d7d;\n --color-gray-900: #666666;\n --color-gray-1000: #171717;\n\n /* Gray Alpha Scale Light */\n --color-gray-alpha-100: rgba(0, 0, 0, 0.05);\n --color-gray-alpha-200: rgba(0, 0, 0, 0.081);\n --color-gray-alpha-300: rgba(0, 0, 0, 0.1);\n --color-gray-alpha-400: rgba(0, 0, 0, 0.08);\n --color-gray-alpha-500: rgba(0, 0, 0, 0.21);\n --color-gray-alpha-600: rgba(0, 0, 0, 0.34);\n --color-gray-alpha-700: rgba(0, 0, 0, 0.44);\n --color-gray-alpha-800: rgba(0, 0, 0, 0.51);\n --color-gray-alpha-900: rgba(0, 0, 0, 0.605);\n --color-gray-alpha-1000: rgba(0, 0, 0, 0.91);\n\n /* Blue Scale Light */\n --color-blue-100: #f0f7ff;\n --color-blue-200: #edf6ff;\n --color-blue-300: #e1f0ff;\n --color-blue-400: #cde7ff;\n --color-blue-500: #99ceff;\n --color-blue-600: #52aeff;\n --color-blue-700: #0070f3;\n --color-blue-800: #0060d1;\n --color-blue-900: #0067d6;\n --color-blue-1000: #0025ad;\n\n /* Red Scale Light */\n --color-red-100: #fff0f0;\n --color-red-200: #ffebeb;\n --color-red-300: #ffe5e5;\n --color-red-400: #fdd8d8;\n --color-red-500: #f8baba;\n --color-red-600: #f87274;\n --color-red-700: #e5484d;\n --color-red-800: #da3036;\n --color-red-900: #ca2a30;\n --color-red-1000: #381316;\n\n /* Amber Scale Light */\n --color-amber-100: #fff6e5;\n --color-amber-200: #fff4d5;\n --color-amber-300: #fef0cd;\n --color-amber-400: #ffddbf;\n --color-amber-500: #ffc96b;\n --color-amber-600: #f5b047;\n --color-amber-700: #ffb224;\n --color-amber-800: #ff990a;\n --color-amber-900: #a35200;\n --color-amber-1000: #4e2009;\n\n /* Green Scale Light */\n --color-green-100: #effbef;\n --color-green-200: #eafaea;\n --color-green-300: #dcf6dc;\n --color-green-400: #c8f1c9;\n --color-green-500: #99e59f;\n --color-green-600: #6cda76;\n --color-green-700: #46a758;\n --color-green-800: #388e4a;\n --color-green-900: #297c3b;\n --color-green-1000: #18311e;\n\n /* Turbopack Light - Temporary */\n --color-turbopack-text-red: #ff1e56;\n --color-turbopack-text-blue: #0096ff;\n --color-turbopack-border-red: #f0adbe;\n --color-turbopack-border-blue: #adccea;\n --color-turbopack-background-red: #fff7f9;\n --color-turbopack-background-blue: #f6fbff;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/styles/colors.css\"],names:[],mappings:\"AAAA;EACE;;;;;;;;;IASE;EACF,kBAAkB;EAClB,8CAA8C;EAC9C,oDAAoD;EACpD,iDAAiD;EACjD,2BAA2B;EAC3B,iDAAiD;EACjD,kBAAkB;EAClB,8CAA8C;EAC9C,yCAAyC;EACzC,sDAAsD;;EAEtD,qBAAqB;EACrB,mDAAmD;EACnD,4CAA4C;EAC5C,uCAAuC;;EAEvC,yCAAyC;EACzC,yCAAyC;EACzC,wCAAwC;EACxC,sCAAsC;EACtC,iDAAiD;EACjD,+CAA+C;EAC/C,+CAA+C;EAC/C,iDAAiD;EACjD,kDAAkD;EAClD,6CAA6C;EAC7C,kDAAkD;;EAElD,qBAAqB;EACrB,+BAA+B;EAC/B,+BAA+B;;EAE/B,iBAAiB;EACjB,+BAA+B;EAC/B,gCAAgC;EAChC,gCAAgC;EAChC,+BAA+B;EAC/B,4BAA4B;EAC5B,iCAAiC;EACjC,mCAAmC;EACnC,8BAA8B;EAC9B,yCAAyC;;EAEzC,qBAAqB;EACrB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,0BAA0B;;EAE1B,2BAA2B;EAC3B,2CAA2C;EAC3C,4CAA4C;EAC5C,0CAA0C;EAC1C,2CAA2C;EAC3C,2CAA2C;EAC3C,2CAA2C;EAC3C,2CAA2C;EAC3C,2CAA2C;EAC3C,4CAA4C;EAC5C,4CAA4C;;EAE5C,qBAAqB;EACrB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;EACzB,0BAA0B;;EAE1B,oBAAoB;EACpB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,wBAAwB;EACxB,yBAAyB;;EAEzB,sBAAsB;EACtB,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,2BAA2B;;EAE3B,sBAAsB;EACtB,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;EAC1B,2BAA2B;;EAE3B,gCAAgC;EAChC,mCAAmC;EACnC,oCAAoC;EACpC,qCAAqC;EACrC,sCAAsC;EACtC,yCAAyC;EACzC,0CAA0C;AAC5C\",sourcesContent:[':host {\\n /* \\n * CAUTION: THIS IS A WORKAROUND!\\n * For now, we use @babel/code-frame to parse the code frame which does not support option to change the color.\\n * x-ref: https://github.com/babel/babel/blob/efa52324ff835b794c48080f14877b6caf32cd15/packages/babel-code-frame/src/defs.ts#L40-L54\\n * So, we do a workaround mapping to change the color matching the theme.\\n *\\n * For example, in @babel/code-frame, the \"keyword\" is mapped to ANSI \"cyan\".\\n * We want the \"keyword\" to use the \"syntax-keyword\" color in the theme.\\n * So, we map the \"cyan\" to the \"syntax-keyword\" in the theme.\\n */\\n /* cyan: keyword */\\n --color-ansi-cyan: var(--color-syntax-keyword);\\n /* yellow: capitalized, jsxIdentifier, punctuation */\\n --color-ansi-yellow: var(--color-syntax-function);\\n /* magenta: number, regex */\\n --color-ansi-magenta: var(--color-syntax-keyword);\\n /* green: string */\\n --color-ansi-green: var(--color-syntax-string);\\n /* gray (bright black): comment, gutter */\\n --color-ansi-bright-black: var(--color-syntax-comment);\\n\\n /* Ansi - Temporary */\\n --color-ansi-selection: var(--color-gray-alpha-300);\\n --color-ansi-bg: var(--color-background-200);\\n --color-ansi-fg: var(--color-gray-1000);\\n\\n --color-ansi-white: var(--color-gray-700);\\n --color-ansi-black: var(--color-gray-200);\\n --color-ansi-blue: var(--color-blue-700);\\n --color-ansi-red: var(--color-red-700);\\n --color-ansi-bright-white: var(--color-gray-1000);\\n --color-ansi-bright-blue: var(--color-blue-800);\\n --color-ansi-bright-cyan: var(--color-blue-800);\\n --color-ansi-bright-green: var(--color-green-800);\\n --color-ansi-bright-magenta: var(--color-blue-800);\\n --color-ansi-bright-red: var(--color-red-800);\\n --color-ansi-bright-yellow: var(--color-amber-900);\\n\\n /* Background Light */\\n --color-background-100: #ffffff;\\n --color-background-200: #fafafa;\\n\\n /* Syntax Light */\\n --color-syntax-comment: #545454;\\n --color-syntax-constant: #171717;\\n --color-syntax-function: #0054ad;\\n --color-syntax-keyword: #a51850;\\n --color-syntax-link: #066056;\\n --color-syntax-parameter: #8f3e00;\\n --color-syntax-punctuation: #171717;\\n --color-syntax-string: #036157;\\n --color-syntax-string-expression: #066056;\\n\\n /* Gray Scale Light */\\n --color-gray-100: #f2f2f2;\\n --color-gray-200: #ebebeb;\\n --color-gray-300: #e6e6e6;\\n --color-gray-400: #eaeaea;\\n --color-gray-500: #c9c9c9;\\n --color-gray-600: #a8a8a8;\\n --color-gray-700: #8f8f8f;\\n --color-gray-800: #7d7d7d;\\n --color-gray-900: #666666;\\n --color-gray-1000: #171717;\\n\\n /* Gray Alpha Scale Light */\\n --color-gray-alpha-100: rgba(0, 0, 0, 0.05);\\n --color-gray-alpha-200: rgba(0, 0, 0, 0.081);\\n --color-gray-alpha-300: rgba(0, 0, 0, 0.1);\\n --color-gray-alpha-400: rgba(0, 0, 0, 0.08);\\n --color-gray-alpha-500: rgba(0, 0, 0, 0.21);\\n --color-gray-alpha-600: rgba(0, 0, 0, 0.34);\\n --color-gray-alpha-700: rgba(0, 0, 0, 0.44);\\n --color-gray-alpha-800: rgba(0, 0, 0, 0.51);\\n --color-gray-alpha-900: rgba(0, 0, 0, 0.605);\\n --color-gray-alpha-1000: rgba(0, 0, 0, 0.91);\\n\\n /* Blue Scale Light */\\n --color-blue-100: #f0f7ff;\\n --color-blue-200: #edf6ff;\\n --color-blue-300: #e1f0ff;\\n --color-blue-400: #cde7ff;\\n --color-blue-500: #99ceff;\\n --color-blue-600: #52aeff;\\n --color-blue-700: #0070f3;\\n --color-blue-800: #0060d1;\\n --color-blue-900: #0067d6;\\n --color-blue-1000: #0025ad;\\n\\n /* Red Scale Light */\\n --color-red-100: #fff0f0;\\n --color-red-200: #ffebeb;\\n --color-red-300: #ffe5e5;\\n --color-red-400: #fdd8d8;\\n --color-red-500: #f8baba;\\n --color-red-600: #f87274;\\n --color-red-700: #e5484d;\\n --color-red-800: #da3036;\\n --color-red-900: #ca2a30;\\n --color-red-1000: #381316;\\n\\n /* Amber Scale Light */\\n --color-amber-100: #fff6e5;\\n --color-amber-200: #fff4d5;\\n --color-amber-300: #fef0cd;\\n --color-amber-400: #ffddbf;\\n --color-amber-500: #ffc96b;\\n --color-amber-600: #f5b047;\\n --color-amber-700: #ffb224;\\n --color-amber-800: #ff990a;\\n --color-amber-900: #a35200;\\n --color-amber-1000: #4e2009;\\n\\n /* Green Scale Light */\\n --color-green-100: #effbef;\\n --color-green-200: #eafaea;\\n --color-green-300: #dcf6dc;\\n --color-green-400: #c8f1c9;\\n --color-green-500: #99e59f;\\n --color-green-600: #6cda76;\\n --color-green-700: #46a758;\\n --color-green-800: #388e4a;\\n --color-green-900: #297c3b;\\n --color-green-1000: #18311e;\\n\\n /* Turbopack Light - Temporary */\\n --color-turbopack-text-red: #ff1e56;\\n --color-turbopack-text-blue: #0096ff;\\n --color-turbopack-border-red: #f0adbe;\\n --color-turbopack-border-blue: #adccea;\\n --color-turbopack-background-red: #fff7f9;\\n --color-turbopack-background-blue: #f6fbff;\\n}\\n'],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/dark-theme.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`:host(.dark) {\n --color-font: white;\n --color-backdrop: rgba(0, 0, 0, 0.8);\n --color-border-shadow: rgba(255, 255, 255, 0.145);\n\n --color-title-color: #fafafa;\n --color-stack-notes: #a9a9a9;\n\n /* Background Dark */\n --color-background-100: #0a0a0a;\n --color-background-200: #000000;\n\n /* Syntax Dark */\n --color-syntax-comment: #a0a0a0;\n --color-syntax-constant: #ededed;\n --color-syntax-function: #52a9ff;\n --color-syntax-keyword: #f76e99;\n --color-syntax-link: #0ac5b2;\n --color-syntax-parameter: #f1a10d;\n --color-syntax-punctuation: #ededed;\n --color-syntax-string: #0ac5b2;\n --color-syntax-string-expression: #0ac5b2;\n\n /* Gray Scale Dark */\n --color-gray-100: #1a1a1a;\n --color-gray-200: #1f1f1f;\n --color-gray-300: #292929;\n --color-gray-400: #2e2e2e;\n --color-gray-500: #454545;\n --color-gray-600: #878787;\n --color-gray-700: #8f8f8f;\n --color-gray-800: #7d7d7d;\n --color-gray-900: #a0a0a0;\n --color-gray-1000: #ededed;\n\n /* Gray Alpha Scale Dark */\n --color-gray-alpha-100: rgba(255, 255, 255, 0.066);\n --color-gray-alpha-200: rgba(255, 255, 255, 0.087);\n --color-gray-alpha-300: rgba(255, 255, 255, 0.125);\n --color-gray-alpha-400: rgba(255, 255, 255, 0.145);\n --color-gray-alpha-500: rgba(255, 255, 255, 0.239);\n --color-gray-alpha-600: rgba(255, 255, 255, 0.506);\n --color-gray-alpha-700: rgba(255, 255, 255, 0.54);\n --color-gray-alpha-800: rgba(255, 255, 255, 0.47);\n --color-gray-alpha-900: rgba(255, 255, 255, 0.61);\n --color-gray-alpha-1000: rgba(255, 255, 255, 0.923);\n\n /* Blue Scale Dark */\n --color-blue-100: #0f1b2d;\n --color-blue-200: #10243e;\n --color-blue-300: #0f3058;\n --color-blue-400: #0d3868;\n --color-blue-500: #0a4481;\n --color-blue-600: #0091ff;\n --color-blue-700: #0070f3;\n --color-blue-800: #0060d1;\n --color-blue-900: #52a9ff;\n --color-blue-1000: #eaf6ff;\n\n /* Red Scale Dark */\n --color-red-100: #2a1314;\n --color-red-200: #3d1719;\n --color-red-300: #551a1e;\n --color-red-400: #671e22;\n --color-red-500: #822025;\n --color-red-600: #e5484d;\n --color-red-700: #e5484d;\n --color-red-800: #da3036;\n --color-red-900: #ff6369;\n --color-red-1000: #ffecee;\n\n /* Amber Scale Dark */\n --color-amber-100: #271700;\n --color-amber-200: #341c00;\n --color-amber-300: #4a2900;\n --color-amber-400: #573300;\n --color-amber-500: #693f05;\n --color-amber-600: #e79c13;\n --color-amber-700: #ffb224;\n --color-amber-800: #ff990a;\n --color-amber-900: #f1a10d;\n --color-amber-1000: #fef3dd;\n\n /* Green Scale Dark */\n --color-green-100: #0b2211;\n --color-green-200: #0f2c17;\n --color-green-300: #11351b;\n --color-green-400: #0c461b;\n --color-green-500: #126427;\n --color-green-600: #1a9338;\n --color-green-700: #46a758;\n --color-green-800: #388e4a;\n --color-green-900: #63c174;\n --color-green-1000: #e5fbeb;\n\n /* Turbopack Dark - Temporary */\n --color-turbopack-text-red: #ff6d92;\n --color-turbopack-text-blue: #45b2ff;\n --color-turbopack-border-red: #6e293b;\n --color-turbopack-border-blue: #284f80;\n --color-turbopack-background-red: #250d12;\n --color-turbopack-background-blue: #0a1723;\n}\n\n@media (prefers-color-scheme: dark) {\n :host(:not(.light)) {\n --color-font: white;\n --color-backdrop: rgba(0, 0, 0, 0.8);\n --color-border-shadow: rgba(255, 255, 255, 0.145);\n\n --color-title-color: #fafafa;\n --color-stack-notes: #a9a9a9;\n\n /* Background Dark */\n --color-background-100: #0a0a0a;\n --color-background-200: #000000;\n\n /* Syntax Dark */\n --color-syntax-comment: #a0a0a0;\n --color-syntax-constant: #ededed;\n --color-syntax-function: #52a9ff;\n --color-syntax-keyword: #f76e99;\n --color-syntax-link: #0ac5b2;\n --color-syntax-parameter: #f1a10d;\n --color-syntax-punctuation: #ededed;\n --color-syntax-string: #0ac5b2;\n --color-syntax-string-expression: #0ac5b2;\n\n /* Gray Scale Dark */\n --color-gray-100: #1a1a1a;\n --color-gray-200: #1f1f1f;\n --color-gray-300: #292929;\n --color-gray-400: #2e2e2e;\n --color-gray-500: #454545;\n --color-gray-600: #878787;\n --color-gray-700: #8f8f8f;\n --color-gray-800: #7d7d7d;\n --color-gray-900: #a0a0a0;\n --color-gray-1000: #ededed;\n\n /* Gray Alpha Scale Dark */\n --color-gray-alpha-100: rgba(255, 255, 255, 0.066);\n --color-gray-alpha-200: rgba(255, 255, 255, 0.087);\n --color-gray-alpha-300: rgba(255, 255, 255, 0.125);\n --color-gray-alpha-400: rgba(255, 255, 255, 0.145);\n --color-gray-alpha-500: rgba(255, 255, 255, 0.239);\n --color-gray-alpha-600: rgba(255, 255, 255, 0.506);\n --color-gray-alpha-700: rgba(255, 255, 255, 0.54);\n --color-gray-alpha-800: rgba(255, 255, 255, 0.47);\n --color-gray-alpha-900: rgba(255, 255, 255, 0.61);\n --color-gray-alpha-1000: rgba(255, 255, 255, 0.923);\n\n /* Blue Scale Dark */\n --color-blue-100: #0f1b2d;\n --color-blue-200: #10243e;\n --color-blue-300: #0f3058;\n --color-blue-400: #0d3868;\n --color-blue-500: #0a4481;\n --color-blue-600: #0091ff;\n --color-blue-700: #0070f3;\n --color-blue-800: #0060d1;\n --color-blue-900: #52a9ff;\n --color-blue-1000: #eaf6ff;\n\n /* Red Scale Dark */\n --color-red-100: #2a1314;\n --color-red-200: #3d1719;\n --color-red-300: #551a1e;\n --color-red-400: #671e22;\n --color-red-500: #822025;\n --color-red-600: #e5484d;\n --color-red-700: #e5484d;\n --color-red-800: #da3036;\n --color-red-900: #ff6369;\n --color-red-1000: #ffecee;\n\n /* Amber Scale Dark */\n --color-amber-100: #271700;\n --color-amber-200: #341c00;\n --color-amber-300: #4a2900;\n --color-amber-400: #573300;\n --color-amber-500: #693f05;\n --color-amber-600: #e79c13;\n --color-amber-700: #ffb224;\n --color-amber-800: #ff990a;\n --color-amber-900: #f1a10d;\n --color-amber-1000: #fef3dd;\n\n /* Green Scale Dark */\n --color-green-100: #0b2211;\n --color-green-200: #0f2c17;\n --color-green-300: #11351b;\n --color-green-400: #0c461b;\n --color-green-500: #126427;\n --color-green-600: #1a9338;\n --color-green-700: #46a758;\n --color-green-800: #388e4a;\n --color-green-900: #63c174;\n --color-green-1000: #e5fbeb;\n\n /* Turbopack Dark - Temporary */\n --color-turbopack-text-red: #ff6d92;\n --color-turbopack-text-blue: #45b2ff;\n --color-turbopack-border-red: #6e293b;\n --color-turbopack-border-blue: #284f80;\n --color-turbopack-background-red: #250d12;\n --color-turbopack-background-blue: #0a1723;\n }\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/styles/dark-theme.css\"],names:[],mappings:\"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\",sourcesContent:[\":host(.dark) {\\n --color-font: white;\\n --color-backdrop: rgba(0, 0, 0, 0.8);\\n --color-border-shadow: rgba(255, 255, 255, 0.145);\\n\\n --color-title-color: #fafafa;\\n --color-stack-notes: #a9a9a9;\\n\\n /* Background Dark */\\n --color-background-100: #0a0a0a;\\n --color-background-200: #000000;\\n\\n /* Syntax Dark */\\n --color-syntax-comment: #a0a0a0;\\n --color-syntax-constant: #ededed;\\n --color-syntax-function: #52a9ff;\\n --color-syntax-keyword: #f76e99;\\n --color-syntax-link: #0ac5b2;\\n --color-syntax-parameter: #f1a10d;\\n --color-syntax-punctuation: #ededed;\\n --color-syntax-string: #0ac5b2;\\n --color-syntax-string-expression: #0ac5b2;\\n\\n /* Gray Scale Dark */\\n --color-gray-100: #1a1a1a;\\n --color-gray-200: #1f1f1f;\\n --color-gray-300: #292929;\\n --color-gray-400: #2e2e2e;\\n --color-gray-500: #454545;\\n --color-gray-600: #878787;\\n --color-gray-700: #8f8f8f;\\n --color-gray-800: #7d7d7d;\\n --color-gray-900: #a0a0a0;\\n --color-gray-1000: #ededed;\\n\\n /* Gray Alpha Scale Dark */\\n --color-gray-alpha-100: rgba(255, 255, 255, 0.066);\\n --color-gray-alpha-200: rgba(255, 255, 255, 0.087);\\n --color-gray-alpha-300: rgba(255, 255, 255, 0.125);\\n --color-gray-alpha-400: rgba(255, 255, 255, 0.145);\\n --color-gray-alpha-500: rgba(255, 255, 255, 0.239);\\n --color-gray-alpha-600: rgba(255, 255, 255, 0.506);\\n --color-gray-alpha-700: rgba(255, 255, 255, 0.54);\\n --color-gray-alpha-800: rgba(255, 255, 255, 0.47);\\n --color-gray-alpha-900: rgba(255, 255, 255, 0.61);\\n --color-gray-alpha-1000: rgba(255, 255, 255, 0.923);\\n\\n /* Blue Scale Dark */\\n --color-blue-100: #0f1b2d;\\n --color-blue-200: #10243e;\\n --color-blue-300: #0f3058;\\n --color-blue-400: #0d3868;\\n --color-blue-500: #0a4481;\\n --color-blue-600: #0091ff;\\n --color-blue-700: #0070f3;\\n --color-blue-800: #0060d1;\\n --color-blue-900: #52a9ff;\\n --color-blue-1000: #eaf6ff;\\n\\n /* Red Scale Dark */\\n --color-red-100: #2a1314;\\n --color-red-200: #3d1719;\\n --color-red-300: #551a1e;\\n --color-red-400: #671e22;\\n --color-red-500: #822025;\\n --color-red-600: #e5484d;\\n --color-red-700: #e5484d;\\n --color-red-800: #da3036;\\n --color-red-900: #ff6369;\\n --color-red-1000: #ffecee;\\n\\n /* Amber Scale Dark */\\n --color-amber-100: #271700;\\n --color-amber-200: #341c00;\\n --color-amber-300: #4a2900;\\n --color-amber-400: #573300;\\n --color-amber-500: #693f05;\\n --color-amber-600: #e79c13;\\n --color-amber-700: #ffb224;\\n --color-amber-800: #ff990a;\\n --color-amber-900: #f1a10d;\\n --color-amber-1000: #fef3dd;\\n\\n /* Green Scale Dark */\\n --color-green-100: #0b2211;\\n --color-green-200: #0f2c17;\\n --color-green-300: #11351b;\\n --color-green-400: #0c461b;\\n --color-green-500: #126427;\\n --color-green-600: #1a9338;\\n --color-green-700: #46a758;\\n --color-green-800: #388e4a;\\n --color-green-900: #63c174;\\n --color-green-1000: #e5fbeb;\\n\\n /* Turbopack Dark - Temporary */\\n --color-turbopack-text-red: #ff6d92;\\n --color-turbopack-text-blue: #45b2ff;\\n --color-turbopack-border-red: #6e293b;\\n --color-turbopack-border-blue: #284f80;\\n --color-turbopack-background-red: #250d12;\\n --color-turbopack-background-blue: #0a1723;\\n}\\n\\n@media (prefers-color-scheme: dark) {\\n :host(:not(.light)) {\\n --color-font: white;\\n --color-backdrop: rgba(0, 0, 0, 0.8);\\n --color-border-shadow: rgba(255, 255, 255, 0.145);\\n\\n --color-title-color: #fafafa;\\n --color-stack-notes: #a9a9a9;\\n\\n /* Background Dark */\\n --color-background-100: #0a0a0a;\\n --color-background-200: #000000;\\n\\n /* Syntax Dark */\\n --color-syntax-comment: #a0a0a0;\\n --color-syntax-constant: #ededed;\\n --color-syntax-function: #52a9ff;\\n --color-syntax-keyword: #f76e99;\\n --color-syntax-link: #0ac5b2;\\n --color-syntax-parameter: #f1a10d;\\n --color-syntax-punctuation: #ededed;\\n --color-syntax-string: #0ac5b2;\\n --color-syntax-string-expression: #0ac5b2;\\n\\n /* Gray Scale Dark */\\n --color-gray-100: #1a1a1a;\\n --color-gray-200: #1f1f1f;\\n --color-gray-300: #292929;\\n --color-gray-400: #2e2e2e;\\n --color-gray-500: #454545;\\n --color-gray-600: #878787;\\n --color-gray-700: #8f8f8f;\\n --color-gray-800: #7d7d7d;\\n --color-gray-900: #a0a0a0;\\n --color-gray-1000: #ededed;\\n\\n /* Gray Alpha Scale Dark */\\n --color-gray-alpha-100: rgba(255, 255, 255, 0.066);\\n --color-gray-alpha-200: rgba(255, 255, 255, 0.087);\\n --color-gray-alpha-300: rgba(255, 255, 255, 0.125);\\n --color-gray-alpha-400: rgba(255, 255, 255, 0.145);\\n --color-gray-alpha-500: rgba(255, 255, 255, 0.239);\\n --color-gray-alpha-600: rgba(255, 255, 255, 0.506);\\n --color-gray-alpha-700: rgba(255, 255, 255, 0.54);\\n --color-gray-alpha-800: rgba(255, 255, 255, 0.47);\\n --color-gray-alpha-900: rgba(255, 255, 255, 0.61);\\n --color-gray-alpha-1000: rgba(255, 255, 255, 0.923);\\n\\n /* Blue Scale Dark */\\n --color-blue-100: #0f1b2d;\\n --color-blue-200: #10243e;\\n --color-blue-300: #0f3058;\\n --color-blue-400: #0d3868;\\n --color-blue-500: #0a4481;\\n --color-blue-600: #0091ff;\\n --color-blue-700: #0070f3;\\n --color-blue-800: #0060d1;\\n --color-blue-900: #52a9ff;\\n --color-blue-1000: #eaf6ff;\\n\\n /* Red Scale Dark */\\n --color-red-100: #2a1314;\\n --color-red-200: #3d1719;\\n --color-red-300: #551a1e;\\n --color-red-400: #671e22;\\n --color-red-500: #822025;\\n --color-red-600: #e5484d;\\n --color-red-700: #e5484d;\\n --color-red-800: #da3036;\\n --color-red-900: #ff6369;\\n --color-red-1000: #ffecee;\\n\\n /* Amber Scale Dark */\\n --color-amber-100: #271700;\\n --color-amber-200: #341c00;\\n --color-amber-300: #4a2900;\\n --color-amber-400: #573300;\\n --color-amber-500: #693f05;\\n --color-amber-600: #e79c13;\\n --color-amber-700: #ffb224;\\n --color-amber-800: #ff990a;\\n --color-amber-900: #f1a10d;\\n --color-amber-1000: #fef3dd;\\n\\n /* Green Scale Dark */\\n --color-green-100: #0b2211;\\n --color-green-200: #0f2c17;\\n --color-green-300: #11351b;\\n --color-green-400: #0c461b;\\n --color-green-500: #126427;\\n --color-green-600: #1a9338;\\n --color-green-700: #46a758;\\n --color-green-800: #388e4a;\\n --color-green-900: #63c174;\\n --color-green-1000: #e5fbeb;\\n\\n /* Turbopack Dark - Temporary */\\n --color-turbopack-text-red: #ff6d92;\\n --color-turbopack-text-blue: #45b2ff;\\n --color-turbopack-border-red: #6e293b;\\n --color-turbopack-border-blue: #284f80;\\n --color-turbopack-background-red: #250d12;\\n --color-turbopack-background-blue: #0a1723;\\n }\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/styles/default-theme.css\":function(e,t,n){\"use strict\";n.d(t,{Z:()=>l});var r=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=n.n(r),a=n(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=n.n(a)()(o());i.push([e.id,`:host {\n /* \n * Although the style applied to the shadow host is isolated,\n * the element that attached the shadow host (i.e. \"nextjs-portal\")\n * is still affected by the parent's style (e.g. \"body\"). This may\n * occur style conflicts like \"display: flex\", with other children\n * elements therefore give the shadow host an absolute position.\n */\n position: absolute;\n\n --color-font: #757575;\n --color-backdrop: rgba(250, 250, 250, 0.8);\n --color-border-shadow: rgba(0, 0, 0, 0.145);\n\n --color-title-color: #1f1f1f;\n --color-stack-notes: #777;\n\n --color-accents-1: #808080;\n --color-accents-2: #222222;\n --color-accents-3: #404040;\n\n --font-stack-monospace: '__nextjs-Geist Mono', 'Geist Mono', 'SFMono-Regular',\n Consolas, 'Liberation Mono', Menlo, Courier, monospace;\n --font-stack-sans: '__nextjs-Geist', 'Geist', -apple-system, 'Source Sans Pro',\n sans-serif;\n\n font-family: var(--font-stack-sans);\n font-variant-ligatures: none;\n\n /* TODO: Remove replaced ones. */\n --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --shadow-none: 0 0 #0000;\n\n --shadow-small: 0px 2px 2px rgba(0, 0, 0, 0.04);\n --shadow-menu: 0px 1px 1px rgba(0, 0, 0, 0.02),\n 0px 4px 8px -4px rgba(0, 0, 0, 0.04), 0px 16px 24px -8px rgba(0, 0, 0, 0.06);\n\n --focus-color: var(--color-blue-800);\n --focus-ring: 2px solid var(--focus-color);\n\n --timing-swift: cubic-bezier(0.23, 0.88, 0.26, 0.92);\n --timing-overlay: cubic-bezier(0.175, 0.885, 0.32, 1.1);\n /* prettier-ignore */\n --timing-bounce: linear(0 0%, 0.005871 1%, 0.022058 2%, 0.046612 3%, 0.077823 4%, 0.114199 5%, 0.154441 6%, 0.197431 7.000000000000001%, 0.242208 8%, 0.287959 9%, 0.333995 10%, 0.379743 11%, 0.424732 12%, 0.46858 13%, 0.510982 14.000000000000002%, 0.551702 15%, 0.590564 16%, 0.627445 17%, 0.662261 18%, 0.694971 19%, 0.725561 20%, 0.754047 21%, 0.780462 22%, 0.804861 23%, 0.82731 24%, 0.847888 25%, 0.866679 26%, 0.883775 27%, 0.899272 28.000000000000004%, 0.913267 28.999999999999996%, 0.925856 30%, 0.937137 31%, 0.947205 32%, 0.956153 33%, 0.96407 34%, 0.971043 35%, 0.977153 36%, 0.982479 37%, 0.987094 38%, 0.991066 39%, 0.994462 40%, 0.997339 41%, 0.999755 42%, 1.001761 43%, 1.003404 44%, 1.004727 45%, 1.00577 46%, 1.006569 47%, 1.007157 48%, 1.007563 49%, 1.007813 50%, 1.007931 51%, 1.007939 52%, 1.007855 53%, 1.007697 54%, 1.007477 55.00000000000001%, 1.00721 56.00000000000001%, 1.006907 56.99999999999999%, 1.006576 57.99999999999999%, 1.006228 59%, 1.005868 60%, 1.005503 61%, 1.005137 62%, 1.004776 63%, 1.004422 64%, 1.004078 65%, 1.003746 66%, 1.003429 67%, 1.003127 68%, 1.00284 69%, 1.002571 70%, 1.002318 71%, 1.002082 72%, 1.001863 73%, 1.00166 74%, 1.001473 75%, 1.001301 76%, 1.001143 77%, 1.001 78%, 1.000869 79%, 1.000752 80%, 1.000645 81%, 1.00055 82%, 1.000464 83%, 1.000388 84%, 1.000321 85%, 1.000261 86%, 1.000209 87%, 1.000163 88%, 1.000123 89%, 1.000088 90%);\n\n --rounded-none: 0px;\n --rounded-sm: 2px;\n --rounded-md: 4px;\n --rounded-md-2: 6px;\n --rounded-lg: 8px;\n --rounded-xl: 12px;\n --rounded-2xl: 16px;\n --rounded-3xl: 24px;\n --rounded-4xl: 32px;\n --rounded-full: 9999px;\n\n /* \n This value gets set from the Dev Tools preferences,\n and we use the following --size-* variables to \n scale the relevant elements.\n\n The reason why we don't rely on rem values is because\n if an app sets their root font size to something tiny, \n it feels unexpected to have the app root size leak \n into a Next.js surface.\n\n https://github.com/vercel/next.js/discussions/76812\n */\n --nextjs-dev-tools-scale: 1;\n --size-1: calc(1px / var(--nextjs-dev-tools-scale));\n --size-2: calc(2px / var(--nextjs-dev-tools-scale));\n --size-3: calc(3px / var(--nextjs-dev-tools-scale));\n --size-4: calc(4px / var(--nextjs-dev-tools-scale));\n --size-5: calc(5px / var(--nextjs-dev-tools-scale));\n --size-6: calc(6px / var(--nextjs-dev-tools-scale));\n --size-7: calc(7px / var(--nextjs-dev-tools-scale));\n --size-8: calc(8px / var(--nextjs-dev-tools-scale));\n --size-9: calc(9px / var(--nextjs-dev-tools-scale));\n --size-10: calc(10px / var(--nextjs-dev-tools-scale));\n --size-11: calc(11px / var(--nextjs-dev-tools-scale));\n --size-12: calc(12px / var(--nextjs-dev-tools-scale));\n --size-13: calc(13px / var(--nextjs-dev-tools-scale));\n --size-14: calc(14px / var(--nextjs-dev-tools-scale));\n --size-15: calc(15px / var(--nextjs-dev-tools-scale));\n --size-16: calc(16px / var(--nextjs-dev-tools-scale));\n --size-17: calc(17px / var(--nextjs-dev-tools-scale));\n --size-18: calc(18px / var(--nextjs-dev-tools-scale));\n --size-20: calc(20px / var(--nextjs-dev-tools-scale));\n --size-22: calc(22px / var(--nextjs-dev-tools-scale));\n --size-24: calc(24px / var(--nextjs-dev-tools-scale));\n --size-26: calc(26px / var(--nextjs-dev-tools-scale));\n --size-28: calc(28px / var(--nextjs-dev-tools-scale));\n --size-30: calc(30px / var(--nextjs-dev-tools-scale));\n --size-32: calc(32px / var(--nextjs-dev-tools-scale));\n --size-34: calc(34px / var(--nextjs-dev-tools-scale));\n --size-36: calc(36px / var(--nextjs-dev-tools-scale));\n --size-38: calc(38px / var(--nextjs-dev-tools-scale));\n --size-40: calc(40px / var(--nextjs-dev-tools-scale));\n --size-42: calc(42px / var(--nextjs-dev-tools-scale));\n --size-44: calc(44px / var(--nextjs-dev-tools-scale));\n --size-46: calc(46px / var(--nextjs-dev-tools-scale));\n --size-48: calc(48px / var(--nextjs-dev-tools-scale));\n\n @media print {\n display: none;\n }\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-bottom: 8px;\n font-weight: 500;\n line-height: 1.5;\n}\n\na {\n color: var(--color-blue-900);\n &:hover {\n color: var(--color-blue-900);\n }\n &:focus-visible {\n outline: var(--focus-ring);\n }\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/styles/default-theme.css\"],names:[],mappings:\"AAAA;EACE;;;;;;IAME;EACF,kBAAkB;;EAElB,qBAAqB;EACrB,0CAA0C;EAC1C,2CAA2C;;EAE3C,4BAA4B;EAC5B,yBAAyB;;EAEzB,0BAA0B;EAC1B,0BAA0B;EAC1B,0BAA0B;;EAE1B;0DACwD;EACxD;cACY;;EAEZ,mCAAmC;EACnC,4BAA4B;;EAE5B,gCAAgC;EAChC,0CAA0C;EAC1C,uEAAuE;EACvE,6EAA6E;EAC7E;mCACiC;EACjC;oCACkC;EAClC,iDAAiD;EACjD,mDAAmD;EACnD,wBAAwB;;EAExB,+CAA+C;EAC/C;gFAC8E;;EAE9E,oCAAoC;EACpC,0CAA0C;;EAE1C,oDAAoD;EACpD,uDAAuD;EACvD,oBAAoB;EACpB,i3CAAi3C;;EAEj3C,mBAAmB;EACnB,iBAAiB;EACjB,iBAAiB;EACjB,mBAAmB;EACnB,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,sBAAsB;;EAEtB;;;;;;;;;;;GAWC;EACD,2BAA2B;EAC3B,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,mDAAmD;EACnD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;EACrD,qDAAqD;;EAErD;IACE,aAAa;EACf;AACF;;AAEA;;;;;;EAME,kBAAkB;EAClB,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,4BAA4B;EAC5B;IACE,4BAA4B;EAC9B;EACA;IACE,0BAA0B;EAC5B;AACF\",sourcesContent:[\":host {\\n /* \\n * Although the style applied to the shadow host is isolated,\\n * the element that attached the shadow host (i.e. \\\"nextjs-portal\\\")\\n * is still affected by the parent's style (e.g. \\\"body\\\"). This may\\n * occur style conflicts like \\\"display: flex\\\", with other children\\n * elements therefore give the shadow host an absolute position.\\n */\\n position: absolute;\\n\\n --color-font: #757575;\\n --color-backdrop: rgba(250, 250, 250, 0.8);\\n --color-border-shadow: rgba(0, 0, 0, 0.145);\\n\\n --color-title-color: #1f1f1f;\\n --color-stack-notes: #777;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --font-stack-monospace: '__nextjs-Geist Mono', 'Geist Mono', 'SFMono-Regular',\\n Consolas, 'Liberation Mono', Menlo, Courier, monospace;\\n --font-stack-sans: '__nextjs-Geist', 'Geist', -apple-system, 'Source Sans Pro',\\n sans-serif;\\n\\n font-family: var(--font-stack-sans);\\n font-variant-ligatures: none;\\n\\n /* TODO: Remove replaced ones. */\\n --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1),\\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1),\\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\\n --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\\n --shadow-none: 0 0 #0000;\\n\\n --shadow-small: 0px 2px 2px rgba(0, 0, 0, 0.04);\\n --shadow-menu: 0px 1px 1px rgba(0, 0, 0, 0.02),\\n 0px 4px 8px -4px rgba(0, 0, 0, 0.04), 0px 16px 24px -8px rgba(0, 0, 0, 0.06);\\n\\n --focus-color: var(--color-blue-800);\\n --focus-ring: 2px solid var(--focus-color);\\n\\n --timing-swift: cubic-bezier(0.23, 0.88, 0.26, 0.92);\\n --timing-overlay: cubic-bezier(0.175, 0.885, 0.32, 1.1);\\n /* prettier-ignore */\\n --timing-bounce: linear(0 0%, 0.005871 1%, 0.022058 2%, 0.046612 3%, 0.077823 4%, 0.114199 5%, 0.154441 6%, 0.197431 7.000000000000001%, 0.242208 8%, 0.287959 9%, 0.333995 10%, 0.379743 11%, 0.424732 12%, 0.46858 13%, 0.510982 14.000000000000002%, 0.551702 15%, 0.590564 16%, 0.627445 17%, 0.662261 18%, 0.694971 19%, 0.725561 20%, 0.754047 21%, 0.780462 22%, 0.804861 23%, 0.82731 24%, 0.847888 25%, 0.866679 26%, 0.883775 27%, 0.899272 28.000000000000004%, 0.913267 28.999999999999996%, 0.925856 30%, 0.937137 31%, 0.947205 32%, 0.956153 33%, 0.96407 34%, 0.971043 35%, 0.977153 36%, 0.982479 37%, 0.987094 38%, 0.991066 39%, 0.994462 40%, 0.997339 41%, 0.999755 42%, 1.001761 43%, 1.003404 44%, 1.004727 45%, 1.00577 46%, 1.006569 47%, 1.007157 48%, 1.007563 49%, 1.007813 50%, 1.007931 51%, 1.007939 52%, 1.007855 53%, 1.007697 54%, 1.007477 55.00000000000001%, 1.00721 56.00000000000001%, 1.006907 56.99999999999999%, 1.006576 57.99999999999999%, 1.006228 59%, 1.005868 60%, 1.005503 61%, 1.005137 62%, 1.004776 63%, 1.004422 64%, 1.004078 65%, 1.003746 66%, 1.003429 67%, 1.003127 68%, 1.00284 69%, 1.002571 70%, 1.002318 71%, 1.002082 72%, 1.001863 73%, 1.00166 74%, 1.001473 75%, 1.001301 76%, 1.001143 77%, 1.001 78%, 1.000869 79%, 1.000752 80%, 1.000645 81%, 1.00055 82%, 1.000464 83%, 1.000388 84%, 1.000321 85%, 1.000261 86%, 1.000209 87%, 1.000163 88%, 1.000123 89%, 1.000088 90%);\\n\\n --rounded-none: 0px;\\n --rounded-sm: 2px;\\n --rounded-md: 4px;\\n --rounded-md-2: 6px;\\n --rounded-lg: 8px;\\n --rounded-xl: 12px;\\n --rounded-2xl: 16px;\\n --rounded-3xl: 24px;\\n --rounded-4xl: 32px;\\n --rounded-full: 9999px;\\n\\n /* \\n This value gets set from the Dev Tools preferences,\\n and we use the following --size-* variables to \\n scale the relevant elements.\\n\\n The reason why we don't rely on rem values is because\\n if an app sets their root font size to something tiny, \\n it feels unexpected to have the app root size leak \\n into a Next.js surface.\\n\\n https://github.com/vercel/next.js/discussions/76812\\n */\\n --nextjs-dev-tools-scale: 1;\\n --size-1: calc(1px / var(--nextjs-dev-tools-scale));\\n --size-2: calc(2px / var(--nextjs-dev-tools-scale));\\n --size-3: calc(3px / var(--nextjs-dev-tools-scale));\\n --size-4: calc(4px / var(--nextjs-dev-tools-scale));\\n --size-5: calc(5px / var(--nextjs-dev-tools-scale));\\n --size-6: calc(6px / var(--nextjs-dev-tools-scale));\\n --size-7: calc(7px / var(--nextjs-dev-tools-scale));\\n --size-8: calc(8px / var(--nextjs-dev-tools-scale));\\n --size-9: calc(9px / var(--nextjs-dev-tools-scale));\\n --size-10: calc(10px / var(--nextjs-dev-tools-scale));\\n --size-11: calc(11px / var(--nextjs-dev-tools-scale));\\n --size-12: calc(12px / var(--nextjs-dev-tools-scale));\\n --size-13: calc(13px / var(--nextjs-dev-tools-scale));\\n --size-14: calc(14px / var(--nextjs-dev-tools-scale));\\n --size-15: calc(15px / var(--nextjs-dev-tools-scale));\\n --size-16: calc(16px / var(--nextjs-dev-tools-scale));\\n --size-17: calc(17px / var(--nextjs-dev-tools-scale));\\n --size-18: calc(18px / var(--nextjs-dev-tools-scale));\\n --size-20: calc(20px / var(--nextjs-dev-tools-scale));\\n --size-22: calc(22px / var(--nextjs-dev-tools-scale));\\n --size-24: calc(24px / var(--nextjs-dev-tools-scale));\\n --size-26: calc(26px / var(--nextjs-dev-tools-scale));\\n --size-28: calc(28px / var(--nextjs-dev-tools-scale));\\n --size-30: calc(30px / var(--nextjs-dev-tools-scale));\\n --size-32: calc(32px / var(--nextjs-dev-tools-scale));\\n --size-34: calc(34px / var(--nextjs-dev-tools-scale));\\n --size-36: calc(36px / var(--nextjs-dev-tools-scale));\\n --size-38: calc(38px / var(--nextjs-dev-tools-scale));\\n --size-40: calc(40px / var(--nextjs-dev-tools-scale));\\n --size-42: calc(42px / var(--nextjs-dev-tools-scale));\\n --size-44: calc(44px / var(--nextjs-dev-tools-scale));\\n --size-46: calc(46px / var(--nextjs-dev-tools-scale));\\n --size-48: calc(48px / var(--nextjs-dev-tools-scale));\\n\\n @media print {\\n display: none;\\n }\\n}\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n margin-bottom: 8px;\\n font-weight: 500;\\n line-height: 1.5;\\n}\\n\\na {\\n color: var(--color-blue-900);\\n &:hover {\\n color: var(--color-blue-900);\\n }\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\":function(e){\"use strict\";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=\"\",r=void 0!==t[5];return t[4]&&(n+=\"@supports (\".concat(t[4],\") {\")),t[2]&&(n+=\"@media \".concat(t[2],\" {\")),r&&(n+=\"@layer\".concat(t[5].length>0?\" \".concat(t[5]):\"\",\" {\")),n+=e(t),r&&(n+=\"}\"),t[2]&&(n+=\"}\"),t[4]&&(n+=\"}\"),n}).join(\"\")},t.i=function(e,n,r,o,a){\"string\"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var l=0;l<this.length;l++){var s=this[l][0];null!=s&&(i[s]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);r&&i[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]=\"@layer\".concat(u[5].length>0?\" \".concat(u[5]):\"\",\" {\").concat(u[1],\"}\")),u[5]=a),n&&(u[2]&&(u[1]=\"@media \".concat(u[2],\" {\").concat(u[1],\"}\")),u[2]=n),o&&(u[4]?(u[1]=\"@supports (\".concat(u[4],\") {\").concat(u[1],\"}\"),u[4]=o):u[4]=\"\".concat(o)),t.push(u))}},t}},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\":function(e){\"use strict\";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if(\"function\"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n))));return[t].concat([\"/*# \".concat(\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(r),\" */\")]).join(\"\\n\")}return[t].join(\"\\n\")}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\":function(e){\"use strict\";var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var o={},a=[],i=0;i<e.length;i++){var l=e[i],s=r.base?l[0]+r.base:l[0],c=o[s]||0,u=\"\".concat(s,\" \").concat(c);o[s]=c+1;var d=n(u),f={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==d)t[d].references++,t[d].updater(f);else{var p=function(e,t){var n=t.domAPI(t);return n.update(e),function(t){t?(t.css!==e.css||t.media!==e.media||t.sourceMap!==e.sourceMap||t.supports!==e.supports||t.layer!==e.layer)&&n.update(e=t):n.remove()}}(f,r);r.byIndex=i,t.splice(i,0,{identifier:u,updater:p,references:1})}a.push(u)}return a}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<a.length;i++){var l=n(a[i]);t[l].references--}for(var s=r(e,o),c=0;c<a.length;c++){var u=n(a[c]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}a=s}}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/insertStyleElement.js\":function(e){\"use strict\";e.exports=function(e){var t=document.createElement(\"style\");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\":function(e,t,n){\"use strict\";e.exports=function(e){var t=n.nc;t&&e.setAttribute(\"nonce\",t)}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleDomAPI.js\":function(e){\"use strict\";e.exports=function(e){if(\"undefined\"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){var r,o,a;r=\"\",n.supports&&(r+=\"@supports (\".concat(n.supports,\") {\")),n.media&&(r+=\"@media \".concat(n.media,\" {\")),(o=void 0!==n.layer)&&(r+=\"@layer\".concat(n.layer.length>0?\" \".concat(n.layer):\"\",\" {\")),r+=n.css,o&&(r+=\"}\"),n.media&&(r+=\"}\"),n.supports&&(r+=\"}\"),(a=n.sourceMap)&&\"undefined\"!=typeof btoa&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a)))),\" */\")),e.styleTagTransform(r,t,e.options)},remove:function(){!function(e){if(null!==e.parentNode)e.parentNode.removeChild(e)}(t)}}}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleTagTransform.js\":function(e){\"use strict\";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},\"./dist/compiled/anser/index.js\":function(e){(()=>{\"use strict\";var t={211:e=>{var t=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),n=[[{color:\"0, 0, 0\",class:\"ansi-black\"},{color:\"187, 0, 0\",class:\"ansi-red\"},{color:\"0, 187, 0\",class:\"ansi-green\"},{color:\"187, 187, 0\",class:\"ansi-yellow\"},{color:\"0, 0, 187\",class:\"ansi-blue\"},{color:\"187, 0, 187\",class:\"ansi-magenta\"},{color:\"0, 187, 187\",class:\"ansi-cyan\"},{color:\"255,255,255\",class:\"ansi-white\"}],[{color:\"85, 85, 85\",class:\"ansi-bright-black\"},{color:\"255, 85, 85\",class:\"ansi-bright-red\"},{color:\"0, 255, 0\",class:\"ansi-bright-green\"},{color:\"255, 255, 85\",class:\"ansi-bright-yellow\"},{color:\"85, 85, 255\",class:\"ansi-bright-blue\"},{color:\"255, 85, 255\",class:\"ansi-bright-magenta\"},{color:\"85, 255, 255\",class:\"ansi-bright-cyan\"},{color:\"255, 255, 255\",class:\"ansi-bright-white\"}]];e.exports=function(){function e(){if(!(this instanceof e))throw TypeError(\"Cannot call a class as a function\");this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null,this.bright=0}return t(e,null,[{key:\"escapeForHtml\",value:function(t){return(new e).escapeForHtml(t)}},{key:\"linkify\",value:function(t){return(new e).linkify(t)}},{key:\"ansiToHtml\",value:function(t,n){return(new e).ansiToHtml(t,n)}},{key:\"ansiToJson\",value:function(t,n){return(new e).ansiToJson(t,n)}},{key:\"ansiToText\",value:function(t){return(new e).ansiToText(t)}}]),t(e,[{key:\"setupPalette\",value:function(){this.PALETTE_COLORS=[];for(var e=0;e<2;++e)for(var t=0;t<8;++t)this.PALETTE_COLORS.push(n[e][t].color);for(var r=[0,95,135,175,215,255],o=function(e,t,n){return r[e]+\", \"+r[t]+\", \"+r[n]},a=0;a<6;++a)for(var i=0;i<6;++i)for(var l=0;l<6;++l)this.PALETTE_COLORS.push(o(a,i,l));for(var s=8,c=0;c<24;++c,s+=10)this.PALETTE_COLORS.push(o(s,s,s))}},{key:\"escapeForHtml\",value:function(e){return e.replace(/[&<>]/gm,function(e){return\"&\"==e?\"&\":\"<\"==e?\"<\":\">\"==e?\">\":\"\"})}},{key:\"linkify\",value:function(e){return e.replace(/(https?:\\/\\/[^\\s]+)/gm,function(e){return'<a href=\"'+e+'\">'+e+\"</a>\"})}},{key:\"ansiToHtml\",value:function(e,t){return this.process(e,t,!0)}},{key:\"ansiToJson\",value:function(e,t){return(t=t||{}).json=!0,t.clearLine=!1,this.process(e,t,!0)}},{key:\"ansiToText\",value:function(e){return this.process(e,{},!1)}},{key:\"process\",value:function(e,t,n){var r=this,o=e.split(/\\033\\[/),a=o.shift();null==t&&(t={}),t.clearLine=/\\r/.test(e);var i=o.map(function(e){return r.processChunk(e,t,n)});if(t&&t.json){var l=this.processChunkJson(\"\");return l.content=a,l.clearLine=t.clearLine,i.unshift(l),t.remove_empty&&(i=i.filter(function(e){return!e.isEmpty()})),i}return i.unshift(a),i.join(\"\")}},{key:\"processChunkJson\",value:function(e,t,r){var o=(t=void 0===t?{}:t).use_classes=void 0!==t.use_classes&&t.use_classes,a=t.key=o?\"class\":\"color\",i={content:e,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,clearLine:t.clearLine,decoration:null,was_processed:!1,isEmpty:function(){return!i.content}},l=e.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);if(!l)return i;i.content=l[4];var s=l[2].split(\";\");if(\"\"!==l[1]||\"m\"!==l[3]||!r)return i;for(this.decoration=null;s.length>0;){var c=parseInt(s.shift());if(isNaN(c)||0===c)this.fg=this.bg=this.decoration=null;else if(1===c)this.decoration=\"bold\";else if(2===c)this.decoration=\"dim\";else if(3==c)this.decoration=\"italic\";else if(4==c)this.decoration=\"underline\";else if(5==c)this.decoration=\"blink\";else if(7===c)this.decoration=\"reverse\";else if(8===c)this.decoration=\"hidden\";else if(9===c)this.decoration=\"strikethrough\";else if(39==c)this.fg=null;else if(49==c)this.bg=null;else if(c>=30&&c<38)this.fg=n[0][c%10][a];else if(c>=90&&c<98)this.fg=n[1][c%10][a];else if(c>=40&&c<48)this.bg=n[0][c%10][a];else if(c>=100&&c<108)this.bg=n[1][c%10][a];else if(38===c||48===c){var u=38===c;if(s.length>=1){var d=s.shift();if(\"5\"===d&&s.length>=1){var f=parseInt(s.shift());if(f>=0&&f<=255)if(o){var p=f>=16?\"ansi-palette-\"+f:n[+(f>7)][f%8].class;u?this.fg=p:this.bg=p}else this.PALETTE_COLORS||this.setupPalette(),u?this.fg=this.PALETTE_COLORS[f]:this.bg=this.PALETTE_COLORS[f]}else if(\"2\"===d&&s.length>=3){var h=parseInt(s.shift()),m=parseInt(s.shift()),g=parseInt(s.shift());if(h>=0&&h<=255&&m>=0&&m<=255&&g>=0&&g<=255){var y=h+\", \"+m+\", \"+g;o?u?(this.fg=\"ansi-truecolor\",this.fg_truecolor=y):(this.bg=\"ansi-truecolor\",this.bg_truecolor=y):u?this.fg=y:this.bg=y}}}}}return null===this.fg&&null===this.bg&&null===this.decoration||(i.fg=this.fg,i.bg=this.bg,i.fg_truecolor=this.fg_truecolor,i.bg_truecolor=this.bg_truecolor,i.decoration=this.decoration,i.was_processed=!0),i}},{key:\"processChunk\",value:function(e,t,n){var r=this;t=t||{};var o=this.processChunkJson(e,t,n);if(t.json)return o;if(o.isEmpty())return\"\";if(!o.was_processed)return o.content;var a=t.use_classes,i=[],l=[],s={},c=function(e){var t=[],n=void 0;for(n in e)e.hasOwnProperty(n)&&t.push(\"data-\"+n+'=\"'+r.escapeForHtml(e[n])+'\"');return t.length>0?\" \"+t.join(\" \"):\"\"};return(o.fg&&(a?(l.push(o.fg+\"-fg\"),null!==o.fg_truecolor&&(s[\"ansi-truecolor-fg\"]=o.fg_truecolor,o.fg_truecolor=null)):i.push(\"color:rgb(\"+o.fg+\")\")),o.bg&&(a?(l.push(o.bg+\"-bg\"),null!==o.bg_truecolor&&(s[\"ansi-truecolor-bg\"]=o.bg_truecolor,o.bg_truecolor=null)):i.push(\"background-color:rgb(\"+o.bg+\")\")),o.decoration&&(a?l.push(\"ansi-\"+o.decoration):\"bold\"===o.decoration?i.push(\"font-weight:bold\"):\"dim\"===o.decoration?i.push(\"opacity:0.5\"):\"italic\"===o.decoration?i.push(\"font-style:italic\"):\"reverse\"===o.decoration?i.push(\"filter:invert(100%)\"):\"hidden\"===o.decoration?i.push(\"visibility:hidden\"):\"strikethrough\"===o.decoration?i.push(\"text-decoration:line-through\"):i.push(\"text-decoration:\"+o.decoration)),a)?'<span class=\"'+l.join(\" \")+'\"'+c(s)+\">\"+o.content+\"</span>\":'<span style=\"'+i.join(\";\")+'\"'+c(s)+\">\"+o.content+\"</span>\"}}]),e}()}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}},i=!0;try{t[e](a,a.exports,r),i=!1}finally{i&&delete n[e]}return a.exports}r.ab=\"//\",e.exports=r(211)})()},\"./dist/compiled/react-dom/cjs/react-dom-client.production.js\":function(e,t,n){\"use strict\";var r,o=n(\"./dist/compiled/scheduler/index.js\"),a=n(\"./dist/compiled/react/index.js\"),i=n(\"./dist/compiled/react-dom/index.js\");function l(e){var t=\"https://react.dev/errors/\"+e;if(1<arguments.length){t+=\"?args[]=\"+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=\"&args[]=\"+encodeURIComponent(arguments[n])}return\"Minified React error #\"+e+\"; visit \"+t+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do 0!=(4098&(t=e).flags)&&(n=t.return),e=t.return;while(e)}return 3===t.tag?n:null}function c(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function u(e){if(31===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function d(e){if(s(e)!==e)throw Error(l(188))}var f=Object.assign,p=Symbol.for(\"react.element\"),h=Symbol.for(\"react.transitional.element\"),m=Symbol.for(\"react.portal\"),g=Symbol.for(\"react.fragment\"),y=Symbol.for(\"react.strict_mode\"),v=Symbol.for(\"react.profiler\"),b=Symbol.for(\"react.consumer\"),A=Symbol.for(\"react.context\"),x=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),C=Symbol.for(\"react.suspense_list\"),_=Symbol.for(\"react.memo\"),k=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");var E=Symbol.for(\"react.activity\");Symbol.for(\"react.legacy_hidden\"),Symbol.for(\"react.tracing_marker\");var j=Symbol.for(\"react.memo_cache_sentinel\");Symbol.for(\"react.view_transition\");var S=Symbol.iterator;function O(e){return null===e||\"object\"!=typeof e?null:\"function\"==typeof(e=S&&e[S]||e[\"@@iterator\"])?e:null}var B=Symbol.for(\"react.client.reference\"),P=Array.isArray,I=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T={pending:!1,data:null,method:null,action:null},D=[],L=-1;function N(e){return{current:e}}function R(e){0>L||(e.current=D[L],D[L]=null,L--)}function M(e,t){D[++L]=e.current,e.current=t}var Z=N(null),U=N(null),F=N(null),q=N(null);function H(e,t){switch(M(F,t),M(U,e),M(Z,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?ch(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=cm(t=ch(t),e);else switch(e){case\"svg\":e=1;break;case\"math\":e=2;break;default:e=0}}R(Z),M(Z,e)}function V(){R(Z),R(U),R(F)}function $(e){null!==e.memoizedState&&M(q,e);var t=Z.current,n=cm(t,e.type);t!==n&&(M(U,e),M(Z,n))}function W(e){U.current===e&&(R(Z),R(U)),q.current===e&&(R(q),c9._currentValue=T)}function Y(e){if(void 0===tL)try{throw Error()}catch(e){var t=e.stack.trim().match(/\\n( *(at )?)/);tL=t&&t[1]||\"\",tN=-1<e.stack.indexOf(\"\\n at\")?\" (<anonymous>)\":-1<e.stack.indexOf(\"@\")?\"@unknown:0:0\":\"\"}return\"\\n\"+tL+e+tN}var K=!1;function X(e,t){if(!e||K)return\"\";K=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,\"props\",{set:function(){throw Error()}}),\"object\"==typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&\"function\"==typeof n.catch&&n.catch(function(){})}}catch(e){if(e&&r&&\"string\"==typeof e.stack)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=\"DetermineComponentFrameRoot\";var o=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,\"name\");o&&o.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,\"name\",{value:\"DetermineComponentFrameRoot\"});var a=r.DetermineComponentFrameRoot(),i=a[0],l=a[1];if(i&&l){var s=i.split(\"\\n\"),c=l.split(\"\\n\");for(o=r=0;r<s.length&&!s[r].includes(\"DetermineComponentFrameRoot\");)r++;for(;o<c.length&&!c[o].includes(\"DetermineComponentFrameRoot\");)o++;if(r===s.length||o===c.length)for(r=s.length-1,o=c.length-1;1<=r&&0<=o&&s[r]!==c[o];)o--;for(;1<=r&&0<=o;r--,o--)if(s[r]!==c[o]){if(1!==r||1!==o)do if(r--,o--,0>o||s[r]!==c[o]){var u=\"\\n\"+s[r].replace(\" at new \",\" at \");return e.displayName&&u.includes(\"<anonymous>\")&&(u=u.replace(\"<anonymous>\",e.displayName)),u}while(1<=r&&0<=o);break}}}finally{K=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:\"\")?Y(n):\"\"}function G(e){try{var t=\"\",n=null;do t+=function(e,t){switch(e.tag){case 26:case 27:case 5:return Y(e.type);case 16:return Y(\"Lazy\");case 13:return e.child!==t&&null!==t?Y(\"Suspense Fallback\"):Y(\"Suspense\");case 19:return Y(\"SuspenseList\");case 0:case 15:return X(e.type,!1);case 11:return X(e.type.render,!1);case 1:return X(e.type,!0);case 31:return Y(\"Activity\");default:return\"\"}}(e,n),n=e,e=e.return;while(e);return t}catch(e){return\"\\nError generating stack: \"+e.message+\"\\n\"+e.stack}}var Q=Object.prototype.hasOwnProperty,J=o.unstable_scheduleCallback,ee=o.unstable_cancelCallback,et=o.unstable_shouldYield,en=o.unstable_requestPaint,er=o.unstable_now,eo=o.unstable_getCurrentPriorityLevel,ea=o.unstable_ImmediatePriority,ei=o.unstable_UserBlockingPriority,el=o.unstable_NormalPriority,es=o.unstable_LowPriority,ec=o.unstable_IdlePriority,eu=o.log,ed=o.unstable_setDisableYieldValue,ef=null,ep=null;function eh(e){if(\"function\"==typeof eu&&ed(e),ep&&\"function\"==typeof ep.setStrictMode)try{ep.setStrictMode(ef,e)}catch(e){}}var em=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(eg(e)/ey|0)|0},eg=Math.log,ey=Math.LN2,ev=256,eb=4194304;function eA(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function ex(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var o=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=0x7ffffff&r;return 0!==l?0!=(r=l&~a)?o=eA(r):0!=(i&=l)?o=eA(i):n||0!=(n=l&~e)&&(o=eA(n)):0!=(l=r&~a)?o=eA(l):0!==i?o=eA(i):n||0!=(n=r&~e)&&(o=eA(n)),0===o?0:0!==t&&t!==o&&0==(t&a)&&((a=o&-o)>=(n=t&-t)||32===a&&0!=(4194048&n))?t:o}function ew(e,t){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function eC(){var e=ev;return 0==(4194048&(ev<<=1))&&(ev=256),e}function e_(){var e=eb;return 0==(0x3c00000&(eb<<=1))&&(eb=4194304),e}function ek(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function eE(e,t){e.pendingLanes|=t,0x10000000!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function ej(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-em(t);e.entangledLanes|=t,e.entanglements[r]=0x40000000|e.entanglements[r]|4194090&n}function eS(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-em(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}function eO(e,t){var n=t&-t;return 0!=((n=0!=(42&n)?1:eB(n))&(e.suspendedLanes|t))?0:n}function eB(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 0x1000000:case 0x2000000:e=128;break;case 0x10000000:e=0x8000000;break;default:e=0}return e}function eP(e){return 2<(e&=-e)?8<e?0!=(0x7ffffff&e)?32:0x10000000:8:2}function eI(){var e=z.p;return 0!==e?e:void 0===(e=window.event)?32:ud(e.type)}function ez(e,t){var n=z.p;try{return z.p=e,t()}finally{z.p=n}}var eT=Math.random().toString(36).slice(2),eD=\"__reactFiber$\"+eT,eL=\"__reactProps$\"+eT,eN=\"__reactContainer$\"+eT,eR=\"__reactEvents$\"+eT,eM=\"__reactListeners$\"+eT,eZ=\"__reactHandles$\"+eT,eU=\"__reactResources$\"+eT,eF=\"__reactMarker$\"+eT;function eq(e){delete e[eD],delete e[eL],delete e[eR],delete e[eM],delete e[eZ]}function eH(e){var t=e[eD];if(t)return t;for(var n=e.parentNode;n;){if(t=n[eN]||n[eD]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=cz(e);null!==e;){if(n=e[eD])return n;e=cz(e)}return t}n=(e=n).parentNode}return null}function eV(e){if(e=e[eD]||e[eN]){var t=e.tag;if(5===t||6===t||13===t||31===t||26===t||27===t||3===t)return e}return null}function e$(e){var t=e.tag;if(5===t||26===t||27===t||6===t)return e.stateNode;throw Error(l(33))}function eW(e){var t=e[eU];return t||(t=e[eU]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function eY(e){e[eF]=!0}var eK=new Set,eX={};function eG(e,t){eQ(e,t),eQ(e+\"Capture\",t)}function eQ(e,t){for(eX[e]=t,e=0;e<t.length;e++)eK.add(t[e])}var eJ=RegExp(\"^[: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][: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\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"),e0={},e1={};function e2(e,t,n){if(Q.call(e1,t)||!Q.call(e0,t)&&(eJ.test(t)?e1[t]=!0:(e0[t]=!0,!1)))if(null===n)e.removeAttribute(t);else{switch(typeof n){case\"undefined\":case\"function\":case\"symbol\":e.removeAttribute(t);return;case\"boolean\":var r=t.toLowerCase().slice(0,5);if(\"data-\"!==r&&\"aria-\"!==r)return void e.removeAttribute(t)}e.setAttribute(t,\"\"+n)}}function e4(e,t,n){if(null===n)e.removeAttribute(t);else{switch(typeof n){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":e.removeAttribute(t);return}e.setAttribute(t,\"\"+n)}}function e5(e,t,n,r){if(null===r)e.removeAttribute(n);else{switch(typeof r){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":e.removeAttribute(n);return}e.setAttributeNS(t,n,\"\"+r)}}function e3(e){switch(typeof e){case\"bigint\":case\"boolean\":case\"number\":case\"string\":case\"undefined\":case\"object\":return e;default:return\"\"}}function e6(e){var t=e.type;return(e=e.nodeName)&&\"input\"===e.toLowerCase()&&(\"checkbox\"===t||\"radio\"===t)}function e9(e){if(!e._valueTracker){var t=e6(e)?\"checked\":\"value\";e._valueTracker=function(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&void 0!==r&&\"function\"==typeof r.get&&\"function\"==typeof r.set){var o=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){n=\"\"+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=\"\"+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e,t,\"\"+e[t])}}function e8(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=\"\";return e&&(r=e6(e)?e.checked?\"true\":\"false\":e.value),(e=r)!==n&&(t.setValue(e),!0)}function e7(e){if(void 0===(e=e||(\"undefined\"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var te=/[\\n\"\\\\]/g;function tt(e){return e.replace(te,function(e){return\"\\\\\"+e.charCodeAt(0).toString(16)+\" \"})}function tn(e,t,n,r,o,a,i,l){e.name=\"\",null!=i&&\"function\"!=typeof i&&\"symbol\"!=typeof i&&\"boolean\"!=typeof i?e.type=i:e.removeAttribute(\"type\"),null!=t?\"number\"===i?(0===t&&\"\"===e.value||e.value!=t)&&(e.value=\"\"+e3(t)):e.value!==\"\"+e3(t)&&(e.value=\"\"+e3(t)):\"submit\"!==i&&\"reset\"!==i||e.removeAttribute(\"value\"),null!=t?to(e,i,e3(t)):null!=n?to(e,i,e3(n)):null!=r&&e.removeAttribute(\"value\"),null==o&&null!=a&&(e.defaultChecked=!!a),null!=o&&(e.checked=o&&\"function\"!=typeof o&&\"symbol\"!=typeof o),null!=l&&\"function\"!=typeof l&&\"symbol\"!=typeof l&&\"boolean\"!=typeof l?e.name=\"\"+e3(l):e.removeAttribute(\"name\")}function tr(e,t,n,r,o,a,i,l){if(null!=a&&\"function\"!=typeof a&&\"symbol\"!=typeof a&&\"boolean\"!=typeof a&&(e.type=a),null!=t||null!=n){if((\"submit\"===a||\"reset\"===a)&&null==t)return void e9(e);n=null!=n?\"\"+e3(n):\"\",t=null!=t?\"\"+e3(t):n,l||t===e.value||(e.value=t),e.defaultValue=t}r=\"function\"!=typeof(r=null!=r?r:o)&&\"symbol\"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&\"function\"!=typeof i&&\"symbol\"!=typeof i&&\"boolean\"!=typeof i&&(e.name=i),e9(e)}function to(e,t,n){\"number\"===t&&e7(e.ownerDocument)===e||e.defaultValue===\"\"+n||(e.defaultValue=\"\"+n)}function ta(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t[\"$\"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty(\"$\"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(o=0,n=\"\"+e3(n),t=null;o<e.length;o++){if(e[o].value===n){e[o].selected=!0,r&&(e[o].defaultSelected=!0);return}null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function ti(e,t,n){if(null!=t&&((t=\"\"+e3(t))!==e.value&&(e.value=t),null==n)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=null!=n?\"\"+e3(n):\"\"}function tl(e,t,n,r){if(null==t){if(null!=r){if(null!=n)throw Error(l(92));if(P(r)){if(1<r.length)throw Error(l(93));r=r[0]}n=r}null==n&&(n=\"\"),t=n}e.defaultValue=n=e3(t),(r=e.textContent)===n&&\"\"!==r&&null!==r&&(e.value=r),e9(e)}function ts(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType){n.nodeValue=t;return}}e.textContent=t}var tc=new Set(\"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\" \"));function tu(e,t,n){var r=0===t.indexOf(\"--\");null==n||\"boolean\"==typeof n||\"\"===n?r?e.setProperty(t,\"\"):\"float\"===t?e.cssFloat=\"\":e[t]=\"\":r?e.setProperty(t,n):\"number\"!=typeof n||0===n||tc.has(t)?\"float\"===t?e.cssFloat=n:e[t]=(\"\"+n).trim():e[t]=n+\"px\"}function td(e,t,n){if(null!=t&&\"object\"!=typeof t)throw Error(l(62));if(e=e.style,null!=n){for(var r in n)!n.hasOwnProperty(r)||null!=t&&t.hasOwnProperty(r)||(0===r.indexOf(\"--\")?e.setProperty(r,\"\"):\"float\"===r?e.cssFloat=\"\":e[r]=\"\");for(var o in t)r=t[o],t.hasOwnProperty(o)&&n[o]!==r&&tu(e,o,r)}else for(var a in t)t.hasOwnProperty(a)&&tu(e,a,t[a])}function tf(e){if(-1===e.indexOf(\"-\"))return!1;switch(e){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}var tp=new Map([[\"acceptCharset\",\"accept-charset\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"],[\"crossOrigin\",\"crossorigin\"],[\"accentHeight\",\"accent-height\"],[\"alignmentBaseline\",\"alignment-baseline\"],[\"arabicForm\",\"arabic-form\"],[\"baselineShift\",\"baseline-shift\"],[\"capHeight\",\"cap-height\"],[\"clipPath\",\"clip-path\"],[\"clipRule\",\"clip-rule\"],[\"colorInterpolation\",\"color-interpolation\"],[\"colorInterpolationFilters\",\"color-interpolation-filters\"],[\"colorProfile\",\"color-profile\"],[\"colorRendering\",\"color-rendering\"],[\"dominantBaseline\",\"dominant-baseline\"],[\"enableBackground\",\"enable-background\"],[\"fillOpacity\",\"fill-opacity\"],[\"fillRule\",\"fill-rule\"],[\"floodColor\",\"flood-color\"],[\"floodOpacity\",\"flood-opacity\"],[\"fontFamily\",\"font-family\"],[\"fontSize\",\"font-size\"],[\"fontSizeAdjust\",\"font-size-adjust\"],[\"fontStretch\",\"font-stretch\"],[\"fontStyle\",\"font-style\"],[\"fontVariant\",\"font-variant\"],[\"fontWeight\",\"font-weight\"],[\"glyphName\",\"glyph-name\"],[\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\"],[\"glyphOrientationVertical\",\"glyph-orientation-vertical\"],[\"horizAdvX\",\"horiz-adv-x\"],[\"horizOriginX\",\"horiz-origin-x\"],[\"imageRendering\",\"image-rendering\"],[\"letterSpacing\",\"letter-spacing\"],[\"lightingColor\",\"lighting-color\"],[\"markerEnd\",\"marker-end\"],[\"markerMid\",\"marker-mid\"],[\"markerStart\",\"marker-start\"],[\"overlinePosition\",\"overline-position\"],[\"overlineThickness\",\"overline-thickness\"],[\"paintOrder\",\"paint-order\"],[\"panose-1\",\"panose-1\"],[\"pointerEvents\",\"pointer-events\"],[\"renderingIntent\",\"rendering-intent\"],[\"shapeRendering\",\"shape-rendering\"],[\"stopColor\",\"stop-color\"],[\"stopOpacity\",\"stop-opacity\"],[\"strikethroughPosition\",\"strikethrough-position\"],[\"strikethroughThickness\",\"strikethrough-thickness\"],[\"strokeDasharray\",\"stroke-dasharray\"],[\"strokeDashoffset\",\"stroke-dashoffset\"],[\"strokeLinecap\",\"stroke-linecap\"],[\"strokeLinejoin\",\"stroke-linejoin\"],[\"strokeMiterlimit\",\"stroke-miterlimit\"],[\"strokeOpacity\",\"stroke-opacity\"],[\"strokeWidth\",\"stroke-width\"],[\"textAnchor\",\"text-anchor\"],[\"textDecoration\",\"text-decoration\"],[\"textRendering\",\"text-rendering\"],[\"transformOrigin\",\"transform-origin\"],[\"underlinePosition\",\"underline-position\"],[\"underlineThickness\",\"underline-thickness\"],[\"unicodeBidi\",\"unicode-bidi\"],[\"unicodeRange\",\"unicode-range\"],[\"unitsPerEm\",\"units-per-em\"],[\"vAlphabetic\",\"v-alphabetic\"],[\"vHanging\",\"v-hanging\"],[\"vIdeographic\",\"v-ideographic\"],[\"vMathematical\",\"v-mathematical\"],[\"vectorEffect\",\"vector-effect\"],[\"vertAdvY\",\"vert-adv-y\"],[\"vertOriginX\",\"vert-origin-x\"],[\"vertOriginY\",\"vert-origin-y\"],[\"wordSpacing\",\"word-spacing\"],[\"writingMode\",\"writing-mode\"],[\"xmlnsXlink\",\"xmlns:xlink\"],[\"xHeight\",\"x-height\"]]),th=/^[\\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;function tm(e){return th.test(\"\"+e)?\"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\":e}function tg(){}var ty=null;function tv(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var tb=null,tA=null;function tx(e){var t=eV(e);if(t&&(e=t.stateNode)){var n=e[eL]||null;switch(e=t.stateNode,t.type){case\"input\":if(tn(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,\"radio\"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name=\"'+tt(\"\"+t)+'\"][type=\"radio\"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=r[eL]||null;if(!o)throw Error(l(90));tn(r,o.value,o.defaultValue,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name)}}for(t=0;t<n.length;t++)(r=n[t]).form===e.form&&e8(r)}break;case\"textarea\":ti(e,n.value,n.defaultValue);break;case\"select\":null!=(t=n.value)&&ta(e,!!n.multiple,t,!1)}}}var tw=!1;function tC(e,t,n){if(tw)return e(t,n);tw=!0;try{return e(t)}finally{if(tw=!1,(null!==tb||null!==tA)&&(sc(),tb&&(t=tb,e=tA,tA=tb=null,tx(t),e)))for(t=0;t<e.length;t++)tx(e[t])}}function t_(e,t){var n=e.stateNode;if(null===n)return null;var r=n[eL]||null;if(null===r)return null;switch(n=r[t],t){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(r=!r.disabled)||(r=\"button\"!==(e=e.type)&&\"input\"!==e&&\"select\"!==e&&\"textarea\"!==e),e=!r;break;default:e=!1}if(e)return null;if(n&&\"function\"!=typeof n)throw Error(l(231,t,typeof n));return n}var tk=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,tE=!1;if(tk)try{var tj={};Object.defineProperty(tj,\"passive\",{get:function(){tE=!0}}),window.addEventListener(\"test\",tj,tj),window.removeEventListener(\"test\",tj,tj)}catch(e){tE=!1}var tS=null,tO=null,tB=null;function tP(){if(tB)return tB;var e,t,n=tO,r=n.length,o=\"value\"in tS?tS.value:tS.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return tB=o.slice(e,1<t?1-t:void 0)}function tI(e){var t=e.keyCode;return\"charCode\"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function tz(){return!0}function tT(){return!1}function tD(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?tz:tT,this.isPropagationStopped=tT,this}return f(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():\"unknown\"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=tz)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():\"unknown\"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=tz)},persist:function(){},isPersistent:tz}),t}var tL,tN,tR,tM,tZ,tU={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},tF=tD(tU),tq=f({},tU,{view:0,detail:0}),tH=tD(tq),tV=f({},tq,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:t2,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return\"movementX\"in e?e.movementX:(e!==tZ&&(tZ&&\"mousemove\"===e.type?(tR=e.screenX-tZ.screenX,tM=e.screenY-tZ.screenY):tM=tR=0,tZ=e),tR)},movementY:function(e){return\"movementY\"in e?e.movementY:tM}}),t$=tD(tV),tW=tD(f({},tV,{dataTransfer:0})),tY=tD(f({},tq,{relatedTarget:0})),tK=tD(f({},tU,{animationName:0,elapsedTime:0,pseudoElement:0})),tX=tD(f({},tU,{clipboardData:function(e){return\"clipboardData\"in e?e.clipboardData:window.clipboardData}})),tG=tD(f({},tU,{data:0})),tQ={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},tJ={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},t0={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function t1(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=t0[e])&&!!t[e]}function t2(){return t1}var t4=tD(f({},tq,{key:function(e){if(e.key){var t=tQ[e.key]||e.key;if(\"Unidentified\"!==t)return t}return\"keypress\"===e.type?13===(e=tI(e))?\"Enter\":String.fromCharCode(e):\"keydown\"===e.type||\"keyup\"===e.type?tJ[e.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:t2,charCode:function(e){return\"keypress\"===e.type?tI(e):0},keyCode:function(e){return\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0},which:function(e){return\"keypress\"===e.type?tI(e):\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0}})),t5=tD(f({},tV,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),t3=tD(f({},tq,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:t2})),t6=tD(f({},tU,{propertyName:0,elapsedTime:0,pseudoElement:0})),t9=tD(f({},tV,{deltaX:function(e){return\"deltaX\"in e?e.deltaX:\"wheelDeltaX\"in e?-e.wheelDeltaX:0},deltaY:function(e){return\"deltaY\"in e?e.deltaY:\"wheelDeltaY\"in e?-e.wheelDeltaY:\"wheelDelta\"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),t8=tD(f({},tU,{newState:0,oldState:0})),t7=[9,13,27,32],ne=tk&&\"CompositionEvent\"in window,nt=null;tk&&\"documentMode\"in document&&(nt=document.documentMode);var nn=tk&&\"TextEvent\"in window&&!nt,nr=tk&&(!ne||nt&&8<nt&&11>=nt),no=!1;function na(e,t){switch(e){case\"keyup\":return -1!==t7.indexOf(t.keyCode);case\"keydown\":return 229!==t.keyCode;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function ni(e){return\"object\"==typeof(e=e.detail)&&\"data\"in e?e.data:null}var nl=!1,ns={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function nc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return\"input\"===t?!!ns[e.type]:\"textarea\"===t}function nu(e,t,n,r){tb?tA?tA.push(r):tA=[r]:tb=r,0<(t=ct(t,\"onChange\")).length&&(n=new tF(\"onChange\",\"change\",null,n,r),e.push({event:n,listeners:t}))}var nd=null,nf=null;function np(e){s4(e,0)}function nh(e){if(e8(e$(e)))return e}function nm(e,t){if(\"change\"===e)return t}var ng=!1;if(tk){if(tk){var ny=\"oninput\"in document;if(!ny){var nv=document.createElement(\"div\");nv.setAttribute(\"oninput\",\"return;\"),ny=\"function\"==typeof nv.oninput}r=ny}else r=!1;ng=r&&(!document.documentMode||9<document.documentMode)}function nb(){nd&&(nd.detachEvent(\"onpropertychange\",nA),nf=nd=null)}function nA(e){if(\"value\"===e.propertyName&&nh(nf)){var t=[];nu(t,nf,e,tv(e)),tC(np,t)}}function nx(e,t,n){\"focusin\"===e?(nb(),nd=t,nf=n,nd.attachEvent(\"onpropertychange\",nA)):\"focusout\"===e&&nb()}function nw(e){if(\"selectionchange\"===e||\"keyup\"===e||\"keydown\"===e)return nh(nf)}function nC(e,t){if(\"click\"===e)return nh(t)}function n_(e,t){if(\"input\"===e||\"change\"===e)return nh(t)}var nk=\"function\"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function nE(e,t){if(nk(e,t))return!0;if(\"object\"!=typeof e||null===e||\"object\"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!Q.call(t,o)||!nk(e[o],t[o]))return!1}return!0}function nj(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function nS(e,t){var n,r=nj(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=nj(r)}}function nO(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var t=e7(e.document);t instanceof e.HTMLIFrameElement;){try{var n=\"string\"==typeof t.contentWindow.location.href}catch(e){n=!1}if(n)e=t.contentWindow;else break;t=e7(e.document)}return t}function nB(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(\"input\"===t&&(\"text\"===e.type||\"search\"===e.type||\"tel\"===e.type||\"url\"===e.type||\"password\"===e.type)||\"textarea\"===t||\"true\"===e.contentEditable)}var nP=tk&&\"documentMode\"in document&&11>=document.documentMode,nI=null,nz=null,nT=null,nD=!1;function nL(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;nD||null==nI||nI!==e7(r)||(r=\"selectionStart\"in(r=nI)&&nB(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},nT&&nE(nT,r)||(nT=r,0<(r=ct(nz,\"onSelect\")).length&&(t=new tF(\"onSelect\",\"select\",null,t,n),e.push({event:t,listeners:r}),t.target=nI)))}function nN(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[\"Webkit\"+e]=\"webkit\"+t,n[\"Moz\"+e]=\"moz\"+t,n}var nR={animationend:nN(\"Animation\",\"AnimationEnd\"),animationiteration:nN(\"Animation\",\"AnimationIteration\"),animationstart:nN(\"Animation\",\"AnimationStart\"),transitionrun:nN(\"Transition\",\"TransitionRun\"),transitionstart:nN(\"Transition\",\"TransitionStart\"),transitioncancel:nN(\"Transition\",\"TransitionCancel\"),transitionend:nN(\"Transition\",\"TransitionEnd\")},nM={},nZ={};function nU(e){if(nM[e])return nM[e];if(!nR[e])return e;var t,n=nR[e];for(t in n)if(n.hasOwnProperty(t)&&t in nZ)return nM[e]=n[t];return e}tk&&(nZ=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete nR.animationend.animation,delete nR.animationiteration.animation,delete nR.animationstart.animation),\"TransitionEvent\"in window||delete nR.transitionend.transition);var nF=nU(\"animationend\"),nq=nU(\"animationiteration\"),nH=nU(\"animationstart\"),nV=nU(\"transitionrun\"),n$=nU(\"transitionstart\"),nW=nU(\"transitioncancel\"),nY=nU(\"transitionend\"),nK=new Map,nX=\"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");function nG(e,t){nK.set(e,t),eG(t,[e])}nX.push(\"scrollEnd\");var nQ=\"function\"==typeof reportError?reportError:function(e){if(\"object\"==typeof window&&\"function\"==typeof window.ErrorEvent){var t=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:\"object\"==typeof e&&null!==e&&\"string\"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(\"object\"==typeof process&&\"function\"==typeof process.emit)return void process.emit(\"uncaughtException\",e);console.error(e)},nJ=[],n0=0,n1=0;function n2(){for(var e=n0,t=n1=n0=0;t<e;){var n=nJ[t];nJ[t++]=null;var r=nJ[t];nJ[t++]=null;var o=nJ[t];nJ[t++]=null;var a=nJ[t];if(nJ[t++]=null,null!==r&&null!==o){var i=r.pending;null===i?o.next=o:(o.next=i.next,i.next=o),r.pending=o}0!==a&&n6(n,o,a)}}function n4(e,t,n,r){nJ[n0++]=e,nJ[n0++]=t,nJ[n0++]=n,nJ[n0++]=r,n1|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function n5(e,t,n,r){return n4(e,t,n,r),n9(e)}function n3(e,t){return n4(e,null,null,t),n9(e)}function n6(e,t,n){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n);for(var o=!1,a=e.return;null!==a;)a.childLanes|=n,null!==(r=a.alternate)&&(r.childLanes|=n),22===a.tag&&(null===(e=a.stateNode)||1&e._visibility||(o=!0)),e=a,a=a.return;return 3===e.tag?(a=e.stateNode,o&&null!==t&&(o=31-em(n),null===(r=(e=a.hiddenUpdates)[o])?e[o]=[t]:r.push(t),t.lane=0x20000000|n),a):null}function n9(e){if(50<st)throw st=0,sn=null,Error(l(185));for(var t=e.return;null!==t;)t=(e=t).return;return 3===e.tag?e.stateNode:null}var n8={};function n7(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function re(e,t,n,r){return new n7(e,t,n,r)}function rt(e){return!(!(e=e.prototype)||!e.isReactComponent)}function rn(e,t){var n=e.alternate;return null===n?((n=re(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=0x3e00000&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function rr(e,t){e.flags&=0x3e00002;var n=e.alternate;return null===n?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,e.dependencies=null===(t=n.dependencies)?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ro(e,t,n,r,o,a){var i=0;if(r=e,\"function\"==typeof e)rt(e)&&(i=1);else if(\"string\"==typeof e)i=!function(e,t,n){if(1===n||null!=t.itemProp)return!1;switch(e){case\"meta\":case\"title\":return!0;case\"style\":if(\"string\"!=typeof t.precedence||\"string\"!=typeof t.href||\"\"===t.href)break;return!0;case\"link\":if(\"string\"!=typeof t.rel||\"string\"!=typeof t.href||\"\"===t.href||t.onLoad||t.onError)break;if(\"stylesheet\"===t.rel)return e=t.disabled,\"string\"==typeof t.precedence&&null==e;return!0;case\"script\":if(t.async&&\"function\"!=typeof t.async&&\"symbol\"!=typeof t.async&&!t.onLoad&&!t.onError&&t.src&&\"string\"==typeof t.src)return!0}return!1}(e,n,Z.current)?\"html\"===e||\"head\"===e||\"body\"===e?27:5:26;else e:switch(e){case E:return(e=re(31,n,t,o)).elementType=E,e.lanes=a,e;case g:return ra(n.children,o,a,t);case y:i=8,o|=24;break;case v:return(e=re(12,n,t,2|o)).elementType=v,e.lanes=a,e;case w:return(e=re(13,n,t,o)).elementType=w,e.lanes=a,e;case C:return(e=re(19,n,t,o)).elementType=C,e.lanes=a,e;default:if(\"object\"==typeof e&&null!==e)switch(e.$$typeof){case A:i=10;break e;case b:i=9;break e;case x:i=11;break e;case _:i=14;break e;case k:i=16,r=null;break e}i=29,n=Error(l(130,null===e?\"null\":typeof e,\"\")),r=null}return(t=re(i,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function ra(e,t,n,r){return(e=re(7,e,r,t)).lanes=n,e}function ri(e,t,n){return(e=re(6,e,null,t)).lanes=n,e}function rl(e){var t=re(18,null,null,0);return t.stateNode=e,t}function rs(e,t,n){return(t=re(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var rc=new WeakMap;function ru(e,t){if(\"object\"==typeof e&&null!==e){var n=rc.get(e);return void 0!==n?n:(t={value:e,source:t,stack:G(t)},rc.set(e,t),t)}return{value:e,source:t,stack:G(t)}}var rd=[],rf=0,rp=null,rh=0,rm=[],rg=0,ry=null,rv=1,rb=\"\";function rA(e,t){rd[rf++]=rh,rd[rf++]=rp,rp=e,rh=t}function rx(e,t,n){rm[rg++]=rv,rm[rg++]=rb,rm[rg++]=ry,ry=e;var r=rv;e=rb;var o=32-em(r)-1;r&=~(1<<o),n+=1;var a=32-em(t)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,rv=1<<32-em(t)+o|n<<o|r,rb=a+e}else rv=1<<a|n<<o|r,rb=e}function rw(e){null!==e.return&&(rA(e,1),rx(e,1,0))}function rC(e){for(;e===rp;)rp=rd[--rf],rd[rf]=null,rh=rd[--rf],rd[rf]=null;for(;e===ry;)ry=rm[--rg],rm[rg]=null,rb=rm[--rg],rm[rg]=null,rv=rm[--rg],rm[rg]=null}function r_(e,t){rm[rg++]=rv,rm[rg++]=rb,rm[rg++]=ry,rv=t.id,rb=t.overflow,ry=e}var rk=null,rE=null,rj=!1,rS=null,rO=!1,rB=Error(l(519));function rP(e){var t=Error(l(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?\"text\":\"HTML\",\"\"));throw rN(ru(t,e)),rB}function rI(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[eD]=e,t[eL]=r,n){case\"dialog\":s5(\"cancel\",t),s5(\"close\",t);break;case\"iframe\":case\"object\":case\"embed\":s5(\"load\",t);break;case\"video\":case\"audio\":for(n=0;n<s1.length;n++)s5(s1[n],t);break;case\"source\":s5(\"error\",t);break;case\"img\":case\"image\":case\"link\":s5(\"error\",t),s5(\"load\",t);break;case\"details\":s5(\"toggle\",t);break;case\"input\":s5(\"invalid\",t),tr(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case\"select\":s5(\"invalid\",t);break;case\"textarea\":s5(\"invalid\",t),tl(t,r.value,r.defaultValue,r.children)}\"string\"!=typeof(n=r.children)&&\"number\"!=typeof n&&\"bigint\"!=typeof n||t.textContent===\"\"+n||!0===r.suppressHydrationWarning||cl(t.textContent,n)?(null!=r.popover&&(s5(\"beforetoggle\",t),s5(\"toggle\",t)),null!=r.onScroll&&s5(\"scroll\",t),null!=r.onScrollEnd&&s5(\"scrollend\",t),null!=r.onClick&&(t.onclick=tg),t=!0):t=!1,t||rP(e,!0)}function rz(e){for(rk=e.return;rk;)switch(rk.tag){case 5:case 31:case 13:rO=!1;return;case 27:case 3:rO=!0;return;default:rk=rk.return}}function rT(e){if(e!==rk)return!1;if(!rj)return rz(e),rj=!0,!1;var t,n=e.tag;if((t=3!==n&&27!==n)&&((t=5===n)&&(t=\"form\"===(t=e.type)||\"button\"===t||cg(e.type,e.memoizedProps)),t=!t),t&&rE&&rP(e),rz(e),13===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rE=cI(e)}else if(31===n){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rE=cI(e)}else 27===n?(n=rE,cC(e.type)?(e=cP,cP=null,rE=e):rE=n):rE=rk?cB(e.stateNode.nextSibling):null;return!0}function rD(){rE=rk=null,rj=!1}function rL(){var e=rS;return null!==e&&(null===lQ?lQ=e:lQ.push.apply(lQ,e),rS=null),e}function rN(e){null===rS?rS=[e]:rS.push(e)}var rR=N(null),rM=null,rZ=null;function rU(e,t,n){M(rR,t._currentValue),t._currentValue=n}function rF(e){e._currentValue=rR.current,R(rR)}function rq(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function rH(e,t,n,r){var o=e.child;for(null!==o&&(o.return=e);null!==o;){var a=o.dependencies;if(null!==a){var i=o.child;a=a.firstContext;e:for(;null!==a;){var s=a;a=o;for(var c=0;c<t.length;c++)if(s.context===t[c]){a.lanes|=n,null!==(s=a.alternate)&&(s.lanes|=n),rq(a.return,n,e),r||(i=null);break e}a=s.next}}else if(18===o.tag){if(null===(i=o.return))throw Error(l(341));i.lanes|=n,null!==(a=i.alternate)&&(a.lanes|=n),rq(i,n,e),i=null}else i=o.child;if(null!==i)i.return=o;else for(i=o;null!==i;){if(i===e){i=null;break}if(null!==(o=i.sibling)){o.return=i.return,i=o;break}i=i.return}o=i}}function rV(e,t,n,r){e=null;for(var o=t,a=!1;null!==o;){if(!a){if(0!=(524288&o.flags))a=!0;else if(0!=(262144&o.flags))break}if(10===o.tag){var i=o.alternate;if(null===i)throw Error(l(387));if(null!==(i=i.memoizedProps)){var s=o.type;nk(o.pendingProps.value,i.value)||(null!==e?e.push(s):e=[s])}}else if(o===q.current){if(null===(i=o.alternate))throw Error(l(387));i.memoizedState.memoizedState!==o.memoizedState.memoizedState&&(null!==e?e.push(c9):e=[c9])}o=o.return}null!==e&&rH(t,e,n,r),t.flags|=262144}function r$(e){for(e=e.firstContext;null!==e;){if(!nk(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function rW(e){rM=e,rZ=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function rY(e){return rX(rM,e)}function rK(e,t){return null===rM&&rW(e),rX(e,t)}function rX(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},null===rZ){if(null===e)throw Error(l(308));rZ=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else rZ=rZ.next=t;return n}var rG=\"undefined\"!=typeof AbortController?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},rQ=o.unstable_scheduleCallback,rJ=o.unstable_NormalPriority,r0={$$typeof:A,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function r1(){return{controller:new rG,data:new Map,refCount:0}}function r2(e){e.refCount--,0===e.refCount&&rQ(rJ,function(){e.controller.abort()})}var r4=null,r5=0,r3=0,r6=null;function r9(){if(0==--r5&&null!==r4){null!==r6&&(r6.status=\"fulfilled\");var e=r4;r4=null,r3=0,r6=null;for(var t=0;t<e.length;t++)(0,e[t])()}}var r8=I.S;I.S=function(e,t){\"object\"==typeof t&&null!==t&&\"function\"==typeof t.then&&function(e,t){if(null===r4){var n=r4=[];r5=0,r3=sX(),r6={status:\"pending\",value:void 0,then:function(e){n.push(e)}}}r5++,t.then(r9,r9)}(0,t),null!==r8&&r8(e,t)};var r7=N(null);function oe(){var e=r7.current;return null!==e?e:lL.pooledCache}function ot(e,t){null===t?M(r7,r7.current):M(r7,t.pool)}function on(){var e=oe();return null===e?null:{parent:r0._currentValue,pool:e}}var or=Error(l(460)),oo=Error(l(474)),oa=Error(l(542)),oi={then:function(){}};function ol(e){return\"fulfilled\"===(e=e.status)||\"rejected\"===e}function os(e,t,n){switch(void 0===(n=e[n])?e.push(t):n!==t&&(t.then(tg,tg),t=n),t.status){case\"fulfilled\":return t.value;case\"rejected\":throw of(e=t.reason),e;default:if(\"string\"==typeof t.status)t.then(tg,tg);else{if(null!==(e=lL)&&100<e.shellSuspendCounter)throw Error(l(482));(e=t).status=\"pending\",e.then(function(e){if(\"pending\"===t.status){var n=t;n.status=\"fulfilled\",n.value=e}},function(e){if(\"pending\"===t.status){var n=t;n.status=\"rejected\",n.reason=e}})}switch(t.status){case\"fulfilled\":return t.value;case\"rejected\":throw of(e=t.reason),e}throw ou=t,or}}function oc(e){try{return(0,e._init)(e._payload)}catch(e){if(null!==e&&\"object\"==typeof e&&\"function\"==typeof e.then)throw ou=e,or;throw e}}var ou=null;function od(){if(null===ou)throw Error(l(459));var e=ou;return ou=null,e}function of(e){if(e===or||e===oa)throw Error(l(483))}var op=null,oh=0;function om(e){var t=oh;return oh+=1,null===op&&(op=[]),os(op,e,t)}function og(e,t){e.ref=void 0!==(t=t.props.ref)?t:null}function oy(e,t){if(t.$$typeof===p)throw Error(l(525));throw Error(l(31,\"[object Object]\"===(e=Object.prototype.toString.call(t))?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":e))}function ov(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;null!==e;)null!==e.key?t.set(e.key,e):t.set(e.index,e),e=e.sibling;return t}function o(e,t){return(e=rn(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return(t.index=r,e)?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=0x4000002,n):r:(t.flags|=0x4000002,n):(t.flags|=1048576,n)}function i(t){return e&&null===t.alternate&&(t.flags|=0x4000002),t}function s(e,t,n,r){return null===t||6!==t.tag?(t=ri(n,e.mode,r)).return=e:(t=o(t,n)).return=e,t}function c(e,t,n,r){var a=n.type;return a===g?d(e,t,n.props.children,r,n.key):(null!==t&&(t.elementType===a||\"object\"==typeof a&&null!==a&&a.$$typeof===k&&oc(a)===t.type)?og(t=o(t,n.props),n):og(t=ro(n.type,n.key,n.props,null,e.mode,r),n),t.return=e,t)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=rs(n,e.mode,r)).return=e:(t=o(t,n.children||[])).return=e,t}function d(e,t,n,r,a){return null===t||7!==t.tag?(t=ra(n,e.mode,r,a)).return=e:(t=o(t,n)).return=e,t}function f(e,t,n){if(\"string\"==typeof t&&\"\"!==t||\"number\"==typeof t||\"bigint\"==typeof t)return(t=ri(\"\"+t,e.mode,n)).return=e,t;if(\"object\"==typeof t&&null!==t){switch(t.$$typeof){case h:return og(n=ro(t.type,t.key,t.props,null,e.mode,n),t),n.return=e,n;case m:return(t=rs(t,e.mode,n)).return=e,t;case k:return f(e,t=oc(t),n)}if(P(t)||O(t))return(t=ra(t,e.mode,n,null)).return=e,t;if(\"function\"==typeof t.then)return f(e,om(t),n);if(t.$$typeof===A)return f(e,rK(e,t),n);oy(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if(\"string\"==typeof n&&\"\"!==n||\"number\"==typeof n||\"bigint\"==typeof n)return null!==o?null:s(e,t,\"\"+n,r);if(\"object\"==typeof n&&null!==n){switch(n.$$typeof){case h:return n.key===o?c(e,t,n,r):null;case m:return n.key===o?u(e,t,n,r):null;case k:return p(e,t,n=oc(n),r)}if(P(n)||O(n))return null!==o?null:d(e,t,n,r,null);if(\"function\"==typeof n.then)return p(e,t,om(n),r);if(n.$$typeof===A)return p(e,t,rK(e,n),r);oy(e,n)}return null}function y(e,t,n,r,o){if(\"string\"==typeof r&&\"\"!==r||\"number\"==typeof r||\"bigint\"==typeof r)return s(t,e=e.get(n)||null,\"\"+r,o);if(\"object\"==typeof r&&null!==r){switch(r.$$typeof){case h:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case m:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o);case k:return y(e,t,n,r=oc(r),o)}if(P(r)||O(r))return d(t,e=e.get(n)||null,r,o,null);if(\"function\"==typeof r.then)return y(e,t,n,om(r),o);if(r.$$typeof===A)return y(e,t,n,rK(t,r),o);oy(t,r)}return null}return function(s,c,u,d){try{oh=0;var v=function s(c,u,d,v){if(\"object\"==typeof d&&null!==d&&d.type===g&&null===d.key&&(d=d.props.children),\"object\"==typeof d&&null!==d){switch(d.$$typeof){case h:e:{for(var b=d.key;null!==u;){if(u.key===b){if((b=d.type)===g){if(7===u.tag){n(c,u.sibling),(v=o(u,d.props.children)).return=c,c=v;break e}}else if(u.elementType===b||\"object\"==typeof b&&null!==b&&b.$$typeof===k&&oc(b)===u.type){n(c,u.sibling),og(v=o(u,d.props),d),v.return=c,c=v;break e}n(c,u);break}t(c,u),u=u.sibling}d.type===g?(v=ra(d.props.children,c.mode,v,d.key)).return=c:(og(v=ro(d.type,d.key,d.props,null,c.mode,v),d),v.return=c),c=v}return i(c);case m:e:{for(b=d.key;null!==u;){if(u.key===b)if(4===u.tag&&u.stateNode.containerInfo===d.containerInfo&&u.stateNode.implementation===d.implementation){n(c,u.sibling),(v=o(u,d.children||[])).return=c,c=v;break e}else{n(c,u);break}t(c,u),u=u.sibling}(v=rs(d,c.mode,v)).return=c,c=v}return i(c);case k:return s(c,u,d=oc(d),v)}if(P(d))return function(o,i,l,s){for(var c=null,u=null,d=i,h=i=0,m=null;null!==d&&h<l.length;h++){d.index>h?(m=d,d=null):m=d.sibling;var g=p(o,d,l[h],s);if(null===g){null===d&&(d=m);break}e&&d&&null===g.alternate&&t(o,d),i=a(g,i,h),null===u?c=g:u.sibling=g,u=g,d=m}if(h===l.length)return n(o,d),rj&&rA(o,h),c;if(null===d){for(;h<l.length;h++)null!==(d=f(o,l[h],s))&&(i=a(d,i,h),null===u?c=d:u.sibling=d,u=d);return rj&&rA(o,h),c}for(d=r(d);h<l.length;h++)null!==(m=y(d,o,h,l[h],s))&&(e&&null!==m.alternate&&d.delete(null===m.key?h:m.key),i=a(m,i,h),null===u?c=m:u.sibling=m,u=m);return e&&d.forEach(function(e){return t(o,e)}),rj&&rA(o,h),c}(c,u,d,v);if(O(d)){if(\"function\"!=typeof(b=O(d)))throw Error(l(150));return function(o,i,s,c){if(null==s)throw Error(l(151));for(var u=null,d=null,h=i,m=i=0,g=null,v=s.next();null!==h&&!v.done;m++,v=s.next()){h.index>m?(g=h,h=null):g=h.sibling;var b=p(o,h,v.value,c);if(null===b){null===h&&(h=g);break}e&&h&&null===b.alternate&&t(o,h),i=a(b,i,m),null===d?u=b:d.sibling=b,d=b,h=g}if(v.done)return n(o,h),rj&&rA(o,m),u;if(null===h){for(;!v.done;m++,v=s.next())null!==(v=f(o,v.value,c))&&(i=a(v,i,m),null===d?u=v:d.sibling=v,d=v);return rj&&rA(o,m),u}for(h=r(h);!v.done;m++,v=s.next())null!==(v=y(h,o,m,v.value,c))&&(e&&null!==v.alternate&&h.delete(null===v.key?m:v.key),i=a(v,i,m),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(o,e)}),rj&&rA(o,m),u}(c,u,d=b.call(d),v)}if(\"function\"==typeof d.then)return s(c,u,om(d),v);if(d.$$typeof===A)return s(c,u,rK(c,d),v);oy(c,d)}return\"string\"==typeof d&&\"\"!==d||\"number\"==typeof d||\"bigint\"==typeof d?(d=\"\"+d,null!==u&&6===u.tag?(n(c,u.sibling),(v=o(u,d)).return=c):(n(c,u),(v=ri(d,c.mode,v)).return=c),i(c=v)):n(c,u)}(s,c,u,d);return op=null,v}catch(e){if(e===or||e===oa)throw e;var b=re(29,e,null,s.mode);return b.lanes=d,b.return=s,b}finally{}}}var ob=ov(!0),oA=ov(!1),ox=!1;function ow(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function oC(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function o_(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ok(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&lD)){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,t=n9(e),n6(e,null,n),t}return n4(e,r,t,n),n9(e)}function oE(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194048&n))){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eS(e,n)}}function oj(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var oS=!1;function oO(){if(oS){var e=r6;if(null!==e)throw e}}function oB(e,t,n,r){oS=!1;var o=e.updateQueue;ox=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var s=l,c=s.next;s.next=null,null===i?a=c:i.next=c,i=s;var u=e.alternate;null!==u&&(l=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===l?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=s)}if(null!==a){var d=o.baseState;for(i=0,u=c=s=null,l=a;;){var p=-0x20000001&l.lane,h=p!==l.lane;if(h?(lR&p)===p:(r&p)===p){0!==p&&p===r3&&(oS=!0),null!==u&&(u=u.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var m=e,g=l;switch(p=t,g.tag){case 1:if(\"function\"==typeof(m=g.payload)){d=m.call(n,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p=\"function\"==typeof(m=g.payload)?m.call(n,d,p):m))break e;d=f({},d,p);break e;case 2:ox=!0}}null!==(p=l.callback)&&(e.flags|=64,h&&(e.flags|=8192),null===(h=o.callbacks)?o.callbacks=[p]:h.push(p))}else h={lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===u?(c=u=h,s=d):u=u.next=h,i|=p;if(null===(l=l.next))if(null===(l=o.shared.pending))break;else l=(h=l).next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}null===u&&(s=d),o.baseState=s,o.firstBaseUpdate=c,o.lastBaseUpdate=u,null===a&&(o.shared.lanes=0),l$|=i,e.lanes=i,e.memoizedState=d}}function oP(e,t){if(\"function\"!=typeof e)throw Error(l(191,e));e.call(t)}function oI(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;e<n.length;e++)oP(n[e],t)}var oz=N(null),oT=N(0);function oD(e,t){M(oT,e=lH),M(oz,t),lH=e|t.baseLanes}function oL(){M(oT,lH),M(oz,oz.current)}function oN(){lH=oT.current,R(oz),R(oT)}var oR=N(null),oM=null;function oZ(e){var t=e.alternate;M(oV,1&oV.current),M(oR,e),null===oM&&(null===t||null!==oz.current?oM=e:null!==t.memoizedState&&(oM=e))}function oU(e){M(oV,oV.current),M(oR,e),null===oM&&(oM=e)}function oF(e){22===e.tag?(M(oV,oV.current),M(oR,e),null===oM&&(oM=e)):oq(e)}function oq(){M(oV,oV.current),M(oR,oR.current)}function oH(e){R(oR),oM===e&&(oM=null),R(oV)}var oV=N(0);function o$(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||cS(n)||cO(n)))return t}else if(19===t.tag&&(\"forwards\"===t.memoizedProps.revealOrder||\"backwards\"===t.memoizedProps.revealOrder||\"unstable_legacy-backwards\"===t.memoizedProps.revealOrder||\"together\"===t.memoizedProps.revealOrder)){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var oW=0,oY=null,oK=null,oX=null,oG=!1,oQ=!1,oJ=!1,o0=0,o1=0,o2=null,o4=0;function o5(){throw Error(l(321))}function o3(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!nk(e[n],t[n]))return!1;return!0}function o6(e,t,n,r,o,a){return oW=a,oY=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,I.H=null===e||null===e.memoizedState?it:ir,oJ=!1,a=n(r,o),oJ=!1,oQ&&(a=o8(t,n,r,o)),o9(e),a}function o9(e){I.H=ie;var t=null!==oK&&null!==oK.next;if(oW=0,oX=oK=oY=null,oG=!1,o1=0,o2=null,t)throw Error(l(300));null===e||iA||null!==(e=e.dependencies)&&r$(e)&&(iA=!0)}function o8(e,t,n,r){oY=e;var o=0;do{if(oQ&&(o2=null),o1=0,oQ=!1,25<=o)throw Error(l(301));if(o+=1,oX=oK=null,null!=e.updateQueue){var a=e.updateQueue;a.lastEffect=null,a.events=null,a.stores=null,null!=a.memoCache&&(a.memoCache.index=0)}I.H=io,a=t(n,r)}while(oQ);return a}function o7(){var e=I.H,t=e.useState()[0];return t=\"function\"==typeof t.then?ai(t):t,e=e.useState()[0],(null!==oK?oK.memoizedState:null)!==e&&(oY.flags|=1024),t}function ae(){var e=0!==o0;return o0=0,e}function at(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function an(e){if(oG){for(e=e.memoizedState;null!==e;){var t=e.queue;null!==t&&(t.pending=null),e=e.next}oG=!1}oW=0,oX=oK=oY=null,oQ=!1,o1=o0=0,o2=null}function ar(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===oX?oY.memoizedState=oX=e:oX=oX.next=e,oX}function ao(){if(null===oK){var e=oY.alternate;e=null!==e?e.memoizedState:null}else e=oK.next;var t=null===oX?oY.memoizedState:oX.next;if(null!==t)oX=t,oK=e;else{if(null===e){if(null===oY.alternate)throw Error(l(467));throw Error(l(310))}e={memoizedState:(oK=e).memoizedState,baseState:oK.baseState,baseQueue:oK.baseQueue,queue:oK.queue,next:null},null===oX?oY.memoizedState=oX=e:oX=oX.next=e}return oX}function aa(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ai(e){var t=o1;return o1+=1,null===o2&&(o2=[]),e=os(o2,e,t),t=oY,null===(null===oX?t.memoizedState:oX.next)&&(I.H=null===(t=t.alternate)||null===t.memoizedState?it:ir),e}function al(e){if(null!==e&&\"object\"==typeof e){if(\"function\"==typeof e.then)return ai(e);if(e.$$typeof===A)return rY(e)}throw Error(l(438,String(e)))}function as(e){var t=null,n=oY.updateQueue;if(null!==n&&(t=n.memoCache),null==t){var r=oY.alternate;null!==r&&null!==(r=r.updateQueue)&&null!=(r=r.memoCache)&&(t={data:r.data.map(function(e){return e.slice()}),index:0})}if(null==t&&(t={data:[],index:0}),null===n&&(n=aa(),oY.updateQueue=n),n.memoCache=t,void 0===(n=t.data[t.index]))for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=j;return t.index++,n}function ac(e,t){return\"function\"==typeof t?t(e):t}function au(e){return ad(ao(),oK,e)}function ad(e,t,n){var r=e.queue;if(null===r)throw Error(l(311));r.lastRenderedReducer=n;var o=e.baseQueue,a=r.pending;if(null!==a){if(null!==o){var i=o.next;o.next=a.next,a.next=i}t.baseQueue=o=a,r.pending=null}if(a=e.baseState,null===o)e.memoizedState=a;else{t=o.next;var s=i=null,c=null,u=t,d=!1;do{var f=-0x20000001&u.lane;if(f!==u.lane?(lR&f)===f:(oW&f)===f){var p=u.revertLane;if(0===p)null!==c&&(c=c.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===r3&&(d=!0);else if((oW&p)===p){u=u.next,p===r3&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=f,i=a):c=c.next=f,oY.lanes|=p,l$|=p;f=u.action,oJ&&n(a,f),a=u.hasEagerState?u.eagerState:n(a,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=p,i=a):c=c.next=p,oY.lanes|=f,l$|=f;u=u.next}while(null!==u&&u!==t);if(null===c?i=a:c.next=s,!nk(a,e.memoizedState)&&(iA=!0,d&&null!==(n=r6)))throw n;e.memoizedState=a,e.baseState=i,e.baseQueue=c,r.lastRenderedState=a}return null===o&&(r.lanes=0),[e.memoizedState,r.dispatch]}function af(e){var t=ao(),n=t.queue;if(null===n)throw Error(l(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var i=o=o.next;do a=e(a,i.action),i=i.next;while(i!==o);nk(a,t.memoizedState)||(iA=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function ap(e,t,n){var r=oY,o=ao(),a=rj;if(a){if(void 0===n)throw Error(l(407));n=n()}else n=t();var i=!nk((oK||o).memoizedState,n);if(i&&(o.memoizedState=n,iA=!0),o=o.queue,aR(ag.bind(null,r,o,e),[e]),o.getSnapshot!==t||i||null!==oX&&1&oX.memoizedState.tag){if(r.flags|=2048,az(9,{destroy:void 0},am.bind(null,r,o,n,t),null),null===lL)throw Error(l(349));a||0!=(124&oW)||ah(r,t,n)}return n}function ah(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=oY.updateQueue)?(t=aa(),oY.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function am(e,t,n,r){t.value=n,t.getSnapshot=r,ay(t)&&av(e)}function ag(e,t,n){return n(function(){ay(t)&&av(e)})}function ay(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!nk(e,n)}catch(e){return!0}}function av(e){var t=n3(e,2);null!==t&&sa(t,e,2)}function ab(e){var t=ar();if(\"function\"==typeof e){var n=e;if(e=n(),oJ){eh(!0);try{n()}finally{eh(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:e},t}function aA(e,t,n,r){return e.baseState=n,ad(e,oK,\"function\"==typeof r?r:ac)}function ax(e,t,n,r,o){if(a9(e))throw Error(l(485));if(null!==(e=t.action)){var a={payload:o,action:e,next:null,isTransition:!0,status:\"pending\",value:null,reason:null,listeners:[],then:function(e){a.listeners.push(e)}};null!==I.T?n(!0):a.isTransition=!1,r(a),null===(n=t.pending)?(a.next=t.pending=a,aw(t,a)):(a.next=n.next,t.pending=n.next=a)}}function aw(e,t){var n=t.action,r=t.payload,o=e.state;if(t.isTransition){var a=I.T,i={};I.T=i;try{var l=n(o,r),s=I.S;null!==s&&s(i,l),aC(e,t,l)}catch(n){ak(e,t,n)}finally{null!==a&&null!==i.types&&(a.types=i.types),I.T=a}}else try{a=n(o,r),aC(e,t,a)}catch(n){ak(e,t,n)}}function aC(e,t,n){null!==n&&\"object\"==typeof n&&\"function\"==typeof n.then?n.then(function(n){a_(e,t,n)},function(n){return ak(e,t,n)}):a_(e,t,n)}function a_(e,t,n){t.status=\"fulfilled\",t.value=n,aE(t),e.state=n,null!==(t=e.pending)&&((n=t.next)===t?e.pending=null:(n=n.next,t.next=n,aw(e,n)))}function ak(e,t,n){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do t.status=\"rejected\",t.reason=n,aE(t),t=t.next;while(t!==r)}e.action=null}function aE(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function aj(e,t){return t}function aS(e,t){if(rj){var n=lL.formState;if(null!==n){e:{var r=oY;if(rj){if(rE){t:{for(var o=rE,a=rO;8!==o.nodeType;)if(!a||null===(o=cB(o.nextSibling))){o=null;break t}o=\"F!\"===(a=o.data)||\"F\"===a?o:null}if(o){rE=cB(o.nextSibling),r=\"F!\"===o.data;break e}}rP(r)}r=!1}r&&(t=n[0])}}return(n=ar()).memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:aj,lastRenderedState:t},n.queue=r,n=a5.bind(null,oY,r),r.dispatch=n,r=ab(!1),a=a6.bind(null,oY,!1,r.queue),r=ar(),o={state:t,dispatch:null,action:e,pending:null},r.queue=o,n=ax.bind(null,oY,o,a,n),o.dispatch=n,r.memoizedState=e,[t,n,!1]}function aO(e){return aB(ao(),oK,e)}function aB(e,t,n){if(t=ad(e,t,aj)[0],e=au(ac)[0],\"object\"==typeof t&&null!==t&&\"function\"==typeof t.then)try{var r=ai(t)}catch(e){if(e===or)throw oa;throw e}else r=t;var o=(t=ao()).queue,a=o.dispatch;return n!==t.memoizedState&&(oY.flags|=2048,az(9,{destroy:void 0},aP.bind(null,o,n),null)),[r,a,e]}function aP(e,t){e.action=t}function aI(e){var t=ao(),n=oK;if(null!==n)return aB(t,n,e);ao(),t=t.memoizedState;var r=(n=ao()).queue.dispatch;return n.memoizedState=e,[t,r,!1]}function az(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},null===(t=oY.updateQueue)&&(t=aa(),oY.updateQueue=t),null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function aT(){return ao().memoizedState}function aD(e,t,n,r){var o=ar();oY.flags|=e,o.memoizedState=az(1|t,{destroy:void 0},n,void 0===r?null:r)}function aL(e,t,n,r){var o=ao();r=void 0===r?null:r;var a=o.memoizedState.inst;null!==oK&&null!==r&&o3(r,oK.memoizedState.deps)?o.memoizedState=az(t,a,n,r):(oY.flags|=e,o.memoizedState=az(1|t,a,n,r))}function aN(e,t){aD(8390656,8,e,t)}function aR(e,t){aL(2048,8,e,t)}function aM(e,t){return aL(4,2,e,t)}function aZ(e,t){return aL(4,4,e,t)}function aU(e,t){if(\"function\"==typeof t){var n=t(e=e());return function(){\"function\"==typeof n?n():t(null)}}if(null!=t)return t.current=e=e(),function(){t.current=null}}function aF(e,t,n){n=null!=n?n.concat([e]):null,aL(4,4,aU.bind(null,t,e),n)}function aq(){}function aH(e,t){var n=ao();t=void 0===t?null:t;var r=n.memoizedState;return null!==t&&o3(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function aV(e,t){var n=ao();t=void 0===t?null:t;var r=n.memoizedState;if(null!==t&&o3(t,r[1]))return r[0];if(r=e(),oJ){eh(!0);try{e()}finally{eh(!1)}}return n.memoizedState=[r,t],r}function a$(e,t,n){return void 0===n||0!=(0x40000000&oW)?e.memoizedState=t:(e.memoizedState=n,e=so(),oY.lanes|=e,l$|=e,n)}function aW(e,t,n,r){return nk(n,t)?n:null!==oz.current?(nk(e=a$(e,n,r),t)||(iA=!0),e):0==(42&oW)||0!=(0x40000000&oW)?(iA=!0,e.memoizedState=n):(e=so(),oY.lanes|=e,l$|=e,t)}function aY(e,t,n,r,o){var a=z.p;z.p=0!==a&&8>a?a:8;var i=I.T,l={};I.T=l,a6(e,!1,t,n);try{var s=o(),c=I.S;if(null!==c&&c(l,s),null!==s&&\"object\"==typeof s&&\"function\"==typeof s.then){var u,d,f=(u=[],d={status:\"pending\",value:null,reason:null,then:function(e){u.push(e)}},s.then(function(){d.status=\"fulfilled\",d.value=r;for(var e=0;e<u.length;e++)(0,u[e])(r)},function(e){for(d.status=\"rejected\",d.reason=e,e=0;e<u.length;e++)(0,u[e])(void 0)}),d);a3(e,t,f,sr(e))}else a3(e,t,r,sr(e))}catch(n){a3(e,t,{then:function(){},status:\"rejected\",reason:n},sr())}finally{z.p=a,null!==i&&null!==l.types&&(i.types=l.types),I.T=i}}function aK(){}function aX(e,t,n,r){if(5!==e.tag)throw Error(l(476));var o=aG(e).queue;aY(e,o,t,T,null===n?aK:function(){return aQ(e),n(r)})}function aG(e){var t=e.memoizedState;if(null!==t)return t;var n={};return(t={memoizedState:T,baseState:T,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:T},next:null}).next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:n},next:null},e.memoizedState=t,null!==(e=e.alternate)&&(e.memoizedState=t),t}function aQ(e){var t=aG(e);null===t.next&&(t=e.alternate.memoizedState),a3(e,t.next.queue,{},sr())}function aJ(){return rY(c9)}function a0(){return ao().memoizedState}function a1(){return ao().memoizedState}function a2(e){for(var t=e.return;null!==t;){switch(t.tag){case 24:case 3:var n=sr(),r=ok(t,e=o_(n),n);null!==r&&(sa(r,t,n),oE(r,t,n)),t={cache:r1()},e.payload=t;return}t=t.return}}function a4(e,t,n){var r=sr();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},a9(e)?a8(t,n):null!==(n=n5(e,t,n,r))&&(sa(n,e,r),a7(n,t,r))}function a5(e,t,n){a3(e,t,n,sr())}function a3(e,t,n,r){var o={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(a9(e))a8(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=a(i,n);if(o.hasEagerState=!0,o.eagerState=l,nk(l,i))return n4(e,t,o,0),null===lL&&n2(),!1}catch(e){}finally{}if(null!==(n=n5(e,t,o,r)))return sa(n,e,r),a7(n,t,r),!0}return!1}function a6(e,t,n,r){if(r={lane:2,revertLane:sX(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},a9(e)){if(t)throw Error(l(479))}else null!==(t=n5(e,n,r,2))&&sa(t,e,2)}function a9(e){var t=e.alternate;return e===oY||null!==t&&t===oY}function a8(e,t){oQ=oG=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function a7(e,t,n){if(0!=(4194048&n)){var r=t.lanes;r&=e.pendingLanes,t.lanes=n|=r,eS(e,n)}}var ie={readContext:rY,use:al,useCallback:o5,useContext:o5,useEffect:o5,useImperativeHandle:o5,useLayoutEffect:o5,useInsertionEffect:o5,useMemo:o5,useReducer:o5,useRef:o5,useState:o5,useDebugValue:o5,useDeferredValue:o5,useTransition:o5,useSyncExternalStore:o5,useId:o5,useHostTransitionStatus:o5,useFormState:o5,useActionState:o5,useOptimistic:o5,useMemoCache:o5,useCacheRefresh:o5},it={readContext:rY,use:al,useCallback:function(e,t){return ar().memoizedState=[e,void 0===t?null:t],e},useContext:rY,useEffect:aN,useImperativeHandle:function(e,t,n){n=null!=n?n.concat([e]):null,aD(4194308,4,aU.bind(null,t,e),n)},useLayoutEffect:function(e,t){return aD(4194308,4,e,t)},useInsertionEffect:function(e,t){aD(4,2,e,t)},useMemo:function(e,t){var n=ar();t=void 0===t?null:t;var r=e();if(oJ){eh(!0);try{e()}finally{eh(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ar();if(void 0!==n){var o=n(t);if(oJ){eh(!0);try{n(t)}finally{eh(!1)}}}else o=t;return r.memoizedState=r.baseState=o,r.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},e=e.dispatch=a4.bind(null,oY,e),[r.memoizedState,e]},useRef:function(e){return ar().memoizedState=e={current:e}},useState:function(e){var t=(e=ab(e)).queue,n=a5.bind(null,oY,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:aq,useDeferredValue:function(e,t){return a$(ar(),e,t)},useTransition:function(){var e=ab(!1);return e=aY.bind(null,oY,e.queue,!0,!1),ar().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=oY,o=ar();if(rj){if(void 0===n)throw Error(l(407));n=n()}else{if(n=t(),null===lL)throw Error(l(349));0!=(124&lR)||ah(r,t,n)}o.memoizedState=n;var a={value:n,getSnapshot:t};return o.queue=a,aN(ag.bind(null,r,a,e),[e]),r.flags|=2048,az(9,{destroy:void 0},am.bind(null,r,a,n,t),null),n},useId:function(){var e=ar(),t=lL.identifierPrefix;if(rj){var n=rb,r=rv;t=\"_\"+t+\"R_\"+(n=(r&~(1<<32-em(r)-1)).toString(32)+n),0<(n=o0++)&&(t+=\"H\"+n.toString(32)),t+=\"_\"}else t=\"_\"+t+\"r_\"+(n=o4++).toString(32)+\"_\";return e.memoizedState=t},useHostTransitionStatus:aJ,useFormState:aS,useActionState:aS,useOptimistic:function(e){var t=ar();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=a6.bind(null,oY,!0,n),n.dispatch=t,[e,t]},useMemoCache:as,useCacheRefresh:function(){return ar().memoizedState=a2.bind(null,oY)}},ir={readContext:rY,use:al,useCallback:aH,useContext:rY,useEffect:aR,useImperativeHandle:aF,useInsertionEffect:aM,useLayoutEffect:aZ,useMemo:aV,useReducer:au,useRef:aT,useState:function(){return au(ac)},useDebugValue:aq,useDeferredValue:function(e,t){return aW(ao(),oK.memoizedState,e,t)},useTransition:function(){var e=au(ac)[0],t=ao().memoizedState;return[\"boolean\"==typeof e?e:ai(e),t]},useSyncExternalStore:ap,useId:a0,useHostTransitionStatus:aJ,useFormState:aO,useActionState:aO,useOptimistic:function(e,t){return aA(ao(),oK,e,t)},useMemoCache:as,useCacheRefresh:a1},io={readContext:rY,use:al,useCallback:aH,useContext:rY,useEffect:aR,useImperativeHandle:aF,useInsertionEffect:aM,useLayoutEffect:aZ,useMemo:aV,useReducer:af,useRef:aT,useState:function(){return af(ac)},useDebugValue:aq,useDeferredValue:function(e,t){var n=ao();return null===oK?a$(n,e,t):aW(n,oK.memoizedState,e,t)},useTransition:function(){var e=af(ac)[0],t=ao().memoizedState;return[\"boolean\"==typeof e?e:ai(e),t]},useSyncExternalStore:ap,useId:a0,useHostTransitionStatus:aJ,useFormState:aI,useActionState:aI,useOptimistic:function(e,t){var n=ao();return null!==oK?aA(n,oK,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:as,useCacheRefresh:a1};function ia(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:f({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ii={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=sr(),o=o_(r);o.payload=t,null!=n&&(o.callback=n),null!==(t=ok(e,o,r))&&(sa(t,e,r),oE(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=sr(),o=o_(r);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=ok(e,o,r))&&(sa(t,e,r),oE(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=sr(),r=o_(n);r.tag=2,null!=t&&(r.callback=t),null!==(t=ok(e,r,n))&&(sa(t,e,n),oE(t,e,n))}};function il(e,t,n,r,o,a,i){return\"function\"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||!nE(n,r)||!nE(o,a)}function is(e,t,n,r){e=t.state,\"function\"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),\"function\"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ii.enqueueReplaceState(t,t.state,null)}function ic(e,t){var n=t;if(\"ref\"in t)for(var r in n={},t)\"ref\"!==r&&(n[r]=t[r]);if(e=e.defaultProps)for(var o in n===t&&(n=f({},n)),e)void 0===n[o]&&(n[o]=e[o]);return n}function iu(e){nQ(e)}function id(e){console.error(e)}function ip(e){nQ(e)}function ih(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function im(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function ig(e,t,n){return(n=o_(n)).tag=3,n.payload={element:null},n.callback=function(){ih(e,t)},n}function iy(e){return(e=o_(e)).tag=3,e}function iv(e,t,n,r){var o=n.type.getDerivedStateFromError;if(\"function\"==typeof o){var a=r.value;e.payload=function(){return o(a)},e.callback=function(){im(t,n,r)}}var i=n.stateNode;null!==i&&\"function\"==typeof i.componentDidCatch&&(e.callback=function(){im(t,n,r),\"function\"!=typeof o&&(null===l4?l4=new Set([this]):l4.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:\"\"})})}var ib=Error(l(461)),iA=!1;function ix(e,t,n,r){t.child=null===e?oA(t,null,n,r):ob(t,e.child,n,r)}function iw(e,t,n,r,o){n=n.render;var a=t.ref;if(\"ref\"in r){var i={};for(var l in r)\"ref\"!==l&&(i[l]=r[l])}else i=r;return(rW(t),r=o6(e,t,n,i,a,o),l=ae(),null===e||iA)?(rj&&l&&rw(t),t.flags|=1,ix(e,t,r,o),t.child):(at(e,t,o),iV(e,t,o))}function iC(e,t,n,r,o){if(null===e){var a=n.type;return\"function\"!=typeof a||rt(a)||void 0!==a.defaultProps||null!==n.compare?((e=ro(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,i_(e,t,a,r,o))}if(a=e.child,!i$(e,o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:nE)(i,r)&&e.ref===t.ref)return iV(e,t,o)}return t.flags|=1,(e=rn(a,r)).ref=t.ref,e.return=t,t.child=e}function i_(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(nE(a,r)&&e.ref===t.ref)if(iA=!1,t.pendingProps=r=a,!i$(e,o))return t.lanes=e.lanes,iV(e,t,o);else 0!=(131072&e.flags)&&(iA=!0)}return iP(e,t,n,r,o)}function ik(e,t,n,r){var o=r.children,a=null!==e?e.memoizedState:null;if(null===e&&null===t.stateNode&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),\"hidden\"===r.mode){if(0!=(128&t.flags)){if(r=null!==a?a.baseLanes|n:n,null!==e){for(a=0,o=t.child=e.child;null!==o;)a=a|o.lanes|o.childLanes,o=o.sibling;t.childLanes=a&~r}else t.childLanes=0,t.child=null;return ij(e,t,r,n)}if(0==(0x20000000&n))return t.lanes=t.childLanes=0x20000000,ij(e,t,null!==a?a.baseLanes|n:n,n);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&ot(t,null!==a?a.cachePool:null),null!==a?oD(t,a):oL(),oF(t)}else null!==a?(ot(t,a.cachePool),oD(t,a),oq(t),t.memoizedState=null):(null!==e&&ot(t,null),oL(),oq(t));return ix(e,t,o,n),t.child}function iE(e,t){return null!==e&&22===e.tag||null!==t.stateNode||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function ij(e,t,n,r){var o=oe();return t.memoizedState={baseLanes:n,cachePool:o=null===o?null:{parent:r0._currentValue,pool:o}},null!==e&&ot(t,null),oL(),oF(t),null!==e&&rV(e,t,r,!0),null}function iS(e,t){return(t=iZ({mode:t.mode,children:t.children},e.mode)).ref=e.ref,e.child=t,t.return=e,t}function iO(e,t,n){return ob(t,e.child,null,n),e=iS(t,t.pendingProps),e.flags|=2,oH(t),t.memoizedState=null,e}function iB(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if(\"function\"!=typeof n&&\"object\"!=typeof n)throw Error(l(284));(null===e||e.ref!==n)&&(t.flags|=4194816)}}function iP(e,t,n,r,o){return(rW(t),n=o6(e,t,n,r,void 0,o),r=ae(),null===e||iA)?(rj&&r&&rw(t),t.flags|=1,ix(e,t,n,o),t.child):(at(e,t,o),iV(e,t,o))}function iI(e,t,n,r,o,a){return(rW(t),t.updateQueue=null,n=o8(t,r,n,o),o9(e),r=ae(),null===e||iA)?(rj&&r&&rw(t),t.flags|=1,ix(e,t,n,a),t.child):(at(e,t,a),iV(e,t,a))}function iz(e,t,n,r,o){if(rW(t),null===t.stateNode){var a=n8,i=n.contextType;\"object\"==typeof i&&null!==i&&(a=rY(i)),t.memoizedState=null!==(a=new n(r,a)).state&&void 0!==a.state?a.state:null,a.updater=ii,t.stateNode=a,a._reactInternals=t,(a=t.stateNode).props=r,a.state=t.memoizedState,a.refs={},ow(t),i=n.contextType,a.context=\"object\"==typeof i&&null!==i?rY(i):n8,a.state=t.memoizedState,\"function\"==typeof(i=n.getDerivedStateFromProps)&&(ia(t,n,i,r),a.state=t.memoizedState),\"function\"==typeof n.getDerivedStateFromProps||\"function\"==typeof a.getSnapshotBeforeUpdate||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(i=a.state,\"function\"==typeof a.componentWillMount&&a.componentWillMount(),\"function\"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),i!==a.state&&ii.enqueueReplaceState(a,a.state,null),oB(t,r,a,o),oO(),a.state=t.memoizedState),\"function\"==typeof a.componentDidMount&&(t.flags|=4194308),r=!0}else if(null===e){a=t.stateNode;var l=t.memoizedProps,s=ic(n,l);a.props=s;var c=a.context,u=n.contextType;i=n8,\"object\"==typeof u&&null!==u&&(i=rY(u));var d=n.getDerivedStateFromProps;u=\"function\"==typeof d||\"function\"==typeof a.getSnapshotBeforeUpdate,l=t.pendingProps!==l,u||\"function\"!=typeof a.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof a.componentWillReceiveProps||(l||c!==i)&&is(t,a,r,i),ox=!1;var f=t.memoizedState;a.state=f,oB(t,r,a,o),oO(),c=t.memoizedState,l||f!==c||ox?(\"function\"==typeof d&&(ia(t,n,d,r),c=t.memoizedState),(s=ox||il(t,n,s,r,f,c,i))?(u||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(\"function\"==typeof a.componentWillMount&&a.componentWillMount(),\"function\"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),\"function\"==typeof a.componentDidMount&&(t.flags|=4194308)):(\"function\"==typeof a.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),a.props=r,a.state=c,a.context=i,r=s):(\"function\"==typeof a.componentDidMount&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,oC(e,t),u=ic(n,i=t.memoizedProps),a.props=u,d=t.pendingProps,f=a.context,c=n.contextType,s=n8,\"object\"==typeof c&&null!==c&&(s=rY(c)),(c=\"function\"==typeof(l=n.getDerivedStateFromProps)||\"function\"==typeof a.getSnapshotBeforeUpdate)||\"function\"!=typeof a.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof a.componentWillReceiveProps||(i!==d||f!==s)&&is(t,a,r,s),ox=!1,f=t.memoizedState,a.state=f,oB(t,r,a,o),oO();var p=t.memoizedState;i!==d||f!==p||ox||null!==e&&null!==e.dependencies&&r$(e.dependencies)?(\"function\"==typeof l&&(ia(t,n,l,r),p=t.memoizedState),(u=ox||il(t,n,u,r,f,p,s)||null!==e&&null!==e.dependencies&&r$(e.dependencies))?(c||\"function\"!=typeof a.UNSAFE_componentWillUpdate&&\"function\"!=typeof a.componentWillUpdate||(\"function\"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,p,s),\"function\"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,p,s)),\"function\"==typeof a.componentDidUpdate&&(t.flags|=4),\"function\"==typeof a.getSnapshotBeforeUpdate&&(t.flags|=1024)):(\"function\"!=typeof a.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),\"function\"!=typeof a.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=s,r=u):(\"function\"!=typeof a.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),\"function\"!=typeof a.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,iB(e,t),r=0!=(128&t.flags),a||r?(a=t.stateNode,n=r&&\"function\"!=typeof n.getDerivedStateFromError?null:a.render(),t.flags|=1,null!==e&&r?(t.child=ob(t,e.child,null,o),t.child=ob(t,null,n,o)):ix(e,t,n,o),t.memoizedState=a.state,e=t.child):e=iV(e,t,o),e}function iT(e,t,n,r){return rD(),t.flags|=256,ix(e,t,n,r),t.child}var iD={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function iL(e){return{baseLanes:e,cachePool:on()}}function iN(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=lK),e}function iR(e,t,n){var r,o=t.pendingProps,a=!1,i=0!=(128&t.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!=(2&oV.current)),r&&(a=!0,t.flags&=-129),r=0!=(32&t.flags),t.flags&=-33,null===e){if(rj){if(a?oZ(t):oq(t),(e=rE)?null!==(e=null!==(e=cj(e,rO))&&\"&\"!==e.data?e:null)&&(t.memoizedState={dehydrated:e,treeContext:null!==ry?{id:rv,overflow:rb}:null,retryLane:0x20000000,hydrationErrors:null},(n=rl(e)).return=t,t.child=n,rk=t,rE=null):e=null,null===e)throw rP(t);return cO(e)?t.lanes=32:t.lanes=0x20000000,null}var s=o.children;return(o=o.fallback,a)?(oq(t),s=iZ({mode:\"hidden\",children:s},a=t.mode),o=ra(o,a,n,null),s.return=t,o.return=t,s.sibling=o,t.child=s,(o=t.child).memoizedState=iL(n),o.childLanes=iN(e,r,n),t.memoizedState=iD,iE(null,o)):(oZ(t),iM(t,s))}var c=e.memoizedState;if(null!==c&&null!==(s=c.dehydrated)){if(i)256&t.flags?(oZ(t),t.flags&=-257,t=iU(e,t,n)):null!==t.memoizedState?(oq(t),t.child=e.child,t.flags|=128,t=null):(oq(t),s=o.fallback,a=t.mode,o=iZ({mode:\"visible\",children:o.children},a),s=ra(s,a,n,null),s.flags|=2,o.return=t,s.return=t,o.sibling=s,t.child=o,ob(t,e.child,null,n),(o=t.child).memoizedState=iL(n),o.childLanes=iN(e,r,n),t.memoizedState=iD,t=iE(null,o));else if(oZ(t),cO(s)){if(r=s.nextSibling&&s.nextSibling.dataset)var u=r.dgst;r=u,(o=Error(l(419))).stack=\"\",o.digest=r,rN({value:o,source:null,stack:null}),t=iU(e,t,n)}else if(iA||rV(e,t,n,!1),r=0!=(n&e.childLanes),iA||r){if(null!==(r=lL)&&0!==(o=eO(r,n))&&o!==c.retryLane)throw c.retryLane=o,n3(e,o),sa(r,e,o),ib;cS(s)||sg(),t=iU(e,t,n)}else cS(s)?(t.flags|=192,t.child=e.child,t=null):(e=c.treeContext,rE=cB(s.nextSibling),rk=t,rj=!0,rS=null,rO=!1,null!==e&&r_(t,e),t=iM(t,o.children),t.flags|=4096);return t}return a?(oq(t),s=o.fallback,a=t.mode,u=(c=e.child).sibling,(o=rn(c,{mode:\"hidden\",children:o.children})).subtreeFlags=0x3e00000&c.subtreeFlags,null!==u?s=rn(u,s):(s=ra(s,a,n,null),s.flags|=2),s.return=t,o.return=t,o.sibling=s,t.child=o,iE(null,o),o=t.child,null===(s=e.child.memoizedState)?s=iL(n):(null!==(a=s.cachePool)?(c=r0._currentValue,a=a.parent!==c?{parent:c,pool:c}:a):a=on(),s={baseLanes:s.baseLanes|n,cachePool:a}),o.memoizedState=s,o.childLanes=iN(e,r,n),t.memoizedState=iD,iE(e.child,o)):(oZ(t),e=(n=e.child).sibling,(n=rn(n,{mode:\"visible\",children:o.children})).return=t,n.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function iM(e,t){return(t=iZ({mode:\"visible\",children:t},e.mode)).return=e,e.child=t}function iZ(e,t){return(e=re(22,e,null,t)).lanes=0,e}function iU(e,t,n){return ob(t,e.child,null,n),e=iM(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function iF(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),rq(e.return,t,n)}function iq(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,treeForkCount:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.treeForkCount=a)}function iH(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;r=r.children;var i=oV.current,l=0!=(2&i);if(l?(i=1&i|2,t.flags|=128):i&=1,M(oV,i),ix(e,t,r,n),r=rj?rh:0,!l&&null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&iF(e,n,t);else if(19===e.tag)iF(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(o){case\"forwards\":for(o=null,n=t.child;null!==n;)null!==(e=n.alternate)&&null===o$(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),iq(t,!1,o,n,a,r);break;case\"backwards\":case\"unstable_legacy-backwards\":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===o$(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}iq(t,!0,n,null,a,r);break;case\"together\":iq(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function iV(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),l$|=t.lanes,0==(n&t.childLanes)){if(null===e)return null;else if(rV(e,t,n,!1),0==(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(l(153));if(null!==t.child){for(n=rn(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=rn(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function i$(e,t){return 0!=(e.lanes&t)||!!(null!==(e=e.dependencies)&&r$(e))}function iW(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)iA=!0;else{if(!i$(e,n)&&0==(128&t.flags))return iA=!1,function(e,t,n){switch(t.tag){case 3:H(t,t.stateNode.containerInfo),rU(t,r0,e.memoizedState.cache),rD();break;case 27:case 5:$(t);break;case 4:H(t,t.stateNode.containerInfo);break;case 10:rU(t,t.type,t.memoizedProps.value);break;case 31:if(null!==t.memoizedState)return t.flags|=128,oU(t),null;break;case 13:var r=t.memoizedState;if(null!==r){if(null!==r.dehydrated)return oZ(t),t.flags|=128,null;if(0!=(n&t.child.childLanes))return iR(e,t,n);return oZ(t),null!==(e=iV(e,t,n))?e.sibling:null}oZ(t);break;case 19:var o=0!=(128&e.flags);if((r=0!=(n&t.childLanes))||(rV(e,t,n,!1),r=0!=(n&t.childLanes)),o){if(r)return iH(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),M(oV,oV.current),!r)return null;break;case 22:return t.lanes=0,ik(e,t,n,t.pendingProps);case 24:rU(t,r0,e.memoizedState.cache)}return iV(e,t,n)}(e,t,n);iA=0!=(131072&e.flags)}else iA=!1,rj&&0!=(1048576&t.flags)&&rx(t,rh,t.index);switch(t.lanes=0,t.tag){case 16:e:{var r=t.pendingProps;if(e=oc(t.elementType),t.type=e,\"function\"==typeof e)rt(e)?(r=ic(e,r),t.tag=1,t=iz(null,t,e,r,n)):(t.tag=0,t=iP(null,t,e,r,n));else{if(null!=e){var o=e.$$typeof;if(o===x){t.tag=11,t=iw(null,t,e,r,n);break e}if(o===_){t.tag=14,t=iC(null,t,e,r,n);break e}}throw Error(l(306,t=function e(t){if(null==t)return null;if(\"function\"==typeof t)return t.$$typeof===B?null:t.displayName||t.name||null;if(\"string\"==typeof t)return t;switch(t){case g:return\"Fragment\";case v:return\"Profiler\";case y:return\"StrictMode\";case w:return\"Suspense\";case C:return\"SuspenseList\";case E:return\"Activity\"}if(\"object\"==typeof t)switch(t.$$typeof){case m:return\"Portal\";case A:return t.displayName||\"Context\";case b:return(t._context.displayName||\"Context\")+\".Consumer\";case x:var n=t.render;return(t=t.displayName)||(t=\"\"!==(t=n.displayName||n.name||\"\")?\"ForwardRef(\"+t+\")\":\"ForwardRef\"),t;case _:return null!==(n=t.displayName||null)?n:e(t.type)||\"Memo\";case k:n=t._payload,t=t._init;try{return e(t(n))}catch(e){}}return null}(e)||e,\"\"))}}return t;case 0:return iP(e,t,t.type,t.pendingProps,n);case 1:return o=ic(r=t.type,t.pendingProps),iz(e,t,r,o,n);case 3:e:{if(H(t,t.stateNode.containerInfo),null===e)throw Error(l(387));r=t.pendingProps;var a=t.memoizedState;o=a.element,oC(e,t),oB(t,r,null,n);var i=t.memoizedState;if(rU(t,r0,r=i.cache),r!==a.cache&&rH(t,[r0],n,!0),oO(),r=i.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:i.cache},t.updateQueue.baseState=a,t.memoizedState=a,256&t.flags){t=iT(e,t,r,n);break e}else if(r!==o){rN(o=ru(Error(l(424)),t)),t=iT(e,t,r,n);break e}else for(rE=cB((e=9===(e=t.stateNode.containerInfo).nodeType?e.body:\"HTML\"===e.nodeName?e.ownerDocument.body:e).firstChild),rk=t,rj=!0,rS=null,rO=!0,n=oA(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling;else{if(rD(),r===o){t=iV(e,t,n);break e}ix(e,t,r,n)}t=t.child}return t;case 26:return iB(e,t),null===e?(n=cF(t.type,null,t.pendingProps,null))?t.memoizedState=n:rj||(n=t.type,e=t.pendingProps,(r=cp(F.current).createElement(n))[eD]=t,r[eL]=e,cu(r,n,e),eY(r),t.stateNode=r):t.memoizedState=cF(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return $(t),null===e&&rj&&(r=t.stateNode=cT(t.type,t.pendingProps,F.current),rk=t,rO=!0,o=rE,cC(t.type)?(cP=o,rE=cB(r.firstChild)):rE=o),ix(e,t,t.pendingProps.children,n),iB(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&rj&&((o=r=rE)&&(null!==(r=function(e,t,n,r){for(;1===e.nodeType;){if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(\"INPUT\"!==e.nodeName||\"hidden\"!==e.type))break}else if(r){if(!e[eF])switch(t){case\"meta\":if(!e.hasAttribute(\"itemprop\"))break;return e;case\"link\":if(\"stylesheet\"===(o=e.getAttribute(\"rel\"))&&e.hasAttribute(\"data-precedence\")||o!==n.rel||e.getAttribute(\"href\")!==(null==n.href||\"\"===n.href?null:n.href)||e.getAttribute(\"crossorigin\")!==(null==n.crossOrigin?null:n.crossOrigin)||e.getAttribute(\"title\")!==(null==n.title?null:n.title))break;return e;case\"style\":if(e.hasAttribute(\"data-precedence\"))break;return e;case\"script\":if(((o=e.getAttribute(\"src\"))!==(null==n.src?null:n.src)||e.getAttribute(\"type\")!==(null==n.type?null:n.type)||e.getAttribute(\"crossorigin\")!==(null==n.crossOrigin?null:n.crossOrigin))&&o&&e.hasAttribute(\"async\")&&!e.hasAttribute(\"itemprop\"))break;return e;default:return e}}else{if(\"input\"!==t||\"hidden\"!==e.type)return e;var o=null==n.name?null:\"\"+n.name;if(\"hidden\"===n.type&&e.getAttribute(\"name\")===o)return e}if(null===(e=cB(e.nextSibling)))break}return null}(r,t.type,t.pendingProps,rO))?(t.stateNode=r,rk=t,rE=cB(r.firstChild),rO=!1,o=!0):o=!1),o||rP(t)),$(t),o=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,r=a.children,cg(o,a)?r=null:null!==i&&cg(o,i)&&(t.flags|=32),null!==t.memoizedState&&(c9._currentValue=o=o6(e,t,o7,null,null,n)),iB(e,t),ix(e,t,r,n),t.child;case 6:return null===e&&rj&&((e=n=rE)&&(null!==(n=function(e,t,n){if(\"\"===t)return null;for(;3!==e.nodeType;)if((1!==e.nodeType||\"INPUT\"!==e.nodeName||\"hidden\"!==e.type)&&!n||null===(e=cB(e.nextSibling)))return null;return e}(n,t.pendingProps,rO))?(t.stateNode=n,rk=t,rE=null,e=!0):e=!1),e||rP(t)),null;case 13:return iR(e,t,n);case 4:return H(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ob(t,null,r,n):ix(e,t,r,n),t.child;case 11:return iw(e,t,t.type,t.pendingProps,n);case 7:return ix(e,t,t.pendingProps,n),t.child;case 8:case 12:return ix(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,rU(t,t.type,r.value),ix(e,t,r.children,n),t.child;case 9:return o=t.type._context,r=t.pendingProps.children,rW(t),r=r(o=rY(o)),t.flags|=1,ix(e,t,r,n),t.child;case 14:return iC(e,t,t.type,t.pendingProps,n);case 15:return i_(e,t,t.type,t.pendingProps,n);case 19:return iH(e,t,n);case 31:var s=e,c=t,u=n,d=c.pendingProps,f=0!=(128&c.flags);if(c.flags&=-129,null===s){if(rj){if(\"hidden\"===d.mode)return s=iS(c,d),c.lanes=0x20000000,iE(null,s);if(oU(c),(s=rE)?null!==(s=null!==(s=cj(s,rO))&&\"&\"===s.data?s:null)&&(c.memoizedState={dehydrated:s,treeContext:null!==ry?{id:rv,overflow:rb}:null,retryLane:0x20000000,hydrationErrors:null},(u=rl(s)).return=c,c.child=u,rk=c,rE=null):s=null,null===s)throw rP(c);return c.lanes=0x20000000,null}return iS(c,d)}var p=s.memoizedState;if(null!==p){var h=p.dehydrated;if(oU(c),f)if(256&c.flags)c.flags&=-257,c=iO(s,c,u);else if(null!==c.memoizedState)c.child=s.child,c.flags|=128,c=null;else throw Error(l(558));else if(iA||rV(s,c,u,!1),f=0!=(u&s.childLanes),iA||f){if(null!==(d=lL)&&0!==(h=eO(d,u))&&h!==p.retryLane)throw p.retryLane=h,n3(s,h),sa(d,s,h),ib;sg(),c=iO(s,c,u)}else s=p.treeContext,rE=cB(h.nextSibling),rk=c,rj=!0,rS=null,rO=!1,null!==s&&r_(c,s),c=iS(c,d),c.flags|=4096;return c}return(s=rn(s.child,{mode:d.mode,children:d.children})).ref=c.ref,c.child=s,s.return=c,s;case 22:return ik(e,t,n,t.pendingProps);case 24:return rW(t),r=rY(r0),null===e?(null===(o=oe())&&(o=lL,a=r1(),o.pooledCache=a,a.refCount++,null!==a&&(o.pooledCacheLanes|=n),o=a),t.memoizedState={parent:r,cache:o},ow(t),rU(t,r0,o)):(0!=(e.lanes&n)&&(oC(e,t),oB(t,null,null,n),oO()),o=e.memoizedState,a=t.memoizedState,o.parent!==r?(o={parent:r,cache:r},t.memoizedState=o,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=o),rU(t,r0,r)):(rU(t,r0,r=a.cache),r!==o.cache&&rH(t,[r0],n,!0))),ix(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(l(156,t.tag))}function iY(e){e.flags|=4}function iK(e,t,n,r,o){if((t=0!=(32&e.mode))&&(t=!1),t){if(e.flags|=0x1000000,(0x13ffff40&o)===o)if(e.stateNode.complete)e.flags|=8192;else if(sp())e.flags|=8192;else throw ou=oi,oo}else e.flags&=-0x1000001}function iX(e,t){if(\"stylesheet\"!==t.type||0!=(4&t.state.loading))e.flags&=-0x1000001;else if(e.flags|=0x1000000,!c1(t))if(sp())e.flags|=8192;else throw ou=oi,oo}function iG(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?e_():0x20000000,e.lanes|=t,lX|=t)}function iQ(e,t){if(!rj)switch(e.tailMode){case\"hidden\":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case\"collapsed\":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function iJ(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=0x3e00000&o.subtreeFlags,r|=0x3e00000&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function i0(e,t){switch(rC(t),t.tag){case 3:rF(r0),V();break;case 26:case 27:case 5:W(t);break;case 4:V();break;case 31:null!==t.memoizedState&&oH(t);break;case 13:oH(t);break;case 19:R(oV);break;case 10:rF(t.type);break;case 22:case 23:oH(t),oN(),null!==e&&R(r7);break;case 24:rF(r0)}}function i1(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var o=r.next;n=o;do{if((n.tag&e)===e){r=void 0;var a=n.create;n.inst.destroy=r=a()}n=n.next}while(n!==o)}}catch(e){sP(t,t.return,e)}}function i2(e,t,n){try{var r=t.updateQueue,o=null!==r?r.lastEffect:null;if(null!==o){var a=o.next;r=a;do{if((r.tag&e)===e){var i=r.inst,l=i.destroy;if(void 0!==l){i.destroy=void 0,o=t;try{l()}catch(e){sP(o,n,e)}}}r=r.next}while(r!==a)}}catch(e){sP(t,t.return,e)}}function i4(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{oI(t,n)}catch(t){sP(e,e.return,t)}}}function i5(e,t,n){n.props=ic(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){sP(e,t,n)}}function i3(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}\"function\"==typeof n?e.refCleanup=n(r):n.current=r}}catch(n){sP(e,t,n)}}function i6(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if(\"function\"==typeof r)try{r()}catch(n){sP(e,t,n)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if(\"function\"==typeof n)try{n(null)}catch(n){sP(e,t,n)}else n.current=null}function i9(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{switch(t){case\"button\":case\"input\":case\"select\":case\"textarea\":n.autoFocus&&r.focus();break;case\"img\":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){sP(e,e.return,t)}}function i8(e,t,n){try{var r=e.stateNode;(function(e,t,n,r){switch(t){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"input\":var o=null,a=null,i=null,s=null,c=null,u=null,d=null;for(h in n){var f=n[h];if(n.hasOwnProperty(h)&&null!=f)switch(h){case\"checked\":case\"value\":break;case\"defaultValue\":c=f;default:r.hasOwnProperty(h)||cs(e,t,h,null,r,f)}}for(var p in r){var h=r[p];if(f=n[p],r.hasOwnProperty(p)&&(null!=h||null!=f))switch(p){case\"type\":a=h;break;case\"name\":o=h;break;case\"checked\":u=h;break;case\"defaultChecked\":d=h;break;case\"value\":i=h;break;case\"defaultValue\":s=h;break;case\"children\":case\"dangerouslySetInnerHTML\":if(null!=h)throw Error(l(137,t));break;default:h!==f&&cs(e,t,p,h,r,f)}}tn(e,i,s,c,u,d,a,o);return;case\"select\":for(a in h=i=s=p=null,n)if(c=n[a],n.hasOwnProperty(a)&&null!=c)switch(a){case\"value\":break;case\"multiple\":h=c;default:r.hasOwnProperty(a)||cs(e,t,a,null,r,c)}for(o in r)if(a=r[o],c=n[o],r.hasOwnProperty(o)&&(null!=a||null!=c))switch(o){case\"value\":p=a;break;case\"defaultValue\":s=a;break;case\"multiple\":i=a;default:a!==c&&cs(e,t,o,a,r,c)}t=s,n=i,r=h,null!=p?ta(e,!!n,p,!1):!!r!=!!n&&(null!=t?ta(e,!!n,t,!0):ta(e,!!n,n?[]:\"\",!1));return;case\"textarea\":for(s in h=p=null,n)if(o=n[s],n.hasOwnProperty(s)&&null!=o&&!r.hasOwnProperty(s))switch(s){case\"value\":case\"children\":break;default:cs(e,t,s,null,r,o)}for(i in r)if(o=r[i],a=n[i],r.hasOwnProperty(i)&&(null!=o||null!=a))switch(i){case\"value\":p=o;break;case\"defaultValue\":h=o;break;case\"children\":break;case\"dangerouslySetInnerHTML\":if(null!=o)throw Error(l(91));break;default:o!==a&&cs(e,t,i,o,r,a)}ti(e,p,h);return;case\"option\":for(var m in n)p=n[m],n.hasOwnProperty(m)&&null!=p&&!r.hasOwnProperty(m)&&(\"selected\"===m?e.selected=!1:cs(e,t,m,null,r,p));for(c in r)p=r[c],h=n[c],r.hasOwnProperty(c)&&p!==h&&(null!=p||null!=h)&&(\"selected\"===c?e.selected=p&&\"function\"!=typeof p&&\"symbol\"!=typeof p:cs(e,t,c,p,r,h));return;case\"img\":case\"link\":case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":case\"menuitem\":for(var g in n)p=n[g],n.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&cs(e,t,g,null,r,p);for(u in r)if(p=r[u],h=n[u],r.hasOwnProperty(u)&&p!==h&&(null!=p||null!=h))switch(u){case\"children\":case\"dangerouslySetInnerHTML\":if(null!=p)throw Error(l(137,t));break;default:cs(e,t,u,p,r,h)}return;default:if(tf(t)){for(var y in n)p=n[y],n.hasOwnProperty(y)&&void 0!==p&&!r.hasOwnProperty(y)&&cc(e,t,y,void 0,r,p);for(d in r)p=r[d],h=n[d],r.hasOwnProperty(d)&&p!==h&&(void 0!==p||void 0!==h)&&cc(e,t,d,p,r,h);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&null!=p&&!r.hasOwnProperty(v)&&cs(e,t,v,null,r,p);for(f in r)p=r[f],h=n[f],r.hasOwnProperty(f)&&p!==h&&(null!=p||null!=h)&&cs(e,t,f,p,r,h)})(r,e.type,n,t),r[eL]=t}catch(t){sP(e,e.return,t)}}function i7(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&cC(e.type)||4===e.tag}function le(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||i7(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&cC(e.type)||2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function lt(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&cC(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(lt(e,t,n),e=e.sibling;null!==e;)lt(e,t,n),e=e.sibling}function ln(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,o=t.attributes;o.length;)t.removeAttributeNode(o[0]);cu(t,r,n),t[eD]=e,t[eL]=n}catch(t){sP(e,e.return,t)}}var lr=!1,lo=!1,la=!1,li=\"function\"==typeof WeakSet?WeakSet:Set,ll=null;function ls(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:lA(e,n),4&r&&i1(5,n);break;case 1:if(lA(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(e){sP(n,n.return,e)}else{var o=ic(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(o,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){sP(n,n.return,e)}}64&r&&i4(n),512&r&&i3(n,n.return);break;case 3:if(lA(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{oI(e,t)}catch(e){sP(n,n.return,e)}}break;case 27:null===t&&4&r&&ln(n);case 26:case 5:lA(e,n),null===t&&4&r&&i9(n),512&r&&i3(n,n.return);break;case 12:default:lA(e,n);break;case 31:lA(e,n),4&r&&lp(e,n);break;case 13:lA(e,n),4&r&&lh(e,n),64&r&&null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if(\"$~\"===e.data)e._reactRetry=t;else if(\"$?\"!==e.data||\"loading\"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener(\"DOMContentLoaded\",r)};n.addEventListener(\"DOMContentLoaded\",r),e._reactRetry=r}}(e,n=sD.bind(null,n));break;case 22:if(!(r=null!==n.memoizedState||lr)){t=null!==t&&null!==t.memoizedState||lo,o=lr;var a=lo;lr=r,(lo=t)&&!a?function e(t,n,r){for(r=r&&0!=(8772&n.subtreeFlags),n=n.child;null!==n;){var o=n.alternate,a=t,i=n,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(a,i,r),i1(4,i);break;case 1:if(e(a,i,r),\"function\"==typeof(a=(o=i).stateNode).componentDidMount)try{a.componentDidMount()}catch(e){sP(o,o.return,e)}if(null!==(a=(o=i).updateQueue)){var s=o.stateNode;try{var c=a.shared.hiddenCallbacks;if(null!==c)for(a.shared.hiddenCallbacks=null,a=0;a<c.length;a++)oP(c[a],s)}catch(e){sP(o,o.return,e)}}r&&64&l&&i4(i),i3(i,i.return);break;case 27:ln(i);case 26:case 5:e(a,i,r),r&&null===o&&4&l&&i9(i),i3(i,i.return);break;case 12:default:e(a,i,r);break;case 31:e(a,i,r),r&&4&l&&lp(a,i);break;case 13:e(a,i,r),r&&4&l&&lh(a,i);break;case 22:null===i.memoizedState&&e(a,i,r),i3(i,i.return);case 30:}n=n.sibling}}(e,n,0!=(8772&n.subtreeFlags)):lA(e,n),lr=o,lo=a}case 30:}}var lc=null,lu=!1;function ld(e,t,n){for(n=n.child;null!==n;)lf(e,t,n),n=n.sibling}function lf(e,t,n){if(ep&&\"function\"==typeof ep.onCommitFiberUnmount)try{ep.onCommitFiberUnmount(ef,n)}catch(e){}switch(n.tag){case 26:lo||i6(n,t),ld(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:lo||i6(n,t);var r=lc,o=lu;cC(n.type)&&(lc=n.stateNode,lu=!1),ld(e,t,n),cD(n.stateNode),lc=r,lu=o;break;case 5:lo||i6(n,t);case 6:if(r=lc,o=lu,lc=null,ld(e,t,n),lc=r,lu=o,null!==lc)if(lu)try{(9===lc.nodeType?lc.body:\"HTML\"===lc.nodeName?lc.ownerDocument.body:lc).removeChild(n.stateNode)}catch(e){sP(n,t,e)}else try{lc.removeChild(n.stateNode)}catch(e){sP(n,t,e)}break;case 18:null!==lc&&(lu?(c_(9===(e=lc).nodeType?e.body:\"HTML\"===e.nodeName?e.ownerDocument.body:e,n.stateNode),uO(e)):c_(lc,n.stateNode));break;case 4:r=lc,o=lu,lc=n.stateNode.containerInfo,lu=!0,ld(e,t,n),lc=r,lu=o;break;case 0:case 11:case 14:case 15:lo||i2(2,n,t),lo||i2(4,n,t),ld(e,t,n);break;case 1:lo||(i6(n,t),\"function\"==typeof(r=n.stateNode).componentWillUnmount&&i5(n,t,r)),ld(e,t,n);break;case 21:default:ld(e,t,n);break;case 22:lo=(r=lo)||null!==n.memoizedState,ld(e,t,n),lo=r}}function lp(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)){e=e.dehydrated;try{uO(e)}catch(e){sP(t,t.return,e)}}}function lh(e,t){if(null===t.memoizedState&&null!==(e=t.alternate)&&null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))try{uO(e)}catch(e){sP(t,t.return,e)}}function lm(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new li),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new li),t;default:throw Error(l(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=sL.bind(null,e,t);t.then(r,r)}})}function lg(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var o=n[r],a=e,i=t,s=i;e:for(;null!==s;){switch(s.tag){case 27:if(cC(s.type)){lc=s.stateNode,lu=!1;break e}break;case 5:lc=s.stateNode,lu=!1;break e;case 3:case 4:lc=s.stateNode.containerInfo,lu=!0;break e}s=s.return}if(null===lc)throw Error(l(160));lf(a,i,o),lc=null,lu=!1,null!==(a=o.alternate)&&(a.return=null),o.return=null}if(13878&t.subtreeFlags)for(t=t.child;null!==t;)lv(t,e),t=t.sibling}var ly=null;function lv(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:lg(t,e),lb(e),4&r&&(i2(3,e,e.return),i1(3,e),i2(5,e,e.return));break;case 1:lg(t,e),lb(e),512&r&&(lo||null===n||i6(n,n.return)),64&r&&lr&&null!==(e=e.updateQueue)&&null!==(r=e.callbacks)&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===n?r:n.concat(r));break;case 26:var o=ly;if(lg(t,e),lb(e),512&r&&(lo||null===n||i6(n,n.return)),4&r){var a=null!==n?n.memoizedState:null;if(r=e.memoizedState,null===n)if(null===r)if(null===e.stateNode){e:{r=e.type,n=e.memoizedProps,o=o.ownerDocument||o;t:switch(r){case\"title\":(!(a=o.getElementsByTagName(\"title\")[0])||a[eF]||a[eD]||\"http://www.w3.org/2000/svg\"===a.namespaceURI||a.hasAttribute(\"itemprop\"))&&(a=o.createElement(r),o.head.insertBefore(a,o.querySelector(\"head > title\"))),cu(a,r,n),a[eD]=e,eY(a),r=a;break e;case\"link\":var i=cJ(\"link\",\"href\",o).get(r+(n.href||\"\"));if(i){for(var s=0;s<i.length;s++)if((a=i[s]).getAttribute(\"href\")===(null==n.href||\"\"===n.href?null:n.href)&&a.getAttribute(\"rel\")===(null==n.rel?null:n.rel)&&a.getAttribute(\"title\")===(null==n.title?null:n.title)&&a.getAttribute(\"crossorigin\")===(null==n.crossOrigin?null:n.crossOrigin)){i.splice(s,1);break t}}cu(a=o.createElement(r),r,n),o.head.appendChild(a);break;case\"meta\":if(i=cJ(\"meta\",\"content\",o).get(r+(n.content||\"\"))){for(s=0;s<i.length;s++)if((a=i[s]).getAttribute(\"content\")===(null==n.content?null:\"\"+n.content)&&a.getAttribute(\"name\")===(null==n.name?null:n.name)&&a.getAttribute(\"property\")===(null==n.property?null:n.property)&&a.getAttribute(\"http-equiv\")===(null==n.httpEquiv?null:n.httpEquiv)&&a.getAttribute(\"charset\")===(null==n.charSet?null:n.charSet)){i.splice(s,1);break t}}cu(a=o.createElement(r),r,n),o.head.appendChild(a);break;default:throw Error(l(468,r))}a[eD]=e,eY(a),r=a}e.stateNode=r}else c0(o,e.type,e.stateNode);else e.stateNode=cY(o,r,e.memoizedProps);else a!==r?(null===a?null!==n.stateNode&&(n=n.stateNode).parentNode.removeChild(n):a.count--,null===r?c0(o,e.type,e.stateNode):cY(o,r,e.memoizedProps)):null===r&&null!==e.stateNode&&i8(e,e.memoizedProps,n.memoizedProps)}break;case 27:lg(t,e),lb(e),512&r&&(lo||null===n||i6(n,n.return)),null!==n&&4&r&&i8(e,e.memoizedProps,n.memoizedProps);break;case 5:if(lg(t,e),lb(e),512&r&&(lo||null===n||i6(n,n.return)),32&e.flags){o=e.stateNode;try{ts(o,\"\")}catch(t){sP(e,e.return,t)}}4&r&&null!=e.stateNode&&(o=e.memoizedProps,i8(e,o,null!==n?n.memoizedProps:o)),1024&r&&(la=!0);break;case 6:if(lg(t,e),lb(e),4&r){if(null===e.stateNode)throw Error(l(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){sP(e,e.return,t)}}break;case 3:if(cQ=null,o=ly,ly=cR(t.containerInfo),lg(t,e),ly=o,lb(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{uO(t.containerInfo)}catch(t){sP(e,e.return,t)}la&&(la=!1,function e(t){if(1024&t.subtreeFlags)for(t=t.child;null!==t;){var n=t;e(n),5===n.tag&&1024&n.flags&&n.stateNode.reset(),t=t.sibling}}(e));break;case 4:r=ly,ly=cR(e.stateNode.containerInfo),lg(t,e),lb(e),ly=r;break;case 12:default:lg(t,e),lb(e);break;case 31:case 19:lg(t,e),lb(e),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,lm(e,r));break;case 13:lg(t,e),lb(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==n&&null!==n.memoizedState)&&(l0=er()),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,lm(e,r));break;case 22:o=null!==e.memoizedState;var c=null!==n&&null!==n.memoizedState,u=lr,d=lo;if(lr=u||o,lo=d||c,lg(t,e),lo=d,lr=u,lb(e),8192&r)e:for((t=e.stateNode)._visibility=o?-2&t._visibility:1|t._visibility,o&&(null===n||c||lr||lo||function e(t){for(t=t.child;null!==t;){var n=t;switch(n.tag){case 0:case 11:case 14:case 15:i2(4,n,n.return),e(n);break;case 1:i6(n,n.return);var r=n.stateNode;\"function\"==typeof r.componentWillUnmount&&i5(n,n.return,r),e(n);break;case 27:cD(n.stateNode);case 26:case 5:i6(n,n.return),e(n);break;case 22:null===n.memoizedState&&e(n);break;default:e(n)}t=t.sibling}}(e)),n=null,t=e;;){if(5===t.tag||26===t.tag){if(null===n){c=n=t;try{if(a=c.stateNode,o)i=a.style,\"function\"==typeof i.setProperty?i.setProperty(\"display\",\"none\",\"important\"):i.display=\"none\";else{s=c.stateNode;var f=c.memoizedProps.style,p=null!=f&&f.hasOwnProperty(\"display\")?f.display:null;s.style.display=null==p||\"boolean\"==typeof p?\"\":(\"\"+p).trim()}}catch(e){sP(c,c.return,e)}}}else if(6===t.tag){if(null===n){c=t;try{c.stateNode.nodeValue=o?\"\":c.memoizedProps}catch(e){sP(c,c.return,e)}}}else if(18===t.tag){if(null===n){c=t;try{var h=c.stateNode;o?ck(h,!0):ck(c.stateNode,!1)}catch(e){sP(c,c.return,e)}}}else if((22!==t.tag&&23!==t.tag||null===t.memoizedState||t===e)&&null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}4&r&&null!==(r=e.updateQueue)&&null!==(n=r.retryQueue)&&(r.retryQueue=null,lm(e,n));case 30:case 21:}}function lb(e){var t=e.flags;if(2&t){try{for(var n,r=e.return;null!==r;){if(i7(r)){n=r;break}r=r.return}if(null==n)throw Error(l(160));switch(n.tag){case 27:var o=n.stateNode,a=le(e);lt(e,a,o);break;case 5:var i=n.stateNode;32&n.flags&&(ts(i,\"\"),n.flags&=-33);var s=le(e);lt(e,s,i);break;case 3:case 4:var c=n.stateNode.containerInfo,u=le(e);!function e(t,n,r){var o=t.tag;if(5===o||6===o)t=t.stateNode,n?(9===r.nodeType?r.body:\"HTML\"===r.nodeName?r.ownerDocument.body:r).insertBefore(t,n):((n=9===r.nodeType?r.body:\"HTML\"===r.nodeName?r.ownerDocument.body:r).appendChild(t),null!=(r=r._reactRootContainer)||null!==n.onclick||(n.onclick=tg));else if(4!==o&&(27===o&&cC(t.type)&&(r=t.stateNode,n=null),null!==(t=t.child)))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,u,c);break;default:throw Error(l(161))}}catch(t){sP(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function lA(e,t){if(8772&t.subtreeFlags)for(t=t.child;null!==t;)ls(e,t.alternate,t),t=t.sibling}function lx(e,t){var n=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),e=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(e=t.memoizedState.cachePool.pool),e!==n&&(null!=e&&e.refCount++,null!=n&&r2(n))}function lw(e,t){e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&r2(e))}function lC(e,t,n,r){if(10256&t.subtreeFlags)for(t=t.child;null!==t;)l_(e,t,n,r),t=t.sibling}function l_(e,t,n,r){var o=t.flags;switch(t.tag){case 0:case 11:case 15:lC(e,t,n,r),2048&o&&i1(9,t);break;case 1:case 31:case 13:default:lC(e,t,n,r);break;case 3:lC(e,t,n,r),2048&o&&(e=null,null!==t.alternate&&(e=t.alternate.memoizedState.cache),(t=t.memoizedState.cache)!==e&&(t.refCount++,null!=e&&r2(e)));break;case 12:if(2048&o){lC(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,i=a.id,l=a.onPostCommit;\"function\"==typeof l&&l(i,null===t.alternate?\"mount\":\"update\",e.passiveEffectDuration,-0)}catch(e){sP(t,t.return,e)}}else lC(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,i=t.alternate,null!==t.memoizedState?2&a._visibility?lC(e,t,n,r):lk(e,t):2&a._visibility?lC(e,t,n,r):(a._visibility|=2,function e(t,n,r,o,a){for(a=a&&0!=(10256&n.subtreeFlags),n=n.child;null!==n;){var i=n,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(t,i,r,o,a),i1(8,i);break;case 23:break;case 22:var s=i.stateNode;null!==i.memoizedState?2&s._visibility?e(t,i,r,o,a):lk(t,i):(s._visibility|=2,e(t,i,r,o,a)),a&&2048&l&&lx(i.alternate,i);break;case 24:e(t,i,r,o,a),a&&2048&l&&lw(i.alternate,i);break;default:e(t,i,r,o,a)}n=n.sibling}}(e,t,n,r,0!=(10256&t.subtreeFlags))),2048&o&&lx(i,t);break;case 24:lC(e,t,n,r),2048&o&&lw(t.alternate,t)}}function lk(e,t){if(10256&t.subtreeFlags)for(t=t.child;null!==t;){var n=t,r=n.flags;switch(n.tag){case 22:lk(e,n),2048&r&&lx(n.alternate,n);break;case 24:lk(e,n),2048&r&&lw(n.alternate,n);break;default:lk(e,n)}t=t.sibling}}var lE=8192;function lj(e){if(e.subtreeFlags&lE)for(e=e.child;null!==e;)lS(e),e=e.sibling}function lS(e){switch(e.tag){case 26:lj(e),e.flags&lE&&null!==e.memoizedState&&function(e,t,n){if(null===c2)throw Error(l(475));var r=c2;if(\"stylesheet\"===t.type&&(\"string\"!=typeof n.media||!1!==matchMedia(n.media).matches)&&0==(4&t.state.loading)){if(null===t.instance){var o=cq(n.href),a=e.querySelector(cH(o));if(a){null!==(e=a._p)&&\"object\"==typeof e&&\"function\"==typeof e.then&&(r.count++,r=c4.bind(r),e.then(r,r)),t.state.loading|=4,t.instance=a,eY(a);return}a=e.ownerDocument||e,n=cV(n),(o=cL.get(o))&&cX(n,o),eY(a=a.createElement(\"link\"));var i=a;i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),cu(a,\"link\",n),t.instance=a}null===r.stylesheets&&(r.stylesheets=new Map),r.stylesheets.set(t,e),(e=t.state.preload)&&0==(3&t.state.loading)&&(r.count++,t=c4.bind(r),e.addEventListener(\"load\",t),e.addEventListener(\"error\",t))}}(ly,e.memoizedState,e.memoizedProps);break;case 5:default:lj(e);break;case 3:case 4:var t=ly;ly=cR(e.stateNode.containerInfo),lj(e),ly=t;break;case 22:null===e.memoizedState&&(null!==(t=e.alternate)&&null!==t.memoizedState?(t=lE,lE=0x1000000,lj(e),lE=t):lj(e))}}function lO(e){var t=e.alternate;if(null!==t&&null!==(e=t.child)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(null!==e)}}function lB(e){var t=e.deletions;if(0!=(16&e.flags)){if(null!==t)for(var n=0;n<t.length;n++){var r=t[n];ll=r,lI(r,e)}lO(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)lP(e),e=e.sibling}function lP(e){switch(e.tag){case 0:case 11:case 15:lB(e),2048&e.flags&&i2(9,e,e.return);break;case 3:case 12:default:lB(e);break;case 22:var t=e.stateNode;null!==e.memoizedState&&2&t._visibility&&(null===e.return||13!==e.return.tag)?(t._visibility&=-3,function e(t){var n=t.deletions;if(0!=(16&t.flags)){if(null!==n)for(var r=0;r<n.length;r++){var o=n[r];ll=o,lI(o,t)}lO(t)}for(t=t.child;null!==t;){switch((n=t).tag){case 0:case 11:case 15:i2(8,n,n.return),e(n);break;case 22:2&(r=n.stateNode)._visibility&&(r._visibility&=-3,e(n));break;default:e(n)}t=t.sibling}}(e)):lB(e)}}function lI(e,t){for(;null!==ll;){var n=ll;switch(n.tag){case 0:case 11:case 15:i2(8,n,t);break;case 23:case 22:if(null!==n.memoizedState&&null!==n.memoizedState.cachePool){var r=n.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:r2(n.memoizedState.cache)}if(null!==(r=n.child))r.return=n,ll=r;else for(n=e;null!==ll;){var o=(r=ll).sibling,a=r.return;if(!function e(t){var n=t.alternate;null!==n&&(t.alternate=null,e(n)),t.child=null,t.deletions=null,t.sibling=null,5===t.tag&&null!==(n=t.stateNode)&&eq(n),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}(r),r===n){ll=null;break}if(null!==o){o.return=a,ll=o;break}ll=a}}}var lz={getCacheForType:function(e){var t=rY(r0),n=t.data.get(e);return void 0===n&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return rY(r0).controller.signal}},lT=\"function\"==typeof WeakMap?WeakMap:Map,lD=0,lL=null,lN=null,lR=0,lM=0,lZ=null,lU=!1,lF=!1,lq=!1,lH=0,lV=0,l$=0,lW=0,lY=0,lK=0,lX=0,lG=null,lQ=null,lJ=!1,l0=0,l1=1/0,l2=null,l4=null,l5=0,l3=null,l6=null,l9=0,l8=0,l7=null,se=null,st=0,sn=null;function sr(){return 0!=(2&lD)&&0!==lR?lR&-lR:null!==I.T?sX():eI()}function so(){0===lK&&(lK=0==(0x20000000&lR)||rj?eC():0x20000000);var e=oR.current;return null!==e&&(e.flags|=32),lK}function sa(e,t,n){(e===lL&&(2===lM||9===lM)||null!==e.cancelPendingCommit)&&(sd(e,0),ss(e,lR,lK,!1)),eE(e,n),(0==(2&lD)||e!==lL)&&(e===lL&&(0==(2&lD)&&(lW|=n),4===lV&&ss(e,lR,lK,!1)),sq(e))}function si(e,t,n){if(0!=(6&lD))throw Error(l(327));for(var r=!n&&0==(124&t)&&0==(t&e.expiredLanes)||ew(e,t),o=r?function(e,t){var n=lD;lD|=2;var r=sh(),o=sm();lL!==e||lR!==t?(l2=null,l1=er()+500,sd(e,t)):lF=ew(e,t);e:for(;;)try{if(0!==lM&&null!==lN){t=lN;var a=lZ;t:switch(lM){case 1:lM=0,lZ=null,sA(e,t,a,1);break;case 2:case 9:if(ol(a)){lM=0,lZ=null,sb(t);break}t=function(){2!==lM&&9!==lM||lL!==e||(lM=7),sq(e)},a.then(t,t);break e;case 3:lM=7;break e;case 4:lM=5;break e;case 7:ol(a)?(lM=0,lZ=null,sb(t)):(lM=0,lZ=null,sA(e,t,a,7));break;case 5:var i=null;switch(lN.tag){case 26:i=lN.memoizedState;case 5:case 27:var s=lN;if(i?c1(i):s.stateNode.complete){lM=0,lZ=null;var c=s.sibling;if(null!==c)lN=c;else{var u=s.return;null!==u?(lN=u,sx(u)):lN=null}break t}}lM=0,lZ=null,sA(e,t,a,5);break;case 6:lM=0,lZ=null,sA(e,t,a,6);break;case 8:su(),lV=6;break e;default:throw Error(l(462))}}for(;null!==lN&&!et();)sv(lN);break}catch(t){sf(e,t)}return(rZ=rM=null,I.H=r,I.A=o,lD=n,null!==lN)?0:(lL=null,lR=0,n2(),lV)}(e,t):sy(e,t,!0),a=r;;){if(0===o)lF&&!r&&ss(e,t,0,!1);else{if(n=e.current.alternate,a&&!function(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&null!==(n=t.updateQueue)&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],a=o.getSnapshot;o=o.value;try{if(!nk(a(),o))return!1}catch(e){return!1}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(n)){o=sy(e,t,!1),a=!1;continue}if(2===o){if(a=t,e.errorRecoveryDisabledLanes&a)var i=0;else i=0!=(i=-0x20000001&e.pendingLanes)?i:0x20000000&i?0x20000000:0;if(0!==i){t=i;e:{o=lG;var s=e.current.memoizedState.isDehydrated;if(s&&(sd(e,i).flags|=256),2!==(i=sy(e,i,!1))){if(lq&&!s){e.errorRecoveryDisabledLanes|=a,lW|=a,o=4;break e}a=lQ,lQ=o,null!==a&&(null===lQ?lQ=a:lQ.push.apply(lQ,a))}o=i}if(a=!1,2!==o)continue}}if(1===o){sd(e,0),ss(e,t,0,!0);break}e:{switch(r=e,a=o){case 0:case 1:throw Error(l(345));case 4:if((4194048&t)!==t)break;case 6:ss(r,t,lK,!lU);break e;case 2:lQ=null;break;case 3:case 5:break;default:throw Error(l(329))}if((0x3c00000&t)===t&&10<(o=l0+300-er())){if(ss(r,t,lK,!lU),0!==ex(r,0,!0))break e;r.timeoutHandle=cv(sl.bind(null,r,n,lQ,l2,lJ,t,lK,lW,lX,lU,a,2,-0,0),o);break e}sl(r,n,lQ,l2,lJ,t,lK,lW,lX,lU,a,0,-0,0)}}break}sq(e)}function sl(e,t,n,r,o,a,i,s,c,u,d,f,p,h){if(e.timeoutHandle=-1,(8192&(f=t.subtreeFlags)||0x1002000==(0x1002000&f))&&(c2={stylesheets:null,count:0,unsuspend:tg},lS(t),null!==(f=function(){if(null===c2)throw Error(l(475));var e=c2;return e.stylesheets&&0===e.count&&c3(e,e.stylesheets),0<e.count?function(t){var n=setTimeout(function(){if(e.stylesheets&&c3(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4);return e.unsuspend=t,function(){e.unsuspend=null,clearTimeout(n)}}:null}()))){e.cancelPendingCommit=f(sC.bind(null,e,t,a,n,r,o,i,s,c,d,1,p,h)),ss(e,a,i,!u);return}sC(e,t,a,n,r,o,i,s,c)}function ss(e,t,n,r){t&=~lY,t&=~lW,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var o=t;0<o;){var a=31-em(o),i=1<<a;r[a]=-1,o&=~i}0!==n&&ej(e,n,t)}function sc(){return 0!=(6&lD)||(sH(0,!1),!1)}function su(){if(null!==lN){if(0===lM)var e=lN.return;else e=lN,rZ=rM=null,an(e),op=null,oh=0,e=lN;for(;null!==e;)i0(e.alternate,e),e=e.return;lN=null}}function sd(e,t){var n=e.timeoutHandle;-1!==n&&(e.timeoutHandle=-1,cb(n)),null!==(n=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,n()),su(),lL=e,lN=n=rn(e.current,null),lR=t,lM=0,lZ=null,lU=!1,lF=ew(e,t),lq=!1,lX=lK=lY=lW=l$=lV=0,lQ=lG=null,lJ=!1,0!=(8&t)&&(t|=32&t);var r=e.entangledLanes;if(0!==r)for(e=e.entanglements,r&=t;0<r;){var o=31-em(r),a=1<<o;t|=e[o],r&=~a}return lH=t,n2(),n}function sf(e,t){oY=null,I.H=ie,t===or||t===oa?(t=od(),lM=3):t===oo?(t=od(),lM=4):lM=t===ib?8:null!==t&&\"object\"==typeof t&&\"function\"==typeof t.then?6:1,lZ=t,null===lN&&(lV=1,ih(e,ru(t,e.current)))}function sp(){var e=oR.current;return null===e||((4194048&lR)===lR?null===oM:((0x3c00000&lR)===lR||0!=(0x20000000&lR))&&e===oM)}function sh(){var e=I.H;return I.H=ie,null===e?ie:e}function sm(){var e=I.A;return I.A=lz,e}function sg(){lV=4,lU||(4194048&lR)!==lR&&null!==oR.current||(lF=!0),0==(0x7ffffff&l$)&&0==(0x7ffffff&lW)||null===lL||ss(lL,lR,lK,!1)}function sy(e,t,n){var r=lD;lD|=2;var o=sh(),a=sm();(lL!==e||lR!==t)&&(l2=null,sd(e,t)),t=!1;var i=lV;e:for(;;)try{if(0!==lM&&null!==lN){var l=lN,s=lZ;switch(lM){case 8:su(),i=6;break e;case 3:case 2:case 9:case 6:null===oR.current&&(t=!0);var c=lM;if(lM=0,lZ=null,sA(e,l,s,c),n&&lF){i=0;break e}break;default:c=lM,lM=0,lZ=null,sA(e,l,s,c)}}(function(){for(;null!==lN;)sv(lN)})(),i=lV;break}catch(t){sf(e,t)}return t&&e.shellSuspendCounter++,rZ=rM=null,lD=r,I.H=o,I.A=a,null===lN&&(lL=null,lR=0,n2()),i}function sv(e){var t=iW(e.alternate,e,lH);e.memoizedProps=e.pendingProps,null===t?sx(e):lN=t}function sb(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=iI(n,t,t.pendingProps,t.type,void 0,lR);break;case 11:t=iI(n,t,t.pendingProps,t.type.render,t.ref,lR);break;case 5:an(t);default:i0(n,t),t=iW(n,t=lN=rr(t,lH),lH)}e.memoizedProps=e.pendingProps,null===t?sx(e):lN=t}function sA(e,t,n,r){rZ=rM=null,an(t),op=null,oh=0;var o=t.return;try{if(function(e,t,n,r,o){if(n.flags|=32768,null!==r&&\"object\"==typeof r&&\"function\"==typeof r.then){if(null!==(t=n.alternate)&&rV(t,n,o,!0),null!==(n=oR.current)){switch(n.tag){case 31:case 13:return null===oM?sg():null===n.alternate&&0===lV&&(lV=3),n.flags&=-257,n.flags|=65536,n.lanes=o,r===oi?n.flags|=16384:(null===(t=n.updateQueue)?n.updateQueue=new Set([r]):t.add(r),sI(e,r,o)),!1;case 22:return n.flags|=65536,r===oi?n.flags|=16384:(null===(t=n.updateQueue)?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):null===(n=t.retryQueue)?t.retryQueue=new Set([r]):n.add(r),sI(e,r,o)),!1}throw Error(l(435,n.tag))}return sI(e,r,o),sg(),!1}if(rj)return null!==(t=oR.current)?(0==(65536&t.flags)&&(t.flags|=256),t.flags|=65536,t.lanes=o,r!==rB&&rN(ru(e=Error(l(422),{cause:r}),n))):(r!==rB&&rN(ru(t=Error(l(423),{cause:r}),n)),e=e.current.alternate,e.flags|=65536,o&=-o,e.lanes|=o,r=ru(r,n),o=ig(e.stateNode,r,o),oj(e,o),4!==lV&&(lV=2)),!1;var a=Error(l(520),{cause:r});if(a=ru(a,n),null===lG?lG=[a]:lG.push(a),4!==lV&&(lV=2),null===t)return!0;r=ru(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=o&-o,n.lanes|=e,e=ig(n.stateNode,r,e),oj(n,e),!1;case 1:if(t=n.type,a=n.stateNode,0==(128&n.flags)&&(\"function\"==typeof t.getDerivedStateFromError||null!==a&&\"function\"==typeof a.componentDidCatch&&(null===l4||!l4.has(a))))return n.flags|=65536,o&=-o,n.lanes|=o,iv(o=iy(o),e,n,r),oj(n,o),!1}n=n.return}while(null!==n);return!1}(e,o,t,n,lR)){lV=1,ih(e,ru(n,e.current)),lN=null;return}}catch(t){if(null!==o)throw lN=o,t;lV=1,ih(e,ru(n,e.current)),lN=null;return}32768&t.flags?(rj||1===r?e=!0:lF||0!=(0x20000000&lR)?e=!1:(lU=e=!0,(2===r||9===r||3===r||6===r)&&null!==(r=oR.current)&&13===r.tag&&(r.flags|=16384)),sw(t,e)):sx(t)}function sx(e){var t=e;do{if(0!=(32768&t.flags))return void sw(t,lU);e=t.return;var n=function(e,t,n){var r=t.pendingProps;switch(rC(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return iJ(t),null;case 3:return n=t.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),rF(r0),V(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(null===e||null===e.child)&&(rT(t)?iY(t):null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,rL())),iJ(t),null;case 26:var o=t.type,a=t.memoizedState;return null===e?(iY(t),null!==a?(iJ(t),iX(t,a)):(iJ(t),iK(t,o,null,r,n))):a?a!==e.memoizedState?(iY(t),iJ(t),iX(t,a)):(iJ(t),t.flags&=-0x1000001):((e=e.memoizedProps)!==r&&iY(t),iJ(t),iK(t,o,e,r,n)),null;case 27:if(W(t),n=F.current,o=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&iY(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return iJ(t),null}e=Z.current,rT(t)?rI(t,e):(t.stateNode=e=cT(o,r,n),iY(t))}return iJ(t),null;case 5:if(W(t),o=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&iY(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return iJ(t),null}if(a=Z.current,rT(t))rI(t,a);else{var i=cp(F.current);switch(a){case 1:a=i.createElementNS(\"http://www.w3.org/2000/svg\",o);break;case 2:a=i.createElementNS(\"http://www.w3.org/1998/Math/MathML\",o);break;default:switch(o){case\"svg\":a=i.createElementNS(\"http://www.w3.org/2000/svg\",o);break;case\"math\":a=i.createElementNS(\"http://www.w3.org/1998/Math/MathML\",o);break;case\"script\":(a=i.createElement(\"div\")).innerHTML=\"<script><\\/script>\",a=a.removeChild(a.firstChild);break;case\"select\":a=\"string\"==typeof r.is?i.createElement(\"select\",{is:r.is}):i.createElement(\"select\"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=\"string\"==typeof r.is?i.createElement(o,{is:r.is}):i.createElement(o)}}a[eD]=t,a[eL]=r;e:for(i=t.child;null!==i;){if(5===i.tag||6===i.tag)a.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(t.stateNode=a,cu(a,o,r),o){case\"button\":case\"input\":case\"select\":case\"textarea\":r=!!r.autoFocus;break;case\"img\":r=!0;break;default:r=!1}r&&iY(t)}}return iJ(t),iK(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&iY(t);else{if(\"string\"!=typeof r&&null===t.stateNode)throw Error(l(166));if(e=F.current,rT(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(o=rk))switch(o.tag){case 27:case 5:r=o.memoizedProps}e[eD]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||cl(e.nodeValue,n)))||rP(t,!0)}else(e=cp(e).createTextNode(r))[eD]=t,t.stateNode=e}return iJ(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rT(t),null!==n){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(l(557));e[eD]=t}else rD(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;iJ(t),e=!1}else n=rL(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return oH(t),t;return oH(t),null}if(0!=(128&t.flags))throw Error(l(558))}return iJ(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(o=rT(t),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(l(318));if(!(o=null!==(o=t.memoizedState)?o.dehydrated:null))throw Error(l(317));o[eD]=t}else rD(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;iJ(t),o=!1}else o=rL(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=o),o=!0;if(!o){if(256&t.flags)return oH(t),t;return oH(t),null}}if(oH(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,o=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(o=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==o&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),iG(t,t.updateQueue),iJ(t),null;case 4:return V(),null===e&&s9(t.stateNode.containerInfo),iJ(t),null;case 10:return rF(t.type),iJ(t),null;case 19:if(R(oV),null===(r=t.memoizedState))return iJ(t),null;if(o=0!=(128&t.flags),null===(a=r.rendering))if(o)iQ(r,!1);else{if(0!==lV||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=o$(e))){for(t.flags|=128,iQ(r,!1),t.updateQueue=e=a.updateQueue,iG(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rr(n,e),n=n.sibling;return M(oV,1&oV.current|2),rj&&rA(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&er()>l1&&(t.flags|=128,o=!0,iQ(r,!1),t.lanes=4194304)}else{if(!o)if(null!==(e=o$(a))){if(t.flags|=128,o=!0,t.updateQueue=e=e.updateQueue,iG(t,e),iQ(r,!0),null===r.tail&&\"hidden\"===r.tailMode&&!a.alternate&&!rj)return iJ(t),null}else 2*er()-r.renderingStartTime>l1&&0x20000000!==n&&(t.flags|=128,o=!0,iQ(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}if(null!==r.tail)return e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=er(),e.sibling=null,n=oV.current,M(oV,o?1&n|2:1&n),rj&&rA(t,r.treeForkCount),e;return iJ(t),null;case 22:case 23:return oH(t),oN(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(iJ(t),6&t.subtreeFlags&&(t.flags|=8192)):iJ(t),null!==(n=t.updateQueue)&&iG(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&R(r7),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),rF(r0),iJ(t),null;case 25:case 30:return null}throw Error(l(156,t.tag))}(t.alternate,t,lH);if(null!==n){lN=n;return}if(null!==(t=t.sibling)){lN=t;return}lN=t=e}while(null!==t);0===lV&&(lV=5)}function sw(e,t){do{var n=function(e,t){switch(rC(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return rF(r0),V(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return W(t),null;case 31:if(null!==t.memoizedState){if(oH(t),null===t.alternate)throw Error(l(340));rD()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(oH(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(l(340));rD()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return R(oV),null;case 4:return V(),null;case 10:return rF(t.type),null;case 22:case 23:return oH(t),oN(),null!==e&&R(r7),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return rF(r0),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,lN=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){lN=e;return}lN=e=n}while(null!==e);lV=6,lN=null}function sC(e,t,n,r,o,a,i,s,c){e.cancelPendingCommit=null;do sS();while(0!==l5);if(0!=(6&lD))throw Error(l(327));if(null!==t){if(t===e.current)throw Error(l(177));if(!function(e,t,n,r,o,a){var i=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,c=e.hiddenUpdates;for(n=i&~n;0<n;){var u=31-em(n),d=1<<u;l[u]=0,s[u]=-1;var f=c[u];if(null!==f)for(c[u]=null,u=0;u<f.length;u++){var p=f[u];null!==p&&(p.lane&=-0x20000001)}n&=~d}0!==r&&ej(e,r,0),0!==a&&0===o&&0!==e.tag&&(e.suspendedLanes|=a&~(i&~t))}(e,n,a=t.lanes|t.childLanes|n1,i,s,c),e===lL&&(lN=lL=null,lR=0),l6=t,l3=e,l9=n,l8=a,l7=o,se=r,0!=(10256&t.subtreeFlags)||0!=(10256&t.flags)?(e.callbackNode=null,e.callbackPriority=0,J(el,function(){return sO(!0),null})):(e.callbackNode=null,e.callbackPriority=0),r=0!=(13878&t.flags),0!=(13878&t.subtreeFlags)||r){r=I.T,I.T=null,o=z.p,z.p=2,i=lD,lD|=4;try{!function(e,t){if(e=e.containerInfo,cd=uo,nB(e=nO(e))){if(\"selectionStart\"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var o,a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(e){n=null;break e}var s=0,c=-1,u=-1,d=0,f=0,p=e,h=null;t:for(;;){for(;p!==n||0!==a&&3!==p.nodeType||(c=s+a),p!==i||0!==r&&3!==p.nodeType||(u=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(o=p.firstChild);)h=p,p=o;for(;;){if(p===e)break t;if(h===n&&++d===a&&(c=s),h===i&&++f===r&&(u=s),null!==(o=p.nextSibling))break;h=(p=h).parentNode}p=o}n=-1===c||-1===u?null:{start:c,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(cf={focusedElem:e,selectionRange:n},uo=!1,ll=t;null!==ll;)if(e=(t=ll).child,0!=(1024&t.subtreeFlags)&&null!==e)e.return=t,ll=e;else for(;null!==ll;){switch(i=(t=ll).alternate,e=t.flags,t.tag){case 0:case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(0!=(1024&e)&&null!==i){e=void 0,n=t,a=i.memoizedProps,i=i.memoizedState,r=n.stateNode;try{var m=ic(n.type,a);e=r.getSnapshotBeforeUpdate(m,i),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){sP(n,n.return,e)}}break;case 3:if(0!=(1024&e)){if(9===(n=(e=t.stateNode.containerInfo).nodeType))cE(e);else if(1===n)switch(e.nodeName){case\"HEAD\":case\"HTML\":case\"BODY\":cE(e);break;default:e.textContent=\"\"}}break;default:if(0!=(1024&e))throw Error(l(163))}if(null!==(e=t.sibling)){e.return=t.return,ll=e;break}ll=t.return}}(e,t,n)}finally{lD=i,z.p=o,I.T=r}}l5=1,s_(),sk(),sE()}}function s_(){if(1===l5){l5=0;var e=l3,t=l6,n=0!=(13878&t.flags);if(0!=(13878&t.subtreeFlags)||n){n=I.T,I.T=null;var r=z.p;z.p=2;var o=lD;lD|=4;try{lv(t,e);var a=cf,i=nO(e.containerInfo),l=a.focusedElem,s=a.selectionRange;if(i!==l&&l&&l.ownerDocument&&function e(t,n){return!!t&&!!n&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):\"contains\"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(l.ownerDocument.documentElement,l)){if(null!==s&&nB(l)){var c=s.start,u=s.end;if(void 0===u&&(u=c),\"selectionStart\"in l)l.selectionStart=c,l.selectionEnd=Math.min(u,l.value.length);else{var d=l.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),h=l.textContent.length,m=Math.min(s.start,h),g=void 0===s.end?m:Math.min(s.end,h);!p.extend&&m>g&&(i=g,g=m,m=i);var y=nS(l,m),v=nS(l,g);if(y&&v&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var b=d.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),m>g?(p.addRange(b),p.extend(v.node,v.offset)):(b.setEnd(v.node,v.offset),p.addRange(b))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(\"function\"==typeof l.focus&&l.focus(),l=0;l<d.length;l++){var A=d[l];A.element.scrollLeft=A.left,A.element.scrollTop=A.top}}uo=!!cd,cf=cd=null}finally{lD=o,z.p=r,I.T=n}}e.current=t,l5=2}}function sk(){if(2===l5){l5=0;var e=l3,t=l6,n=0!=(8772&t.flags);if(0!=(8772&t.subtreeFlags)||n){n=I.T,I.T=null;var r=z.p;z.p=2;var o=lD;lD|=4;try{ls(e,t.alternate,t)}finally{lD=o,z.p=r,I.T=n}}l5=3}}function sE(){if(4===l5||3===l5){l5=0,en();var e=l3,t=l6,n=l9,r=se;0!=(10256&t.subtreeFlags)||0!=(10256&t.flags)?l5=5:(l5=0,l6=l3=null,sj(e,e.pendingLanes));var o=e.pendingLanes;if(0===o&&(l4=null),eP(n),t=t.stateNode,ep&&\"function\"==typeof ep.onCommitFiberRoot)try{ep.onCommitFiberRoot(ef,t,void 0,128==(128&t.current.flags))}catch(e){}if(null!==r){t=I.T,o=z.p,z.p=2,I.T=null;try{for(var a=e.onRecoverableError,i=0;i<r.length;i++){var l=r[i];a(l.value,{componentStack:l.stack})}}finally{I.T=t,z.p=o}}0!=(3&l9)&&sS(),sq(e),o=e.pendingLanes,0!=(4194090&n)&&0!=(42&o)?e===sn?st++:(st=0,sn=e):st=0,sH(0,!1)}}function sj(e,t){0==(e.pooledCacheLanes&=t)&&null!=(t=e.pooledCache)&&(e.pooledCache=null,r2(t))}function sS(e){return s_(),sk(),sE(),sO(e)}function sO(){if(5!==l5)return!1;var e=l3,t=l8;l8=0;var n=eP(l9),r=I.T,o=z.p;try{z.p=32>n?32:n,I.T=null,n=l7,l7=null;var a=l3,i=l9;if(l5=0,l6=l3=null,l9=0,0!=(6&lD))throw Error(l(331));var s=lD;if(lD|=4,lP(a.current),l_(a,a.current,i,n),lD=s,sH(0,!1),ep&&\"function\"==typeof ep.onPostCommitFiberRoot)try{ep.onPostCommitFiberRoot(ef,a)}catch(e){}return!0}finally{z.p=o,I.T=r,sj(e,t)}}function sB(e,t,n){t=ru(n,t),t=ig(e.stateNode,t,2),null!==(e=ok(e,t,2))&&(eE(e,2),sq(e))}function sP(e,t,n){if(3===e.tag)sB(e,e,n);else for(;null!==t;){if(3===t.tag){sB(t,e,n);break}if(1===t.tag){var r=t.stateNode;if(\"function\"==typeof t.type.getDerivedStateFromError||\"function\"==typeof r.componentDidCatch&&(null===l4||!l4.has(r))){e=ru(n,e),null!==(r=ok(t,n=iy(2),2))&&(iv(n,r,t,e),eE(r,2),sq(r));break}}t=t.return}}function sI(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new lT;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(lq=!0,o.add(n),e=sz.bind(null,e,t,n),t.then(e,e))}function sz(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,lL===e&&(lR&n)===n&&(4===lV||3===lV&&(0x3c00000&lR)===lR&&300>er()-l0?0==(2&lD)&&sd(e,0):lY|=n,lX===lR&&(lX=0)),sq(e)}function sT(e,t){0===t&&(t=e_()),null!==(e=n3(e,t))&&(eE(e,t),sq(e))}function sD(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sT(e,n)}function sL(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(t),sT(e,n)}var sN=null,sR=null,sM=!1,sZ=!1,sU=!1,sF=0;function sq(e){e!==sR&&null===e.next&&(null===sR?sN=sR=e:sR=sR.next=e),sZ=!0,sM||(sM=!0,cx(function(){0!=(6&lD)?J(ea,sV):s$()}))}function sH(e,t){if(!sU&&sZ){sU=!0;do for(var n=!1,r=sN;null!==r;){if(!t)if(0!==e){var o=r.pendingLanes;if(0===o)var a=0;else{var i=r.suspendedLanes,l=r.pingedLanes;a=0xc000095&(a=(1<<31-em(42|e)+1)-1&(o&~(i&~l)))?0xc000095&a|1:a?2|a:0}0!==a&&(n=!0,sK(r,a))}else a=lR,0==(3&(a=ex(r,r===lL?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||ew(r,a)||(n=!0,sK(r,a));r=r.next}while(n);sU=!1}}function sV(){s$()}function s$(){sZ=sM=!1;var e,t=0;0===sF||((e=window.event)&&\"popstate\"===e.type?e===cy||(cy=e,0):(cy=null,1))||(t=sF);for(var n=er(),r=null,o=sN;null!==o;){var a=o.next,i=sW(o,n);0===i?(o.next=null,null===r?sN=a:r.next=a,null===a&&(sR=r)):(r=o,(0!==t||0!=(3&i))&&(sZ=!0)),o=a}0!==l5&&5!==l5||sH(t,!1),0!==sF&&(sF=0)}function sW(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0<a;){var i=31-em(a),l=1<<i,s=o[i];-1===s?(0==(l&n)||0!=(l&r))&&(o[i]=function(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return -1}}(l,t)):s<=t&&(e.expiredLanes|=l),a&=~l}if(t=lL,n=lR,n=ex(e,e===t?n:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===n||e===t&&(2===lM||9===lM)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&ee(r),e.callbackNode=null,e.callbackPriority=0;if(0==(3&n)||ew(e,n)){if((t=n&-n)===e.callbackPriority)return t;switch(null!==r&&ee(r),eP(n)){case 2:case 8:n=ei;break;case 32:default:n=el;break;case 0x10000000:n=ec}return n=J(n,r=sY.bind(null,e)),e.callbackPriority=t,e.callbackNode=n,t}return null!==r&&null!==r&&ee(r),e.callbackPriority=2,e.callbackNode=null,2}function sY(e,t){if(0!==l5&&5!==l5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(sS(!0)&&e.callbackNode!==n)return null;var r=lR;return 0===(r=ex(e,e===lL?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(si(e,r,t),sW(e,er()),null!=e.callbackNode&&e.callbackNode===n?sY.bind(null,e):null)}function sK(e,t){if(sS())return null;si(e,t,!0)}function sX(){if(0===sF){var e=r3;sF=0!==e?e:eC()}return sF}function sG(e){return null==e||\"symbol\"==typeof e||\"boolean\"==typeof e?null:\"function\"==typeof e?e:tm(\"\"+e)}function sQ(e,t){var n=t.ownerDocument.createElement(\"input\");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(\"form\",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}for(var sJ=0;sJ<nX.length;sJ++){var s0=nX[sJ];nG(s0.toLowerCase(),\"on\"+(s0[0].toUpperCase()+s0.slice(1)))}nG(nF,\"onAnimationEnd\"),nG(nq,\"onAnimationIteration\"),nG(nH,\"onAnimationStart\"),nG(\"dblclick\",\"onDoubleClick\"),nG(\"focusin\",\"onFocus\"),nG(\"focusout\",\"onBlur\"),nG(nV,\"onTransitionRun\"),nG(n$,\"onTransitionStart\"),nG(nW,\"onTransitionCancel\"),nG(nY,\"onTransitionEnd\"),eQ(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]),eQ(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]),eQ(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]),eQ(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]),eG(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \")),eG(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \")),eG(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]),eG(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \")),eG(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")),eG(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var s1=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),s2=new Set(\"beforetoggle cancel close invalid load scroll scrollend toggle\".split(\" \").concat(s1));function s4(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,c=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;a=l,o.currentTarget=c;try{a(o)}catch(e){nQ(e)}o.currentTarget=null,a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,c=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;a=l,o.currentTarget=c;try{a(o)}catch(e){nQ(e)}o.currentTarget=null,a=s}}}}function s5(e,t){var n=t[eR];void 0===n&&(n=t[eR]=new Set);var r=e+\"__bubble\";n.has(r)||(s8(t,e,2,!1),n.add(r))}function s3(e,t,n){var r=0;t&&(r|=4),s8(n,e,r,t)}var s6=\"_reactListening\"+Math.random().toString(36).slice(2);function s9(e){if(!e[s6]){e[s6]=!0,eK.forEach(function(t){\"selectionchange\"!==t&&(s2.has(t)||s3(t,!1,e),s3(t,!0,e))});var t=9===e.nodeType?e:e.ownerDocument;null===t||t[s6]||(t[s6]=!0,s3(\"selectionchange\",!1,t))}}function s8(e,t,n,r){switch(ud(t)){case 2:var o=ua;break;case 8:o=ui;break;default:o=ul}n=o.bind(null,t,n,e),o=void 0,tE&&(\"touchstart\"===t||\"touchmove\"===t||\"wheel\"===t)&&(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function s7(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&i.stateNode.containerInfo===o)return;i=i.return}for(;null!==l;){if(null===(i=eH(l)))return;if(5===(c=i.tag)||6===c||26===c||27===c){r=a=i;continue e}l=l.parentNode}}r=r.return}tC(function(){var r=a,o=tv(n),i=[];e:{var l=nK.get(e);if(void 0!==l){var c=tF,u=e;switch(e){case\"keypress\":if(0===tI(n))break e;case\"keydown\":case\"keyup\":c=t4;break;case\"focusin\":u=\"focus\",c=tY;break;case\"focusout\":u=\"blur\",c=tY;break;case\"beforeblur\":case\"afterblur\":c=tY;break;case\"click\":if(2===n.button)break e;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":c=t$;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":c=tW;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":c=t3;break;case nF:case nq:case nH:c=tK;break;case nY:c=t6;break;case\"scroll\":case\"scrollend\":c=tH;break;case\"wheel\":c=t9;break;case\"copy\":case\"cut\":case\"paste\":c=tX;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":c=t5;break;case\"toggle\":case\"beforetoggle\":c=t8}var d=0!=(4&t),f=!d&&(\"scroll\"===e||\"scrollend\"===e),p=d?null!==l?l+\"Capture\":null:l;d=[];for(var h,m=r;null!==m;){var g=m;if(h=g.stateNode,5!==(g=g.tag)&&26!==g&&27!==g||null===h||null===p||null!=(g=t_(m,p))&&d.push(ce(m,g,h)),f)break;m=m.return}0<d.length&&(l=new c(l,u,null,n,o),i.push({event:l,listeners:d}))}}if(0==(7&t)){if((l=\"mouseover\"===e||\"pointerover\"===e,c=\"mouseout\"===e||\"pointerout\"===e,!(l&&n!==ty&&(u=n.relatedTarget||n.fromElement)&&(eH(u)||u[eN])))&&(c||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,c?(u=n.relatedTarget||n.toElement,c=r,null!==(u=u?eH(u):null)&&(f=s(u),d=u.tag,u!==f||5!==d&&27!==d&&6!==d)&&(u=null)):(c=null,u=r),c!==u)){if(d=t$,g=\"onMouseLeave\",p=\"onMouseEnter\",m=\"mouse\",(\"pointerout\"===e||\"pointerover\"===e)&&(d=t5,g=\"onPointerLeave\",p=\"onPointerEnter\",m=\"pointer\"),f=null==c?l:e$(c),h=null==u?l:e$(u),(l=new d(g,m+\"leave\",c,n,o)).target=f,l.relatedTarget=h,g=null,eH(o)===r&&((d=new d(p,m+\"enter\",u,n,o)).target=h,d.relatedTarget=f,g=d),f=g,c&&u)t:{for(d=cn,p=c,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var y,v=m;v;v=d(v))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||null!==m&&p===m.alternate){d=p;break t}p=d(p),m=d(m)}d=null}else d=null;null!==c&&cr(i,l,c,d,!1),null!==u&&null!==f&&cr(i,f,u,d,!0)}e:{if(\"select\"===(c=(l=r?e$(r):window).nodeName&&l.nodeName.toLowerCase())||\"input\"===c&&\"file\"===l.type)var b=nm;else if(nc(l))if(ng)b=n_;else{b=nw;var A=nx}else(c=l.nodeName)&&\"input\"===c.toLowerCase()&&(\"checkbox\"===l.type||\"radio\"===l.type)?b=nC:r&&tf(r.elementType)&&(b=nm);if(b&&(b=b(e,r))){nu(i,b,n,o);break e}A&&A(e,l,r),\"focusout\"===e&&r&&\"number\"===l.type&&null!=r.memoizedProps.value&&to(l,\"number\",l.value)}switch(A=r?e$(r):window,e){case\"focusin\":(nc(A)||\"true\"===A.contentEditable)&&(nI=A,nz=r,nT=null);break;case\"focusout\":nT=nz=nI=null;break;case\"mousedown\":nD=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":nD=!1,nL(i,n,o);break;case\"selectionchange\":if(nP)break;case\"keydown\":case\"keyup\":nL(i,n,o)}if(ne)t:{switch(e){case\"compositionstart\":var x=\"onCompositionStart\";break t;case\"compositionend\":x=\"onCompositionEnd\";break t;case\"compositionupdate\":x=\"onCompositionUpdate\";break t}x=void 0}else nl?na(e,n)&&(x=\"onCompositionEnd\"):\"keydown\"===e&&229===n.keyCode&&(x=\"onCompositionStart\");x&&(nr&&\"ko\"!==n.locale&&(nl||\"onCompositionStart\"!==x?\"onCompositionEnd\"===x&&nl&&(y=tP()):(tO=\"value\"in(tS=o)?tS.value:tS.textContent,nl=!0)),0<(A=ct(r,x)).length&&(x=new tG(x,e,null,n,o),i.push({event:x,listeners:A}),y?x.data=y:null!==(y=ni(n))&&(x.data=y))),(y=nn?function(e,t){switch(e){case\"compositionend\":return ni(t);case\"keypress\":if(32!==t.which)return null;return no=!0,\" \";case\"textInput\":return\" \"===(e=t.data)&&no?null:e;default:return null}}(e,n):function(e,t){if(nl)return\"compositionend\"===e||!ne&&na(e,t)?(e=tP(),tB=tO=tS=null,nl=!1,e):null;switch(e){case\"paste\":default:return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case\"compositionend\":return nr&&\"ko\"!==t.locale?null:t.data}}(e,n))&&0<(x=ct(r,\"onBeforeInput\")).length&&(A=new tG(\"onBeforeInput\",\"beforeinput\",null,n,o),i.push({event:A,listeners:x}),A.data=y);var w=e;if(\"submit\"===w&&r&&r.stateNode===o){var C=sG((o[eL]||null).action),_=n.submitter;_&&null!==(w=(w=_[eL]||null)?sG(w.formAction):_.getAttribute(\"formAction\"))&&(C=w,_=null);var k=new tF(\"action\",\"action\",null,n,o);i.push({event:k,listeners:[{instance:null,listener:function(){if(n.defaultPrevented){if(0!==sF){var e=_?sQ(o,_):new FormData(o);aX(r,{pending:!0,data:e,method:o.method,action:C},null,e)}}else\"function\"==typeof C&&(k.preventDefault(),aX(r,{pending:!0,data:e=_?sQ(o,_):new FormData(o),method:o.method,action:C},C,e))},currentTarget:o}]})}}s4(i,t)})}function ce(e,t,n){return{instance:e,listener:t,currentTarget:n}}function ct(e,t){for(var n=t+\"Capture\",r=[];null!==e;){var o=e,a=o.stateNode;if(5!==(o=o.tag)&&26!==o&&27!==o||null===a||(null!=(o=t_(e,n))&&r.unshift(ce(e,o,a)),null!=(o=t_(e,t))&&r.push(ce(e,o,a))),3===e.tag)return r;e=e.return}return[]}function cn(e){if(null===e)return null;do e=e.return;while(e&&5!==e.tag&&27!==e.tag);return e||null}function cr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,c=l.stateNode;if(l=l.tag,null!==s&&s===r)break;5!==l&&26!==l&&27!==l||null===c||(s=c,o?null!=(c=t_(n,a))&&i.unshift(ce(n,c,s)):o||null!=(c=t_(n,a))&&i.push(ce(n,c,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var co=/\\r\\n?/g,ca=/\\u0000|\\uFFFD/g;function ci(e){return(\"string\"==typeof e?e:\"\"+e).replace(co,\"\\n\").replace(ca,\"\")}function cl(e,t){return t=ci(t),ci(e)===t}function cs(e,t,n,r,o,a){switch(n){case\"children\":\"string\"==typeof r?\"body\"===t||\"textarea\"===t&&\"\"===r||ts(e,r):(\"number\"==typeof r||\"bigint\"==typeof r)&&\"body\"!==t&&ts(e,\"\"+r);break;case\"className\":e4(e,\"class\",r);break;case\"tabIndex\":e4(e,\"tabindex\",r);break;case\"dir\":case\"role\":case\"viewBox\":case\"width\":case\"height\":e4(e,n,r);break;case\"style\":td(e,r,a);break;case\"data\":if(\"object\"!==t){e4(e,\"data\",r);break}case\"src\":case\"href\":if(\"\"===r&&(\"a\"!==t||\"href\"!==n)||null==r||\"function\"==typeof r||\"symbol\"==typeof r||\"boolean\"==typeof r){e.removeAttribute(n);break}r=tm(\"\"+r),e.setAttribute(n,r);break;case\"action\":case\"formAction\":if(\"function\"==typeof r){e.setAttribute(n,\"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\");break}if(\"function\"==typeof a&&(\"formAction\"===n?(\"input\"!==t&&cs(e,t,\"name\",o.name,o,null),cs(e,t,\"formEncType\",o.formEncType,o,null),cs(e,t,\"formMethod\",o.formMethod,o,null),cs(e,t,\"formTarget\",o.formTarget,o,null)):(cs(e,t,\"encType\",o.encType,o,null),cs(e,t,\"method\",o.method,o,null),cs(e,t,\"target\",o.target,o,null))),null==r||\"symbol\"==typeof r||\"boolean\"==typeof r){e.removeAttribute(n);break}r=tm(\"\"+r),e.setAttribute(n,r);break;case\"onClick\":null!=r&&(e.onclick=tg);break;case\"onScroll\":null!=r&&s5(\"scroll\",e);break;case\"onScrollEnd\":null!=r&&s5(\"scrollend\",e);break;case\"dangerouslySetInnerHTML\":if(null!=r){if(\"object\"!=typeof r||!(\"__html\"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=o.children)throw Error(l(60));e.innerHTML=n}}break;case\"multiple\":e.multiple=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r;break;case\"muted\":e.muted=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r;break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":case\"autoFocus\":case\"innerText\":case\"textContent\":break;case\"xlinkHref\":if(null==r||\"function\"==typeof r||\"boolean\"==typeof r||\"symbol\"==typeof r){e.removeAttribute(\"xlink:href\");break}n=tm(\"\"+r),e.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",n);break;case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(n,\"\"+r):e.removeAttribute(n);break;case\"inert\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(n,\"\"):e.removeAttribute(n);break;case\"capture\":case\"download\":!0===r?e.setAttribute(n,\"\"):!1!==r&&null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(n,r):e.removeAttribute(n);break;case\"cols\":case\"rows\":case\"size\":case\"span\":null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case\"rowSpan\":case\"start\":null==r||\"function\"==typeof r||\"symbol\"==typeof r||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case\"popover\":s5(\"beforetoggle\",e),s5(\"toggle\",e),e2(e,\"popover\",r);break;case\"xlinkActuate\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:actuate\",r);break;case\"xlinkArcrole\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:arcrole\",r);break;case\"xlinkRole\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:role\",r);break;case\"xlinkShow\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:show\",r);break;case\"xlinkTitle\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:title\",r);break;case\"xlinkType\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:type\",r);break;case\"xmlBase\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:base\",r);break;case\"xmlLang\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:lang\",r);break;case\"xmlSpace\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",r);break;case\"is\":e2(e,\"is\",r);break;default:2<n.length&&(\"o\"===n[0]||\"O\"===n[0])&&(\"n\"===n[1]||\"N\"===n[1])||e2(e,n=tp.get(n)||n,r)}}function cc(e,t,n,r,o,a){switch(n){case\"style\":td(e,r,a);break;case\"dangerouslySetInnerHTML\":if(null!=r){if(\"object\"!=typeof r||!(\"__html\"in r))throw Error(l(61));if(null!=(n=r.__html)){if(null!=o.children)throw Error(l(60));e.innerHTML=n}}break;case\"children\":\"string\"==typeof r?ts(e,r):(\"number\"==typeof r||\"bigint\"==typeof r)&&ts(e,\"\"+r);break;case\"onScroll\":null!=r&&s5(\"scroll\",e);break;case\"onScrollEnd\":null!=r&&s5(\"scrollend\",e);break;case\"onClick\":null!=r&&(e.onclick=tg);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"innerHTML\":case\"ref\":case\"innerText\":case\"textContent\":break;default:if(!eX.hasOwnProperty(n))e:{if(\"o\"===n[0]&&\"n\"===n[1]&&(o=n.endsWith(\"Capture\"),t=n.slice(2,o?n.length-7:void 0),\"function\"==typeof(a=null!=(a=e[eL]||null)?a[n]:null)&&e.removeEventListener(t,a,o),\"function\"==typeof r)){\"function\"!=typeof a&&null!==a&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,o);break e}n in e?e[n]=r:!0===r?e.setAttribute(n,\"\"):e2(e,n,r)}}}function cu(e,t,n){switch(t){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"img\":s5(\"error\",e),s5(\"load\",e);var r,o=!1,a=!1;for(r in n)if(n.hasOwnProperty(r)){var i=n[r];if(null!=i)switch(r){case\"src\":o=!0;break;case\"srcSet\":a=!0;break;case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l(137,t));default:cs(e,t,r,i,n,null)}}a&&cs(e,t,\"srcSet\",n.srcSet,n,null),o&&cs(e,t,\"src\",n.src,n,null);return;case\"input\":s5(\"invalid\",e);var s=r=i=a=null,c=null,u=null;for(o in n)if(n.hasOwnProperty(o)){var d=n[o];if(null!=d)switch(o){case\"name\":a=d;break;case\"type\":i=d;break;case\"checked\":c=d;break;case\"defaultChecked\":u=d;break;case\"value\":r=d;break;case\"defaultValue\":s=d;break;case\"children\":case\"dangerouslySetInnerHTML\":if(null!=d)throw Error(l(137,t));break;default:cs(e,t,o,d,n,null)}}tr(e,r,s,c,u,i,a,!1);return;case\"select\":for(a in s5(\"invalid\",e),o=i=r=null,n)if(n.hasOwnProperty(a)&&null!=(s=n[a]))switch(a){case\"value\":r=s;break;case\"defaultValue\":i=s;break;case\"multiple\":o=s;default:cs(e,t,a,s,n,null)}t=r,n=i,e.multiple=!!o,null!=t?ta(e,!!o,t,!1):null!=n&&ta(e,!!o,n,!0);return;case\"textarea\":for(i in s5(\"invalid\",e),r=a=o=null,n)if(n.hasOwnProperty(i)&&null!=(s=n[i]))switch(i){case\"value\":o=s;break;case\"defaultValue\":a=s;break;case\"children\":r=s;break;case\"dangerouslySetInnerHTML\":if(null!=s)throw Error(l(91));break;default:cs(e,t,i,s,n,null)}tl(e,o,a,r);return;case\"option\":for(c in n)n.hasOwnProperty(c)&&null!=(o=n[c])&&(\"selected\"===c?e.selected=o&&\"function\"!=typeof o&&\"symbol\"!=typeof o:cs(e,t,c,o,n,null));return;case\"dialog\":s5(\"beforetoggle\",e),s5(\"toggle\",e),s5(\"cancel\",e),s5(\"close\",e);break;case\"iframe\":case\"object\":s5(\"load\",e);break;case\"video\":case\"audio\":for(o=0;o<s1.length;o++)s5(s1[o],e);break;case\"image\":s5(\"error\",e),s5(\"load\",e);break;case\"details\":s5(\"toggle\",e);break;case\"embed\":case\"source\":case\"link\":s5(\"error\",e),s5(\"load\",e);case\"area\":case\"base\":case\"br\":case\"col\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"track\":case\"wbr\":case\"menuitem\":for(u in n)if(n.hasOwnProperty(u)&&null!=(o=n[u]))switch(u){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l(137,t));default:cs(e,t,u,o,n,null)}return;default:if(tf(t)){for(d in n)n.hasOwnProperty(d)&&void 0!==(o=n[d])&&cc(e,t,d,o,n,void 0);return}}for(s in n)n.hasOwnProperty(s)&&null!=(o=n[s])&&cs(e,t,s,o,n,null)}var cd=null,cf=null;function cp(e){return 9===e.nodeType?e:e.ownerDocument}function ch(e){switch(e){case\"http://www.w3.org/2000/svg\":return 1;case\"http://www.w3.org/1998/Math/MathML\":return 2;default:return 0}}function cm(e,t){if(0===e)switch(t){case\"svg\":return 1;case\"math\":return 2;default:return 0}return 1===e&&\"foreignObject\"===t?0:e}function cg(e,t){return\"textarea\"===e||\"noscript\"===e||\"string\"==typeof t.children||\"number\"==typeof t.children||\"bigint\"==typeof t.children||\"object\"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var cy=null,cv=\"function\"==typeof setTimeout?setTimeout:void 0,cb=\"function\"==typeof clearTimeout?clearTimeout:void 0,cA=\"function\"==typeof Promise?Promise:void 0,cx=\"function\"==typeof queueMicrotask?queueMicrotask:void 0!==cA?function(e){return cA.resolve(null).then(e).catch(cw)}:cv;function cw(e){setTimeout(function(){throw e})}function cC(e){return\"head\"===e}function c_(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if(\"/$\"===(n=o.data)||\"/&\"===n){if(0===r){e.removeChild(o),uO(t);return}r--}else if(\"$\"===n||\"$?\"===n||\"$~\"===n||\"$!\"===n||\"&\"===n)r++;else if(\"html\"===n)cD(e.ownerDocument.documentElement);else if(\"head\"===n){cD(n=e.ownerDocument.head);for(var a=n.firstChild;a;){var i=a.nextSibling,l=a.nodeName;a[eF]||\"SCRIPT\"===l||\"STYLE\"===l||\"LINK\"===l&&\"stylesheet\"===a.rel.toLowerCase()||n.removeChild(a),a=i}}else\"body\"===n&&cD(e.ownerDocument.body);n=o}while(n);uO(t)}function ck(e,t){var n=e;e=0;do{var r=n.nextSibling;if(1===n.nodeType?t?(n._stashedDisplay=n.style.display,n.style.display=\"none\"):(n.style.display=n._stashedDisplay||\"\",\"\"===n.getAttribute(\"style\")&&n.removeAttribute(\"style\")):3===n.nodeType&&(t?(n._stashedText=n.nodeValue,n.nodeValue=\"\"):n.nodeValue=n._stashedText||\"\"),r&&8===r.nodeType)if(\"/$\"===(n=r.data))if(0===e)break;else e--;else\"$\"!==n&&\"$?\"!==n&&\"$~\"!==n&&\"$!\"!==n||e++;n=r}while(n)}function cE(e){var t=e.firstChild;for(t&&10===t.nodeType&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case\"HTML\":case\"HEAD\":case\"BODY\":cE(n),eq(n);continue;case\"SCRIPT\":case\"STYLE\":continue;case\"LINK\":if(\"stylesheet\"===n.rel.toLowerCase())continue}e.removeChild(n)}}function cj(e,t){for(;8!==e.nodeType;)if(!t||null===(e=cB(e.nextSibling)))return null;return e}function cS(e){return\"$?\"===e.data||\"$~\"===e.data}function cO(e){return\"$!\"===e.data||\"$?\"===e.data&&\"loading\"!==e.ownerDocument.readyState}function cB(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if(\"$\"===(t=e.data)||\"$!\"===t||\"$?\"===t||\"$~\"===t||\"&\"===t||\"F!\"===t||\"F\"===t)break;if(\"/$\"===t||\"/&\"===t)return null}}return e}var cP=null;function cI(e){e=e.nextSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if(\"/$\"===n||\"/&\"===n){if(0===t)return cB(e.nextSibling);t--}else\"$\"!==n&&\"$!\"!==n&&\"$?\"!==n&&\"$~\"!==n&&\"&\"!==n||t++}e=e.nextSibling}return null}function cz(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if(\"$\"===n||\"$!\"===n||\"$?\"===n||\"$~\"===n||\"&\"===n){if(0===t)return e;t--}else\"/$\"!==n&&\"/&\"!==n||t++}e=e.previousSibling}return null}function cT(e,t,n){switch(t=cp(n),e){case\"html\":if(!(e=t.documentElement))throw Error(l(452));return e;case\"head\":if(!(e=t.head))throw Error(l(453));return e;case\"body\":if(!(e=t.body))throw Error(l(454));return e;default:throw Error(l(451))}}function cD(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);eq(e)}var cL=new Map,cN=new Set;function cR(e){return\"function\"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var cM=z.d;z.d={f:function(){var e=cM.f(),t=sc();return e||t},r:function(e){var t=eV(e);null!==t&&5===t.tag&&\"form\"===t.type?aQ(t):cM.r(e)},D:function(e){cM.D(e),cU(\"dns-prefetch\",e,null)},C:function(e,t){cM.C(e,t),cU(\"preconnect\",e,t)},L:function(e,t,n){if(cM.L(e,t,n),cZ&&e&&t){var r='link[rel=\"preload\"][as=\"'+tt(t)+'\"]';\"image\"===t&&n&&n.imageSrcSet?(r+='[imagesrcset=\"'+tt(n.imageSrcSet)+'\"]',\"string\"==typeof n.imageSizes&&(r+='[imagesizes=\"'+tt(n.imageSizes)+'\"]')):r+='[href=\"'+tt(e)+'\"]';var o=r;switch(t){case\"style\":o=cq(e);break;case\"script\":o=c$(e)}cL.has(o)||(e=f({rel:\"preload\",href:\"image\"===t&&n&&n.imageSrcSet?void 0:e,as:t},n),cL.set(o,e),null!==cZ.querySelector(r)||\"style\"===t&&cZ.querySelector(cH(o))||\"script\"===t&&cZ.querySelector(cW(o))||(cu(t=cZ.createElement(\"link\"),\"link\",e),eY(t),cZ.head.appendChild(t)))}},m:function(e,t){if(cM.m(e,t),cZ&&e){var n=t&&\"string\"==typeof t.as?t.as:\"script\",r='link[rel=\"modulepreload\"][as=\"'+tt(n)+'\"][href=\"'+tt(e)+'\"]',o=r;switch(n){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":o=c$(e)}if(!cL.has(o)&&(e=f({rel:\"modulepreload\",href:e},t),cL.set(o,e),null===cZ.querySelector(r))){switch(n){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":if(cZ.querySelector(cW(o)))return}cu(n=cZ.createElement(\"link\"),\"link\",e),eY(n),cZ.head.appendChild(n)}}},X:function(e,t){if(cM.X(e,t),cZ&&e){var n=eW(cZ).hoistableScripts,r=c$(e),o=n.get(r);o||((o=cZ.querySelector(cW(r)))||(e=f({src:e,async:!0},t),(t=cL.get(r))&&cG(e,t),eY(o=cZ.createElement(\"script\")),cu(o,\"link\",e),cZ.head.appendChild(o)),o={type:\"script\",instance:o,count:1,state:null},n.set(r,o))}},S:function(e,t,n){if(cM.S(e,t,n),cZ&&e){var r=eW(cZ).hoistableStyles,o=cq(e);t=t||\"default\";var a=r.get(o);if(!a){var i={loading:0,preload:null};if(a=cZ.querySelector(cH(o)))i.loading=5;else{e=f({rel:\"stylesheet\",href:e,\"data-precedence\":t},n),(n=cL.get(o))&&cX(e,n);var l=a=cZ.createElement(\"link\");eY(l),cu(l,\"link\",e),l._p=new Promise(function(e,t){l.onload=e,l.onerror=t}),l.addEventListener(\"load\",function(){i.loading|=1}),l.addEventListener(\"error\",function(){i.loading|=2}),i.loading|=4,cK(a,t,cZ)}a={type:\"stylesheet\",instance:a,count:1,state:i},r.set(o,a)}}},M:function(e,t){if(cM.M(e,t),cZ&&e){var n=eW(cZ).hoistableScripts,r=c$(e),o=n.get(r);o||((o=cZ.querySelector(cW(r)))||(e=f({src:e,async:!0,type:\"module\"},t),(t=cL.get(r))&&cG(e,t),eY(o=cZ.createElement(\"script\")),cu(o,\"link\",e),cZ.head.appendChild(o)),o={type:\"script\",instance:o,count:1,state:null},n.set(r,o))}}};var cZ=\"undefined\"==typeof document?null:document;function cU(e,t,n){if(cZ&&\"string\"==typeof t&&t){var r=tt(t);r='link[rel=\"'+e+'\"][href=\"'+r+'\"]',\"string\"==typeof n&&(r+='[crossorigin=\"'+n+'\"]'),cN.has(r)||(cN.add(r),e={rel:e,crossOrigin:n,href:t},null===cZ.querySelector(r)&&(cu(t=cZ.createElement(\"link\"),\"link\",e),eY(t),cZ.head.appendChild(t)))}}function cF(e,t,n,r){var o=(o=F.current)?cR(o):null;if(!o)throw Error(l(446));switch(e){case\"meta\":case\"title\":return null;case\"style\":return\"string\"==typeof n.precedence&&\"string\"==typeof n.href?(t=cq(n.href),(r=(n=eW(o).hoistableStyles).get(t))||(r={type:\"style\",instance:null,count:0,state:null},n.set(t,r)),r):{type:\"void\",instance:null,count:0,state:null};case\"link\":if(\"stylesheet\"===n.rel&&\"string\"==typeof n.href&&\"string\"==typeof n.precedence){e=cq(n.href);var a,i,s,c,u=eW(o).hoistableStyles,d=u.get(e);if(d||(o=o.ownerDocument||o,d={type:\"stylesheet\",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,d),(u=o.querySelector(cH(e)))&&!u._p&&(d.instance=u,d.state.loading=5),cL.has(e)||(n={rel:\"preload\",as:\"style\",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},cL.set(e,n),u||(a=o,i=e,s=n,c=d.state,a.querySelector('link[rel=\"preload\"][as=\"style\"]['+i+\"]\")?c.loading=1:(c.preload=i=a.createElement(\"link\"),i.addEventListener(\"load\",function(){return c.loading|=1}),i.addEventListener(\"error\",function(){return c.loading|=2}),cu(i,\"link\",s),eY(i),a.head.appendChild(i))))),t&&null===r)throw Error(l(528,\"\"));return d}if(t&&null!==r)throw Error(l(529,\"\"));return null;case\"script\":return t=n.async,\"string\"==typeof(n=n.src)&&t&&\"function\"!=typeof t&&\"symbol\"!=typeof t?(t=c$(n),(r=(n=eW(o).hoistableScripts).get(t))||(r={type:\"script\",instance:null,count:0,state:null},n.set(t,r)),r):{type:\"void\",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function cq(e){return'href=\"'+tt(e)+'\"'}function cH(e){return'link[rel=\"stylesheet\"]['+e+\"]\"}function cV(e){return f({},e,{\"data-precedence\":e.precedence,precedence:null})}function c$(e){return'[src=\"'+tt(e)+'\"]'}function cW(e){return\"script[async]\"+e}function cY(e,t,n){if(t.count++,null===t.instance)switch(t.type){case\"style\":var r=e.querySelector('style[data-href~=\"'+tt(n.href)+'\"]');if(r)return t.instance=r,eY(r),r;var o=f({},n,{\"data-href\":n.href,\"data-precedence\":n.precedence,href:null,precedence:null});return eY(r=(e.ownerDocument||e).createElement(\"style\")),cu(r,\"style\",o),cK(r,n.precedence,e),t.instance=r;case\"stylesheet\":o=cq(n.href);var a=e.querySelector(cH(o));if(a)return t.state.loading|=4,t.instance=a,eY(a),a;r=cV(n),(o=cL.get(o))&&cX(r,o),eY(a=(e.ownerDocument||e).createElement(\"link\"));var i=a;return i._p=new Promise(function(e,t){i.onload=e,i.onerror=t}),cu(a,\"link\",r),t.state.loading|=4,cK(a,n.precedence,e),t.instance=a;case\"script\":if(a=c$(n.src),o=e.querySelector(cW(a)))return t.instance=o,eY(o),o;return r=n,(o=cL.get(a))&&cG(r=f({},n),o),eY(o=(e=e.ownerDocument||e).createElement(\"script\")),cu(o,\"link\",r),e.head.appendChild(o),t.instance=o;case\"void\":return null;default:throw Error(l(443,t.type))}return\"stylesheet\"===t.type&&0==(4&t.state.loading)&&(r=t.instance,t.state.loading|=4,cK(r,n.precedence,e)),t.instance}function cK(e,t,n){for(var r=n.querySelectorAll('link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'),o=r.length?r[r.length-1]:null,a=o,i=0;i<r.length;i++){var l=r[i];if(l.dataset.precedence===t)a=l;else if(a!==o)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=9===n.nodeType?n.head:n).insertBefore(e,t.firstChild)}function cX(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.title&&(e.title=t.title)}function cG(e,t){null==e.crossOrigin&&(e.crossOrigin=t.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=t.referrerPolicy),null==e.integrity&&(e.integrity=t.integrity)}var cQ=null;function cJ(e,t,n){if(null===cQ){var r=new Map,o=cQ=new Map;o.set(n,r)}else(r=(o=cQ).get(n))||(r=new Map,o.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),o=0;o<n.length;o++){var a=n[o];if(!(a[eF]||a[eD]||\"link\"===e&&\"stylesheet\"===a.getAttribute(\"rel\"))&&\"http://www.w3.org/2000/svg\"!==a.namespaceURI){var i=a.getAttribute(t)||\"\";i=e+i;var l=r.get(i);l?l.push(a):r.set(i,[a])}}return r}function c0(e,t,n){(e=e.ownerDocument||e).head.insertBefore(n,\"title\"===t?e.querySelector(\"head > title\"):null)}function c1(e){return\"stylesheet\"!==e.type||0!=(3&e.state.loading)}var c2=null;function c4(){if(this.count--,0===this.count){if(this.stylesheets)c3(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var c5=null;function c3(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,c5=new Map,t.forEach(c6,e),c5=null,c4.call(e))}function c6(e,t){if(!(4&t.state.loading)){var n=c5.get(e);if(n)var r=n.get(null);else{n=new Map,c5.set(e,n);for(var o=e.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),a=0;a<o.length;a++){var i=o[a];(\"LINK\"===i.nodeName||\"not all\"!==i.getAttribute(\"media\"))&&(n.set(i.dataset.precedence,i),r=i)}r&&n.set(null,r)}i=(o=t.instance).getAttribute(\"data-precedence\"),(a=n.get(i)||r)===r&&n.set(null,o),n.set(i,o),this.count++,r=c4.bind(this),o.addEventListener(\"load\",r),o.addEventListener(\"error\",r),a?a.parentNode.insertBefore(o,a.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(o,e.firstChild),t.state.loading|=4}}var c9={$$typeof:A,Provider:null,Consumer:null,_currentValue:T,_currentValue2:T,_threadCount:0};function c8(e,t,n,r,o,a,i,l,s){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=ek(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ek(0),this.hiddenUpdates=ek(null),this.identifierPrefix=r,this.onUncaughtError=o,this.onCaughtError=a,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=s,this.incompleteTransitions=new Map}function c7(e,t,n,r,o,a){o=o?n8:n8,null===r.context?r.context=o:r.pendingContext=o,(r=o_(t)).payload={element:n},null!==(a=void 0===a?null:a)&&(r.callback=a),null!==(n=ok(e,r,t))&&(sa(n,e,t),oE(n,e,t))}function ue(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function ut(e,t){ue(e,t),(e=e.alternate)&&ue(e,t)}function un(e){if(13===e.tag||31===e.tag){var t=n3(e,0x4000000);null!==t&&sa(t,e,0x4000000),ut(e,0x4000000)}}function ur(e){if(13===e.tag||31===e.tag){var t=sr(),n=n3(e,t=eB(t));null!==n&&sa(n,e,t),ut(e,t)}}var uo=!0;function ua(e,t,n,r){var o=I.T;I.T=null;var a=z.p;try{z.p=2,ul(e,t,n,r)}finally{z.p=a,I.T=o}}function ui(e,t,n,r){var o=I.T;I.T=null;var a=z.p;try{z.p=8,ul(e,t,n,r)}finally{z.p=a,I.T=o}}function ul(e,t,n,r){if(uo){var o=us(r);if(null===o)s7(e,t,r,uc,n),uA(e,r);else if(function(e,t,n,r,o){switch(t){case\"focusin\":return up=ux(up,e,t,n,r,o),!0;case\"dragenter\":return uh=ux(uh,e,t,n,r,o),!0;case\"mouseover\":return um=ux(um,e,t,n,r,o),!0;case\"pointerover\":var a=o.pointerId;return ug.set(a,ux(ug.get(a)||null,e,t,n,r,o)),!0;case\"gotpointercapture\":return a=o.pointerId,uy.set(a,ux(uy.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(uA(e,r),4&t&&-1<ub.indexOf(e)){for(;null!==o;){var a=eV(o);if(null!==a)switch(a.tag){case 3:if((a=a.stateNode).current.memoizedState.isDehydrated){var i=eA(a.pendingLanes);if(0!==i){var l=a;for(l.pendingLanes|=2,l.entangledLanes|=2;i;){var s=1<<31-em(i);l.entanglements[1]|=s,i&=~s}sq(a),0==(6&lD)&&(l1=er()+500,sH(0,!1))}}break;case 31:case 13:null!==(l=n3(a,2))&&sa(l,a,2),sc(),ut(a,2)}if(null===(a=us(r))&&s7(e,t,r,uc,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else s7(e,t,r,null,n)}}function us(e){return uu(e=tv(e))}var uc=null;function uu(e){if(uc=null,null!==(e=eH(e))){var t=s(e);if(null===t)e=null;else{var n=t.tag;if(13===n){if(null!==(e=c(t)))return e;e=null}else if(31===n){if(null!==(e=u(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return uc=e,null}function ud(e){switch(e){case\"beforetoggle\":case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"toggle\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return 2;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return 8;case\"message\":switch(eo()){case ea:return 2;case ei:return 8;case el:case es:return 32;case ec:return 0x10000000;default:return 32}default:return 32}}var uf=!1,up=null,uh=null,um=null,ug=new Map,uy=new Map,uv=[],ub=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\" \");function uA(e,t){switch(e){case\"focusin\":case\"focusout\":up=null;break;case\"dragenter\":case\"dragleave\":uh=null;break;case\"mouseover\":case\"mouseout\":um=null;break;case\"pointerover\":case\"pointerout\":ug.delete(t.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":uy.delete(t.pointerId)}}function ux(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==t&&null!==(t=eV(t))&&un(t)):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o)),e}function uw(e){var t=eH(e.target);if(null!==t){var n=s(t);if(null!==n){if(13===(t=n.tag)){if(null!==(t=c(n))){e.blockedOn=t,ez(e.priority,function(){ur(n)});return}}else if(31===t){if(null!==(t=u(n))){e.blockedOn=t,ez(e.priority,function(){ur(n)});return}}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=3===n.tag?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function uC(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=us(e.nativeEvent);if(null!==n)return null!==(t=eV(n))&&un(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);ty=r,n.target.dispatchEvent(r),ty=null,t.shift()}return!0}function u_(e,t,n){uC(e)&&n.delete(t)}function uk(){uf=!1,null!==up&&uC(up)&&(up=null),null!==uh&&uC(uh)&&(uh=null),null!==um&&uC(um)&&(um=null),ug.forEach(u_),uy.forEach(u_)}function uE(e,t){e.blockedOn===t&&(e.blockedOn=null,uf||(uf=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,uk)))}var uj=null;function uS(e){uj!==e&&(uj=e,o.unstable_scheduleCallback(o.unstable_NormalPriority,function(){uj===e&&(uj=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],o=e[t+2];if(\"function\"!=typeof r)if(null===uu(r||n))continue;else break;var a=eV(n);null!==a&&(e.splice(t,3),t-=3,aX(a,{pending:!0,data:o,method:n.method,action:r},r,o))}}))}function uO(e){function t(t){return uE(t,e)}null!==up&&uE(up,e),null!==uh&&uE(uh,e),null!==um&&uE(um,e),ug.forEach(t),uy.forEach(t);for(var n=0;n<uv.length;n++){var r=uv[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<uv.length&&null===(n=uv[0]).blockedOn;)uw(n),null===n.blockedOn&&uv.shift();if(null!=(n=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<n.length;r+=3){var o=n[r],a=n[r+1],i=o[eL]||null;if(\"function\"==typeof a)i||uS(n);else if(i){var l=null;if(a&&a.hasAttribute(\"formAction\")){if(o=a,i=a[eL]||null)l=i.formAction;else if(null!==uu(o))continue}else l=i.action;\"function\"==typeof l?n[r+1]=l:(n.splice(r,3),r-=3),uS(n)}}}function uB(){function e(e){e.canIntercept&&\"react-transition\"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return o=e})},focusReset:\"manual\",scroll:\"manual\"})}function t(){null!==o&&(o(),o=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&null!=e.url&&navigation.navigate(e.url,{state:e.getState(),info:\"react-transition\",history:\"replace\"})}}if(\"object\"==typeof navigation){var r=!1,o=null;return navigation.addEventListener(\"navigate\",e),navigation.addEventListener(\"navigatesuccess\",t),navigation.addEventListener(\"navigateerror\",t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(\"navigate\",e),navigation.removeEventListener(\"navigatesuccess\",t),navigation.removeEventListener(\"navigateerror\",t),null!==o&&(o(),o=null)}}}function uP(e){this._internalRoot=e}function uI(e){this._internalRoot=e}uI.prototype.render=uP.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(l(409));c7(t.current,sr(),e,t,null,null)},uI.prototype.unmount=uP.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;c7(e.current,2,null,e,null,null),sc(),t[eN]=null}},uI.prototype.unstable_scheduleHydration=function(e){if(e){var t=eI();e={blockedOn:null,target:e,priority:t};for(var n=0;n<uv.length&&0!==t&&t<uv[n].priority;n++);uv.splice(n,0,e),0===n&&uw(e)}};var uz=a.version;if(\"19.2.0-canary-0bdb9206-20250818\"!==uz)throw Error(l(527,uz,\"19.2.0-canary-0bdb9206-20250818\"));if(z.findDOMNode=function(e){var t=e._reactInternals;if(void 0===t){if(\"function\"==typeof e.render)throw Error(l(188));throw Error(l(268,e=Object.keys(e).join(\",\")))}return e=null===(e=null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=s(e)))throw Error(l(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return d(o),e;if(a===r)return d(o),t;a=a.sibling}throw Error(l(188))}if(n.return!==r.return)n=o,r=a;else{for(var i=!1,c=o.child;c;){if(c===n){i=!0,n=o,r=a;break}if(c===r){i=!0,r=o,n=a;break}c=c.sibling}if(!i){for(c=a.child;c;){if(c===n){i=!0,n=a,r=o;break}if(c===r){i=!0,r=a,n=o;break}c=c.sibling}if(!i)throw Error(l(189))}}if(n.alternate!==r)throw Error(l(190))}if(3!==n.tag)throw Error(l(188));return n.stateNode.current===n?e:t}(t))?function e(t){var n=t.tag;if(5===n||26===n||27===n||6===n)return t;for(t=t.child;null!==t;){if(null!==(n=e(t)))return n;t=t.sibling}return null}(e):null)?null:e.stateNode},\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var uT=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!uT.isDisabled&&uT.supportsFiber)try{ef=uT.inject({bundleType:0,version:\"19.2.0-canary-0bdb9206-20250818\",rendererPackageName:\"react-dom\",currentDispatcherRef:I,reconcilerVersion:\"19.2.0-canary-0bdb9206-20250818\"}),ep=uT}catch(e){}}t.createRoot=function(e,t){if(!(n=e)||1!==n.nodeType&&9!==n.nodeType&&11!==n.nodeType)throw Error(l(299));var n,r,o,a,i,s,c,u,d=!1,f=\"\",p=iu,h=id,m=ip;return null!=t&&(!0===t.unstable_strictMode&&(d=!0),void 0!==t.identifierPrefix&&(f=t.identifierPrefix),void 0!==t.onUncaughtError&&(p=t.onUncaughtError),void 0!==t.onCaughtError&&(h=t.onCaughtError),void 0!==t.onRecoverableError&&(m=t.onRecoverableError)),r=e,o=1,a=!1,i=null,s=0,c=d,u=null,r=new c8(r,o,a,f,p,h,m,uB,null),o=1,!0===c&&(o|=24),c=re(3,null,null,o),r.current=c,c.stateNode=r,o=r1(),o.refCount++,r.pooledCache=o,o.refCount++,c.memoizedState={element:null,isDehydrated:a,cache:o},ow(c),t=r,e[eN]=t.current,s9(e),new uP(t)}},\"./dist/compiled/react-dom/cjs/react-dom.production.js\":function(e,t,n){\"use strict\";var r=n(\"./dist/compiled/react/index.js\");function o(e){var t=\"https://react.dev/errors/\"+e;if(1<arguments.length){t+=\"?args[]=\"+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=\"&args[]=\"+encodeURIComponent(arguments[n])}return\"Minified React error #\"+e+\"; visit \"+t+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}function a(){}var i={d:{f:a,r:function(){throw Error(o(522))},D:a,C:a,L:a,m:a,X:a,S:a,M:a},p:0,findDOMNode:null},l=Symbol.for(\"react.portal\"),s=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){return\"font\"===e?\"\":\"string\"==typeof t?\"use-credentials\"===t?t:\"\":void 0}t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(o(299));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:l,key:null==r?null:\"\"+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},t.preconnect=function(e,t){\"string\"==typeof e&&(t=t?\"string\"==typeof(t=t.crossOrigin)?\"use-credentials\"===t?t:\"\":void 0:null,i.d.C(e,t))},t.prefetchDNS=function(e){\"string\"==typeof e&&i.d.D(e)},t.preinit=function(e,t){if(\"string\"==typeof e&&t&&\"string\"==typeof t.as){var n=t.as,r=c(n,t.crossOrigin),o=\"string\"==typeof t.integrity?t.integrity:void 0,a=\"string\"==typeof t.fetchPriority?t.fetchPriority:void 0;\"style\"===n?i.d.S(e,\"string\"==typeof t.precedence?t.precedence:void 0,{crossOrigin:r,integrity:o,fetchPriority:a}):\"script\"===n&&i.d.X(e,{crossOrigin:r,integrity:o,fetchPriority:a,nonce:\"string\"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if(\"string\"==typeof e)if(\"object\"==typeof t&&null!==t){if(null==t.as||\"script\"===t.as){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:\"string\"==typeof t.integrity?t.integrity:void 0,nonce:\"string\"==typeof t.nonce?t.nonce:void 0})}}else null==t&&i.d.M(e)},t.preload=function(e,t){if(\"string\"==typeof e&&\"object\"==typeof t&&null!==t&&\"string\"==typeof t.as){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:\"string\"==typeof t.integrity?t.integrity:void 0,nonce:\"string\"==typeof t.nonce?t.nonce:void 0,type:\"string\"==typeof t.type?t.type:void 0,fetchPriority:\"string\"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:\"string\"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:\"string\"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:\"string\"==typeof t.imageSizes?t.imageSizes:void 0,media:\"string\"==typeof t.media?t.media:void 0})}},t.preloadModule=function(e,t){if(\"string\"==typeof e)if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:\"string\"==typeof t.as&&\"script\"!==t.as?t.as:void 0,crossOrigin:n,integrity:\"string\"==typeof t.integrity?t.integrity:void 0})}else i.d.m(e)},t.requestFormReset=function(e){i.d.r(e)},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},t.useFormStatus=function(){return s.H.useHostTransitionStatus()},t.version=\"19.2.0-canary-0bdb9206-20250818\"},\"./dist/compiled/react-dom/client.js\":function(e,t,n){\"use strict\";!function e(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(\"./dist/compiled/react-dom/cjs/react-dom-client.production.js\")},\"./dist/compiled/react-dom/index.js\":function(e,t,n){\"use strict\";!function e(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(\"./dist/compiled/react-dom/cjs/react-dom.production.js\")},\"./dist/compiled/react/cjs/react-compiler-runtime.production.js\":function(e,t,n){\"use strict\";var r=n(\"./dist/compiled/react/index.js\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;t.c=function(e){return r.H.useMemoCache(e)}},\"./dist/compiled/react/cjs/react-jsx-runtime.production.js\":function(e,t){\"use strict\";var n=Symbol.for(\"react.transitional.element\");function r(e,t,r){var o=null;if(void 0!==r&&(o=\"\"+r),void 0!==t.key&&(o=\"\"+t.key),\"key\"in t)for(var a in r={},t)\"key\"!==a&&(r[a]=t[a]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}t.Fragment=Symbol.for(\"react.fragment\"),t.jsx=r,t.jsxs=r},\"./dist/compiled/react/cjs/react.production.js\":function(e,t){\"use strict\";var n=Symbol.for(\"react.transitional.element\"),r=Symbol.for(\"react.portal\"),o=Symbol.for(\"react.fragment\"),a=Symbol.for(\"react.strict_mode\"),i=Symbol.for(\"react.profiler\"),l=Symbol.for(\"react.consumer\"),s=Symbol.for(\"react.context\"),c=Symbol.for(\"react.forward_ref\"),u=Symbol.for(\"react.suspense\"),d=Symbol.for(\"react.memo\"),f=Symbol.for(\"react.lazy\"),p=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(\"object\"!=typeof e&&\"function\"!=typeof e&&null!=e)throw Error(\"takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")},v.prototype=y.prototype;var A=b.prototype=new v;A.constructor=b,m(A,y.prototype),A.isPureReactComponent=!0;var x=Array.isArray;function w(){}var C={H:null,A:null,T:null,S:null},_=Object.prototype.hasOwnProperty;function k(e,t,r){var o=r.ref;return{$$typeof:n,type:e,key:t,ref:void 0!==o?o:null,props:r}}function E(e){return\"object\"==typeof e&&null!==e&&e.$$typeof===n}var j=/\\/+/g;function S(e,t){var n,r;return\"object\"==typeof e&&null!==e&&null!=e.key?(n=\"\"+e.key,r={\"=\":\"=0\",\":\":\"=2\"},\"$\"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36)}function O(e,t,o){if(null==e)return e;var a=[],i=0;return!function e(t,o,a,i,l){var s,c,u,d=typeof t;(\"undefined\"===d||\"boolean\"===d)&&(t=null);var h=!1;if(null===t)h=!0;else switch(d){case\"bigint\":case\"string\":case\"number\":h=!0;break;case\"object\":switch(t.$$typeof){case n:case r:h=!0;break;case f:return e((h=t._init)(t._payload),o,a,i,l)}}if(h)return l=l(t),h=\"\"===i?\".\"+S(t,0):i,x(l)?(a=\"\",null!=h&&(a=h.replace(j,\"$&/\")+\"/\"),e(l,o,a,\"\",function(e){return e})):null!=l&&(E(l)&&(s=l,c=a+(null==l.key||t&&t.key===l.key?\"\":(\"\"+l.key).replace(j,\"$&/\")+\"/\")+h,l=k(s.type,c,s.props)),o.push(l)),1;h=0;var m=\"\"===i?\".\":i+\":\";if(x(t))for(var g=0;g<t.length;g++)d=m+S(i=t[g],g),h+=e(i,o,a,d,l);else if(\"function\"==typeof(g=null===(u=t)||\"object\"!=typeof u?null:\"function\"==typeof(u=p&&u[p]||u[\"@@iterator\"])?u:null))for(t=g.call(t),g=0;!(i=t.next()).done;)d=m+S(i=i.value,g++),h+=e(i,o,a,d,l);else if(\"object\"===d){if(\"function\"==typeof t.then)return e(function(e){switch(e.status){case\"fulfilled\":return e.value;case\"rejected\":throw e.reason;default:switch(\"string\"==typeof e.status?e.then(w,w):(e.status=\"pending\",e.then(function(t){\"pending\"===e.status&&(e.status=\"fulfilled\",e.value=t)},function(t){\"pending\"===e.status&&(e.status=\"rejected\",e.reason=t)})),e.status){case\"fulfilled\":return e.value;case\"rejected\":throw e.reason}}throw e}(t),o,a,i,l);throw Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===(o=String(t))?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":o)+\"). If you meant to render a collection of children, use an array instead.\")}return h}(e,a,\"\",\"\",function(e){return t.call(o,e,i++)}),a}function B(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){(0===e._status||-1===e._status)&&(e._status=1,e._result=t)},function(t){(0===e._status||-1===e._status)&&(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var P=\"function\"==typeof reportError?reportError:function(e){if(\"object\"==typeof window&&\"function\"==typeof window.ErrorEvent){var t=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:\"object\"==typeof e&&null!==e&&\"string\"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(\"object\"==typeof process&&\"function\"==typeof process.emit)return void process.emit(\"uncaughtException\",e);console.error(e)};t.Children={map:O,forEach:function(e,t,n){O(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return O(e,function(){t++}),t},toArray:function(e){return O(e,function(e){return e})||[]},only:function(e){if(!E(e))throw Error(\"React.Children.only expected to receive a single React element child.\");return e}},t.Component=y,t.Fragment=o,t.Profiler=i,t.PureComponent=b,t.StrictMode=a,t.Suspense=u,t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=C,t.__COMPILER_RUNTIME={__proto__:null,c:function(e){return C.H.useMemoCache(e)}},t.cache=function(e){return function(){return e.apply(null,arguments)}},t.cacheSignal=function(){return null},t.cloneElement=function(e,t,n){if(null==e)throw Error(\"The argument must be a React element, but you passed \"+e+\".\");var r=m({},e.props),o=e.key;if(null!=t)for(a in void 0!==t.key&&(o=\"\"+t.key),t)_.call(t,a)&&\"key\"!==a&&\"__self\"!==a&&\"__source\"!==a&&(\"ref\"!==a||void 0!==t.ref)&&(r[a]=t[a]);var a=arguments.length-2;if(1===a)r.children=n;else if(1<a){for(var i=Array(a),l=0;l<a;l++)i[l]=arguments[l+2];r.children=i}return k(e.type,o,r)},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},t.createElement=function(e,t,n){var r,o={},a=null;if(null!=t)for(r in void 0!==t.key&&(a=\"\"+t.key),t)_.call(t,r)&&\"key\"!==r&&\"__self\"!==r&&\"__source\"!==r&&(o[r]=t[r]);var i=arguments.length-2;if(1===i)o.children=n;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];o.children=l}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===o[r]&&(o[r]=i[r]);return k(e,a,o)},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:B}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=C.T,n={};C.T=n;try{var r=e(),o=C.S;null!==o&&o(n,r),\"object\"==typeof r&&null!==r&&\"function\"==typeof r.then&&r.then(w,P)}catch(e){P(e)}finally{null!==t&&null!==n.types&&(t.types=n.types),C.T=t}},t.unstable_useCacheRefresh=function(){return C.H.useCacheRefresh()},t.use=function(e){return C.H.use(e)},t.useActionState=function(e,t,n){return C.H.useActionState(e,t,n)},t.useCallback=function(e,t){return C.H.useCallback(e,t)},t.useContext=function(e){return C.H.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e,t){return C.H.useDeferredValue(e,t)},t.useEffect=function(e,t){return C.H.useEffect(e,t)},t.useId=function(){return C.H.useId()},t.useImperativeHandle=function(e,t,n){return C.H.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return C.H.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return C.H.useLayoutEffect(e,t)},t.useMemo=function(e,t){return C.H.useMemo(e,t)},t.useOptimistic=function(e,t){return C.H.useOptimistic(e,t)},t.useReducer=function(e,t,n){return C.H.useReducer(e,t,n)},t.useRef=function(e){return C.H.useRef(e)},t.useState=function(e){return C.H.useState(e)},t.useSyncExternalStore=function(e,t,n){return C.H.useSyncExternalStore(e,t,n)},t.useTransition=function(){return C.H.useTransition()},t.version=\"19.2.0-canary-0bdb9206-20250818\"},\"./dist/compiled/react/compiler-runtime.js\":function(e,t,n){\"use strict\";e.exports=n(\"./dist/compiled/react/cjs/react-compiler-runtime.production.js\")},\"./dist/compiled/react/index.js\":function(e,t,n){\"use strict\";e.exports=n(\"./dist/compiled/react/cjs/react.production.js\")},\"./dist/compiled/react/jsx-runtime.js\":function(e,t,n){\"use strict\";e.exports=n(\"./dist/compiled/react/cjs/react-jsx-runtime.production.js\")},\"./dist/compiled/scheduler/cjs/scheduler.production.js\":function(e,t){\"use strict\";function n(e,t){var n=e.length;for(e.push(t);0<n;){var r=n-1>>>1,o=e[r];if(0<a(o,t))e[r]=t,e[n]=o,n=r;else break}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;for(var r=0,o=e.length,i=o>>>1;r<i;){var l=2*(r+1)-1,s=e[l],c=l+1,u=e[c];if(0>a(s,n))c<o&&0>a(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[l]=n,r=l);else if(c<o&&0>a(u,n))e[r]=u,e[c]=n,r=c;else break}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,\"object\"==typeof performance&&\"function\"==typeof performance.now){var i,l=performance;t.unstable_now=function(){return l.now()}}else{var s=Date,c=s.now();t.unstable_now=function(){return s.now()-c}}var u=[],d=[],f=1,p=null,h=3,m=!1,g=!1,y=!1,v=!1,b=\"function\"==typeof setTimeout?setTimeout:null,A=\"function\"==typeof clearTimeout?clearTimeout:null,x=\"undefined\"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(d);null!==t;){if(null===t.callback)o(d);else if(t.startTime<=e)o(d),t.sortIndex=t.expirationTime,n(u,t);else break;t=r(d)}}function C(e){if(y=!1,w(e),!g)if(null!==r(u))g=!0,_||(_=!0,i());else{var t=r(d);null!==t&&I(C,t.startTime-e)}}var _=!1,k=-1,E=5,j=-1;function S(){return!!v||!(t.unstable_now()-j<E)}function O(){if(v=!1,_){var e=t.unstable_now();j=e;var n=!0;try{e:{g=!1,y&&(y=!1,A(k),k=-1),m=!0;var a=h;try{t:{for(w(e),p=r(u);null!==p&&!(p.expirationTime>e&&S());){var l=p.callback;if(\"function\"==typeof l){p.callback=null,h=p.priorityLevel;var s=l(p.expirationTime<=e);if(e=t.unstable_now(),\"function\"==typeof s){p.callback=s,w(e),n=!0;break t}p===r(u)&&o(u),w(e)}else o(u);p=r(u)}if(null!==p)n=!0;else{var c=r(d);null!==c&&I(C,c.startTime-e),n=!1}}break e}finally{p=null,h=a,m=!1}}}finally{n?i():_=!1}}}if(\"function\"==typeof x)i=function(){x(O)};else if(\"undefined\"!=typeof MessageChannel){var B=new MessageChannel,P=B.port2;B.port1.onmessage=O,i=function(){P.postMessage(null)}}else i=function(){b(O,0)};function I(e,n){k=b(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):E=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return h},t.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h}var n=h;h=t;try{return e()}finally{h=n}},t.unstable_requestPaint=function(){v=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=h;h=e;try{return t()}finally{h=n}},t.unstable_scheduleCallback=function(e,o,a){var l=t.unstable_now();switch(a=\"object\"==typeof a&&null!==a&&\"number\"==typeof(a=a.delay)&&0<a?l+a:l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=0x3fffffff;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,e={id:f++,callback:o,priorityLevel:e,startTime:a,expirationTime:s,sortIndex:-1},a>l?(e.sortIndex=a,n(d,e),null===r(u)&&e===r(d)&&(y?(A(k),k=-1):y=!0,I(C,a-l))):(e.sortIndex=s,n(u,e),g||m||(g=!0,_||(_=!0,i()))),e},t.unstable_shouldYield=S,t.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n}}}},\"./dist/compiled/scheduler/index.js\":function(e,t,n){\"use strict\";e.exports=n(\"./dist/compiled/scheduler/cjs/scheduler.production.js\")},\"./dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\":function(e){(()=>{\"use strict\";\"undefined\"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=\"//\");var t,n,r,o,a,i,l,s,c={};Object.defineProperty(c,\"__esModule\",{value:!0}),t=\"<unknown>\",n=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|webpack-internal|rsc|about|turbopack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,r=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/,o=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|webpack-internal|rsc|about|turbopack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,a=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|webpack-internal|rsc|about|turbopack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,i=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i,l=/^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i,s=/^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,c.parse=function(e){return e.split(\"\\n\").reduce(function(e,c){var u,d,f,p,h,m,g=function(e){var o=n.exec(e);if(!o)return null;var a=o[2]&&0===o[2].indexOf(\"native\"),i=o[2]&&0===o[2].indexOf(\"eval\"),l=r.exec(o[2]);return i&&null!=l&&(o[2]=l[1],o[3]=l[2],o[4]=l[3]),{file:a?null:o[2],methodName:o[1]||t,arguments:a?[o[2]]:[],lineNumber:o[3]?+o[3]:null,column:o[4]?+o[4]:null}}(c)||(u=c,(d=o.exec(u))?{file:d[2],methodName:d[1]||t,arguments:[],lineNumber:+d[3],column:d[4]?+d[4]:null}:null)||function(e){var n=a.exec(e);if(!n)return null;var r=n[3]&&n[3].indexOf(\" > eval\")>-1,o=i.exec(n[3]);return r&&null!=o&&(n[3]=o[1],n[4]=o[2],n[5]=null),{file:n[3],methodName:n[1]||t,arguments:n[2]?n[2].split(\",\"):[],lineNumber:n[4]?+n[4]:null,column:n[5]?+n[5]:null}}(c)||(f=c,(p=s.exec(f))?{file:p[2],methodName:p[1]||t,arguments:[],lineNumber:+p[3],column:p[4]?+p[4]:null}:null)||(h=c,(m=l.exec(h))?{file:m[3],methodName:m[1]||t,arguments:[],lineNumber:+m[4],column:m[5]?+m[5]:null}:null);return g&&e.push(g),e},[])},e.exports=c})()},\"./dist/compiled/strip-ansi/index.js\":function(e){(()=>{\"use strict\";var t={511:e=>{e.exports=({onlyFirst:e=!1}={})=>RegExp(\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)|(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\",e?void 0:\"g\")},532:(e,t,n)=>{let r=n(511);e.exports=e=>\"string\"==typeof e?e.replace(r(),\"\"):e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}},i=!0;try{t[e](a,a.exports,r),i=!1}finally{i&&delete n[e]}return a.exports}r.ab=\"//\",e.exports=r(532)})()},\"./src/build/webpack/loaders/devtool/devtool-style-inject.js\":function(e){function t(){let e=window._nextjsDevtoolsStyleCache;if(e.cachedShadowRoot)return e.cachedShadowRoot;let t=document.querySelector(\"nextjs-portal\"),n=t?.shadowRoot||null;return n&&(e.cachedShadowRoot=n),n}function n(e,t){let n=window._nextjsDevtoolsStyleCache;n.lastInsertedElement?n.lastInsertedElement.nextSibling?t.insertBefore(e,n.lastInsertedElement.nextSibling):t.appendChild(e):t.insertBefore(e,t.firstChild),n.lastInsertedElement=e}function r(){let e=window._nextjsDevtoolsStyleCache,r=t();r&&(e.pendingElements.forEach(e=>{n(e,r)}),e.pendingElements=[])}\"undefined\"!=typeof window&&(window._nextjsDevtoolsStyleCache=window._nextjsDevtoolsStyleCache||{pendingElements:[],isObserving:!1,lastInsertedElement:null,cachedShadowRoot:null}),e.exports=function(e){e.setAttribute(\"data-nextjs-dev-tool-style\",\"true\");let o=t();o?n(e,o):(window._nextjsDevtoolsStyleCache.pendingElements.push(e),function(){let e=window._nextjsDevtoolsStyleCache;if(e.isObserving)return;if(e.isObserving=!0,t())return r();let n=new MutationObserver(o=>{if(0===o.length||0===o[0].addedNodes.length)return;let a=o[0].addedNodes[0],i=null;if(\"SCRIPT\"===a.tagName&&a.getAttribute(\"data-nextjs-dev-overlay\")?i=a.firstChild:\"NEXTJS-PORTAL\"===a.tagName&&(i=a),!i)return;let l=()=>{t()?(r(),n.disconnect(),e.isObserving=!1):setTimeout(l,20)};l()});n.observe(document.body,{childList:!0,subtree:!0})}())}},\"./dist/compiled/zod/index.cjs\":function(e){(()=>{\"use strict\";var t={629:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||(\"get\"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)\"default\"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t},i=this&&this.__exportStar||function(e,t){for(var n in e)\"default\"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,\"__esModule\",{value:!0}),t.z=void 0;let l=a(n(923));t.z=l,i(n(923),t),t.default=l},348:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ZodError=t.quotelessJson=t.ZodIssueCode=void 0;let r=n(709);t.ZodIssueCode=r.util.arrayToEnum([\"invalid_type\",\"invalid_literal\",\"custom\",\"invalid_union\",\"invalid_union_discriminator\",\"invalid_enum_value\",\"unrecognized_keys\",\"invalid_arguments\",\"invalid_return_type\",\"invalid_date\",\"invalid_string\",\"too_small\",\"too_big\",\"invalid_intersection_types\",\"not_multiple_of\",\"not_finite\"]),t.quotelessJson=e=>JSON.stringify(e,null,2).replace(/\"([^\"]+)\":/g,\"$1:\");class o extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=\"ZodError\",this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let o of e.issues)if(\"invalid_union\"===o.code)o.unionErrors.map(r);else if(\"invalid_return_type\"===o.code)r(o.returnTypeError);else if(\"invalid_arguments\"===o.code)r(o.argumentsError);else if(0===o.path.length)n._errors.push(t(o));else{let e=n,r=0;for(;r<o.path.length;){let n=o.path[r];r===o.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(o))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(e){if(!(e instanceof o))throw Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,r.util.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){let t={},n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}t.ZodError=o,o.create=e=>new o(e)},61:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.defaultErrorMap=void 0,t.setErrorMap=function(e){a=e},t.getErrorMap=function(){return a};let o=r(n(871));t.defaultErrorMap=o.default;let a=o.default},923:function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||(\"get\"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)\"default\"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,\"__esModule\",{value:!0}),o(n(61),t),o(n(818),t),o(n(515),t),o(n(709),t),o(n(155),t),o(n(348),t)},538:(e,t)=>{var n,r;Object.defineProperty(t,\"__esModule\",{value:!0}),t.errorUtil=void 0,(r=n||(t.errorUtil=n={})).errToObj=e=>\"string\"==typeof e?{message:e}:e||{},r.toString=e=>\"string\"==typeof e?e:e?.message},818:function(e,t,n){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.isAsync=t.isValid=t.isDirty=t.isAborted=t.OK=t.DIRTY=t.INVALID=t.ParseStatus=t.EMPTY_PATH=t.makeIssue=void 0,t.addIssueToContext=function(e,n){let r=(0,o.getErrorMap)(),i=(0,t.makeIssue)({issueData:n,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===a.default?void 0:a.default].filter(e=>!!e)});e.common.issues.push(i)};let o=n(61),a=r(n(871));t.makeIssue=e=>{let{data:t,path:n,errorMaps:r,issueData:o}=e,a=[...n,...o.path||[]],i={...o,path:a};if(void 0!==o.message)return{...o,path:a,message:o.message};let l=\"\";for(let e of r.filter(e=>!!e).slice().reverse())l=e(i,{data:t,defaultError:l}).message;return{...o,path:a,message:l}},t.EMPTY_PATH=[];class i{constructor(){this.value=\"valid\"}dirty(){\"valid\"===this.value&&(this.value=\"dirty\")}abort(){\"aborted\"!==this.value&&(this.value=\"aborted\")}static mergeArray(e,n){let r=[];for(let o of n){if(\"aborted\"===o.status)return t.INVALID;\"dirty\"===o.status&&e.dirty(),r.push(o.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,t){let n=[];for(let e of t){let t=await e.key,r=await e.value;n.push({key:t,value:r})}return i.mergeObjectSync(e,n)}static mergeObjectSync(e,n){let r={};for(let o of n){let{key:n,value:a}=o;if(\"aborted\"===n.status||\"aborted\"===a.status)return t.INVALID;\"dirty\"===n.status&&e.dirty(),\"dirty\"===a.status&&e.dirty(),\"__proto__\"!==n.value&&(void 0!==a.value||o.alwaysSet)&&(r[n.value]=a.value)}return{status:e.value,value:r}}}t.ParseStatus=i,t.INVALID=Object.freeze({status:\"aborted\"}),t.DIRTY=e=>({status:\"dirty\",value:e}),t.OK=e=>({status:\"valid\",value:e}),t.isAborted=e=>\"aborted\"===e.status,t.isDirty=e=>\"dirty\"===e.status,t.isValid=e=>\"valid\"===e.status,t.isAsync=e=>\"undefined\"!=typeof Promise&&e instanceof Promise},515:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0})},709:(e,t)=>{var n,r,o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.getParsedType=t.ZodParsedType=t.objectUtil=t.util=void 0,(o=n||(t.util=n={})).assertEqual=e=>{},o.assertIs=function(e){},o.assertNever=function(e){throw Error()},o.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},o.getValidEnumValues=e=>{let t=o.objectKeys(e).filter(t=>\"number\"!=typeof e[e[t]]),n={};for(let r of t)n[r]=e[r];return o.objectValues(n)},o.objectValues=e=>o.objectKeys(e).map(function(t){return e[t]}),o.objectKeys=\"function\"==typeof Object.keys?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},o.find=(e,t)=>{for(let n of e)if(t(n))return n},o.isInteger=\"function\"==typeof Number.isInteger?e=>Number.isInteger(e):e=>\"number\"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,o.joinValues=function(e,t=\" | \"){return e.map(e=>\"string\"==typeof e?`'${e}'`:e).join(t)},o.jsonStringifyReplacer=(e,t)=>\"bigint\"==typeof t?t.toString():t,(r||(t.objectUtil=r={})).mergeShapes=(e,t)=>({...e,...t}),t.ZodParsedType=n.arrayToEnum([\"string\",\"nan\",\"number\",\"integer\",\"float\",\"boolean\",\"date\",\"bigint\",\"symbol\",\"function\",\"undefined\",\"null\",\"array\",\"object\",\"unknown\",\"promise\",\"void\",\"never\",\"map\",\"set\"]),t.getParsedType=e=>{switch(typeof e){case\"undefined\":return t.ZodParsedType.undefined;case\"string\":return t.ZodParsedType.string;case\"number\":return Number.isNaN(e)?t.ZodParsedType.nan:t.ZodParsedType.number;case\"boolean\":return t.ZodParsedType.boolean;case\"function\":return t.ZodParsedType.function;case\"bigint\":return t.ZodParsedType.bigint;case\"symbol\":return t.ZodParsedType.symbol;case\"object\":if(Array.isArray(e))return t.ZodParsedType.array;if(null===e)return t.ZodParsedType.null;if(e.then&&\"function\"==typeof e.then&&e.catch&&\"function\"==typeof e.catch)return t.ZodParsedType.promise;if(\"undefined\"!=typeof Map&&e instanceof Map)return t.ZodParsedType.map;if(\"undefined\"!=typeof Set&&e instanceof Set)return t.ZodParsedType.set;if(\"undefined\"!=typeof Date&&e instanceof Date)return t.ZodParsedType.date;return t.ZodParsedType.object;default:return t.ZodParsedType.unknown}}},871:(e,t,n)=>{Object.defineProperty(t,\"__esModule\",{value:!0});let r=n(348),o=n(709);t.default=(e,t)=>{let n;switch(e.code){case r.ZodIssueCode.invalid_type:n=e.received===o.ZodParsedType.undefined?\"Required\":`Expected ${e.expected}, received ${e.received}`;break;case r.ZodIssueCode.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,o.util.jsonStringifyReplacer)}`;break;case r.ZodIssueCode.unrecognized_keys:n=`Unrecognized key(s) in object: ${o.util.joinValues(e.keys,\", \")}`;break;case r.ZodIssueCode.invalid_union:n=\"Invalid input\";break;case r.ZodIssueCode.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${o.util.joinValues(e.options)}`;break;case r.ZodIssueCode.invalid_enum_value:n=`Invalid enum value. Expected ${o.util.joinValues(e.options)}, received '${e.received}'`;break;case r.ZodIssueCode.invalid_arguments:n=\"Invalid function arguments\";break;case r.ZodIssueCode.invalid_return_type:n=\"Invalid function return type\";break;case r.ZodIssueCode.invalid_date:n=\"Invalid date\";break;case r.ZodIssueCode.invalid_string:\"object\"==typeof e.validation?\"includes\"in e.validation?(n=`Invalid input: must include \"${e.validation.includes}\"`,\"number\"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):\"startsWith\"in e.validation?n=`Invalid input: must start with \"${e.validation.startsWith}\"`:\"endsWith\"in e.validation?n=`Invalid input: must end with \"${e.validation.endsWith}\"`:o.util.assertNever(e.validation):n=\"regex\"!==e.validation?`Invalid ${e.validation}`:\"Invalid\";break;case r.ZodIssueCode.too_small:n=\"array\"===e.type?`Array must contain ${e.exact?\"exactly\":e.inclusive?\"at least\":\"more than\"} ${e.minimum} element(s)`:\"string\"===e.type?`String must contain ${e.exact?\"exactly\":e.inclusive?\"at least\":\"over\"} ${e.minimum} character(s)`:\"number\"===e.type||\"bigint\"===e.type?`Number must be ${e.exact?\"exactly equal to \":e.inclusive?\"greater than or equal to \":\"greater than \"}${e.minimum}`:\"date\"===e.type?`Date must be ${e.exact?\"exactly equal to \":e.inclusive?\"greater than or equal to \":\"greater than \"}${new Date(Number(e.minimum))}`:\"Invalid input\";break;case r.ZodIssueCode.too_big:n=\"array\"===e.type?`Array must contain ${e.exact?\"exactly\":e.inclusive?\"at most\":\"less than\"} ${e.maximum} element(s)`:\"string\"===e.type?`String must contain ${e.exact?\"exactly\":e.inclusive?\"at most\":\"under\"} ${e.maximum} character(s)`:\"number\"===e.type?`Number must be ${e.exact?\"exactly\":e.inclusive?\"less than or equal to\":\"less than\"} ${e.maximum}`:\"bigint\"===e.type?`BigInt must be ${e.exact?\"exactly\":e.inclusive?\"less than or equal to\":\"less than\"} ${e.maximum}`:\"date\"===e.type?`Date must be ${e.exact?\"exactly\":e.inclusive?\"smaller than or equal to\":\"smaller than\"} ${new Date(Number(e.maximum))}`:\"Invalid input\";break;case r.ZodIssueCode.custom:n=\"Invalid input\";break;case r.ZodIssueCode.invalid_intersection_types:n=\"Intersection results could not be merged\";break;case r.ZodIssueCode.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case r.ZodIssueCode.not_finite:n=\"Number must be finite\";break;default:n=t.defaultError,o.util.assertNever(e)}return{message:n}}},155:(e,t,n)=>{var r,o;let a;Object.defineProperty(t,\"__esModule\",{value:!0}),t.discriminatedUnion=t.date=t.boolean=t.bigint=t.array=t.any=t.coerce=t.ZodFirstPartyTypeKind=t.late=t.ZodSchema=t.Schema=t.ZodReadonly=t.ZodPipeline=t.ZodBranded=t.BRAND=t.ZodNaN=t.ZodCatch=t.ZodDefault=t.ZodNullable=t.ZodOptional=t.ZodTransformer=t.ZodEffects=t.ZodPromise=t.ZodNativeEnum=t.ZodEnum=t.ZodLiteral=t.ZodLazy=t.ZodFunction=t.ZodSet=t.ZodMap=t.ZodRecord=t.ZodTuple=t.ZodIntersection=t.ZodDiscriminatedUnion=t.ZodUnion=t.ZodObject=t.ZodArray=t.ZodVoid=t.ZodNever=t.ZodUnknown=t.ZodAny=t.ZodNull=t.ZodUndefined=t.ZodSymbol=t.ZodDate=t.ZodBoolean=t.ZodBigInt=t.ZodNumber=t.ZodString=t.ZodType=void 0,t.NEVER=t.void=t.unknown=t.union=t.undefined=t.tuple=t.transformer=t.symbol=t.string=t.strictObject=t.set=t.record=t.promise=t.preprocess=t.pipeline=t.ostring=t.optional=t.onumber=t.oboolean=t.object=t.number=t.nullable=t.null=t.never=t.nativeEnum=t.nan=t.map=t.literal=t.lazy=t.intersection=t.instanceof=t.function=t.enum=t.effect=void 0,t.datetimeRegex=I,t.custom=ev;let i=n(348),l=n(61),s=n(538),c=n(818),u=n(709);class d{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}let f=(e,t)=>{if((0,c.isValid)(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(\"Validation failed but no issues detected.\");return{success:!1,get error(){if(this._error)return this._error;let t=new i.ZodError(e.common.issues);return this._error=t,this._error}}};function p(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:o}=e;if(t&&(n||r))throw Error('Can\\'t use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.');return t?{errorMap:t,description:o}:{errorMap:(t,o)=>{let{message:a}=e;return\"invalid_enum_value\"===t.code?{message:a??o.defaultError}:void 0===o.data?{message:a??r??o.defaultError}:\"invalid_type\"!==t.code?{message:o.defaultError}:{message:a??n??o.defaultError}},description:o}}class h{get description(){return this._def.description}_getType(e){return(0,u.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,u.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new c.ParseStatus,ctx:{common:e.parent.common,data:e.data,parsedType:(0,u.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if((0,c.isAsync)(t))throw Error(\"Synchronous parse encountered promise.\");return t}_parseAsync(e){return Promise.resolve(this._parse(e))}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,u.getParsedType)(e)},r=this._parseSync({data:e,path:n.path,parent:n});return f(n,r)}\"~validate\"(e){let t={common:{issues:[],async:!!this[\"~standard\"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,u.getParsedType)(e)};if(!this[\"~standard\"].async)try{let n=this._parseSync({data:e,path:[],parent:t});return(0,c.isValid)(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(\"encountered\")&&(this[\"~standard\"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>(0,c.isValid)(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,u.getParsedType)(e)},r=this._parse({data:e,path:n.path,parent:n});return f(n,await ((0,c.isAsync)(r)?r:Promise.resolve(r)))}refine(e,t){return this._refinement((n,r)=>{let o=e(n),a=()=>r.addIssue({code:i.ZodIssueCode.custom,...\"string\"==typeof t||void 0===t?{message:t}:\"function\"==typeof t?t(n):t});return\"undefined\"!=typeof Promise&&o instanceof Promise?o.then(e=>!!e||(a(),!1)):!!o||(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>!!e(n)||(r.addIssue(\"function\"==typeof t?t(n,r):t),!1))}_refinement(e){return new es({schema:this,typeName:r.ZodEffects,effect:{type:\"refinement\",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[\"~standard\"]={version:1,vendor:\"zod\",validate:e=>this[\"~validate\"](e)}}optional(){return ec.create(this,this._def)}nullable(){return eu.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return V.create(this)}promise(){return el.create(this,this._def)}or(e){return W.create([this,e],this._def)}and(e){return X.create(this,e,this._def)}transform(e){return new es({...p(this._def),schema:this,typeName:r.ZodEffects,effect:{type:\"transform\",transform:e}})}default(e){return new ed({...p(this._def),innerType:this,defaultValue:\"function\"==typeof e?e:()=>e,typeName:r.ZodDefault})}brand(){return new eh({typeName:r.ZodBranded,type:this,...p(this._def)})}catch(e){return new ef({...p(this._def),innerType:this,catchValue:\"function\"==typeof e?e:()=>e,typeName:r.ZodCatch})}describe(e){return new this.constructor({...this._def,description:e})}pipe(e){return em.create(this,e)}readonly(){return eg.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}t.ZodType=h,t.Schema=h,t.ZodSchema=h;let m=/^c[^\\s-]{8,}$/i,g=/^[0-9a-z]+$/,y=/^[0-9A-HJKMNP-TV-Z]{26}$/i,v=/^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i,b=/^[a-z0-9_-]{21}$/i,A=/^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,x=/^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/,w=/^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i,C=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,_=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,k=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,E=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,j=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,S=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,O=\"((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))\",B=RegExp(`^${O}$`);function P(e){let t=\"[0-5]\\\\d\";e.precision?t=`${t}\\\\.\\\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\\\.\\\\d+)?`);let n=e.precision?\"+\":\"?\";return`([01]\\\\d|2[0-3]):[0-5]\\\\d(:${t})${n}`}function I(e){let t=`${O}T${P(e)}`,n=[];return n.push(e.local?\"Z?\":\"Z\"),e.offset&&n.push(\"([+-]\\\\d{2}:?\\\\d{2})\"),t=`${t}(${n.join(\"|\")})`,RegExp(`^${t}$`)}class z extends h{_parse(e){var t,n,r,o;let l;if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==u.ZodParsedType.string){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.string,received:t.parsedType}),c.INVALID}let s=new c.ParseStatus;for(let d of this._def.checks)if(\"min\"===d.kind)e.data.length<d.value&&(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.too_small,minimum:d.value,type:\"string\",inclusive:!0,exact:!1,message:d.message}),s.dirty());else if(\"max\"===d.kind)e.data.length>d.value&&(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.too_big,maximum:d.value,type:\"string\",inclusive:!0,exact:!1,message:d.message}),s.dirty());else if(\"length\"===d.kind){let t=e.data.length>d.value,n=e.data.length<d.value;(t||n)&&(l=this._getOrReturnCtx(e,l),t?(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.too_big,maximum:d.value,type:\"string\",inclusive:!0,exact:!0,message:d.message}):n&&(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.too_small,minimum:d.value,type:\"string\",inclusive:!0,exact:!0,message:d.message}),s.dirty())}else if(\"email\"===d.kind)w.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"email\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"emoji\"===d.kind)a||(a=RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\",\"u\")),a.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"emoji\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"uuid\"===d.kind)v.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"uuid\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"nanoid\"===d.kind)b.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"nanoid\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"cuid\"===d.kind)m.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"cuid\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"cuid2\"===d.kind)g.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"cuid2\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"ulid\"===d.kind)y.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"ulid\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty());else if(\"url\"===d.kind)try{new URL(e.data)}catch{l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"url\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty()}else\"regex\"===d.kind?(d.regex.lastIndex=0,d.regex.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"regex\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty())):\"trim\"===d.kind?e.data=e.data.trim():\"includes\"===d.kind?e.data.includes(d.value,d.position)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:{includes:d.value,position:d.position},message:d.message}),s.dirty()):\"toLowerCase\"===d.kind?e.data=e.data.toLowerCase():\"toUpperCase\"===d.kind?e.data=e.data.toUpperCase():\"startsWith\"===d.kind?e.data.startsWith(d.value)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:{startsWith:d.value},message:d.message}),s.dirty()):\"endsWith\"===d.kind?e.data.endsWith(d.value)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:{endsWith:d.value},message:d.message}),s.dirty()):\"datetime\"===d.kind?I(d).test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:\"datetime\",message:d.message}),s.dirty()):\"date\"===d.kind?B.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:\"date\",message:d.message}),s.dirty()):\"time\"===d.kind?RegExp(`^${P(d)}$`).test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{code:i.ZodIssueCode.invalid_string,validation:\"time\",message:d.message}),s.dirty()):\"duration\"===d.kind?x.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"duration\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty()):\"ip\"===d.kind?(t=e.data,!((\"v4\"===(n=d.version)||!n)&&C.test(t)||(\"v6\"===n||!n)&&k.test(t))&&1&&(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"ip\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty())):\"jwt\"===d.kind?!function(e,t){if(!A.test(e))return!1;try{let[n]=e.split(\".\");if(!n)return!1;let r=n.replace(/-/g,\"+\").replace(/_/g,\"/\").padEnd(n.length+(4-n.length%4)%4,\"=\"),o=JSON.parse(atob(r));if(\"object\"!=typeof o||null===o||\"typ\"in o&&o?.typ!==\"JWT\"||!o.alg||t&&o.alg!==t)return!1;return!0}catch{return!1}}(e.data,d.alg)&&(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"jwt\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty()):\"cidr\"===d.kind?(r=e.data,!((\"v4\"===(o=d.version)||!o)&&_.test(r)||(\"v6\"===o||!o)&&E.test(r))&&1&&(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"cidr\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty())):\"base64\"===d.kind?j.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"base64\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty()):\"base64url\"===d.kind?S.test(e.data)||(l=this._getOrReturnCtx(e,l),(0,c.addIssueToContext)(l,{validation:\"base64url\",code:i.ZodIssueCode.invalid_string,message:d.message}),s.dirty()):u.util.assertNever(d);return{status:s.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:i.ZodIssueCode.invalid_string,...s.errorUtil.errToObj(n)})}_addCheck(e){return new z({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:\"email\",...s.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:\"url\",...s.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:\"emoji\",...s.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:\"uuid\",...s.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:\"nanoid\",...s.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:\"cuid\",...s.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:\"cuid2\",...s.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:\"ulid\",...s.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:\"base64\",...s.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:\"base64url\",...s.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:\"jwt\",...s.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:\"ip\",...s.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:\"cidr\",...s.errorUtil.errToObj(e)})}datetime(e){return\"string\"==typeof e?this._addCheck({kind:\"datetime\",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:\"datetime\",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...s.errorUtil.errToObj(e?.message)})}date(e){return this._addCheck({kind:\"date\",message:e})}time(e){return\"string\"==typeof e?this._addCheck({kind:\"time\",precision:null,message:e}):this._addCheck({kind:\"time\",precision:void 0===e?.precision?null:e?.precision,...s.errorUtil.errToObj(e?.message)})}duration(e){return this._addCheck({kind:\"duration\",...s.errorUtil.errToObj(e)})}regex(e,t){return this._addCheck({kind:\"regex\",regex:e,...s.errorUtil.errToObj(t)})}includes(e,t){return this._addCheck({kind:\"includes\",value:e,position:t?.position,...s.errorUtil.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:\"startsWith\",value:e,...s.errorUtil.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:\"endsWith\",value:e,...s.errorUtil.errToObj(t)})}min(e,t){return this._addCheck({kind:\"min\",value:e,...s.errorUtil.errToObj(t)})}max(e,t){return this._addCheck({kind:\"max\",value:e,...s.errorUtil.errToObj(t)})}length(e,t){return this._addCheck({kind:\"length\",value:e,...s.errorUtil.errToObj(t)})}nonempty(e){return this.min(1,s.errorUtil.errToObj(e))}trim(){return new z({...this._def,checks:[...this._def.checks,{kind:\"trim\"}]})}toLowerCase(){return new z({...this._def,checks:[...this._def.checks,{kind:\"toLowerCase\"}]})}toUpperCase(){return new z({...this._def,checks:[...this._def.checks,{kind:\"toUpperCase\"}]})}get isDatetime(){return!!this._def.checks.find(e=>\"datetime\"===e.kind)}get isDate(){return!!this._def.checks.find(e=>\"date\"===e.kind)}get isTime(){return!!this._def.checks.find(e=>\"time\"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>\"duration\"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>\"email\"===e.kind)}get isURL(){return!!this._def.checks.find(e=>\"url\"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>\"emoji\"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>\"uuid\"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>\"nanoid\"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>\"cuid\"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>\"cuid2\"===e.kind)}get isULID(){return!!this._def.checks.find(e=>\"ulid\"===e.kind)}get isIP(){return!!this._def.checks.find(e=>\"ip\"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>\"cidr\"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>\"base64\"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>\"base64url\"===e.kind)}get minLength(){let e=null;for(let t of this._def.checks)\"min\"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)\"max\"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}t.ZodString=z,z.create=e=>new z({checks:[],typeName:r.ZodString,coerce:e?.coerce??!1,...p(e)});class T extends h{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){let t;if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==u.ZodParsedType.number){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.number,received:t.parsedType}),c.INVALID}let n=new c.ParseStatus;for(let r of this._def.checks)\"int\"===r.kind?u.util.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:\"integer\",received:\"float\",message:r.message}),n.dirty()):\"min\"===r.kind?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_small,minimum:r.value,type:\"number\",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):\"max\"===r.kind?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_big,maximum:r.value,type:\"number\",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):\"multipleOf\"===r.kind?0!==function(e,t){let n=(e.toString().split(\".\")[1]||\"\").length,r=(t.toString().split(\".\")[1]||\"\").length,o=n>r?n:r;return Number.parseInt(e.toFixed(o).replace(\".\",\"\"))%Number.parseInt(t.toFixed(o).replace(\".\",\"\"))/10**o}(e.data,r.value)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):\"finite\"===r.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.not_finite,message:r.message}),n.dirty()):u.util.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(\"min\",e,!0,s.errorUtil.toString(t))}gt(e,t){return this.setLimit(\"min\",e,!1,s.errorUtil.toString(t))}lte(e,t){return this.setLimit(\"max\",e,!0,s.errorUtil.toString(t))}lt(e,t){return this.setLimit(\"max\",e,!1,s.errorUtil.toString(t))}setLimit(e,t,n,r){return new T({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:s.errorUtil.toString(r)}]})}_addCheck(e){return new T({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:\"int\",message:s.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:\"min\",value:0,inclusive:!1,message:s.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:\"max\",value:0,inclusive:!1,message:s.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:\"max\",value:0,inclusive:!0,message:s.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:\"min\",value:0,inclusive:!0,message:s.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:\"multipleOf\",value:e,message:s.errorUtil.toString(t)})}finite(e){return this._addCheck({kind:\"finite\",message:s.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:\"min\",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:s.errorUtil.toString(e)})._addCheck({kind:\"max\",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:s.errorUtil.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)\"min\"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)\"max\"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>\"int\"===e.kind||\"multipleOf\"===e.kind&&u.util.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(\"finite\"===n.kind||\"int\"===n.kind||\"multipleOf\"===n.kind)return!0;else\"min\"===n.kind?(null===t||n.value>t)&&(t=n.value):\"max\"===n.kind&&(null===e||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}}t.ZodNumber=T,T.create=e=>new T({checks:[],typeName:r.ZodNumber,coerce:e?.coerce||!1,...p(e)});class D extends h{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){let t;if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==u.ZodParsedType.bigint)return this._getInvalidInput(e);let n=new c.ParseStatus;for(let r of this._def.checks)\"min\"===r.kind?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_small,type:\"bigint\",minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):\"max\"===r.kind?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_big,type:\"bigint\",maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):\"multipleOf\"===r.kind?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):u.util.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.bigint,received:t.parsedType}),c.INVALID}gte(e,t){return this.setLimit(\"min\",e,!0,s.errorUtil.toString(t))}gt(e,t){return this.setLimit(\"min\",e,!1,s.errorUtil.toString(t))}lte(e,t){return this.setLimit(\"max\",e,!0,s.errorUtil.toString(t))}lt(e,t){return this.setLimit(\"max\",e,!1,s.errorUtil.toString(t))}setLimit(e,t,n,r){return new D({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:s.errorUtil.toString(r)}]})}_addCheck(e){return new D({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:\"min\",value:BigInt(0),inclusive:!1,message:s.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:\"max\",value:BigInt(0),inclusive:!1,message:s.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:\"max\",value:BigInt(0),inclusive:!0,message:s.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:\"min\",value:BigInt(0),inclusive:!0,message:s.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:\"multipleOf\",value:e,message:s.errorUtil.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)\"min\"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)\"max\"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}t.ZodBigInt=D,D.create=e=>new D({checks:[],typeName:r.ZodBigInt,coerce:e?.coerce??!1,...p(e)});class L extends h{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==u.ZodParsedType.boolean){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.boolean,received:t.parsedType}),c.INVALID}return(0,c.OK)(e.data)}}t.ZodBoolean=L,L.create=e=>new L({typeName:r.ZodBoolean,coerce:e?.coerce||!1,...p(e)});class N extends h{_parse(e){let t;if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==u.ZodParsedType.date){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.date,received:t.parsedType}),c.INVALID}if(Number.isNaN(e.data.getTime())){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_date}),c.INVALID}let n=new c.ParseStatus;for(let r of this._def.checks)\"min\"===r.kind?e.data.getTime()<r.value&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:\"date\"}),n.dirty()):\"max\"===r.kind?e.data.getTime()>r.value&&(t=this._getOrReturnCtx(e,t),(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:\"date\"}),n.dirty()):u.util.assertNever(r);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new N({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:\"min\",value:e.getTime(),message:s.errorUtil.toString(t)})}max(e,t){return this._addCheck({kind:\"max\",value:e.getTime(),message:s.errorUtil.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)\"min\"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)\"max\"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}t.ZodDate=N,N.create=e=>new N({checks:[],coerce:e?.coerce||!1,typeName:r.ZodDate,...p(e)});class R extends h{_parse(e){if(this._getType(e)!==u.ZodParsedType.symbol){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.symbol,received:t.parsedType}),c.INVALID}return(0,c.OK)(e.data)}}t.ZodSymbol=R,R.create=e=>new R({typeName:r.ZodSymbol,...p(e)});class M extends h{_parse(e){if(this._getType(e)!==u.ZodParsedType.undefined){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.undefined,received:t.parsedType}),c.INVALID}return(0,c.OK)(e.data)}}t.ZodUndefined=M,M.create=e=>new M({typeName:r.ZodUndefined,...p(e)});class Z extends h{_parse(e){if(this._getType(e)!==u.ZodParsedType.null){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.null,received:t.parsedType}),c.INVALID}return(0,c.OK)(e.data)}}t.ZodNull=Z,Z.create=e=>new Z({typeName:r.ZodNull,...p(e)});class U extends h{constructor(){super(...arguments),this._any=!0}_parse(e){return(0,c.OK)(e.data)}}t.ZodAny=U,U.create=e=>new U({typeName:r.ZodAny,...p(e)});class F extends h{constructor(){super(...arguments),this._unknown=!0}_parse(e){return(0,c.OK)(e.data)}}t.ZodUnknown=F,F.create=e=>new F({typeName:r.ZodUnknown,...p(e)});class q extends h{_parse(e){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.never,received:t.parsedType}),c.INVALID}}t.ZodNever=q,q.create=e=>new q({typeName:r.ZodNever,...p(e)});class H extends h{_parse(e){if(this._getType(e)!==u.ZodParsedType.undefined){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.void,received:t.parsedType}),c.INVALID}return(0,c.OK)(e.data)}}t.ZodVoid=H,H.create=e=>new H({typeName:r.ZodVoid,...p(e)});class V extends h{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==u.ZodParsedType.array)return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.array,received:t.parsedType}),c.INVALID;if(null!==r.exactLength){let e=t.data.length>r.exactLength.value,o=t.data.length<r.exactLength.value;(e||o)&&((0,c.addIssueToContext)(t,{code:e?i.ZodIssueCode.too_big:i.ZodIssueCode.too_small,minimum:o?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:\"array\",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(null!==r.minLength&&t.data.length<r.minLength.value&&((0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_small,minimum:r.minLength.value,type:\"array\",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),null!==r.maxLength&&t.data.length>r.maxLength.value&&((0,c.addIssueToContext)(t,{code:i.ZodIssueCode.too_big,maximum:r.maxLength.value,type:\"array\",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new d(t,e,t.path,n)))).then(e=>c.ParseStatus.mergeArray(n,e));let o=[...t.data].map((e,n)=>r.type._parseSync(new d(t,e,t.path,n)));return c.ParseStatus.mergeArray(n,o)}get element(){return this._def.type}min(e,t){return new V({...this._def,minLength:{value:e,message:s.errorUtil.toString(t)}})}max(e,t){return new V({...this._def,maxLength:{value:e,message:s.errorUtil.toString(t)}})}length(e,t){return new V({...this._def,exactLength:{value:e,message:s.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}t.ZodArray=V,V.create=(e,t)=>new V({type:e,minLength:null,maxLength:null,exactLength:null,typeName:r.ZodArray,...p(t)});class $ extends h{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;let e=this._def.shape(),t=u.util.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==u.ZodParsedType.object){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.object,received:t.parsedType}),c.INVALID}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof q&&\"strip\"===this._def.unknownKeys))for(let e in n.data)o.includes(e)||a.push(e);let l=[];for(let e of o){let t=r[e],o=n.data[e];l.push({key:{status:\"valid\",value:e},value:t._parse(new d(n,o,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof q){let e=this._def.unknownKeys;if(\"passthrough\"===e)for(let e of a)l.push({key:{status:\"valid\",value:e},value:{status:\"valid\",value:n.data[e]}});else if(\"strict\"===e)a.length>0&&((0,c.addIssueToContext)(n,{code:i.ZodIssueCode.unrecognized_keys,keys:a}),t.dirty());else if(\"strip\"===e);else throw Error(\"Internal ZodObject error: invalid unknownKeys value.\")}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];l.push({key:{status:\"valid\",value:t},value:e._parse(new d(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of l){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>c.ParseStatus.mergeObjectSync(t,e)):c.ParseStatus.mergeObjectSync(t,l)}get shape(){return this._def.shape()}strict(e){return s.errorUtil.errToObj,new $({...this._def,unknownKeys:\"strict\",...void 0!==e?{errorMap:(t,n)=>{let r=this._def.errorMap?.(t,n).message??n.defaultError;return\"unrecognized_keys\"===t.code?{message:s.errorUtil.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new $({...this._def,unknownKeys:\"strip\"})}passthrough(){return new $({...this._def,unknownKeys:\"passthrough\"})}extend(e){return new $({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new $({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:r.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new $({...this._def,catchall:e})}pick(e){let t={};for(let n of u.util.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new $({...this._def,shape:()=>t})}omit(e){let t={};for(let n of u.util.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new $({...this._def,shape:()=>t})}deepPartial(){return function e(t){if(t instanceof $){let n={};for(let r in t.shape){let o=t.shape[r];n[r]=ec.create(e(o))}return new $({...t._def,shape:()=>n})}if(t instanceof V)return new V({...t._def,type:e(t.element)});if(t instanceof ec)return ec.create(e(t.unwrap()));if(t instanceof eu)return eu.create(e(t.unwrap()));if(t instanceof G)return G.create(t.items.map(t=>e(t)));else return t}(this)}partial(e){let t={};for(let n of u.util.objectKeys(this.shape)){let r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new $({...this._def,shape:()=>t})}required(e){let t={};for(let n of u.util.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof ec;)e=e._def.innerType;t[n]=e}return new $({...this._def,shape:()=>t})}keyof(){return eo(u.util.objectKeys(this.shape))}}t.ZodObject=$,$.create=(e,t)=>new $({shape:()=>e,unknownKeys:\"strip\",catchall:q.create(),typeName:r.ZodObject,...p(t)}),$.strictCreate=(e,t)=>new $({shape:()=>e,unknownKeys:\"strict\",catchall:q.create(),typeName:r.ZodObject,...p(t)}),$.lazycreate=(e,t)=>new $({shape:e,unknownKeys:\"strip\",catchall:q.create(),typeName:r.ZodObject,...p(t)});class W extends h{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(function(e){for(let t of e)if(\"valid\"===t.result.status)return t.result;for(let n of e)if(\"dirty\"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new i.ZodError(e.ctx.common.issues));return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_union,unionErrors:n}),c.INVALID});{let e,r=[];for(let o of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=o._parseSync({data:t.data,path:t.path,parent:n});if(\"valid\"===a.status)return a;\"dirty\"!==a.status||e||(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let o=r.map(e=>new i.ZodError(e));return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_union,unionErrors:o}),c.INVALID}}get options(){return this._def.options}}t.ZodUnion=W,W.create=(e,t)=>new W({options:e,typeName:r.ZodUnion,...p(t)});let Y=e=>{if(e instanceof en)return Y(e.schema);if(e instanceof es)return Y(e.innerType());if(e instanceof er)return[e.value];if(e instanceof ea)return e.options;if(e instanceof ei)return u.util.objectValues(e.enum);else if(e instanceof ed)return Y(e._def.innerType);else if(e instanceof M)return[void 0];else if(e instanceof Z)return[null];else if(e instanceof ec)return[void 0,...Y(e.unwrap())];else if(e instanceof eu)return[null,...Y(e.unwrap())];else if(e instanceof eh)return Y(e.unwrap());else if(e instanceof eg)return Y(e.unwrap());else if(e instanceof ef)return Y(e._def.innerType);else return[]};class K extends h{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==u.ZodParsedType.object)return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.object,received:t.parsedType}),c.INVALID;let n=this.discriminator,r=t.data[n],o=this.optionsMap.get(r);return o?t.common.async?o._parseAsync({data:t.data,path:t.path,parent:t}):o._parseSync({data:t.data,path:t.path,parent:t}):((0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),c.INVALID)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){let o=new Map;for(let n of t){let t=Y(n.shape[e]);if(!t.length)throw Error(`A discriminator value for key \\`${e}\\` could not be extracted from all schema options`);for(let r of t){if(o.has(r))throw Error(`Discriminator property ${String(e)} has duplicate value ${String(r)}`);o.set(r,n)}}return new K({typeName:r.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:o,...p(n)})}}t.ZodDiscriminatedUnion=K;class X extends h{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if((0,c.isAborted)(e)||(0,c.isAborted)(r))return c.INVALID;let o=function e(t,n){let r=(0,u.getParsedType)(t),o=(0,u.getParsedType)(n);if(t===n)return{valid:!0,data:t};if(r===u.ZodParsedType.object&&o===u.ZodParsedType.object){let r=u.util.objectKeys(n),o=u.util.objectKeys(t).filter(e=>-1!==r.indexOf(e)),a={...t,...n};for(let r of o){let o=e(t[r],n[r]);if(!o.valid)return{valid:!1};a[r]=o.data}return{valid:!0,data:a}}if(r===u.ZodParsedType.array&&o===u.ZodParsedType.array){if(t.length!==n.length)return{valid:!1};let r=[];for(let o=0;o<t.length;o++){let a=e(t[o],n[o]);if(!a.valid)return{valid:!1};r.push(a.data)}return{valid:!0,data:r}}if(r===u.ZodParsedType.date&&o===u.ZodParsedType.date&&+t==+n)return{valid:!0,data:t};return{valid:!1}}(e.value,r.value);return o.valid?(((0,c.isDirty)(e)||(0,c.isDirty)(r))&&t.dirty(),{status:t.value,value:o.data}):((0,c.addIssueToContext)(n,{code:i.ZodIssueCode.invalid_intersection_types}),c.INVALID)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}t.ZodIntersection=X,X.create=(e,t,n)=>new X({left:e,right:t,typeName:r.ZodIntersection,...p(n)});class G extends h{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==u.ZodParsedType.array)return(0,c.addIssueToContext)(n,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.array,received:n.parsedType}),c.INVALID;if(n.data.length<this._def.items.length)return(0,c.addIssueToContext)(n,{code:i.ZodIssueCode.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:\"array\"}),c.INVALID;!this._def.rest&&n.data.length>this._def.items.length&&((0,c.addIssueToContext)(n,{code:i.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:\"array\"}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new d(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>c.ParseStatus.mergeArray(t,e)):c.ParseStatus.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new G({...this._def,rest:e})}}t.ZodTuple=G,G.create=(e,t)=>{if(!Array.isArray(e))throw Error(\"You must pass an array of schemas to z.tuple([ ... ])\");return new G({items:e,typeName:r.ZodTuple,rest:null,...p(t)})};class Q extends h{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==u.ZodParsedType.object)return(0,c.addIssueToContext)(n,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.object,received:n.parsedType}),c.INVALID;let r=[],o=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:o._parse(new d(n,e,n.path,e)),value:a._parse(new d(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?c.ParseStatus.mergeObjectAsync(t,r):c.ParseStatus.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new Q(t instanceof h?{keyType:e,valueType:t,typeName:r.ZodRecord,...p(n)}:{keyType:z.create(),valueType:e,typeName:r.ZodRecord,...p(t)})}}t.ZodRecord=Q;class J extends h{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==u.ZodParsedType.map)return(0,c.addIssueToContext)(n,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.map,received:n.parsedType}),c.INVALID;let r=this._def.keyType,o=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new d(n,e,n.path,[a,\"key\"])),value:o._parse(new d(n,t,n.path,[a,\"value\"]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,o=await n.value;if(\"aborted\"===r.status||\"aborted\"===o.status)return c.INVALID;(\"dirty\"===r.status||\"dirty\"===o.status)&&t.dirty(),e.set(r.value,o.value)}return{status:t.value,value:e}})}{let e=new Map;for(let n of a){let r=n.key,o=n.value;if(\"aborted\"===r.status||\"aborted\"===o.status)return c.INVALID;(\"dirty\"===r.status||\"dirty\"===o.status)&&t.dirty(),e.set(r.value,o.value)}return{status:t.value,value:e}}}}t.ZodMap=J,J.create=(e,t,n)=>new J({valueType:t,keyType:e,typeName:r.ZodMap,...p(n)});class ee extends h{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==u.ZodParsedType.set)return(0,c.addIssueToContext)(n,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.set,received:n.parsedType}),c.INVALID;let r=this._def;null!==r.minSize&&n.data.size<r.minSize.value&&((0,c.addIssueToContext)(n,{code:i.ZodIssueCode.too_small,minimum:r.minSize.value,type:\"set\",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),null!==r.maxSize&&n.data.size>r.maxSize.value&&((0,c.addIssueToContext)(n,{code:i.ZodIssueCode.too_big,maximum:r.maxSize.value,type:\"set\",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let o=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(\"aborted\"===r.status)return c.INVALID;\"dirty\"===r.status&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let l=[...n.data.values()].map((e,t)=>o._parse(new d(n,e,n.path,t)));return n.common.async?Promise.all(l).then(e=>a(e)):a(l)}min(e,t){return new ee({...this._def,minSize:{value:e,message:s.errorUtil.toString(t)}})}max(e,t){return new ee({...this._def,maxSize:{value:e,message:s.errorUtil.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}t.ZodSet=ee,ee.create=(e,t)=>new ee({valueType:e,minSize:null,maxSize:null,typeName:r.ZodSet,...p(t)});class et extends h{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==u.ZodParsedType.function)return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.function,received:t.parsedType}),c.INVALID;function n(e,n){return(0,c.makeIssue)({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,l.getErrorMap)(),l.defaultErrorMap].filter(e=>!!e),issueData:{code:i.ZodIssueCode.invalid_arguments,argumentsError:n}})}function r(e,n){return(0,c.makeIssue)({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,l.getErrorMap)(),l.defaultErrorMap].filter(e=>!!e),issueData:{code:i.ZodIssueCode.invalid_return_type,returnTypeError:n}})}let o={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof el){let e=this;return(0,c.OK)(async function(...t){let l=new i.ZodError([]),s=await e._def.args.parseAsync(t,o).catch(e=>{throw l.addIssue(n(t,e)),l}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,o).catch(e=>{throw l.addIssue(r(c,e)),l})})}{let e=this;return(0,c.OK)(function(...t){let l=e._def.args.safeParse(t,o);if(!l.success)throw new i.ZodError([n(t,l.error)]);let s=Reflect.apply(a,this,l.data),c=e._def.returns.safeParse(s,o);if(!c.success)throw new i.ZodError([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new et({...this._def,args:G.create(e).rest(F.create())})}returns(e){return new et({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new et({args:e||G.create([]).rest(F.create()),returns:t||F.create(),typeName:r.ZodFunction,...p(n)})}}t.ZodFunction=et;class en extends h{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}t.ZodLazy=en,en.create=(e,t)=>new en({getter:e,typeName:r.ZodLazy,...p(t)});class er extends h{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{received:t.data,code:i.ZodIssueCode.invalid_literal,expected:this._def.value}),c.INVALID}return{status:\"valid\",value:e.data}}get value(){return this._def.value}}function eo(e,t){return new ea({values:e,typeName:r.ZodEnum,...p(t)})}t.ZodLiteral=er,er.create=(e,t)=>new er({value:e,typeName:r.ZodLiteral,...p(t)});class ea extends h{_parse(e){if(\"string\"!=typeof e.data){let t=this._getOrReturnCtx(e),n=this._def.values;return(0,c.addIssueToContext)(t,{expected:u.util.joinValues(n),received:t.parsedType,code:i.ZodIssueCode.invalid_type}),c.INVALID}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return(0,c.addIssueToContext)(t,{received:t.data,code:i.ZodIssueCode.invalid_enum_value,options:n}),c.INVALID}return(0,c.OK)(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return ea.create(e,{...this._def,...t})}exclude(e,t=this._def){return ea.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}t.ZodEnum=ea,ea.create=eo;class ei extends h{_parse(e){let t=u.util.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==u.ZodParsedType.string&&n.parsedType!==u.ZodParsedType.number){let e=u.util.objectValues(t);return(0,c.addIssueToContext)(n,{expected:u.util.joinValues(e),received:n.parsedType,code:i.ZodIssueCode.invalid_type}),c.INVALID}if(this._cache||(this._cache=new Set(u.util.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let e=u.util.objectValues(t);return(0,c.addIssueToContext)(n,{received:n.data,code:i.ZodIssueCode.invalid_enum_value,options:e}),c.INVALID}return(0,c.OK)(e.data)}get enum(){return this._def.values}}t.ZodNativeEnum=ei,ei.create=(e,t)=>new ei({values:e,typeName:r.ZodNativeEnum,...p(t)});class el extends h{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==u.ZodParsedType.promise&&!1===t.common.async)return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.promise,received:t.parsedType}),c.INVALID;let n=t.parsedType===u.ZodParsedType.promise?t.data:Promise.resolve(t.data);return(0,c.OK)(n.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}t.ZodPromise=el,el.create=(e,t)=>new el({type:e,typeName:r.ZodPromise,...p(t)});class es extends h{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===r.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,o={addIssue:e=>{(0,c.addIssueToContext)(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),\"preprocess\"===r.type){let e=r.transform(n.data,o);if(n.common.async)return Promise.resolve(e).then(async e=>{if(\"aborted\"===t.value)return c.INVALID;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return\"aborted\"===r.status?c.INVALID:\"dirty\"===r.status||\"dirty\"===t.value?(0,c.DIRTY)(r.value):r});{if(\"aborted\"===t.value)return c.INVALID;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return\"aborted\"===r.status?c.INVALID:\"dirty\"===r.status||\"dirty\"===t.value?(0,c.DIRTY)(r.value):r}}if(\"refinement\"===r.type){let e=e=>{let t=r.refinement(e,o);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");return e};if(!1!==n.common.async)return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>\"aborted\"===n.status?c.INVALID:(\"dirty\"===n.status&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))));{let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return\"aborted\"===r.status?c.INVALID:(\"dirty\"===r.status&&t.dirty(),e(r.value),{status:t.value,value:r.value})}}if(\"transform\"===r.type)if(!1!==n.common.async)return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>(0,c.isValid)(e)?Promise.resolve(r.transform(e.value,o)).then(e=>({status:t.value,value:e})):c.INVALID);else{let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!(0,c.isValid)(e))return c.INVALID;let a=r.transform(e.value,o);if(a instanceof Promise)throw Error(\"Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.\");return{status:t.value,value:a}}u.util.assertNever(r)}}t.ZodEffects=es,t.ZodTransformer=es,es.create=(e,t,n)=>new es({schema:e,typeName:r.ZodEffects,effect:t,...p(n)}),es.createWithPreprocess=(e,t,n)=>new es({schema:t,effect:{type:\"preprocess\",transform:e},typeName:r.ZodEffects,...p(n)});class ec extends h{_parse(e){return this._getType(e)===u.ZodParsedType.undefined?(0,c.OK)(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}t.ZodOptional=ec,ec.create=(e,t)=>new ec({innerType:e,typeName:r.ZodOptional,...p(t)});class eu extends h{_parse(e){return this._getType(e)===u.ZodParsedType.null?(0,c.OK)(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}t.ZodNullable=eu,eu.create=(e,t)=>new eu({innerType:e,typeName:r.ZodNullable,...p(t)});class ed extends h{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===u.ZodParsedType.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}t.ZodDefault=ed,ed.create=(e,t)=>new ed({innerType:e,typeName:r.ZodDefault,defaultValue:\"function\"==typeof t.default?t.default:()=>t.default,...p(t)});class ef extends h{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return(0,c.isAsync)(r)?r.then(e=>({status:\"valid\",value:\"valid\"===e.status?e.value:this._def.catchValue({get error(){return new i.ZodError(n.common.issues)},input:n.data})})):{status:\"valid\",value:\"valid\"===r.status?r.value:this._def.catchValue({get error(){return new i.ZodError(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}t.ZodCatch=ef,ef.create=(e,t)=>new ef({innerType:e,typeName:r.ZodCatch,catchValue:\"function\"==typeof t.catch?t.catch:()=>t.catch,...p(t)});class ep extends h{_parse(e){if(this._getType(e)!==u.ZodParsedType.nan){let t=this._getOrReturnCtx(e);return(0,c.addIssueToContext)(t,{code:i.ZodIssueCode.invalid_type,expected:u.ZodParsedType.nan,received:t.parsedType}),c.INVALID}return{status:\"valid\",value:e.data}}}t.ZodNaN=ep,ep.create=e=>new ep({typeName:r.ZodNaN,...p(e)}),t.BRAND=Symbol(\"zod_brand\");class eh extends h{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}t.ZodBranded=eh;class em extends h{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return\"aborted\"===e.status?c.INVALID:\"dirty\"===e.status?(t.dirty(),(0,c.DIRTY)(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return\"aborted\"===e.status?c.INVALID:\"dirty\"===e.status?(t.dirty(),{status:\"dirty\",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new em({in:e,out:t,typeName:r.ZodPipeline})}}t.ZodPipeline=em;class eg extends h{_parse(e){let t=this._def.innerType._parse(e),n=e=>((0,c.isValid)(e)&&(e.value=Object.freeze(e.value)),e);return(0,c.isAsync)(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}}function ey(e,t){let n=\"function\"==typeof e?e(t):\"string\"==typeof e?{message:e}:e;return\"string\"==typeof n?{message:n}:n}function ev(e,t={},n){return e?U.create().superRefine((r,o)=>{let a=e(r);if(a instanceof Promise)return a.then(e=>{if(!e){let e=ey(t,r),a=e.fatal??n??!0;o.addIssue({code:\"custom\",...e,fatal:a})}});if(!a){let e=ey(t,r),a=e.fatal??n??!0;o.addIssue({code:\"custom\",...e,fatal:a})}}):U.create()}t.ZodReadonly=eg,eg.create=(e,t)=>new eg({innerType:e,typeName:r.ZodReadonly,...p(t)}),t.late={object:$.lazycreate},(o=r||(t.ZodFirstPartyTypeKind=r={})).ZodString=\"ZodString\",o.ZodNumber=\"ZodNumber\",o.ZodNaN=\"ZodNaN\",o.ZodBigInt=\"ZodBigInt\",o.ZodBoolean=\"ZodBoolean\",o.ZodDate=\"ZodDate\",o.ZodSymbol=\"ZodSymbol\",o.ZodUndefined=\"ZodUndefined\",o.ZodNull=\"ZodNull\",o.ZodAny=\"ZodAny\",o.ZodUnknown=\"ZodUnknown\",o.ZodNever=\"ZodNever\",o.ZodVoid=\"ZodVoid\",o.ZodArray=\"ZodArray\",o.ZodObject=\"ZodObject\",o.ZodUnion=\"ZodUnion\",o.ZodDiscriminatedUnion=\"ZodDiscriminatedUnion\",o.ZodIntersection=\"ZodIntersection\",o.ZodTuple=\"ZodTuple\",o.ZodRecord=\"ZodRecord\",o.ZodMap=\"ZodMap\",o.ZodSet=\"ZodSet\",o.ZodFunction=\"ZodFunction\",o.ZodLazy=\"ZodLazy\",o.ZodLiteral=\"ZodLiteral\",o.ZodEnum=\"ZodEnum\",o.ZodEffects=\"ZodEffects\",o.ZodNativeEnum=\"ZodNativeEnum\",o.ZodOptional=\"ZodOptional\",o.ZodNullable=\"ZodNullable\",o.ZodDefault=\"ZodDefault\",o.ZodCatch=\"ZodCatch\",o.ZodPromise=\"ZodPromise\",o.ZodBranded=\"ZodBranded\",o.ZodPipeline=\"ZodPipeline\",o.ZodReadonly=\"ZodReadonly\",t.instanceof=(e,t={message:`Input not instance of ${e.name}`})=>ev(t=>t instanceof e,t);let eb=z.create;t.string=eb;let eA=T.create;t.number=eA,t.nan=ep.create,t.bigint=D.create;let ex=L.create;t.boolean=ex,t.date=N.create,t.symbol=R.create,t.undefined=M.create,t.null=Z.create,t.any=U.create,t.unknown=F.create,t.never=q.create,t.void=H.create,t.array=V.create,t.object=$.create,t.strictObject=$.strictCreate,t.union=W.create,t.discriminatedUnion=K.create,t.intersection=X.create,t.tuple=G.create,t.record=Q.create,t.map=J.create,t.set=ee.create,t.function=et.create,t.lazy=en.create,t.literal=er.create,t.enum=ea.create,t.nativeEnum=ei.create,t.promise=el.create;let ew=es.create;t.effect=ew,t.transformer=ew,t.optional=ec.create,t.nullable=eu.create,t.preprocess=es.createWithPreprocess,t.pipeline=em.create,t.ostring=()=>eb().optional(),t.onumber=()=>eA().optional(),t.oboolean=()=>ex().optional(),t.coerce={string:e=>z.create({...e,coerce:!0}),number:e=>T.create({...e,coerce:!0}),boolean:e=>L.create({...e,coerce:!0}),bigint:e=>D.create({...e,coerce:!0}),date:e=>N.create({...e,coerce:!0})},t.NEVER=c.INVALID}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}},i=!0;try{t[e].call(a.exports,a,a.exports,r),i=!1}finally{i&&delete n[e]}return a.exports}r.ab=\"//\",e.exports=r(629)})()}},__webpack_module_cache__={};function __nested_webpack_require_378213__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,exports:{}};return __webpack_modules__[e](n,n.exports,__nested_webpack_require_378213__),n.exports}__nested_webpack_require_378213__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __nested_webpack_require_378213__.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;__nested_webpack_require_378213__.t=function(n,r){if(1&r&&(n=this(n)),8&r||\"object\"==typeof n&&n&&(4&r&&n.__esModule||16&r&&\"function\"==typeof n.then))return n;var o=Object.create(null);__nested_webpack_require_378213__.r(o);var a={};e=e||[null,t({}),t([]),t(t)];for(var i=2&r&&n;\"object\"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(e=>{a[e]=()=>n[e]});return a.default=()=>n,__nested_webpack_require_378213__.d(o,a),o}})(),__nested_webpack_require_378213__.d=(e,t)=>{for(var n in t)__nested_webpack_require_378213__.o(t,n)&&!__nested_webpack_require_378213__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__nested_webpack_require_378213__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__nested_webpack_require_378213__.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},__nested_webpack_require_378213__.nc=void 0;var __nested_webpack_exports__={};for(var __webpack_i__ in(()=>{\"use strict\";__nested_webpack_require_378213__.r(__nested_webpack_exports__),__nested_webpack_require_378213__.d(__nested_webpack_exports__,{dispatcher:()=>dt,renderAppDevOverlay:()=>dc,DevOverlayContext:()=>dr,renderPagesDevOverlay:()=>du,useDevOverlayContext:()=>da});var e,t,n,r=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\"),o=__nested_webpack_require_378213__.n(r),a=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleDomAPI.js\"),i=__nested_webpack_require_378213__.n(a),l=__nested_webpack_require_378213__(\"./src/build/webpack/loaders/devtool/devtool-style-inject.js\"),s=__nested_webpack_require_378213__.n(l),c=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\"),u=__nested_webpack_require_378213__.n(c),d=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/insertStyleElement.js\"),f=__nested_webpack_require_378213__.n(d),p=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleTagTransform.js\"),h=__nested_webpack_require_378213__.n(p),m=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/global.css\"),g={};g.styleTagTransform=h(),g.setAttributes=u(),g.insert=s(),g.domAPI=i(),g.insertStyleElement=f(),o()(m.Z,g),m.Z&&m.Z.locals&&m.Z.locals;var y=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/toast/style.css\"),v={};v.styleTagTransform=h(),v.setAttributes=u(),v.insert=s(),v.domAPI=i(),v.insertStyleElement=f(),o()(y.Z,v),y.Z&&y.Z.locals&&y.Z.locals;var b=__nested_webpack_require_378213__(\"./dist/compiled/react/jsx-runtime.js\"),A=__nested_webpack_require_378213__(\"./dist/compiled/react/compiler-runtime.js\"),x=__nested_webpack_require_378213__(\"./dist/compiled/react/index.js\"),w=__nested_webpack_require_378213__.t(x,2),C=__nested_webpack_require_378213__(\"./dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\"),_=/\\/_next(\\/static\\/.+)/,k=Symbol.for(\"next.console.error.digest\");function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){E(e,t,n[t])})}return e}function S(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var O={Small:16/14,Medium:1,Large:16/18},B=\"static-indicator\",P=\"build-ok\",I=\"build-error\",z=\"before-fast-refresh\",T=\"fast-refresh\",D=\"version-info\",L=\"unhandled-error\",N=\"unhandled-rejection\",R=\"debug-info\",M=\"dev-indicator\",Z=\"dev-indicator-disable\",U=\"error-overlay-open\",F=\"error-overlay-close\",q=\"error-overlay-toggle\",H=\"building-indicator-show\",V=\"building-indicator-hide\",$=\"rendering-indicator-show\",W=\"rendering-indicator-hide\",Y=\"devtools-position\",K=\"devtools-panel-position\",X=\"devtools-scale\",G=\"devtools-config\",Q=\"__nextjs-dev-tools-panel-position\",J=\"__nextjs-dev-tools-panel-size\",ee=\"__nextjs-dev-tools-shared-panel-size\",et=\"__nextjs-dev-tools-shared-panel-location\",en=\"segment-explorer-update-route-state\",er=/\\s+(at Object\\.react_stack_bottom_frame.*)|(react_stack_bottom_frame@.*)|(at react-stack-bottom-frame.*)|(react-stack-bottom-frame@.*)/;function eo(e){return null==e?void 0:e.split(er)[0]}var ea=(null==(e=true)?void 0:e.toString())===\"false\",ei={nextId:1,buildError:null,errors:[],notFound:!1,renderingIndicator:!1,staticIndicator:!1,showIndicator:!1,disableDevIndicator:!1,buildingIndicator:!1,refreshState:{type:\"idle\"},versionInfo:{installed:\"0.0.0\",staleness:\"unknown\"},debugInfo:{devtoolsFrontendUrl:void 0},devToolsPosition:\"bottom-left\",devToolsPanelPosition:E({},et,\"bottom-left\"),devToolsPanelSize:{},scale:O.Medium,page:\"\",theme:\"system\",hideShortcut:null},el=__nested_webpack_require_378213__(\"./dist/compiled/react-dom/client.js\");function es(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=e.length-1;return(e.slice(0,o).reduce(function(e,t,r){return e+t+n[r]},\"\")+e[o]).replace(/\\/\\*[\\s\\S]*?\\*\\//g,\"\").replace(/\\s+/g,\" \").replace(/\\s*([:;,{}])\\s*/g,\"$1\").replace(/;+}/g,\"}\").trim()}function ec(){var e,t,n=(e=[\"\\n /* latin-ext */\\n @font-face {\\n font-family: '__nextjs-Geist';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-latin-ext.woff2) format('woff2');\\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,\\n U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,\\n U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,\\n U+A720-A7FF;\\n }\\n /* latin-ext */\\n @font-face {\\n font-family: '__nextjs-Geist Mono';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-mono-latin-ext.woff2) format('woff2');\\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,\\n U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,\\n U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,\\n U+A720-A7FF;\\n }\\n /* latin */\\n @font-face {\\n font-family: '__nextjs-Geist';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-latin.woff2) format('woff2');\\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\\n U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,\\n U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\\n }\\n /* latin */\\n @font-face {\\n font-family: '__nextjs-Geist Mono';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-mono-latin.woff2) format('woff2');\\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\\n U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,\\n U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\\n }\\n \"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return ec=function(){return n},n}var eu=function(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=[],t[0]=e):e=t[0],(0,x.useInsertionEffect)(ed,e),null};function ed(){var e=document.createElement(\"style\");return e.textContent=es(ec()),document.head.appendChild(e),function(){document.head.removeChild(e)}}var ef=__nested_webpack_require_378213__(\"./dist/compiled/react-dom/index.js\");function ep(e){var t,n=(0,A.c)(3),r=e.children,o=da().shadowRoot;return n[0]!==r||n[1]!==o?(t=(0,ef.createPortal)(r,o),n[0]=r,n[1]=o,n[2]=t):t=n[2],t}function eh(e){if(\"\"===e.trim())throw Error(\"can't decode empty hex\");var t=parseInt(e,16);if(isNaN(t))throw Error(\"invalid hex: `\".concat(e,\"`\"));return String.fromCodePoint(t)}var em=/^__TURBOPACK__([a-zA-Z0-9_$]+)__$/,eg=/https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/i,ey=new RegExp(\"(\".concat(/__TURBOPACK__[a-zA-Z0-9_$]+__/g.source,\"|\\\\s+)\")),ev=function(e){var t,n=(0,A.c)(7),r=e.text,o=e.matcher;if(n[0]!==o||n[1]!==r){var a,i,l=r.split(ey);n[3]!==o?(i=function(e,t){if(eg.test(e)){var n=eg.exec(e)[0];return\"function\"!=typeof o||o(n)?(0,b.jsx)(x.Fragment,{children:(0,b.jsx)(\"a\",{href:n,target:\"_blank\",rel:\"noreferrer noopener\",children:e})},\"link-\".concat(t)):e}try{var r=function(e){var t=e.match(em);if(!t)return e;for(var n=t[1],r=\"\",o=0,a=\"\",i=0;i<n.length;i++){var l=n[i];if(0===o)\"_\"===l?o=1:\"$\"===l?o=2:r+=l;else if(1===o)\"_\"===l?(r+=\" \",o=0):\"$\"===l?(r+=\"_\",o=2):(r+=l,o=0);else if(2===o)if(2===a.length&&(r+=eh(a),a=\"\"),\"_\"===l){if(\"\"!==a)throw Error(\"invalid hex: `\".concat(a,\"`\"));o=3}else if(\"$\"===l){if(\"\"!==a)throw Error(\"invalid hex: `\".concat(a,\"`\"));o=0}else a+=l;else if(3===o)if(\"_\"===l)throw Error(\"invalid hex: `\".concat(a+l,\"`\"));else\"$\"===l?(r+=eh(a),a=\"\",o=0):a+=l}return r}(e);if(r!==e)return(0,b.jsxs)(\"i\",{children:[\"{\",r,\"}\"]},\"ident-\".concat(t))}catch(n){return(0,b.jsxs)(\"i\",{children:[\"{\",e,\" (decoding failed: \",\"\"+n,\")\",\"}\"]},\"ident-\".concat(t))}return(0,b.jsx)(x.Fragment,{children:e},\"text-\".concat(t))},n[3]=o,n[4]=i):i=n[4],a=l.map(i),n[0]=o,n[1]=r,n[2]=a}else a=n[2];return n[5]!==a?(t=(0,b.jsx)(b.Fragment,{children:a}),n[5]=a,n[6]=t):t=n[6],t},eb=[/^webpack-internal:\\/\\/\\/(\\([\\w-]+\\)\\/)?/,/^(webpack:\\/\\/\\/|webpack:\\/\\/(_N_E\\/)?)(\\([\\w-]+\\)\\/)?/];function eA(e){var t=!0,n=!1,r=void 0;try{for(var o,a=eb[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;if(i.test(e))return!0;e=e.replace(i,\"\")}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}return!1}function ex(e){var t=!0,n=!1,r=void 0;try{for(var o,a=eb[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;e=e.replace(i,\"\")}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}return e}function ew(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function eC(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){ew(a,r,o,i,l,\"next\",e)}function l(e){ew(a,r,o,i,l,\"throw\",e)}i(void 0)})}}function e_(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(n)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function ek(e,t){var n;return\"file://\"===e.file||(null==(n=e.file)?void 0:n.match(/https?:\\/\\//))?Promise.resolve({error:!1,reason:null,external:!0,sourceStackFrame:e,originalStackFrame:null,originalCodeFrame:null,ignored:!0}):eC(function(){var n,r;return e_(this,function(o){if(\"rejected\"===t.status)throw Error(t.reason);return[2,{error:!1,reason:null,external:!1,sourceStackFrame:e,originalStackFrame:(r=t.value).originalStackFrame,originalCodeFrame:r.originalCodeFrame||null,ignored:(null==(n=r.originalStackFrame)?void 0:n.ignored)||!1}]})})().catch(function(t){var n,r;return{error:!0,reason:null!=(r=null!=(n=null==t?void 0:t.message)?n:null==t?void 0:t.toString())?r:\"Unknown Error\",external:!1,sourceStackFrame:e,originalStackFrame:null,originalCodeFrame:null,ignored:!1}})}function eE(e,t,n){return eC(function(){var r,o,a,i;return e_(this,function(l){switch(l.label){case 0:r={frames:e,isServer:\"server\"===t,isEdgeServer:\"edge-server\"===t,isAppDirectory:n},o=void 0,a=void 0,l.label=1;case 1:return l.trys.push([1,3,,4]),[4,fetch(\"/__nextjs_original-stack-frames\",{method:\"POST\",body:JSON.stringify(r)})];case 2:return o=l.sent(),[3,4];case 3:return a=l.sent()+\"\",[3,4];case 4:if(!(o&&o.ok&&204!==o.status))return[3,6];return[4,o.json()];case 5:return i=l.sent(),[2,Promise.all(e.map(function(e,t){return ek(e,i[t])}))];case 6:if(!o)return[3,8];return[4,o.text()];case 7:a=l.sent(),l.label=8;case 8:return[2,Promise.all(e.map(function(e){return ek(e,{status:\"rejected\",reason:\"Failed to fetch the original stack frames \".concat(a?\": \".concat(a):\"\")})}))]}})})()}function ej(e){if(!e.file)return\"\";var t=eA(e.file),n=\"\";if(t)n=ex(e.file);else try{var r,o=new URL(e.file),a=\"\";(null==(r=globalThis.location)?void 0:r.origin)!==o.origin&&(\"null\"===o.origin?a+=o.protocol:a+=o.origin),a+=o.pathname,n=ex(a)}catch(t){n=ex(e.file)}return!eA(e.file)&&null!=e.line1&&n&&\"<anonymous>\"!==e.file&&(null!=e.column1?n+=\" (\".concat(e.line1,\":\").concat(e.column1,\")\"):n+=\" (\".concat(e.line1,\")\")),n}function eS(e){var t,n,r=(0,A.c)(6);r[0]!==e?(t=void 0===e?{}:e,r[0]=e,r[1]=t):t=r[1];var o=t.file,a=t.line1,i=t.column1;return r[2]!==i||r[3]!==o||r[4]!==a?(n=function(){if(null!=o&&null!=a&&null!=i){var e=new URLSearchParams;e.append(\"file\",o),e.append(\"line1\",String(a)),e.append(\"column1\",String(i)),self.fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(e.toString())).then(eO,function(e){console.error('Failed to open file \"'.concat(o,\" (\").concat(a,\":\").concat(i,')\" in your editor. Cause:'),e)})}},r[2]=i,r[3]=o,r[4]=a,r[5]=n):n=r[5],n}function eO(){}function eB(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function eP(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function eI(e){var t,n,r=(0,A.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",fill:\"currentColor\",d:\"M11.5 9.75V11.25C11.5 11.3881 11.3881 11.5 11.25 11.5H4.75C4.61193 11.5 4.5 11.3881 4.5 11.25L4.5 4.75C4.5 4.61193 4.61193 4.5 4.75 4.5H6.25H7V3H6.25H4.75C3.7835 3 3 3.7835 3 4.75V11.25C3 12.2165 3.7835 13 4.75 13H11.25C12.2165 13 13 12.2165 13 11.25V9.75V9H11.5V9.75ZM8.5 3H9.25H12.2495C12.6637 3 12.9995 3.33579 12.9995 3.75V6.75V7.5H11.4995V6.75V5.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L10.4388 4.5H9.25H8.5V3Z\"}),r[0]=t):t=r[0],r[1]!==e?(n=(0,b.jsx)(\"svg\",eP(eB({xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\"},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}function ez(e){var t,n,r=(0,A.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.55846 2H7.44148L1.88975 13.5H14.1102L8.55846 2ZM9.90929 1.34788C9.65902 0.829456 9.13413 0.5 8.55846 0.5H7.44148C6.86581 0.5 6.34092 0.829454 6.09065 1.34787L0.192608 13.5653C-0.127943 14.2293 0.355835 15 1.09316 15H14.9068C15.6441 15 16.1279 14.2293 15.8073 13.5653L9.90929 1.34788ZM8.74997 4.75V5.5V8V8.75H7.24997V8V5.5V4.75H8.74997ZM7.99997 12C8.55226 12 8.99997 11.5523 8.99997 11C8.99997 10.4477 8.55226 10 7.99997 10C7.44769 10 6.99997 10.4477 6.99997 11C6.99997 11.5523 7.44769 12 7.99997 12Z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==e?(n=(0,b.jsx)(\"svg\",eP(eB({xmlns:\"http://www.w3.org/2000/svg\",height:\"16\",strokeLinejoin:\"round\",viewBox:\"-4 -4 24 24\",width:\"16\"},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}function eT(e){var t,n,r,o,a,i,l=(0,A.c)(6),s=e.lang;if(!s)return l[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(eR,{}),l[0]=t):t=l[0],t;switch(s.toLowerCase()){case\"jsx\":case\"tsx\":return l[1]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,b.jsx)(eM,{}),l[1]=n):n=l[1],n;case\"ts\":case\"typescript\":return l[2]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(eN,{}),l[2]=r):r=l[2],r;case\"javascript\":case\"js\":case\"mjs\":return l[3]===Symbol.for(\"react.memo_cache_sentinel\")?(o=(0,b.jsx)(eL,{}),l[3]=o):o=l[3],o;case\"json\":return l[4]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,b.jsx)(eD,{}),l[4]=a):a=l[4],a;default:return l[5]===Symbol.for(\"react.memo_cache_sentinel\")?(i=(0,b.jsx)(eR,{}),l[5]=i):i=l[5],i}}function eD(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{clipRule:\"evenodd\",fillRule:\"evenodd\",height:\"16\",viewBox:\"0 0 1321.45 1333.33\",width:\"16\",children:(0,b.jsx)(\"path\",{d:\"M221.37 618.44h757.94V405.15H755.14c-23.5 0-56.32-12.74-71.82-28.24-15.5-15.5-25-43.47-25-66.97V82.89H88.39c-1.99 0-3.49 1-4.49 2-1.5 1-2 2.5-2 4.5v1155.04c0 1.5 1 3.5 2 4.5 1 1.49 3 1.99 4.49 1.99H972.8c2 0 1.89-.99 2.89-1.99 1.5-1 3.61-3 3.61-4.5v-121.09H221.36c-44.96 0-82-36.9-82-81.99V700.44c0-45.1 36.9-82 82-82zm126.51 117.47h75.24v146.61c0 30.79-2.44 54.23-7.33 70.31-4.92 16.03-14.8 29.67-29.65 40.85-14.86 11.12-33.91 16.72-57.05 16.72-24.53 0-43.51-3.71-56.94-11.06-13.5-7.36-23.89-18.1-31.23-32.3-7.35-14.14-11.69-31.67-12.99-52.53l71.5-10.81c.11 11.81 1.07 20.61 2.81 26.33 1.76 5.78 4.75 10.37 9 13.95 2.87 2.33 6.94 3.46 12.25 3.46 8.4 0 14.58-3.46 18.53-10.37 3.9-6.92 5.87-18.6 5.87-35V735.92zm112.77 180.67l71.17-4.97c1.54 12.81 4.69 22.62 9.44 29.28 7.74 10.88 18.74 16.34 33.09 16.34 10.68 0 18.93-2.76 24.68-8.36 5.81-5.58 8.7-12.07 8.7-19.41 0-6.97-2.71-13.26-8.2-18.79-5.47-5.53-18.23-10.68-38.28-15.65-32.89-8.17-56.27-19.1-70.26-32.74-14.12-13.57-21.18-30.92-21.18-52.03 0-13.83 3.61-26.89 10.85-39.21 7.22-12.38 18.07-22.06 32.59-29.09 14.52-7.04 34.4-10.56 59.65-10.56 31 0 54.62 6.41 70.88 19.29 16.28 12.81 25.92 33.24 29.04 61.27l-70.5 4.65c-1.87-12.25-5.81-21.17-11.81-26.7-6.05-5.6-14.35-8.36-24.9-8.36-8.71 0-15.31 2.07-19.73 6.16-4.4 4.09-6.59 9.12-6.59 15.02 0 4.27 1.81 8.11 5.37 11.57 3.45 3.59 11.8 6.85 25.02 9.93 32.75 7.86 56.2 15.84 70.31 23.87 14.18 8.05 24.52 17.98 30.96 29.92 6.44 11.88 9.66 25.2 9.66 39.96 0 17.29-4.3 33.24-12.88 47.89-8.63 14.58-20.61 25.7-36.08 33.24-15.41 7.54-34.85 11.31-58.33 11.31-41.24 0-69.81-8.86-85.68-26.52-15.88-17.65-24.85-40.09-26.96-67.3zm248.74-45.5c0-44.05 11.02-78.36 33.09-102.87 22.09-24.57 52.82-36.82 92.24-36.82 40.38 0 71.5 12.07 93.34 36.13 21.86 24.13 32.77 57.94 32.77 101.37 0 31.54-4.75 57.36-14.3 77.54-9.54 20.18-23.37 35.89-41.4 47.13-18.07 11.24-40.55 16.84-67.48 16.84-27.33 0-49.99-4.83-67.94-14.52-17.92-9.74-32.49-25.07-43.62-46.06-11.13-20.92-16.72-47.19-16.72-78.74zm74.89.19c0 27.21 4.57 46.81 13.68 58.68 9.13 11.88 21.57 17.85 37.26 17.85 16.1 0 28.65-5.84 37.45-17.47 8.87-11.68 13.28-32.54 13.28-62.77 0-25.39-4.63-43.92-13.84-55.61-9.26-11.76-21.75-17.6-37.56-17.6-15.13 0-27.34 5.97-36.49 17.85-9.21 11.88-13.78 31.61-13.78 59.07zm209.08-135.36h69.99l90.98 149.05V735.91h70.83v269.96h-70.83l-90.48-148.24v148.24h-70.49V735.91zm67.71-117.47h178.37c45.1 0 82 37.04 82 82v340.91c0 44.96-37.03 81.99-82 81.99h-178.37v147c0 17.5-6.99 32.99-18.5 44.5-11.5 11.49-27 18.5-44.5 18.5H62.97c-17.5 0-32.99-7-44.5-18.5-11.49-11.5-18.5-27-18.5-44.5V63.49c0-17.5 7-33 18.5-44.5S45.97.49 62.97.49H700.1c1.5-.5 3-.5 4.5-.5 7 0 14 3 19 7.49h1c1 .5 1.5 1 2.5 2l325.46 329.47c5.5 5.5 9.5 13 9.5 21.5 0 2.5-.5 4.5-1 7v250.98zM732.61 303.47V96.99l232.48 235.47H761.6c-7.99 0-14.99-3.5-20.5-8.49-4.99-5-8.49-12.5-8.49-20.5z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function eL(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{height:\"16\",viewBox:\"0 0 50 50\",width:\"16\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,b.jsx)(\"path\",{d:\"M 43.335938 4 L 6.667969 4 C 5.195313 4 4 5.195313 4 6.667969 L 4 43.332031 C 4 44.804688 5.195313 46 6.667969 46 L 43.332031 46 C 44.804688 46 46 44.804688 46 43.335938 L 46 6.667969 C 46 5.195313 44.804688 4 43.335938 4 Z M 27 36.183594 C 27 40.179688 24.65625 42 21.234375 42 C 18.140625 42 15.910156 39.925781 15 38 L 18.144531 36.097656 C 18.75 37.171875 19.671875 38 21 38 C 22.269531 38 23 37.503906 23 35.574219 L 23 23 L 27 23 Z M 35.675781 42 C 32.132813 42 30.121094 40.214844 29 38 L 32 36 C 32.816406 37.335938 33.707031 38.613281 35.589844 38.613281 C 37.171875 38.613281 38 37.824219 38 36.730469 C 38 35.425781 37.140625 34.960938 35.402344 34.199219 L 34.449219 33.789063 C 31.695313 32.617188 29.863281 31.148438 29.863281 28.039063 C 29.863281 25.179688 32.046875 23 35.453125 23 C 37.878906 23 39.621094 23.84375 40.878906 26.054688 L 37.910156 27.964844 C 37.253906 26.789063 36.550781 26.328125 35.453125 26.328125 C 34.335938 26.328125 33.628906 27.039063 33.628906 27.964844 C 33.628906 29.109375 34.335938 29.570313 35.972656 30.28125 L 36.925781 30.691406 C 40.171875 32.078125 42 33.496094 42 36.683594 C 42 40.117188 39.300781 42 35.675781 42 Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function eN(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsxs)(\"svg\",{fill:\"none\",height:\"14\",viewBox:\"0 0 512 512\",width:\"14\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,b.jsx)(\"rect\",{fill:\"currentColor\",height:\"512\",rx:\"50\",width:\"512\"}),(0,b.jsx)(\"rect\",{fill:\"currentColor\",height:\"512\",rx:\"50\",width:\"512\"}),(0,b.jsx)(\"path\",{clipRule:\"evenodd\",d:\"m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z\",fill:\"var(--color-background-100)\",fillRule:\"evenodd\"})]}),t[0]=e):e=t[0],e}function eR(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{width:\"16\",height:\"17\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M14.5 7v7a2.5 2.5 0 0 1-2.5 2.5H4A2.5 2.5 0 0 1 1.5 14V.5h7.586a1 1 0 0 1 .707.293l4.414 4.414a1 1 0 0 1 .293.707V7zM13 7v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2h5v5h5zM9.5 2.621V5.5h2.879L9.5 2.621z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function eM(){var e,t,n=(0,A.c)(2);return n[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"g\",{clipPath:\"url(#file_react_clip0_872_3183)\",children:(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M4.5 1.93782C4.70129 1.82161 4.99472 1.7858 5.41315 1.91053C5.83298 2.03567 6.33139 2.31073 6.87627 2.73948C7.01136 2.84578 7.14803 2.96052 7.28573 3.08331C6.86217 3.53446 6.44239 4.04358 6.03752 4.60092C5.35243 4.67288 4.70164 4.78186 4.09916 4.92309C4.06167 4.74244 4.03064 4.56671 4.00612 4.39656C3.90725 3.71031 3.91825 3.14114 4.01979 2.71499C4.12099 2.29025 4.29871 2.05404 4.5 1.93782ZM7.49466 1.95361C7.66225 2.08548 7.83092 2.22804 7.99999 2.38067C8.16906 2.22804 8.33773 2.08548 8.50532 1.95361C9.10921 1.47842 9.71982 1.12549 10.3012 0.952202C10.8839 0.778496 11.4838 0.7738 12 1.0718C12.5161 1.3698 12.812 1.89169 12.953 2.48322C13.0936 3.07333 13.0932 3.77858 12.9836 4.53917C12.9532 4.75024 12.9141 4.9676 12.8665 5.19034C13.0832 5.26044 13.291 5.33524 13.489 5.41444C14.2025 5.69983 14.8134 6.05217 15.2542 6.46899C15.696 6.8868 16 7.404 16 8C16 8.596 15.696 9.11319 15.2542 9.53101C14.8134 9.94783 14.2025 10.3002 13.489 10.5856C13.291 10.6648 13.0832 10.7396 12.8665 10.8097C12.9141 11.0324 12.9532 11.2498 12.9837 11.4608C13.0932 12.2214 13.0936 12.9267 12.953 13.5168C12.812 14.1083 12.5161 14.6302 12 14.9282C11.4839 15.2262 10.8839 15.2215 10.3012 15.0478C9.71984 14.8745 9.10923 14.5216 8.50534 14.0464C8.33775 13.9145 8.16906 13.7719 7.99999 13.6193C7.83091 13.7719 7.66223 13.9145 7.49464 14.0464C6.89075 14.5216 6.28014 14.8745 5.69879 15.0478C5.11605 15.2215 4.51613 15.2262 3.99998 14.9282C3.48383 14.6302 3.18794 14.1083 3.047 13.5168C2.9064 12.9267 2.90674 12.2214 3.01632 11.4608C3.04673 11.2498 3.08586 11.0324 3.13351 10.8097C2.91679 10.7395 2.709 10.6648 2.511 10.5856C1.79752 10.3002 1.18658 9.94783 0.745833 9.53101C0.304028 9.11319 0 8.596 0 8C0 7.404 0.304028 6.8868 0.745833 6.46899C1.18658 6.05217 1.79752 5.69983 2.511 5.41444C2.709 5.33524 2.9168 5.26044 3.13352 5.19034C3.08587 4.9676 3.04675 4.75024 3.01634 4.53917C2.90676 3.77858 2.90642 3.07332 3.04702 2.48321C3.18796 1.89169 3.48385 1.3698 4 1.0718C4.51615 0.773798 5.11607 0.778495 5.69881 0.952201C6.28016 1.12549 6.89077 1.47841 7.49466 1.95361ZM7.36747 4.51025C7.57735 4.25194 7.78881 4.00927 7.99999 3.78356C8.21117 4.00927 8.42263 4.25194 8.63251 4.51025C8.42369 4.50346 8.21274 4.5 8 4.5C7.78725 4.5 7.5763 4.50345 7.36747 4.51025ZM8.71425 3.08331C9.13781 3.53447 9.55759 4.04358 9.96246 4.60092C10.6475 4.67288 11.2983 4.78186 11.9008 4.92309C11.9383 4.74244 11.9693 4.56671 11.9939 4.39657C12.0927 3.71031 12.0817 3.14114 11.9802 2.71499C11.879 2.29025 11.7013 2.05404 11.5 1.93782C11.2987 1.82161 11.0053 1.7858 10.5868 1.91053C10.167 2.03568 9.66859 2.31073 9.12371 2.73948C8.98862 2.84578 8.85196 2.96052 8.71425 3.08331ZM8 5.5C8.48433 5.5 8.95638 5.51885 9.41188 5.55456C9.67056 5.93118 9.9229 6.33056 10.1651 6.75C10.4072 7.16944 10.6269 7.58766 10.8237 7.99998C10.6269 8.41232 10.4072 8.83055 10.165 9.25C9.92288 9.66944 9.67053 10.0688 9.41185 10.4454C8.95636 10.4812 8.48432 10.5 8 10.5C7.51567 10.5 7.04363 10.4812 6.58813 10.4454C6.32945 10.0688 6.0771 9.66944 5.83494 9.25C5.59277 8.83055 5.37306 8.41232 5.17624 7.99998C5.37306 7.58765 5.59275 7.16944 5.83492 6.75C6.07708 6.33056 6.32942 5.93118 6.5881 5.55456C7.04361 5.51884 7.51566 5.5 8 5.5ZM11.0311 6.25C11.1375 6.43423 11.2399 6.61864 11.3385 6.80287C11.4572 6.49197 11.5616 6.18752 11.6515 5.89178C11.3505 5.82175 11.0346 5.75996 10.706 5.70736C10.8163 5.8848 10.9247 6.06576 11.0311 6.25ZM11.0311 9.75C11.1374 9.56576 11.2399 9.38133 11.3385 9.19709C11.4572 9.50801 11.5617 9.81246 11.6515 10.1082C11.3505 10.1782 11.0346 10.24 10.7059 10.2926C10.8162 10.1152 10.9247 9.93424 11.0311 9.75ZM11.9249 7.99998C12.2051 8.62927 12.4362 9.24738 12.6151 9.83977C12.7903 9.78191 12.958 9.72092 13.1176 9.65708C13.7614 9.39958 14.2488 9.10547 14.5671 8.80446C14.8843 8.50445 15 8.23243 15 8C15 7.76757 14.8843 7.49555 14.5671 7.19554C14.2488 6.89453 13.7614 6.60042 13.1176 6.34292C12.958 6.27907 12.7903 6.21808 12.6151 6.16022C12.4362 6.7526 12.2051 7.37069 11.9249 7.99998ZM9.96244 11.3991C10.6475 11.3271 11.2983 11.2181 11.9008 11.0769C11.9383 11.2576 11.9694 11.4333 11.9939 11.6034C12.0928 12.2897 12.0817 12.8589 11.9802 13.285C11.879 13.7098 11.7013 13.946 11.5 14.0622C11.2987 14.1784 11.0053 14.2142 10.5868 14.0895C10.167 13.9643 9.66861 13.6893 9.12373 13.2605C8.98863 13.1542 8.85196 13.0395 8.71424 12.9167C9.1378 12.4655 9.55758 11.9564 9.96244 11.3991ZM8.63249 11.4898C8.42262 11.7481 8.21116 11.9907 7.99999 12.2164C7.78881 11.9907 7.57737 11.7481 7.36749 11.4897C7.57631 11.4965 7.78726 11.5 8 11.5C8.21273 11.5 8.42367 11.4965 8.63249 11.4898ZM4.96891 9.75C5.07528 9.93424 5.18375 10.1152 5.29404 10.2926C4.9654 10.24 4.64951 10.1782 4.34844 10.1082C4.43833 9.81246 4.54276 9.508 4.66152 9.19708C4.76005 9.38133 4.86254 9.56575 4.96891 9.75ZM6.03754 11.3991C5.35244 11.3271 4.70163 11.2181 4.09914 11.0769C4.06165 11.2576 4.03062 11.4333 4.0061 11.6034C3.90723 12.2897 3.91823 12.8589 4.01977 13.285C4.12097 13.7098 4.29869 13.946 4.49998 14.0622C4.70127 14.1784 4.9947 14.2142 5.41313 14.0895C5.83296 13.9643 6.33137 13.6893 6.87625 13.2605C7.01135 13.1542 7.14802 13.0395 7.28573 12.9167C6.86217 12.4655 6.4424 11.9564 6.03754 11.3991ZM4.07507 7.99998C3.79484 8.62927 3.56381 9.24737 3.38489 9.83977C3.20969 9.78191 3.042 9.72092 2.88239 9.65708C2.23864 9.39958 1.75123 9.10547 1.43294 8.80446C1.11571 8.50445 1 8.23243 1 8C1 7.76757 1.11571 7.49555 1.43294 7.19554C1.75123 6.89453 2.23864 6.60042 2.88239 6.34292C3.042 6.27907 3.2097 6.21808 3.3849 6.16022C3.56383 6.75261 3.79484 7.37069 4.07507 7.99998ZM4.66152 6.80287C4.54277 6.49197 4.43835 6.18752 4.34846 5.89178C4.64952 5.82175 4.96539 5.75996 5.29402 5.70736C5.18373 5.8848 5.07526 6.06576 4.96889 6.25C4.86253 6.43423 4.76005 6.61864 4.66152 6.80287ZM9.25 8C9.25 8.69036 8.69036 9.25 8 9.25C7.30964 9.25 6.75 8.69036 6.75 8C6.75 7.30965 7.30964 6.75 8 6.75C8.69036 6.75 9.25 7.30965 9.25 8Z\",fill:\"currentColor\"})}),n[0]=e):e=n[0],n[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsxs)(\"svg\",{height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:[e,(0,b.jsx)(\"defs\",{children:(0,b.jsx)(\"clipPath\",{id:\"file_react_clip0_872_3183\",children:(0,b.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\"})})})]}),n[1]=t):t=n[1],t}var eZ=__nested_webpack_require_378213__(\"./dist/compiled/anser/index.js\"),eU=__nested_webpack_require_378213__.n(eZ),eF=__nested_webpack_require_378213__(\"./dist/compiled/strip-ansi/index.js\"),eq=__nested_webpack_require_378213__.n(eF);function eH(e){var t=e.split(/\\r?\\n/g),n=t.map(function(e){return null===/^>? +\\d+ +\\| [ ]+/.exec(eq()(e))?null:/^>? +\\d+ +\\| ( *)/.exec(eq()(e))}).filter(Boolean).map(function(e){return e.pop()}).reduce(function(e,t){return isNaN(e)?t.length:Math.min(e,t.length)},NaN);return n>1?t.map(function(e,t){return~(t=e.indexOf(\"|\"))?e.substring(0,t)+e.substring(t).replace(\"^\\\\ {\".concat(n,\"}\"),\"\"):e}).join(\"\\n\"):t.join(\"\\n\")}function eV(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function e$(e){var t,n,r,o=e.stackFrame,a=e.codeFrame,i=(0,x.useMemo)(function(){return(function(e){var t=eU().ansiToJson(e,{json:!0,use_classes:!0,remove_empty:!0}),n=[],r=[],o=!0,a=!1,i=void 0;try{for(var l,s=t[Symbol.iterator]();!(o=(l=s.next()).done);o=!0){var c=l.value;if(\"string\"==typeof c.content&&c.content.includes(\"\\n\"))for(var u=c.content.split(\"\\n\"),d=0;d<u.length;d++){var f=u[d];f&&r.push(function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},c),{content:f})),d<u.length-1&&(n.push(r),r=[])}else r.push(c)}}catch(e){a=!0,i=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}return r.length>0&&n.push(r),n})(eH(a)).map(function(e){var t,n,r,a,i,l,s,c,u;return{line:e,parsedLine:(t=e,n=o,((null==(r=t[0])?void 0:r.content)===\">\"||(null==(a=t[0])?void 0:a.content)===\" \")&&(s=null==(l=t[1])||null==(u=l.content)||null==(c=u.replace(\"|\",\"\"))?void 0:c.trim()),{lineNumber:s,isErroredLine:s===(null==(i=n.line1)?void 0:i.toString())})}})},[a,o]),l=eS({file:o.file,line1:null!=(n=o.line1)?n:1,column1:null!=(r=o.column1)?r:1}),s=null==o||null==(t=o.file)?void 0:t.split(\".\").pop();return(0,b.jsxs)(\"div\",{\"data-nextjs-codeframe\":!0,children:[(0,b.jsx)(\"div\",{className:\"code-frame-header\",children:(0,b.jsxs)(\"p\",{className:\"code-frame-link\",children:[(0,b.jsx)(\"span\",{className:\"code-frame-icon\",children:(0,b.jsx)(eT,{lang:s})}),(0,b.jsxs)(\"span\",{\"data-text\":!0,children:[ej(o),\" @\",\" \",(0,b.jsx)(ev,{text:o.methodName})]}),(0,b.jsx)(\"button\",{\"aria-label\":\"Open in editor\",\"data-with-open-in-editor-link-source-file\":!0,onClick:l,children:(0,b.jsx)(\"span\",{className:\"code-frame-icon\",\"data-icon\":\"right\",children:(0,b.jsx)(eI,{width:16,height:16})})})]})}),(0,b.jsx)(\"pre\",{className:\"code-frame-pre\",children:(0,b.jsx)(\"div\",{className:\"code-frame-lines\",children:i.map(function(e,t){var n,r,o=e.line,a=e.parsedLine,i=a.lineNumber,l=a.isErroredLine,s={};return i&&(s[\"data-nextjs-codeframe-line\"]=i),l&&(s[\"data-nextjs-codeframe-line--errored\"]=!0),(0,b.jsx)(\"div\",(n=eV({},s),r=r={children:o.map(function(e,t){return(0,b.jsx)(\"span\",{style:eV({color:e.fg?\"var(--color-\".concat(e.fg,\")\"):void 0},\"bold\"===e.decoration?{fontWeight:500}:\"italic\"===e.decoration?{fontStyle:\"italic\"}:void 0),children:e.content},\"frame-\".concat(t))})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n),\"line-\".concat(t))})})})]})}var eW=function(e){var t,n,r,o,a,i,l=(0,A.c)(8);return(l[0]!==e?(a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"className\"]),r=e.children,o=e.className,l[0]=e,l[1]=r,l[2]=o,l[3]=a):(r=l[1],o=l[2],a=l[3]),l[4]!==r||l[5]!==o||l[6]!==a)?(i=(0,b.jsx)(\"div\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-body\":!0,className:o},a),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),l[4]=r,l[5]=o,l[6]=a,l[7]=i):i=l[7],i},eY=function(e){var t,n,r,o,a,i,l=(0,A.c)(8);return(l[0]!==e?(a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"className\"]),r=e.children,o=e.className,l[0]=e,l[1]=r,l[2]=o,l[3]=a):(r=l[1],o=l[2],a=l[3]),l[4]!==r||l[5]!==o||l[6]!==a)?(i=(0,b.jsx)(\"div\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-content\":!0,className:o},a),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),l[4]=r,l[5]=o,l[6]=a,l[7]=i):i=l[7],i};function eK(){var e,t,n=(e=[\"\\n [data-nextjs-dialog-root] {\\n --next-dialog-radius: var(--rounded-xl);\\n --next-dialog-max-width: 960px;\\n --next-dialog-row-padding: 16px;\\n --next-dialog-padding: 12px;\\n --next-dialog-notch-height: 42px;\\n --next-dialog-border-width: 1px;\\n\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n max-height: calc(100% - 56px);\\n max-width: var(--next-dialog-max-width);\\n margin-right: auto;\\n margin-left: auto;\\n scale: 0.97;\\n opacity: 0;\\n transition-property: scale, opacity;\\n transition-duration: var(--transition-duration);\\n transition-timing-function: var(--timing-overlay);\\n\\n &[data-rendered='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n [data-nextjs-scroll-fader][data-side='top'] {\\n left: 1px;\\n top: calc(\\n var(--next-dialog-notch-height) + var(--next-dialog-border-width)\\n );\\n width: calc(100% - var(--next-dialog-padding));\\n opacity: 0;\\n }\\n }\\n\\n [data-nextjs-dialog] {\\n outline: 0;\\n }\\n\\n [data-nextjs-dialog-backdrop] {\\n opacity: 0;\\n transition: opacity var(--transition-duration) var(--timing-overlay);\\n }\\n\\n [data-nextjs-dialog-overlay] {\\n margin: 8px;\\n }\\n\\n [data-nextjs-dialog-overlay][data-rendered='true']\\n [data-nextjs-dialog-backdrop] {\\n opacity: 1;\\n }\\n\\n [data-nextjs-dialog-content] {\\n border: none;\\n margin: 0;\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n padding: var(--next-dialog-padding);\\n }\\n\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: 8px;\\n }\\n\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\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-root] {\\n --next-dialog-max-width: 540px;\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 960px;\\n }\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return eK=function(){return n},n}var eX=es(eK());function eG(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter(Boolean).join(\" \")}function eQ(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function eJ(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function e0(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function e1(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return eQ(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return eQ(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function e2(e,t){return\"reset\"===t.type?{state:\"initial\"}:\"copied\"===t.type?{state:\"success\"}:\"copying\"===t.type?{state:\"pending\"}:\"error\"===t.type?{state:\"error\",error:t.error}:e}function e4(e){return{state:\"error\",error:e}}function e5(){return{state:\"success\"}}var e3=\"function\"==typeof x.useActionState?function(e){var t,n,r,o,a,i=(0,A.c)(8);i[0]!==e?(t=function(t,n){return\"reset\"===n?{state:\"initial\"}:\"copy\"===n?navigator.clipboard?navigator.clipboard.writeText(e).then(e5,e4):{state:\"error\",error:\"Copy to clipboard is not supported in this browser\"}:t},i[0]=e,i[1]=t):t=i[1],i[2]===Symbol.for(\"react.memo_cache_sentinel\")?(n={state:\"initial\"},i[2]=n):n=i[2];var l=e1(x.useActionState(t,n),3),s=l[0],c=l[1],u=l[2];i[3]===Symbol.for(\"react.memo_cache_sentinel\")?(r=function(){x.startTransition(function(){c(\"copy\")})},i[3]=r):r=i[3];var d=r;i[4]===Symbol.for(\"react.memo_cache_sentinel\")?(o=function(){c(\"reset\")},i[4]=o):o=i[4];var f=o;return i[5]!==s||i[6]!==u?(a=[s,d,f,u],i[5]=s,i[6]=u,i[7]=a):a=i[7],a}:function(e){var t,n,r,o,a,i,l=(0,A.c)(12);l[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={state:\"initial\"},l[0]=t):t=l[0];var s=e1(x.useReducer(e2,t),2),c=s[0],u=s[1];return l[1]!==e||l[2]!==c.state?(n=function(){r||(navigator.clipboard?(u({type:\"copying\"}),navigator.clipboard.writeText(e).then(function(){u({type:\"copied\"})},function(e){u({type:\"error\",error:e})})):u({type:\"error\",error:\"Copy to clipboard is not supported in this browser\"}))},l[6]===Symbol.for(\"react.memo_cache_sentinel\")?(a=function(){u({type:\"reset\"})},l[6]=a):a=l[6],o=a,r=\"pending\"===c.state,l[1]=e,l[2]=c.state,l[3]=n,l[4]=r,l[5]=o):(n=l[3],r=l[4],o=l[5]),l[7]!==n||l[8]!==c||l[9]!==r||l[10]!==o?(i=[c,n,o,r],l[7]=n,l[8]=c,l[9]=r,l[10]=o,l[11]=i):i=l[11],i};function e6(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v=(0,A.c)(40);v[0]!==e?(i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"content\",\"getContent\",\"actionLabel\",\"successLabel\",\"icon\",\"disabled\"]),n=e.content,o=e.getContent,t=e.actionLabel,l=e.successLabel,a=e.icon,r=e.disabled,v[0]=e,v[1]=t,v[2]=n,v[3]=r,v[4]=o,v[5]=a,v[6]=i,v[7]=l):(t=v[1],n=v[2],r=v[3],o=v[4],a=v[5],i=v[6],l=v[7]),v[8]!==n||v[9]!==o?(s=function(){return n||(o?o():\"\")},v[8]=n,v[9]=o,v[10]=s):s=v[10];var w=s;v[11]!==w?(c=w(),v[11]=w,v[12]=c):c=v[12];var C=e1(e3(c),4),_=C[0],k=C[1],E=C[2],j=C[3],S=\"error\"===_.state?_.error:null;v[13]!==S?(u=function(){null!==S&&console.warn(S)},d=[S],v[13]=S,v[14]=u,v[15]=d):(u=v[14],d=v[15]),x.useEffect(u,d),v[16]!==_.state||v[17]!==E?(f=function(){if(\"success\"===_.state){var e=setTimeout(function(){E()},2e3);return function(){clearTimeout(e)}}},v[16]=_.state,v[17]=E,v[18]=f):f=v[18],v[19]!==_.state||v[20]!==j||v[21]!==E?(p=[j,_.state,E],v[19]=_.state,v[20]=j,v[21]=E,v[22]=p):p=v[22],x.useEffect(f,p);var O=!navigator.clipboard||j||r||!!S,B=\"success\"===_.state?l:t;v[23]!==_.state||v[24]!==a?(h=\"success\"===_.state?(0,b.jsx)(e8,{}):a||(0,b.jsx)(e9,{width:14,height:14,className:\"error-overlay-toolbar-button-icon\"}),v[23]=_.state,v[24]=a,v[25]=h):h=v[25];var P=h,I=\"nextjs-data-copy-button--\".concat(_.state);v[26]!==e.className||v[27]!==I?(m=eG(e.className,\"nextjs-data-copy-button\",I),v[26]=e.className,v[27]=I,v[28]=m):m=v[28],v[29]!==k||v[30]!==O?(g=function(){O||k()},v[29]=k,v[30]=O,v[31]=g):g=v[31];var z=\"error\"===_.state?\" \".concat(_.error):null;return v[32]!==O||v[33]!==B||v[34]!==P||v[35]!==i||v[36]!==z||v[37]!==m||v[38]!==g?(y=(0,b.jsxs)(\"button\",e0(eJ({},i),{type:\"button\",title:B,\"aria-label\":B,\"aria-disabled\":O,disabled:O,\"data-nextjs-copy-button\":!0,className:m,onClick:g,children:[P,z]})),v[32]=O,v[33]=B,v[34]=P,v[35]=i,v[36]=z,v[37]=m,v[38]=g,v[39]=y):y=v[39],y}function e9(e){var t,n,r=(0,A.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M2.406.438c-.845 0-1.531.685-1.531 1.53v6.563c0 .846.686 1.531 1.531 1.531H3.937V8.75H2.406a.219.219 0 0 1-.219-.219V1.97c0-.121.098-.219.22-.219h4.812c.12 0 .218.098.218.219v.656H8.75v-.656c0-.846-.686-1.532-1.531-1.532H2.406zm4.375 3.5c-.845 0-1.531.685-1.531 1.53v6.563c0 .846.686 1.531 1.531 1.531h4.813c.845 0 1.531-.685 1.531-1.53V5.468c0-.846-.686-1.532-1.531-1.532H6.78zm-.218 1.53c0-.12.097-.218.218-.218h4.813c.12 0 .219.098.219.219v6.562c0 .121-.098.219-.22.219H6.782a.219.219 0 0 1-.218-.219V5.47z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==e?(n=(0,b.jsx)(\"svg\",e0(eJ({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}function e8(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{height:\"16\",xlinkTitle:\"copied\",viewBox:\"0 0 16 16\",width:\"16\",stroke:\"currentColor\",fill:\"currentColor\",children:(0,b.jsx)(\"path\",{d:\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"})}),t[0]=e):e=t[0],e}function e7(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function te(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var tt=function(){if(\"undefined\"==typeof window)return!1;var e=\"chrome\"in window&&window.chrome,t=window.navigator.vendor;return null!=e&&\"Google Inc.\"===t}();function tn(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h=(0,A.c)(14);return h[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={maskType:\"luminance\"},h[0]=t):t=h[0],h[1]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,b.jsx)(\"mask\",{id:\"nodejs_icon_mask_a\",style:t,maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"0\",width:\"14\",height:\"14\",children:(0,b.jsx)(\"path\",{d:\"M6.67.089 1.205 3.256a.663.663 0 0 0-.33.573v6.339c0 .237.126.455.33.574l5.466 3.17a.66.66 0 0 0 .66 0l5.465-3.17a.664.664 0 0 0 .329-.574V3.829a.663.663 0 0 0-.33-.573L7.33.089a.663.663 0 0 0-.661 0\",fill:\"#fff\"})}),h[1]=n):n=h[1],h[2]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_a)\",children:(0,b.jsx)(\"path\",{d:\"M18.648 2.717 3.248-4.86-4.648 11.31l15.4 7.58 7.896-16.174z\",fill:\"url(#nodejs_icon_linear_gradient_b)\"})}),h[2]=r):r=h[2],h[3]===Symbol.for(\"react.memo_cache_sentinel\")?(o={maskType:\"luminance\"},h[3]=o):o=h[3],h[4]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,b.jsx)(\"mask\",{id:\"nodejs_icon_mask_c\",style:o,maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"12\",height:\"14\",children:(0,b.jsx)(\"path\",{d:\"M1.01 10.57a.663.663 0 0 0 .195.17l4.688 2.72.781.45a.66.66 0 0 0 .51.063l5.764-10.597a.653.653 0 0 0-.153-.122L9.216 1.18 7.325.087a.688.688 0 0 0-.171-.07L1.01 10.57z\",fill:\"#fff\"})}),h[4]=a):a=h[4],h[5]===Symbol.for(\"react.memo_cache_sentinel\")?(i=(0,b.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_c)\",children:(0,b.jsx)(\"path\",{d:\"M-5.647 4.958 5.226 19.734l14.38-10.667L8.734-5.71-5.647 4.958z\",fill:\"url(#nodejs_icon_linear_gradient_d)\"})}),h[5]=i):i=h[5],h[6]===Symbol.for(\"react.memo_cache_sentinel\")?(l={maskType:\"luminance\"},h[6]=l):l=h[6],h[7]===Symbol.for(\"react.memo_cache_sentinel\")?(s=(0,b.jsx)(\"mask\",{id:\"nodejs_icon_mask_e\",style:l,maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"13\",height:\"14\",children:(0,b.jsx)(\"path\",{d:\"M6.934.004A.665.665 0 0 0 6.67.09L1.22 3.247l5.877 10.746a.655.655 0 0 0 .235-.08l5.465-3.17a.665.665 0 0 0 .319-.453L7.126.015a.684.684 0 0 0-.189-.01\",fill:\"#fff\"})}),h[7]=s):s=h[7],h[8]===Symbol.for(\"react.memo_cache_sentinel\")?(c=(0,b.jsxs)(\"g\",{children:[s,(0,b.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_e)\",children:(0,b.jsx)(\"path\",{d:\"M1.22.002v13.992h11.894V.002H1.22z\",fill:\"url(#nodejs_icon_linear_gradient_f)\"})})]}),h[8]=c):c=h[8],h[9]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,b.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_b\",x1:\"10.943\",y1:\"-1.084\",x2:\"2.997\",y2:\"15.062\",gradientUnits:\"userSpaceOnUse\",children:[(0,b.jsx)(\"stop\",{offset:\".3\",stopColor:\"#3E863D\"}),(0,b.jsx)(\"stop\",{offset:\".5\",stopColor:\"#55934F\"}),(0,b.jsx)(\"stop\",{offset:\".8\",stopColor:\"#5AAD45\"})]}),h[9]=u):u=h[9],h[10]===Symbol.for(\"react.memo_cache_sentinel\")?(d=(0,b.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_d\",x1:\"-.145\",y1:\"12.431\",x2:\"14.277\",y2:\"1.818\",gradientUnits:\"userSpaceOnUse\",children:[(0,b.jsx)(\"stop\",{offset:\".57\",stopColor:\"#3E863D\"}),(0,b.jsx)(\"stop\",{offset:\".72\",stopColor:\"#619857\"}),(0,b.jsx)(\"stop\",{offset:\"1\",stopColor:\"#76AC64\"})]}),h[10]=d):d=h[10],h[11]===Symbol.for(\"react.memo_cache_sentinel\")?(f=(0,b.jsxs)(\"defs\",{children:[u,d,(0,b.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_f\",x1:\"1.225\",y1:\"6.998\",x2:\"13.116\",y2:\"6.998\",gradientUnits:\"userSpaceOnUse\",children:[(0,b.jsx)(\"stop\",{offset:\".16\",stopColor:\"#6BBF47\"}),(0,b.jsx)(\"stop\",{offset:\".38\",stopColor:\"#79B461\"}),(0,b.jsx)(\"stop\",{offset:\".47\",stopColor:\"#75AC64\"}),(0,b.jsx)(\"stop\",{offset:\".7\",stopColor:\"#659E5A\"}),(0,b.jsx)(\"stop\",{offset:\".9\",stopColor:\"#3E863D\"})]})]}),h[11]=f):f=h[11],h[12]!==e?(p=(0,b.jsxs)(\"svg\",te(e7({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[n,r,a,i,c,f]})),h[12]=e,h[13]=p):p=h[13],p}function tr(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h=(0,A.c)(14);return h[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={maskType:\"luminance\"},h[0]=t):t=h[0],h[1]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,b.jsx)(\"mask\",{id:\"nodejs_icon_mask_a\",style:t,maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"0\",width:\"14\",height:\"14\",children:(0,b.jsx)(\"path\",{d:\"M6.67.089 1.205 3.256a.663.663 0 0 0-.33.573v6.339c0 .237.126.455.33.574l5.466 3.17a.66.66 0 0 0 .66 0l5.465-3.17a.664.664 0 0 0 .329-.574V3.829a.663.663 0 0 0-.33-.573L7.33.089a.663.663 0 0 0-.661 0\",fill:\"#fff\"})}),h[1]=n):n=h[1],h[2]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_a)\",children:(0,b.jsx)(\"path\",{d:\"M18.648 2.717 3.248-4.86-4.646 11.31l15.399 7.58 7.896-16.174z\",fill:\"url(#nodejs_icon_linear_gradient_b)\"})}),h[2]=r):r=h[2],h[3]===Symbol.for(\"react.memo_cache_sentinel\")?(o={maskType:\"luminance\"},h[3]=o):o=h[3],h[4]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,b.jsx)(\"mask\",{id:\"nodejs_icon_mask_c\",style:o,maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"12\",height:\"15\",children:(0,b.jsx)(\"path\",{d:\"M1.01 10.571a.66.66 0 0 0 .195.172l4.688 2.718.781.451a.66.66 0 0 0 .51.063l5.764-10.597a.653.653 0 0 0-.153-.122L9.216 1.181 7.325.09a.688.688 0 0 0-.171-.07L1.01 10.572z\",fill:\"#fff\"})}),h[4]=a):a=h[4],h[5]===Symbol.for(\"react.memo_cache_sentinel\")?(i=(0,b.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_c)\",children:(0,b.jsx)(\"path\",{d:\"M-5.647 4.96 5.226 19.736 19.606 9.07 8.734-5.707-5.647 4.96z\",fill:\"url(#nodejs_icon_linear_gradient_d)\"})}),h[5]=i):i=h[5],h[6]===Symbol.for(\"react.memo_cache_sentinel\")?(l={maskType:\"luminance\"},h[6]=l):l=h[6],h[7]===Symbol.for(\"react.memo_cache_sentinel\")?(s=(0,b.jsx)(\"mask\",{id:\"nodejs_icon_mask_e\",style:l,maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"13\",height:\"14\",children:(0,b.jsx)(\"path\",{d:\"M6.935.003a.665.665 0 0 0-.264.085l-5.45 3.158 5.877 10.747a.653.653 0 0 0 .235-.082l5.465-3.17a.665.665 0 0 0 .319-.452L7.127.014a.684.684 0 0 0-.189-.01\",fill:\"#fff\"})}),h[7]=s):s=h[7],h[8]===Symbol.for(\"react.memo_cache_sentinel\")?(c=(0,b.jsxs)(\"g\",{children:[s,(0,b.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_e)\",children:(0,b.jsx)(\"path\",{d:\"M1.222.001v13.992h11.893V0H1.222z\",fill:\"url(#nodejs_icon_linear_gradient_f)\"})})]}),h[8]=c):c=h[8],h[9]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,b.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_b\",x1:\"10.944\",y1:\"-1.084\",x2:\"2.997\",y2:\"15.062\",gradientUnits:\"userSpaceOnUse\",children:[(0,b.jsx)(\"stop\",{offset:\".3\",stopColor:\"#676767\"}),(0,b.jsx)(\"stop\",{offset:\".5\",stopColor:\"#858585\"}),(0,b.jsx)(\"stop\",{offset:\".8\",stopColor:\"#989A98\"})]}),h[9]=u):u=h[9],h[10]===Symbol.for(\"react.memo_cache_sentinel\")?(d=(0,b.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_d\",x1:\"-.145\",y1:\"12.433\",x2:\"14.277\",y2:\"1.819\",gradientUnits:\"userSpaceOnUse\",children:[(0,b.jsx)(\"stop\",{offset:\".57\",stopColor:\"#747474\"}),(0,b.jsx)(\"stop\",{offset:\".72\",stopColor:\"#707070\"}),(0,b.jsx)(\"stop\",{offset:\"1\",stopColor:\"#929292\"})]}),h[10]=d):d=h[10],h[11]===Symbol.for(\"react.memo_cache_sentinel\")?(f=(0,b.jsxs)(\"defs\",{children:[u,d,(0,b.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_f\",x1:\"1.226\",y1:\"6.997\",x2:\"13.117\",y2:\"6.997\",gradientUnits:\"userSpaceOnUse\",children:[(0,b.jsx)(\"stop\",{offset:\".16\",stopColor:\"#878787\"}),(0,b.jsx)(\"stop\",{offset:\".38\",stopColor:\"#A9A9A9\"}),(0,b.jsx)(\"stop\",{offset:\".47\",stopColor:\"#A5A5A5\"}),(0,b.jsx)(\"stop\",{offset:\".7\",stopColor:\"#8F8F8F\"}),(0,b.jsx)(\"stop\",{offset:\".9\",stopColor:\"#626262\"})]})]}),h[11]=f):f=h[11],h[12]!==e?(p=(0,b.jsxs)(\"svg\",te(e7({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[n,r,a,i,c,f]})),h[12]=e,h[13]=p):p=h[13],p}var to=\"Learn more about enabling Node.js inspector for server code with Chrome DevTools\";function ta(e){var t,n,r,o=(0,A.c)(4),a=e.devtoolsFrontendUrl||\"\";return a&&tt?(o[1]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,b.jsx)(tn,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14}),o[1]=n):n=o[1],o[2]!==a?(r=(0,b.jsx)(e6,{\"data-nextjs-data-runtime-error-copy-devtools-url\":!0,className:\"nodejs-inspector-button\",actionLabel:\"Copy Chrome DevTools URL\",successLabel:\"Copied\",content:a,icon:n}),o[2]=a,o[3]=r):r=o[3],r):(o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"a\",{title:to,\"aria-label\":to,className:\"nodejs-inspector-button\",href:\"https://nextjs.org/docs/app/building-your-application/configuring/debugging#server-side-code\",target:\"_blank\",rel:\"noopener noreferrer\",children:(0,b.jsx)(tr,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})}),o[0]=t):t=o[0],t)}function ti(e){var t,n=(0,A.c)(3),r=e.error,o=e.generateErrorInfo,a=!r;return n[0]!==o||n[1]!==a?(t=(0,b.jsx)(e6,{\"data-nextjs-data-runtime-error-copy-stack\":!0,className:\"copy-error-button\",actionLabel:\"Copy Error Info\",successLabel:\"Error Info Copied\",getContent:o,disabled:a}),n[0]=o,n[1]=a,n[2]=t):t=n[2],t}function tl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ts(e){if(Array.isArray(e))return e}function tc(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function tu(e,t){return ts(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||tf(e,t)||tc()}function td(e){return ts(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||tf(e)||tc()}function tf(e,t){if(e){if(\"string\"==typeof e)return tl(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tl(e,t)}}var tp=\"https://react.dev/link/hydration-mismatch\",th=\"https://nextjs.org/docs/messages/react-hydration-error\",tm=[/^In HTML, (.+?) cannot be a child of <(.+?)>\\.(.*)\\nThis will cause a hydration error\\.(.*)/,/^In HTML, (.+?) cannot be a descendant of <(.+?)>\\.\\nThis will cause a hydration error\\.(.*)/,/^In HTML, text nodes cannot be a child of <(.+?)>\\.\\nThis will cause a hydration error\\./,/^In HTML, whitespace text nodes cannot be a child of <(.+?)>\\. Make sure you don't have any extra whitespace between tags on each line of your source code\\.\\nThis will cause a hydration error\\./];function tg(e){return tm.some(function(t){return t.test(e)})}var ty=[\"https://nextjs.org\",\"https://react.dev\"];function tv(e){return ty.some(function(t){return e.startsWith(t)})}function tb(e){var t,n,r,o,a=(0,A.c)(6),i=e.errorMessage;a[0]!==i?(t=function(e){var t,n,r,o=(t=e,n=tv,r=Array.from(t.matchAll(/https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/gi),function(e){return e[0]}),n?r.filter(function(e){return n(e)}):r);if(0===o.length)return null;var a=o[0];return a===tp?th:a}(i),a[0]=i,a[1]=t):t=a[1];var l=t;return l?(a[3]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(tA,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14}),a[3]=r):r=a[3],a[4]!==l?(o=(0,b.jsx)(\"a\",{title:\"Go to related documentation\",\"aria-label\":\"Go to related documentation\",className:\"docs-link-button\",href:l,target:\"_blank\",rel:\"noopener noreferrer\",children:r}),a[4]=l,a[5]=o):o=a[5],o):(a[2]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,b.jsx)(\"button\",{title:\"No related documentation found\",\"aria-label\":\"No related documentation found\",className:\"docs-link-button\",disabled:!0,children:(0,b.jsx)(tA,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})}),a[2]=n):n=a[2],n)}function tA(e){var t,n,r,o,a=(0,A.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M0 .875h4.375C5.448.875 6.401 1.39 7 2.187A3.276 3.276 0 0 1 9.625.875H14v11.156H9.4c-.522 0-1.023.208-1.392.577l-.544.543h-.928l-.544-.543c-.369-.37-.87-.577-1.392-.577H0V.875zm6.344 3.281a1.969 1.969 0 0 0-1.969-1.968H1.312v8.53H4.6c.622 0 1.225.177 1.744.502V4.156zm1.312 7.064V4.156c0-1.087.882-1.968 1.969-1.968h3.063v8.53H9.4c-.622 0-1.225.177-1.744.502z\",fill:\"currentColor\"}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,b.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}function tx(e){var t,n,r,o,a=(0,A.c)(12),i=e.error,l=e.debugInfo,s=e.feedbackButton,c=e.generateErrorInfo;a[0]!==i||a[1]!==c?(t=(0,b.jsx)(ti,{error:i,generateErrorInfo:c}),a[0]=i,a[1]=c,a[2]=t):t=a[2],a[3]!==i.message?(n=(0,b.jsx)(tb,{errorMessage:i.message}),a[3]=i.message,a[4]=n):n=a[4];var u=null==l?void 0:l.devtoolsFrontendUrl;return a[5]!==u?(r=(0,b.jsx)(ta,{devtoolsFrontendUrl:u}),a[5]=u,a[6]=r):r=a[6],a[7]!==s||a[8]!==t||a[9]!==n||a[10]!==r?(o=(0,b.jsxs)(\"span\",{className:\"error-overlay-toolbar\",children:[s,t,n,r]}),a[7]=s,a[8]=t,a[9]=n,a[10]=r,a[11]=o):o=a[11],o}function tw(e){var t,n,r,o,a=(0,A.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(\"g\",{id:\"thumb-up-16\",children:(0,b.jsx)(\"path\",{id:\"Union\",fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M6.89531 2.23959C6.72984 2.1214 6.5 2.23968 6.5 2.44303V5.24989C6.5 6.21639 5.7165 6.99989 4.75 6.99989H2.5V13.4999H12.1884C12.762 13.4999 13.262 13.1095 13.4011 12.5531L14.4011 8.55306C14.5984 7.76412 14.0017 6.99989 13.1884 6.99989H9.25H8.5V6.24989V3.51446C8.5 3.43372 8.46101 3.35795 8.39531 3.31102L6.89531 2.23959ZM5 2.44303C5 1.01963 6.6089 0.191656 7.76717 1.01899L9.26717 2.09042C9.72706 2.41892 10 2.94929 10 3.51446V5.49989H13.1884C14.9775 5.49989 16.2903 7.18121 15.8563 8.91686L14.8563 12.9169C14.5503 14.1411 13.4503 14.9999 12.1884 14.9999H1.75H1V14.2499V6.24989V5.49989H1.75H4.75C4.88807 5.49989 5 5.38796 5 5.24989V2.44303Z\",fill:\"currentColor\"})}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,b.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"thumbs-up-icon\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}function tC(e){var t,n,r,o,a=(0,A.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M5.89531 12.7603C5.72984 12.8785 5.5 12.7602 5.5 12.5569V9.75C5.5 8.7835 4.7165 8 3.75 8H1.5V1.5H11.1884C11.762 1.5 12.262 1.89037 12.4011 2.44683L13.4011 6.44683C13.5984 7.23576 13.0017 8 12.1884 8H8.25H7.5V8.75V11.4854C7.5 11.5662 7.46101 11.6419 7.39531 11.6889L5.89531 12.7603ZM4 12.5569C4 13.9803 5.6089 14.8082 6.76717 13.9809L8.26717 12.9095C8.72706 12.581 9 12.0506 9 11.4854V9.5H12.1884C13.9775 9.5 15.2903 7.81868 14.8563 6.08303L13.8563 2.08303C13.5503 0.858816 12.4503 0 11.1884 0H0.75H0V0.75V8.75V9.5H0.75H3.75C3.88807 9.5 4 9.61193 4 9.75V12.5569Z\",fill:\"currentColor\"}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,b.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"thumbs-down-icon\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}function t_(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function tk(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function tE(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function tj(e){var t,n,r=e.errorCode,o=e.className,a=(t=(0,x.useState)({}),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return t_(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t_(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),i=a[0],l=a[1],s=i[r],c=false,u=(0,x.useCallback)(function(e){var t;return(t=function(){return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(n)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:l(function(t){var n,o;return n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){tE(e,t,n[t])})}return e}({},t),o=null!=(o=tE({},r,e))?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))}),n}),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,fetch(\"\".concat( false||\"\",\"/__nextjs_error_feedback?\").concat(new URLSearchParams({errorCode:r,wasHelpful:e.toString()})))];case 2:return t.sent().ok||console.error(\"Failed to record feedback on the server.\"),[3,4];case 3:return console.error(\"Failed to record feedback:\",t.sent()),[3,4];case 4:return[2]}})},function(){var e=this,n=arguments;return new Promise(function(r,o){var a=t.apply(e,n);function i(e){tk(a,r,o,i,l,\"next\",e)}function l(e){tk(a,r,o,i,l,\"throw\",e)}i(void 0)})})()},[r]);return(0,b.jsx)(\"div\",{className:eG(\"error-feedback\",o),role:\"region\",\"aria-label\":\"Error feedback\",children:void 0!==s?(0,b.jsx)(\"p\",{className:\"error-feedback-thanks\",role:\"status\",\"aria-live\":\"polite\",children:\"Thanks for your feedback!\"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(\"p\",{children:(0,b.jsx)(\"a\",{href:\"https://nextjs.org/telemetry#error-feedback\",rel:\"noopener noreferrer\",target:\"_blank\",children:\"Was this helpful?\"})}),(0,b.jsx)(\"button\",{\"aria-disabled\":c?\"true\":void 0,\"aria-label\":\"Mark as helpful\",onClick:c?void 0:function(){return u(!0)},className:eG(\"feedback-button\",!0===s&&\"voted\"),title:c?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,b.jsx)(tw,{\"aria-hidden\":\"true\"})}),(0,b.jsx)(\"button\",{\"aria-disabled\":c?\"true\":void 0,\"aria-label\":\"Mark as not helpful\",onClick:c?void 0:function(){return u(!1)},className:eG(\"feedback-button\",!1===s&&\"voted\"),title:c?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,b.jsx)(tC,{\"aria-hidden\":\"true\",style:{translate:\"1px 1px\"}})})]})})}function tS(e){var t,n,r=(0,A.c)(4),o=e.errorCode;return r[0]!==o?(t=o?(0,b.jsx)(tj,{className:\"error-feedback\",errorCode:o}):null,r[0]=o,r[1]=t):t=r[1],r[2]!==t?(n=(0,b.jsx)(\"footer\",{\"data-nextjs-error-overlay-footer\":!0,className:\"error-overlay-footer\",children:t}),r[2]=t,r[3]=n):n=r[3],n}var tO=\"\\n .error-overlay-footer {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n\\n gap: 8px;\\n padding: 12px;\\n background: var(--color-background-200);\\n border-top: 1px solid var(--color-gray-400);\\n }\\n\\n .error-feedback {\\n margin-left: auto;\\n\\n p {\\n font-size: var(--size-14);\\n font-weight: 500;\\n margin: 0;\\n }\\n }\\n\\n \".concat(\"\\n .error-feedback {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n white-space: nowrap;\\n color: var(--color-gray-900);\\n }\\n\\n .error-feedback-thanks {\\n height: var(--size-24);\\n display: flex;\\n align-items: center;\\n padding-right: 4px; /* To match the 4px inner padding of the thumbs up and down icons */\\n }\\n\\n .feedback-button {\\n background: none;\\n border: none;\\n border-radius: var(--rounded-md);\\n width: var(--size-24);\\n height: var(--size-24);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n &:hover {\\n background: var(--color-gray-alpha-100);\\n }\\n\\n &:active {\\n background: var(--color-gray-alpha-200);\\n }\\n }\\n\\n .feedback-button[aria-disabled='true'] {\\n opacity: 0.7;\\n cursor: not-allowed;\\n }\\n\\n .feedback-button.voted {\\n background: var(--color-gray-alpha-200);\\n }\\n\\n .thumbs-up-icon,\\n .thumbs-down-icon {\\n color: var(--color-gray-900);\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\",\"\\n\");function tB(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function tP(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return tB(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tB(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function tI(e){var t,n,r,o,a,i=(0,A.c)(12),l=e.errorMessage,s=tP((0,x.useState)(!1),2),c=s[0],u=s[1],d=tP((0,x.useState)(!1),2),f=d[0],p=d[1],h=(0,x.useRef)(null);i[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=function(){h.current&&p(h.current.scrollHeight>200)},i[0]=t):t=i[0],i[1]!==l?(n=[l],i[1]=l,i[2]=n):n=i[2],(0,x.useLayoutEffect)(t,n);var m=\"nextjs__container_errors_desc \".concat(f&&!c?\"truncated\":\"\");return i[3]!==l||i[4]!==m?(r=(0,b.jsx)(\"p\",{ref:h,id:\"nextjs__container_errors_desc\",className:m,children:l}),i[3]=l,i[4]=m,i[5]=r):r=i[5],i[6]!==c||i[7]!==f?(o=f&&!c&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(\"div\",{className:\"nextjs__container_errors_gradient_overlay\"}),(0,b.jsx)(\"button\",{onClick:function(){return u(!0)},className:\"nextjs__container_errors_expand_button\",\"aria-expanded\":c,\"aria-controls\":\"nextjs__container_errors_desc\",children:\"Show More\"})]}),i[6]=c,i[7]=f,i[8]=o):o=i[8],i[9]!==r||i[10]!==o?(a=(0,b.jsxs)(\"div\",{className:\"nextjs__container_errors_wrapper\",children:[r,o]}),i[9]=r,i[10]=o,i[11]=a):a=i[11],a}function tz(e){var t,n=(0,A.c)(2),r=e.errorType;return n[0]!==r?(t=(0,b.jsx)(\"span\",{id:\"nextjs__container_errors_label\",className:\"nextjs__container_errors_label\",children:r}),n[0]=r,n[1]=t):t=n[1],t}function tT(e){var t,n,r=(0,A.c)(4),o=e.title,a=e.className;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M9.24996 12.0608L8.71963 11.5304L5.89641 8.70722C5.50588 8.3167 5.50588 7.68353 5.89641 7.29301L8.71963 4.46978L9.24996 3.93945L10.3106 5.00011L9.78029 5.53044L7.31062 8.00011L9.78029 10.4698L10.3106 11.0001L9.24996 12.0608Z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==a||r[2]!==o?(n=(0,b.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",\"aria-label\":o,className:a,children:t}),r[1]=a,r[2]=o,r[3]=n):n=r[3],n}function tD(e){var t,n,r=(0,A.c)(4),o=e.title,a=e.className;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M6.75011 3.93945L7.28044 4.46978L10.1037 7.29301C10.4942 7.68353 10.4942 8.3167 10.1037 8.70722L7.28044 11.5304L6.75011 12.0608L5.68945 11.0001L6.21978 10.4698L8.68945 8.00011L6.21978 5.53044L5.68945 5.00011L6.75011 3.93945Z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==a||r[2]!==o?(n=(0,b.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:a,\"aria-label\":o,children:t}),r[1]=a,r[2]=o,r[3]=n):n=r[3],n}function tL(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function tN(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v=(0,A.c)(40),w=e.runtimeErrors,C=e.activeIdx,_=e.onActiveIndexChange;v[0]!==C||v[1]!==_?(r=function(){return(0,x.startTransition)(function(){C>0&&_(Math.max(0,C-1))})},v[0]=C,v[1]=_,v[2]=r):r=v[2];var k=r;v[3]!==C||v[4]!==_||v[5]!==w.length?(o=function(){return(0,x.startTransition)(function(){C<w.length-1&&_(Math.max(0,Math.min(w.length-1,C+1)))})},v[3]=C,v[4]=_,v[5]=w.length,v[6]=o):o=v[6];var E=o,j=(0,x.useRef)(null),S=(0,x.useRef)(null),O=(t=(0,x.useState)(null),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return tL(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tL(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),B=O[0],P=O[1];v[7]===Symbol.for(\"react.memo_cache_sentinel\")?(a=function(e){P(e)},v[7]=a):a=v[7];var I=a;v[8]!==E||v[9]!==k||v[10]!==B?(i=function(){if(null!=B){var e=B.getRootNode(),t=self.document,n=function(e){\"ArrowLeft\"===e.key?(e.preventDefault(),e.stopPropagation(),k&&k()):\"ArrowRight\"===e.key&&(e.preventDefault(),e.stopPropagation(),E&&E())};return e.addEventListener(\"keydown\",n),e!==t&&t.addEventListener(\"keydown\",n),function(){e.removeEventListener(\"keydown\",n),e!==t&&t.removeEventListener(\"keydown\",n)}}},l=[B,E,k],v[8]=E,v[9]=k,v[10]=B,v[11]=i,v[12]=l):(i=v[11],l=v[12]),(0,x.useEffect)(i,l),v[13]!==C||v[14]!==B||v[15]!==w.length?(s=function(){if(null!=B){var e,t,n=B.getRootNode();if(e=n,null!=(t=ShadowRoot)&&\"undefined\"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t){var r=n.activeElement;0===C?j.current&&r===j.current&&j.current.blur():C===w.length-1&&S.current&&r===S.current&&S.current.blur()}}},c=[B,C,w.length],v[13]=C,v[14]=B,v[15]=w.length,v[16]=s,v[17]=c):(s=v[16],c=v[17]),(0,x.useEffect)(s,c);var z=0===C,T=0===C;v[18]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,b.jsx)(tT,{title:\"previous\",className:\"error-overlay-pagination-button-icon\"}),v[18]=u):u=v[18],v[19]!==k||v[20]!==z||v[21]!==T?(d=(0,b.jsx)(\"button\",{ref:j,type:\"button\",disabled:z,\"aria-disabled\":T,onClick:k,\"data-nextjs-dialog-error-previous\":!0,className:\"error-overlay-pagination-button\",children:u}),v[19]=k,v[20]=z,v[21]=T,v[22]=d):d=v[22];var D=C+1;v[23]!==C||v[24]!==D?(f=(0,b.jsxs)(\"span\",{\"data-nextjs-dialog-error-index\":C,children:[D,\"/\"]}),v[23]=C,v[24]=D,v[25]=f):f=v[25];var L=w.length||1;v[26]!==L?(p=(0,b.jsx)(\"span\",{\"data-nextjs-dialog-header-total-count\":!0,children:L}),v[26]=L,v[27]=p):p=v[27],v[28]!==f||v[29]!==p?(h=(0,b.jsxs)(\"div\",{className:\"error-overlay-pagination-count\",children:[f,p]}),v[28]=f,v[29]=p,v[30]=h):h=v[30];var N=C>=w.length-1,R=C>=w.length-1;return v[31]===Symbol.for(\"react.memo_cache_sentinel\")?(m=(0,b.jsx)(tD,{title:\"next\",className:\"error-overlay-pagination-button-icon\"}),v[31]=m):m=v[31],v[32]!==E||v[33]!==N||v[34]!==R?(g=(0,b.jsx)(\"button\",{ref:S,type:\"button\",disabled:N,\"aria-disabled\":R,onClick:E,\"data-nextjs-dialog-error-next\":!0,className:\"error-overlay-pagination-button\",children:m}),v[32]=E,v[33]=N,v[34]=R,v[35]=g):g=v[35],v[36]!==d||v[37]!==h||v[38]!==g?(y=(0,b.jsxs)(\"nav\",{className:\"error-overlay-pagination dialog-exclude-closing-from-outside-click\",ref:I,children:[d,h,g]}),v[36]=d,v[37]=h,v[38]=g,v[39]=y):y=v[39],y}function tR(e){var t,n,r,o,a=(0,A.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(\"circle\",{cx:\"7\",cy:\"7\",r:\"5.5\",strokeWidth:\"3\"}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,b.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}function tM(e){var t,n,r,o,a,i=(0,A.c)(31),l=e.versionInfo,s=e.bundlerName,c=l.staleness;if(i[0]!==s||i[1]!==c||i[2]!==l){v=Symbol.for(\"react.early_return_sentinel\");n:{var u=function(e){var t=e.installed,n=e.staleness,r=e.expected,o=\"\",a=\"\",i=\"\",l=\"Next.js \".concat(t);switch(n){case\"newer-than-npm\":case\"fresh\":o=l,a=\"Latest available version is detected (\".concat(t,\").\"),i=\"fresh\";break;case\"stale-patch\":case\"stale-minor\":o=\"\".concat(l,\" (stale)\"),a=\"There is a newer version (\".concat(r,\") available, upgrade recommended! \"),i=\"stale\";break;case\"stale-major\":o=\"\".concat(l,\" (outdated)\"),a=\"An outdated version detected (latest is \".concat(r,\"), upgrade is highly recommended!\"),i=\"outdated\";break;case\"stale-prerelease\":o=\"\".concat(l,\" (stale)\"),a=\"There is a newer canary version (\".concat(r,\") available, please upgrade! \"),i=\"stale\";break;case\"unknown\":o=\"\".concat(l,\" (unknown)\"),a=\"No Next.js version data was found.\",i=\"unknown\"}return{text:o,indicatorClass:i,title:a}}(l),d=u.text,f=u.indicatorClass,p=u.title;if(x=d,w=p,m=\"Turbopack\"===s,c.startsWith(\"stale\")){var h,m,g,y,v,x,w,C,_,k=m&&\"turbopack-text\";i[10]!==k?(C=eG(k),i[10]=k,i[11]=C):C=i[11],i[12]!==s||i[13]!==C?(_=(0,b.jsx)(\"span\",{className:C,children:s}),i[12]=s,i[13]=C,i[14]=_):_=i[14],v=(0,b.jsxs)(\"a\",{className:\"nextjs-container-build-error-version-status dialog-exclude-closing-from-outside-click\",target:\"_blank\",rel:\"noopener noreferrer\",href:\"https://nextjs.org/docs/messages/version-staleness\",children:[(0,b.jsx)(tR,{className:eG(\"version-staleness-indicator\",f)}),(0,b.jsx)(\"span\",{\"data-nextjs-version-checker\":!0,title:w,children:x}),_]});break n}y=\"nextjs-container-build-error-version-status dialog-exclude-closing-from-outside-click\",h=tR,g=eG(\"version-staleness-indicator\",f)}i[0]=s,i[1]=c,i[2]=l,i[3]=h,i[4]=m,i[5]=g,i[6]=y,i[7]=v,i[8]=x,i[9]=w}else h=i[3],m=i[4],g=i[5],y=i[6],v=i[7],x=i[8],w=i[9];if(v!==Symbol.for(\"react.early_return_sentinel\"))return v;i[15]!==h||i[16]!==g?(t=(0,b.jsx)(h,{className:g}),i[15]=h,i[16]=g,i[17]=t):t=i[17],i[18]!==x||i[19]!==w?(n=(0,b.jsx)(\"span\",{\"data-nextjs-version-checker\":!0,title:w,children:x}),i[18]=x,i[19]=w,i[20]=n):n=i[20];var E=m&&\"turbopack-text\";return i[21]!==E?(r=eG(E),i[21]=E,i[22]=r):r=i[22],i[23]!==s||i[24]!==r?(o=(0,b.jsx)(\"span\",{className:r,children:s}),i[23]=s,i[24]=r,i[25]=o):o=i[25],i[26]!==y||i[27]!==t||i[28]!==n||i[29]!==o?(a=(0,b.jsxs)(\"span\",{className:y,children:[t,n,o]}),i[26]=y,i[27]=t,i[28]=n,i[29]=o,i[30]=a):a=i[30],a}function tZ(e){var t,n,r,o,a=(0,A.c)(11),i=e.runtimeErrors,l=e.activeIdx,s=e.setActiveIndex,c=e.versionInfo,u=\"Webpack\"||0;a[0]!==i?(t=null!=i?i:[],a[0]=i,a[1]=t):t=a[1];var d=null!=l?l:0,f=null!=s?s:tU;return a[2]!==t||a[3]!==d||a[4]!==f?(n=(0,b.jsx)(tF,{side:\"left\",children:(0,b.jsx)(tN,{runtimeErrors:t,activeIdx:d,onActiveIndexChange:f})}),a[2]=t,a[3]=d,a[4]=f,a[5]=n):n=a[5],a[6]!==c?(r=c&&(0,b.jsx)(tF,{side:\"right\",children:(0,b.jsx)(tM,{versionInfo:c,bundlerName:u})}),a[6]=c,a[7]=r):r=a[7],a[8]!==n||a[9]!==r?(o=(0,b.jsxs)(\"div\",{\"data-nextjs-error-overlay-nav\":!0,children:[n,r]}),a[8]=n,a[9]=r,a[10]=o):o=a[10],o}function tU(){}function tF(e){var t,n,r=(0,A.c)(4),o=e.children,a=e.side,i=void 0===a?\"left\":a;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(tq,{}),r[0]=t):t=r[0],r[1]!==o||r[2]!==i?(n=(0,b.jsxs)(\"div\",{className:\"error-overlay-notch\",\"data-side\":i,children:[o,t]}),r[1]=o,r[2]=i,r[3]=n):n=r[3],n}function tq(){var e,t,n,r=(0,A.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e={maskType:\"alpha\"},r[0]=e):e=r[0],r[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsxs)(\"mask\",{id:\"error_overlay_nav_mask0_2667_14687\",style:e,maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"-1\",width:\"60\",height:\"43\",children:[(0,b.jsxs)(\"mask\",{id:\"error_overlay_nav_path_1_outside_1_2667_14687\",maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"-1\",width:\"60\",height:\"43\",fill:\"black\",children:[(0,b.jsx)(\"rect\",{fill:\"white\",y:\"-1\",width:\"60\",height:\"43\"}),(0,b.jsx)(\"path\",{d:\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\"})]}),(0,b.jsx)(\"path\",{d:\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\",fill:\"white\"}),(0,b.jsx)(\"path\",{d:\"M1 0V-1H0V0L1 0ZM1 41H0V42H1V41ZM34.8889 29.6498L33.9873 30.0823L34.8889 29.6498ZM26.111 11.3501L27.0127 10.9177L26.111 11.3501ZM1 1H8.0783V-1H1V1ZM60 40H1V42H60V40ZM2 41V0L0 0L0 41H2ZM25.2094 11.7826L33.9873 30.0823L35.7906 29.2174L27.0127 10.9177L25.2094 11.7826ZM52.9217 42H60V40H52.9217V42ZM33.9873 30.0823C37.4811 37.3661 44.8433 42 52.9217 42V40C45.6127 40 38.9517 35.8074 35.7906 29.2174L33.9873 30.0823ZM8.0783 1C15.3873 1 22.0483 5.19257 25.2094 11.7826L27.0127 10.9177C23.5188 3.6339 16.1567 -1 8.0783 -1V1Z\",fill:\"black\",mask:\"url(#error_overlay_nav_path_1_outside_1_2667_14687)\"})]}),r[1]=t):t=r[1],r[2]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,b.jsxs)(\"svg\",{width:\"60\",height:\"42\",viewBox:\"0 0 60 42\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"error-overlay-notch-tail\",preserveAspectRatio:\"none\",children:[t,(0,b.jsxs)(\"g\",{mask:\"url(#error_overlay_nav_mask0_2667_14687)\",children:[(0,b.jsxs)(\"mask\",{id:\"error_overlay_nav_path_3_outside_2_2667_14687\",maskUnits:\"userSpaceOnUse\",x:\"-1\",y:\"0.0244141\",width:\"60\",height:\"43\",fill:\"black\",children:[(0,b.jsx)(\"rect\",{fill:\"white\",x:\"-1\",y:\"0.0244141\",width:\"60\",height:\"43\"}),(0,b.jsx)(\"path\",{d:\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\"})]}),(0,b.jsx)(\"path\",{d:\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\",fill:\"var(--background-color)\"}),(0,b.jsx)(\"path\",{d:\"M0 1.02441L0 0.0244141H-1V1.02441H0ZM0 42.0244H-1V43.0244H0L0 42.0244ZM33.8889 30.6743L32.9873 31.1068L33.8889 30.6743ZM25.111 12.3746L26.0127 11.9421L25.111 12.3746ZM0 2.02441H7.0783V0.0244141H0L0 2.02441ZM59 41.0244H0L0 43.0244H59V41.0244ZM1 42.0244L1 1.02441H-1L-1 42.0244H1ZM24.2094 12.8071L32.9873 31.1068L34.7906 30.2418L26.0127 11.9421L24.2094 12.8071ZM51.9217 43.0244H59V41.0244H51.9217V43.0244ZM32.9873 31.1068C36.4811 38.3905 43.8433 43.0244 51.9217 43.0244V41.0244C44.6127 41.0244 37.9517 36.8318 34.7906 30.2418L32.9873 31.1068ZM7.0783 2.02441C14.3873 2.02441 21.0483 6.21699 24.2094 12.8071L26.0127 11.9421C22.5188 4.65831 15.1567 0.0244141 7.0783 0.0244141V2.02441Z\",fill:\"var(--stroke-color)\",mask:\"url(#error_overlay_nav_path_3_outside_2_2667_14687)\"})]})]}),r[2]=n):n=r[2],n}function tH(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var tV=[\"[data-next-mark]\",\"[data-issues-open]\",\"#nextjs-dev-tools-menu\",\"[data-nextjs-error-overlay-nav]\",\"[data-info-popover]\",\"[data-nextjs-devtools-panel-overlay]\",\"[data-nextjs-devtools-panel-footer]\",\"[data-nextjs-error-overlay-footer]\"],t$=function(e){var t,n,r,o,a,i,l,s,c,u,d=e.children,f=e.className,p=e.onClose,h=e[\"aria-labelledby\"],m=e[\"aria-describedby\"],g=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"className\",\"onClose\",\"aria-labelledby\",\"aria-describedby\"]),y=x.useRef(null),v=(t=x.useState(\"undefined\"!=typeof document&&document.hasFocus()?\"dialog\":void 0),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return tH(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tH(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),w=v[0],C=v[1];return r=y.current,o=tV,a=function(e){return e.preventDefault(),null==p?void 0:p()},(s=(0,A.c)(5))[0]!==o||s[1]!==r||s[2]!==a?(i=function(){if(null!=r&&null!=a){var e=function(e){!(!r||r.contains(e.target))&&(o.some(function(t){return e.target.closest(t)})||a(e))},t=r.getRootNode();return t.addEventListener(\"mouseup\",e),t.addEventListener(\"touchend\",e,{passive:!1}),function(){t.removeEventListener(\"mouseup\",e),t.removeEventListener(\"touchend\",e)}}},l=[a,r,o],s[0]=o,s[1]=r,s[2]=a,s[3]=i,s[4]=l):(i=s[3],l=s[4]),x.useEffect(i,l),x.useEffect(function(){var e=function(){C(document.hasFocus()?\"dialog\":void 0)};if(null!=y.current)return window.addEventListener(\"focus\",e),window.addEventListener(\"blur\",e),function(){window.removeEventListener(\"focus\",e),window.removeEventListener(\"blur\",e)}},[]),x.useEffect(function(){var e,t,n=y.current,r=null==n?void 0:n.getRootNode(),o=(e=r,null!=(t=ShadowRoot)&&\"undefined\"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t)?null==r?void 0:r.activeElement:null;return null==n||n.focus(),function(){null==n||n.blur(),null==o||o.focus()}},[]),(0,b.jsx)(\"div\",(c=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({ref:y,tabIndex:-1,\"data-nextjs-dialog\":!0,\"data-nextjs-scrollable-content\":!0,role:w,\"aria-labelledby\":h,\"aria-describedby\":m,\"aria-modal\":\"true\",className:f,onKeyDown:function(e){\"Escape\"===e.key&&(null==p||p())}},g),u=u={children:d},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(u)).forEach(function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(u,e))}),c))};function tW(e){var t,n,r,o,a,i,l,s,c=(0,A.c)(12);return(c[0]!==e?(i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"onClose\",\"footer\"]),r=e.children,a=e.onClose,o=e.footer,c[0]=e,c[1]=r,c[2]=o,c[3]=a,c[4]=i):(r=c[1],o=c[2],a=c[3],i=c[4]),c[5]!==r||c[6]!==a||c[7]!==i)?(l=(0,b.jsx)(t$,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"aria-labelledby\":\"nextjs__container_errors_label\",\"aria-describedby\":\"nextjs__container_errors_desc\",className:\"error-overlay-dialog-scroll\",onClose:a},i),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),c[5]=r,c[6]=a,c[7]=i,c[8]=l):l=c[8],c[9]!==o||c[10]!==l?(s=(0,b.jsxs)(\"div\",{className:\"error-overlay-dialog-container\",children:[l,o]}),c[9]=o,c[10]=l,c[11]=s):s=c[11],s}function tY(e){var t,n,r,o=(0,A.c)(2);return o[0]!==e?(r=(0,b.jsx)(\"div\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-header\":!0},e),n=n={children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),o[0]=e,o[1]=r):r=o[1],r}function tK(e){var t,n=(0,A.c)(2),r=e.children;return n[0]!==r?(t=(0,b.jsx)(tY,{className:\"nextjs-container-errors-header\",children:r}),n[0]=r,n[1]=t):t=n[1],t}function tX(e){var t,n=(0,A.c)(2),r=e.children;return n[0]!==r?(t=(0,b.jsx)(eW,{className:\"nextjs-container-errors-body\",children:r}),n[0]=r,n[1]=t):t=n[1],t}var tG=0,tQ=function(e){var t,n,r,o,a,i,l,s=(0,A.c)(9);return(s[0]!==e?(a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"className\",\"children\"]),o=e.className,r=e.children,s[0]=e,s[1]=r,s[2]=o,s[3]=a):(r=s[1],o=s[2],a=s[3]),s[4]===Symbol.for(\"react.memo_cache_sentinel\")?(i=[],s[4]=i):i=s[4],x.useEffect(t0,i),s[5]!==r||s[6]!==o||s[7]!==a)?(l=(0,b.jsx)(\"div\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-overlay\":!0,className:o},a),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),s[5]=r,s[6]=o,s[7]=a,s[8]=l):l=s[8],l};function tJ(){setTimeout(function(){0!==tG&&0==--tG&&(void 0!==t&&(document.body.style.paddingRight=t,t=void 0),void 0!==n&&(document.body.style.overflow=n,n=void 0))})}function t0(){return setTimeout(function(){if(!(tG++>0)){var e=window.innerWidth-document.documentElement.clientWidth;e>0&&(t=document.body.style.paddingRight,document.body.style.paddingRight=\"\".concat(e,\"px\")),n=document.body.style.overflow,document.body.style.overflow=\"hidden\"}}),tJ}function t1(){var e,t,n=(e=[\"\\n [data-nextjs-dialog-overlay] {\\n padding: initial;\\n top: 10vh;\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return t1=function(){return n},n}function t2(e){var t,n,r,o,a,i=(0,A.c)(6);return(i[0]!==e?(o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\"]),r=e.children,i[0]=e,i[1]=r,i[2]=o):(r=i[1],o=i[2]),i[3]!==r||i[4]!==o)?(a=(0,b.jsx)(tQ,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},o),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),i[3]=r,i[4]=o,i[5]=a):a=i[5],a}var t4=es(t1());function t5(e){var t,n,r,o=(0,A.c)(4),a=Math.min(e.errorCount-e.activeIdx-1,2);return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"div\",{className:\"error-overlay-bottom-stack-layer error-overlay-bottom-stack-layer-1\",children:\"1\"}),n=(0,b.jsx)(\"div\",{className:\"error-overlay-bottom-stack-layer error-overlay-bottom-stack-layer-2\",children:\"2\"}),o[0]=t,o[1]=n):(t=o[0],n=o[1]),o[2]!==a?(r=(0,b.jsx)(\"div\",{\"aria-hidden\":!0,className:\"error-overlay-bottom-stack\",children:(0,b.jsxs)(\"div\",{className:\"error-overlay-bottom-stack-stack\",\"data-stack-count\":a,children:[t,n]})}),o[2]=a,o[3]=r):r=o[3],r}function t3(e){var t,n=(0,A.c)(2),r=e.environmentName;return n[0]!==r?(t=(0,b.jsx)(\"span\",{\"data-nextjs-environment-name-label\":!0,children:r}),n[0]=r,n[1]=t):t=n[1],t}function t6(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function t9(e){var t,n,r=null==e?void 0:e.getRootNode();return(t=r,null!=(n=ShadowRoot)&&\"undefined\"!=typeof Symbol&&n[Symbol.hasInstance]?!!n[Symbol.hasInstance](t):t instanceof n)?null==r?void 0:r.activeElement:null}function t8(e,t,n,r,o){var a,i,l=(0,A.c)(7);l[0]!==n||l[1]!==r||l[2]!==o||l[3]!==e||l[4]!==t?(a=function(){if(n){var a,i=o||(null==(a=e.current)?void 0:a.ownerDocument),l=function(n){var o,a,i=n.target;!(e.current&&e.current.contains(i))&&(null!=(o=e.current)&&o.getBoundingClientRect()&&n.clientX>=e.current.getBoundingClientRect().left-10&&n.clientX<=e.current.getBoundingClientRect().right+10&&n.clientY>=e.current.getBoundingClientRect().top-10&&n.clientY<=e.current.getBoundingClientRect().bottom+10||null!=(a=t.current)&&a.getBoundingClientRect()&&n.clientX>=t.current.getBoundingClientRect().left-10&&n.clientX<=t.current.getBoundingClientRect().right+10&&n.clientY>=t.current.getBoundingClientRect().top-10&&n.clientY<=t.current.getBoundingClientRect().bottom+10||r(\"outside\"))},s=function(e){\"Escape\"===e.key&&r(\"escape\")};return null==i||i.addEventListener(\"mousedown\",l),null==i||i.addEventListener(\"keydown\",s),function(){null==i||i.removeEventListener(\"mousedown\",l),null==i||i.removeEventListener(\"keydown\",s)}}},i=[n,r,o,e,t],l[0]=n,l[1]=r,l[2]=o,l[3]=e,l[4]=t,l[5]=a,l[6]=i):(a=l[5],i=l[6]),(0,x.useEffect)(a,i)}var t7=\"cubic-bezier(0.175, 0.885, 0.32, 1.1)\",ne=(0,x.forwardRef)(function(e,t){var n,r,o=(0,A.c)(9),a=e.stop,i=e.blur,l=e.side,s=e.style,c=e.height,u=\"\".concat(c,\"px\");o[0]!==i||o[1]!==a||o[2]!==s||o[3]!==u?(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"--stop\":a,\"--blur\":i,\"--height\":u},s),o[0]=i,o[1]=a,o[2]=s,o[3]=u,o[4]=n):n=o[4];var d=n;return o[5]!==t||o[6]!==l||o[7]!==d?(r=(0,b.jsx)(\"div\",{ref:t,\"aria-hidden\":!0,\"data-nextjs-scroll-fader\":!0,className:\"nextjs-scroll-fader\",\"data-side\":l,style:d}),o[5]=t,o[6]=l,o[7]=d,o[8]=r):r=o[8],r});function nt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function nn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return nt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nt(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var nr=(0,x.forwardRef)(function(e,t){var n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,w,C,_,k=(0,A.c)(13);k[0]!==e?(v=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"measure\"]),g=e.children,y=e.measure,k[0]=e,k[1]=g,k[2]=y,k[3]=v):(g=k[1],y=k[2],v=k[3]);var E=nn((0,x.useState)(null),2),j=E[0],S=E[1],O=nn((n=j,r=y,l=(0,A.c)(7),c=(s=nn((0,x.useState)(0),2))[0],u=s[1],f=(d=nn((0,x.useState)(!0),2))[0],p=d[1],l[0]!==n||l[1]!==r?(o=function(){if(r&&n){var e,t=new ResizeObserver(function(t){var n=nn(t,1)[0].contentRect;clearTimeout(e),e=window.setTimeout(function(){p(!1)},100),u(n.height)});return t.observe(n),function(){return t.disconnect()}}},a=[r,n],l[0]=n,l[1]=r,l[2]=o,l[3]=a):(o=l[2],a=l[3]),(0,x.useEffect)(o,a),l[4]!==c||l[5]!==f?(i=[c,f],l[4]=c,l[5]=f,l[6]=i):i=l[6],i),2),B=O[0],P=O[1]?\"auto\":B;return(k[4]!==P?(w={height:P,transition:\"height 250ms var(--timing-swift)\"},k[4]=P,k[5]=w):w=k[5],k[6]!==g?(C=(0,b.jsx)(\"div\",{ref:S,children:g}),k[6]=g,k[7]=C):C=k[7],k[8]!==v||k[9]!==t||k[10]!==w||k[11]!==C)?(_=(0,b.jsx)(\"div\",(h=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},v),m=m={ref:t,style:w,children:C},Object.getOwnPropertyDescriptors?Object.defineProperties(h,Object.getOwnPropertyDescriptors(m)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(m)).forEach(function(e){Object.defineProperty(h,e,Object.getOwnPropertyDescriptor(m,e))}),h)),k[8]=v,k[9]=t,k[10]=w,k[11]=C,k[12]=_):_=k[12],_});function no(e){var t,n,r,o=(0,A.c)(6);o[0]!==e?(n=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"fixed\"]),t=e.fixed,o[0]=e,o[1]=t,o[2]=n):(t=o[1],n=o[2]);var a=!!t||void 0;return o[3]!==n||o[4]!==a?(r=(0,b.jsx)(\"div\",function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-backdrop\":!0,\"data-nextjs-dialog-backdrop-fixed\":a},n)),o[3]=n,o[4]=a,o[5]=r):r=o[5],r}function na(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ni(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function nl(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function ns(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return na(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return na(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function nc(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,w,C,_,k,E,j,S=(0,A.c)(65),O=e.errorMessage,B=e.errorType,P=e.children,I=e.errorCode,z=e.errorCount,T=e.error,D=e.debugInfo,L=e.isBuildError,N=e.onClose,R=e.versionInfo,M=e.runtimeErrors,Z=e.activeIdx,U=e.setActiveIndex,F=e.isTurbopack,q=e.dialogResizerRef,H=e.generateErrorInfo,V=e.rendered,$=e.transitionDurationMs,W=void 0===V||V,Y=\"\".concat($,\"ms\");S[0]!==Y?(r={\"--transition-duration\":Y},S[0]=Y,S[1]=r):r=S[1];var K=r;S[2]!==W||S[3]!==K?(o={\"data-rendered\":W,style:K},S[2]=W,S[3]=K,S[4]=o):o=S[4];var X=o,G=ns(x.useState(!!$),2),Q=G[0],J=G[1],ee=x.useRef(null),et=!!I,en=x.useRef(null);t=en,n=W,(0,x.useEffect)(function(){var e=function(e){if(\"Tab\"===e.key&&null!==r){var t,n,o,a=(n=(t=r.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'))?[t[0],t[t.length-1]]:[],o=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,t){if(e){if(\"string\"==typeof e)return t6(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t6(e,t)}}(n,o)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),i=a[0],l=a[1],s=t9(r);e.shiftKey?s===i&&(null==l||l.focus(),e.preventDefault()):s===l&&(null==i||i.focus(),e.preventDefault())}},r=null,o=setTimeout(function(){if(r=t.current,n)null==r||r.focus(),null==r||r.addEventListener(\"keydown\",e);else t9(r)});return function(){clearTimeout(o),null==r||r.removeEventListener(\"keydown\",e)}},[n]),S[5]===Symbol.for(\"react.memo_cache_sentinel\")?(a=function(e){if(ee.current){var t,n,r=(t=e.currentTarget.scrollTop/17,Math.min(Math.max(t,(n=ns([0,1],2))[0]),n[1]));ee.current.style.opacity=String(r)}},S[5]=a):a=S[5];var er=a;S[6]===Symbol.for(\"react.memo_cache_sentinel\")?(i=function(e){var t=e.propertyName,n=e.target;\"scale\"===t&&n===en.current&&J(!1)},S[6]=i):i=S[6];var eo=i;S[7]!==L?(l=(0,b.jsx)(no,{fixed:L}),S[7]=L,S[8]=l):l=S[8],S[9]!==Z||S[10]!==F||S[11]!==M||S[12]!==U||S[13]!==R?(s=(0,b.jsx)(tZ,{runtimeErrors:M,activeIdx:Z,setActiveIndex:U,versionInfo:R,isTurbopack:F}),S[9]=Z,S[10]=F,S[11]=M,S[12]=U,S[13]=R,S[14]=s):s=S[14],S[15]!==I||S[16]!==et?(c=et&&(0,b.jsx)(tS,{errorCode:I}),S[15]=I,S[16]=et,S[17]=c):c=S[17];var ea=!Q;S[18]!==B?(u=(0,b.jsx)(tz,{errorType:B}),S[18]=B,S[19]=u):u=S[19],S[20]!==T.environmentName?(d=T.environmentName&&(0,b.jsx)(t3,{environmentName:T.environmentName}),S[20]=T.environmentName,S[21]=d):d=S[21],S[22]!==u||S[23]!==d?(f=(0,b.jsxs)(\"span\",{\"data-nextjs-error-label-group\":!0,children:[u,d]}),S[22]=u,S[23]=d,S[24]=f):f=S[24],S[25]!==D||S[26]!==T||S[27]!==H?(p=(0,b.jsx)(tx,{error:T,debugInfo:D,generateErrorInfo:H}),S[25]=D,S[26]=T,S[27]=H,S[28]=p):p=S[28],S[29]!==I||S[30]!==f||S[31]!==p?(h=(0,b.jsxs)(\"div\",{className:\"nextjs__container_errors__error_title\",\"data-nextjs-error-code\":I,children:[f,p]}),S[29]=I,S[30]=f,S[31]=p,S[32]=h):h=S[32],S[33]!==O?(m=(0,b.jsx)(tI,{errorMessage:O}),S[33]=O,S[34]=m):m=S[34],S[35]!==h||S[36]!==m?(g=(0,b.jsxs)(tK,{children:[h,m]}),S[35]=h,S[36]=m,S[37]=g):g=S[37],S[38]!==P?(y=(0,b.jsx)(tX,{children:P}),S[38]=P,S[39]=y):y=S[39],S[40]!==g||S[41]!==y?(v=(0,b.jsxs)(eY,{children:[g,y]}),S[40]=g,S[41]=y,S[42]=v):v=S[42],S[43]!==q||S[44]!==ea||S[45]!==v?(w=(0,b.jsx)(nr,{ref:q,measure:ea,\"data-nextjs-dialog-sizer\":!0,children:v}),S[43]=q,S[44]=ea,S[45]=v,S[46]=w):w=S[46];var ei=null!=Z?Z:0;return S[47]!==z||S[48]!==ei?(C=(0,b.jsx)(t5,{errorCount:z,activeIdx:ei}),S[47]=z,S[48]=ei,S[49]=C):C=S[49],S[50]!==et||S[51]!==N||S[52]!==c||S[53]!==w||S[54]!==C?(_=(0,b.jsxs)(tW,{onClose:N,\"data-has-footer\":et,onScroll:er,footer:c,children:[w,C]}),S[50]=et,S[51]=N,S[52]=c,S[53]=w,S[54]=C,S[55]=_):_=S[55],S[56]===Symbol.for(\"react.memo_cache_sentinel\")?(k=(0,b.jsx)(ne,{ref:ee,side:\"top\",stop:\"50%\",blur:\"4px\",height:48}),S[56]=k):k=S[56],S[57]!==X||S[58]!==_||S[59]!==s?(E=(0,b.jsxs)(\"div\",nl(ni({\"data-nextjs-dialog-root\":!0,onTransitionEnd:eo,ref:en},X),{children:[s,_,k]})),S[57]=X,S[58]=_,S[59]=s,S[60]=E):E=S[60],S[61]!==X||S[62]!==E||S[63]!==l?(j=(0,b.jsxs)(t2,nl(ni({},X),{children:[l,E]})),S[61]=X,S[62]=E,S[63]=l,S[64]=j):j=S[64],j}var nu=\"\\n \".concat(t4,\"\\n \").concat(\"\\n .error-overlay-dialog-container {\\n display: flex;\\n flex-direction: column;\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: var(--next-dialog-border-width) solid var(--color-gray-400);\\n border-radius: 0 0 var(--next-dialog-radius) var(--next-dialog-radius);\\n box-shadow: var(--shadow-menu);\\n position: relative;\\n overflow: hidden;\\n }\\n\\n .error-overlay-dialog-scroll {\\n overflow-y: auto;\\n height: 100%;\\n }\\n\",\"\\n \").concat(\"\\n .nextjs-container-errors-header {\\n position: relative;\\n }\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-20);\\n line-height: var(--size-24);\\n font-weight: bold;\\n margin: calc(16px * 1.5) 0;\\n color: var(--color-title-h1);\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-14);\\n color: var(--color-accents-1);\\n margin-left: 16px;\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: 4px;\\n }\\n .nextjs-container-errors-header > p > a {\\n color: inherit;\\n font-weight: bold;\\n }\\n .nextjs-container-errors-header\\n > .nextjs-container-build-error-version-status {\\n position: absolute;\\n top: 16px;\\n right: 16px;\\n }\\n\",\"\\n \").concat(\"\",\"\\n\\n \").concat(\"\\n [data-nextjs-error-overlay-nav] {\\n --stroke-color: var(--color-gray-400);\\n --background-color: var(--color-background-100);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n\\n width: 100%;\\n\\n position: relative;\\n z-index: 2;\\n outline: none;\\n translate: var(--next-dialog-border-width) var(--next-dialog-border-width);\\n max-width: var(--next-dialog-max-width);\\n\\n .error-overlay-notch {\\n translate: calc(var(--next-dialog-border-width) * -1);\\n width: auto;\\n height: var(--next-dialog-notch-height);\\n padding: 12px;\\n background: var(--background-color);\\n border: var(--next-dialog-border-width) solid var(--stroke-color);\\n border-bottom: none;\\n position: relative;\\n\\n &[data-side='left'] {\\n padding-right: 0;\\n border-radius: var(--next-dialog-radius) 0 0 0;\\n\\n .error-overlay-notch-tail {\\n right: -54px;\\n }\\n\\n > *:not(.error-overlay-notch-tail) {\\n margin-right: -10px;\\n }\\n }\\n\\n &[data-side='right'] {\\n padding-left: 0;\\n border-radius: 0 var(--next-dialog-radius) 0 0;\\n\\n .error-overlay-notch-tail {\\n left: -54px;\\n transform: rotateY(180deg);\\n }\\n\\n > *:not(.error-overlay-notch-tail) {\\n margin-left: -12px;\\n }\\n }\\n\\n .error-overlay-notch-tail {\\n position: absolute;\\n top: calc(var(--next-dialog-border-width) * -1);\\n pointer-events: none;\\n z-index: -1;\\n height: calc(100% + var(--next-dialog-border-width));\\n }\\n }\\n }\\n\\n @media (max-width: 600px) {\\n [data-nextjs-error-overlay-nav] {\\n background: var(--background-color);\\n border-radius: var(--next-dialog-radius) var(--next-dialog-radius) 0 0;\\n border: var(--next-dialog-border-width) solid var(--stroke-color);\\n border-bottom: none;\\n overflow: hidden;\\n translate: 0 var(--next-dialog-border-width);\\n \\n .error-overlay-notch {\\n border-radius: 0;\\n border: 0;\\n\\n &[data-side=\\\"left\\\"], &[data-side=\\\"right\\\"] {\\n border-radius: 0;\\n }\\n\\n .error-overlay-notch-tail {\\n display: none;\\n }\\n }\\n }\\n }\\n\",\"\\n \").concat(\"\\n .nextjs__container_errors_label {\\n padding: 2px 6px;\\n margin: 0;\\n border-radius: var(--rounded-md-2);\\n background: var(--color-red-100);\\n font-weight: 600;\\n font-size: var(--size-12);\\n color: var(--color-red-900);\\n font-family: var(--font-stack-monospace);\\n line-height: var(--size-20);\\n }\\n\",\"\\n \").concat(\"\\n .nextjs__container_errors_wrapper {\\n position: relative;\\n }\\n\\n .nextjs__container_errors_desc {\\n margin: 0;\\n margin-left: 4px;\\n color: var(--color-red-900);\\n font-weight: 500;\\n font-size: var(--size-16);\\n letter-spacing: -0.32px;\\n line-height: var(--size-24);\\n overflow-wrap: break-word;\\n white-space: pre-wrap;\\n }\\n\\n .nextjs__container_errors_desc.truncated {\\n max-height: 200px;\\n overflow: hidden;\\n }\\n\\n .nextjs__container_errors_gradient_overlay {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n height: 85px;\\n background: linear-gradient(\\n 180deg,\\n rgba(250, 250, 250, 0) 0%,\\n var(--color-background-100) 100%\\n );\\n }\\n\\n .nextjs__container_errors_expand_button {\\n position: absolute;\\n bottom: 10px;\\n left: 50%;\\n transform: translateX(-50%);\\n display: flex;\\n align-items: center;\\n padding: 6px 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: 999px;\\n box-shadow:\\n 0px 2px 2px var(--color-gray-alpha-100),\\n 0px 8px 8px -8px var(--color-gray-alpha-100);\\n font-size: var(--size-13);\\n cursor: pointer;\\n color: var(--color-gray-900);\\n font-weight: 500;\\n transition: background-color 0.2s ease;\\n }\\n\\n .nextjs__container_errors_expand_button:hover {\\n background: var(--color-gray-100);\\n }\\n\",\"\\n \").concat(\"\\n .error-overlay-toolbar {\\n display: flex;\\n gap: 6px;\\n }\\n\\n .nodejs-inspector-button,\\n .copy-error-button,\\n .docs-link-button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-28);\\n height: var(--size-28);\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-alpha-400);\\n box-shadow: var(--shadow-small);\\n border-radius: var(--rounded-full);\\n\\n svg {\\n width: var(--size-14);\\n height: var(--size-14);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n &:not(:disabled):hover {\\n background: var(--color-gray-alpha-100);\\n }\\n\\n &:not(:disabled):active {\\n background: var(--color-gray-alpha-200);\\n }\\n\\n &:disabled {\\n background-color: var(--color-gray-100);\\n cursor: not-allowed;\\n }\\n }\\n\\n .error-overlay-toolbar-button-icon {\\n color: var(--color-gray-900);\\n }\\n\",\"\\n\\n [data-nextjs-error-label-group] {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n }\\n\");function nd(){var e,t,n=(e=[\"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n /* secondary z-index, -1 than toast z-index */\\n z-index: 2147483646;\\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: var(--color-backdrop);\\n backdrop-filter: blur(10px);\\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\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return nd=function(){return n},n}var nf=es(nd());function np(e){var t,n,r,o,a,i=(0,A.c)(9),l=e.file,s=e.location,c=null!=(t=null==s?void 0:s.line)?t:1,u=null!=(n=null==s?void 0:s.column)?n:1;i[0]!==l||i[1]!==c||i[2]!==u?(r={file:l,line1:c,column1:u},i[0]=l,i[1]=c,i[2]=u,i[3]=r):r=i[3];var d=eS(r),f=s?\":\".concat(s.line,\":\").concat(s.column):null;return i[4]===Symbol.for(\"react.memo_cache_sentinel\")?(o=(0,b.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[(0,b.jsx)(\"path\",{d:\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"}),(0,b.jsx)(\"polyline\",{points:\"15 3 21 3 21 9\"}),(0,b.jsx)(\"line\",{x1:\"10\",y1:\"14\",x2:\"21\",y2:\"3\"})]}),i[4]=o):o=i[4],i[5]!==l||i[6]!==d||i[7]!==f?(a=(0,b.jsxs)(\"div\",{\"data-with-open-in-editor-link\":!0,\"data-with-open-in-editor-link-import-trace\":!0,role:\"link\",onClick:d,title:\"Click to open in your editor\",children:[l,f,o]}),i[5]=l,i[6]=d,i[7]=f,i[8]=a):a=i[8],a}function nh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var nm=function(e){var t,n,r,o,a,i,l,s,c,u,d=e.content,f=x.useMemo(function(){var e,t,n;return t=function(e){var t,n,r=e.shift();if(!r)return null;var o=(t=r.split(\":\",3),n=3,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,3)||function(e,t){if(e){if(\"string\"==typeof e)return nh(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nh(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=o[0],i=o[1],l=o[2],s=Number(i),c=Number(l),u=!Number.isNaN(s)&&!Number.isNaN(c);return{fileName:u?a:r,location:u?{line1:s,column1:c}:void 0}}(e=d.split(\"\\n\")),n=function(e){if(e.some(function(e){return/ReactServerComponentsError:/.test(e)})||e.some(function(e){return/Import trace for requested module:/.test(e)})){for(var t=[];/.+\\..+/.test(e[e.length-1])&&!e[e.length-1].includes(\":\");){var n=e.pop().trim();t.unshift(n)}return t}return[]}(e),{file:t,source:e.join(\"\\n\"),importTraceFiles:n}},[d]),p=f.file,h=f.source,m=f.importTraceFiles,g=x.useMemo(function(){return eU().ansiToJson(h,{json:!0,use_classes:!0,remove_empty:!0})},[h]);console.log({file:p});var y=eS({file:null==p?void 0:p.fileName,line1:null!=(i=null==p||null==(t=p.location)?void 0:t.line1)?i:1,column1:null!=(l=null==p||null==(n=p.location)?void 0:n.column1)?l:1}),v={file:null!=(s=null==p?void 0:p.fileName)?s:null,methodName:\"\",arguments:[],line1:null!=(c=null==p||null==(r=p.location)?void 0:r.line1)?c:null,column1:null!=(u=null==p||null==(o=p.location)?void 0:o.column1)?u:null},A=null==v||null==(a=v.file)?void 0:a.split(\".\").pop();return(0,b.jsxs)(\"div\",{\"data-nextjs-codeframe\":!0,children:[(0,b.jsx)(\"div\",{className:\"code-frame-header\",children:(0,b.jsxs)(\"div\",{className:\"code-frame-link\",children:[(0,b.jsx)(\"span\",{className:\"code-frame-icon\",children:(0,b.jsx)(eT,{lang:A})}),(0,b.jsx)(\"span\",{\"data-text\":!0,children:ej(v)}),(0,b.jsx)(\"button\",{\"aria-label\":\"Open in editor\",\"data-with-open-in-editor-link-source-file\":!0,onClick:y,children:(0,b.jsx)(\"span\",{className:\"code-frame-icon\",\"data-icon\":\"right\",children:(0,b.jsx)(eI,{width:16,height:16})})})]})}),(0,b.jsx)(\"pre\",{className:\"code-frame-pre\",children:(0,b.jsxs)(\"div\",{className:\"code-frame-lines\",children:[g.map(function(e,t){return(0,b.jsx)(\"span\",{style:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({color:e.fg?\"var(--color-\".concat(e.fg,\")\"):void 0},\"bold\"===e.decoration?{fontWeight:500}:\"italic\"===e.decoration?{fontStyle:\"italic\"}:void 0),children:(0,b.jsx)(ev,{text:e.content})},\"terminal-entry-\".concat(t))}),m.map(function(e){return(0,b.jsx)(np,{isSourceFile:!1,file:e},e)})]})})]})},ng=function(e){var t=e.split(\"\\n\");return eq()(t[1]||\"\").replace(/^Error: /,\"\")},ny=function(e){var t,n,r,o,a,i,l,s,c,u,d=(0,A.c)(19);d[0]!==e?(o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"message\"]),r=e.message,d[0]=e,d[1]=r,d[2]=o):(r=d[1],o=d[2]),d[3]!==r?(a=Error(r),d[3]=r,d[4]=a):a=d[4];var f=a;d[5]!==r?(l=ng(r)||\"Failed to compile\",d[5]=r,d[6]=l):l=d[6],i=l,d[7]!==i||d[8]!==r||d[9]!==o.versionInfo.installed?(s=function(){var e=[];if(e.push(\"## Error Type\\nBuild Error\"),i&&e.push(\"## Error Message\\n\".concat(i)),r){var t=eq()(r);e.push(\"## Build Output\\n\".concat(t))}return\"\".concat(e.join(\"\\n\\n\"),\"\\n\\nNext.js version: \").concat(o.versionInfo.installed,\" (\").concat(\"Webpack\",\")\\n\")},d[7]=i,d[8]=r,d[9]=o.versionInfo.installed,d[10]=s):s=d[10];var p=s;return(d[11]!==r?(c=(0,b.jsx)(nm,{content:r}),d[11]=r,d[12]=c):c=d[12],d[13]!==f||d[14]!==i||d[15]!==p||d[16]!==o||d[17]!==c)?(u=(0,b.jsx)(nc,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({errorType:\"Build Error\",errorMessage:i,onClose:nv,error:f,generateErrorInfo:p},o),n=n={children:c},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),d[13]=f,d[14]=i,d[15]=p,d[16]=o,d[17]=c,d[18]=u):u=d[18],u};function nv(){}var nb=function(e){var t,n,r,o,a,i,l,s,c,u,d,f=(0,A.c)(26),p=e.frame,h=null!=(t=p.originalStackFrame)?t:p.sourceStackFrame,m=!!p.originalCodeFrame;f[0]!==h||f[1]!==m?(n=m?{file:h.file,line1:null!=(r=h.line1)?r:1,column1:null!=(o=h.column1)?o:1}:void 0,f[0]=h,f[1]=m,f[2]=n):n=f[2];var g=eS(n);f[3]!==h?(a=ej(h),f[3]=h,f[4]=a):a=f[4];var y=a;if(!y)return null;var v=!m;return f[5]!==h.methodName?(i=(0,b.jsx)(ev,{text:h.methodName}),f[5]=h.methodName,f[6]=i):i=f[6],f[7]!==h.methodName||f[8]!==m||f[9]!==g?(l=m&&(0,b.jsx)(\"button\",{onClick:g,className:\"open-in-editor-button\",\"aria-label\":\"Open \".concat(h.methodName,\" in editor\"),children:(0,b.jsx)(eI,{width:16,height:16})}),f[7]=h.methodName,f[8]=m,f[9]=g,f[10]=l):l=f[10],f[11]!==p.error||f[12]!==p.reason?(s=p.error?(0,b.jsx)(\"button\",{className:\"source-mapping-error-button\",onClick:function(){return console.error(p.reason)},title:\"Sourcemapping failed. Click to log cause of error.\",children:(0,b.jsx)(ez,{width:16,height:16})}):null,f[11]=p.error,f[12]=p.reason,f[13]=s):s=f[13],f[14]!==i||f[15]!==l||f[16]!==s?(c=(0,b.jsxs)(\"div\",{className:\"call-stack-frame-method-name\",children:[i,l,s]}),f[14]=i,f[15]=l,f[16]=s,f[17]=c):c=f[17],f[18]!==y||f[19]!==m?(u=(0,b.jsx)(\"span\",{className:\"call-stack-frame-file-source\",\"data-has-source\":m,children:y}),f[18]=y,f[19]=m,f[20]=u):u=f[20],f[21]!==p.ignored||f[22]!==v||f[23]!==c||f[24]!==u?(d=(0,b.jsxs)(\"div\",{\"data-nextjs-call-stack-frame\":!0,\"data-nextjs-call-stack-frame-no-source\":v,\"data-nextjs-call-stack-frame-ignored\":p.ignored,children:[c,u]}),f[21]=p.ignored,f[22]=v,f[23]=c,f[24]=u,f[25]=d):d=f[25],d};function nA(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.70722 2.39641C8.3167 2.00588 7.68353 2.00588 7.29301 2.39641L4.46978 5.21963L3.93945 5.74996L5.00011 6.81062L5.53044 6.28029L8.00011 3.81062L10.4698 6.28029L11.0001 6.81062L12.0608 5.74996L11.5304 5.21963L8.70722 2.39641ZM5.53044 9.71963L5.00011 9.1893L3.93945 10.25L4.46978 10.7803L7.29301 13.6035C7.68353 13.994 8.3167 13.994 8.70722 13.6035L11.5304 10.7803L12.0608 10.25L11.0001 9.1893L10.4698 9.71963L8.00011 12.1893L5.53044 9.71963Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function nx(){var e,t,n=(e=[\"\\n [data-nextjs-call-stack-container] {\\n position: relative;\\n margin-top: 8px;\\n }\\n\\n [data-nextjs-call-stack-header] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n min-height: var(--size-28);\\n padding: 8px 8px 12px 4px;\\n width: 100%;\\n }\\n\\n [data-nextjs-call-stack-title] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n gap: 8px;\\n\\n margin: 0;\\n\\n color: var(--color-gray-1000);\\n font-size: var(--size-16);\\n font-weight: 500;\\n }\\n\\n [data-nextjs-call-stack-count] {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-20);\\n height: var(--size-20);\\n gap: 4px;\\n\\n color: var(--color-gray-1000);\\n text-align: center;\\n font-size: var(--size-11);\\n font-weight: 500;\\n line-height: var(--size-16);\\n\\n border-radius: var(--rounded-full);\\n background: var(--color-gray-300);\\n }\\n\\n [data-nextjs-call-stack-ignored-list-toggle-button] {\\n all: unset;\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n border-radius: 6px;\\n padding: 4px 6px;\\n margin-right: -6px;\\n transition: background 150ms ease;\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return nx=function(){return n},n}function nw(e){var t,n,r,o,a,i,l=(0,A.c)(17),s=e.frames,c=e.isIgnoreListOpen,u=e.ignoredFramesTally,d=e.onToggleIgnoreList;return l[0]!==s.length?(t=(0,b.jsxs)(\"p\",{\"data-nextjs-call-stack-title\":!0,children:[\"Call Stack \",(0,b.jsx)(\"span\",{\"data-nextjs-call-stack-count\":!0,children:s.length})]}),l[0]=s.length,l[1]=t):t=l[1],l[2]!==u||l[3]!==c||l[4]!==d?(n=u>0&&(0,b.jsxs)(\"button\",{\"data-nextjs-call-stack-ignored-list-toggle-button\":c,onClick:d,children:[\"\".concat(c?\"Hide\":\"Show\",\" \").concat(u,\" ignore-listed frame(s)\"),(0,b.jsx)(nA,{})]}),l[2]=u,l[3]=c,l[4]=d,l[5]=n):n=l[5],l[6]!==t||l[7]!==n?(r=(0,b.jsxs)(\"div\",{\"data-nextjs-call-stack-header\":!0,children:[t,n]}),l[6]=t,l[7]=n,l[8]=r):r=l[8],l[9]!==s||l[10]!==c?(l[12]!==c?(a=function(e,t){return!e.ignored||c?(0,b.jsx)(nb,{frame:e},t):null},l[12]=c,l[13]=a):a=l[13],o=s.map(a),l[9]=s,l[10]=c,l[11]=o):o=l[11],l[14]!==r||l[15]!==o?(i=(0,b.jsxs)(\"div\",{\"data-nextjs-call-stack-container\":!0,children:[r,o]}),l[14]=r,l[15]=o,l[16]=i):i=l[16],i}var nC=es(nx());function n_(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function nk(e){var t,n,r=e.frames,o=e.dialogResizerRef,a=(0,x.useRef)(NaN),i=(t=(0,x.useState)(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return n_(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return n_(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),l=i[0],s=i[1],c=(0,x.useMemo)(function(){return r.reduce(function(e,t){return e+ +!!t.ignored},0)},[r]);return(0,b.jsx)(nw,{frames:r,isIgnoreListOpen:l,onToggleIgnoreList:function(){var e=null==o?void 0:o.current;if(e){var t=(null==e?void 0:e.getBoundingClientRect()).height;a.current||(a.current=t),l?(e.style.height=\"\".concat(a.current,\"px\"),e.addEventListener(\"transitionend\",function t(){e.removeEventListener(\"transitionend\",t),s(!1)})):s(!0)}},ignoredFramesTally:c})}function nE(e){var t,n,r,o,a,i,l=(0,A.c)(8);l[0]!==e?(r=void 0===e?{}:e,l[0]=e,l[1]=r):r=l[1];var s=r.collapsed;return(l[2]!==s?(o=\"boolean\"==typeof s?{style:{transform:s?void 0:\"rotate(90deg)\"}}:{},l[2]=s,l[3]=o):o=l[3],l[4]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,b.jsx)(\"path\",{style:{fill:\"var(--color-font)\"},fillRule:\"evenodd\",d:\"m6.75 3.94.53.53 2.824 2.823a1 1 0 0 1 0 1.414L7.28 11.53l-.53.53L5.69 11l.53-.53L8.69 8 6.22 5.53 5.69 5l1.06-1.06Z\",clipRule:\"evenodd\"}),l[4]=a):a=l[4],l[5]!==s||l[6]!==o)?(i=(0,b.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-call-stack-chevron-icon\":!0,\"data-collapsed\":s,width:\"16\",height:\"16\",fill:\"none\"},o),n=n={children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),l[5]=s,l[6]=o,l[7]=i):i=l[7],i}function nj(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function nS(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return nj(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nj(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function nO(e){var t,n,r,o,a,i,l,s=(0,A.c)(15),c=e.reactOutputComponentDiff,u=nS((0,x.useState)(!0),2),d=u[0],f=u[1];s[0]!==c?(n=[],c.split(\"\\n\").forEach(function(e,t){var r,o,a=\"+\"===e[0]||\"-\"===e[0],i=\">\"===e[0],l=a||i,s=l?e[0]:\"\",c=l?e.indexOf(s):-1,u=nS(l?[e.slice(0,c),e.slice(c+1)]:[e,\"\"],2),d=u[0],f=u[1];a?n.push((0,b.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line\":!0,\"data-nextjs-container-errors-pseudo-html--diff\":\"+\"===s?\"add\":\"remove\",children:(0,b.jsxs)(\"span\",{children:[d,(0,b.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line-sign\":!0,children:s}),f,\"\\n\"]})},\"comp-diff\"+t)):n.push((0,b.jsxs)(\"span\",(r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-container-errors-pseudo-html-line\":!0},i?{\"data-nextjs-container-errors-pseudo-html--diff\":\"error\"}:void 0),o=o={children:[d,(0,b.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line-sign\":!0,children:s}),f,\"\\n\"]},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r),\"comp-diff\"+t))}),s[0]=c,s[1]=n):n=s[1],t=n;var p=!d;return s[2]!==d?(r=function(){return f(!d)},o=(0,b.jsx)(nE,{collapsed:d}),s[2]=d,s[3]=r,s[4]=o):(r=s[3],o=s[4]),s[5]!==p||s[6]!==r||s[7]!==o?(a=(0,b.jsx)(\"button\",{\"aria-expanded\":p,\"aria-label\":\"complete Component Stack\",\"data-nextjs-container-errors-pseudo-html-collapse-button\":!0,onClick:r,children:o}),s[5]=p,s[6]=r,s[7]=o,s[8]=a):a=s[8],s[9]!==t?(i=(0,b.jsx)(\"pre\",{className:\"nextjs__container_errors__component-stack\",children:(0,b.jsx)(\"code\",{children:t})}),s[9]=t,s[10]=i):i=s[10],s[11]!==d||s[12]!==a||s[13]!==i?(l=(0,b.jsxs)(\"div\",{\"data-nextjs-container-errors-pseudo-html\":!0,\"data-nextjs-container-errors-pseudo-html-collapse\":d,children:[a,i]}),s[11]=d,s[12]=a,s[13]=i,s[14]=l):l=s[14],l}var nB=Symbol.for(\"NextjsError\");function nP(e){return e[nB]||null}function nI(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}function nz(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){nI(a,r,o,i,l,\"next\",e)}function l(e){nI(a,r,o,i,l,\"throw\",e)}i(void 0)})}}function nT(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function nD(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function nL(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(n)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var nN=function(e){if(!e)return[];if(\"use\"in x){var t=e.frames;if(\"function\"!=typeof t)throw Error(\"Invariant: frames must be a function when the React version has React.use. This is a bug in Next.js.\");return x.use(t())}if(!Array.isArray(e.frames))throw Error(\"Invariant: frames must be an array when the React version does not have React.use. This is a bug in Next.js.\");return e.frames};function nR(e){var t,n,r,o,a,i=(0,A.c)(8),l=e.error,s=e.dialogResizerRef,c=nN(l),u=c.findIndex(nM);return t=null!=(n=c[u])?n:null,i[0]!==t?(r=t&&(0,b.jsx)(e$,{stackFrame:t.originalStackFrame,codeFrame:t.originalCodeFrame}),i[0]=t,i[1]=r):r=i[1],i[2]!==s||i[3]!==c?(o=c.length>0&&(0,b.jsx)(nk,{dialogResizerRef:s,frames:c}),i[2]=s,i[3]=c,i[4]=o):o=i[4],i[5]!==r||i[6]!==o?(a=(0,b.jsxs)(b.Fragment,{children:[r,o]}),i[5]=r,i[6]=o,i[7]=a):a=i[7],a}function nM(e){return!e.ignored&&!!e.originalCodeFrame&&!!e.originalStackFrame}var nZ=\"\\n \".concat(\"\\n [data-nextjs-container-errors-pseudo-html] {\\n padding: 8px 0;\\n margin: 8px 0;\\n border: 1px solid var(--color-gray-400);\\n background: var(--color-background-200);\\n color: var(--color-syntax-constant);\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n line-height: 1.33em; /* 16px in 12px font size */\\n border-radius: var(--rounded-md-2);\\n }\\n [data-nextjs-container-errors-pseudo-html-line] {\\n display: inline-block;\\n width: 100%;\\n padding-left: 40px;\\n line-height: calc(5 / 3);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='error'] {\\n background: var(--color-amber-100);\\n box-shadow: 2px 0 0 0 var(--color-amber-900) inset;\\n font-weight: bold;\\n }\\n [data-nextjs-container-errors-pseudo-html-collapse-button] {\\n all: unset;\\n margin-left: 12px;\\n &:focus {\\n outline: none;\\n }\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='add'] {\\n background: var(--color-green-300);\\n }\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n margin-left: calc(24px * -1);\\n margin-right: 24px;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='add']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-green-900);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='remove'] {\\n background: var(--color-red-300);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='remove']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-red-900);\\n margin-left: calc(24px * -1);\\n margin-right: 24px;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='error']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-amber-900);\\n }\\n \\n [data-nextjs-container-errors-pseudo-html--hint] {\\n display: inline-block;\\n font-size: 0;\\n height: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html--tag-adjacent='false'] {\\n color: var(--color-accents-1);\\n }\\n .nextjs__container_errors__component-stack {\\n margin: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html-collapse='true']\\n .nextjs__container_errors__component-stack\\n code {\\n max-height: 120px;\\n mask-image: linear-gradient(to bottom,rgba(0,0,0,0) 0%,black 10%);\\n padding-bottom: 40px;\\n }\\n .nextjs__container_errors__component-stack code {\\n display: block;\\n width: 100%;\\n white-space: pre-wrap;\\n scroll-snap-type: y mandatory;\\n overflow-y: hidden;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff] {\\n scroll-snap-align: center;\\n }\\n .error-overlay-hydration-error-diff-plus-icon {\\n color: var(--color-green-900);\\n }\\n .error-overlay-hydration-error-diff-minus-icon {\\n color: var(--color-red-900);\\n }\\n\",\"\\n\");function nU(e){return e&&\"undefined\"!=typeof Symbol&&e.constructor===Symbol?\"symbol\":typeof e}function nF(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function nq(e){return e.startsWith(\"https://nextjs.org\")}function nH(e){var t,n=(0,A.c)(2),r=e.message;return n[0]!==r?(t=(0,b.jsx)(ev,{text:r,matcher:nq}),n[0]=r,n[1]=t):t=n[1],t}function nV(e){var t,n,r=(0,A.c)(5),o=e.error,a=\"environmentName\"in o?o.environmentName:\"\",i=a?\"[ \".concat(a,\" ] \"):\"\",l=o.message;return l.startsWith(i)&&(r[0]!==i.length||r[1]!==l?(t=l.slice(i.length),r[0]=i.length,r[1]=l,r[2]=t):t=r[2],l=t),r[3]!==l?(n=(0,b.jsx)(b.Fragment,{children:(0,b.jsx)(ev,{text:l,matcher:nq})}),r[3]=l,r[4]=n):n=r[4],n}var n$={hydrationWarning:null,notes:null,reactOutputComponentDiff:null};function nW(e){var t,n,r=e.getSquashedHydrationErrorDetails,o=e.runtimeErrors,a=e.debugInfo,i=e.onClose,l=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"getSquashedHydrationErrorDetails\",\"runtimeErrors\",\"debugInfo\",\"onClose\"]),s=(0,x.useRef)(null),c=function(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m=(0,A.c)(17),g=e.runtimeErrors,y=e.getSquashedHydrationErrorDetails,v=(a=(0,x.useState)(0),i=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(a,2)||function(e,t){if(e){if(\"string\"==typeof e)return nF(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nF(e,t)}}(a,i)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),b=v[0],w=v[1];s=0===g.length;var C=(t=null==(c=null!=(u=g[b])?u:null)?void 0:c.error,n=y,(0,x.useMemo)(function(){if(void 0===t)return n$;var e,r,o,a=n(t);if(null!==a)return{hydrationWarning:null!=(r=a.warning)?r:null,notes:null,reactOutputComponentDiff:null!=(o=a.reactOutputComponentDiff)?o:null};if(!(tg((e=t).message)||/Hydration failed because the server rendered (text|HTML) didn't match the client\\./.test(e.message)||/A tree hydrated but some attributes of the server rendered HTML didn't match the client properties./.test(e.message)))return n$;var i=function(e){var t=e.message;if(tg(t)){var n=tu(t.split(\"\\n\\n\"),2),r=n[0],o=n[1],a=(void 0===o?\"\":o).trim();return{message:\"\"===a?t.trim():r.trim(),diff:a,notes:null}}var i=tu(t.split(\"\".concat(tp)),2),l=i[0],s=i[1],c=l.trim();if(void 0!==s&&s.length>1){var u=[];s.split(\"\\n\").forEach(function(e){\"\"!==e.trim()&&(e.trim().startsWith(\"at \")||u.push(e))});var d=td(c.split(\"\\n\\n\")),f=d[0],p=d.slice(1);return{message:f,diff:u.join(\"\\n\"),notes:p.join(\"\\n\\n\")||null}}var h=td(c.split(\"\\n\\n\"));return{message:h[0],diff:null,notes:h.slice(1).join(\"\\n\\n\")}}(t),l=i.message,s=i.notes,c=i.diff;return null===l?n$:{hydrationWarning:l,notes:s,reactOutputComponentDiff:c}},[t,n]));if(s||!c)return m[0]!==b||m[1]!==s?(d={isLoading:s,activeIdx:b,setActiveIndex:w,activeError:null,errorDetails:null,errorCode:null,errorType:null,notes:null,hydrationWarning:null},m[0]=b,m[1]=s,m[2]=d):d=m[2],d;var _=c.error;m[3]!==_?(f=(void 0===(l=_)?\"undefined\":nU(l))===\"object\"&&null!==l&&\"__NEXT_ERROR_CODE\"in l&&\"string\"==typeof l.__NEXT_ERROR_CODE?l.__NEXT_ERROR_CODE:(void 0===l?\"undefined\":nU(l))===\"object\"&&null!==l&&\"digest\"in l&&\"string\"==typeof l.digest?l.digest.split(\"@\").find(function(e){return e.startsWith(\"E\")}):void 0,m[3]=_,m[4]=f):f=m[4];var k=f;m[5]!==c.type||m[6]!==_?(r=_,p=\"recoverable\"===(o=c.type)?\"Recoverable \".concat(r.name):\"console\"===o?\"Console \".concat(r.name):\"Runtime \".concat(r.name),m[5]=c.type,m[6]=_,m[7]=p):p=m[7];var E=p,j=C.notes,S=C.hydrationWarning;return m[8]!==c||m[9]!==b||m[10]!==k||m[11]!==C||m[12]!==E||m[13]!==S||m[14]!==s||m[15]!==j?(h={isLoading:s,activeIdx:b,setActiveIndex:w,activeError:c,errorDetails:C,errorCode:k,errorType:E,notes:j,hydrationWarning:S},m[8]=c,m[9]=b,m[10]=k,m[11]=C,m[12]=E,m[13]=S,m[14]=s,m[15]=j,m[16]=h):h=m[16],h}({runtimeErrors:o,getSquashedHydrationErrorDetails:r}),u=c.isLoading,d=c.errorCode,f=c.errorType,p=c.notes,h=c.hydrationWarning,m=c.activeIdx,g=c.errorDetails,y=c.activeError,v=c.setActiveIndex,w=nN(y),C=(0,x.useMemo)(function(){var e,t=w.findIndex(function(e){return!e.ignored&&!!e.originalCodeFrame&&!!e.originalStackFrame});return null!=(e=w[t])?e:null},[w]),_=(0,x.useCallback)(function(){if(!y)return\"\";var e=[];f&&e.push(\"## Error Type\\n\".concat(f));var t=y.error,n=t.message;if(\"environmentName\"in t&&t.environmentName){var r=\"[ \".concat(t.environmentName,\" ] \");n.startsWith(r)&&(n=n.slice(r.length))}if(n&&e.push(\"## Error Message\\n\".concat(n)),w.length>0){var o=w.filter(function(e){return!e.ignored});if(o.length>0){var a=o.map(function(e){if(e.originalStackFrame){var t=e.originalStackFrame,n=t.methodName,r=t.file,o=t.line1,a=t.column1;return\" at \".concat(n,\" (\").concat(r,\":\").concat(o,\":\").concat(a,\")\")}if(e.sourceStackFrame){var i=e.sourceStackFrame,l=i.methodName,s=i.file,c=i.line1,u=i.column1;return\" at \".concat(l,\" (\").concat(s,\":\").concat(c,\":\").concat(u,\")\")}return\"\"}).filter(Boolean);a.length>0&&e.push(\"\\n\".concat(a.join(\"\\n\")))}}if(null==C?void 0:C.originalCodeFrame){var i=eq()(eH(C.originalCodeFrame));e.push(\"## Code Frame\\n\".concat(i))}return\"\".concat(e.join(\"\\n\\n\"),\"\\n\\nNext.js version: \").concat(l.versionInfo.installed,\" (\").concat(\"Webpack\",\")\\n\")},[y,f,C,w,l.versionInfo]);if(u)return(0,b.jsx)(tQ,{children:(0,b.jsx)(no,{})});if(!y)return null;var k=y.error,E=[\"server\",\"edge-server\"].includes(nP(k)||\"\");return(0,b.jsxs)(nc,(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({errorCode:d,errorType:f,errorMessage:h?(0,b.jsx)(nH,{message:h}):(0,b.jsx)(nV,{error:k}),onClose:E?void 0:i,debugInfo:a,error:k,runtimeErrors:o,activeIdx:m,setActiveIndex:v,dialogResizerRef:s,generateErrorInfo:_},l),n=n={children:[(0,b.jsxs)(\"div\",{className:\"error-overlay-notes-container\",children:[p?(0,b.jsx)(b.Fragment,{children:(0,b.jsx)(\"p\",{id:\"nextjs__container_errors__notes\",className:\"nextjs__container_errors__notes\",children:p})}):null,h?(0,b.jsx)(\"p\",{id:\"nextjs__container_errors__link\",className:\"nextjs__container_errors__link\",children:(0,b.jsx)(ev,{text:\"See more info here: \".concat(th)})}):null]}),g.reactOutputComponentDiff?(0,b.jsx)(nO,{reactOutputComponentDiff:g.reactOutputComponentDiff||\"\"}):null,(0,b.jsx)(x.Suspense,{fallback:(0,b.jsx)(\"div\",{\"data-nextjs-error-suspended\":!0}),children:(0,b.jsx)(nR,{error:y,dialogResizerRef:s},y.id.toString())})]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))}function nY(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,x,w=(0,A.c)(19);return(w[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"pages\"}),w[0]=r):r=w[0],w[1]===Symbol.for(\"react.memo_cache_sentinel\")?(o=(0,b.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js. Turbopack can be used in Next.js in both the\",\" \",r,\" and\",\" \",(0,b.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"app\"}),\" directories for faster local development.\"]}),w[1]=o):o=w[1],w[2]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,b.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"To enable Turbopack, use the\",\" \",(0,b.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"--turbopack\"}),\" flag when running the Next.js development server.\"]}),w[2]=a):a=w[2],w[3]!==e)?(i=(0,b.jsxs)(\"article\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({className:\"dev-tools-info-article\"},e),n=n={children:[o,a]},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),w[3]=e,w[4]=i):i=w[4],w[5]===Symbol.for(\"react.memo_cache_sentinel\")?(l=(0,b.jsx)(e6,{actionLabel:\"Copy Next.js Turbopack Command\",successLabel:\"Next.js Turbopack Command Copied\",content:\"--turbopack\",className:\"dev-tools-info-copy-button\"}),w[5]=l):l=w[5],w[6]===Symbol.for(\"react.memo_cache_sentinel\")?(s=(0,b.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" \"}),c=(0,b.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\"{\"}),w[6]=s,w[7]=c):(s=w[6],c=w[7]),w[8]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,b.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",(0,b.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"scripts\"'}),\": \",\"{\"]}),w[8]=u):u=w[8],w[9]===Symbol.for(\"react.memo_cache_sentinel\")?(d=(0,b.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"dev\"'}),w[9]=d):d=w[9],w[10]===Symbol.for(\"react.memo_cache_sentinel\")?(f=(0,b.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line dev-tools-info-highlight\",children:[\" \",d,\":\",\" \",(0,b.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next dev --turbopack\"'}),\",\"]}),w[10]=f):f=w[10],w[11]===Symbol.for(\"react.memo_cache_sentinel\")?(p=(0,b.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"build\"'}),w[11]=p):p=w[11],w[12]===Symbol.for(\"react.memo_cache_sentinel\")?(h=(0,b.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",p,\":\",\" \",(0,b.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next build\"'}),\",\"]}),w[12]=h):h=w[12],w[13]===Symbol.for(\"react.memo_cache_sentinel\")?(m=(0,b.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"start\"'}),w[13]=m):m=w[13],w[14]===Symbol.for(\"react.memo_cache_sentinel\")?(g=(0,b.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",m,\":\",\" \",(0,b.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next start\"'}),\",\"]}),w[14]=g):g=w[14],w[15]===Symbol.for(\"react.memo_cache_sentinel\")?(y=(0,b.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"lint\"'}),w[15]=y):y=w[15],w[16]===Symbol.for(\"react.memo_cache_sentinel\")?(v=(0,b.jsx)(\"div\",{className:\"dev-tools-info-code-block-container\",children:(0,b.jsxs)(\"div\",{className:\"dev-tools-info-code-block\",children:[l,(0,b.jsx)(\"pre\",{className:\"dev-tools-info-code-block-pre\",children:(0,b.jsxs)(\"code\",{children:[s,c,u,f,h,g,(0,b.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",y,\":\",\" \",(0,b.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next lint\"'})]}),(0,b.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" }\"}),(0,b.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\"}\"}),(0,b.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" \"})]})})]})}),w[16]=v):v=w[16],w[17]!==i?(x=(0,b.jsxs)(b.Fragment,{children:[i,v]}),w[17]=i,w[18]=x):x=w[18],x}function nK(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function nX(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function nG(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function nQ(e){var t,n,r,o,a,i,l=(0,A.c)(10);l[0]!==e?(t=nG(e,[\"routerType\"]),n=e.routerType,l[0]=e,l[1]=t,l[2]=n):(t=l[1],n=l[2]),l[3]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"The path\",\" \",(0,b.jsx)(\"code\",{className:\"dev-tools-info-code\",children:window.location.pathname}),\" \",'is marked as \"static\" since it will be prerendered during the build time.']}),l[3]=r):r=l[3];var s=\"pages\"===n?\"https://nextjs.org/docs/pages/building-your-application/data-fetching/incremental-static-regeneration\":\"https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration\";return l[4]!==s?(o=(0,b.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"With Static Rendering, routes are rendered at build time, or in the background after\",\" \",(0,b.jsx)(\"a\",{className:\"dev-tools-info-link\",href:s,target:\"_blank\",rel:\"noopener noreferrer\",children:\"data revalidation\"}),\".\"]}),l[4]=s,l[5]=o):o=l[5],l[6]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,b.jsx)(\"p\",{className:\"dev-tools-info-paragraph\",children:\"Static rendering is useful when a route has data that is not personalized to the user and can be known at build time, such as a static blog post or a product page.\"}),l[6]=a):a=l[6],l[7]!==t||l[8]!==o?(i=(0,b.jsxs)(\"article\",nX(nK({className:\"dev-tools-info-article\"},t),{children:[r,o,a]})),l[7]=t,l[8]=o,l[9]=i):i=l[9],i}function nJ(e){var t,n,r,o,a,i,l,s=(0,A.c)(11);return s[0]!==e?(t=nG(e,[\"routerType\"]),n=e.routerType,s[0]=e,s[1]=t,s[2]=n):(t=s[1],n=s[2]),s[3]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(\"code\",{className:\"dev-tools-info-code\",children:window.location.pathname}),s[3]=r):r=s[3],s[4]===Symbol.for(\"react.memo_cache_sentinel\")?(o=(0,b.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"The path\",\" \",r,\" \",'is marked as \"dynamic\" since it will be rendered for each user at',\" \",(0,b.jsx)(\"strong\",{children:\"request time\"}),\".\"]}),a=(0,b.jsx)(\"p\",{className:\"dev-tools-info-paragraph\",children:\"Dynamic rendering is useful when a route has data that is personalized to the user or has information that can only be known at request time, such as cookies or the URL's search params.\"}),s[4]=o,s[5]=a):(o=s[4],a=s[5]),s[6]!==n?(i=\"pages\"===n?(0,b.jsxs)(\"p\",{className:\"dev-tools-info-pagraph\",children:[\"Exporting the\",\" \",(0,b.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/pages/building-your-application/data-fetching/get-server-side-props\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"getServerSideProps\"}),\" \",\"function will opt the route into dynamic rendering. This function will be called by the server on every request.\"]}):(0,b.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"During rendering, if a\",\" \",(0,b.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#dynamic-apis\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"Dynamic API\"}),\" \",\"or a\",\" \",(0,b.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/app/api-reference/functions/fetch\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"fetch\"}),\" \",\"option of\",\" \",(0,b.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"{ cache: 'no-store' }\"}),\" \",\"is discovered, Next.js will switch to dynamically rendering the whole route.\"]}),s[6]=n,s[7]=i):i=s[7],s[8]!==t||s[9]!==i?(l=(0,b.jsxs)(\"article\",nX(nK({className:\"dev-tools-info-article\"},t),{children:[o,a,i]})),s[8]=t,s[9]=i,s[10]=l):l=s[10],l}var n0={pages:{static:\"https://nextjs.org/docs/pages/building-your-application/rendering/static-site-generation\",dynamic:\"https://nextjs.org/docs/pages/building-your-application/rendering/server-side-rendering\"},app:{static:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#static-rendering-default\",dynamic:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#dynamic-rendering\"}};function n1(e){var t,n,r,o,a=(0,A.c)(8);return a[0]!==e?(n=nG(e,[\"routerType\",\"isStaticRoute\"]),r=e.routerType,t=e.isStaticRoute,a[0]=e,a[1]=t,a[2]=n,a[3]=r):(t=a[1],n=a[2],r=a[3]),a[4]!==t||a[5]!==n||a[6]!==r?(o=t?(0,b.jsx)(nQ,nK({routerType:r},n)):(0,b.jsx)(nJ,nK({routerType:r},n)),a[4]=t,a[5]=n,a[6]=r,a[7]=o):o=a[7],o}function n2(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",fill:\"none\",children:(0,b.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"m.191 2.063.56.498 13.5 12 .561.498.997-1.121-.56-.498-1.81-1.608 2.88-3.342v-.98l-3.204-3.72C10.645.923 6.365.686 3.594 3.08L1.748 1.44 1.188.94.19 2.063ZM14.761 8l-2.442 2.836-1.65-1.466a3.001 3.001 0 0 0-4.342-3.86l-1.6-1.422a5.253 5.253 0 0 1 7.251.682L14.76 8ZM7.526 6.576l1.942 1.727a1.499 1.499 0 0 0-1.942-1.727Zm-7.845.935 1.722-2 1.137.979L1.24 8l2.782 3.23A5.25 5.25 0 0 0 9.9 12.703l.54 1.4a6.751 6.751 0 0 1-7.555-1.892L-.318 8.49v-.98Z\",clipRule:\"evenodd\"})}),t[0]=e):e=t[0],e}function n4(){var e,t,n=(0,A.c)(2);return n[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"g\",{clipPath:\"url(#light_icon_clip_path)\",children:(0,b.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"M8.75.75V0h-1.5v2h1.5V.75ZM3.26 4.32l-.53-.53-.354-.353-.53-.53 1.06-1.061.53.53.354.354.53.53-1.06 1.06Zm8.42-1.06.53-.53.353-.354.53-.53 1.061 1.06-.53.53-.354.354-.53.53-1.06-1.06ZM8 11.25a3.25 3.25 0 1 0 0-6.5 3.25 3.25 0 0 0 0 6.5Zm0 1.5a4.75 4.75 0 1 0 0-9.5 4.75 4.75 0 0 0 0 9.5Zm6-5.5h2v1.5h-2v-1.5Zm-13.25 0H0v1.5h2v-1.5H.75Zm1.62 5.32-.53.53 1.06 1.06.53-.53.354-.353.53-.53-1.06-1.061-.53.53-.354.354Zm10.2 1.06.53.53 1.06-1.06-.53-.53-.354-.354-.53-.53-1.06 1.06.53.53.353.354ZM8.75 14v2h-1.5v-2h1.5Z\",clipRule:\"evenodd\"})}),n[0]=e):e=n[0],n[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"20\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",children:[e,(0,b.jsx)(\"defs\",{children:(0,b.jsx)(\"clipPath\",{id:\"light_icon_clip_path\",children:(0,b.jsx)(\"path\",{fill:\"currentColor\",d:\"M0 0h16v16H0z\"})})})]}),n[1]=t):t=n[1],t}function n5(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{\"data-testid\":\"geist-icon\",height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M1.5 8.00005C1.5 5.53089 2.99198 3.40932 5.12349 2.48889C4.88136 3.19858 4.75 3.95936 4.75 4.7501C4.75 8.61609 7.88401 11.7501 11.75 11.7501C11.8995 11.7501 12.048 11.7454 12.1953 11.7361C11.0955 13.1164 9.40047 14.0001 7.5 14.0001C4.18629 14.0001 1.5 11.3138 1.5 8.00005ZM6.41706 0.577759C2.78784 1.1031 0 4.22536 0 8.00005C0 12.1422 3.35786 15.5001 7.5 15.5001C10.5798 15.5001 13.2244 13.6438 14.3792 10.9921L13.4588 9.9797C12.9218 10.155 12.3478 10.2501 11.75 10.2501C8.71243 10.2501 6.25 7.78767 6.25 4.7501C6.25 3.63431 6.58146 2.59823 7.15111 1.73217L6.41706 0.577759ZM13.25 1V1.75V2.75L14.25 2.75H15V4.25H14.25H13.25V5.25V6H11.75V5.25V4.25H10.75L10 4.25V2.75H10.75L11.75 2.75V1.75V1H13.25Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function n3(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{width:\"16\",height:\"16\",strokeLinejoin:\"round\",children:(0,b.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"M0 2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v8.5a1 1 0 0 1-1 1H8.75v3h1.75V16h-5v-1.5h1.75v-3H1a1 1 0 0 1-1-1V2Zm1.5.5V10h13V2.5h-13Z\",clipRule:\"evenodd\"})}),t[0]=e):e=t[0],e}function n6(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function n9(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||n7(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function n8(e){return function(e){if(Array.isArray(e))return n6(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||n7(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function n7(e,t){if(e){if(\"string\"==typeof e)return n6(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return n6(e,t)}}function re(){var e,t,n=(e=[\"\\n .shortcut-recorder {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n position: relative;\\n font-family: var(--font-stack-sans);\\n\\n .shortcut-recorder-button {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n background: transparent;\\n border: 1px dashed var(--color-gray-500);\\n border-radius: var(--rounded-lg);\\n padding: 6px 8px;\\n font-weight: 400;\\n font-size: var(--size-14);\\n color: var(--color-gray-1000);\\n transition: border-color 150ms var(--timing-swift);\\n\\n &[data-has-shortcut='true'] {\\n border: 1px solid var(--color-gray-alpha-400);\\n\\n &:hover {\\n border-color: var(--color-gray-500);\\n }\\n }\\n\\n &:hover {\\n border-color: var(--color-gray-600);\\n }\\n\\n &::placeholder {\\n color: var(--color-gray-900);\\n }\\n\\n &[data-pristine='false']::placeholder {\\n color: transparent;\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n }\\n\\n kbd {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-family: var(--font-stack-sans);\\n background: var(--color-gray-200);\\n min-width: 20px;\\n height: 20px;\\n font-size: 14px;\\n border-radius: 4px;\\n color: var(--color-gray-1000);\\n\\n &[data-symbol='false'] {\\n padding: 0 4px;\\n }\\n }\\n\\n .shortcut-recorder-clear-button {\\n cursor: pointer;\\n color: var(--color-gray-1000);\\n width: 20px;\\n height: 20px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 4px;\\n transition: background 150ms var(--timing-swift);\\n\\n &:hover {\\n background: var(--color-gray-300);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n svg {\\n width: 14px;\\n height: 14px;\\n }\\n }\\n }\\n\\n .shortcut-recorder-keys {\\n pointer-events: none;\\n user-select: none;\\n display: flex;\\n align-items: center;\\n gap: 2px;\\n }\\n\\n .shortcut-recorder-tooltip {\\n --gap: 8px;\\n --background: var(--color-gray-1000);\\n background: var(--background);\\n color: var(--color-background-100);\\n font-size: var(--size-14);\\n padding: 4px 8px;\\n border-radius: 8px;\\n position: absolute;\\n bottom: calc(100% + var(--gap));\\n text-align: center;\\n opacity: 0;\\n scale: 0.96;\\n white-space: nowrap;\\n user-select: none;\\n transition:\\n opacity 150ms var(--timing-swift),\\n scale 150ms var(--timing-swift);\\n\\n &[data-show='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n svg {\\n position: absolute;\\n transform: translateX(-50%);\\n bottom: -6px;\\n left: 50%;\\n }\\n\\n .shortcut-recorder-status {\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n }\\n\\n .shortcut-recorder-status-icon {\\n width: 7px;\\n height: 7px;\\n border-radius: 50%;\\n flex-shrink: 0;\\n background: var(--color-red-700);\\n\\n &[data-success='true'] {\\n background: var(--color-green-700);\\n }\\n }\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return re=function(){return n},n}var rt=[\"Meta\",\"Control\",\"Ctrl\",\"Alt\",\"Option\",\"Shift\"];function rn(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h=(0,A.c)(33),m=e.value,g=e.onChange,y=n9((0,x.useState)(!0),2),v=y[0],w=y[1],C=n9((0,x.useState)(!1),2),_=C[0],k=C[1];h[0]!==m?(t=null!=m?m:[],h[0]=m,h[1]=t):t=h[1];var E=n9((0,x.useState)(t),2),j=E[0],S=E[1],O=n9((0,x.useState)(!1),2),B=O[0],P=O[1],I=(0,x.useRef)(null),z=(0,x.useRef)(null),T=!!m||j.length>0;h[2]!==g||h[3]!==v||h[4]!==_?(n=function(e){if(e.target===z.current&&\"Tab\"!==e.key){I.current&&clearTimeout(I.current),_||k(!0),v&&(S([]),w(!1));var t=function(e){I.current=window.setTimeout(function(){P(!0),g(e.join(\"+\")),I.current=window.setTimeout(function(){k(!1)},1e3)},180)};e.preventDefault(),e.stopPropagation(),S(function(n){if(n.includes(e.code)||n.includes(e.key))return n;if(!rt.includes(e.key)){var r=n.findIndex(ra);if(-1!==r){var o=n8(n);return o[r]=e.code,t(o),o}var a=n8(n).concat([e.code]);return t(a),a}for(var i=n8(n),l=rt.indexOf(e.key),s=0,c=0;c<i.length;c++)if(rt.includes(i[c])){if(l<rt.indexOf(i[c])){s=c;break}s=c+1}else break;return i.splice(s,0,e.key),t(i),i})}},h[2]=g,h[3]=v,h[4]=_,h[5]=n):n=h[5];var D=n;h[6]!==g?(r=function(){var e;null==(e=z.current)||e.focus(),S([]),P(!1),setTimeout(function(){k(!0)}),g(null)},h[6]=g,h[7]=r):r=h[7];var L=r;h[8]===Symbol.for(\"react.memo_cache_sentinel\")?(o=function(){P(!1),k(!1),w(!0)},h[8]=o):o=h[8];var N=o;h[9]===Symbol.for(\"react.memo_cache_sentinel\")?(a=function(){var e;I.current&&clearTimeout(I.current),k(!0),null==(e=z.current)||e.focus()},h[9]=a):a=h[9];var R=a;h[10]!==T||h[11]!==j?(i=T?(0,b.jsx)(\"div\",{className:\"shortcut-recorder-keys\",children:j.map(ro)}):\"Record Shortcut\",h[10]=T,h[11]=j,h[12]=i):i=h[12],h[13]!==L||h[14]!==T?(l=T&&(0,b.jsx)(\"div\",{className:\"shortcut-recorder-clear-button\",role:\"button\",onClick:L,onFocus:rr,onKeyDown:function(e){(\"Enter\"===e.key||\" \"===e.key)&&(L(),e.stopPropagation())},\"aria-label\":\"Clear shortcut\",tabIndex:0,children:(0,b.jsx)(rc,{})}),h[13]=L,h[14]=T,h[15]=l):l=h[15],h[16]!==D||h[17]!==T||h[18]!==i||h[19]!==l?(s=(0,b.jsxs)(\"button\",{className:\"shortcut-recorder-button\",ref:z,onClick:R,onFocus:R,onBlur:N,onKeyDown:D,\"data-has-shortcut\":T,\"data-shortcut-recorder\":\"true\",children:[i,l]}),h[16]=D,h[17]=T,h[18]=i,h[19]=l,h[20]=s):s=h[20],h[21]!==B?(c=(0,b.jsx)(\"div\",{className:\"shortcut-recorder-status-icon\",\"data-success\":B}),h[21]=B,h[22]=c):c=h[22];var M=B?\"Shortcut set\":\"Recording\";return h[23]!==M||h[24]!==c?(u=(0,b.jsxs)(\"div\",{className:\"shortcut-recorder-status\",children:[c,M]}),h[23]=M,h[24]=c,h[25]=u):u=h[25],h[26]===Symbol.for(\"react.memo_cache_sentinel\")?(d=(0,b.jsx)(ri,{}),h[26]=d):d=h[26],h[27]!==_||h[28]!==u?(f=(0,b.jsxs)(\"div\",{className:\"shortcut-recorder-tooltip\",\"data-show\":_,children:[u,d]}),h[27]=_,h[28]=u,h[29]=f):f=h[29],h[30]!==f||h[31]!==s?(p=(0,b.jsxs)(\"div\",{className:\"shortcut-recorder\",children:[s,f]}),h[30]=f,h[31]=s,h[32]=p):p=h[32],p}function rr(e){return e.stopPropagation()}function ro(e){return(0,b.jsx)(rl,{children:e},e)}function ra(e){return!rt.includes(e)}function ri(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{fill:\"none\",height:\"6\",viewBox:\"0 0 14 6\",width:\"14\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,b.jsx)(\"path\",{d:\"M13.8284 0H0.17157C0.702003 0 1.21071 0.210714 1.58578 0.585787L5.58578 4.58579C6.36683 5.36684 7.63316 5.36683 8.41421 4.58579L12.4142 0.585786C12.7893 0.210714 13.298 0 13.8284 0Z\",fill:\"var(--background)\"})}),t[0]=e):e=t[0],e}function rl(e){var t,n,r,o,a=(0,A.c)(9),i=e.children;a[0]!==i?(t=function(e){switch(e){case\"Meta\":return(0,b.jsx)(rs,{});case\"Alt\":case\"Option\":return\"⌥\";case\"Control\":case\"Ctrl\":return\"Ctrl\";case\"Shift\":return\"⇧\";case\"Enter\":return\"⏎\";case\"Escape\":case\"Esc\":return\"Esc\";case\" \":case\"Space\":case\"Spacebar\":return\"Space\";case\"ArrowUp\":return\"↑\";case\"ArrowDown\":return\"↓\";case\"ArrowLeft\":return\"←\";case\"ArrowRight\":return\"→\";case\"Tab\":return\"Tab\";case\"Backspace\":return\"⌫\";case\"Delete\":return\"⌦\";default:if(1===i.length)return i.toUpperCase();return i}},a[0]=i,a[1]=t):t=a[1];var l=t;if(a[2]!==i||a[3]!==l){var s=l(i);n=\"string\"==typeof s&&1===s.length,r=function(e){if(\"string\"!=typeof e)return e;var t={Minus:\"-\",Equal:\"=\",BracketLeft:\"[\",BracketRight:\"]\",Backslash:\"\\\\\",Semicolon:\";\",Quote:\"'\",Comma:\",\",Period:\".\",Backquote:\"`\",Space:\" \",Slash:\"/\",IntlBackslash:\"\\\\\"};return t[e]?t[e]:/^Key([A-Z])$/.test(e)?e.replace(/^Key/,\"\"):/^Digit([0-9])$/.test(e)?e.replace(/^Digit/,\"\"):/^Numpad([0-9])$/.test(e)?e.replace(/^Numpad/,\"\"):\"NumpadAdd\"===e?\"+\":\"NumpadSubtract\"===e?\"-\":\"NumpadMultiply\"===e?\"*\":\"NumpadDivide\"===e?\"/\":\"NumpadDecimal\"===e?\".\":\"NumpadEnter\"===e?\"Enter\":e}(s),a[2]=i,a[3]=l,a[4]=n,a[5]=r}else n=a[4],r=a[5];return a[6]!==n||a[7]!==r?(o=(0,b.jsx)(\"kbd\",{\"data-symbol\":n,children:r}),a[6]=n,a[7]=r,a[8]=o):o=a[8],o}function rs(){var e,t,n,r,o,a=(0,A.c)(6),i=n9((0,x.useState)(\"\\xa0\"),2),l=i[0],s=i[1];a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=rd(/^Mac/)||rd(/^iPhone/)||rd(/^iPad/)||rd(/^Mac/)&&navigator.maxTouchPoints>1,a[0]=e):e=a[0];var c=e;return a[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=function(){!0===c&&s(\"⌘\"),!1===c&&s(\"Ctrl\")},n=[c],a[1]=t,a[2]=n):(t=a[1],n=a[2]),(0,x.useEffect)(t,n),a[3]===Symbol.for(\"react.memo_cache_sentinel\")?(r={minWidth:\"1em\",display:\"inline-block\"},a[3]=r):r=a[3],a[4]!==l?(o=(0,b.jsx)(\"span\",{style:r,children:l}),a[4]=l,a[5]=o):o=a[5],o}function rc(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}var ru=es(re());function rd(e){return\"undefined\"!=typeof window&&null!=window.navigator?e.test(window.navigator.platform):void 0}function rf(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rp(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){n(e);return}l.done?t(s):Promise.resolve(s).then(r,o)}var rh=__nested_webpack_require_378213__(\"./dist/compiled/zod/index.cjs\"),rm=rh.z.object({theme:rh.z.enum([\"light\",\"dark\",\"system\"]).optional(),disableDevIndicator:rh.z.boolean().optional(),devToolsPosition:rh.z.enum([\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"]).optional(),devToolsPanelPosition:rh.z.record(rh.z.string(),rh.z.enum([\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"])).optional(),devToolsPanelSize:rh.z.record(rh.z.string(),rh.z.object({width:rh.z.number(),height:rh.z.number()})).optional(),scale:rh.z.number().optional(),hideShortcut:rh.z.string().nullable().optional()});function rg(e){return e&&\"undefined\"!=typeof Symbol&&e.constructor===Symbol?\"symbol\":typeof e}var ry={},rv=null;function rb(){if(0!==Object.keys(ry).length){var e=JSON.stringify(ry);ry={},fetch(\"/__nextjs_devtools_config\",{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:e,keepalive:!0}).catch(function(t){console.warn(\"[Next.js DevTools] Failed to save config:\",{data:e,error:t})})}}function rA(e){var t=rm.safeParse(e);if(!t.success)return void console.warn(\"[Next.js DevTools] Invalid config patch:\",t.error.message);ry=function e(t,n){if(!n||(void 0===n?\"undefined\":rg(n))!==\"object\"||Array.isArray(n)||!t||(void 0===t?\"undefined\":rg(t))!==\"object\"||Array.isArray(t))return n;var r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},t);for(var o in n){var a=n[o],i=t[o];void 0!==a&&(a&&(void 0===a?\"undefined\":rg(a))===\"object\"&&!Array.isArray(a)&&i&&(void 0===i?\"undefined\":rg(i))===\"object\"&&!Array.isArray(i)?r[o]=e(i,a):r[o]=a)}return r}(ry,e),rv&&clearTimeout(rv),rv=setTimeout(rb,120)}function rx(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rw(){var e,t,n=(e=[\"\\n .preferences-container {\\n width: 100%;\\n }\\n\\n @media (min-width: 576px) {\\n .preferences-container {\\n width: 480px;\\n }\\n }\\n\\n .preference-section:first-child {\\n padding-top: 0;\\n }\\n\\n .preference-section {\\n padding: 12px 0;\\n border-bottom: 1px solid var(--color-gray-400);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n gap: 24px;\\n }\\n\\n .preference-section:last-child {\\n border-bottom: none;\\n }\\n\\n .preference-header {\\n margin-bottom: 0;\\n flex: 1;\\n }\\n\\n .preference-header label {\\n font-size: var(--size-14);\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n margin: 0;\\n }\\n\\n .preference-description {\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n margin: 0;\\n }\\n\\n .select-button,\\n .action-button {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-lg);\\n font-weight: 400;\\n font-size: var(--size-14);\\n color: var(--color-gray-1000);\\n padding: 6px 8px;\\n transition: border-color 150ms var(--timing-swift);\\n\\n &:hover {\\n border-color: var(--color-gray-500);\\n }\\n\\n svg {\\n width: 14px;\\n height: 14px;\\n overflow: visible;\\n }\\n }\\n\\n .select-button {\\n &:focus-within {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n select {\\n all: unset;\\n }\\n\\n option {\\n color: var(--color-gray-1000);\\n background: var(--color-background-100);\\n }\\n }\\n\\n .preference-section button:disabled {\\n opacity: 0.6;\\n cursor: not-allowed;\\n }\\n\\n :global(.icon) {\\n width: 18px;\\n height: 18px;\\n color: #666;\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return rw=function(){return n},n}function rC(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,w,C,_,k,E,j,S,B,P,I,z,T,D,L,N,R,M,Z,U,F,q,H,V,$,W,Y=(0,A.c)(65),K=e.theme,X=e.hide,G=e.hideShortcut,Q=e.setHideShortcut,J=e.scale,ee=e.setPosition,et=e.setScale,en=e.position,er=(o=(t=(0,x.useState)(!1),n=2,r=function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return rf(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rf(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}())[0],a=r[1],{restartServer:function(e){var t,n=e.invalidatePersistentCache;return(t=function(){var e,t,r,o,i,l;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(n)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:a(!0),e=n?\"/__nextjs_restart_dev?invalidatePersistentCache=1\":\"/__nextjs_restart_dev\",t=!1,s.label=1;case 1:return s.trys.push([1,11,12,13]),[4,fetch(\"/__nextjs_server_status\").then(function(e){return e.json()}).then(function(e){return e.executionId}).catch(function(e){return console.log(\"[Next.js DevTools] Failed to fetch server status while restarting dev server.\",e),null})];case 2:if(!(r=s.sent()))return console.log(\"[Next.js DevTools] Failed to get the current server execution ID while restarting dev server.\"),[2];return[4,fetch(e,{method:\"POST\"})];case 3:if(!(o=s.sent()).ok)return console.log(\"[Next.js DevTools] Failed to fetch restart server endpoint. Status:\",o.status),[2];i=0,s.label=4;case 4:if(!(i<10))return[3,10];return[4,new Promise(function(e){return setTimeout(e,1e3)})];case 5:s.sent(),s.label=6;case 6:return s.trys.push([6,8,,9]),[4,fetch(\"/__nextjs_server_status\").then(function(e){return e.json()}).then(function(e){return e.executionId})];case 7:if(l=s.sent(),r!==l)return t=!0,window.location.reload(),[2];return[3,9];case 8:return s.sent(),[3,9];case 9:return i++,[3,4];case 10:return console.log(\"[Next.js DevTools] Failed to restart server. Exhausted all polling attempts.\"),[2];case 11:return console.log(\"[Next.js DevTools] Failed to restart server.\",s.sent()),[2];case 12:return t||a(!1),[7];case 13:return[2]}})},function(){var e=this,n=arguments;return new Promise(function(r,o){var a=t.apply(e,n);function i(e){rp(a,r,o,i,l,\"next\",e)}function l(e){rp(a,r,o,i,l,\"throw\",e)}i(void 0)})})()},isPending:o}),eo=er.restartServer,ea=er.isPending,ei=da().shadowRoot;Y[0]!==ei.host?(i=function(e){var t=ei.host;if(\"system\"===e.target.value){t.classList.remove(\"dark\"),t.classList.remove(\"light\"),rA({theme:\"system\"});return}\"dark\"===e.target.value?(t.classList.add(\"dark\"),t.classList.remove(\"light\"),rA({theme:\"dark\"})):(t.classList.remove(\"dark\"),t.classList.add(\"light\"),rA({theme:\"light\"}))},Y[0]=ei.host,Y[1]=i):i=Y[1];var el=i;Y[2]!==ee?(l=function(e){ee(e.target.value),rA({devToolsPosition:e.target.value})},Y[2]=ee,Y[3]=l):l=Y[3];var es=l;Y[4]!==et?(s=function(e){var t=Number(e.target.value);et(t),rA({scale:t})},Y[4]=et,Y[5]=s):s=Y[5];var ec=s;return Y[6]===Symbol.for(\"react.memo_cache_sentinel\")?(c=(0,b.jsx)(\"h2\",{className:\"dev-tools-info-section-title\",children:\"General\"}),Y[6]=c):c=Y[6],Y[7]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,b.jsxs)(\"div\",{className:\"preference-header\",children:[(0,b.jsx)(\"label\",{htmlFor:\"theme\",children:\"Theme\"}),(0,b.jsx)(\"p\",{className:\"preference-description\",children:\"Select your theme preference.\"})]}),Y[7]=u):u=Y[7],Y[8]!==K?(d=(0,b.jsx)(rE,{theme:K}),Y[8]=K,Y[9]=d):d=Y[9],Y[10]===Symbol.for(\"react.memo_cache_sentinel\")?(p=(0,b.jsx)(\"option\",{value:\"system\",children:\"System\"}),h=(0,b.jsx)(\"option\",{value:\"light\",children:\"Light\"}),f=(0,b.jsx)(\"option\",{value:\"dark\",children:\"Dark\"}),Y[10]=f,Y[11]=p,Y[12]=h):(f=Y[10],p=Y[11],h=Y[12]),Y[13]!==el||Y[14]!==d||Y[15]!==K?(m=(0,b.jsxs)(\"div\",{className:\"preference-section\",children:[u,(0,b.jsxs)(rk,{id:\"theme\",name:\"theme\",prefix:d,value:K,onChange:el,children:[p,h,f]})]}),Y[13]=el,Y[14]=d,Y[15]=K,Y[16]=m):m=Y[16],Y[17]===Symbol.for(\"react.memo_cache_sentinel\")?(g=(0,b.jsxs)(\"div\",{className:\"preference-header\",children:[(0,b.jsx)(\"label\",{htmlFor:\"position\",children:\"Position\"}),(0,b.jsx)(\"p\",{className:\"preference-description\",children:\"Adjust the placement of your dev tools.\"})]}),Y[17]=g):g=Y[17],Y[18]===Symbol.for(\"react.memo_cache_sentinel\")?(y=(0,b.jsx)(\"option\",{value:\"bottom-left\",children:\"Bottom Left\"}),v=(0,b.jsx)(\"option\",{value:\"bottom-right\",children:\"Bottom Right\"}),w=(0,b.jsx)(\"option\",{value:\"top-left\",children:\"Top Left\"}),C=(0,b.jsx)(\"option\",{value:\"top-right\",children:\"Top Right\"}),Y[18]=y,Y[19]=v,Y[20]=w,Y[21]=C):(y=Y[18],v=Y[19],w=Y[20],C=Y[21]),Y[22]!==es||Y[23]!==en?(_=(0,b.jsxs)(\"div\",{className:\"preference-section\",children:[g,(0,b.jsxs)(rk,{id:\"position\",name:\"position\",value:en,onChange:es,children:[y,v,w,C]})]}),Y[22]=es,Y[23]=en,Y[24]=_):_=Y[24],Y[25]===Symbol.for(\"react.memo_cache_sentinel\")?(k=(0,b.jsxs)(\"div\",{className:\"preference-header\",children:[(0,b.jsx)(\"label\",{htmlFor:\"size\",children:\"Size\"}),(0,b.jsx)(\"p\",{className:\"preference-description\",children:\"Adjust the size of your dev tools.\"})]}),Y[25]=k):k=Y[25],Y[26]===Symbol.for(\"react.memo_cache_sentinel\")?(E=Object.entries(O).map(r_),Y[26]=E):E=Y[26],Y[27]!==ec||Y[28]!==J?(j=(0,b.jsxs)(\"div\",{className:\"preference-section\",children:[k,(0,b.jsx)(rk,{id:\"size\",name:\"size\",value:J,onChange:ec,children:E})]}),Y[27]=ec,Y[28]=J,Y[29]=j):j=Y[29],Y[30]===Symbol.for(\"react.memo_cache_sentinel\")?(S=(0,b.jsxs)(\"div\",{className:\"preference-header\",children:[(0,b.jsx)(\"label\",{id:\"hide-dev-tools\",children:\"Hide Dev Tools for this session\"}),(0,b.jsx)(\"p\",{className:\"preference-description\",children:\"Hide Dev Tools until you restart your dev server, or 1 day.\"})]}),Y[30]=S):S=Y[30],Y[31]===Symbol.for(\"react.memo_cache_sentinel\")?(B=(0,b.jsx)(n2,{}),P=(0,b.jsx)(\"span\",{children:\"Hide\"}),Y[31]=B,Y[32]=P):(B=Y[31],P=Y[32]),Y[33]!==X?(I=(0,b.jsxs)(\"div\",{className:\"preference-section\",children:[S,(0,b.jsx)(\"div\",{className:\"preference-control\",children:(0,b.jsxs)(\"button\",{\"aria-describedby\":\"hide-dev-tools\",name:\"hide-dev-tools\",\"data-hide-dev-tools\":!0,className:\"action-button\",onClick:X,children:[B,P]})})]}),Y[33]=X,Y[34]=I):I=Y[34],Y[35]===Symbol.for(\"react.memo_cache_sentinel\")?(z=(0,b.jsxs)(\"div\",{className:\"preference-header\",children:[(0,b.jsx)(\"label\",{id:\"hide-dev-tools\",children:\"Hide Dev Tools shortcut\"}),(0,b.jsx)(\"p\",{className:\"preference-description\",children:\"Set a custom keyboard shortcut to toggle visibility.\"})]}),Y[35]=z):z=Y[35],Y[36]!==G?(T=null!=(D=null==G?void 0:G.split(\"+\"))?D:null,Y[36]=G,Y[37]=T):T=Y[37],Y[38]!==Q||Y[39]!==T?(L=(0,b.jsxs)(\"div\",{className:\"preference-section\",children:[z,(0,b.jsx)(\"div\",{className:\"preference-control\",children:(0,b.jsx)(rn,{value:T,onChange:Q})})]}),Y[38]=Q,Y[39]=T,Y[40]=L):L=Y[40],Y[41]===Symbol.for(\"react.memo_cache_sentinel\")?(N=(0,b.jsx)(\"label\",{children:\"Disable Dev Tools for this project\"}),Y[41]=N):N=Y[41],Y[42]===Symbol.for(\"react.memo_cache_sentinel\")?(R=(0,b.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"devIndicators: false\"}),Y[42]=R):R=Y[42],Y[43]===Symbol.for(\"react.memo_cache_sentinel\")?(M=(0,b.jsx)(\"div\",{className:\"preference-section\",children:(0,b.jsxs)(\"div\",{className:\"preference-header\",children:[N,(0,b.jsxs)(\"p\",{className:\"preference-description\",children:[\"To disable this UI completely, set\",\" \",R,\" \",\"in your \",(0,b.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"next.config\"}),\" \",\"file.\"]})]})}),Y[43]=M):M=Y[43],Y[44]!==m||Y[45]!==_||Y[46]!==j||Y[47]!==I||Y[48]!==L?(Z=(0,b.jsxs)(\"div\",{className:\"preferences-container\",children:[m,_,j,I,L,M]}),Y[44]=m,Y[45]=_,Y[46]=j,Y[47]=I,Y[48]=L,Y[49]=Z):Z=Y[49],Y[50]===Symbol.for(\"react.memo_cache_sentinel\")?(U=(0,b.jsx)(\"h2\",{className:\"dev-tools-info-section-title\",children:\"Development Server\"}),Y[50]=U):U=Y[50],Y[51]===Symbol.for(\"react.memo_cache_sentinel\")?(F=(0,b.jsxs)(\"div\",{className:\"preference-header\",children:[(0,b.jsx)(\"label\",{id:\"restart-dev-server\",children:\"Restart Dev Server\"}),(0,b.jsx)(\"p\",{className:\"preference-description\",children:\"Restarts the development server without needing to leave the browser.\"})]}),Y[51]=F):F=Y[51],Y[52]!==eo?(q=function(){return eo({invalidatePersistentCache:!1})},Y[52]=eo,Y[53]=q):q=Y[53],Y[54]===Symbol.for(\"react.memo_cache_sentinel\")?(H=(0,b.jsx)(\"span\",{children:\"Restart\"}),Y[54]=H):H=Y[54],Y[55]!==ea||Y[56]!==q?(V=(0,b.jsx)(\"div\",{className:\"preferences-container\",children:(0,b.jsxs)(\"div\",{className:\"preference-section\",children:[F,(0,b.jsx)(\"div\",{className:\"preference-control\",children:(0,b.jsx)(\"button\",{\"aria-describedby\":\"restart-dev-server\",title:\"Restarts the development server without needing to leave the browser.\",name:\"restart-dev-server\",\"data-restart-dev-server\":!0,className:\"action-button\",onClick:q,disabled:ea,children:H})})]})}),Y[55]=ea,Y[56]=q,Y[57]=V):V=Y[57],Y[58]!==ea||Y[59]!==eo?($= true?(0,b.jsx)(\"div\",{className:\"preferences-container\",children:(0,b.jsxs)(\"div\",{className:\"preference-section\",children:[(0,b.jsxs)(\"div\",{className:\"preference-header\",children:[(0,b.jsx)(\"label\",{id:\"reset-bundler-cache\",children:\"Reset Bundler Cache\"}),(0,b.jsx)(\"p\",{className:\"preference-description\",children:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\"})]}),(0,b.jsx)(\"div\",{className:\"preference-control\",children:(0,b.jsx)(\"button\",{\"aria-describedby\":\"reset-bundler-cache\",title:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\",name:\"reset-bundler-cache\",\"data-reset-bundler-cache\":!0,className:\"action-button\",onClick:function(){return eo({invalidatePersistentCache:!0})},disabled:ea,children:(0,b.jsx)(\"span\",{children:\"Reset Cache\"})})})]})}):0,Y[58]=ea,Y[59]=eo,Y[60]=$):$=Y[60],Y[61]!==Z||Y[62]!==V||Y[63]!==$?(W=(0,b.jsxs)(b.Fragment,{children:[c,Z,U,V,$]}),Y[61]=Z,Y[62]=V,Y[63]=$,Y[64]=W):W=Y[64],W}function r_(e){var t,n,r=(n=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return rx(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rx(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),o=r[0],a=r[1];return(0,b.jsx)(\"option\",{value:a,children:o},o)}function rk(e){var t,n,r,o,a,i,l,s,c=(0,A.c)(11);return(c[0]!==e?(a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"prefix\"]),r=e.children,o=e.prefix,c[0]=e,c[1]=r,c[2]=o,c[3]=a):(r=c[1],o=c[2],a=c[3]),c[4]!==r||c[5]!==a)?(i=(0,b.jsx)(\"select\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},a),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),c[4]=r,c[5]=a,c[6]=i):i=c[6],c[7]===Symbol.for(\"react.memo_cache_sentinel\")?(l=(0,b.jsx)(rS,{}),c[7]=l):l=c[7],c[8]!==o||c[9]!==i?(s=(0,b.jsxs)(\"div\",{className:\"select-button\",children:[o,i,l]}),c[8]=o,c[9]=i,c[10]=s):s=c[10],s}function rE(e){var t,n,r,o=(0,A.c)(3);switch(e.theme){case\"system\":return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(n3,{}),o[0]=t):t=o[0],t;case\"dark\":return o[1]===Symbol.for(\"react.memo_cache_sentinel\")?(n=(0,b.jsx)(n5,{}),o[1]=n):n=o[1],n;case\"light\":return o[2]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(n4,{}),o[2]=r):r=o[2],r;default:return null}}var rj=es(rw());function rS(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",\"aria-hidden\":!0,children:(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function rO(){var e,t,n=(e=[\"\\n [data-nextjs-issue-feedback-button-group] {\\n display: flex;\\n align-items: center;\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-full);\\n background: var(--color-background-100);\\n box-shadow: var(--shadow-small);\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button {\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button:first-child {\\n padding: 4px 3px 4px 5px;\\n border-radius: var(--rounded-full) 0 0 var(--rounded-full);\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button:last-child {\\n padding: 4px 5px 4px 3px;\\n border-radius: 0 var(--rounded-full) var(--rounded-full) 0;\\n }\\n\\n [data-nextjs-issue-feedback-separator] {\\n width: 1px;\\n height: 100%;\\n background: var(--color-gray-400);\\n }\\n\"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return rO=function(){return n},n}var rB=es(rO());function rP(){var e,t,n=(e=[\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return rP=function(){return n},n}function rI(){return(0,b.jsx)(\"style\",{children:es(rP(),\"\\n .nextjs-data-copy-button {\\n color: inherit;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n .nextjs-data-copy-button:disabled {\\n background-color: var(--color-gray-100);\\n cursor: not-allowed;\\n }\\n .nextjs-data-copy-button--initial:hover:not(:disabled) {\\n cursor: pointer;\\n }\\n .nextjs-data-copy-button--error:not(:disabled),\\n .nextjs-data-copy-button--error:hover:not(:disabled) {\\n color: var(--color-ansi-red);\\n }\\n .nextjs-data-copy-button--success:not(:disabled) {\\n color: var(--color-ansi-green);\\n }\\n\",'\\n [data-nextjs-call-stack-frame-no-source] {\\n padding: 6px 8px;\\n margin-bottom: 4px;\\n\\n border-radius: var(--rounded-lg);\\n }\\n\\n [data-nextjs-call-stack-frame-no-source]:last-child {\\n margin-bottom: 0;\\n }\\n\\n [data-nextjs-call-stack-frame-ignored=\"true\"] {\\n opacity: 0.6;\\n }\\n\\n [data-nextjs-call-stack-frame] {\\n user-select: text;\\n display: block;\\n box-sizing: border-box;\\n\\n user-select: text;\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n\\n padding: 6px 8px;\\n\\n border-radius: var(--rounded-lg);\\n }\\n\\n .call-stack-frame-method-name {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n\\n margin-bottom: 4px;\\n font-family: var(--font-stack-monospace);\\n\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-20);\\n\\n svg {\\n width: var(--size-16px);\\n height: var(--size-16px);\\n }\\n }\\n\\n .open-in-editor-button, .source-mapping-error-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: var(--rounded-full);\\n padding: 4px;\\n color: var(--color-font);\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -2px;\\n }\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n }\\n\\n .call-stack-frame-file-source {\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n }\\n',nC,\"\\n [data-nextjs-environment-name-label] {\\n padding: 2px 6px;\\n margin: 0;\\n border-radius: var(--rounded-md-2);\\n background: var(--color-gray-100);\\n font-weight: 600;\\n font-size: var(--size-12);\\n color: var(--color-gray-900);\\n font-family: var(--font-stack-monospace);\\n line-height: var(--size-20);\\n }\\n\",nf,eX,nu,tO,\"\\n .error-overlay-bottom-stack-layer {\\n width: 100%;\\n height: var(--stack-layer-height);\\n position: relative;\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-xl);\\n background: var(--color-background-200);\\n transition:\\n translate 350ms var(--timing-swift),\\n box-shadow 350ms var(--timing-swift);\\n }\\n\\n .error-overlay-bottom-stack-layer-1 {\\n width: calc(100% - var(--size-24));\\n }\\n\\n .error-overlay-bottom-stack-layer-2 {\\n width: calc(100% - var(--size-48));\\n z-index: -1;\\n }\\n\\n .error-overlay-bottom-stack {\\n width: 100%;\\n position: absolute;\\n bottom: -1px;\\n height: 0;\\n overflow: visible;\\n }\\n\\n .error-overlay-bottom-stack-stack {\\n --stack-layer-height: 44px;\\n --stack-layer-height-half: calc(var(--stack-layer-height) / 2);\\n --stack-layer-trim: 13px;\\n --shadow: 0px 0.925px 0.925px 0px rgba(0, 0, 0, 0.02),\\n 0px 3.7px 7.4px -3.7px rgba(0, 0, 0, 0.04),\\n 0px 14.8px 22.2px -7.4px rgba(0, 0, 0, 0.06);\\n\\n display: grid;\\n place-items: center center;\\n width: 100%;\\n position: fixed;\\n overflow: hidden;\\n z-index: -1;\\n max-width: var(--next-dialog-max-width);\\n\\n .error-overlay-bottom-stack-layer {\\n grid-area: 1 / 1;\\n /* Hide */\\n translate: 0 calc(var(--stack-layer-height) * -1);\\n }\\n\\n &[data-stack-count='1'],\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-1 {\\n translate: 0\\n calc(var(--stack-layer-height-half) * -1 - var(--stack-layer-trim));\\n }\\n }\\n\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-2 {\\n translate: 0 calc(var(--stack-layer-trim) * -1 * 2);\\n }\\n }\\n\\n /* Only the bottom stack should have the shadow */\\n &[data-stack-count='1'] .error-overlay-bottom-stack-layer-1 {\\n box-shadow: var(--shadow);\\n }\\n\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-2 {\\n box-shadow: var(--shadow);\\n }\\n }\\n }\\n\",\"\\n .error-overlay-pagination {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n gap: 8px;\\n width: fit-content;\\n }\\n\\n .error-overlay-pagination-count {\\n color: var(--color-gray-900);\\n text-align: center;\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-16);\\n font-variant-numeric: tabular-nums;\\n }\\n\\n .error-overlay-pagination-button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-24);\\n height: var(--size-24);\\n background: var(--color-gray-300);\\n flex-shrink: 0;\\n\\n border: none;\\n border-radius: var(--rounded-full);\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n &:not(:disabled):active {\\n background: var(--color-gray-500);\\n }\\n\\n &:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n }\\n }\\n\\n .error-overlay-pagination-button-icon {\\n color: var(--color-gray-1000);\\n }\\n\",'\\n [data-nextjs-codeframe] {\\n --code-frame-padding: 12px;\\n --code-frame-line-height: var(--size-16);\\n background-color: var(--color-background-200);\\n color: var(--color-gray-1000);\\n text-overflow: ellipsis;\\n border: 1px solid var(--color-gray-400);\\n border-radius: 8px;\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n line-height: var(--code-frame-line-height);\\n margin: 8px 0;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n\\n .code-frame-link,\\n .code-frame-pre {\\n padding: var(--code-frame-padding);\\n }\\n\\n .code-frame-link svg {\\n flex-shrink: 0;\\n }\\n\\n .code-frame-lines {\\n min-width: max-content;\\n }\\n\\n .code-frame-link [data-text] {\\n text-align: left;\\n margin: auto 6px;\\n }\\n\\n .code-frame-header {\\n width: 100%;\\n transition: background 100ms ease-out;\\n border-radius: 8px 8px 0 0;\\n border-bottom: 1px solid var(--color-gray-400);\\n }\\n\\n [data-with-open-in-editor-link-source-file] {\\n padding: 4px;\\n margin: -4px 0 -4px auto;\\n border-radius: var(--rounded-full);\\n margin-left: auto;\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -2px;\\n }\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n }\\n\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n\\n [data-nextjs-codeframe] *:not(a) {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe-line][data-nextjs-codeframe-line--errored=\"true\"] {\\n position: relative;\\n isolation: isolate;\\n\\n > span { \\n position: relative;\\n z-index: 1;\\n }\\n\\n &::after {\\n content: \"\";\\n width: calc(100% + var(--code-frame-padding) * 2);\\n height: var(--code-frame-line-height);\\n left: calc(-1 * var(--code-frame-padding));\\n background: var(--color-red-200);\\n box-shadow: 2px 0 0 0 var(--color-red-900) inset;\\n position: absolute;\\n }\\n }\\n\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n }\\n\\n .code-frame-link {\\n display: flex;\\n margin: 0;\\n outline: 0;\\n }\\n .code-frame-link [data-icon=\\'right\\'] {\\n margin-left: auto;\\n }\\n\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\\n [data-nextjs-codeframe] svg {\\n color: var(--color-gray-900);\\n }\\n',\"\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-terminal] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-terminal] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-terminal] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\",\"\\n [data-with-open-in-editor-link] svg {\\n width: auto;\\n height: var(--size-14);\\n margin-left: 8px;\\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-import-trace] {\\n margin-left: 16px;\\n }\\n\",\"\",\"\\n .nextjs-error-with-static {\\n bottom: calc(16px * 4.5);\\n }\\n p.nextjs__container_errors__link {\\n font-size: var(--size-14);\\n }\\n p.nextjs__container_errors__notes {\\n color: var(--color-stack-notes);\\n font-size: var(--size-14);\\n line-height: 1.5;\\n }\\n .nextjs-container-errors-body > h2:not(:first-child) {\\n margin-top: calc(16px + 8px);\\n }\\n .nextjs-container-errors-body > h2 {\\n color: var(--color-title-color);\\n margin-bottom: 8px;\\n font-size: var(--size-20);\\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: 8px;\\n }\\n .nextjs-toast-hide-button {\\n margin-left: 24px;\\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-hide-button:hover {\\n opacity: 1;\\n }\\n .nextjs__container_errors__error_title {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin-bottom: 14px;\\n }\\n .error-overlay-notes-container {\\n margin: 8px 2px;\\n }\\n .error-overlay-notes-container p {\\n white-space: pre-wrap;\\n }\\n\",nZ,\"\\n .nextjs-container-build-error-version-status {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n gap: 4px;\\n\\n height: var(--size-26);\\n padding: 6px 8px 6px 6px;\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-alpha-400);\\n box-shadow: var(--shadow-small);\\n border-radius: var(--rounded-full);\\n\\n color: var(--color-gray-900);\\n font-size: var(--size-12);\\n font-weight: 500;\\n line-height: var(--size-16);\\n }\\n\\n a.nextjs-container-build-error-version-status {\\n text-decoration: none;\\n color: var(--color-gray-900);\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n }\\n\\n .version-staleness-indicator.fresh {\\n fill: var(--color-green-800);\\n stroke: var(--color-green-300);\\n }\\n .version-staleness-indicator.stale {\\n fill: var(--color-amber-800);\\n stroke: var(--color-amber-300);\\n }\\n .version-staleness-indicator.outdated {\\n fill: var(--color-red-800);\\n stroke: var(--color-red-300);\\n }\\n .version-staleness-indicator.unknown {\\n fill: var(--color-gray-800);\\n stroke: var(--color-gray-300);\\n }\\n\\n .nextjs-container-build-error-version-status > .turbopack-text {\\n background: linear-gradient(\\n to right,\\n var(--color-turbopack-text-red) 0%,\\n var(--color-turbopack-text-blue) 100%\\n );\\n background-clip: text;\\n -webkit-background-clip: text;\\n -webkit-text-fill-color: transparent;\\n }\\n\",\"\\n .dev-tools-info-code {\\n background: var(--color-gray-400);\\n color: var(--color-gray-1000);\\n font-family: var(--font-stack-monospace);\\n padding: 2px 4px;\\n margin: 0;\\n font-size: var(--size-13);\\n white-space: break-spaces;\\n border-radius: var(--rounded-md-2);\\n }\\n\\n .dev-tools-info-code-block-container {\\n padding: 6px;\\n }\\n\\n .dev-tools-info-code-block {\\n position: relative;\\n background: var(--color-background-200);\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: var(--rounded-md-2);\\n min-width: 326px;\\n }\\n\\n .dev-tools-info-code-block-pre {\\n margin: 0;\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n }\\n\\n .dev-tools-info-copy-button {\\n position: absolute;\\n\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n right: 8px;\\n top: 8px;\\n padding: 4px;\\n height: var(--size-24);\\n width: var(--size-24);\\n border-radius: var(--rounded-md-2);\\n border: 1px solid var(--color-gray-alpha-400);\\n background: var(--color-background-100);\\n }\\n\\n .dev-tools-info-code-block-line {\\n display: block;\\n line-height: 1.5;\\n padding: 0 16px;\\n }\\n\\n .dev-tools-info-code-block-line.dev-tools-info-highlight {\\n border-left: 2px solid var(--color-blue-900);\\n background: var(--color-blue-400);\\n }\\n\\n .dev-tools-info-code-block-json-key {\\n color: var(--color-syntax-keyword);\\n }\\n\\n .dev-tools-info-code-block-json-value {\\n color: var(--color-syntax-link);\\n }\\n\",\"\",rj,'\\n .nextjs-scroll-fader {\\n --blur: 1px;\\n --stop: 25%;\\n --height: 150px;\\n --color-bg: var(--color-background-100);\\n position: absolute;\\n pointer-events: none;\\n user-select: none;\\n width: 100%;\\n height: var(--height);\\n left: 0;\\n backdrop-filter: blur(var(--blur));\\n\\n &[data-side=\"top\"] {\\n top: 0;\\n background: linear-gradient(to top, transparent, var(--color-bg));\\n mask-image: linear-gradient(to bottom, var(--color-bg) var(--stop), transparent);\\n }\\n }\\n',rB,ru)})}function rz(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rT(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return rz(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rz(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rD(e,t){var n,r,o,a,i=(0,A.c)(10),l=void 0!==e&&e;i[0]!==t?(n=void 0===t?{}:t,i[0]=t,i[1]=n):n=i[1];var s=n,c=rT((0,x.useState)(l),2),u=c[0],d=c[1],f=rT((0,x.useState)(!1),2),p=f[0],h=f[1],m=s.enterDelay,g=s.exitDelay,y=void 0===m?1:m,v=void 0===g?0:g;return i[2]!==l||i[3]!==y||i[4]!==v?(r=function(){var e,t;return l?(d(!0),y<=0?h(!0):e=setTimeout(function(){h(!0)},y)):(h(!1),v<=0?d(!1):t=setTimeout(function(){d(!1)},v)),function(){clearTimeout(e),clearTimeout(t)}},o=[l,y,v],i[2]=l,i[3]=y,i[4]=v,i[5]=r,i[6]=o):(r=i[5],o=i[6]),(0,x.useEffect)(r,o),i[7]!==u||i[8]!==p?(a={mounted:u,rendered:p},i[7]=u,i[8]=p,i[9]=a):a=i[9],a}function rL(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function rN(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function rR(e){var t,n,r,o,a,i,l,s=(0,A.c)(18),c=e.state,u=e.dispatch,d=e.getSquashedHydrationErrorDetails,f=e.runtimeErrors,p=e.errorCount,h=!!false;s[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={exitDelay:200},s[0]=t):t=s[0];var m=rD(c.isErrorOverlayOpen,t),g=m.mounted,y=m.rendered;s[1]!==p||s[2]!==y||s[3]!==c.versionInfo?(n={rendered:y,transitionDurationMs:200,isTurbopack:h,versionInfo:c.versionInfo,errorCount:p},s[1]=p,s[2]=y,s[3]=c.versionInfo,s[4]=n):n=s[4];var v=n;return null!==c.buildError?(s[5]!==v||s[6]!==c.buildError?(r=(0,b.jsx)(ny,rN(rL({},v),{message:c.buildError,rendered:!0})),s[5]=v,s[6]=c.buildError,s[7]=r):r=s[7],r):f.length?g?(s[10]!==u?(i=function(){u({type:F})},s[10]=u,s[11]=i):i=s[11],s[12]!==v||s[13]!==d||s[14]!==f||s[15]!==c.debugInfo||s[16]!==i?(l=(0,b.jsx)(nW,rN(rL({},v),{debugInfo:c.debugInfo,getSquashedHydrationErrorDetails:d,runtimeErrors:f,onClose:i})),s[12]=v,s[13]=d,s[14]=f,s[15]=c.debugInfo,s[16]=i,s[17]=l):l=s[17],l):(s[9]===Symbol.for(\"react.memo_cache_sentinel\")?(a=(0,b.jsx)(x.Suspense,{}),s[9]=a):a=s[9],a):(s[8]===Symbol.for(\"react.memo_cache_sentinel\")?(o=(0,b.jsx)(x.Suspense,{}),s[8]=o):o=s[8],o)}function rM(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rZ(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rU(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){rZ(e,t,n[t])})}return e}function rF(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return rM(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rM(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var rq=function(e){var t,n,r=(0,A.c)(4);return e.state.buildError?(r[0]!==e?(t=(0,b.jsx)(rV,rU({},e)),r[0]=e,r[1]=t):t=r[1],t):(r[2]!==e?(n=(0,b.jsx)(rH,rU({},e)),r[2]=e,r[3]=n):n=r[3],n)},rH=function(e){var t,n,r,o,a,i=(0,A.c)(12),l=e.children,s=e.state,c=e.isAppDir,u=s.errors;i[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={},i[0]=t):t=i[0];var d=rF((0,x.useState)(t),2),f=d[0],p=d[1];if(i[1]!==u||i[2]!==f){for(var h=[],m=null,g=0;g<u.length;++g){var y=u[g],v=y.id;if(v in f){h.push(f[v]);continue}m=y;break}n=[h,m],i[1]=u,i[2]=f,i[3]=n}else n=i[3];var b=rF(n,2),w=b[0],C=b[1];i[4]!==c||i[5]!==C?(r=function(){if(null!=C){var e,t,n=!0;return(e=C,t=c,nz(function(){var n,r,o;return nL(this,function(a){switch(a.label){case 0:var i,l;if(n={id:e.id,runtime:!0,error:e.error,type:e.type},!(\"use\"in x))return[3,1];return[2,nD(nT({},n),{frames:(l=(i=function(){return nz(function(){return nL(this,function(n){switch(n.label){case 0:return[4,eE(e.frames,nP(e.error),t)];case 1:return[2,n.sent()]}})})()})(),function(){return l})})];case 1:return r=[nT({},n)],o={},[4,eE(e.frames,nP(e.error),t)];case 2:return[2,nD.apply(void 0,r.concat([(o.frames=a.sent(),o)]))];case 3:return[2]}})})()).then(function(e){n&&p(function(t){var n,r;return n=rU({},t),r=null!=(r=rZ({},e.id,e))?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n})}),function(){n=!1}}},o=[C,c],i[4]=c,i[5]=C,i[6]=r,i[7]=o):(r=i[6],o=i[7]),(0,x.useEffect)(r,o);var _=u.length;return i[8]!==l||i[9]!==w||i[10]!==_?(a=l({runtimeErrors:w,totalErrorCount:_}),i[8]=l,i[9]=w,i[10]=_,i[11]=a):a=i[11],a},rV=function(e){return(0,e.children)({runtimeErrors:[],totalErrorCount:1})};function r$(){var e,t,n=(0,A.c)(4),r=da(),o=r.shadowRoot,a=r.state;return n[0]!==o||n[1]!==a.scale?(e=function(){(null==o?void 0:o.host)&&o.host.style.setProperty(\"--nextjs-dev-tools-scale\",String(a.scale||1))},t=[o,a.scale],n[0]=o,n[1]=a.scale,n[2]=e,n[3]=t):(e=n[2],t=n[3]),(0,x.useLayoutEffect)(e,t),null}var rW=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-indicator/devtools-indicator.css\"),rY={};function rK(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rX(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rG(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return rX(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rX(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rQ(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function rJ(e){var t,n,r,o,a=(0,A.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.08889 11.8384L2.62486 12.3024L1.69678 11.3744L2.16082 10.9103L6.07178 6.99937L2.16082 3.08841L1.69678 2.62437L2.62486 1.69629L3.08889 2.16033L6.99986 6.07129L10.9108 2.16033L11.3749 1.69629L12.3029 2.62437L11.8389 3.08841L7.92793 6.99937L11.8389 10.9103L12.3029 11.3744L11.3749 12.3024L10.9108 11.8384L6.99986 7.92744L3.08889 11.8384Z\",fill:\"currentColor\"}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,b.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"12\",height:\"12\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}function r0(e){var t,n,r,o,a=(0,A.c)(3);return(a[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.98071 1.125L1.125 3.98071L1.125 8.01929L3.98071 10.875H8.01929L10.875 8.01929V3.98071L8.01929 1.125H3.98071ZM3.82538 0C3.62647 0 3.4357 0.0790176 3.29505 0.21967L0.21967 3.29505C0.0790176 3.4357 0 3.62647 0 3.82538V8.17462C0 8.37353 0.0790178 8.5643 0.21967 8.70495L3.29505 11.7803C3.4357 11.921 3.62647 12 3.82538 12H8.17462C8.37353 12 8.5643 11.921 8.70495 11.7803L11.7803 8.70495C11.921 8.5643 12 8.37353 12 8.17462V3.82538C12 3.62647 11.921 3.4357 11.7803 3.29505L8.70495 0.21967C8.5643 0.0790177 8.37353 0 8.17462 0H3.82538ZM6.5625 2.8125V3.375V6V6.5625H5.4375V6V3.375V2.8125H6.5625ZM6 9C6.41421 9 6.75 8.66421 6.75 8.25C6.75 7.83579 6.41421 7.5 6 7.5C5.58579 7.5 5.25 7.83579 5.25 8.25C5.25 8.66421 5.58579 9 6 9Z\",fill:\"currentColor\"}),a[0]=r):r=a[0],a[1]!==e)?(o=(0,b.jsx)(\"svg\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"12\",height:\"12\",viewBox:\"0 0 12 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),n=n={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),a[1]=e,a[2]=o):o=a[2],o}rY.styleTagTransform=h(),rY.setAttributes=u(),rY.insert=s(),rY.domAPI=i(),rY.insertStyleElement=f(),o()(rW.Z,rY),rW.Z&&rW.Z.locals&&rW.Z.locals;var r1=(0,x.createContext)(null),r2=function(){return(0,x.useContext)(r1)};function r4(e){return oA+36/e.scale+9}function r5(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function r3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function r6(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function r9(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function r8(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return r5(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r5(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function r7(){var e,t,n=(e=[\"\\n [data-next-badge-root] {\\n --timing: cubic-bezier(0.23, 0.88, 0.26, 0.92);\\n --duration-long: 250ms;\\n --color-outer-border: #171717;\\n --color-inner-border: hsla(0, 0%, 100%, 0.14);\\n --color-hover-alpha-subtle: hsla(0, 0%, 100%, 0.13);\\n --color-hover-alpha-error: hsla(0, 0%, 100%, 0.2);\\n --color-hover-alpha-error-2: hsla(0, 0%, 100%, 0.25);\\n --mark-size: calc(var(--size) - var(--size-2) * 2);\\n\\n --focus-color: var(--color-blue-800);\\n --focus-ring: 2px solid var(--focus-color);\\n\\n &:has([data-next-badge][data-error='true']) {\\n --focus-color: #fff;\\n }\\n }\\n\\n [data-disabled-icon] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding-right: 4px;\\n }\\n\\n [data-next-badge] {\\n width: var(--size);\\n height: var(--size);\\n display: flex;\\n align-items: center;\\n position: relative;\\n background: rgba(0, 0, 0, 0.8);\\n box-shadow:\\n 0 0 0 1px var(--color-outer-border),\\n inset 0 0 0 1px var(--color-inner-border),\\n 0px 16px 32px -8px rgba(0, 0, 0, 0.24);\\n backdrop-filter: blur(48px);\\n border-radius: var(--rounded-full);\\n user-select: none;\\n cursor: pointer;\\n scale: 1;\\n overflow: hidden;\\n will-change: scale, box-shadow, width, background;\\n transition:\\n scale var(--duration-short) var(--timing),\\n width var(--duration-long) var(--timing),\\n box-shadow var(--duration-long) var(--timing),\\n background var(--duration-short) ease;\\n\\n &:active[data-error='false'] {\\n scale: 0.95;\\n }\\n\\n &[data-animate='true']:not(:hover) {\\n scale: 1.02;\\n }\\n\\n &[data-error='false']:has([data-next-mark]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: 3px;\\n }\\n\\n &[data-error='true'] {\\n background: #ca2a30;\\n --color-inner-border: #e5484d;\\n\\n [data-next-mark] {\\n background: var(--color-hover-alpha-error);\\n outline-offset: 0px;\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-error-2);\\n }\\n }\\n }\\n\\n &[data-error-expanded='false'][data-error='true'] ~ [data-dot] {\\n scale: 1;\\n }\\n\\n > div {\\n display: flex;\\n }\\n }\\n\\n [data-issues-collapse]:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n [data-issues]:has([data-issues-open]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n [data-dot] {\\n content: '';\\n width: var(--size-8);\\n height: var(--size-8);\\n background: #fff;\\n box-shadow: 0 0 0 1px var(--color-outer-border);\\n border-radius: 50%;\\n position: absolute;\\n top: 2px;\\n right: 0px;\\n scale: 0;\\n pointer-events: none;\\n transition: scale 200ms var(--timing);\\n transition-delay: var(--duration-short);\\n }\\n\\n [data-issues] {\\n --padding-left: 8px;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n padding-left: 8px;\\n padding-right: 8px;\\n height: var(--size-32);\\n margin-right: 2px;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:has([data-issues-open]:hover) {\\n background: var(--color-hover-alpha-error);\\n }\\n\\n &:has([data-issues-collapse]) {\\n padding-right: calc(var(--padding-left) / 2);\\n }\\n\\n [data-cross] {\\n translate: 0px -1px;\\n }\\n }\\n\\n [data-issues-open] {\\n font-size: var(--size-13);\\n color: white;\\n width: fit-content;\\n height: 100%;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n margin: 0;\\n line-height: var(--size-36);\\n font-weight: 500;\\n z-index: 2;\\n white-space: nowrap;\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n }\\n\\n [data-issues-collapse] {\\n width: var(--size-24);\\n height: var(--size-24);\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:hover {\\n background: var(--color-hover-alpha-error);\\n }\\n }\\n\\n [data-cross] {\\n color: #fff;\\n width: var(--size-12);\\n height: var(--size-12);\\n }\\n\\n [data-next-mark] {\\n width: var(--mark-size);\\n height: var(--mark-size);\\n margin: 0 2px;\\n display: flex;\\n align-items: center;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-long) var(--timing);\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-subtle);\\n }\\n\\n svg {\\n flex-shrink: 0;\\n width: var(--size-40);\\n height: var(--size-40);\\n }\\n }\\n\\n [data-issues-count-animation] {\\n display: grid;\\n place-items: center center;\\n font-variant-numeric: tabular-nums;\\n\\n &[data-animate='false'] {\\n [data-issues-count-exit],\\n [data-issues-count-enter] {\\n animation-duration: 0ms;\\n }\\n }\\n\\n > * {\\n grid-area: 1 / 1;\\n }\\n\\n [data-issues-count-exit] {\\n animation: fadeOut 300ms var(--timing) forwards;\\n }\\n\\n [data-issues-count-enter] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n [data-issues-count-plural] {\\n display: inline-block;\\n &[data-animate='true'] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n .path0 {\\n animation: draw0 1.5s ease-in-out infinite;\\n }\\n\\n .path1 {\\n animation: draw1 1.5s ease-out infinite;\\n animation-delay: 0.3s;\\n }\\n\\n .paused {\\n stroke-dashoffset: 0;\\n }\\n\\n @keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n filter: blur(2px);\\n transform: translateY(8px);\\n }\\n 100% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n }\\n\\n @keyframes fadeOut {\\n 0% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n 100% {\\n opacity: 0;\\n transform: translateY(-12px);\\n filter: blur(2px);\\n }\\n }\\n\\n @keyframes draw0 {\\n 0%,\\n 25% {\\n stroke-dashoffset: -29.6;\\n }\\n 25%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 29.6;\\n }\\n }\\n\\n @keyframes draw1 {\\n 0%,\\n 20% {\\n stroke-dashoffset: -11.6;\\n }\\n 20%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 11.6;\\n }\\n }\\n\\n @media (prefers-reduced-motion) {\\n [data-issues-count-exit],\\n [data-issues-count-enter],\\n [data-issues-count-plural] {\\n animation-duration: 0ms !important;\\n }\\n }\\n \"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return r7=function(){return n},n}function oe(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,w,C,_,k,E,j,S,O,B,P,I,z,T,D,L,N,R,M,Z,q,H,V,$,W,Y=(0,A.c)(40);Y[0]!==e?(D=r9(e,[\"onTriggerClick\"]),L=e.onTriggerClick,Y[0]=e,Y[1]=D,Y[2]=L):(D=Y[1],L=Y[2]);var K=da(),X=K.state,G=K.dispatch,Q=u4().totalErrorCount,J=36/X.scale,ee=r2(),et=ee.panel,en=ee.triggerRef,er=ee.setPanel,eo=\"panel-selector\"===et,ea=Q>0,ei=r8((0,x.useState)(ea),2),el=ei[0],ec=ei[1],eu=r8((0,x.useState)(ea),2),ed=eu[0],ef=eu[1];ed!==ea&&(ef(ea),ec(ea));var ep=r8((0,x.useState)(!1),2),eh=ep[0],em=ep[1],eg=(t=Q,n=150,a=(0,A.c)(4),i=n,l=(0,x.useRef)(null),d=(s=(0,x.useState)(!1),c=2,u=function(e){if(Array.isArray(e))return e}(s)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(s,2)||function(e,t){if(e){if(\"string\"==typeof e)return rK(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rK(e,t)}}(s,c)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}())[0],f=u[1],a[0]!==i||a[1]!==t?(r=function(){if(t>0){var e=l.current?Date.now()-l.current:-1;if(l.current=Date.now(),!(e<=i)){f(!0);var n=window.setTimeout(function(){f(!1)},i);return function(){clearTimeout(n)}}}},o=[t,i],a[0]=i,a[1]=t,a[2]=r,a[3]=o):(r=a[2],o=a[3]),(0,x.useEffect)(r,o),d),ey=(0,x.useRef)(null),ev=(p=ey,g=(0,A.c)(4),v=(y=rG((0,x.useState)(0),2))[0],w=y[1],g[0]!==p.current?(h=function(){var e=p.current;if(e){var t=new ResizeObserver(function(e){w(rG(e,1)[0].contentRect.width)});return t.observe(e),function(){return t.disconnect()}}},g[0]=p.current,g[1]=h):h=g[1],g[2]!==p?(m=[p],g[2]=p,g[3]=m):m=g[3],(0,x.useEffect)(h,m),v),eb=(C=X.buildingIndicator||X.renderingIndicator,E=(0,A.c)(4),j=750,P=(S=(0,x.useState)(!1),O=2,B=function(e){if(Array.isArray(e))return e}(S)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(S,2)||function(e,t){if(e){if(\"string\"==typeof e)return rQ(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rQ(e,t)}}(S,O)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}())[0],I=B[1],z=(0,x.useRef)(null),T=(0,x.useRef)(null),E[0]!==j||E[1]!==C?(_=function(){if(T.current&&(clearTimeout(T.current),T.current=null),C)null===z.current&&(z.current=Date.now()),I(!0);else if(null===z.current)I(!1);else{var e=Date.now()-z.current,t=j*Math.ceil(e/j)-e;t>0?T.current=setTimeout(function(){I(!1),z.current=null},t):(I(!1),z.current=null)}return function(){T.current&&clearTimeout(T.current)}},k=[C,j],E[0]=j,E[1]=C,E[2]=_,E[3]=k):(_=E[2],k=E[3]),(0,x.useEffect)(_,k),P),eA=el||X.disableDevIndicator,ex=0===ev?\"auto\":ev,ew=\"\".concat(J,\"px\"),eC=X.disableDevIndicator&&(!ea||eh)?\"none\":\"block\";Y[3]!==ew||Y[4]!==eC?(N={\"--size\":ew,\"--duration-short\":\"\".concat(150,\"ms\"),display:eC},Y[3]=ew,Y[4]=eC,Y[5]=N):N=Y[5];var e_=N;return Y[6]===Symbol.for(\"react.memo_cache_sentinel\")?(R=(0,b.jsx)(\"style\",{children:es(r7())}),Y[6]=R):R=Y[6],Y[7]!==ex?(M={width:ex},Y[7]=ex,Y[8]=M):M=Y[8],Y[9]!==D||Y[10]!==eb||Y[11]!==eo||Y[12]!==L||Y[13]!==X.buildingIndicator||Y[14]!==X.disableDevIndicator||Y[15]!==en?(Z=!X.disableDevIndicator&&(0,b.jsx)(\"button\",r6(r3({id:\"next-logo\",ref:en,\"data-next-mark\":!0,\"data-next-mark-loading\":eb,onClick:L,disabled:X.disableDevIndicator,\"aria-haspopup\":\"menu\",\"aria-expanded\":eo,\"aria-controls\":\"nextjs-dev-tools-menu\",\"aria-label\":\"\".concat(eo?\"Close\":\"Open\",\" Next.js Dev Tools\"),\"data-nextjs-dev-tools-button\":!0},D),{children:(0,b.jsx)(on,{isLoading:eb,isDevBuilding:X.buildingIndicator})})),Y[9]=D,Y[10]=eb,Y[11]=eo,Y[12]=L,Y[13]=X.buildingIndicator,Y[14]=X.disableDevIndicator,Y[15]=en,Y[16]=Z):Z=Y[16],Y[17]!==G||Y[18]!==eA||Y[19]!==eg||Y[20]!==er||Y[21]!==X.buildError||Y[22]!==X.disableDevIndicator||Y[23]!==X.isErrorOverlayOpen||Y[24]!==Q||Y[25]!==en?(q=eA&&(0,b.jsxs)(\"div\",{\"data-issues\":!0,children:[(0,b.jsxs)(\"button\",{\"data-issues-open\":!0,\"aria-label\":\"Open issues overlay\",onClick:function(){if(X.isErrorOverlayOpen)return void G({type:F});G({type:U}),er(null)},children:[X.disableDevIndicator&&(0,b.jsx)(\"div\",{\"data-disabled-icon\":!0,children:(0,b.jsx)(r0,{})}),(0,b.jsx)(ot,{animate:eg,\"data-issues-count-animation\":!0,children:Q},Q),\" \",(0,b.jsxs)(\"div\",{children:[\"Issue\",Q>1&&(0,b.jsx)(\"span\",{\"aria-hidden\":!0,\"data-issues-count-plural\":!0,\"data-animate\":eg&&2===Q,children:\"s\"})]})]}),!X.buildError&&(0,b.jsx)(\"button\",{\"data-issues-collapse\":!0,\"aria-label\":\"Collapse issues badge\",onClick:function(){var e;X.disableDevIndicator?em(!0):ec(!1),null==(e=en.current)||e.focus()},children:(0,b.jsx)(rJ,{\"data-cross\":!0})})]}),Y[17]=G,Y[18]=eA,Y[19]=eg,Y[20]=er,Y[21]=X.buildError,Y[22]=X.disableDevIndicator,Y[23]=X.isErrorOverlayOpen,Y[24]=Q,Y[25]=en,Y[26]=q):q=Y[26],Y[27]!==Z||Y[28]!==q?(H=(0,b.jsxs)(\"div\",{ref:ey,children:[Z,q]}),Y[27]=Z,Y[28]=q,Y[29]=H):H=Y[29],Y[30]!==ea||Y[31]!==eA||Y[32]!==eg||Y[33]!==M||Y[34]!==H?(V=(0,b.jsx)(\"div\",{\"data-next-badge\":!0,\"data-error\":ea,\"data-error-expanded\":eA,\"data-animate\":eg,style:M,children:H}),Y[30]=ea,Y[31]=eA,Y[32]=eg,Y[33]=M,Y[34]=H,Y[35]=V):V=Y[35],Y[36]===Symbol.for(\"react.memo_cache_sentinel\")?($=(0,b.jsx)(\"div\",{\"aria-hidden\":!0,\"data-dot\":!0}),Y[36]=$):$=Y[36],Y[37]!==V||Y[38]!==e_?(W=(0,b.jsxs)(\"div\",{\"data-next-badge-root\":!0,style:e_,children:[R,V,$]}),Y[37]=V,Y[38]=e_,Y[39]=W):W=Y[39],W}function ot(e){var t,n,r,o,a,i,l=(0,A.c)(13);l[0]!==e?(n=r9(e,[\"children\",\"animate\"]),t=e.children,r=e.animate,l[0]=e,l[1]=t,l[2]=n,l[3]=r):(t=l[1],n=l[2],r=l[3]);var s=void 0===r||r,c=t-1;return l[4]!==c?(o=(0,b.jsx)(\"div\",{\"aria-hidden\":!0,\"data-issues-count-exit\":!0,children:c}),l[4]=c,l[5]=o):o=l[5],l[6]!==t?(a=(0,b.jsx)(\"div\",{\"data-issues-count\":!0,\"data-issues-count-enter\":!0,children:t}),l[6]=t,l[7]=a):a=l[7],l[8]!==s||l[9]!==n||l[10]!==o||l[11]!==a?(i=(0,b.jsxs)(\"div\",r6(r3({},n),{\"data-animate\":s,children:[o,a]})),l[8]=s,l[9]=n,l[10]=o,l[11]=a,l[12]=i):i=l[12],i}function on(e){var t,n,r,o,a,i,l,s,c=(0,A.c)(19),u=e.isLoading,d=e.isDevBuilding?\"rgba(255,255,255,0.7)\":\"white\",f=u?\"path0\":\"paused\";c[0]!==f?(t=(0,b.jsx)(\"path\",{className:f,d:\"M13.3 15.2 L2.34 1 V12.6\",fill:\"none\",stroke:\"url(#next_logo_paint0_linear_1357_10853)\",strokeWidth:\"1.86\",mask:\"url(#next_logo_mask0)\",strokeDasharray:\"29.6\",strokeDashoffset:\"29.6\"}),c[0]=f,c[1]=t):t=c[1];var p=u?\"path1\":\"paused\";return c[2]!==p?(n=(0,b.jsx)(\"path\",{className:p,d:\"M11.825 1.5 V13.1\",strokeWidth:\"1.86\",stroke:\"url(#next_logo_paint1_linear_1357_10853)\",strokeDasharray:\"11.6\",strokeDashoffset:\"11.6\"}),c[2]=p,c[3]=n):n=c[3],c[4]!==t||c[5]!==n?(r=(0,b.jsxs)(\"g\",{transform:\"translate(8.5, 13)\",children:[t,n]}),c[4]=t,c[5]=n,c[6]=r):r=c[6],c[7]!==d?(o=(0,b.jsxs)(\"linearGradient\",{id:\"next_logo_paint0_linear_1357_10853\",x1:\"9.95555\",y1:\"11.1226\",x2:\"15.4778\",y2:\"17.9671\",gradientUnits:\"userSpaceOnUse\",children:[(0,b.jsx)(\"stop\",{stopColor:d}),(0,b.jsx)(\"stop\",{offset:\"0.604072\",stopColor:d,stopOpacity:\"0\"}),(0,b.jsx)(\"stop\",{offset:\"1\",stopColor:d,stopOpacity:\"0\"})]}),c[7]=d,c[8]=o):o=c[8],c[9]!==d?(a=(0,b.jsxs)(\"linearGradient\",{id:\"next_logo_paint1_linear_1357_10853\",x1:\"11.8222\",y1:\"1.40039\",x2:\"11.791\",y2:\"9.62542\",gradientUnits:\"userSpaceOnUse\",children:[(0,b.jsx)(\"stop\",{stopColor:d}),(0,b.jsx)(\"stop\",{offset:\"1\",stopColor:d,stopOpacity:\"0\"})]}),c[9]=d,c[10]=a):a=c[10],c[11]===Symbol.for(\"react.memo_cache_sentinel\")?(i=(0,b.jsxs)(\"mask\",{id:\"next_logo_mask0\",children:[(0,b.jsx)(\"rect\",{width:\"100%\",height:\"100%\",fill:\"white\"}),(0,b.jsx)(\"rect\",{width:\"5\",height:\"1.5\",fill:\"black\"})]}),c[11]=i):i=c[11],c[12]!==o||c[13]!==a?(l=(0,b.jsxs)(\"defs\",{children:[o,a,i]}),c[12]=o,c[13]=a,c[14]=l):l=c[14],c[15]!==u||c[16]!==r||c[17]!==l?(s=(0,b.jsxs)(\"svg\",{width:\"40\",height:\"40\",viewBox:\"0 0 40 40\",fill:\"none\",\"data-next-mark-loading\":u,children:[r,l]}),c[15]=u,c[16]=r,c[17]=l,c[18]=s):s=c[18],s}var or=x.forwardRef(function(e,t){var n,r,o,a,i,l,s,c,u,d=(0,A.c)(15);return(d[0]!==e?(l=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"onClick\",\"children\",\"className\"]),i=e.onClick,o=e.children,a=e.className,d[0]=e,d[1]=o,d[2]=a,d[3]=i,d[4]=l):(o=d[1],a=d[2],i=d[3],l=d[4]),d[5]!==i?(s=function(e){return e.target.closest(\"a\")||e.preventDefault(),null==i?void 0:i()},d[5]=i,d[6]=s):s=d[6],d[7]!==a?(c=eG(\"nextjs-toast\",a),d[7]=a,d[8]=c):c=d[8],d[9]!==o||d[10]!==l||d[11]!==t||d[12]!==s||d[13]!==c)?(u=(0,b.jsx)(\"div\",(n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},l),r=r={ref:t,onClick:s,className:c,children:o},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n)),d[9]=o,d[10]=l,d[11]=t,d[12]=s,d[13]=c,d[14]=u):u=d[14],u});function oo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}var oa=(0,x.createContext)(null);function oi(e){var t=e.children,n=e.disabled,r=void 0!==n&&n,o=(0,x.useRef)(new Set),a=(0,x.useCallback)(function(e){o.current.add(e)},[]),i=(0,x.useCallback)(function(e){o.current.delete(e)},[]),l=(0,x.useMemo)(function(){return{register:a,unregister:i,handles:o.current,disabled:r}},[a,i,r]);return(0,b.jsx)(oa.Provider,{value:l,children:t})}function ol(){return(0,x.useContext)(oa)}function os(e){var t,n,r,o,a,i,l,s,c,u,d,f=(0,A.c)(19);f[0]!==e?(o=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"children\",\"ref\"]),r=e.children,a=e.ref,f[0]=e,f[1]=r,f[2]=o,f[3]=a):(r=f[1],o=f[2],a=f[3]);var p=(0,x.useRef)(null),h=ol();f[4]!==a?(i=function(e){if(p.current=null!=e?e:null,\"function\"==typeof a)a(e);else{var t;a&&(void 0===a?\"undefined\":(t=a)&&\"undefined\"!=typeof Symbol&&t.constructor===Symbol?\"symbol\":typeof t)==\"object\"&&(a.current=e)}},f[4]=a,f[5]=i):i=f[5];var m=i;f[6]!==h?(l=function(){if(h&&p.current&&!h.disabled){var e=p.current;return h.register(e),function(){return h.unregister(e)}}},s=[h],f[6]=h,f[7]=l,f[8]=s):(l=f[7],s=f[8]),(0,x.useEffect)(l,s);var g=(null==h?void 0:h.disabled)?\"default\":\"grab\";return(f[9]!==o.style?(c=o.style||{},f[9]=o.style,f[10]=c):c=f[10],f[11]!==g||f[12]!==c?(u=oo({cursor:g},c),f[11]=g,f[12]=c,f[13]=u):u=f[13],f[14]!==r||f[15]!==o||f[16]!==m||f[17]!==u)?(d=(0,b.jsx)(\"div\",(t=oo({ref:m},o),n=n={style:u,children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),f[14]=r,f[15]=o,f[16]=m,f[17]=u,f[18]=d):d=f[18],d}function oc(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ou(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function od(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function of(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function op(e){return function(e){if(Array.isArray(e))return oc(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||oh(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function oh(e,t){if(e){if(\"string\"==typeof e)return oc(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oc(e,t)}}function om(e){var t,n,r,o,a,i,l,s,c,u,d,f,p=(0,A.c)(18);p[0]!==e?(s=of(e,[\"children\",\"padding\",\"position\",\"setPosition\",\"onDragStart\",\"dragHandleSelector\",\"disableDrag\",\"avoidZone\"]),r=e.children,l=e.padding,o=e.position,c=e.setPosition,i=e.onDragStart,a=e.dragHandleSelector,u=e.disableDrag,n=e.avoidZone,p[0]=e,p[1]=n,p[2]=r,p[3]=o,p[4]=a,p[5]=i,p[6]=l,p[7]=s,p[8]=c,p[9]=u):(n=p[1],r=p[2],o=p[3],a=p[4],i=p[5],l=p[6],s=p[7],c=p[8],u=p[9]);var h=function(e){var t=(0,x.useRef)(null),n=(0,x.useRef)({state:\"idle\"}),r=(0,x.useRef)(null),o=(0,x.useRef)({x:0,y:0}),a=(0,x.useRef)({x:0,y:0}),i=(0,x.useRef)(0),l=(0,x.useRef)([]),s=(0,x.useCallback)(function(){var e,o;\"drag\"===n.current.state&&(null==(o=t.current)||o.releasePointerCapture(n.current.pointerId)),n.current=\"drag\"===n.current.state?{state:\"drag-end\"}:{state:\"idle\"},null!==r.current&&(r.current(),r.current=null),l.current=[],null==(e=t.current)||e.classList.remove(\"dev-tools-grabbing\"),document.body.style.removeProperty(\"user-select\"),document.body.style.removeProperty(\"-webkit-user-select\")},[]);function c(e){t.current&&(a.current=e,t.current.style.translate=\"\".concat(e.x,\"px \").concat(e.y,\"px\"))}function u(n){var r=t.current;null!==r&&(r.style.transition=\"translate 491.22ms var(--timing-bounce)\",r.addEventListener(\"transitionend\",function t(o){if(\"translate\"===o.propertyName){var i;null==(i=e.onAnimationEnd)||i.call(e,n),a.current={x:0,y:0},r.style.transition=\"\",r.removeEventListener(\"transitionend\",t)}}),c(n.translation))}function d(e){if(\"drag-end\"===n.current.state){var r;e.preventDefault(),e.stopPropagation(),n.current={state:\"idle\"},null==(r=t.current)||r.removeEventListener(\"click\",d)}}function f(r){if(\"press\"===n.current.state){var s,u,d,f,p=r.clientX-o.current.x,h=r.clientY-o.current.y;Math.sqrt(p*p+h*h)>=e.threshold&&(n.current={state:\"drag\",pointerId:r.pointerId},null==(u=t.current)||u.setPointerCapture(r.pointerId),null==(d=t.current)||d.classList.add(\"dev-tools-grabbing\"),document.body.style.userSelect=\"none\",document.body.style.webkitUserSelect=\"none\",null==(f=e.onDragStart)||f.call(e))}if(\"drag\"===n.current.state){var m={x:r.clientX,y:r.clientY},g=m.x-o.current.x,y=m.y-o.current.y;o.current=m,c({x:a.current.x+g,y:a.current.y+y});var v=Date.now();v-i.current>=10&&(l.current=op(l.current.slice(-5)).concat([{position:m,timestamp:v}])),i.current=v,null==(s=e.onDrag)||s.call(e,a.current)}}function p(){var t,n=function(e){if(e.length<2)return{x:0,y:0};var t=e[0],n=e[e.length-1],r=n.timestamp-t.timestamp;return 0===r?{x:0,y:0}:{x:1e3*((n.position.x-t.position.x)/r),y:1e3*((n.position.y-t.position.y)/r)}}(l.current);s(),null==(t=e.onDragEnd)||t.call(e,a.current,n)}return(0,x.useLayoutEffect)(function(){e.disabled&&s()},[s,e.disabled]),e.disabled?{ref:t,animate:u}:{ref:t,onPointerDown:function(a){var i;0===a.button&&function(n){if(!n||!t.current)return!0;if(e.handles&&e.handles.size>0){for(var r=n;r&&r!==t.current;){if(e.handles.has(r))return!0;r=r.parentElement}return!1}return!e.dragHandleSelector||null!==n.closest(e.dragHandleSelector)}(a.target)&&(o.current={x:a.clientX,y:a.clientY},n.current={state:\"press\"},window.addEventListener(\"pointermove\",f),window.addEventListener(\"pointerup\",p),null!==r.current&&(r.current(),r.current=null),r.current=function(){window.removeEventListener(\"pointermove\",f),window.removeEventListener(\"pointerup\",p)},null==(i=t.current)||i.addEventListener(\"click\",d))},animate:u}}({disabled:void 0!==u&&u,handles:null==(t=ol())?void 0:t.handles,threshold:5,onDragStart:i,onDragEnd:function(e,t){var r,a,i,s,c,u,d,f,p,h,y,v,b,A,x,w,C,_;if(0===Math.sqrt(e.x*e.x+e.y*e.y)){null==(r=m.current)||r.style.removeProperty(\"translate\");return}g((b=(a={x:e.x+oy(t.x),y:e.y+oy(t.y)}).x,A=a.y,w=Object.entries(x=(c=2*l,u=(null==(i=m.current)?void 0:i.offsetWidth)||0,d=(null==(s=m.current)?void 0:s.offsetHeight)||0,f=window.innerWidth-document.documentElement.clientWidth,h=(p=function(e){var t=e.includes(\"right\"),r=e.includes(\"bottom\"),o=t?window.innerWidth-f-c-u:0,a=r?window.innerHeight-c-d:0;if(n&&n.corner===e){var i=n.square+n.padding;r?a-=i:a+=i}return{x:o,y:a}})(o),{\"top-left\":(y=function(e){return{x:e.x-h.x,y:e.y-h.y}})(p(\"top-left\")),\"top-right\":y(p(\"top-right\")),\"bottom-left\":y(p(\"bottom-left\")),\"bottom-right\":y(p(\"bottom-right\"))})).map(function(e){var t,n,r=(n=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||oh(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),o=r[0],a=r[1];return{key:o,distance:Math.sqrt(Math.pow(b-a.x,2)+Math.pow(A-a.y,2))}}),C=(v=Math).min.apply(v,op(w.map(og))),(_=w.find(function(e){return e.distance===C}))?{translation:x[_.key],corner:_.key}:{corner:o,translation:x[o]}))},onAnimationEnd:function(e){var t=e.corner;setTimeout(function(){var e;null==(e=m.current)||e.style.removeProperty(\"translate\"),c(t)})},dragHandleSelector:a}),m=h.ref,g=h.animate,y=of(h,[\"ref\",\"animate\"]);return p[10]!==s.style?(d=ou({touchAction:\"none\",userSelect:\"none\",WebkitUserSelect:\"none\"},s.style),p[10]=s.style,p[11]=d):d=p[11],p[12]!==r||p[13]!==y||p[14]!==s||p[15]!==m||p[16]!==d?(f=(0,b.jsx)(\"div\",od(ou(od(ou({},s),{ref:m}),y),{style:d,children:r})),p[12]=r,p[13]=y,p[14]=s,p[15]=m,p[16]=d,p[17]=f):f=p[17],f}function og(e){return e.distance}function oy(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.999;return e/1e3*t/(1-t)}function ov(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ob(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var oA=20;function ox(){var e,t,n,r,o,a,i,l,s,c=(0,A.c)(20),u=da(),d=u.state,f=u.dispatch,p=r2(),h=p.panel,m=p.setPanel,g=p.setSelectedIndex,y=ow();c[0]!==d.devToolsPosition?(n=d.devToolsPosition.split(\"-\",2),c[0]=d.devToolsPosition,c[1]=n):n=c[1];var v=(t=2,function(e){if(Array.isArray(e))return e}(e=n)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,2)||function(e,t){if(e){if(\"string\"==typeof e)return ov(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ov(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),x=v[0],w=v[1];c[2]!==w||c[3]!==x?(ob(o={\"--animate-out-duration-ms\":\"\".concat(200,\"ms\"),\"--animate-out-timing-function\":t7,boxShadow:\"none\"},x,\"\".concat(oA,\"px\")),ob(o,w,\"\".concat(oA,\"px\")),r=o,c[2]=w,c[3]=x,c[4]=r):r=c[4];var C=r,_=null!==h;return c[5]!==f||c[6]!==y?(a=function(e){f({type:Y,devToolsPosition:e}),rA({devToolsPosition:e}),y(e)},c[5]=f,c[6]=y,c[7]=a):a=c[7],c[8]!==h||c[9]!==m||c[10]!==g?(i=(0,b.jsx)(oe,{onTriggerClick:function(){var e=\"panel-selector\"===h?null:\"panel-selector\";if(m(e),!e)return void g(-1)}}),c[8]=h,c[9]=m,c[10]=g,c[11]=i):i=c[11],c[12]!==d.devToolsPosition||c[13]!==_||c[14]!==a||c[15]!==i?(l=(0,b.jsx)(om,{disableDrag:_,padding:oA,position:d.devToolsPosition,setPosition:a,children:i}),c[12]=d.devToolsPosition,c[13]=_,c[14]=a,c[15]=i,c[16]=l):l=c[16],c[17]!==C||c[18]!==l?(s=(0,b.jsx)(or,{id:\"devtools-indicator\",\"data-nextjs-toast\":!0,style:C,children:l}),c[17]=C,c[18]=l,c[19]=s):s=c[19],s}var ow=function(){var e,t=(0,A.c)(3),n=da(),r=n.state,o=n.dispatch;return t[0]!==o||t[1]!==r.devToolsPanelPosition?(e=function(e){o({type:K,devToolsPanelPosition:e,key:et});var t=Object.keys(r.devToolsPanelPosition).filter(oC),n=ob({},et,e);t.forEach(function(t){o({type:K,devToolsPanelPosition:e,key:t}),n[t]=e}),rA({devToolsPanelPosition:n})},t[0]=o,t[1]=r.devToolsPanelPosition,t[2]=e):e=t[2],e};function oC(e){return e.startsWith(Q)}function o_(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ok(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oE(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){ok(e,t,n[t])})}return e}function oj(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function oS(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return o_(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o_(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var oO=(0,x.createContext)({});function oB(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h=(0,A.c)(37);h[0]!==e?(a=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,[\"index\",\"label\",\"value\",\"onClick\",\"href\"]),n=e.index,r=e.label,i=e.value,o=e.onClick,t=e.href,h[0]=e,h[1]=t,h[2]=n,h[3]=r,h[4]=o,h[5]=a,h[6]=i):(t=h[1],n=h[2],r=h[3],o=h[4],a=h[5],i=h[6]);var m=\"function\"==typeof o||\"string\"==typeof t,g=(0,x.useContext)(oO),y=g.closeMenu,v=g.selectedIndex,w=g.setSelectedIndex,C=v===n;h[7]!==y||h[8]!==t||h[9]!==m||h[10]!==o?(l=function(){m&&(null==o||o(),null==y||y(),t&&window.open(t,\"_blank\",\"noopener, noreferrer\"))},h[7]=y,h[8]=t,h[9]=m,h[10]=o,h[11]=l):l=h[11];var _=l;h[12]!==n||h[13]!==m||h[14]!==v||h[15]!==w?(s=function(){m&&void 0!==n&&v!==n&&w(n)},h[12]=n,h[13]=m,h[14]=v,h[15]=w,h[16]=s):s=h[16],h[17]!==w?(c=function(){return w(-1)},h[17]=w,h[18]=c):c=h[18],h[19]!==_?(u=function(e){(\"Enter\"===e.key||\" \"===e.key)&&_()},h[19]=_,h[20]=u):u=h[20];var k=m?\"menuitem\":void 0,E=C?0:-1;return h[21]!==r?(d=(0,b.jsx)(\"span\",{className:\"dev-tools-indicator-label\",children:r}),h[21]=r,h[22]=d):d=h[22],h[23]!==i?(f=(0,b.jsx)(\"span\",{className:\"dev-tools-indicator-value\",children:i}),h[23]=i,h[24]=f):f=h[24],h[25]!==_||h[26]!==n||h[27]!==a||h[28]!==C||h[29]!==s||h[30]!==c||h[31]!==u||h[32]!==k||h[33]!==E||h[34]!==d||h[35]!==f?(p=(0,b.jsxs)(\"div\",oj(oE({className:\"dev-tools-indicator-item\",\"data-index\":n,\"data-selected\":C,onClick:_,onMouseMove:s,onMouseLeave:c,onKeyDown:u,role:k,tabIndex:E},a),{children:[d,f]})),h[25]=_,h[26]=n,h[27]=a,h[28]=C,h[29]=s,h[30]=c,h[31]=u,h[32]=k,h[33]=E,h[34]=d,h[35]=f,h[36]=p):p=h[36],p}var oP=function(e){var t,n=e.closeOnClickOutside,r=void 0===n||n,o=e.items,a=da().state,i=r2(),l=i.setPanel,s=i.triggerRef,c=i.setSelectedIndex,u=i.selectedIndex,d=uX().mounted,f=oS(a.devToolsPosition.split(\"-\",2),2),p=f[0],h=f[1],m=(0,x.useRef)(null);t8(m,s,r&&d,function(e){switch(e){case\"escape\":l(null),c(-1);return;case\"outside\":if(!r)return;l(null),c(-1);return;default:return null}}),(0,x.useLayoutEffect)(function(){var e;null==(e=m.current)||e.focus(),oD({index:-1===u?\"first\":u,menuRef:m,setSelectedIndex:c})},[]);var g=r4(a),y=oS(a.devToolsPosition.split(\"-\",2),2),v=y[0],A=y[1],w=p===v&&h===A?g:oA,C=(ok(t={},p,\"\".concat(w,\"px\")),ok(t,h,\"\".concat(oA,\"px\")),ok(t,\"top\"===p?\"bottom\":\"top\",\"auto\"),ok(t,\"left\"===h?\"right\":\"left\",\"auto\"),t),_=o.filter(function(e){return!!e}),k=_.filter(function(e){return!e.footer}),E=_.filter(function(e){return e.footer});return(0,b.jsx)(\"div\",{ref:m,onKeyDown:function(e){e.preventDefault();var t=_.filter(function(e){return e.onClick}).length;switch(e.key){case\"ArrowDown\":oD({index:u>=t-1?0:u+1,menuRef:m,setSelectedIndex:c});break;case\"ArrowUp\":oD({index:u<=0?t-1:u-1,menuRef:m,setSelectedIndex:c});break;case\"Home\":oD({index:\"first\",menuRef:m,setSelectedIndex:c});break;case\"End\":oD({index:\"last\",menuRef:m,setSelectedIndex:c});break;case\"n\":e.ctrlKey&&oD({index:u>=t-1?0:u+1,menuRef:m,setSelectedIndex:c});break;case\"p\":e.ctrlKey&&oD({index:u<=0?t-1:u-1,menuRef:m,setSelectedIndex:c})}},id:\"nextjs-dev-tools-menu\",role:\"menu\",dir:\"ltr\",\"aria-orientation\":\"vertical\",\"aria-label\":\"Next.js Dev Tools Items\",tabIndex:-1,style:oE({outline:0,WebkitFontSmoothing:\"antialiased\",display:\"flex\",flexDirection:\"column\",alignItems:\"flex-start\",background:\"var(--color-background-100)\",backgroundClip:\"padding-box\",boxShadow:\"var(--shadow-menu)\",borderRadius:\"var(--rounded-xl)\",position:\"fixed\",fontFamily:\"var(--font-stack-sans)\",zIndex:\"var(--top-z-index)\",overflow:\"hidden\",opacity:1,minWidth:\"248px\",transition:\"opacity var(--animate-out-duration-ms) var(--animate-out-timing-function)\",border:\"1px solid var(--color-gray-alpha-400)\"},C),children:(0,b.jsxs)(oO,{value:{selectedIndex:u,setSelectedIndex:c},children:[(0,b.jsx)(\"div\",{style:{padding:\"6px\",width:\"100%\"},children:k.map(function(e,t){return(0,b.jsx)(oB,oE({title:e.title,label:e.label,value:e.value,onClick:e.onClick,index:e.onClick?oI(k,t):void 0},e.attributes),e.label)})}),(0,b.jsx)(\"div\",{className:\"dev-tools-indicator-footer\",children:E.map(function(e,t){var n;return(0,b.jsx)(oB,oj(oE({title:e.title,label:e.label,value:e.value,onClick:e.onClick},e.attributes),{index:e.onClick?oI(E,t)+(n=k).filter(function(e){return e.onClick}).length:void 0}),e.label)})})]})})};function oI(e,t){for(var n=0,r=0;r<=t&&r<e.length;r++)if(e[r].onClick){if(r===t)return n;n++}return n}function oz(e){var t,n,r=(0,A.c)(4),o=e.children,a=o>0;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"span\",{className:\"dev-tools-indicator-issue-count-indicator\"}),r[0]=t):t=r[0],r[1]!==o||r[2]!==a?(n=(0,b.jsxs)(\"span\",{className:\"dev-tools-indicator-issue-count\",\"data-has-issues\":a,children:[t,o]}),r[1]=o,r[2]=a,r[3]=n):n=r[3],n}function oT(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",children:(0,b.jsx)(\"path\",{fill:\"#666\",fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M5.50011 1.93945L6.03044 2.46978L10.8537 7.293C11.2442 7.68353 11.2442 8.31669 10.8537 8.70722L6.03044 13.5304L5.50011 14.0608L4.43945 13.0001L4.96978 12.4698L9.43945 8.00011L4.96978 3.53044L4.43945 3.00011L5.50011 1.93945Z\"})}),t[0]=e):e=t[0],e}function oD(e){var t,n=e.index,r=e.menuRef,o=e.setSelectedIndex;if(\"first\"===n)return void setTimeout(function(){var e,t=null==(e=r.current)?void 0:e.querySelectorAll('[role=\"menuitem\"]');t&&oD({index:Number(t[0].getAttribute(\"data-index\")),menuRef:r,setSelectedIndex:o})});if(\"last\"===n)return void setTimeout(function(){var e,t=null==(e=r.current)?void 0:e.querySelectorAll('[role=\"menuitem\"]');t&&oD({index:t.length-1,menuRef:r,setSelectedIndex:o})});var a=null==(t=r.current)?void 0:t.querySelector('[data-index=\"'.concat(n,'\"]'));a&&(o(n),null==a||a.focus())}function oL(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var oN=(0,x.createContext)(null),oR=function(e){var t=.95*window.innerWidth,n=.95*window.innerHeight;return{width:Math.min(t,Math.max(e.minWidth,e.width)),height:Math.min(n,Math.max(e.minHeight,e.height))}},oM=function(e){var t,n,r,o,a,i,l,s=e.value,c=e.children,u=null!=(a=s.minWidth)?a:100,d=null!=(i=s.minHeight)?i:80,f=s.maxWidth,p=s.maxHeight,h=(t=(0,x.useState)(null),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return oL(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oL(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),m=h[0],g=h[1],y=null!=(l=s.storageKey)?l:ee,v=(0,x.useCallback)(function(){if(s.resizeRef.current&&null===m){var e=s.devToolsPanelSize[y];if(e){var t,n,r=oR((t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},e),n=n={minWidth:null!=u?u:100,minHeight:null!=d?d:80},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t)),o=r.height,a=r.width;return s.resizeRef.current.style.width=\"\".concat(a,\"px\"),s.resizeRef.current.style.height=\"\".concat(o,\"px\"),!0}}},[s.resizeRef,m,y,u,d,s.devToolsPanelSize]);return(0,x.useLayoutEffect)(function(){var e;if(!v()&&s.resizeRef.current&&(null==(e=s.initialSize)?void 0:e.height)&&s.initialSize.width){var t=oR({height:s.initialSize.height,width:s.initialSize.width,minWidth:null!=u?u:100,minHeight:null!=d?d:80}),n=t.height,r=t.width;s.resizeRef.current.style.width=\"\".concat(r,\"px\"),s.resizeRef.current.style.height=\"\".concat(n,\"px\")}},[]),(0,x.useLayoutEffect)(function(){return window.addEventListener(\"resize\",v),function(){return window.removeEventListener(\"resize\",v)}},[v,null==(r=s.initialSize)?void 0:r.height,null==(o=s.initialSize)?void 0:o.width,s.resizeRef]),(0,b.jsx)(oN.Provider,{value:{resizeRef:s.resizeRef,minWidth:u,minHeight:d,maxWidth:f,maxHeight:p,draggingDirection:m,setDraggingDirection:g,storageKey:y},children:c})},oZ=function(){var e=(0,x.useContext)(oN);if(!e)throw Error(\"useResize must be used within a Resize provider\");return e},oU=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\"),oF={};function oq(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}oF.styleTagTransform=h(),oF.setAttributes=u(),oF.insert=s(),oF.domAPI=i(),oF.insertStyleElement=f(),o()(oU.Z,oF),oU.Z&&oU.Z.locals&&oU.Z.locals;var oH=function(e){var t,n,r,o,a,i,l,s,c,u,d=(0,A.c)(32),f=e.direction,p=e.position,h=oZ(),m=h.resizeRef,g=h.minWidth,y=h.minHeight,v=h.maxWidth,w=h.maxHeight,C=h.storageKey,_=h.draggingDirection,k=h.setDraggingDirection;d[0]===Symbol.for(\"react.memo_cache_sentinel\")?(r={top:0,right:0,bottom:0,left:0},d[0]=r):r=d[0];var E=(t=(0,x.useState)(r),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,t){if(e){if(\"string\"==typeof e)return oq(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oq(e,t)}}(t,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),j=E[0],S=E[1];d[1]!==m.current?(o=function(){if(m.current){var e=m.current,t=window.getComputedStyle(e);S({top:parseFloat(t.borderTopWidth)||0,right:parseFloat(t.borderRightWidth)||0,bottom:parseFloat(t.borderBottomWidth)||0,left:parseFloat(t.borderLeftWidth)||0})}},d[1]=m.current,d[2]=o):o=d[2],d[3]!==m?(a=[m],d[3]=m,d[4]=a):a=d[4],(0,x.useLayoutEffect)(o,a),d[5]!==f||d[6]!==w||d[7]!==v||d[8]!==y||d[9]!==g||d[10]!==m.current||d[11]!==k||d[12]!==C?(i=function(e){if(e.preventDefault(),m.current){k(f);var t=m.current,n=t.getBoundingClientRect(),r=e.clientX,o=e.clientY,a=function(e){var a=oV(f,e.clientX-r,e.clientY-o,n,g,y,v,w),i=a.newWidth,l=a.newHeight;void 0!==i&&(t.style.width=\"\".concat(i,\"px\")),void 0!==l&&(t.style.height=\"\".concat(l,\"px\"))},i=function(){if(k(null),document.removeEventListener(\"mousemove\",a),document.removeEventListener(\"mouseup\",i),m.current){var e,t,n,r=m.current.getBoundingClientRect(),o=r.width,l=r.height;rA({devToolsPanelSize:(e={},t=C,n={width:o,height:l},t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e)})}};document.addEventListener(\"mousemove\",a),document.addEventListener(\"mouseup\",i)}},d[5]=f,d[6]=w,d[7]=v,d[8]=y,d[9]=g,d[10]=m.current,d[11]=k,d[12]=C,d[13]=i):i=d[13];var O=i;if(!(!p.split(\"-\").includes(f)&&(!f.includes(\"-\")||f===o$(p))))return null;var B=j.left+j.right,P=j.top+j.bottom;d[14]!==f?(l=f.includes(\"-\"),d[14]=f,d[15]=l):l=d[15];var I=l,z=\"resize-container \".concat(f,\" \").concat(_&&_!==f?\"no-hover\":\"\");return d[16]!==O||d[17]!==z?(s=(0,b.jsx)(\"div\",{className:z,onMouseDown:O}),d[16]=O,d[17]=z,d[18]=s):s=d[18],d[19]!==j.bottom||d[20]!==j.left||d[21]!==j.right||d[22]!==j.top||d[23]!==f||d[24]!==_||d[25]!==I||d[26]!==B||d[27]!==P?(c=!I&&(0,b.jsx)(\"div\",{className:\"resize-line \".concat(f,\" \").concat(_===f?\"dragging\":\"\"),style:{\"--border-horizontal\":\"\".concat(B,\"px\"),\"--border-vertical\":\"\".concat(P,\"px\"),\"--border-top\":\"\".concat(j.top,\"px\"),\"--border-right\":\"\".concat(j.right,\"px\"),\"--border-bottom\":\"\".concat(j.bottom,\"px\"),\"--border-left\":\"\".concat(j.left,\"px\")}}),d[19]=j.bottom,d[20]=j.left,d[21]=j.right,d[22]=j.top,d[23]=f,d[24]=_,d[25]=I,d[26]=B,d[27]=P,d[28]=c):c=d[28],d[29]!==s||d[30]!==c?(u=(0,b.jsxs)(b.Fragment,{children:[s,c]}),d[29]=s,d[30]=c,d[31]=u):u=d[31],u},oV=function(e,t,n,r,o,a,i,l){var s=null!=i?i:.95*window.innerWidth,c=null!=l?l:.95*window.innerHeight;switch(e){case\"right\":return{newWidth:Math.min(s,Math.max(o,r.width+t)),newHeight:r.height};case\"left\":return{newWidth:Math.min(s,Math.max(o,r.width-t)),newHeight:r.height};case\"bottom\":return{newWidth:r.width,newHeight:Math.min(c,Math.max(a,r.height+n))};case\"top\":return{newWidth:r.width,newHeight:Math.min(c,Math.max(a,r.height-n))};case\"top-left\":return{newWidth:Math.min(s,Math.max(o,r.width-t)),newHeight:Math.min(c,Math.max(a,r.height-n))};case\"top-right\":return{newWidth:Math.min(s,Math.max(o,r.width+t)),newHeight:Math.min(c,Math.max(a,r.height-n))};case\"bottom-left\":return{newWidth:Math.min(s,Math.max(o,r.width-t)),newHeight:Math.min(c,Math.max(a,r.height+n))};case\"bottom-right\":return{newWidth:Math.min(s,Math.max(o,r.width+t)),newHeight:Math.min(c,Math.max(a,r.height+n))};default:return null}};function o$(e){switch(e){case\"top-left\":return\"bottom-right\";case\"top-right\":return\"bottom-left\";case\"bottom-left\":return\"top-right\";case\"bottom-right\":return\"top-left\";default:return null}}var oW=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/panel/dynamic-panel.css\"),oY={};function oK(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function oX(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oG(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){oX(e,t,n[t])})}return e}function oQ(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return oK(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oK(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function oJ(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"width\";if(\"number\"==typeof e)return e;var n=document.createElement(\"div\");n.style.position=\"absolute\",n.style.visibility=\"hidden\",\"width\"===t?n.style.width=e:n.style.height=e,document.body.appendChild(n);var r=\"width\"===t?n.offsetWidth:n.offsetHeight;return document.body.removeChild(n),r}function o0(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g=e.header,y=e.children,v=e.draggable,w=void 0!==v&&v,C=e.sizeConfig,_=void 0===C?{kind:\"resizable\",minWidth:400,minHeight:350,maxWidth:1e3,maxHeight:1e3,initialSize:{height:400,width:500}}:C,k=e.closeOnClickOutside,E=void 0!==k&&k,j=e.sharePanelSizeGlobally,S=e.sharePanelPositionGlobally,O=e.containerProps,B=r2().setPanel,P=uX(),I=P.name,z=P.mounted,T=void 0===j||j?ee:\"\".concat(J,\"_\").concat(I),D=void 0===S||S?et:\"\".concat(Q,\"_\").concat(I),L=da(),N=L.dispatch,R=L.state,M=null!=(h=R.devToolsPanelPosition[D])?h:R.devToolsPosition,Z=oQ(M.split(\"-\",2),2),U=Z[0],F=Z[1],q=(0,x.useRef)(null);t8(q,r2().triggerRef,z,function(e){switch(e){case\"escape\":return void B(\"panel-selector\");case\"outside\":E&&B(\"panel-selector\");return;default:return null}});var H=r4(R),V=oQ(R.devToolsPosition.split(\"-\",2),2),$=V[0],W=V[1],Y=U===$&&F===W?H:oA,X=(oX(m={},U,\"\".concat(Y,\"px\")),oX(m,F,\"\".concat(oA,\"px\")),oX(m,\"top\"===U?\"bottom\":\"top\",\"auto\"),oX(m,\"left\"===F?\"right\":\"left\",\"auto\"),m),G=\"resizable\"===_.kind,en=(t=G?_.minWidth:void 0,n=G?_.minHeight:void 0,r=G?_.maxWidth:void 0,o=G?_.maxHeight:void 0,(s=(0,A.c)(11))[0]!==o||s[1]!==r||s[2]!==n||s[3]!==t?(a=function(){return{minWidth:t?oJ(t,\"width\"):void 0,minHeight:n?oJ(n,\"height\"):void 0,maxWidth:r?oJ(r,\"width\"):void 0,maxHeight:o?oJ(o,\"height\"):void 0}},s[0]=o,s[1]=r,s[2]=n,s[3]=t,s[4]=a):a=s[4],u=(c=oQ((0,x.useState)(a),2))[0],d=c[1],s[5]!==o||s[6]!==r||s[7]!==n||s[8]!==t?(i=function(){var e=function(){d({minWidth:t?oJ(t,\"width\"):void 0,minHeight:n?oJ(n,\"height\"):void 0,maxWidth:r?oJ(r,\"width\"):void 0,maxHeight:o?oJ(o,\"height\"):void 0})};return window.addEventListener(\"resize\",e),function(){return window.removeEventListener(\"resize\",e)}},l=[t,n,r,o],s[5]=o,s[6]=r,s[7]=n,s[8]=t,s[9]=i,s[10]=l):(i=s[9],l=s[10]),(0,x.useEffect)(i,l),u),er=en.minWidth,eo=en.minHeight,ea=en.maxWidth,ei=en.maxHeight,el=I?\"\".concat(J,\"_\").concat(I):ee,es=R.devToolsPanelSize[el];return(0,b.jsx)(oM,{value:{resizeRef:q,initialSize:\"resizable\"===_.kind?_.initialSize:_,minWidth:er,minHeight:eo,maxWidth:ea,maxHeight:ei,devToolsPosition:R.devToolsPosition,devToolsPanelSize:R.devToolsPanelSize,storageKey:T},children:(0,b.jsx)(\"div\",{tabIndex:-1,ref:q,className:\"dynamic-panel-container\",style:oG({\"--panel-top\":X.top,\"--panel-bottom\":X.bottom,\"--panel-left\":X.left,\"--panel-right\":X.right},G?{\"--panel-min-width\":er?\"\".concat(er,\"px\"):void 0,\"--panel-min-height\":eo?\"\".concat(eo,\"px\"):void 0,\"--panel-max-width\":ea?\"\".concat(ea,\"px\"):void 0,\"--panel-max-height\":ei?\"\".concat(ei,\"px\"):void 0}:{\"--panel-height\":\"\".concat(es?es.height:_.height,\"px\"),\"--panel-width\":\"\".concat(es?es.width:_.width,\"px\")}),children:(0,b.jsx)(oi,{disabled:!w,children:(0,b.jsx)(om,{dragHandleSelector:\".resize-container\",avoidZone:{corner:R.devToolsPosition,square:25/R.scale,padding:oA},padding:oA,position:M,setPosition:function(e){N({type:K,devToolsPanelPosition:e,key:D}),\"resizable\"===_.kind&&rA({devToolsPanelPosition:oX({},D,e)})},style:{overflow:\"auto\",width:\"100%\",height:\"100%\"},disableDrag:!w,children:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(\"div\",(f=oG({},O),p=p={className:\"panel-content-container \".concat((null==O?void 0:O.className)||\"\"),style:oG({},null==O?void 0:O.style),children:[(0,b.jsx)(os,{children:g}),(0,b.jsx)(\"div\",{\"data-nextjs-scrollable-content\":!0,className:\"draggable-content\",children:y})]},Object.getOwnPropertyDescriptors?Object.defineProperties(f,Object.getOwnPropertyDescriptors(p)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(p)).forEach(function(e){Object.defineProperty(f,e,Object.getOwnPropertyDescriptor(p,e))}),f)),G&&(0,b.jsxs)(b.Fragment,{children:[(!_.sides||_.sides.includes(\"vertical\"))&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(oH,{position:M,direction:\"top\"}),(0,b.jsx)(oH,{position:M,direction:\"bottom\"})]}),(!_.sides||_.sides.includes(\"horizontal\"))&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(oH,{position:M,direction:\"right\"}),(0,b.jsx)(oH,{position:M,direction:\"left\"})]}),(!_.sides||_.sides.includes(\"diagonal\"))&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(oH,{position:M,direction:\"top-left\"}),(0,b.jsx)(oH,{position:M,direction:\"top-right\"}),(0,b.jsx)(oH,{position:M,direction:\"bottom-left\"}),(0,b.jsx)(oH,{position:M,direction:\"bottom-right\"})]})]})]})})})})})}oY.styleTagTransform=h(),oY.setAttributes=u(),oY.insert=s(),oY.domAPI=i(),oY.insertStyleElement=f(),o()(oW.Z,oY),oW.Z&&oW.Z.locals&&oW.Z.locals;var o1=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\"),o2={};function o4(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}o2.styleTagTransform=h(),o2.setAttributes=u(),o2.insert=s(),o2.domAPI=i(),o2.insertStyleElement=f(),o()(o1.Z,o2),o1.Z&&o1.Z.locals&&o1.Z.locals;var o5=new Set,o3={subscribe:function(e){return o5.add(e),function(){return o5.delete(e)}},getSnapshot:function(){return o7.getRoot()},getServerSnapshot:function(){return o7.getRoot()}},o6=o3.subscribe,o9=o3.getSnapshot,o8=o3.getServerSnapshot,o7=function(e){var t=e.getCharacters,n=void 0===t?function(e){return[e]}:t,r=e.compare,o=void 0===r?function(e,t){return e===t}:r,a={value:void 0,children:{}};function i(){var e=!0,t=!1,n=void 0;try{for(var r,o=o5[Symbol.iterator]();!(e=(r=o.next()).done);e=!0)(0,r.value)()}catch(e){t=!0,n=e}finally{try{e||null==o.return||o.return()}finally{if(t)throw n}}}return{insert:function(e){var t=a,r=n(e),o=!0,l=!1,s=void 0;try{for(var c,u=r[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var d=c.value;t.children[d]||(t.children[d]={value:void 0,children:{}}),t=t.children[d]}}catch(e){l=!0,s=e}finally{try{o||null==u.return||u.return()}finally{if(l)throw s}}t.value=e,a=o4({},a),i()},remove:function(e){var t=a,r=n(e),l=[],s=!0,c=!0,u=!1,d=void 0;try{for(var f,p=r[Symbol.iterator]();!(c=(f=p.next()).done);c=!0){var h=f.value;if(!t.children[h]){s=!1;break}l.push(t),t=t.children[h]}}catch(e){u=!0,d=e}finally{try{c||null==p.return||p.return()}finally{if(u)throw d}}if(s&&o(t.value,e)){t.value=void 0;for(var m=l.length-1;m>=0;m--){var g=l[m],y=r[m];0===Object.keys(g.children[y].children).length&&delete g.children[y]}a=o4({},a),i()}},getRoot:function(){return a}}}({compare:function(e,t){return!!e&&!!t&&e.pagePath===t.pagePath&&e.type===t.type&&e.boundaryType===t.boundaryType},getCharacters:function(e){return e.pagePath.split(\"/\")}}),ae=o7.insert,at=o7.remove,an=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\"),ar={};ar.styleTagTransform=h(),ar.setAttributes=u(),ar.insert=s(),ar.domAPI=i(),ar.insertStyleElement=f(),o()(an.Z,ar),an.Z&&an.Z.locals&&an.Z.locals;let ao={};function aa(e,t){let n=x.useRef(ao);return n.current===ao&&(n.current=e(t)),n}let ai=[];function al(e){x.useEffect(e,ai)}class as{static create(){return new as}currentId=0;start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=0,t()},e)}isStarted(){return 0!==this.currentId}clear=()=>{0!==this.currentId&&(clearTimeout(this.currentId),this.currentId=0)};disposeEffect=()=>this.clear}function ac(){let e=aa(as.create).current;return al(e.disposeEffect),e}let au=w[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0,-3)],ad=au&&au!==x.useLayoutEffect?au:e=>e();function af(e){let t=aa(ap).current;return t.next=e,ad(t.effect),t.trampoline}function ap(){let e={next:void 0,callback:ah,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function ah(){}function am({controlled:e,default:t,name:n,state:r=\"value\"}){let{current:o}=x.useRef(void 0!==e),[a,i]=x.useState(t),l=x.useCallback(e=>{o||i(e)},[]);return[o?e:a,l]}let ag={...w},ay=0,av=ag.useId;function ab(e,t){if(void 0!==av){let n=av();return e??(t?`${t}-${n}`:n)}return function(e,t=\"mui\"){let[n,r]=x.useState(e),o=e||n;return x.useEffect(()=>{null==n&&(ay+=1,r(`${t}-${ay}`))},[n,t]),o}(e,t)}function aA(){let e=new Map;return{emit(t,n){e.get(t)?.forEach(e=>e(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){e.get(t)?.delete(n)}}}let ax=\"undefined\"!=typeof document?x.useLayoutEffect:()=>{},aw=x.createContext(null),aC=x.createContext(null),a_=()=>x.useContext(aw)?.id||null,ak=()=>x.useContext(aC);function aE(e){let{children:t,id:n}=e,r=a_();return(0,b.jsx)(aw.Provider,{value:x.useMemo(()=>({id:n,parentId:r}),[n,r]),children:t})}function aj(e){let{children:t}=e,n=x.useRef([]),r=x.useCallback(e=>{n.current=[...n.current,e]},[]),o=x.useCallback(e=>{n.current=n.current.filter(t=>t!==e)},[]),[a]=x.useState(()=>aA());return(0,b.jsx)(aC.Provider,{value:x.useMemo(()=>({nodesRef:n,addNode:r,removeNode:o,events:a}),[r,o,a]),children:t})}function aS(e){let{open:t=!1,onOpenChange:n,elements:r}=e,o=ab(),a=x.useRef({}),[i]=x.useState(()=>aA()),l=null!=a_(),[s,c]=x.useState(r.reference),u=af((e,t,r)=>{a.current.openEvent=e?t:void 0,i.emit(\"openchange\",{open:e,event:t,reason:r,nested:l}),n?.(e,t,r)}),d=x.useMemo(()=>({setPositionReference:c}),[]),f=x.useMemo(()=>({reference:s||r.reference||null,floating:r.floating||null,domReference:r.reference}),[s,r.reference,r.floating]);return x.useMemo(()=>({dataRef:a,open:t,onOpenChange:u,elements:f,events:i,floatingId:o,refs:d}),[t,u,f,i,o,d])}function aO(){return\"undefined\"!=typeof window}function aB(e){return az(e)?(e.nodeName||\"\").toLowerCase():\"#document\"}function aP(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function aI(e){var t;return null==(t=(az(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function az(e){return!!aO()&&(e instanceof Node||e instanceof aP(e).Node)}function aT(e){return!!aO()&&(e instanceof Element||e instanceof aP(e).Element)}function aD(e){return!!aO()&&(e instanceof HTMLElement||e instanceof aP(e).HTMLElement)}function aL(e){return!!aO()&&\"undefined\"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof aP(e).ShadowRoot)}let aN=new Set([\"inline\",\"contents\"]);function aR(e){let{overflow:t,overflowX:n,overflowY:r,display:o}=aK(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!aN.has(o)}let aM=new Set([\"table\",\"td\",\"th\"]),aZ=[\":popover-open\",\":modal\"];function aU(e){return aZ.some(t=>{try{return e.matches(t)}catch(e){return!1}})}let aF=[\"transform\",\"translate\",\"scale\",\"rotate\",\"perspective\"],aq=[\"transform\",\"translate\",\"scale\",\"rotate\",\"perspective\",\"filter\"],aH=[\"paint\",\"layout\",\"strict\",\"content\"];function aV(e){let t=a$(),n=aT(e)?aK(e):e;return aF.some(e=>!!n[e]&&\"none\"!==n[e])||!!n.containerType&&\"normal\"!==n.containerType||!t&&!!n.backdropFilter&&\"none\"!==n.backdropFilter||!t&&!!n.filter&&\"none\"!==n.filter||aq.some(e=>(n.willChange||\"\").includes(e))||aH.some(e=>(n.contain||\"\").includes(e))}function a$(){return\"undefined\"!=typeof CSS&&!!CSS.supports&&CSS.supports(\"-webkit-backdrop-filter\",\"none\")}let aW=new Set([\"html\",\"body\",\"#document\"]);function aY(e){return aW.has(aB(e))}function aK(e){return aP(e).getComputedStyle(e)}function aX(e){return aT(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function aG(e){if(\"html\"===aB(e))return e;let t=e.assignedSlot||e.parentNode||aL(e)&&e.host||aI(e);return aL(t)?t.host:t}function aQ(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);let o=function e(t){let n=aG(t);return aY(n)?t.ownerDocument?t.ownerDocument.body:t.body:aD(n)&&aR(n)?n:e(n)}(e),a=o===(null==(r=e.ownerDocument)?void 0:r.body),i=aP(o);if(a){let e=aJ(i);return t.concat(i,i.visualViewport||[],aR(o)?o:[],e&&n?aQ(e):[])}return t.concat(o,aQ(o,[],n))}function aJ(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function a0(e){let t=aa(a1,e).current;return t.next=e,ax(t.effect),t}function a1(e){let t={current:e,next:e,effect:()=>{t.current=t.next}};return t}let a2=\"undefined\"!=typeof navigator,a4=function(){if(!a2)return{platform:\"\",maxTouchPoints:-1};let e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??\"\",maxTouchPoints:navigator.maxTouchPoints??-1}}(),a5=function(){if(!a2)return\"\";let e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??\"\"}(),a3=function(){if(!a2)return\"\";let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:e,version:t})=>`${e}/${t}`).join(\" \"):navigator.userAgent}(),a6=\"undefined\"!=typeof CSS&&!!CSS.supports&&CSS.supports(\"-webkit-backdrop-filter:none\"),a9=\"MacIntel\"===a4.platform&&a4.maxTouchPoints>1||/iP(hone|ad|od)|iOS/.test(a4.platform);a2&&/firefox/i.test(a3);let a8=a2&&/apple/i.test(navigator.vendor),a7=a2&&/android/i.test(a5)||/android/i.test(a3),ie=a2&&a5.toLowerCase().startsWith(\"mac\")&&!navigator.maxTouchPoints,it=a3.includes(\"jsdom/\");function ir(e){e.preventDefault(),e.stopPropagation()}function io(e){return 0===e.mozInputSource&&!!e.isTrusted||(a7&&e.pointerType?\"click\"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}function ia(e){return!it&&(!a7&&0===e.width&&0===e.height||a7&&1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&\"mouse\"===e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail&&\"touch\"===e.pointerType)}function ii(e,t){let n=[\"mouse\",\"pen\"];return t||n.push(\"\",void 0),n.includes(e)}let il=\"data-base-ui-focusable\",is=\"active\",ic=\"selected\",iu=\"ArrowLeft\",id=\"ArrowRight\",ip=\"ArrowUp\",ih=\"ArrowDown\";function im(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function ig(e,t){if(!e||!t)return!1;let n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&aL(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function iy(e){return\"composedPath\"in e?e.composedPath()[0]:e.target}function iv(e,t){return null!=t&&(\"composedPath\"in e?e.composedPath().includes(t):null!=e.target&&t.contains(e.target))}function ib(e){return e?.ownerDocument||document}function iA(e){return aD(e)&&e.matches(\"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\")}function ix(e){return!!e&&\"combobox\"===e.getAttribute(\"role\")&&iA(e)}function iw(e){return e?e.hasAttribute(il)?e:e.querySelector(`[${il}]`)||e:null}function iC(e){return`data-base-ui-${e}`}let i_=iC(\"safe-polygon\");function ik(e,t,n){if(n&&!ii(n))return 0;if(\"number\"==typeof e)return e;if(\"function\"==typeof e){let n=e();return\"number\"==typeof n?n:n?.[t]}return e?.[t]}function iE(e){return\"function\"==typeof e?e():e}function ij(e,t={}){let{open:n,onOpenChange:r,dataRef:o,events:a,elements:i}=e,{enabled:l=!0,delay:s=0,handleClose:c=null,mouseOnly:u=!1,restMs:d=0,move:f=!0}=t,p=ak(),h=a_(),m=a0(c),g=a0(s),y=a0(n),v=a0(d),b=x.useRef(void 0),A=ac(),w=x.useRef(void 0),C=ac(),_=x.useRef(!0),k=x.useRef(!1),E=x.useRef(()=>{}),j=x.useRef(!1),S=af(()=>{let e=o.current.openEvent?.type;return e?.includes(\"mouse\")&&\"mousedown\"!==e});x.useEffect(()=>{if(l)return a.on(\"openchange\",e),()=>{a.off(\"openchange\",e)};function e({open:e}){e||(A.clear(),C.clear(),_.current=!0,j.current=!1)}},[l,a,A,C]),x.useEffect(()=>{if(!l||!m.current||!n)return;function e(e){S()&&r(!1,e,\"hover\")}let t=ib(i.floating).documentElement;return t.addEventListener(\"mouseleave\",e),()=>{t.removeEventListener(\"mouseleave\",e)}},[i.floating,n,r,l,m,S]);let O=x.useCallback((e,t=!0,n=\"hover\")=>{let o=ik(g.current,\"close\",b.current);o&&!w.current?A.start(o,()=>r(!1,e,n)):t&&(A.clear(),r(!1,e,n))},[g,r,A]),B=af(()=>{E.current(),w.current=void 0}),P=af(()=>{if(k.current){let e=ib(i.floating).body;e.style.pointerEvents=\"\",e.removeAttribute(i_),k.current=!1}}),I=af(()=>!!o.current.openEvent&&[\"click\",\"mousedown\"].includes(o.current.openEvent.type));x.useEffect(()=>{if(l&&aT(i.domReference)){let r=i.domReference,o=i.floating;return n&&r.addEventListener(\"mouseleave\",a),f&&r.addEventListener(\"mousemove\",e,{once:!0}),r.addEventListener(\"mouseenter\",e),r.addEventListener(\"mouseleave\",t),o&&(o.addEventListener(\"mouseleave\",a),o.addEventListener(\"mouseenter\",s),o.addEventListener(\"mouseleave\",c)),()=>{n&&r.removeEventListener(\"mouseleave\",a),f&&r.removeEventListener(\"mousemove\",e),r.removeEventListener(\"mouseenter\",e),r.removeEventListener(\"mouseleave\",t),o&&(o.removeEventListener(\"mouseleave\",a),o.removeEventListener(\"mouseenter\",s),o.removeEventListener(\"mouseleave\",c))}}function e(e){if(A.clear(),_.current=!1,u&&!ii(b.current)||iE(v.current)>0&&!ik(g.current,\"open\"))return;let t=ik(g.current,\"open\",b.current);t?A.start(t,()=>{y.current||r(!0,e,\"hover\")}):n||r(!0,e,\"hover\")}function t(e){if(I())return void P();E.current();let t=ib(i.floating);if(C.clear(),j.current=!1,m.current&&o.current.floatingContext){n||A.clear(),w.current=m.current({...o.current.floatingContext,tree:p,x:e.clientX,y:e.clientY,onClose(){P(),B(),I()||O(e,!0,\"safe-polygon\")}});let r=w.current;t.addEventListener(\"mousemove\",r),E.current=()=>{t.removeEventListener(\"mousemove\",r)};return}\"touch\"===b.current&&ig(i.floating,e.relatedTarget)||O(e)}function a(e){!I()&&o.current.floatingContext&&m.current?.({...o.current.floatingContext,tree:p,x:e.clientX,y:e.clientY,onClose(){P(),B(),I()||O(e)}})(e)}function s(){A.clear()}function c(e){I()||O(e,!1)}},[i,l,e,u,f,O,B,P,r,n,y,p,g,m,o,I,v,A,C]),ax(()=>{if(l&&n&&m.current?.__options?.blockPointerEvents&&S()){k.current=!0;let e=i.floating;if(aT(i.domReference)&&e){let t=ib(i.floating).body;t.setAttribute(i_,\"\");let n=i.domReference,r=p?.nodesRef.current.find(e=>e.id===h)?.context?.elements.floating;return r&&(r.style.pointerEvents=\"\"),t.style.pointerEvents=\"none\",n.style.pointerEvents=\"auto\",e.style.pointerEvents=\"auto\",()=>{t.style.pointerEvents=\"\",n.style.pointerEvents=\"\",e.style.pointerEvents=\"\"}}}},[l,n,h,i,p,m,S]),ax(()=>{n||(b.current=void 0,j.current=!1,B(),P())},[n,B,P]),x.useEffect(()=>()=>{B(),A.clear(),C.clear(),P()},[l,i.domReference,B,P,A,C]);let z=x.useMemo(()=>{function e(e){b.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e;function o(){_.current||y.current||r(!0,t,\"hover\")}(!u||ii(b.current))&&!n&&0!==iE(v.current)&&(j.current&&e.movementX**2+e.movementY**2<2||(C.clear(),\"touch\"===b.current?o():(j.current=!0,C.start(iE(v.current),o))))}}},[u,r,n,y,v,C]);return x.useMemo(()=>l?{reference:z}:{},[l,z])}function iS(e,t,n=!0){return e.filter(e=>e.parentId===t&&(!n||e.context?.open)).flatMap(t=>[t,...iS(e,t.id,n)])}function iO(e,t){let n=[],r=e.find(e=>e.id===t)?.parentId;for(;r;){let t=e.find(e=>e.id===r);r=t?.parentId,t&&(n=n.concat(t))}return n}function iB(e,t){let[n,r]=e,o=!1,a=t.length;for(let e=0,i=a-1;e<a;i=e++){let[a,l]=t[e]||[0,0],[s,c]=t[i]||[0,0];l>=r!=c>=r&&n<=(s-a)*(r-l)/(c-l)+a&&(o=!o)}return o}function iP(e={}){let{buffer:t=.5,blockPointerEvents:n=!1,requireIntent:r=!0}=e,o=new as,a=!1,i=null,l=null,s=\"undefined\"!=typeof performance?performance.now():0,c=({x:e,y:n,placement:c,elements:u,onClose:d,nodeId:f,tree:p})=>function(h){var m,g;function y(){o.clear(),d()}if(o.clear(),!u.domReference||!u.floating||null==c||null==e||null==n)return;let{clientX:v,clientY:b}=h,A=[v,b],x=iy(h),w=\"mouseleave\"===h.type,C=ig(u.floating,x),_=ig(u.domReference,x),k=u.domReference.getBoundingClientRect(),E=u.floating.getBoundingClientRect(),j=c.split(\"-\")[0],S=e>E.right-E.width/2,O=n>E.bottom-E.height/2,B=(m=A,g=k,m[0]>=g.x&&m[0]<=g.x+g.width&&m[1]>=g.y&&m[1]<=g.y+g.height),P=E.width>k.width,I=E.height>k.height,z=(P?k:E).left,T=(P?k:E).right,D=(I?k:E).top,L=(I?k:E).bottom;if(C&&(a=!0,!w))return;if(_&&(a=!1),_&&!w){a=!0;return}if(w&&aT(h.relatedTarget)&&ig(u.floating,h.relatedTarget)||p&&iS(p.nodesRef.current,f).some(({context:e})=>e?.open))return;if(\"top\"===j&&n>=k.bottom-1||\"bottom\"===j&&n<=k.top+1||\"left\"===j&&e>=k.right-1||\"right\"===j&&e<=k.left+1)return y();let N=[];switch(j){case\"top\":N=[[z,k.top+1],[z,E.bottom-1],[T,E.bottom-1],[T,k.top+1]];break;case\"bottom\":N=[[z,E.top+1],[z,k.bottom-1],[T,k.bottom-1],[T,E.top+1]];break;case\"left\":N=[[E.right-1,L],[E.right-1,D],[k.left+1,D],[k.left+1,L]];break;case\"right\":N=[[k.right-1,L],[k.right-1,D],[E.left+1,D],[E.left+1,L]]}if(!iB([v,b],N)){if(a&&!B)return y();if(!w&&r){let e=function(e,t){let n=performance.now(),r=n-s;if(null===i||null===l||0===r)return i=e,l=t,s=n,null;let o=e-i,a=t-l,c=Math.sqrt(o*o+a*a);return i=e,l=t,s=n,c/r}(h.clientX,h.clientY);if(null!==e&&e<.1)return y()}iB([v,b],function([e,n]){switch(j){case\"top\":{let r=[[E.left,S||P?E.bottom-t:E.top],[E.right,S?P?E.bottom-t:E.top:E.bottom-t]];return[[P?e+t/2:S?e+4*t:e-4*t,n+t+1],[P?e-t/2:S?e+4*t:e-4*t,n+t+1],...r]}case\"bottom\":{let r=[[E.left,S||P?E.top+t:E.bottom],[E.right,S?P?E.top+t:E.bottom:E.top+t]];return[[P?e+t/2:S?e+4*t:e-4*t,n-t],[P?e-t/2:S?e+4*t:e-4*t,n-t],...r]}case\"left\":return[[O||I?E.right-t:E.left,E.top],[O?I?E.right-t:E.left:E.right-t,E.bottom],[e+t+1,I?n+t/2:O?n+4*t:n-4*t],[e+t+1,I?n-t/2:O?n+4*t:n-4*t]];case\"right\":{let r=[[O||I?E.left+t:E.right,E.top],[O?I?E.left+t:E.right:E.left+t,E.bottom]];return[[e-t,I?n+t/2:O?n+4*t:n-4*t],[e-t,I?n-t/2:O?n+4*t:n-4*t],...r]}default:return[]}}([e,n]))?!a&&r&&o.start(40,y):y()}};return c.__options={blockPointerEvents:n},c}let iI=ie&&a8;function iz(e,t={}){let{open:n,onOpenChange:r,events:o,dataRef:a,elements:i}=e,{enabled:l=!0,visibleOnly:s=!0}=t,c=x.useRef(!1),u=ac(),d=x.useRef(!0);x.useEffect(()=>{if(!l)return;let e=aP(i.domReference);function t(){!n&&aD(i.domReference)&&i.domReference===im(ib(i.domReference))&&(c.current=!0)}function r(){d.current=!0}function o(){d.current=!1}return e.addEventListener(\"blur\",t),iI&&(e.addEventListener(\"keydown\",r,!0),e.addEventListener(\"pointerdown\",o,!0)),()=>{e.removeEventListener(\"blur\",t),iI&&(e.removeEventListener(\"keydown\",r,!0),e.removeEventListener(\"pointerdown\",o,!0))}},[i.domReference,n,l]),x.useEffect(()=>{if(l)return o.on(\"openchange\",e),()=>{o.off(\"openchange\",e)};function e({reason:e}){(\"reference-press\"===e||\"escape-key\"===e)&&(c.current=!0)}},[o,l]);let f=x.useMemo(()=>({onMouseLeave(){c.current=!1},onFocus(e){if(c.current)return;let t=iy(e.nativeEvent);if(s&&aT(t)){if(iI&&!e.relatedTarget){if(!d.current&&!iA(t))return}else if(!function(e){if(!e||it)return!0;try{return e.matches(\":focus-visible\")}catch(e){return!0}}(t))return}r(!0,e.nativeEvent,\"focus\")},onBlur(e){c.current=!1;let t=e.relatedTarget,n=e.nativeEvent,o=aT(t)&&t.hasAttribute(iC(\"focus-guard\"))&&\"outside\"===t.getAttribute(\"data-type\");u.start(0,()=>{let e=im(i.domReference?i.domReference.ownerDocument:document);(t||e!==i.domReference)&&(ig(a.current.floatingContext?.refs.floating.current,e)||ig(i.domReference,e)||o||r(!1,n,\"focus\"))})}}),[a,i.domReference,r,s,u]);return x.useMemo(()=>l?{reference:f}:{},[l,f])}globalThis.requestAnimationFrame;let iT=new class{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=e=>{this.isScheduled=!1;let t=this.callbacks,n=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,n>0)for(let n=0;n<t.length;n+=1)t[n]?.(e)};request(e){let t=this.nextId;return this.nextId+=1,this.callbacks.push(e),this.callbacksCount+=1,this.isScheduled||(requestAnimationFrame(this.tick),this.isScheduled=!0),t}cancel(e){let t=e-this.startId;t<0||t>=this.callbacks.length||(this.callbacks[t]=null,this.callbacksCount-=1)}};class iD{static create(){return new iD}static request(e){return iT.request(e)}static cancel(e){return iT.cancel(e)}currentId=null;request(e){this.cancel(),this.currentId=iT.request(()=>{this.currentId=null,e()})}cancel=()=>{null!==this.currentId&&(iT.cancel(this.currentId),this.currentId=null)};disposeEffect=()=>this.cancel}function iL(){let e=aa(iD.create).current;return al(e.disposeEffect),e}let iN={style:{transition:\"none\"}},iR={},iM=[],iZ={fallbackAxisSide:\"none\"},iU={fallbackAxisSide:\"end\"},iF={intentional:\"onClick\",sloppy:\"onPointerDown\"};function iq(e){return{escapeKey:\"boolean\"==typeof e?e:e?.escapeKey??!1,outsidePress:\"boolean\"==typeof e?e:e?.outsidePress??!0}}function iH(e,t={}){let{open:n,onOpenChange:r,elements:o,dataRef:a}=e,{enabled:i=!0,escapeKey:l=!0,outsidePress:s=!0,outsidePressEvent:c=\"sloppy\",referencePress:u=!1,referencePressEvent:d=\"sloppy\",ancestorScroll:f=!1,bubbles:p,capture:h}=t,m=ak(),g=af(\"function\"==typeof s?s:()=>!1),y=\"function\"==typeof s?g:s,v=x.useRef(!1),{escapeKey:b,outsidePress:A}=iq(p),{escapeKey:w,outsidePress:C}=iq(h),_=x.useRef(null),k=ac(),E=ac(),j=x.useRef(!1),S=x.useRef(\"\"),O=af(e=>{S.current=e.pointerType}),B=af(()=>{let e=S.current;return\"string\"==typeof c?c:c[\"pen\"!==e&&e?e:\"mouse\"]}),P=af(e=>{if(!n||!i||!l||\"Escape\"!==e.key||j.current)return;let t=a.current.floatingContext?.nodeId,o=m?iS(m.nodesRef.current,t):[];if(!b&&(e.stopPropagation(),o.length>0)){let e=!0;if(o.forEach(t=>{t.context?.open&&!t.context.dataRef.current.__escapeKeyBubbles&&(e=!1)}),!e)return}r(!1,\"nativeEvent\"in e?e.nativeEvent:e,\"escape-key\")}),I=af(e=>{let t=B();return\"intentional\"===t&&\"click\"!==e.type||\"sloppy\"===t&&\"click\"===e.type}),z=af(e=>{let t=()=>{P(e),iy(e)?.removeEventListener(\"keydown\",t)};iy(e)?.addEventListener(\"keydown\",t)}),T=af(e=>{if(I(e))return;let t=a.current.insideReactTree;a.current.insideReactTree=!1;let n=v.current;if(v.current=!1,\"intentional\"===B()&&n||t||\"function\"==typeof y&&!y(e))return;let i=iy(e),l=`[${iC(\"inert\")}]`,s=ib(o.floating).querySelectorAll(l),c=aT(i)?i:null;for(;c&&!aY(c);){let e=aG(c);if(aY(e)||!aT(e))break;c=e}if(s.length&&aT(i)&&!i.matches(\"html,body\")&&!ig(i,o.floating)&&Array.from(s).every(e=>!ig(c,e)))return;if(aD(i)){let t=aY(i),n=aK(i),r=/auto|scroll/,o=t||r.test(n.overflowX),a=t||r.test(n.overflowY),l=o&&i.clientWidth>0&&i.scrollWidth>i.clientWidth,s=a&&i.clientHeight>0&&i.scrollHeight>i.clientHeight,c=\"rtl\"===n.direction,u=s&&(c?e.offsetX<=i.offsetWidth-i.clientWidth:e.offsetX>i.clientWidth),d=l&&e.offsetY>i.clientHeight;if(u||d)return}let u=a.current.floatingContext?.nodeId,d=m&&iS(m.nodesRef.current,u).some(t=>iv(e,t.context?.elements.floating));if(iv(e,o.floating)||iv(e,o.domReference)||d)return;let f=m?iS(m.nodesRef.current,u):[];if(f.length>0){let e=!0;if(f.forEach(t=>{t.context?.open&&!t.context.dataRef.current.__outsidePressBubbles&&(e=!1)}),!e)return}r(!1,e,\"outside-press\")}),D=af(e=>{if(!(\"sloppy\"!==B()||!n||!i||iv(e,o.floating)||iv(e,o.domReference))){if(\"touch\"===e.pointerType){_.current={startTime:Date.now(),startX:e.clientX,startY:e.clientY,dismissOnPointerUp:!1,dismissOnMouseDown:!0},k.start(1e3,()=>{_.current&&(_.current.dismissOnPointerUp=!1,_.current.dismissOnMouseDown=!1)});return}T(e)}}),L=af(e=>{if(I(e)||(k.clear(),\"mousedown\"===e.type&&_.current&&!_.current.dismissOnMouseDown))return;let t=()=>{\"pointerdown\"===e.type?D(e):T(e),iy(e)?.removeEventListener(e.type,t)};iy(e)?.addEventListener(e.type,t)}),N=af(e=>{if(\"sloppy\"!==B()||\"touch\"!==e.pointerType||!_.current||iv(e,o.floating)||iv(e,o.domReference))return;let t=Math.abs(e.clientX-_.current.startX),n=Math.abs(e.clientY-_.current.startY),r=Math.sqrt(t*t+n*n);r>5&&(_.current.dismissOnPointerUp=!0),r>10&&(T(e),k.clear(),_.current=null)}),R=af(e=>{\"sloppy\"!==B()||\"touch\"!==e.pointerType||!_.current||iv(e,o.floating)||iv(e,o.domReference)||(_.current.dismissOnPointerUp&&T(e),k.clear(),_.current=null)});x.useEffect(()=>{if(!n||!i)return;a.current.__escapeKeyBubbles=b,a.current.__outsidePressBubbles=A;let e=new as;function t(e){r(!1,e,\"ancestor-scroll\")}function s(){e.clear(),j.current=!0}function c(){e.start(5*!!a$(),()=>{j.current=!1})}let u=ib(o.floating);u.addEventListener(\"pointerdown\",O,!0),l&&(u.addEventListener(\"keydown\",w?z:P,w),u.addEventListener(\"compositionstart\",s),u.addEventListener(\"compositionend\",c)),y&&(u.addEventListener(\"click\",C?L:T,C),u.addEventListener(\"pointerdown\",C?L:T,C),u.addEventListener(\"pointermove\",N,C),u.addEventListener(\"pointerup\",R,C),u.addEventListener(\"mousedown\",L,C));let d=[];return f&&(aT(o.domReference)&&(d=aQ(o.domReference)),aT(o.floating)&&(d=d.concat(aQ(o.floating))),!aT(o.reference)&&o.reference&&o.reference.contextElement&&(d=d.concat(aQ(o.reference.contextElement)))),(d=d.filter(e=>e!==u.defaultView?.visualViewport)).forEach(e=>{e.addEventListener(\"scroll\",t,{passive:!0})}),()=>{u.removeEventListener(\"pointerdown\",O,!0),l&&(u.removeEventListener(\"keydown\",w?z:P,w),u.removeEventListener(\"compositionstart\",s),u.removeEventListener(\"compositionend\",c)),y&&(u.removeEventListener(\"click\",C?L:T,C),u.removeEventListener(\"pointerdown\",C?L:T,C),u.removeEventListener(\"pointermove\",N,C),u.removeEventListener(\"pointerup\",R,C),u.removeEventListener(\"mousedown\",L,C)),d.forEach(e=>{e.removeEventListener(\"scroll\",t)}),e.clear()}},[a,o,l,y,c,n,r,f,i,b,A,P,w,z,T,C,L,D,N,R,O]),x.useEffect(()=>{a.current.insideReactTree=!1},[a,y]);let M=x.useMemo(()=>({onKeyDown:P,...u&&{[iF[d]]:e=>{r(!1,e.nativeEvent,\"reference-press\")},...\"intentional\"!==d&&{onClick(e){r(!1,e.nativeEvent,\"reference-press\")}}}}),[P,r,u,d]),Z=af(e=>{let t=iy(e.nativeEvent);ig(o.floating,t)&&(v.current=!0)}),U=af(()=>{a.current.insideReactTree=!0,E.start(0,()=>{a.current.insideReactTree=!1})}),F=x.useMemo(()=>({onKeyDown:P,onMouseDown:Z,onMouseUp:Z,onPointerDownCapture:U,onMouseDownCapture:U,onClickCapture:U}),[P,Z,U]);return x.useMemo(()=>i?{reference:M,floating:F}:{},[i,M,F])}let iV=new Map([[\"select\",\"listbox\"],[\"combobox\",\"listbox\"],[\"label\",!1]]),i$=[\"top\",\"right\",\"bottom\",\"left\"],iW=Math.min,iY=Math.max,iK=Math.round,iX=Math.floor,iG=e=>({x:e,y:e}),iQ={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"},iJ={start:\"end\",end:\"start\"};function i0(e,t){return\"function\"==typeof e?e(t):e}function i1(e){return e.split(\"-\")[0]}function i2(e){return e.split(\"-\")[1]}function i4(e){return\"x\"===e?\"y\":\"x\"}function i5(e){return\"y\"===e?\"height\":\"width\"}let i3=new Set([\"top\",\"bottom\"]);function i6(e){return i3.has(i1(e))?\"y\":\"x\"}function i9(e){return e.replace(/start|end/g,e=>iJ[e])}let i8=[\"left\",\"right\"],i7=[\"right\",\"left\"],le=[\"top\",\"bottom\"],lt=[\"bottom\",\"top\"];function ln(e){return e.replace(/left|right|bottom|top/g,e=>iQ[e])}function lr(e){return\"number\"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function lo(e){let{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function la(e,t,n){return Math.floor(e/t)!==n}function li(e,t){return t<0||t>=e.current.length}function ll(e,t){return lc(e,{disabledIndices:t})}function ls(e,t){return lc(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function lc(e,{startingIndex:t=-1,decrement:n=!1,disabledIndices:r,amount:o=1}={}){let a=t;do a+=n?-o:o;while(a>=0&&a<=e.current.length-1&&lu(e,a,r));return a}function lu(e,t,n){if(\"function\"==typeof n)return n(t);if(n)return n.includes(t);let r=e.current[t];return null==r||r.hasAttribute(\"disabled\")||\"true\"===r.getAttribute(\"aria-disabled\")}let ld=0;function lf(e,t={}){let{preventScroll:n=!1,cancelPrevious:r=!0,sync:o=!1}=t;r&&cancelAnimationFrame(ld);let a=()=>e?.focus({preventScroll:n});o?a():ld=requestAnimationFrame(a)}function lp(e,t,n){switch(e){case\"vertical\":return t;case\"horizontal\":return n;default:return t||n}}function lh(e,t){return lp(t,e===ip||e===ih,e===iu||e===id)}function lm(e,t,n){return lp(t,e===ih,n?e===iu:e===id)||\"Enter\"===e||\" \"===e||\"\"===e}function lg(e=[]){let t=e.map(e=>e?.reference),n=e.map(e=>e?.floating),r=e.map(e=>e?.item),o=x.useCallback(t=>ly(t,e,\"reference\"),t),a=x.useCallback(t=>ly(t,e,\"floating\"),n),i=x.useCallback(t=>ly(t,e,\"item\"),r);return x.useMemo(()=>({getReferenceProps:o,getFloatingProps:a,getItemProps:i}),[o,a,i])}function ly(e,t,n){let r=new Map,o=\"item\"===n,a={};for(let t in\"floating\"===n&&(a.tabIndex=-1,a[il]=\"\"),e)o&&e&&(t===is||t===ic)||(a[t]=e[t]);for(let i=0;i<t.length;i+=1){let l,s=t[i]?.[n];(l=\"function\"==typeof s?e?s(e):null:s)&&lv(a,l,o,r)}return lv(a,e,o,r),a}function lv(e,t,n,r){for(let o in t){let a=t[o];n&&(o===is||o===ic)||(o.startsWith(\"on\")?(r.has(o)||r.set(o,[]),\"function\"==typeof a&&(r.get(o)?.push(a),e[o]=(...e)=>r.get(o)?.map(t=>t(...e)).find(e=>void 0!==e))):e[o]=a)}}let lb=x.createContext(void 0);function lA(e){let t=x.useContext(lb);if(void 0===t&&!e)throw Error(\"Base UI: MenuRootContext is missing. Menu parts must be placed within <Menu.Root>.\");return t}let lx=x.createContext(null);function lw(e,t=!1,n=!1){let[r,o]=x.useState(e&&t?\"idle\":void 0),[a,i]=x.useState(e);return e&&!a&&(i(!0),o(\"starting\")),e||!a||\"ending\"===r||n||o(\"ending\"),e||a||\"ending\"!==r||o(void 0),ax(()=>{if(!e&&a&&\"ending\"!==r&&n){let e=iD.request(()=>{o(\"ending\")});return()=>{iD.cancel(e)}}},[e,a,r,n]),ax(()=>{if(!e||t)return;let n=iD.request(()=>{ef.flushSync(()=>{o(void 0)})});return()=>{iD.cancel(n)}},[t,e]),ax(()=>{if(!e||!t)return;e&&a&&\"idle\"!==r&&o(\"starting\");let n=iD.request(()=>{o(\"idle\")});return()=>{iD.cancel(n)}},[t,e,a,o,r]),x.useMemo(()=>({mounted:a,setMounted:i,transitionStatus:r}),[a,r])}function lC(e){let{enabled:t=!0,open:n,ref:r,onComplete:o}=e,a=a0(n),i=af(o),l=function(e,t=!1){let n=iL();return af((r,o=null)=>{let a;if(n.cancel(),null!=e){if(\"current\"in e){if(null==e.current)return;a=e.current}else a=e;\"function\"!=typeof a.getAnimations||globalThis.BASE_UI_ANIMATIONS_DISABLED?r():n.request(()=>{function e(){a&&Promise.allSettled(a.getAnimations().map(e=>e.finished)).then(()=>{null!=o&&o.aborted||ef.flushSync(r)})}t?n.request(e):e()})}})}(r,n);x.useEffect(()=>{t&&l(()=>{n===a.current&&i()})},[t,n,i,l,a])}let l_=x.createContext(void 0);function lk(e=!0){let t=x.useContext(l_);if(void 0===t&&!e)throw Error(\"Base UI: DirectionContext is missing.\");return t?.direction??\"ltr\"}function lE(e){return e?.ownerDocument||document}let lj=()=>{},lS={},lO={},lB=\"\";class lP{lockCount=0;restore=null;timeoutLock=as.create();timeoutUnlock=as.create();acquire(e){return this.lockCount+=1,1===this.lockCount&&null===this.restore&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{this.lockCount-=1,0===this.lockCount&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{0===this.lockCount&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){if(0===this.lockCount||null!==this.restore)return;let t=lE(e).documentElement,n=aP(t).getComputedStyle(t).overflowY;if(\"hidden\"===n||\"clip\"===n){this.restore=lj;return}let r=a9||!function(e){if(\"undefined\"==typeof document)return!1;let t=lE(e);return aP(t).innerWidth-t.documentElement.clientWidth>0}(e);this.restore=r?function(e){let t=lE(e).documentElement,n=t.style.overflow;return t.style.overflow=\"hidden\",()=>{t.style.overflow=n}}(e):function(e){let t=lE(e),n=t.documentElement,r=t.body,o=aP(n),a=0,i=0,l=iD.create();if(a6&&(o.visualViewport?.scale??1)!==1)return()=>{};function s(){let e=o.getComputedStyle(n),t=o.getComputedStyle(r);a=n.scrollTop,i=n.scrollLeft,lS={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},lB=n.style.scrollBehavior,lO={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};let l=\"undefined\"!=typeof CSS&&CSS.supports?.(\"scrollbar-gutter\",\"stable\"),s=n.scrollHeight>n.clientHeight,c=n.scrollWidth>n.clientWidth,u=\"scroll\"===e.overflowY||\"scroll\"===t.overflowY,d=\"scroll\"===e.overflowX||\"scroll\"===t.overflowX,f=Math.max(0,o.innerWidth-n.clientWidth),p=Math.max(0,o.innerHeight-n.clientHeight),h=parseFloat(t.marginTop)+parseFloat(t.marginBottom),m=parseFloat(t.marginLeft)+parseFloat(t.marginRight);Object.assign(n.style,{scrollbarGutter:\"stable\",overflowY:!l&&(s||u)?\"scroll\":\"hidden\",overflowX:!l&&(c||d)?\"scroll\":\"hidden\"}),Object.assign(r.style,{position:\"relative\",height:h||p?`calc(100dvh - ${h+p}px)`:\"100dvh\",width:m||f?`calc(100vw - ${m+f}px)`:\"100vw\",boxSizing:\"border-box\",overflow:\"hidden\",scrollBehavior:\"unset\"}),r.scrollTop=a,r.scrollLeft=i,n.setAttribute(\"data-base-ui-scroll-locked\",\"\"),n.style.scrollBehavior=\"unset\"}function c(){Object.assign(n.style,lS),Object.assign(r.style,lO),n.scrollTop=a,n.scrollLeft=i,n.removeAttribute(\"data-base-ui-scroll-locked\"),n.style.scrollBehavior=lB}function u(){c(),l.request(s)}return s(),o.addEventListener(\"resize\",u),()=>{l.cancel(),c(),o.removeEventListener(\"resize\",u)}}(e)}}let lI=new lP;function lz(e){if(e)return({\"focus-out\":\"focus-out\",\"escape-key\":\"escape-key\",\"outside-press\":\"outside-press\",\"list-navigation\":\"list-navigation\",click:\"trigger-press\",hover:\"trigger-hover\",focus:\"trigger-focus\",\"reference-press\":\"trigger-press\",\"safe-polygon\":\"trigger-hover\",\"ancestor-scroll\":void 0})[e]}let lT=x.createContext(void 0);function lD(e=!0){let t=x.useContext(lT);if(void 0===t&&!e)throw Error(\"Base UI: ContextMenuRootContext is missing. ContextMenu parts must be placed within <ContextMenu.Root>.\");return t}let lL=x.createContext(!1);function lN(e,t){return e&&!t?e:!e&&t?t:e||t?{...e,...t}:void 0}let lR={};function lM(e,t,n,r,o){let a={...lF(e,lR)};return t&&(a=lZ(a,t)),n&&(a=lZ(a,n)),r&&(a=lZ(a,r)),o&&(a=lZ(a,o)),a}function lZ(e,t){return lU(t)?t(e):function(e,t){if(!t)return e;for(let n in t){let r=t[n];switch(n){case\"style\":e[n]=lN(e.style,r);break;case\"className\":e[n]=lH(e.className,r);break;default:!function(e,t){let n=e.charCodeAt(0),r=e.charCodeAt(1),o=e.charCodeAt(2);return 111===n&&110===r&&o>=65&&o<=90&&(\"function\"==typeof t||void 0===t)}(n,r)?e[n]=r:e[n]=function(e,t){return t?e?n=>{var r;if(null!=(r=n)&&\"object\"==typeof r&&\"nativeEvent\"in r){lq(n);let r=t(n);return n.baseUIHandlerPrevented||e?.(n),r}let o=t(n);return e?.(n),o}:t:e}(e[n],r)}}return e}(e,t)}function lU(e){return\"function\"==typeof e}function lF(e,t){return lU(e)?e(t):e??lR}function lq(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function lH(e,t){return t?e?t+\" \"+e:t:e}let lV=[],l$={current:!1},lW=function(e){let t,n,{children:r,open:o,onOpenChange:a,onOpenChangeComplete:i,defaultOpen:l=!1,disabled:s=!1,modal:c,loop:u=!0,orientation:d=\"vertical\",actionsRef:f,openOnHover:p,delay:h=100,closeDelay:m=0,closeParentOnEsc:g=!0}=e,[y,v]=x.useState(null),[A,w]=x.useState(null),[C,_]=x.useState(),[k,E]=x.useState(!0),[j,S]=x.useState(null),[O,B]=x.useState(null),[P,I]=x.useState(!0),[z,T]=x.useState(!1),D=x.useRef(null),L=x.useRef(null),N=x.useRef(null),R=x.useRef([]),M=x.useRef([]),Z=ac(),U=lD(!0),F=x.useContext(lL);{let e=lA(!0),n=function(e){let t=x.useContext(lx);if(null===t&&!e)throw Error(\"Base UI: MenubarContext is missing. Menubar parts must be placed within <Menubar>.\");return t}(!0);t=F&&e?{type:\"menu\",context:e}:n?{type:\"menubar\",context:n}:U?{type:\"context-menu\",context:U}:{type:void 0}}let q=ab();void 0!==t.type&&(q=t.context.rootId);let H=(void 0===t.type||\"context-menu\"===t.type)&&(c??!0),V=\"menu\"===t.type?t.context.allowMouseEnter:z,$=\"menu\"===t.type?t.context.setAllowMouseEnter:T,W=p??(\"menu\"===t.type||\"menubar\"===t.type&&t.context.hasSubmenuOpen),[Y,K]=am({controlled:o,default:l,name:\"MenuRoot\",state:\"open\"}),X=x.useRef(\"context-menu\"!==t.type),G=ac();x.useEffect(()=>{if(Y||(D.current=null),\"context-menu\"===t.type){if(!Y){G.clear(),X.current=!1;return}G.start(500,()=>{X.current=!0})}},[G,Y,t.type]);let Q=x.useCallback(e=>{N.current=e,w(e)},[]),{mounted:J,setMounted:ee,transitionStatus:et}=lw(Y),{openMethod:en,triggerProps:er,reset:eo}=function(e){let[t,n]=x.useState(null),r=af((t,r)=>{e||n(r)}),o=af(()=>{n(null)}),{onClick:a,onPointerDown:i}=function(e){let t=x.useRef(\"\"),n=x.useCallback(n=>{n.defaultPrevented||(t.current=n.pointerType,e(n,n.pointerType))},[e]);return{onClick:x.useCallback(n=>{if(0===n.detail)return void e(n,\"keyboard\");\"pointerType\"in n&&e(n,n.pointerType),e(n,t.current),t.current=\"\"},[e]),onPointerDown:n}}(r);return x.useMemo(()=>({openMethod:t,reset:o,triggerProps:{onClick:a,onPointerDown:i}}),[t,o,a,i])}(Y);var ea={enabled:Y&&H&&\"trigger-hover\"!==O&&\"touch\"!==en,mounted:J,open:Y,referenceElement:A};let{enabled:ei=!0,mounted:el,open:es,referenceElement:ec=null}=ea;ax(()=>{if(ei&&a6&&el&&!es){let e=lE(ec),t=e.body.style.userSelect,n=e.body.style.webkitUserSelect;return e.body.style.userSelect=\"none\",e.body.style.webkitUserSelect=\"none\",()=>{e.body.style.userSelect=t,e.body.style.webkitUserSelect=n}}},[ei,el,es,ec]),ax(()=>{if(ei)return lI.acquire(ec)},[ei,ec]),Y||k||E(!0);let eu=af(()=>{ee(!1),I(!0),$(!1),i?.(!1),eo()});lC({enabled:!f,open:Y,ref:L,onComplete(){Y||eu()}});let ed=x.useRef(!0),ep=ac(),eh=af((e,n,r)=>{if(Y===e||!1===e&&n?.type===\"click\"&&\"touch\"===n.pointerType&&!ed.current)return;if(!e&&null!==j){let e=R.current[j];queueMicrotask(()=>{e?.setAttribute(\"tabindex\",\"-1\")})}e&&\"trigger-focus\"===r?(ed.current=!1,ep.start(300,()=>{ed.current=!0})):(ed.current=!0,ep.clear());let o=(\"trigger-press\"===r||\"item-press\"===r)&&0===n.detail&&n?.isTrusted,i=!e&&(\"escape-key\"===r||null==r);function l(){a?.(e,n,r),K(e),B(r??null),D.current=n??null}\"trigger-hover\"===r?(I(!0),Z.start(500,()=>{I(!1)}),ef.flushSync(l)):l(),\"menubar\"===t.type&&(\"trigger-focus\"===r||\"focus-out\"===r||\"trigger-hover\"===r||\"list-navigation\"===r||\"sibling-open\"===r)?_(\"group\"):o||i?_(o?\"click\":\"dismiss\"):_(void 0)});x.useImperativeHandle(f,()=>({unmount:eu}),[eu]),\"context-menu\"===t.type&&(n=t.context),x.useImperativeHandle(n?.positionerRef,()=>A,[A]),x.useImperativeHandle(n?.actionsRef,()=>({setOpen:eh}),[eh]),x.useEffect(()=>{Y||Z.clear()},[Z,Y]);let em=aS({elements:{reference:y,floating:A},open:Y,onOpenChange(e,t,n){eh(e,t,lz(n))}}),eg=ij(em,{enabled:k&&W&&!s&&\"context-menu\"!==t.type&&(\"menubar\"!==t.type||t.context.hasSubmenuOpen&&!Y),handleClose:iP({blockPointerEvents:!0}),mouseOnly:!0,move:\"menu\"===t.type,restMs:void 0===t.type||\"menu\"===t.type&&V?h:void 0,delay:\"menu\"===t.type?{open:V?h:1e10,close:m}:{close:m}}),ey=iz(em,{enabled:!s&&!Y&&\"menubar\"===t.type&&t.context.hasSubmenuOpen&&!U}),ev=function(e,t={}){let{open:n,onOpenChange:r,dataRef:o}=e,{enabled:a=!0,event:i=\"click\",toggle:l=!0,ignoreMouse:s=!1,stickIfOpen:c=!0}=t,u=x.useRef(void 0),d=iL(),f=x.useMemo(()=>({onPointerDown(e){u.current=e.pointerType},onMouseDown(e){let t=u.current,a=e.nativeEvent;if(0!==e.button||\"click\"===i||ii(t,!0)&&s)return;let f=o.current.openEvent,p=f?.type,h=!(n&&l&&(!f||!c||\"click\"===p||\"mousedown\"===p));d.request(()=>{r(h,a,\"click\")})},onClick(e){let t=u.current;if(\"mousedown\"===i&&t){u.current=void 0;return}if(ii(t,!0)&&s)return;let a=o.current.openEvent,d=a?.type;r(!(n&&l&&(!a||!c||\"click\"===d||\"mousedown\"===d||\"keydown\"===d||\"keyup\"===d)),e.nativeEvent,\"click\")},onKeyDown(){u.current=void 0}}),[o,i,s,r,n,c,l,d]);return x.useMemo(()=>a?{reference:f}:iR,[a,f])}(em,{enabled:!s&&\"context-menu\"!==t.type,event:Y&&\"menubar\"===t.type?\"click\":\"mousedown\",toggle:!W||\"menu\"!==t.type,ignoreMouse:W&&\"menu\"===t.type,stickIfOpen:void 0===t.type&&P}),eb=iH(em,{enabled:!s,bubbles:g&&\"menu\"===t.type,outsidePress:()=>\"context-menu\"!==t.type||D.current?.type===\"contextmenu\"||X.current}),eA=function(e,t={}){let{open:n,elements:r,floatingId:o}=e,{enabled:a=!0,role:i=\"dialog\"}=t,l=ab(),s=r.domReference?.id||l,c=x.useMemo(()=>iw(r.floating)?.id||o,[r.floating,o]),u=iV.get(i)??i,d=null!=a_(),f=x.useMemo(()=>\"tooltip\"===u||\"label\"===i?{[`aria-${\"label\"===i?\"labelledby\":\"describedby\"}`]:n?c:void 0}:{\"aria-expanded\":n?\"true\":\"false\",\"aria-haspopup\":\"alertdialog\"===u?\"dialog\":u,\"aria-controls\":n?c:void 0,...\"listbox\"===u&&{role:\"combobox\"},...\"menu\"===u&&{id:s},...\"menu\"===u&&d&&{role:\"menuitem\"},...\"select\"===i&&{\"aria-autocomplete\":\"none\"},...\"combobox\"===i&&{\"aria-autocomplete\":\"list\"}},[u,c,d,n,s,i]),p=x.useMemo(()=>{let e={id:c,...u&&{role:u}};return\"tooltip\"===u||\"label\"===i?e:{...e,...\"menu\"===u&&{\"aria-labelledby\":s}}},[u,c,s,i]),h=x.useCallback(({active:e,selected:t})=>{let n={role:\"option\",...e&&{id:`${c}-fui-option`}};switch(i){case\"select\":case\"combobox\":return{...n,\"aria-selected\":t}}return{}},[c,i]);return x.useMemo(()=>a?{reference:f,floating:p,item:h}:{},[a,f,p,h])}(em,{role:\"menu\"}),ex=lk(),ew=function(e,t){let{open:n,onOpenChange:r,elements:o,floatingId:a}=e,{listRef:i,activeIndex:l,onNavigate:s=()=>{},enabled:c=!0,selectedIndex:u=null,allowEscape:d=!1,loop:f=!1,nested:p=!1,rtl:h=!1,virtual:m=!1,focusItemOnOpen:g=\"auto\",focusItemOnHover:y=!0,openOnArrowKeyDown:v=!0,disabledIndices:b,orientation:A=\"vertical\",parentOrientation:w,cols:C=1,scrollItemIntoView:_=!0,virtualItemRef:k,itemSizes:E,dense:j=!1}=t,S=a0(iw(o.floating)),O=a_(),B=ak();ax(()=>{e.dataRef.current.orientation=A},[e,A]);let P=ix(o.domReference),I=x.useRef(g),z=x.useRef(u??-1),T=x.useRef(null),D=x.useRef(!0),L=af(()=>{s(-1===z.current?null:z.current)}),N=x.useRef(L),R=x.useRef(!!o.floating),M=x.useRef(n),Z=x.useRef(!1),U=x.useRef(!1),F=a0(b),q=a0(n),H=a0(_),V=a0(u),[$,W]=x.useState(),Y=af(()=>{function e(e){m?(e.id?.endsWith(\"-fui-option\")&&(e.id=`${a}-${Math.random().toString(16).slice(2,10)}`),W(e.id),B?.events.emit(\"virtualfocus\",e),k&&(k.current=e)):lf(e,{sync:Z.current,preventScroll:!0})}let t=i.current[z.current],n=U.current;t&&e(t),(Z.current?e=>e():requestAnimationFrame)(()=>{let r=i.current[z.current]||t;if(!r)return;t||e(r);let o=H.current;o&&X&&(n||!D.current)&&r.scrollIntoView?.(\"boolean\"==typeof o?{block:\"nearest\",inline:\"nearest\"}:o)})});ax(()=>{c&&(n&&o.floating?I.current&&null!=u&&(U.current=!0,z.current=u,L()):R.current&&(z.current=-1,N.current()))},[c,n,o.floating,u,L]),ax(()=>{if(c&&n&&o.floating)if(null==l){if(Z.current=!1,null!=V.current)return;if(R.current&&(z.current=-1,Y()),(!M.current||!R.current)&&I.current&&(null!=T.current||!0===I.current&&null==T.current)){let e=0,t=()=>{null==i.current[0]?(e<2&&(e?requestAnimationFrame:queueMicrotask)(t),e+=1):(z.current=null==T.current||lm(T.current,A,h)||p?ll(i,F.current):ls(i,F.current),T.current=null,L())};t()}}else li(i,l)||(z.current=l,Y(),U.current=!1)},[c,n,o.floating,l,V,p,i,A,h,L,Y,F]),ax(()=>{if(!c||o.floating||!B||m||!R.current)return;let e=B.nodesRef.current,t=e.find(e=>e.id===O)?.context?.elements.floating,n=im(ib(o.floating)),r=e.some(e=>e.context&&ig(e.context.elements.floating,n));t&&!r&&D.current&&t.focus({preventScroll:!0})},[c,o.floating,B,O,m]),ax(()=>{N.current=L,M.current=n,R.current=!!o.floating}),ax(()=>{n||(T.current=null,I.current=g)},[n,g]);let K=null!=l,X=x.useMemo(()=>{function e(e){if(!q.current)return;let t=i.current.indexOf(e);-1!==t&&z.current!==t&&(z.current=t,L())}return{onFocus({currentTarget:t}){Z.current=!0,e(t)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove({currentTarget:t}){Z.current=!0,U.current=!1,y&&e(t)},onPointerLeave({pointerType:e}){D.current&&\"touch\"!==e&&(Z.current=!0,y&&(z.current=-1,L(),m||S.current?.focus({preventScroll:!0})))}}},[q,S,y,i,L,m]),G=x.useCallback(()=>w??B?.nodesRef.current.find(e=>e.id===O)?.context?.dataRef?.current.orientation,[O,B,w]),Q=af(e=>{var t,a,l,s,c;if(D.current=!1,Z.current=!0,229===e.which||!q.current&&e.currentTarget===S.current)return;if(p&&(t=e.key,a=A,l=h,s=C,\"both\"===a||\"horizontal\"===a&&s&&s>1?\"Escape\"===t:lp(a,l?t===id:t===iu,t===ip))){lh(e.key,G())||ir(e),r(!1,e.nativeEvent,\"list-navigation\"),aD(o.domReference)&&(m?B?.events.emit(\"virtualfocus\",o.domReference):o.domReference.focus());return}let u=z.current,g=ll(i,b),y=ls(i,b);if(P||(\"Home\"===e.key&&(ir(e),z.current=g,L()),\"End\"===e.key&&(ir(e),z.current=y,L())),C>1){let t=E||Array.from({length:i.current.length},()=>({width:1,height:1})),n=function(e,t,n){let r=[],o=0;return e.forEach(({width:e,height:a},i)=>{let l=!1;for(n&&(o=0);!l;){let n=[];for(let r=0;r<e;r+=1)for(let e=0;e<a;e+=1)n.push(o+r+e*t);o%t+e<=t&&n.every(e=>null==r[e])?(n.forEach(e=>{r[e]=i}),l=!0):o+=1}}),[...r]}(t,C,j),r=n.findIndex(e=>null!=e&&!lu(i,e,b)),o=n.reduce((e,t,n)=>null==t||lu(i,t,b)?e:n,-1),a=n[function(e,{event:t,orientation:n,loop:r,rtl:o,cols:a,disabledIndices:i,minIndex:l,maxIndex:s,prevIndex:c,stopEvent:u=!1}){let d=c;if(t.key===ip){if(u&&ir(t),-1===c)d=s;else if(d=lc(e,{startingIndex:d,amount:a,decrement:!0,disabledIndices:i}),r&&(c-a<l||d<0)){let e=c%a,t=s%a,n=s-(t-e);d=t===e?s:t>e?n:n-a}li(e,d)&&(d=c)}if(t.key===ih&&(u&&ir(t),-1===c?d=l:(d=lc(e,{startingIndex:c,amount:a,disabledIndices:i}),r&&c+a>s&&(d=lc(e,{startingIndex:c%a-a,amount:a,disabledIndices:i}))),li(e,d)&&(d=c)),\"both\"===n){let n=iX(c/a);t.key===(o?iu:id)&&(u&&ir(t),c%a!=a-1?(d=lc(e,{startingIndex:c,disabledIndices:i}),r&&la(d,a,n)&&(d=lc(e,{startingIndex:c-c%a-1,disabledIndices:i}))):r&&(d=lc(e,{startingIndex:c-c%a-1,disabledIndices:i})),la(d,a,n)&&(d=c)),t.key===(o?id:iu)&&(u&&ir(t),c%a!=0?(d=lc(e,{startingIndex:c,decrement:!0,disabledIndices:i}),r&&la(d,a,n)&&(d=lc(e,{startingIndex:c+(a-c%a),decrement:!0,disabledIndices:i}))):r&&(d=lc(e,{startingIndex:c+(a-c%a),decrement:!0,disabledIndices:i})),la(d,a,n)&&(d=c));let l=iX(s/a)===n;li(e,d)&&(d=r&&l?t.key===(o?id:iu)?s:lc(e,{startingIndex:c-c%a-1,disabledIndices:i}):c)}return d}({current:n.map(e=>null!=e?i.current[e]:null)},{event:e,orientation:A,loop:f,rtl:h,cols:C,disabledIndices:(c=[...(\"function\"!=typeof b?b:null)||i.current.map((e,t)=>lu(i,t,b)?t:void 0),void 0],n.flatMap((e,t)=>c.includes(e)?[t]:[])),minIndex:r,maxIndex:o,prevIndex:function(e,t,n,r,o){if(-1===e)return -1;let a=n.indexOf(e),i=t[e];switch(o){case\"tl\":return a;case\"tr\":if(!i)return a;return a+i.width-1;case\"bl\":if(!i)return a;return a+(i.height-1)*r;case\"br\":return n.lastIndexOf(e);default:return -1}}(z.current>y?g:z.current,t,n,C,e.key===ih?\"bl\":e.key===(h?iu:id)?\"tr\":\"tl\"),stopEvent:!0})];if(null!=a&&(z.current=a,L()),\"both\"===A)return}if(lh(e.key,A)){if(ir(e),n&&!m&&im(e.currentTarget.ownerDocument)===e.currentTarget){z.current=lm(e.key,A,h)?g:y,L();return}lm(e.key,A,h)?f?z.current=u>=y?d&&u!==i.current.length?-1:g:lc(i,{startingIndex:u,disabledIndices:b}):z.current=Math.min(y,lc(i,{startingIndex:u,disabledIndices:b})):f?z.current=u<=g?d&&-1!==u?i.current.length:y:lc(i,{startingIndex:u,decrement:!0,disabledIndices:b}):z.current=Math.max(g,lc(i,{startingIndex:u,decrement:!0,disabledIndices:b})),li(i,z.current)&&(z.current=-1),L()}}),J=x.useMemo(()=>m&&n&&K&&{\"aria-activedescendant\":$},[m,n,K,$]),ee=x.useMemo(()=>({\"aria-orientation\":\"both\"===A?void 0:A,...!P?J:{},onKeyDown(e){if(\"Tab\"===e.key&&e.shiftKey&&n&&!m){ir(e),r(!1,e.nativeEvent,\"list-navigation\"),aD(o.domReference)&&o.domReference.focus();return}Q(e)},onPointerMove(){D.current=!0}}),[J,Q,A,P,r,n,m,o.domReference]),et=x.useMemo(()=>{function e(e){\"auto\"===g&&io(e.nativeEvent)&&(I.current=!0)}function t(e){I.current=g,\"auto\"===g&&ia(e.nativeEvent)&&(I.current=!0)}return{...J,onKeyDown(e){var t,o;D.current=!1;let a=e.key.startsWith(\"Arrow\"),l=(t=e.key,o=G(),lp(o,h?t===iu:t===id,t===ih)),s=lh(e.key,A),c=(p?l:s)||\"Enter\"===e.key||\"\"===e.key.trim();if(m&&n)return Q(e);if(n||v||!a){if(c){let t=lh(e.key,G());T.current=p&&t?null:e.key}if(p){l&&(ir(e),n?(z.current=ll(i,F.current),L()):r(!0,e.nativeEvent,\"list-navigation\"));return}s&&(null!=u&&(z.current=u),ir(e),!n&&v?r(!0,e.nativeEvent,\"list-navigation\"):Q(e),n&&L())}},onFocus(){n&&!m&&(z.current=-1,L())},onPointerDown:t,onPointerEnter:t,onMouseDown:e,onClick:e}},[J,Q,F,g,i,p,L,r,n,v,A,G,h,u,m]);return x.useMemo(()=>c?{reference:et,floating:ee,item:X}:{},[c,et,ee,X])}(em,{enabled:!s,listRef:R,activeIndex:j,nested:void 0!==t.type,loop:u,orientation:d,parentOrientation:\"menubar\"===t.type?t.context.orientation:void 0,rtl:\"rtl\"===ex,disabledIndices:lV,onNavigate:S,openOnArrowKeyDown:\"context-menu\"!==t.type}),eC=x.useRef(!1),e_=function(e,t){let{open:n,dataRef:r}=e,{listRef:o,activeIndex:a,onMatch:i,onTypingChange:l,enabled:s=!0,findMatch:c=null,resetMs:u=750,ignoreKeys:d=[],selectedIndex:f=null}=t,p=ac(),h=x.useRef(\"\"),m=x.useRef(f??a??-1),g=x.useRef(null),y=af(i),v=af(l),b=a0(c),A=a0(d);ax(()=>{n&&(p.clear(),g.current=null,h.current=\"\")},[n,p]),ax(()=>{n&&\"\"===h.current&&(m.current=f??a??-1)},[n,f,a]);let w=af(e=>{e?r.current.typing||(r.current.typing=e,v(e)):r.current.typing&&(r.current.typing=e,v(e))}),C=af(e=>{function t(e,t,n){let r=b.current?b.current(t,n):t.find(e=>e?.toLocaleLowerCase().indexOf(n.toLocaleLowerCase())===0);return r?e.indexOf(r):-1}let r=o.current;if(h.current.length>0&&\" \"!==h.current[0]&&(-1===t(r,r,h.current)?w(!1):\" \"===e.key&&ir(e)),null==r||A.current.includes(e.key)||1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey)return;n&&\" \"!==e.key&&(ir(e),w(!0)),r.every(e=>!e||e[0]?.toLocaleLowerCase()!==e[1]?.toLocaleLowerCase())&&h.current===e.key&&(h.current=\"\",m.current=g.current),h.current+=e.key,p.start(u,()=>{h.current=\"\",m.current=g.current,w(!1)});let a=m.current,i=t(r,[...r.slice((a||0)+1),...r.slice(0,(a||0)+1)],h.current);-1!==i?(y(i),g.current=i):\" \"!==e.key&&(h.current=\"\",w(!1))}),_=x.useMemo(()=>({onKeyDown:C}),[C]),k=x.useMemo(()=>({onKeyDown:C,onKeyUp(e){\" \"===e.key&&w(!1)}}),[C,w]);return x.useMemo(()=>s?{reference:_,floating:k}:{},[s,_,k])}(em,{listRef:M,activeIndex:j,resetMs:500,onMatch:e=>{Y&&e!==j&&S(e)},onTypingChange:x.useCallback(e=>{eC.current=e},[])}),{getReferenceProps:ek,getFloatingProps:eE,getItemProps:ej}=lg([eg,ev,eb,ey,eA,ew,e_]),eS=function(e){let{enabled:t=!0,mouseDownAction:n,open:r}=e,o=x.useRef(!1);return x.useMemo(()=>t?{onMouseDown:e=>{(\"open\"===n&&!r||\"close\"===n&&r)&&(o.current=!0,lE(e.currentTarget).addEventListener(\"click\",()=>{o.current=!1},{once:!0}))},onClick:e=>{o.current&&(o.current=!1,e.preventBaseUIHandler())}}:iR,[t,n,r])}({open:Y,enabled:\"menubar\"===t.type,mouseDownAction:\"open\"}),eO=x.useMemo(()=>{let e=lM(ek(),{onMouseEnter(){E(!0)},onMouseMove(){$(!0)}},er,eS);return delete e.role,e},[ek,eS,$,er]),eB=x.useMemo(()=>eE({onMouseEnter(){W&&\"menu\"!==t.type||E(!1)},onMouseMove(){$(!0)},onClick(){W&&E(!1)}}),[eE,W,t.type,$]),eP=x.useMemo(()=>ej(),[ej]),eI=x.useMemo(()=>({activeIndex:j,setActiveIndex:S,allowMouseUpTriggerRef:t.type?t.context.allowMouseUpTriggerRef:l$,floatingRootContext:em,itemProps:eP,popupProps:eB,triggerProps:eO,itemDomElements:R,itemLabels:M,mounted:J,open:Y,popupRef:L,positionerRef:N,setOpen:eh,setPositionerElement:Q,triggerElement:y,setTriggerElement:v,transitionStatus:et,lastOpenChangeReason:O,instantType:C,onOpenChangeComplete:i,setHoverEnabled:E,typingRef:eC,modal:H,disabled:s,parent:t,rootId:q,allowMouseEnter:V,setAllowMouseEnter:$}),[j,em,eP,eB,eO,R,M,J,Y,N,eh,et,y,Q,O,C,i,H,s,t,q,V,$]),ez=(0,b.jsx)(lb.Provider,{value:eI,children:r});return void 0===t.type||\"context-menu\"===t.type?(0,b.jsx)(aj,{children:ez}):ez};function lY(e,t,n,r){var o,a,i,l,s;let c=aa(lK).current;return o=c,a=e,i=t,l=n,s=r,(o.refs[0]!==a||o.refs[1]!==i||o.refs[2]!==l||o.refs[3]!==s)&&lX(c,[e,t,n,r]),c.callback}function lK(){return{callback:null,cleanup:null,refs:[]}}function lX(e,t){if(e.refs=t,t.every(e=>null==e)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&(e.cleanup(),e.cleanup=null),null!=n){let r=Array(t.length).fill(null);for(let e=0;e<t.length;e+=1){let o=t[e];if(null!=o)switch(typeof o){case\"function\":{let t=o(n);\"function\"==typeof t&&(r[e]=t);break}case\"object\":o.current=n}}e.cleanup=()=>{for(let e=0;e<t.length;e+=1){let n=t[e];if(null!=n)switch(typeof n){case\"function\":{let t=r[e];\"function\"==typeof t?t():n(null);break}case\"object\":n.current=null}}}}}}let lG=function(e){return e.startingStyle=\"data-starting-style\",e.endingStyle=\"data-ending-style\",e}({}),lQ={[lG.startingStyle]:\"\"},lJ={[lG.endingStyle]:\"\"},l0={transitionStatus:e=>\"starting\"===e?lQ:\"ending\"===e?lJ:null},l1=function(e){return e.open=\"data-open\",e.closed=\"data-closed\",e[e.startingStyle=lG.startingStyle]=\"startingStyle\",e[e.endingStyle=lG.endingStyle]=\"endingStyle\",e.anchorHidden=\"data-anchor-hidden\",e}({}),l2=function(e){return e.popupOpen=\"data-popup-open\",e.pressed=\"data-pressed\",e}({}),l4={[l2.popupOpen]:\"\"},l5={[l2.popupOpen]:\"\",[l2.pressed]:\"\"},l3={[l1.open]:\"\"},l6={[l1.closed]:\"\"},l9={[l1.anchorHidden]:\"\"},l8={open:e=>e?l4:null},l7={open:e=>e?l5:null},se={open:e=>e?l3:l6,anchorHidden:e=>e?l9:null},st=parseInt(x.version,10);function sn(e,t,n={}){let r=t.render,o=function(e,t={}){var n,r;let o,{className:a,render:i}=e,{state:l=iR,ref:s,props:c,disableStyleHooks:u,customStyleHookMapping:d,enabled:f=!0}=t,p=f?(n=a,r=l,\"function\"==typeof n?n(r):n):void 0;!0!==u&&(o=x.useMemo(()=>f?function(e,t){let n={};for(let r in e){let o=e[r];if(t?.hasOwnProperty(r)){let e=t[r](o);null!=e&&Object.assign(n,e);continue}!0===o?n[`data-${r.toLowerCase()}`]=\"\":o&&(n[`data-${r.toLowerCase()}`]=o.toString())}return n}(l,d):iR,[l,d,f]));let h=f?lN(o,Array.isArray(c)?function(e){if(0===e.length)return lR;if(1===e.length)return lF(e[0],lR);let t={...lF(e[0],lR)};for(let n=1;n<e.length;n+=1)t=lZ(t,e[n]);return t}(c):c)??iR:iR;return(\"undefined\"!=typeof document&&(f?Array.isArray(s)?h.ref=function(e){var t,n;let r=aa(lK).current;return t=r,n=e,(t.refs.length!==n.length||t.refs.some((e,t)=>e!==n[t]))&&lX(r,e),r.callback}([h.ref,sr(i),...s]):h.ref=lY(h.ref,sr(i),s):lY(null,null)),f)?(void 0!==p&&(h.className=lH(h.className,p)),h):iR}(t,n);return!1===n.enabled?null:function(e,t,n,r){if(t){if(\"function\"==typeof t)return t(n,r);let e=lM(n,t.props);return e.ref=n.ref,x.cloneElement(t,e)}if(e&&\"string\"==typeof e){var o,a;return o=e,a=n,\"button\"===o?(0,b.jsx)(\"button\",{type:\"button\",...a}):\"img\"===o?(0,b.jsx)(\"img\",{alt:\"\",...a}):x.createElement(o,a)}throw Error(\"Base UI: Render element or function are not defined.\")}(e,r,o,n.state??iR)}function sr(e){return e&&\"function\"!=typeof e?st>=19?e.props.ref:e.ref:null}let so=x.createContext(void 0);function sa(e=!1){let t=x.useContext(so);if(void 0===t&&!e)throw Error(\"Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>.\");return t}function si(e={}){let{disabled:t=!1,focusableWhenDisabled:n,tabIndex:r=0,native:o=!0}=e,a=x.useRef(null),i=void 0!==sa(!0),l=af(()=>{let e=a.current;return!!(e?.tagName===\"A\"&&e?.href)}),{props:s}=function(e){let{focusableWhenDisabled:t,disabled:n,composite:r=!1,tabIndex:o=0,isNativeButton:a}=e,i=r&&!1!==t,l=r&&!1===t;return{props:x.useMemo(()=>{let e={onKeyDown(e){n&&t&&\"Tab\"!==e.key&&e.preventDefault()}};return r||(e.tabIndex=o,!a&&n&&(e.tabIndex=t?o:-1)),(a&&(t||i)||!a&&n)&&(e[\"aria-disabled\"]=n),a&&(!t||l)&&(e.disabled=n),e},[r,n,t,i,l,a,o])}}({focusableWhenDisabled:n,disabled:t,composite:i,tabIndex:r,isNativeButton:o});return ax(()=>{let e=a.current;e instanceof HTMLButtonElement&&i&&t&&void 0===s.disabled&&e.disabled&&(e.disabled=!1)},[t,s.disabled,i]),{getButtonProps:x.useCallback((e={})=>{let{onClick:n,onMouseDown:r,onKeyUp:a,onKeyDown:i,onPointerDown:c,...u}=e;return lM({type:o?\"button\":void 0,onClick(e){if(t)return void e.preventDefault();n?.(e)},onMouseDown(e){t||r?.(e)},onKeyDown(e){if(t||(lq(e),i?.(e)),e.baseUIHandlerPrevented)return;let r=e.target===e.currentTarget&&!o&&!l()&&!t,a=\"Enter\"===e.key,s=\" \"===e.key;r&&((s||a)&&e.preventDefault(),a&&n?.(e))},onKeyUp(e){t||(lq(e),a?.(e)),!e.baseUIHandlerPrevented&&(e.target!==e.currentTarget||o||t||\" \"!==e.key||n?.(e))},onPointerDown(e){if(t)return void e.preventDefault();c?.(e)}},o?void 0:{role:\"button\"},s,u)},[t,s,o,l]),buttonRef:a}}let sl=x.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}}),ss=function(e){return e[e.None=0]=\"None\",e[e.GuessFromOrder=1]=\"GuessFromOrder\",e}({});function sc(e={}){let{label:t,metadata:n,textRef:r,indexGuessBehavior:o}=e,{register:a,unregister:i,subscribeMapChange:l,elementsRef:s,labelsRef:c,nextIndexRef:u}=x.useContext(sl),d=x.useRef(-1),[f,p]=x.useState(o===ss.GuessFromOrder?()=>{if(-1===d.current){let e=u.current;u.current+=1,d.current=e}return d.current}:-1),h=x.useRef(null),m=x.useCallback(e=>{if(h.current=e,-1!==f&&null!==e&&(s.current[f]=e,c)){let n=void 0!==t;c.current[f]=n?t:r?.current?.textContent??e.textContent}},[f,s,c,t,r]);return ax(()=>{let e=h.current;if(e)return a(e,n),()=>{i(e)}},[a,i,n]),ax(()=>l(e=>{let t=h.current?e.get(h.current)?.index:null;null!=t&&p(t)}),[l,p]),x.useMemo(()=>({ref:m,index:f}),[f,m])}function su(e){let{render:t,className:n,state:r=iR,props:o=iM,refs:a=iM,metadata:i,customStyleHookMapping:l,tag:s=\"div\",...c}=e,{compositeProps:u,compositeRef:d}=function(e={}){let{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=sa(),{ref:o,index:a}=sc(e),i=n===a,l=x.useRef(null),s=lY(o,l);return{compositeProps:x.useMemo(()=>({tabIndex:i?0:-1,onFocus(){r(a)},onMouseMove(){let e=l.current;if(!t||!e)return;let n=e.hasAttribute(\"disabled\")||\"true\"===e.ariaDisabled;i||n||e.focus()}}),[i,r,a,t]),compositeRef:s,index:a}}({metadata:i});return sn(s,e,{state:r,ref:[...a,d],props:[u,...o,c],customStyleHookMapping:l})}let sd=x.forwardRef(function(e,t){let{render:n,className:r,disabled:o=!1,nativeButton:a=!0,...i}=e,{triggerProps:l,disabled:s,setTriggerElement:c,open:u,allowMouseUpTriggerRef:d,positionerRef:f,parent:p,lastOpenChangeReason:h,rootId:m}=lA(),g=o||s,y=x.useRef(null),v=ac(),{getButtonProps:A,buttonRef:w}=si({disabled:g,native:a}),C=lY(w,c),{events:_}=ak();x.useEffect(()=>{u||void 0!==p.type||(d.current=!1)},[d,u,p.type]);let k=af(e=>{if(!y.current)return;v.clear(),d.current=!1;let t=e.target;if(ig(y.current,t)||ig(f.current,t)||t===y.current||null!=t&&function e(t){return aD(t)&&t.hasAttribute(\"data-rootownerid\")?t.getAttribute(\"data-rootownerid\")??void 0:aY(t)?void 0:e(aG(t))}(t)===m)return;let n=function(e){let t=e.getBoundingClientRect(),n=window.getComputedStyle(e,\"::before\"),r=window.getComputedStyle(e,\"::after\");if(\"none\"===n.content&&\"none\"===r.content)return t;let o=parseFloat(n.width)||0,a=parseFloat(n.height)||0,i=parseFloat(r.width)||0,l=parseFloat(r.height)||0,s=Math.max(t.width,o,i),c=Math.max(t.height,a,l),u=s-t.width,d=c-t.height;return{left:t.left-u/2,right:t.right+u/2,top:t.top-d/2,bottom:t.bottom+d/2}}(y.current);e.clientX>=n.left-2&&e.clientX<=n.right+2&&e.clientY>=n.top-2&&e.clientY<=n.bottom+2||_.emit(\"close\",{domEvent:e,reason:\"cancel-open\"})});x.useEffect(()=>{u&&\"trigger-hover\"===h&&lE(y.current).addEventListener(\"mouseup\",k,{once:!0})},[u,k,h]);let E=\"menubar\"===p.type,j=x.useCallback(e=>lM(E?{role:\"menuitem\"}:{},{\"aria-haspopup\":\"menu\",ref:C,onMouseDown:e=>{u||(v.start(200,()=>{d.current=!0}),lE(e.currentTarget).addEventListener(\"mouseup\",k,{once:!0}))}},e,A),[A,C,u,d,v,k,E]),S=x.useMemo(()=>({disabled:g,open:u}),[g,u]),O=[y,t,w],B=[l,i,j],P=sn(\"button\",e,{enabled:!E,customStyleHookMapping:l7,state:S,ref:O,props:B});return E?(0,b.jsx)(su,{tag:\"button\",render:n,className:r,state:S,refs:O,props:B,customStyleHookMapping:l7}):P}),sf={clip:\"rect(0 0 0 0)\",overflow:\"hidden\",whiteSpace:\"nowrap\",position:\"fixed\",top:0,left:0,border:0,padding:0,width:1,height:1,margin:-1},sp=x.forwardRef(function(e,t){let[n,r]=x.useState();return ax(()=>{a8&&r(\"button\")},[]),(0,b.jsx)(\"span\",{...e,ref:t,tabIndex:0,role:n,\"aria-hidden\":!n||void 0,style:sf,\"data-base-ui-focus-guard\":\"\"})});var sh='input:not([inert]),select:not([inert]),textarea:not([inert]),a[href]:not([inert]),button:not([inert]),[tabindex]:not(slot):not([inert]),audio[controls]:not([inert]),video[controls]:not([inert]),[contenteditable]:not([contenteditable=\"false\"]):not([inert]),details>summary:first-of-type:not([inert]),details:not([inert])',sm=\"undefined\"==typeof Element,sg=sm?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,sy=!sm&&Element.prototype.getRootNode?function(e){var t;return null==e||null==(t=e.getRootNode)?void 0:t.call(e)}:function(e){return null==e?void 0:e.ownerDocument},sv=function e(t,n){void 0===n&&(n=!0);var r,o=null==t||null==(r=t.getAttribute)?void 0:r.call(t,\"inert\");return\"\"===o||\"true\"===o||n&&t&&e(t.parentNode)},sb=function(e){var t,n=null==e||null==(t=e.getAttribute)?void 0:t.call(e,\"contenteditable\");return\"\"===n||\"true\"===n},sA=function(e,t,n){if(sv(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(sh));return t&&sg.call(e,sh)&&r.unshift(e),r=r.filter(n)},sx=function e(t,n,r){for(var o=[],a=Array.from(t);a.length;){var i=a.shift();if(!sv(i,!1))if(\"SLOT\"===i.tagName){var l=i.assignedElements(),s=e(l.length?l:i.children,!0,r);r.flatten?o.push.apply(o,s):o.push({scopeParent:i,candidates:s})}else{sg.call(i,sh)&&r.filter(i)&&(n||!t.includes(i))&&o.push(i);var c=i.shadowRoot||\"function\"==typeof r.getShadowRoot&&r.getShadowRoot(i),u=!sv(c,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(c&&u){var d=e(!0===c?i.children:c.children,!0,r);r.flatten?o.push.apply(o,d):o.push({scopeParent:i,candidates:d})}else a.unshift.apply(a,i.children)}}return o},sw=function(e){return!isNaN(parseInt(e.getAttribute(\"tabindex\"),10))},sC=function(e){if(!e)throw Error(\"No node provided\");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||sb(e))&&!sw(e)?0:e.tabIndex},s_=function(e,t){var n=sC(e);return n<0&&t&&!sw(e)?0:n},sk=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},sE=function(e){return\"INPUT\"===e.tagName},sj=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]},sS=function(e){if(!e.name)return!0;var t,n=e.form||sy(e),r=function(e){return n.querySelectorAll('input[type=\"radio\"][name=\"'+e+'\"]')};if(\"undefined\"!=typeof window&&void 0!==window.CSS&&\"function\"==typeof window.CSS.escape)t=r(window.CSS.escape(e.name));else try{t=r(e.name)}catch(e){return console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\",e.message),!1}var o=sj(t,e.form);return!o||o===e},sO=function(e){var t;return sE(t=e)&&\"radio\"===t.type&&!sS(e)},sB=function(e){var t,n,r,o,a,i,l,s=e&&sy(e),c=null==(t=s)?void 0:t.host,u=!1;if(s&&s!==e)for(u=!!(null!=(n=c)&&null!=(r=n.ownerDocument)&&r.contains(c)||null!=e&&null!=(o=e.ownerDocument)&&o.contains(e));!u&&c;)u=!!(null!=(i=c=null==(a=s=sy(c))?void 0:a.host)&&null!=(l=i.ownerDocument)&&l.contains(c));return u},sP=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return 0===n&&0===r},sI=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if(\"hidden\"===getComputedStyle(e).visibility)return!0;var o=sg.call(e,\"details>summary:first-of-type\")?e.parentElement:e;if(sg.call(o,\"details:not([open]) *\"))return!0;if(n&&\"full\"!==n&&\"legacy-full\"!==n){if(\"non-zero-area\"===n)return sP(e)}else{if(\"function\"==typeof r){for(var a=e;e;){var i=e.parentElement,l=sy(e);if(i&&!i.shadowRoot&&!0===r(i))return sP(e);e=e.assignedSlot?e.assignedSlot:i||l===e.ownerDocument?i:l.host}e=a}if(sB(e))return!e.getClientRects().length;if(\"legacy-full\"!==n)return!0}return!1},sz=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(\"FIELDSET\"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if(\"LEGEND\"===r.tagName)return!!sg.call(t,\"fieldset[disabled] *\")||!r.contains(e)}return!0}t=t.parentElement}return!1},sT=function(e,t){var n,r;return!(t.disabled||sv(t)||sE(n=t)&&\"hidden\"===n.type||sI(t,e)||\"DETAILS\"===(r=t).tagName&&Array.prototype.slice.apply(r.children).some(function(e){return\"SUMMARY\"===e.tagName})||sz(t))},sD=function(e,t){return!(sO(t)||0>sC(t))&&!!sT(e,t)},sL=function(e){var t=parseInt(e.getAttribute(\"tabindex\"),10);return!!isNaN(t)||!!(t>=0)},sN=function e(t){var n=[],r=[];return t.forEach(function(t,o){var a=!!t.scopeParent,i=a?t.scopeParent:t,l=s_(i,a),s=a?e(t.candidates):i;0===l?a?n.push.apply(n,s):n.push(i):r.push({documentOrder:o,tabIndex:l,item:t,isScope:a,content:s})}),r.sort(sk).reduce(function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e},[]).concat(n)},sR=function(e,t){return sN((t=t||{}).getShadowRoot?sx([e],t.includeContainer,{filter:sD.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:sL}):sA(e,t.includeContainer,sD.bind(null,t)))},sM=function(e,t){return(t=t||{}).getShadowRoot?sx([e],t.includeContainer,{filter:sT.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):sA(e,t.includeContainer,sT.bind(null,t))},sZ=function(e,t){if(t=t||{},!e)throw Error(\"No node provided\");return!1!==sg.call(e,sh)&&sD(t,e)};let sU=()=>({getShadowRoot:!0,displayCheck:\"function\"==typeof ResizeObserver&&ResizeObserver.toString().includes(\"[native code]\")?\"full\":\"none\"});function sF(e,t){let n=sR(e,sU()),r=n.length;if(0===r)return;let o=im(ib(e)),a=n.indexOf(o);return n[-1===a?1===t?0:r-1:a+t]}function sq(e){return sF(ib(e).body,1)||e}function sH(e){return sF(ib(e).body,-1)||e}function sV(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!ig(n,r)}function s$(e){sR(e,sU()).forEach(e=>{e.dataset.tabindex=e.getAttribute(\"tabindex\")||\"\",e.setAttribute(\"tabindex\",\"-1\")})}function sW(e){e.querySelectorAll(\"[data-tabindex]\").forEach(e=>{let t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute(\"tabindex\",t):e.removeAttribute(\"tabindex\")})}let sY=x.createContext(null),sK=()=>x.useContext(sY),sX=iC(\"portal\");function sG(e={}){let{id:t,root:n}=e,r=ab(),o=sK(),[a,i]=x.useState(null),l=x.useRef(null);return ax(()=>()=>{a?.remove(),queueMicrotask(()=>{l.current=null})},[a]),ax(()=>{if(!r||l.current)return;let e=t?document.getElementById(t):null;if(!e)return;let n=document.createElement(\"div\");n.id=r,n.setAttribute(sX,\"\"),e.appendChild(n),l.current=n,i(n)},[t,r]),ax(()=>{if(null===n||!r||l.current)return;let e=n||o?.portalNode;e&&!az(e)&&(e=e.current),e=e||document.body;let a=null;t&&((a=document.createElement(\"div\")).id=t,e.appendChild(a));let s=document.createElement(\"div\");s.id=r,s.setAttribute(sX,\"\"),(e=a||e).appendChild(s),l.current=s,i(s)},[t,n,r,o]),a}function sQ(e){let{children:t,id:n,root:r,preserveTabOrder:o=!0}=e,a=sG({id:n,root:r}),[i,l]=x.useState(null),s=x.useRef(null),c=x.useRef(null),u=x.useRef(null),d=x.useRef(null),f=i?.modal,p=i?.open,h=!!i&&!i.modal&&i.open&&o&&!!(r||a);return x.useEffect(()=>{if(a&&o&&!f)return a.addEventListener(\"focusin\",e,!0),a.addEventListener(\"focusout\",e,!0),()=>{a.removeEventListener(\"focusin\",e,!0),a.removeEventListener(\"focusout\",e,!0)};function e(e){if(a&&sV(e)){let t=\"focusin\"===e.type;(t?sW:s$)(a)}}},[a,o,f]),x.useEffect(()=>{a&&(p||sW(a))},[p,a]),(0,b.jsxs)(sY.Provider,{value:x.useMemo(()=>({preserveTabOrder:o,beforeOutsideRef:s,afterOutsideRef:c,beforeInsideRef:u,afterInsideRef:d,portalNode:a,setFocusManagerState:l}),[o,a]),children:[h&&a&&(0,b.jsx)(sp,{\"data-type\":\"outside\",ref:s,onFocus:e=>{if(sV(e,a))u.current?.focus();else{let e=sH(i?i.domReference:null);e?.focus()}}}),h&&a&&(0,b.jsx)(\"span\",{\"aria-owns\":a.id,style:sf}),a&&ef.createPortal(t,a),h&&a&&(0,b.jsx)(sp,{\"data-type\":\"outside\",ref:c,onFocus:e=>{if(sV(e,a))d.current?.focus();else{let t=sq(i?i.domReference:null);t?.focus(),i?.closeOnFocusOut&&i?.onOpenChange(!1,e.nativeEvent,\"focus-out\")}}})]})}let sJ=x.createContext(void 0);function s0(e){let{children:t,keepMounted:n=!1,container:r}=e,{mounted:o}=lA();return o||n?(0,b.jsx)(sJ.Provider,{value:n,children:(0,b.jsx)(sQ,{root:r,children:t})}):null}let s1=x.createContext(void 0);function s2(e,t,n){let r,{reference:o,floating:a}=e,i=i6(t),l=i4(i6(t)),s=i5(l),c=i1(t),u=\"y\"===i,d=o.x+o.width/2-a.width/2,f=o.y+o.height/2-a.height/2,p=o[s]/2-a[s]/2;switch(c){case\"top\":r={x:d,y:o.y-a.height};break;case\"bottom\":r={x:d,y:o.y+o.height};break;case\"right\":r={x:o.x+o.width,y:f};break;case\"left\":r={x:o.x-a.width,y:f};break;default:r={x:o.x,y:o.y}}switch(i2(t)){case\"start\":r[l]-=p*(n&&u?-1:1);break;case\"end\":r[l]+=p*(n&&u?-1:1)}return r}let s4=async(e,t,n)=>{let{placement:r=\"bottom\",strategy:o=\"absolute\",middleware:a=[],platform:i}=n,l=a.filter(Boolean),s=await (null==i.isRTL?void 0:i.isRTL(t)),c=await i.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:d}=s2(c,r,s),f=r,p={},h=0;for(let n=0;n<l.length;n++){let{name:a,fn:m}=l[n],{x:g,y:y,data:v,reset:b}=await m({x:u,y:d,initialPlacement:r,placement:f,strategy:o,middlewareData:p,rects:c,platform:i,elements:{reference:e,floating:t}});u=null!=g?g:u,d=null!=y?y:d,p={...p,[a]:{...p[a],...v}},b&&h<=50&&(h++,\"object\"==typeof b&&(b.placement&&(f=b.placement),b.rects&&(c=!0===b.rects?await i.getElementRects({reference:e,floating:t,strategy:o}):b.rects),{x:u,y:d}=s2(c,f,s)),n=-1)}return{x:u,y:d,placement:f,strategy:o,middlewareData:p}};async function s5(e,t){var n;void 0===t&&(t={});let{x:r,y:o,platform:a,rects:i,elements:l,strategy:s}=e,{boundary:c=\"clippingAncestors\",rootBoundary:u=\"viewport\",elementContext:d=\"floating\",altBoundary:f=!1,padding:p=0}=i0(t,e),h=lr(p),m=l[f?\"floating\"===d?\"reference\":\"floating\":d],g=lo(await a.getClippingRect({element:null==(n=await (null==a.isElement?void 0:a.isElement(m)))||n?m:m.contextElement||await (null==a.getDocumentElement?void 0:a.getDocumentElement(l.floating)),boundary:c,rootBoundary:u,strategy:s})),y=\"floating\"===d?{x:r,y:o,width:i.floating.width,height:i.floating.height}:i.reference,v=await (null==a.getOffsetParent?void 0:a.getOffsetParent(l.floating)),b=await (null==a.isElement?void 0:a.isElement(v))&&await (null==a.getScale?void 0:a.getScale(v))||{x:1,y:1},A=lo(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:y,offsetParent:v,strategy:s}):y);return{top:(g.top-A.top+h.top)/b.y,bottom:(A.bottom-g.bottom+h.bottom)/b.y,left:(g.left-A.left+h.left)/b.x,right:(A.right-g.right+h.right)/b.x}}function s3(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function s6(e){return i$.some(t=>e[t]>=0)}let s9=new Set([\"left\",\"top\"]);async function s8(e,t){let{placement:n,platform:r,elements:o}=e,a=await (null==r.isRTL?void 0:r.isRTL(o.floating)),i=i1(n),l=i2(n),s=\"y\"===i6(n),c=s9.has(i)?-1:1,u=a&&s?-1:1,d=i0(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:h}=\"number\"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&\"number\"==typeof h&&(p=\"end\"===l?-1*h:h),s?{x:p*u,y:f*c}:{x:f*c,y:p*u}}function s7(e){let t=aK(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,o=aD(e),a=o?e.offsetWidth:n,i=o?e.offsetHeight:r,l=iK(n)!==a||iK(r)!==i;return l&&(n=a,r=i),{width:n,height:r,$:l}}function ce(e){return aT(e)?e:e.contextElement}function ct(e){let t=ce(e);if(!aD(t))return iG(1);let n=t.getBoundingClientRect(),{width:r,height:o,$:a}=s7(t),i=(a?iK(n.width):n.width)/r,l=(a?iK(n.height):n.height)/o;return i&&Number.isFinite(i)||(i=1),l&&Number.isFinite(l)||(l=1),{x:i,y:l}}let cn=iG(0);function cr(e){let t=aP(e);return a$()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:cn}function co(e,t,n,r){var o,a,i;void 0===t&&(t=!1),void 0===n&&(n=!1);let l=e.getBoundingClientRect(),s=ce(e),c=iG(1);t&&(r?aT(r)&&(c=ct(r)):c=ct(e));let u=(o=s,void 0===(a=n)&&(a=!1),(i=r)&&(!a||i===aP(o))&&a)?cr(s):iG(0),d=(l.left+u.x)/c.x,f=(l.top+u.y)/c.y,p=l.width/c.x,h=l.height/c.y;if(s){let e=aP(s),t=r&&aT(r)?aP(r):r,n=e,o=aJ(n);for(;o&&r&&t!==n;){let e=ct(o),t=o.getBoundingClientRect(),r=aK(o),a=t.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,i=t.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;d*=e.x,f*=e.y,p*=e.x,h*=e.y,d+=a,f+=i,o=aJ(n=aP(o))}}return lo({width:p,height:h,x:d,y:f})}function ca(e,t){let n=aX(e).scrollLeft;return t?t.left+n:co(aI(e)).left+n}function ci(e,t,n){void 0===n&&(n=!1);let r=e.getBoundingClientRect(),o=r.left+t.scrollLeft-(n?0:ca(e,r));return{x:o,y:r.top+t.scrollTop}}let cl=new Set([\"absolute\",\"fixed\"]);function cs(e,t,n){let r;if(\"viewport\"===t)r=function(e,t){let n=aP(e),r=aI(e),o=n.visualViewport,a=r.clientWidth,i=r.clientHeight,l=0,s=0;if(o){a=o.width,i=o.height;let e=a$();(!e||e&&\"fixed\"===t)&&(l=o.offsetLeft,s=o.offsetTop)}return{width:a,height:i,x:l,y:s}}(e,n);else if(\"document\"===t)r=function(e){let t=aI(e),n=aX(e),r=e.ownerDocument.body,o=iY(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=iY(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),i=-n.scrollLeft+ca(e),l=-n.scrollTop;return\"rtl\"===aK(r).direction&&(i+=iY(t.clientWidth,r.clientWidth)-o),{width:o,height:a,x:i,y:l}}(aI(e));else if(aT(t))r=function(e,t){let n=co(e,!0,\"fixed\"===t),r=n.top+e.clientTop,o=n.left+e.clientLeft,a=aD(e)?ct(e):iG(1),i=e.clientWidth*a.x,l=e.clientHeight*a.y,s=o*a.x;return{width:i,height:l,x:s,y:r*a.y}}(t,n);else{let n=cr(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return lo(r)}function cc(e){return\"static\"===aK(e).position}function cu(e,t){if(!aD(e)||\"fixed\"===aK(e).position)return null;if(t)return t(e);let n=e.offsetParent;return aI(e)===n&&(n=n.ownerDocument.body),n}function cd(e,t){var n;let r=aP(e);if(aU(e))return r;if(!aD(e)){let t=aG(e);for(;t&&!aY(t);){if(aT(t)&&!cc(t))return t;t=aG(t)}return r}let o=cu(e,t);for(;o&&(n=o,aM.has(aB(n)))&&cc(o);)o=cu(o,t);return o&&aY(o)&&cc(o)&&!aV(o)?r:o||function(e){let t=aG(e);for(;aD(t)&&!aY(t);){if(aV(t))return t;if(aU(t))break;t=aG(t)}return null}(e)||r}let cf=async function(e){let t=this.getOffsetParent||cd,n=this.getDimensions,r=await n(e.floating);return{reference:function(e,t,n){let r=aD(t),o=aI(t),a=\"fixed\"===n,i=co(e,!0,a,t),l={scrollLeft:0,scrollTop:0},s=iG(0);if(r||!r&&!a)if((\"body\"!==aB(t)||aR(o))&&(l=aX(t)),r){let e=co(t,!0,a,t);s.x=e.x+t.clientLeft,s.y=e.y+t.clientTop}else o&&(s.x=ca(o));a&&!r&&o&&(s.x=ca(o));let c=!o||r||a?iG(0):ci(o,l),u=i.left+l.scrollLeft-s.x-c.x;return{x:u,y:i.top+l.scrollTop-s.y-c.y,width:i.width,height:i.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},cp={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e,a=\"fixed\"===o,i=aI(r),l=!!t&&aU(t.floating);if(r===i||l&&a)return n;let s={scrollLeft:0,scrollTop:0},c=iG(1),u=iG(0),d=aD(r);if((d||!d&&!a)&&((\"body\"!==aB(r)||aR(i))&&(s=aX(r)),aD(r))){let e=co(r);c=ct(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=!i||d||a?iG(0):ci(i,s,!0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-s.scrollLeft*c.x+u.x+f.x,y:n.y*c.y-s.scrollTop*c.y+u.y+f.y}},getDocumentElement:aI,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e,a=[...\"clippingAncestors\"===n?aU(t)?[]:function(e,t){let n=t.get(e);if(n)return n;let r=aQ(e,[],!1).filter(e=>aT(e)&&\"body\"!==aB(e)),o=null,a=\"fixed\"===aK(e).position,i=a?aG(e):e;for(;aT(i)&&!aY(i);){let t=aK(i),n=aV(i);n||\"fixed\"!==t.position||(o=null),(a?!n&&!o:!n&&\"static\"===t.position&&!!o&&cl.has(o.position)||aR(i)&&!n&&function e(t,n){let r=aG(t);return!(r===n||!aT(r)||aY(r))&&(\"fixed\"===aK(r).position||e(r,n))}(e,i))?r=r.filter(e=>e!==i):o=t,i=aG(i)}return t.set(e,r),r}(t,this._c):[].concat(n),r],i=a[0],l=a.reduce((e,n)=>{let r=cs(t,n,o);return e.top=iY(r.top,e.top),e.right=iW(r.right,e.right),e.bottom=iW(r.bottom,e.bottom),e.left=iY(r.left,e.left),e},cs(t,i,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},getOffsetParent:cd,getElementRects:cf,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:n}=s7(e);return{width:t,height:n}},getScale:ct,isElement:aT,isRTL:function(e){return\"rtl\"===aK(e).direction}};function ch(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function cm(e,t,n,r){let o;void 0===r&&(r={});let{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:l=\"function\"==typeof ResizeObserver,layoutShift:s=\"function\"==typeof IntersectionObserver,animationFrame:c=!1}=r,u=ce(e),d=a||i?[...u?aQ(u):[],...aQ(t)]:[];d.forEach(e=>{a&&e.addEventListener(\"scroll\",n,{passive:!0}),i&&e.addEventListener(\"resize\",n)});let f=u&&s?function(e,t){let n,r=null,o=aI(e);function a(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return!function i(l,s){void 0===l&&(l=!1),void 0===s&&(s=1),a();let c=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=c;if(l||t(),!f||!p)return;let h=iX(d),m=iX(o.clientWidth-(u+f)),g=iX(o.clientHeight-(d+p)),y={rootMargin:-h+\"px \"+-m+\"px \"+-g+\"px \"+-iX(u)+\"px\",threshold:iY(0,iW(1,s))||1},v=!0;function b(t){let r=t[0].intersectionRatio;if(r!==s){if(!v)return i();r?i(!1,r):n=setTimeout(()=>{i(!1,1e-7)},1e3)}1!==r||ch(c,e.getBoundingClientRect())||i(),v=!1}try{r=new IntersectionObserver(b,{...y,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(b,y)}r.observe(e)}(!0),a}(u,n):null,p=-1,h=null;l&&(h=new ResizeObserver(e=>{let[r]=e;r&&r.target===u&&h&&(h.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var e;null==(e=h)||e.observe(t)})),n()}),u&&!c&&h.observe(u),h.observe(t));let m=c?co(e):null;return c&&function t(){let r=co(e);m&&!ch(m,r)&&n(),m=r,o=requestAnimationFrame(t)}(),n(),()=>{var e;d.forEach(e=>{a&&e.removeEventListener(\"scroll\",n),i&&e.removeEventListener(\"resize\",n)}),null==f||f(),null==(e=h)||e.disconnect(),h=null,c&&cancelAnimationFrame(o)}}var cg=\"undefined\"!=typeof document,cy=cg?x.useLayoutEffect:function(){};function cv(e,t){let n,r,o;if(e===t)return!0;if(typeof e!=typeof t)return!1;if(\"function\"==typeof e&&e.toString()===t.toString())return!0;if(e&&t&&\"object\"==typeof e){if(Array.isArray(e)){if((n=e.length)!==t.length)return!1;for(r=n;0!=r--;)if(!cv(e[r],t[r]))return!1;return!0}if((n=(o=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!({}).hasOwnProperty.call(t,o[r]))return!1;for(r=n;0!=r--;){let n=o[r];if((\"_owner\"!==n||!e.$$typeof)&&!cv(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function cb(e){return\"undefined\"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function cA(e,t){let n=cb(e);return Math.round(t*n)/n}function cx(e){let t=x.useRef(e);return cy(()=>{t.current=e}),t}function cw(e,t,n){let r=\"inline-start\"===e||\"inline-end\"===e;return({top:\"top\",right:r?n?\"inline-start\":\"inline-end\":\"right\",bottom:\"bottom\",left:r?n?\"inline-end\":\"inline-start\":\"left\"})[t]}function cC(e,t,n){let{rects:r,placement:o}=e;return{side:cw(t,i1(o),n),align:i2(o)||\"center\",anchor:{width:r.reference.width,height:r.reference.height},positioner:{width:r.floating.width,height:r.floating.height}}}function c_(e){var t,n,r,o,a;let i,l,s,c,u,d,f,p,h,m,g,y,v,{anchor:b,positionMethod:A=\"absolute\",side:w=\"bottom\",sideOffset:C=0,align:_=\"center\",alignOffset:k=0,collisionBoundary:E,collisionPadding:j=5,sticky:S=!1,arrowPadding:O=5,trackAnchor:B=!0,keepMounted:P=!1,floatingRootContext:I,mounted:z,collisionAvoidance:T,shiftCrossAxis:D=!1,nodeId:L,adaptiveOrigin:N}=e,R=T.side||\"flip\",M=T.align||\"flip\",Z=T.fallbackAxisSide||\"end\",U=\"function\"==typeof b?b:void 0,F=af(U),q=U?F:b,H=a0(b),V=\"rtl\"===lk(),$={top:\"top\",right:\"right\",bottom:\"bottom\",left:\"left\",\"inline-end\":V?\"left\":\"right\",\"inline-start\":V?\"right\":\"left\"}[w],W=\"center\"===_?$:`${$}-${_}`,Y={boundary:\"clipping-ancestors\"===E?\"clippingAncestors\":E,padding:j},K=x.useRef(null),X=a0(C),G=a0(k),Q=\"function\"!=typeof C?C:0,J=[(i=e=>{let t=cC(e,w,V),n=\"function\"==typeof X.current?X.current(t):X.current,r=\"function\"==typeof G.current?G.current(t):G.current;return{mainAxis:n,crossAxis:r,alignmentAxis:r}},l=[Q,\"function\"!=typeof k?k:0,V,w],{...(void 0===(t=i)&&(t=0),{name:\"offset\",options:t,async fn(e){var n,r;let{x:o,y:a,placement:i,middlewareData:l}=e,s=await s8(e,t);return i===(null==(n=l.offset)?void 0:n.placement)&&null!=(r=l.arrow)&&r.alignmentOffset?{}:{x:o+s.x,y:a+s.y,data:{...s,placement:i}}}}),options:[i,l]})],ee=\"none\"===M&&\"shift\"!==R,et=!ee&&(S||D||\"shift\"===R),en=\"none\"===R?null:{...{name:\"flip\",options:n=s={...Y,mainAxis:!D&&\"flip\"===R,crossAxis:\"flip\"===M&&\"alignment\",fallbackAxisSideDirection:Z},async fn(e){var t,r,o,a,i;let{placement:l,middlewareData:s,rects:c,initialPlacement:u,platform:d,elements:f}=e,{mainAxis:p=!0,crossAxis:h=!0,fallbackPlacements:m,fallbackStrategy:g=\"bestFit\",fallbackAxisSideDirection:y=\"none\",flipAlignment:v=!0,...b}=i0(n,e);if(null!=(t=s.arrow)&&t.alignmentOffset)return{};let A=i1(l),x=i6(u),w=i1(u)===u,C=await (null==d.isRTL?void 0:d.isRTL(f.floating)),_=m||(w||!v?[ln(u)]:function(e){let t=ln(e);return[i9(e),t,i9(t)]}(u)),k=\"none\"!==y;!m&&k&&_.push(...function(e,t,n,r){let o=i2(e),a=function(e,t,n){switch(e){case\"top\":case\"bottom\":if(n)return t?i7:i8;return t?i8:i7;case\"left\":case\"right\":return t?le:lt;default:return[]}}(i1(e),\"start\"===n,r);return o&&(a=a.map(e=>e+\"-\"+o),t&&(a=a.concat(a.map(i9)))),a}(u,v,y,C));let E=[u,..._],j=await s5(e,b),S=[],O=(null==(r=s.flip)?void 0:r.overflows)||[];if(p&&S.push(j[A]),h){let e=function(e,t,n){void 0===n&&(n=!1);let r=i2(e),o=i4(i6(e)),a=i5(o),i=\"x\"===o?r===(n?\"end\":\"start\")?\"right\":\"left\":\"start\"===r?\"bottom\":\"top\";return t.reference[a]>t.floating[a]&&(i=ln(i)),[i,ln(i)]}(l,c,C);S.push(j[e[0]],j[e[1]])}if(O=[...O,{placement:l,overflows:S}],!S.every(e=>e<=0)){let e=((null==(o=s.flip)?void 0:o.index)||0)+1,t=E[e];if(t&&(\"alignment\"!==h||x===i6(t)||O.every(e=>i6(e.placement)!==x||e.overflows[0]>0)))return{data:{index:e,overflows:O},reset:{placement:t}};let n=null==(a=O.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:a.placement;if(!n)switch(g){case\"bestFit\":{let e=null==(i=O.filter(e=>{if(k){let t=i6(e.placement);return t===x||\"y\"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:i[0];e&&(n=e);break}case\"initialPlacement\":n=u}if(l!==n)return{reset:{placement:n}}}return{}}},options:[s,c]},er=ee?null:(u=e=>{var t;let n,r,o=lE(e.elements.floating).documentElement;return{...Y,rootBoundary:D?{x:0,y:0,width:o.clientWidth,height:o.clientHeight}:void 0,mainAxis:\"none\"!==M,crossAxis:et,limiter:S||D?void 0:{...(void 0===(t=n=()=>{if(!K.current)return{};let{height:e}=K.current.getBoundingClientRect();return{offset:e/2+(\"number\"==typeof j?j:0)}})&&(t={}),{options:t,fn(e){let{x:n,y:r,placement:o,rects:a,middlewareData:i}=e,{offset:l=0,mainAxis:s=!0,crossAxis:c=!0}=i0(t,e),u={x:n,y:r},d=i6(o),f=i4(d),p=u[f],h=u[d],m=i0(l,e),g=\"number\"==typeof m?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(s){let e=\"y\"===f?\"height\":\"width\",t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(c){var y,v;let e=\"y\"===f?\"width\":\"height\",t=s9.has(i1(o)),n=a.reference[d]-a.floating[e]+(t&&(null==(y=i.offset)?void 0:y[d])||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:(null==(v=i.offset)?void 0:v[d])||0)-(t?g.crossAxis:0);h<n?h=n:h>r&&(h=r)}return{[f]:p,[d]:h}}}),options:[n,r]}}},d=[Y,S,D,j,M],{...(void 0===(r=u)&&(r={}),{name:\"shift\",options:r,async fn(e){let{x:t,y:n,placement:o}=e,{mainAxis:a=!0,crossAxis:i=!1,limiter:l={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...s}=i0(r,e),c={x:t,y:n},u=await s5(e,s),d=i6(i1(o)),f=i4(d),p=c[f],h=c[d];if(a){let e=\"y\"===f?\"top\":\"left\",t=\"y\"===f?\"bottom\":\"right\",n=p+u[e],r=p-u[t];p=iY(n,iW(p,r))}if(i){let e=\"y\"===d?\"top\":\"left\",t=\"y\"===d?\"bottom\":\"right\",n=h+u[e],r=h-u[t];h=iY(n,iW(h,r))}let m=l.fn({...e,[f]:p,[d]:h});return{...m,data:{x:m.x-t,y:m.y-n,enabled:{[f]:a,[d]:i}}}}}),options:[u,d]});\"shift\"===R||\"shift\"===M||\"center\"===_?J.push(er,en):J.push(en,er),J.push({...{name:\"size\",options:o=f={...Y,apply({elements:{floating:e},rects:{reference:t},availableWidth:n,availableHeight:r}){Object.entries({\"--available-width\":`${n}px`,\"--available-height\":`${r}px`,\"--anchor-width\":`${t.width}px`,\"--anchor-height\":`${t.height}px`}).forEach(([t,n])=>{e.style.setProperty(t,n)})}},async fn(e){var t,n;let r,a,{placement:i,rects:l,platform:s,elements:c}=e,{apply:u=()=>{},...d}=i0(o,e),f=await s5(e,d),p=i1(i),h=i2(i),m=\"y\"===i6(i),{width:g,height:y}=l.floating;\"top\"===p||\"bottom\"===p?(r=p,a=h===(await (null==s.isRTL?void 0:s.isRTL(c.floating))?\"start\":\"end\")?\"left\":\"right\"):(a=p,r=\"end\"===h?\"top\":\"bottom\");let v=y-f.top-f.bottom,b=g-f.left-f.right,A=iW(y-f[r],v),x=iW(g-f[a],b),w=!e.middlewareData.shift,C=A,_=x;if(null!=(t=e.middlewareData.shift)&&t.enabled.x&&(_=b),null!=(n=e.middlewareData.shift)&&n.enabled.y&&(C=v),w&&!h){let e=iY(f.left,0),t=iY(f.right,0),n=iY(f.top,0),r=iY(f.bottom,0);m?_=g-2*(0!==e||0!==t?e+t:iY(f.left,f.right)):C=y-2*(0!==n||0!==r?n+r:iY(f.top,f.bottom))}await u({...e,availableWidth:_,availableHeight:C});let k=await s.getDimensions(c.floating);return g!==k.width||y!==k.height?{reset:{rects:!0}}:{}}},options:[f,p]},(h=()=>({element:K.current||document.createElement(\"div\"),padding:O,offsetParent:\"floating\"}),m=[O],{...{name:\"arrow\",options:g=h,async fn(e){let{x:t,y:n,placement:r,rects:o,platform:a,elements:i,middlewareData:l}=e,{element:s,padding:c=0,offsetParent:u=\"real\"}=i0(g,e)||{};if(null==s)return{};let d=lr(c),f={x:t,y:n},p=i4(i6(r)),h=i5(p),m=await a.getDimensions(s),y=\"y\"===p,v=y?\"clientHeight\":\"clientWidth\",b=o.reference[h]+o.reference[p]-f[p]-o.floating[h],A=f[p]-o.reference[p],x=\"real\"===u?await a.getOffsetParent?.(s):i.floating,w=i.floating[v]||o.floating[h];w&&await a.isElement?.(x)||(w=i.floating[v]||o.floating[h]);let C=w/2-m[h]/2-1,_=Math.min(d[y?\"top\":\"left\"],C),k=Math.min(d[y?\"bottom\":\"right\"],C),E=w-m[h]-k,j=w/2-m[h]/2+(b/2-A/2),S=iY(_,iW(j,E)),O=!l.arrow&&null!=i2(r)&&j!==S&&o.reference[h]/2-(j<_?_:k)-m[h]/2<0,B=O?j<_?j-_:j-E:0;return{[p]:f[p]+B,data:{[p]:S,centerOffset:j-S-B,...O&&{alignmentOffset:B}},reset:O}}},options:[h,m]}),{...(void 0===(a=y)&&(a={}),{name:\"hide\",options:a,async fn(e){let{rects:t}=e,{strategy:n=\"referenceHidden\",...r}=i0(a,e);switch(n){case\"referenceHidden\":{let n=s3(await s5(e,{...r,elementContext:\"reference\"}),t.reference);return{data:{referenceHiddenOffsets:n,referenceHidden:s6(n)}}}case\"escaped\":{let n=s3(await s5(e,{...r,altBoundary:!0}),t.floating);return{data:{escapedOffsets:n,escaped:s6(n)}}}default:return{}}}}),options:[y,v]},{name:\"transformOrigin\",fn(e){let{elements:t,middlewareData:n,placement:r,rects:o,y:a}=e,i=i1(r),l=i6(i),s=K.current,c=n.arrow?.x||0,u=n.arrow?.y||0,d=s?.clientWidth||0,f=s?.clientHeight||0,p=c+d/2,h=u+f/2,m=Math.abs(n.shift?.y||0),g=o.reference.height/2,y=m>(\"function\"==typeof C?C(cC(e,w,V)):C),v={top:`${p}px calc(100% + ${C}px)`,bottom:`${p}px ${-C}px`,left:`calc(100% + ${C}px) ${h}px`,right:`${-C}px ${h}px`}[i],b=`${p}px ${o.reference.y+g-a}px`;return t.floating.style.setProperty(\"--transform-origin\",et&&\"y\"===l&&y?b:v),{}}},N);let eo=I;!z&&I&&(eo={...I,elements:{reference:null,floating:null,domReference:null}});let ea=x.useMemo(()=>({elementResize:B&&\"undefined\"!=typeof ResizeObserver,layoutShift:B&&\"undefined\"!=typeof IntersectionObserver}),[B]),{refs:ei,elements:el,x:es,y:ec,middlewareData:eu,update:ed,placement:ep,context:eh,isPositioned:em,floatingStyles:eg}=function(e={}){let{nodeId:t}=e,n=aS({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||n,o=r.elements,[a,i]=x.useState(null),[l,s]=x.useState(null),c=o?.domReference||a,u=x.useRef(null),d=ak();ax(()=>{c&&(u.current=c)},[c]);let f=function(e){void 0===e&&(e={});let{placement:t=\"bottom\",strategy:n=\"absolute\",middleware:r=[],platform:o,elements:{reference:a,floating:i}={},transform:l=!0,whileElementsMounted:s,open:c}=e,[u,d]=x.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=x.useState(r);cv(f,r)||p(r);let[h,m]=x.useState(null),[g,y]=x.useState(null),v=x.useCallback(e=>{e!==C.current&&(C.current=e,m(e))},[]),b=x.useCallback(e=>{e!==_.current&&(_.current=e,y(e))},[]),A=a||h,w=i||g,C=x.useRef(null),_=x.useRef(null),k=x.useRef(u),E=null!=s,j=cx(s),S=cx(o),O=cx(c),B=x.useCallback(()=>{if(!C.current||!_.current)return;let e={placement:t,strategy:n,middleware:f};S.current&&(e.platform=S.current),((e,t,n)=>{let r=new Map,o={platform:cp,...n},a={...o.platform,_c:r};return s4(e,t,{...o,platform:a})})(C.current,_.current,e).then(e=>{let t={...e,isPositioned:!1!==O.current};P.current&&!cv(k.current,t)&&(k.current=t,ef.flushSync(()=>{d(t)}))})},[f,t,n,S,O]);cy(()=>{!1===c&&k.current.isPositioned&&(k.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[c]);let P=x.useRef(!1);cy(()=>(P.current=!0,()=>{P.current=!1}),[]),cy(()=>{if(A&&(C.current=A),w&&(_.current=w),A&&w){if(j.current)return j.current(A,w,B);B()}},[A,w,B,j,E]);let I=x.useMemo(()=>({reference:C,floating:_,setReference:v,setFloating:b}),[v,b]),z=x.useMemo(()=>({reference:A,floating:w}),[A,w]),T=x.useMemo(()=>{let e={position:n,left:0,top:0};if(!z.floating)return e;let t=cA(z.floating,u.x),r=cA(z.floating,u.y);return l?{...e,transform:\"translate(\"+t+\"px, \"+r+\"px)\",...cb(z.floating)>=1.5&&{willChange:\"transform\"}}:{position:n,left:t,top:r}},[n,l,z.floating,u.x,u.y]);return x.useMemo(()=>({...u,update:B,refs:I,elements:z,floatingStyles:T}),[u,B,I,z,T])}({...e,elements:{...o,...l&&{reference:l}}}),p=x.useCallback(e=>{let t=aT(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;s(t),f.refs.setReference(t)},[f.refs]),h=x.useCallback(e=>{(aT(e)||null===e)&&(u.current=e,i(e)),(aT(f.refs.reference.current)||null===f.refs.reference.current||null!==e&&!aT(e))&&f.refs.setReference(e)},[f.refs]),m=x.useMemo(()=>({...f.refs,setReference:h,setPositionReference:p,domReference:u}),[f.refs,h,p]),g=x.useMemo(()=>({...f.elements,domReference:c}),[f.elements,c]),y=x.useMemo(()=>({...f,...r,refs:m,elements:g,nodeId:t}),[f,m,g,t,r]);return ax(()=>{r.dataRef.current.floatingContext=y;let e=d?.nodesRef.current.find(e=>e.id===t);e&&(e.context=y)}),x.useMemo(()=>({...f,context:y,refs:m,elements:g}),[f,m,g,y])}({rootContext:eo,placement:W,middleware:J,strategy:A,whileElementsMounted:P?void 0:(...e)=>cm(...e,ea),nodeId:L}),{sideX:ey,sideY:ev}=eu.adaptiveOrigin||{},eb=x.useMemo(()=>N?{position:A,[ey]:`${es}px`,[ev]:`${ec}px`}:eg,[N,ey,ev,A,es,ec,eg]),eA=x.useRef(null);ax(()=>{if(!z)return;let e=H.current,t=\"function\"==typeof e?e():e,n=(ck(t)?t.current:t)||null;n!==eA.current&&(ei.setPositionReference(n),eA.current=n)},[z,ei,q,H]),x.useEffect(()=>{if(!z)return;let e=H.current;\"function\"!=typeof e&&ck(e)&&e.current!==eA.current&&(ei.setPositionReference(e.current),eA.current=e.current)},[z,ei,q,H]),x.useEffect(()=>{if(P&&z&&el.domReference&&el.floating)return cm(el.domReference,el.floating,ed,ea)},[P,z,el,ed,ea]);let ex=cw(w,i1(ep),V),ew=i2(ep)||\"center\",eC=!!eu.hide?.referenceHidden,e_=x.useMemo(()=>({position:\"absolute\",top:eu.arrow?.y,left:eu.arrow?.x}),[eu.arrow]),ek=eu.arrow?.centerOffset!==0;return x.useMemo(()=>({positionerStyles:eb,arrowStyles:e_,arrowRef:K,arrowUncentered:ek,side:ex,align:ew,anchorHidden:eC,refs:ei,context:eh,isPositioned:em,update:ed}),[eb,e_,K,ek,ex,ew,eC,ei,eh,em,ed])}function ck(e){return null!=e&&\"current\"in e}function cE(e){let{children:t,elementsRef:n,labelsRef:r,onMapChange:o}=e,a=x.useRef(0),i=aa(cS).current,l=aa(cj).current,[s,c]=x.useState(0),u=x.useRef(s),d=af((e,t)=>{l.set(e,t??null),u.current+=1,c(u.current)}),f=af(e=>{l.delete(e),u.current+=1,c(u.current)}),p=x.useMemo(()=>{let e=new Map;return Array.from(l.keys()).sort(cO).forEach((t,n)=>{let r=l.get(t)??{};e.set(t,{...r,index:n})}),e},[l,s]);ax(()=>{u.current===s&&(n.current.length!==p.size&&(n.current.length=p.size),r&&r.current.length!==p.size&&(r.current.length=p.size)),o?.(p)},[o,p,n,r,s,u]);let h=af(e=>(i.add(e),()=>{i.delete(e)}));ax(()=>{i.forEach(e=>e(p))},[i,p]);let m=x.useMemo(()=>({register:d,unregister:f,subscribeMapChange:h,elementsRef:n,labelsRef:r,nextIndexRef:a}),[d,f,h,n,r,a]);return(0,b.jsx)(sl.Provider,{value:m,children:t})}function cj(){return new Map}function cS(){return new Set}function cO(e,t){let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}let cB=x.forwardRef(function(e,t){let n,{cutout:r,...o}=e;if(r){let e=r?.getBoundingClientRect();n=`polygon(\n 0% 0%,\n 100% 0%,\n 100% 100%,\n 0% 100%,\n 0% 0%,\n ${e.left}px ${e.top}px,\n ${e.left}px ${e.bottom}px,\n ${e.right}px ${e.bottom}px,\n ${e.right}px ${e.top}px,\n ${e.left}px ${e.top}px\n )`}return(0,b.jsx)(\"div\",{ref:t,role:\"presentation\",\"data-base-ui-inert\":\"\",...o,style:{position:\"fixed\",inset:0,userSelect:\"none\",WebkitUserSelect:\"none\",clipPath:n}})}),cP=x.forwardRef(function(e,t){var n;let{anchor:r,positionMethod:o=\"absolute\",className:a,render:i,side:l,align:s,sideOffset:c=0,alignOffset:u=0,collisionBoundary:d=\"clipping-ancestors\",collisionPadding:f=5,arrowPadding:p=5,sticky:h=!1,trackAnchor:m=!0,collisionAvoidance:g=iZ,...y}=e,{open:v,setOpen:A,floatingRootContext:w,setPositionerElement:C,itemDomElements:_,itemLabels:k,mounted:E,modal:j,lastOpenChangeReason:S,parent:O,setHoverEnabled:B,triggerElement:P}=lA(),I=function(){let e=x.useContext(sJ);if(void 0===e)throw Error(\"Base UI: <Menu.Portal> is missing.\");return e}(),z=function(e){let t=ab(),n=ak(),r=a_(),o=r;return ax(()=>{if(!t)return;let e={id:t,parentId:o};return n?.addNode(e),()=>{n?.removeNode(e)}},[n,t,o]),t}(),T=a_(),D=lD(!0),L=r,N=c,R=u,M=s;\"context-menu\"===O.type&&(L=O.context?.anchor??r,M=e.align??\"start\",R=e.alignOffset??2,N=e.sideOffset??-5);let Z=l,U=M;\"menu\"===O.type?(Z=Z??\"inline-end\",U=U??\"start\"):\"menubar\"===O.type&&(Z=Z??\"bottom\",U=U??\"start\");let F=\"context-menu\"===O.type,q=c_({anchor:L,floatingRootContext:w,positionMethod:D?\"fixed\":o,mounted:E,side:Z,sideOffset:N,align:U,alignOffset:R,arrowPadding:F?0:p,collisionBoundary:d,collisionPadding:f,sticky:h,nodeId:z,keepMounted:I,trackAnchor:m,collisionAvoidance:g,shiftCrossAxis:F}),{events:H}=ak(),V=x.useMemo(()=>{let e={};return v||(e.pointerEvents=\"none\"),{role:\"presentation\",hidden:!E,style:{...q.positionerStyles,...e}}},[v,E,q.positionerStyles]);x.useEffect(()=>{function e(e){e.open?(e.parentNodeId===z&&B(!1),e.nodeId!==z&&e.parentNodeId===T&&A(!1,void 0,\"sibling-open\")):e.parentNodeId===z&&B(!0)}return H.on(\"openchange\",e),()=>{H.off(\"openchange\",e)}},[H,z,T,A,B]),x.useEffect(()=>{H.emit(\"openchange\",{open:v,nodeId:z,parentNodeId:T})},[H,v,z,T]);let $=x.useMemo(()=>({open:v,side:q.side,align:q.align,anchorHidden:q.anchorHidden,nested:\"menu\"===O.type}),[v,q.side,q.align,q.anchorHidden,O.type]),W=x.useMemo(()=>({side:q.side,align:q.align,arrowRef:q.arrowRef,arrowUncentered:q.arrowUncentered,arrowStyles:q.arrowStyles,floatingContext:q.context}),[q.side,q.align,q.arrowRef,q.arrowUncentered,q.arrowStyles,q.context]),Y=sn(\"div\",e,{state:$,customStyleHookMapping:se,ref:[t,C],props:{...V,...y}}),K=E&&\"menu\"!==O.type&&(\"menubar\"!==O.type&&j&&\"trigger-hover\"!==S||\"menubar\"===O.type&&O.context.modal),X=null;return\"menubar\"===O.type?X=O.context.contentElement:void 0===O.type&&(X=P),(0,b.jsxs)(s1.Provider,{value:W,children:[K&&(0,b.jsx)(cB,{ref:\"context-menu\"===O.type||\"nested-context-menu\"===O.type?O.context.internalBackdropRef:null,inert:(n=!v,st>=19?n:n?\"true\":void 0),cutout:X}),(0,b.jsx)(aE,{id:z,children:(0,b.jsx)(cE,{elementsRef:_,labelsRef:k,children:Y})})]})}),cI={inert:new WeakMap,\"aria-hidden\":new WeakMap,none:new WeakMap};function cz(e){return\"inert\"===e?cI.inert:\"aria-hidden\"===e?cI[\"aria-hidden\"]:cI.none}let cT=new WeakSet,cD={},cL=0,cN=e=>e&&(e.host||cN(e.parentNode)),cR=[];function cM(){cR=cR.filter(e=>e.isConnected)}function cZ(){return cM(),cR[cR.length-1]}function cU(e,t){if(!t.current.includes(\"floating\")&&!e.getAttribute(\"role\")?.includes(\"dialog\"))return;let n=sU(),r=sM(e,n).filter(e=>{let t=e.getAttribute(\"data-tabindex\")||\"\";return sZ(e,n)||e.hasAttribute(\"data-tabindex\")&&!t.startsWith(\"-\")}),o=e.getAttribute(\"tabindex\");t.current.includes(\"floating\")||0===r.length?\"0\"!==o&&e.setAttribute(\"tabindex\",\"0\"):(\"-1\"!==o||e.hasAttribute(\"data-tabindex\")&&\"-1\"!==e.getAttribute(\"data-tabindex\"))&&(e.setAttribute(\"tabindex\",\"-1\"),e.setAttribute(\"data-tabindex\",\"-1\"))}function cF(e){let{context:t,children:n,disabled:r=!1,order:o=[\"content\"],initialFocus:a=0,returnFocus:i=!0,restoreFocus:l=!1,modal:s=!0,closeOnFocusOut:c=!0,getInsideElements:u=()=>[]}=e,{open:d,onOpenChange:f,events:p,dataRef:h,elements:{domReference:m,floating:g}}=t,y=af(()=>h.current.floatingContext?.nodeId),v=af(u),A=\"number\"==typeof a&&a<0,w=ix(m)&&A,C=a0(o),_=a0(a),k=a0(i),E=ak(),j=sK(),S=x.useRef(null),O=x.useRef(null),B=x.useRef(!1),P=x.useRef(!1),I=x.useRef(-1),z=ac(),T=null!=j,D=iw(g),L=af((e=D)=>e?sR(e,sU()):[]),N=af(e=>{let t=L(e);return C.current.map(()=>t).filter(Boolean).flat()});x.useEffect(()=>{if(r||!s)return;function e(e){\"Tab\"===e.key&&ig(D,im(ib(D)))&&0===L().length&&!w&&ir(e)}let t=ib(D);return t.addEventListener(\"keydown\",e),()=>{t.removeEventListener(\"keydown\",e)}},[r,m,D,s,C,w,L,N]),x.useEffect(()=>{if(!r&&g)return g.addEventListener(\"focusin\",e),()=>{g.removeEventListener(\"focusin\",e)};function e(e){let t=iy(e),n=L().indexOf(t);-1!==n&&(I.current=n)}},[r,g,L]),x.useEffect(()=>{if(r||!c)return;function e(){P.current=!0}function t(e){let t=e.relatedTarget,n=e.currentTarget,r=iy(e);queueMicrotask(()=>{let o=y(),a=!(ig(m,t)||ig(g,t)||ig(t,g)||ig(j?.portalNode,t)||t?.hasAttribute(iC(\"focus-guard\"))||E&&(iS(E.nodesRef.current,o).find(e=>ig(e.context?.elements.floating,t)||ig(e.context?.elements.domReference,t))||iO(E.nodesRef.current,o).find(e=>[e.context?.elements.floating,iw(e.context?.elements.floating)].includes(t)||e.context?.elements.domReference===t)));if(n===m&&D&&cU(D,C),l&&n!==m&&!r?.isConnected&&im(ib(D))===ib(D).body){aD(D)&&D.focus();let e=I.current,t=L(),n=t[e]||t[t.length-1]||D;aD(n)&&n.focus()}if(h.current.insideReactTree){h.current.insideReactTree=!1;return}if(P.current){P.current=!1;return}(w||!s)&&t&&a&&t!==cZ()&&(B.current=!0,f(!1,e,\"focus-out\"))})}let n=!!(!E&&j);function o(){h.current.insideReactTree=!0,z.start(0,()=>{h.current.insideReactTree=!1})}if(g&&aD(m))return m.addEventListener(\"focusout\",t),m.addEventListener(\"pointerdown\",e),g.addEventListener(\"focusout\",t),n&&g.addEventListener(\"focusout\",o,!0),()=>{m.removeEventListener(\"focusout\",t),m.removeEventListener(\"pointerdown\",e),g.removeEventListener(\"focusout\",t),n&&g.removeEventListener(\"focusout\",o,!0)}},[r,m,g,D,s,E,j,f,c,l,L,w,y,C,h,z]);let R=x.useRef(null),M=x.useRef(null),Z=lY(R,j?.beforeInsideRef),U=lY(M,j?.afterInsideRef);x.useEffect(()=>{if(r||!g)return;let e=Array.from(j?.portalNode?.querySelectorAll(`[${iC(\"portal\")}]`)||[]),t=E?iO(E.nodesRef.current,y()):[],n=function(e,t=!1,n=!1){let r=ib(e[0]).body;return function(e,t,n,r){let o,a=\"data-base-ui-inert\",i=r?\"inert\":n?\"aria-hidden\":null,l=(o=t,e.map(e=>{if(o.contains(e))return e;let t=cN(e);return o.contains(t)?t:null}).filter(e=>null!=e)),s=new Set,c=new Set(l),u=[];cD[a]||(cD[a]=new WeakMap);let d=cD[a];return l.forEach(function e(t){!(!t||s.has(t))&&(s.add(t),t.parentNode&&e(t.parentNode))}),function e(t){!t||c.has(t)||[].forEach.call(t.children,t=>{if(\"script\"!==aB(t))if(s.has(t))e(t);else{let e=i?t.getAttribute(i):null,n=null!==e&&\"false\"!==e,r=cz(i),o=(r.get(t)||0)+1,l=(d.get(t)||0)+1;r.set(t,o),d.set(t,l),u.push(t),1===o&&n&&cT.add(t),1===l&&t.setAttribute(a,\"\"),!n&&i&&t.setAttribute(i,\"inert\"===i?\"\":\"true\")}})}(t),s.clear(),cL+=1,()=>{u.forEach(e=>{let t=cz(i),n=(t.get(e)||0)-1,r=(d.get(e)||0)-1;t.set(e,n),d.set(e,r),n||(!cT.has(e)&&i&&e.removeAttribute(i),cT.delete(e)),r||e.removeAttribute(a)}),(cL-=1)||(cI.inert=new WeakMap,cI[\"aria-hidden\"]=new WeakMap,cI.none=new WeakMap,cT=new WeakSet,cD={})}}(e.concat(Array.from(r.querySelectorAll(\"[aria-live]\"))),r,t,n)}([g,t.find(e=>ix(e.context?.elements.domReference||null))?.context?.elements.domReference,...e,...v(),S.current,O.current,R.current,M.current,j?.beforeOutsideRef.current,j?.afterOutsideRef.current,w?m:null].filter(e=>null!=e),s||w);return()=>{n()}},[r,m,g,s,C,j,w,E,y,v]),ax(()=>{if(r||!aD(D))return;let e=im(ib(D));queueMicrotask(()=>{let t=N(D),n=_.current,r=(\"number\"==typeof n?t[n]:n.current)||D,o=ig(D,e);A||o||!d||lf(r,{preventScroll:r===D})})},[r,d,D,A,N,_]),ax(()=>{var e;if(r||!D)return;let t=ib(D);function n({reason:e,event:t,nested:n}){if([\"hover\",\"safe-polygon\"].includes(e)&&\"mouseleave\"===t.type&&(B.current=!0),\"outside-press\"===e)if(n)B.current=!1;else if(io(t)||ia(t))B.current=!1;else{let e=!1;document.createElement(\"div\").focus({get preventScroll(){return e=!0,!1}}),e?B.current=!1:B.current=!0}}e=im(t),cM(),e&&\"body\"!==aB(e)&&(cR.push(e),cR.length>20&&(cR=cR.slice(-20))),p.on(\"openchange\",n);let o=t.createElement(\"span\");return o.setAttribute(\"tabindex\",\"-1\"),o.setAttribute(\"aria-hidden\",\"true\"),Object.assign(o.style,sf),T&&m&&m.insertAdjacentElement(\"afterend\",o),()=>{p.off(\"openchange\",n);let e=im(t),r=ig(g,e)||E&&iS(E.nodesRef.current,y(),!1).some(t=>ig(t.context?.elements.floating,e)),a=function(){if(\"boolean\"==typeof k.current){let e=m||cZ();return e&&e.isConnected?e:o}return k.current.current||o}();queueMicrotask(()=>{let n=function(e){let t=sU();return sZ(e,t)?e:sR(e,t)[0]||e}(a);k.current&&!B.current&&aD(n)&&(n===e||e===t.body||r)&&n.focus({preventScroll:!0}),o.remove()})}},[r,g,D,k,h,p,E,T,m,y]),x.useEffect(()=>{queueMicrotask(()=>{B.current=!1})},[r]),x.useEffect(()=>{if(r||!d)return;function e(e){let t=iy(e);t?.closest(\"[data-base-ui-click-trigger]\")&&(P.current=!0)}let t=ib(D);return t.addEventListener(\"pointerdown\",e,!0),()=>{t.removeEventListener(\"pointerdown\",e,!0)}},[r,d,D]),ax(()=>{if(!r&&j)return j.setFocusManagerState({modal:s,closeOnFocusOut:c,open:d,onOpenChange:f,domReference:m}),()=>{j.setFocusManagerState(null)}},[r,j,s,d,f,c,m]),ax(()=>{if(!r&&D)return cU(D,C),()=>{queueMicrotask(cM)}},[r,D,C]);let F=!r&&(!s||!w)&&(T||s);return(0,b.jsxs)(x.Fragment,{children:[F&&(0,b.jsx)(sp,{\"data-type\":\"inside\",ref:Z,onFocus:e=>{if(s){let e=N();lf(e[e.length-1])}else if(j?.preserveTabOrder&&j.portalNode)if(B.current=!1,sV(e,j.portalNode)){let e=sq(m);e?.focus()}else j.beforeOutsideRef.current?.focus()}}),n,F&&(0,b.jsx)(sp,{\"data-type\":\"inside\",ref:U,onFocus:e=>{if(s)lf(N()[0]);else if(j?.preserveTabOrder&&j.portalNode)if(c&&(B.current=!0),sV(e,j.portalNode)){let e=sH(m);e?.focus()}else j.afterOutsideRef.current?.focus()}})]})}let cq={...se,...l0},cH=x.forwardRef(function(e,t){let{render:n,className:r,finalFocus:o,...a}=e,{open:i,setOpen:l,popupRef:s,transitionStatus:c,popupProps:u,mounted:d,instantType:f,onOpenChangeComplete:p,parent:h,lastOpenChangeReason:m,rootId:g}=lA(),{side:y,align:v,floatingContext:A}=function(){let e=x.useContext(s1);if(void 0===e)throw Error(\"Base UI: MenuPositionerContext is missing. MenuPositioner parts must be placed within <Menu.Positioner>.\");return e}();lC({open:i,ref:s,onComplete(){i&&p?.(!0)}});let{events:w}=ak();x.useEffect(()=>{function e(e){l(!1,e.domEvent,e.reason)}return w.on(\"close\",e),()=>{w.off(\"close\",e)}},[w,l]);let C=sn(\"div\",e,{state:x.useMemo(()=>({transitionStatus:c,side:y,align:v,open:i,nested:\"menu\"===h.type,instant:f}),[c,y,v,i,h.type,f]),ref:[t,s],customStyleHookMapping:cq,props:[u,\"starting\"===c?iN:iR,a,{\"data-rootownerid\":g}]}),_=void 0===h.type||\"context-menu\"===h.type;return\"menubar\"===h.type&&\"outside-press\"!==m&&(_=!0),(0,b.jsx)(cF,{context:A,modal:!1,disabled:!d,returnFocus:o||_,initialFocus:\"menu\"===h.type?-1:0,restoreFocus:!0,children:C})}),cV=x.createContext(void 0),c$=x.forwardRef(function(e,t){let{render:n,className:r,...o}=e,[a,i]=x.useState(void 0),l=x.useMemo(()=>({setLabelId:i}),[i]),s=sn(\"div\",e,{ref:t,props:{role:\"group\",\"aria-labelledby\":a,...o}});return(0,b.jsx)(cV.Provider,{value:l,children:s})});function cW(e){return ab(e,\"base-ui\")}let cY=x.forwardRef(function(e,t){let{className:n,render:r,id:o,...a}=e,i=cW(o),{setLabelId:l}=function(){let e=x.useContext(cV);if(void 0===e)throw Error(\"Base UI: MenuGroupRootContext is missing. Menu group parts must be used within <Menu.Group>.\");return e}();return ax(()=>(l(i),()=>{l(void 0)}),[l,i]),sn(\"div\",e,{ref:t,props:{id:i,role:\"presentation\",...a}})}),cK={type:\"regular-item\"},cX=x.memo(x.forwardRef(function(e,t){let{className:n,closeOnClick:r=!0,disabled:o=!1,highlighted:a,id:i,menuEvents:l,itemProps:s,render:c,allowMouseUpTriggerRef:u,typingRef:d,nativeButton:f,...p}=e,{getItemProps:h,itemRef:m}=function(e){let{closeOnClick:t,disabled:n=!1,highlighted:r,id:o,menuEvents:a,allowMouseUpTriggerRef:i,typingRef:l,nativeButton:s,itemMetadata:c}=e,u=x.useRef(null),{getButtonProps:d,buttonRef:f}=si({disabled:n,focusableWhenDisabled:!0,native:s}),p=x.useCallback(e=>lM({id:o,role:\"menuitem\",tabIndex:r?0:-1,onMouseEnter(){\"submenu-trigger\"===c.type&&c.setActive()},onKeyUp:e=>{\" \"===e.key&&l.current&&e.preventBaseUIHandler()},onClick:e=>{t&&a.emit(\"close\",{domEvent:e,reason:\"item-press\"})},onMouseUp:()=>{u.current&&i.current&&\"regular-item\"===c.type&&u.current.click()}},e,d),[o,r,d,l,t,a,i,c]),h=lY(u,f);return x.useMemo(()=>({getItemProps:p,itemRef:h}),[p,h])}({closeOnClick:r,disabled:o,highlighted:a,id:i,menuEvents:l,allowMouseUpTriggerRef:u,typingRef:d,nativeButton:f,itemMetadata:cK});return sn(\"div\",e,{state:x.useMemo(()=>({disabled:o,highlighted:a}),[o,a]),ref:[m,t],props:[s,p,h]})})),cG=x.forwardRef(function(e,t){let{id:n,label:r,nativeButton:o=!1,...a}=e,i=x.useRef(null),l=sc({label:r}),s=lY(t,l.ref,i),{itemProps:c,activeIndex:u,allowMouseUpTriggerRef:d,typingRef:f}=lA(),p=cW(n),h=l.index===u,{events:m}=ak();return(0,b.jsx)(cX,{...a,id:p,ref:s,highlighted:h,menuEvents:m,itemProps:c,allowMouseUpTriggerRef:d,typingRef:f,nativeButton:o})});var cQ=\"__next_builtin__\";function cJ(e){return e.replace(new RegExp(\"^\".concat(cQ)),\"\").replace(new RegExp(\"\".concat(\"@boundary\",\"$\")),\"\")}var c0=\"boundary:\";function c1(e){return e.startsWith(c0)}function c2(e){return e.replace(c0,\"\")}function c4(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function c5(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function c3(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function c6(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return c4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c4(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var c9=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach(function(t){\"function\"==typeof t?t(e):t&&(t.current=e)})}};function c8(e){var t,n=e.nodeState,r=e.boundaries,o=n.pagePath,a=n.boundaryType,i=n.setBoundaryType,l=c6((0,x.useState)(!1),2),s=l[0],c=l[1],u=da().shadowRoot,d=(0,x.useRef)(null),f=(0,x.useRef)(null);t8(f,d,s,function(){c(!1)},null==(t=d.current)?void 0:t.ownerDocument);var p=(Object.values(r).find(function(e){return null!==e})||\"\").split(\".\").pop()||\"js\",h=(0,x.useMemo)(function(){return Object.fromEntries(Object.entries(r).map(function(e){var t=c6(e,2),n=t[0],r=cJ((t[1]||\"\").split(\"/\").pop()||\"\".concat(n,\".\").concat(p));return[n,r]}))},[r,p]),m=(o||\"\").split(\"/\").pop()||\"\",g=cJ(a?\"page.\".concat(p):m||\"page.\".concat(p)),y=[{label:h.loading,value:\"loading\",icon:(0,b.jsx)(c7,{}),disabled:!r.loading},{label:h.error,value:\"error\",icon:(0,b.jsx)(ue,{}),disabled:!r.error},{label:h[\"not-found\"],value:\"not-found\",icon:(0,b.jsx)(ut,{}),disabled:!r[\"not-found\"]}],v={label:a?\"Reset\":g,value:\"reset\",icon:(0,b.jsx)(un,{}),disabled:null===a},A=(0,x.useCallback)(function(e){var t=new URLSearchParams({file:e.filePath,isAppRelativePath:\"1\"});fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(t.toString())).catch(console.warn)},[]),w=(0,x.useCallback)(function(e){switch(e){case\"not-found\":case\"loading\":case\"error\":i(e);break;case\"reset\":i(null);break;case\"open-editor\":o&&A({filePath:o})}},[i,o,A]),C=(0,x.useMemo)(function(){return\"layout\"!==n.type&&\"template\"!==n.type&&Object.values(r).some(function(e){return null!==e})},[n.type,r]);return(0,b.jsxs)(lW,{delay:0,modal:!1,open:s,onOpenChange:c,children:[(0,b.jsx)(sd,{className:\"segment-boundary-trigger\",\"data-nextjs-dev-overlay-segment-boundary-trigger-button\":!0,render:function(e){var t=c9(e.ref,d);return(0,b.jsx)(uo,c3(c5({},e),{ref:t}))},disabled:!C}),(0,b.jsx)(s0,{container:u,children:(0,b.jsx)(cP,{className:\"segment-boundary-dropdown-positioner\",side:\"bottom\",align:\"center\",sideOffset:6,arrowPadding:8,ref:f,children:(0,b.jsxs)(cH,{className:\"segment-boundary-dropdown\",children:[(0,b.jsxs)(c$,{children:[(0,b.jsx)(cY,{className:\"segment-boundary-group-label\",children:\"Toggle Overrides\"}),y.map(function(e){return(0,b.jsxs)(cG,{className:\"segment-boundary-dropdown-item\",onClick:function(){return w(e.value)},disabled:e.disabled,children:[e.icon,e.label]},e.value)})]}),(0,b.jsx)(c$,{children:(0,b.jsxs)(cG,{className:\"segment-boundary-dropdown-item\",onClick:function(){return w(v.value)},disabled:v.disabled,children:[v.icon,v.label]},v.value)})]})})})]})}function c7(){var e,t,n=(0,A.c)(2);return n[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"g\",{clipPath:\"url(#clip0_2759_1866)\",children:(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M10 3.5C13.5899 3.5 16.5 6.41015 16.5 10C16.5 13.5899 13.5899 16.5 10 16.5C6.41015 16.5 3.5 13.5899 3.5 10C3.5 6.41015 6.41015 3.5 10 3.5ZM2 10C2 14.4183 5.58172 18 10 18C14.4183 18 18 14.4183 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10ZM10.75 9.62402V6H9.25V9.875C9.25 10.1898 9.39858 10.486 9.65039 10.6748L11.5498 12.0996L12.1504 12.5498L13.0498 11.3496L12.4502 10.9004L10.75 9.62402Z\",fill:\"currentColor\"})}),n[0]=e):e=n[0],n[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsxs)(\"svg\",{width:\"20px\",height:\"20px\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[e,(0,b.jsx)(\"defs\",{children:(0,b.jsx)(\"clipPath\",{id:\"clip0_2759_1866\",children:(0,b.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\",transform:\"translate(2 2)\"})})})]}),n[1]=t):t=n[1],t}function ue(){var e,t,n=(0,A.c)(2);return n[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"g\",{clipPath:\"url(#clip0_2759_1881)\",children:(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.5 7.30762V12.6924L7.30762 16.5H12.6924L16.5 12.6924V7.30762L12.6924 3.5H7.30762L3.5 7.30762ZM18 12.8994L17.9951 12.998C17.9724 13.2271 17.8712 13.4423 17.707 13.6064L13.6064 17.707L13.5332 17.7734C13.3806 17.8985 13.1944 17.9757 12.998 17.9951L12.8994 18H7.10059L7.00195 17.9951C6.80562 17.9757 6.6194 17.8985 6.4668 17.7734L6.39355 17.707L2.29297 13.6064C2.12883 13.4423 2.02756 13.2271 2.00488 12.998L2 12.8994V7.10059C2 6.83539 2.10546 6.58109 2.29297 6.39355L6.39355 2.29297C6.55771 2.12883 6.77294 2.02756 7.00195 2.00488L7.10059 2H12.8994L12.998 2.00488C13.2271 2.02756 13.4423 2.12883 13.6064 2.29297L17.707 6.39355C17.8945 6.58109 18 6.83539 18 7.10059V12.8994ZM9.25 5.75H10.75L10.75 10.75H9.25L9.25 5.75ZM10 14C10.5523 14 11 13.5523 11 13C11 12.4477 10.5523 12 10 12C9.44772 12 9 12.4477 9 13C9 13.5523 9.44772 14 10 14Z\",fill:\"currentColor\"})}),n[0]=e):e=n[0],n[1]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsxs)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[e,(0,b.jsx)(\"defs\",{children:(0,b.jsx)(\"clipPath\",{id:\"clip0_2759_1881\",children:(0,b.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\",transform:\"translate(2 2)\"})})})]}),n[1]=t):t=n[1],t}function ut(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{width:\"20px\",height:\"20px\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M10.5586 2.5C11.1341 2.50004 11.6588 2.8294 11.9091 3.34766L17.8076 15.5654C18.1278 16.2292 17.6442 16.9997 16.9072 17H3.09274C2.35574 16.9997 1.8721 16.2292 2.19235 15.5654L8.09079 3.34766C8.34109 2.8294 8.86583 2.50004 9.44137 2.5H10.5586ZM3.89059 15.5H16.1093L10.5586 4H9.44137L3.89059 15.5ZM9.24997 6.75H10.75L10.75 10.75H9.24997L9.24997 6.75ZM9.99997 14C10.5523 14 11 13.5523 11 13C11 12.4477 10.5523 12 9.99997 12C9.44768 12 8.99997 12.4477 8.99997 13C8.99997 13.5523 9.44768 14 9.99997 14Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function un(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,b.jsx)(\"path\",{d:\"M9.96484 3C13.8463 3.00018 17 6.13012 17 10C17 13.8699 13.8463 16.9998 9.96484 17C7.62404 17 5.54877 15.8617 4.27051 14.1123L3.82812 13.5068L5.03906 12.6221L5.48145 13.2275C6.48815 14.6053 8.12092 15.5 9.96484 15.5C13.0259 15.4998 15.5 13.0335 15.5 10C15.5 6.96654 13.0259 4.50018 9.96484 4.5C7.42905 4.5 5.29544 6.19429 4.63867 8.5H8V10H2.75C2.33579 10 2 9.66421 2 9.25V4H3.5V7.2373C4.57781 4.74376 7.06749 3 9.96484 3Z\",fill:\"currentColor\"})}),t[0]=e):e=t[0],e}function ur(e){var t,n,r=(0,A.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.7071 2.39644C8.31658 2.00592 7.68341 2.00592 7.29289 2.39644L4.46966 5.21966L3.93933 5.74999L4.99999 6.81065L5.53032 6.28032L7.99999 3.81065L10.4697 6.28032L11 6.81065L12.0607 5.74999L11.5303 5.21966L8.7071 2.39644ZM5.53032 9.71966L4.99999 9.18933L3.93933 10.25L4.46966 10.7803L7.29289 13.6035C7.68341 13.9941 8.31658 13.9941 8.7071 13.6035L11.5303 10.7803L12.0607 10.25L11 9.18933L10.4697 9.71966L7.99999 12.1893L5.53032 9.71966Z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==e?(n=(0,b.jsx)(\"svg\",c3(c5({strokeLinejoin:\"round\",viewBox:\"0 0 16 16\"},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}function uo(e){var t,n,r=(0,A.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"span\",{className:\"segment-boundary-trigger-text\",children:(0,b.jsx)(ur,{className:\"plus-icon\"})}),r[0]=t):t=r[0],r[1]!==e?(n=(0,b.jsx)(\"button\",c3(c5({},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}let ua=x.createContext(void 0);function ui(){let e=x.useContext(ua);if(void 0===e)throw Error(\"Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>.\");return e}let ul=x.forwardRef(function(e,t){let{className:n,render:r,...o}=e,{open:a,setTriggerElement:i,triggerProps:l}=ui();return sn(\"button\",e,{state:x.useMemo(()=>({open:a}),[a]),ref:[t,i],props:[l,o],customStyleHookMapping:l8})}),us=x.createContext(void 0);function uc(){let e=x.useContext(us);if(void 0===e)throw Error(\"Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>.\");return e}let uu=x.forwardRef(function(e,t){let{className:n,render:r,...o}=e,{open:a,arrowRef:i,side:l,align:s,arrowUncentered:c,arrowStyles:u}=uc();return sn(\"div\",e,{state:x.useMemo(()=>({open:a,side:l,align:s,uncentered:c}),[a,l,s,c]),ref:[t,i],props:[{style:u,\"aria-hidden\":!0},o],customStyleHookMapping:se})}),ud={...se,...l0},uf=x.forwardRef(function(e,t){let{className:n,render:r,...o}=e,{open:a,instantType:i,transitionStatus:l,popupProps:s,popupRef:c,onOpenChangeComplete:u}=ui(),{side:d,align:f}=uc();return lC({open:a,ref:c,onComplete(){a&&u?.(!0)}}),sn(\"div\",e,{state:x.useMemo(()=>({open:a,side:d,align:f,instant:i,transitionStatus:l}),[a,d,f,i,l]),ref:[t,c],props:[s,\"starting\"===l?iN:iR,o],customStyleHookMapping:ud})}),up=x.createContext(void 0),uh=x.forwardRef(function(e,t){let{render:n,className:r,anchor:o,positionMethod:a=\"absolute\",side:i=\"top\",align:l=\"center\",sideOffset:s=0,alignOffset:c=0,collisionBoundary:u=\"clipping-ancestors\",collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,trackAnchor:h=!0,collisionAvoidance:m=iU,...g}=e,{open:y,setPositionerElement:v,mounted:A,floatingRootContext:w,trackCursorAxis:C,hoverable:_}=ui(),k=c_({anchor:o,positionMethod:a,floatingRootContext:w,mounted:A,side:i,sideOffset:s,align:l,alignOffset:c,collisionBoundary:u,collisionPadding:d,sticky:p,arrowPadding:f,trackAnchor:h,keepMounted:function(){let e=x.useContext(up);if(void 0===e)throw Error(\"Base UI: <Tooltip.Portal> is missing.\");return e}(),collisionAvoidance:m}),E=x.useMemo(()=>{let e={};return y&&\"both\"!==C&&_||(e.pointerEvents=\"none\"),{role:\"presentation\",hidden:!A,style:{...k.positionerStyles,...e}}},[y,C,_,A,k.positionerStyles]),j=x.useMemo(()=>({props:E,...k}),[E,k]),S=x.useMemo(()=>({open:y,side:j.side,align:j.align,anchorHidden:j.anchorHidden}),[y,j.side,j.align,j.anchorHidden]),O=x.useMemo(()=>({...S,arrowRef:j.arrowRef,arrowStyles:j.arrowStyles,arrowUncentered:j.arrowUncentered}),[S,j.arrowRef,j.arrowStyles,j.arrowUncentered]),B=sn(\"div\",e,{state:S,props:[j.props,g],ref:[t,v],customStyleHookMapping:se});return(0,b.jsx)(us.Provider,{value:O,children:B})});function um(e){let t=sG({root:e.root});return t&&ef.createPortal(e.children,t)}function ug(e){let{children:t,keepMounted:n=!1,container:r}=e,{mounted:o}=ui();return o||n?(0,b.jsx)(up.Provider,{value:n,children:(0,b.jsx)(um,{root:r,children:t})}):null}let uy=x.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new as,currentIdRef:{current:null},currentContextRef:{current:null}});function uv(e){let{children:t,delay:n,timeoutMs:r=0}=e,o=x.useRef(n),a=x.useRef(n),i=x.useRef(null),l=x.useRef(null),s=ac();return(0,b.jsx)(uy.Provider,{value:x.useMemo(()=>({hasProvider:!0,delayRef:o,initialDelayRef:a,currentIdRef:i,timeoutMs:r,currentContextRef:l,timeout:s}),[r,s]),children:t})}let ub=x.createContext(void 0),uA=function(e){let{delay:t,closeDelay:n,timeout:r=400}=e,o=x.useMemo(()=>({delay:t,closeDelay:n}),[t,n]),a=x.useMemo(()=>({open:t,close:n}),[t,n]);return(0,b.jsx)(ub.Provider,{value:o,children:(0,b.jsx)(uv,{delay:a,timeoutMs:r,children:e.children})})};function ux(e){return null!=e&&null!=e.clientX}function uw(e){let{disabled:t=!1,defaultOpen:n=!1,onOpenChange:r,open:o,delay:a,closeDelay:i,hoverable:l=!0,trackCursorAxis:s=\"none\",actionsRef:c,onOpenChangeComplete:u}=e,d=a??600,f=i??0,[p,h]=x.useState(null),[m,g]=x.useState(null),[y,v]=x.useState(),A=x.useRef(null),[w,C]=am({controlled:o,default:n,name:\"Tooltip\",state:\"open\"}),_=!t&&w;function k(e,t,n){let o=\"trigger-hover\"===n,a=e&&\"trigger-focus\"===n,i=!e&&(\"trigger-press\"===n||\"escape-key\"===n);function l(){r?.(e,t,n),C(e)}o?ef.flushSync(l):l(),a||i?v(a?\"focus\":\"dismiss\"):\"trigger-hover\"===n&&v(void 0)}let E=af(k);w&&t&&k(!1,void 0,\"disabled\");let{mounted:j,setMounted:S,transitionStatus:O}=lw(_),B=af(()=>{S(!1),u?.(!1)});lC({enabled:!c,open:_,ref:A,onComplete(){_||B()}}),x.useImperativeHandle(c,()=>({unmount:B}),[B]);let P=aS({elements:{reference:p,floating:m},open:_,onOpenChange(e,t,n){E(e,t,lz(n))}}),I=x.useContext(ub),{delayRef:z,isInstantPhase:T,hasProvider:D}=function(e,t={}){let{open:n,onOpenChange:r,floatingId:o}=e,{enabled:a=!0}=t,{currentIdRef:i,delayRef:l,timeoutMs:s,initialDelayRef:c,currentContextRef:u,hasProvider:d,timeout:f}=x.useContext(uy),[p,h]=x.useState(!1);return ax(()=>{function e(){h(!1),u.current?.setIsInstantPhase(!1),i.current=null,u.current=null,l.current=c.current}if(a&&i.current&&!n&&i.current===o){if(h(!1),s)return f.start(s,e),()=>{f.clear()};e()}},[a,n,o,i,l,s,c,u,f]),ax(()=>{if(!a||!n)return;let e=u.current,t=i.current;u.current={onOpenChange:r,setIsInstantPhase:h},i.current=o,l.current={open:0,close:ik(c.current,\"close\")},null!==t&&t!==o?(f.clear(),h(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1)):(h(!1),e?.setIsInstantPhase(!1))},[a,n,o,r,i,l,s,c,u,f]),ax(()=>()=>{u.current=null},[u]),x.useMemo(()=>({hasProvider:d,delayRef:l,isInstantPhase:p}),[d,l,p])}(P),L=T?\"delay\":y,N=ij(P,{enabled:!t,mouseOnly:!0,move:!1,handleClose:l&&\"both\"!==s?iP():null,restMs(){let e=I?.delay,t=\"object\"==typeof z.current?z.current.open:void 0,n=d;return D&&(n=0!==t?a??e??d:0),n},delay(){let e=\"object\"==typeof z.current?z.current.close:void 0,t=f;return null==i&&D&&(t=e),{close:t}}}),R=iz(P,{enabled:!t}),M=iH(P,{enabled:!t,referencePress:!0}),{getReferenceProps:Z,getFloatingProps:U}=lg([N,R,M,function(e,t={}){let{open:n,dataRef:r,elements:{floating:o,domReference:a},refs:i}=e,{enabled:l=!0,axis:s=\"both\",x:c=null,y:u=null}=t,d=x.useRef(!1),f=x.useRef(null),[p,h]=x.useState(),[m,g]=x.useState([]),y=af((e,t)=>{if(!d.current&&(!r.current.openEvent||ux(r.current.openEvent))){var n,o;let l,c,u;i.setPositionReference((n=a,o={x:e,y:t,axis:s,dataRef:r,pointerType:p},l=null,c=null,u=!1,{contextElement:n||void 0,getBoundingClientRect(){let e=n?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},t=\"x\"===o.axis||\"both\"===o.axis,r=\"y\"===o.axis||\"both\"===o.axis,a=[\"mouseenter\",\"mousemove\"].includes(o.dataRef.current.openEvent?.type||\"\")&&\"touch\"!==o.pointerType,i=e.width,s=e.height,d=e.x,f=e.y;return null==l&&o.x&&t&&(l=e.x-o.x),null==c&&o.y&&r&&(c=e.y-o.y),d-=l||0,f-=c||0,i=0,s=0,!u||a?(i=\"y\"===o.axis?e.width:0,s=\"x\"===o.axis?e.height:0,d=t&&null!=o.x?o.x:d,f=r&&null!=o.y?o.y:f):u&&!a&&(s=\"x\"===o.axis?e.height:s,i=\"y\"===o.axis?e.width:i),u=!0,{width:i,height:s,x:d,y:f,top:f,right:d+i,bottom:f+s,left:d}}}))}}),v=af(e=>{null==c&&null==u&&(n?f.current||g([]):y(e.clientX,e.clientY))}),b=ii(p)?o:n,A=x.useCallback(()=>{if(!b||!l||null!=c||null!=u)return;let e=aP(o);function t(n){ig(o,iy(n))?(e.removeEventListener(\"mousemove\",t),f.current=null):y(n.clientX,n.clientY)}if(!r.current.openEvent||ux(r.current.openEvent)){e.addEventListener(\"mousemove\",t);let n=()=>{e.removeEventListener(\"mousemove\",t),f.current=null};return f.current=n,n}i.setPositionReference(a)},[b,l,c,u,o,r,i,a,y]);x.useEffect(()=>A(),[A,m]),x.useEffect(()=>{l&&!o&&(d.current=!1)},[l,o]),x.useEffect(()=>{!l&&n&&(d.current=!0)},[l,n]),ax(()=>{l&&(null!=c||null!=u)&&(d.current=!1,y(c,u))},[l,c,u,y]);let w=x.useMemo(()=>{function e(e){h(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:v,onMouseEnter:v}},[v]);return x.useMemo(()=>l?{reference:w}:{},[l,w])}(P,{enabled:!t&&\"none\"!==s,axis:\"none\"===s?void 0:s})]),F=x.useMemo(()=>({open:_,setOpen:E,mounted:j,setMounted:S,setTriggerElement:h,positionerElement:m,setPositionerElement:g,popupRef:A,triggerProps:Z(),popupProps:U(),floatingRootContext:P,instantType:L,transitionStatus:O,onOpenChangeComplete:u}),[_,E,j,S,h,m,g,A,Z,U,P,L,O,u]),q=x.useMemo(()=>({...F,delay:d,closeDelay:f,trackCursorAxis:s,hoverable:l}),[F,d,f,s,l]);return(0,b.jsx)(ua.Provider,{value:q,children:e.children})}var uC=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/tooltip/tooltip.css\"),u_={};u_.styleTagTransform=h(),u_.setAttributes=u(),u_.insert=s(),u_.domAPI=i(),u_.insertStyleElement=f(),o()(uC.Z,u_),uC.Z&&uC.Z.locals&&uC.Z.locals;var uk=(0,x.forwardRef)(function(e,t){var n,r,o,a,i,l,s,c,u,d,f,p,h=(0,A.c)(35),m=e.className,g=e.children,y=e.title,v=e.direction,x=e.arrowSize,w=e.offset,C=void 0===v?\"top\":v,_=void 0===x?6:x,k=da().shadowRoot;if(!y)return g;h[0]!==g?(n=function(e){var t,n;return(0,b.jsx)(\"span\",(t=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},e),n=n={children:g},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}),t))},h[0]=g,h[1]=n):n=h[1],h[2]!==t||h[3]!==n?(r=(0,b.jsx)(ul,{ref:t,render:n}),h[2]=t,h[3]=n,h[4]=r):r=h[4];var E=(void 0===w?8:w)+_,j=\"\".concat(_,\"px\"),S=\"\".concat(_,\"px\");h[5]!==j||h[6]!==S?(o={\"--anchor-width\":j,\"--anchor-height\":S},h[5]=j,h[6]=S,h[7]=o):o=h[7];var O=o;h[8]!==m?(a=eG(\"tooltip\",m),h[8]=m,h[9]=a):a=h[9];var B=\"\".concat(_,\"px\");h[10]!==B?(i={\"--arrow-size\":B},h[10]=B,h[11]=i):i=h[11];var P=i,I=\"tooltip-arrow--\".concat(C);h[12]!==I?(l=eG(\"tooltip-arrow\",I),h[12]=I,h[13]=l):l=h[13];var z=\"\".concat(_,\"px\");h[14]!==z?(s={\"--arrow-size\":z},h[14]=z,h[15]=s):s=h[15];var T=s;return h[16]!==l||h[17]!==T?(c=(0,b.jsx)(uu,{className:l,style:T}),h[16]=l,h[17]=T,h[18]=c):c=h[18],h[19]!==a||h[20]!==P||h[21]!==c||h[22]!==y?(u=(0,b.jsxs)(uf,{className:a,style:P,children:[y,c]}),h[19]=a,h[20]=P,h[21]=c,h[22]=y,h[23]=u):u=h[23],h[24]!==C||h[25]!==O||h[26]!==u||h[27]!==E?(d=(0,b.jsx)(uh,{side:C,sideOffset:E,className:\"tooltip-positioner\",style:O,children:u}),h[24]=C,h[25]=O,h[26]=u,h[27]=E,h[28]=d):d=h[28],h[29]!==k||h[30]!==d?(f=(0,b.jsx)(ug,{container:k,children:d}),h[29]=k,h[30]=d,h[31]=f):f=h[31],h[32]!==f||h[33]!==r?(p=(0,b.jsx)(uA,{children:(0,b.jsxs)(uw,{delay:400,children:[r,f]})}),h[32]=f,h[33]=r,h[34]=p):p=h[34],p});function uE(e){var t,n,r=(0,A.c)(3),o=e.possibleExtension,a=e.missingGlobalError?\"No global-error.\".concat(o,\" found: Add one to ensure users see a helpful message when an unexpected error occurs.\"):null;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(uL,{}),r[0]=t):t=r[0],r[1]!==a?(n=(0,b.jsx)(\"span\",{className:\"segment-explorer-suggestions\",children:(0,b.jsx)(uk,{className:\"segment-explorer-suggestions-tooltip\",title:a,children:t})}),r[1]=a,r[2]=n):n=r[2],n}function uj(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r,o,a;r=e,o=t,a=n[t],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function uS(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var uO=function(e){var t,n;return!!(null==(t=e.value)?void 0:t.type)&&!!(null==(n=e.value)?void 0:n.pagePath)};function uB(e){var t,n,r=(0,A.c)(3),o=e.page;return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(uN,{}),r[0]=t):t=r[0],r[1]!==o?(n=(0,b.jsxs)(\"div\",{className:\"segment-explorer-page-route-bar\",children:[t,(0,b.jsx)(\"span\",{className:\"segment-explorer-page-route-bar-path\",children:o})]}),r[1]=o,r[2]=n):n=r[2],n}function uP(e){var t,n,r,o=(0,A.c)(9),a=e.activeBoundariesCount,i=e.onGlobalReset,l=a>0,s=\"segment-explorer-footer-button \".concat(l?\"\":\"segment-explorer-footer-button--disabled\"),c=l?i:void 0,u=!l;return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"span\",{className:\"segment-explorer-footer-text\",children:\"Clear Segment Overrides\"}),o[0]=t):t=o[0],o[1]!==a||o[2]!==l?(n=l&&(0,b.jsx)(\"span\",{className:\"segment-explorer-footer-badge\",children:a}),o[1]=a,o[2]=l,o[3]=n):n=o[3],o[4]!==s||o[5]!==c||o[6]!==u||o[7]!==n?(r=(0,b.jsx)(\"div\",{className:\"segment-explorer-footer\",children:(0,b.jsxs)(\"button\",{className:s,onClick:c,disabled:u,type:\"button\",children:[t,n]})}),o[4]=s,o[5]=c,o[6]=u,o[7]=n,o[8]=r):r=o[8],r}function uI(e){var t,n,r,o,a,i=(0,A.c)(15),l=e.type,s=e.isBuiltin,c=e.isOverridden,u=e.filePath,d=e.fileName,f=\"segment-explorer-file-label--\".concat(l),p=s&&\"segment-explorer-file-label--builtin\",h=c&&\"segment-explorer-file-label--overridden\";return i[0]!==f||i[1]!==p||i[2]!==h?(t=eG(\"segment-explorer-file-label\",f,p,h),i[0]=f,i[1]=p,i[2]=h,i[3]=t):t=i[3],i[4]!==u?(n=function(){var e;e=new URLSearchParams({file:{filePath:u}.filePath,isAppRelativePath:\"1\"}),fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(e.toString()))},i[4]=u,i[5]=n):n=i[5],i[6]!==d?(r=(0,b.jsx)(\"span\",{className:\"segment-explorer-file-label-text\",children:d}),i[6]=d,i[7]=r):r=i[7],i[8]!==s?(o=s?(0,b.jsx)(uL,{}):(0,b.jsx)(uR,{className:\"code-icon\"}),i[8]=s,i[9]=o):o=i[9],i[10]!==t||i[11]!==n||i[12]!==r||i[13]!==o?(a=(0,b.jsxs)(\"span\",{className:t,onClick:n,children:[r,o]}),i[10]=t,i[11]=n,i[12]=r,i[13]=o,i[14]=a):a=i[14],a}function uz(e){var t,n,r,o,a,i,l,s,c,u=(0,A.c)(17),d=e.page,f=(0,x.useSyncExternalStore)(o6,o9,o8);u[0]!==f?(n=function e(t){var n,r=0;return(null==(n=t.value)?void 0:n.setBoundaryType)&&null!==t.value.boundaryType&&!c1(t.value.type)&&r++,Object.values(t.children).forEach(function(t){t&&(r+=e(t))}),r}(f),u[0]=f,u[1]=n):n=u[1],t=n,u[2]!==f?(r=function(){!function e(t){var n;(null==(n=t.value)?void 0:n.setBoundaryType)&&t.value.setBoundaryType(null),Object.values(t.children).forEach(function(t){t&&e(t)})}(f)},u[2]=f,u[3]=r):r=u[3];var p=r;return u[4]===Symbol.for(\"react.memo_cache_sentinel\")?(o={display:\"flex\",flexDirection:\"column\",height:\"100%\"},u[4]=o):o=u[4],u[5]!==d?(a=(0,b.jsx)(uB,{page:d}),u[5]=d,u[6]=a):a=u[6],u[7]===Symbol.for(\"react.memo_cache_sentinel\")?(i={flex:\"1 1 auto\",overflow:\"auto\"},u[7]=i):i=u[7],u[8]!==f?(l=(0,b.jsx)(\"div\",{className:\"segment-explorer-content\",\"data-nextjs-devtool-segment-explorer\":!0,style:i,children:(0,b.jsx)(uD,{node:f,level:0,segment:\"\"})}),u[8]=f,u[9]=l):l=u[9],u[10]!==t||u[11]!==p?(s=(0,b.jsx)(uP,{activeBoundariesCount:t,onGlobalReset:p}),u[10]=t,u[11]=p,u[12]=s):s=u[12],u[13]!==a||u[14]!==l||u[15]!==s?(c=(0,b.jsxs)(\"div\",{\"data-nextjs-devtools-panel-segments-explorer\":!0,style:o,children:[a,l,s]}),u[13]=a,u[14]=l,u[15]=s,u[16]=c):c=u[16],c}var uT=\"global-error\";function uD(e){var t=e.segment,n=e.node,r=e.level,o=(0,x.useMemo)(function(){return Object.keys(n.children)},[n.children]),a=(0,x.useMemo)(function(){var e=[];return o.forEach(function(t){var r=n.children[t];if(r&&r.value){var o=c2(r.value.type),a=o===uT;(a&&!r.value.pagePath.startsWith(cQ)||!a&&c1(r.value.type))&&e.push(o)}}),0===r&&!e.includes(uT)},[n.children,o,r]),i=o.sort(function(e,t){var r=e.includes(\".\"),o=t.includes(\".\");if(r&&!o)return -1;if(!r&&o)return 1;if(r&&o){var a,i,l,s,c,u,d,f,p=null==(i=n.children[e])||null==(a=i.value)?void 0:a.type,h=null==(s=n.children[t])||null==(l=s.value)?void 0:l.type,m=function(e){return e?\"layout\"===e?1:\"template\"===e?2:\"page\"===e?3:c1(e)?4:5:5},g=m(p),y=m(h);if(g!==y)return g-y;var v=(null==(u=n.children[e])||null==(c=u.value)?void 0:c.pagePath)||\"\",b=(null==(f=n.children[t])||null==(d=f.value)?void 0:d.pagePath)||\"\";return v.localeCompare(b)}return e.localeCompare(t)}),l=0!==r||t?t:\"app\",s=[],c=[],u=!0,d=!1,f=void 0;try{for(var p,h=i[Symbol.iterator]();!(u=(p=h.next()).done);u=!0){var m=p.value,g=n.children[m];if(g){if(uO(g)){c.push(m);continue}s.push(m)}}}catch(e){d=!0,f=e}finally{try{u||null==h.return||h.return()}finally{if(d)throw f}}for(var y=cJ(c[0]||\"\").split(\".\").pop()||\"js\",v=null,A=i.length-1;A>=0;A--){var w=n.children[i[A]];if(w&&w.value){var C=c1(w.value.type);if(!v&&!C){v=w;break}}}var _=null,k=!0,E=!1,j=void 0;try{for(var S,O=i[Symbol.iterator]();!(k=(S=O.next()).done);k=!0){var B=S.value,P=n.children[B];if(P&&P.value&&c1(P.value.type)){_=P;break}}}catch(e){E=!0,j=e}finally{try{k||null==O.return||O.return()}finally{if(E)throw j}}v=v||_;var I=c.length>0,z={\"not-found\":null,loading:null,error:null,\"global-error\":null};return c.forEach(function(e){var t=n.children[e];if(t&&t.value&&c1(t.value.type)){var r=c2(t.value.type);r in z&&(z[r]=t.value.pagePath||null)}}),(0,b.jsxs)(b.Fragment,{children:[I&&(0,b.jsx)(\"div\",{className:\"segment-explorer-item\",\"data-nextjs-devtool-segment-explorer-segment\":t+\"-\"+r,children:(0,b.jsx)(\"div\",{className:\"segment-explorer-item-row\",style:uj({},{paddingLeft:\"\".concat((r+1)*8,\"px\")}),children:(0,b.jsx)(\"div\",{className:\"segment-explorer-item-row-main\",children:(0,b.jsxs)(\"div\",{className:\"segment-explorer-filename\",children:[l&&(0,b.jsxs)(\"span\",{className:\"segment-explorer-filename--path\",children:[l,(0,b.jsx)(\"small\",{children:\"/\"})]}),a&&(0,b.jsx)(uE,{possibleExtension:y,missingGlobalError:a}),c.length>0&&(0,b.jsx)(\"span\",{className:\"segment-explorer-files\",children:c.map(function(e){var t=n.children[e];if(!t||!t.value||c1(t.value.type))return null;var r=t.value.pagePath,o=r.split(\"/\").pop()||\"\",a=r.startsWith(cQ),i=cJ(o),l=a?\"The default Next.js \".concat(t.value.type,\" is being shown. You can customize this page by adding your own \").concat(i,\" file to the app/ directory.\"):null,s=null!==t.value.boundaryType;return(0,b.jsx)(uk,{className:\"segment-explorer-file-label-tooltip--\"+(a?\"lg\":\"sm\"),direction:a?\"right\":\"top\",title:l,offset:12,children:(0,b.jsx)(uI,{type:t.value.type,isBuiltin:a,isOverridden:s,filePath:r,fileName:i})},e)})}),v&&v.value&&(0,b.jsx)(c8,{nodeState:v.value,boundaries:z})]})})})}),s.map(function(e){var o=n.children[e];if(!o)return null;var a=I?e:t+\" / \"+e;return(0,b.jsx)(uD,{segment:a,node:o,level:I?r+1:r},e)})]})}function uL(e){var t,n,r,o=(0,A.c)(4);return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"path\",{d:\"M14 8C14 11.3137 11.3137 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2C11.3137 2 14 4.68629 14 8Z\",fill:\"var(--color-gray-400)\"}),n=(0,b.jsx)(\"path\",{d:\"M7.75 7C8.30228 7.00001 8.75 7.44772 8.75 8V11.25H7.25V8.5H6.25V7H7.75ZM8 4C8.55228 4 9 4.44772 9 5C9 5.55228 8.55228 6 8 6C7.44772 6 7 5.55228 7 5C7 4.44772 7.44772 4 8 4Z\",fill:\"var(--color-gray-900)\"}),o[0]=t,o[1]=n):(t=o[0],n=o[1]),o[2]!==e?(r=(0,b.jsxs)(\"svg\",uS(uj({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[t,n]})),o[2]=e,o[3]=r):r=o[3],r}function uN(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"var(--color-gray-600)\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,b.jsx)(\"path\",{d:\"M4.5 11.25C4.5 11.3881 4.61193 11.5 4.75 11.5H14.4395L11.9395 9L13 7.93945L16.7803 11.7197L16.832 11.7764C17.0723 12.0709 17.0549 12.5057 16.7803 12.7803L13 16.5605L11.9395 15.5L14.4395 13H4.75C3.7835 13 3 12.2165 3 11.25V4.25H4.5V11.25Z\"})}),t[0]=e):e=t[0],e}function uR(e){var t,n,r=(0,A.c)(3);return r[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M7.22763 14.1819L10.2276 2.18193L10.4095 1.45432L8.95432 1.09052L8.77242 1.81812L5.77242 13.8181L5.59051 14.5457L7.04573 14.9095L7.22763 14.1819ZM3.75002 12.0607L3.21969 11.5304L0.39647 8.70713C0.00594559 8.31661 0.00594559 7.68344 0.39647 7.29292L3.21969 4.46969L3.75002 3.93936L4.81068 5.00002L4.28035 5.53035L1.81068 8.00003L4.28035 10.4697L4.81068 11L3.75002 12.0607ZM12.25 12.0607L12.7804 11.5304L15.6036 8.70713C15.9941 8.31661 15.9941 7.68344 15.6036 7.29292L12.7804 4.46969L12.25 3.93936L11.1894 5.00002L11.7197 5.53035L14.1894 8.00003L11.7197 10.4697L11.1894 11L12.25 12.0607Z\",fill:\"currentColor\"}),r[0]=t):t=r[0],r[1]!==e?(n=(0,b.jsx)(\"svg\",uS(uj({width:\"12\",height:\"12\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},e),{children:t})),r[1]=e,r[2]=n):n=r[2],n}function uM(){var e,t,n=(e=[\"\\n .dev-tools-info-close-button:focus-visible {\\n outline: var(--focus-ring);\\n }\\n \"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return uM=function(){return n},n}function uZ(e){var t,n,r,o,a,i,l,s,c,u,d,f=(0,A.c)(18),p=e.title,h=e.children,m=e.ref,g=r2().setPanel,y=(0,x.useRef)(null);return f[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=function(){var e;null==(e=y.current)||e.focus()},n=[],f[0]=t,f[1]=n):(t=f[0],n=f[1]),(0,x.useLayoutEffect)(t,n),f[2]===Symbol.for(\"react.memo_cache_sentinel\")?(r={width:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",padding:\"8px 20px\",userSelect:\"none\",WebkitUserSelect:\"none\",borderBottom:\"1px solid var(--color-gray-alpha-400)\"},f[2]=r):r=f[2],f[3]===Symbol.for(\"react.memo_cache_sentinel\")?(o={margin:0,fontSize:\"14px\",color:\"var(--color-text-primary)\",fontWeight:\"normal\"},f[3]=o):o=f[3],f[4]!==p?(a=(0,b.jsx)(\"h3\",{style:o,children:p}),f[4]=p,f[5]=a):a=f[5],f[6]!==g?(i=function(){g(\"panel-selector\")},f[6]=g,f[7]=i):i=f[7],f[8]===Symbol.for(\"react.memo_cache_sentinel\")?(l={background:\"none\",border:\"none\",cursor:\"pointer\",padding:\"4px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",borderRadius:\"4px\",color:\"var(--color-gray-900)\"},s=(0,b.jsx)(uU,{}),f[8]=l,f[9]=s):(l=f[8],s=f[9]),f[10]!==i?(c=(0,b.jsx)(\"button\",{ref:y,id:\"_next-devtools-panel-close\",className:\"dev-tools-info-close-button\",onClick:i,\"aria-label\":\"Close devtools panel\",style:l,children:s}),f[10]=i,f[11]=c):c=f[11],f[12]===Symbol.for(\"react.memo_cache_sentinel\")?(u=(0,b.jsx)(\"style\",{children:es(uM())}),f[12]=u):u=f[12],f[13]!==h||f[14]!==m||f[15]!==a||f[16]!==c?(d=(0,b.jsxs)(\"div\",{style:r,ref:m,children:[a,h,c,u]}),f[13]=h,f[14]=m,f[15]=a,f[16]=c,f[17]=d):d=f[17],d}function uU(e){var t,n,r,o=(0,A.c)(4),a=e.size,i=void 0===a?22:a;return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t=(0,b.jsx)(\"path\",{d:\"M18 6 6 18\"}),n=(0,b.jsx)(\"path\",{d:\"m6 6 12 12\"}),o[0]=t,o[1]=n):(t=o[0],n=o[1]),o[2]!==i?(r=(0,b.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:i,height:i,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[t,n]}),o[2]=i,o[3]=r):r=o[3],r}function uF(){var e,t=(0,A.c)(1);return t[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 20 20\",fill:\"none\",children:(0,b.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"m9.7 3.736.045-.236h.51l.044.236a2.024 2.024 0 0 0 1.334 1.536c.19.066.375.143.554.23.618.301 1.398.29 2.03-.143l.199-.136.36.361-.135.199a2.024 2.024 0 0 0-.143 2.03c.087.179.164.364.23.554.224.65.783 1.192 1.536 1.334l.236.044v.51l-.236.044a2.024 2.024 0 0 0-1.536 1.334 4.95 4.95 0 0 1-.23.554 2.024 2.024 0 0 0 .143 2.03l.136.199-.361.36-.199-.135a2.024 2.024 0 0 0-2.03-.143c-.179.087-.364.164-.554.23a2.024 2.024 0 0 0-1.334 1.536l-.044.236h-.51l-.044-.236a2.024 2.024 0 0 0-1.334-1.536 4.952 4.952 0 0 1-.554-.23 2.024 2.024 0 0 0-2.03.143l-.199.136-.36-.361.135-.199a2.024 2.024 0 0 0 .143-2.03 4.958 4.958 0 0 1-.23-.554 2.024 2.024 0 0 0-1.536-1.334l-.236-.044v-.51l.236-.044a2.024 2.024 0 0 0 1.536-1.334 4.96 4.96 0 0 1 .23-.554 2.024 2.024 0 0 0-.143-2.03l-.136-.199.361-.36.199.135a2.024 2.024 0 0 0 2.03.143c.179-.087.364-.164.554-.23a2.024 2.024 0 0 0 1.334-1.536ZM8.5 2h3l.274 1.46c.034.185.17.333.348.394.248.086.49.186.722.3.17.082.37.074.526-.033l1.226-.839 2.122 2.122-.84 1.226a.524.524 0 0 0-.032.526c.114.233.214.474.3.722.061.177.21.314.394.348L18 8.5v3l-1.46.274a.524.524 0 0 0-.394.348 6.47 6.47 0 0 1-.3.722.524.524 0 0 0 .033.526l.839 1.226-2.122 2.122-1.226-.84a.524.524 0 0 0-.526-.032 6.477 6.477 0 0 1-.722.3.524.524 0 0 0-.348.394L11.5 18h-3l-.274-1.46a.524.524 0 0 0-.348-.394 6.477 6.477 0 0 1-.722-.3.524.524 0 0 0-.526.033l-1.226.839-2.122-2.122.84-1.226a.524.524 0 0 0 .032-.526 6.453 6.453 0 0 1-.3-.722.524.524 0 0 0-.394-.348L2 11.5v-3l1.46-.274a.524.524 0 0 0 .394-.348c.086-.248.186-.49.3-.722a.524.524 0 0 0-.033-.526l-.839-1.226 2.122-2.122 1.226.84a.524.524 0 0 0 .526.032 6.46 6.46 0 0 1 .722-.3.524.524 0 0 0 .348-.394L8.5 2Zm3 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm1.5 0a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\",clipRule:\"evenodd\"})}),t[0]=e):e=t[0],e}var uq=__nested_webpack_require_378213__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/menu/panel-router.css\"),uH={};uH.styleTagTransform=h(),uH.setAttributes=u(),uH.insert=s(),uH.domAPI=i(),uH.insertStyleElement=f(),o()(uq.Z,uH),uq.Z&&uq.Z.locals&&uq.Z.locals;var uV=function(){var e,t,n,r,o,a,i,l,s,c,u,d=(0,A.c)(32),f=r2(),p=f.setPanel,h=f.setSelectedIndex,m=da(),g=m.state,y=m.dispatch,v=u4().totalErrorCount,x=\"app\"===g.routerType;d[0]!==y||d[1]!==p||d[2]!==h||d[3]!==g.isErrorOverlayOpen||d[4]!==v?(e=v>0&&{title:\"\".concat(v,\" \").concat(1===v?\"issue\":\"issues\",\" found. Click to view details in the dev overlay.\"),label:\"Issues\",value:(0,b.jsx)(oz,{children:v}),onClick:function(){if(g.isErrorOverlayOpen){y({type:F}),p(null);return}p(null),h(-1),v>0&&y({type:U})}},d[0]=y,d[1]=p,d[2]=h,d[3]=g.isErrorOverlayOpen,d[4]=v,d[5]=e):e=d[5];var w=\"Current route is \".concat(g.staticIndicator?\"static\":\"dynamic\",\".\"),C=g.staticIndicator?\"Static\":\"Dynamic\";d[6]!==p?(t=function(){return p(\"route-type\")},d[6]=p,d[7]=t):t=d[7];var _=g.staticIndicator?\"static\":\"dynamic\";return d[8]!==_?(n={\"data-nextjs-route-type\":_},d[8]=_,d[9]=n):n=d[9],d[10]!==w||d[11]!==C||d[12]!==t||d[13]!==n?(r={title:w,label:\"Route\",value:C,onClick:t,attributes:n},d[10]=w,d[11]=C,d[12]=t,d[13]=n,d[14]=r):r=d[14],d[15]!==p?(o= false?0:{title:\"Learn about Turbopack and how to enable it in your application.\",label:\"Try Turbopack\",value:(0,b.jsx)(oT,{}),onClick:function(){return p(\"turbo-info\")}},d[15]=p,d[16]=o):o=d[16],d[17]!==x||d[18]!==p?(a= true&&x&&{label:\"Route Info\",value:(0,b.jsx)(oT,{}),onClick:function(){return p(\"segment-explorer\")},attributes:{\"data-segment-explorer\":!0}},d[17]=x,d[18]=p,d[19]=a):a=d[19],d[20]===Symbol.for(\"react.memo_cache_sentinel\")?(i=(0,b.jsx)(uF,{}),d[20]=i):i=d[20],d[21]!==p?(l=function(){return p(\"preferences\")},d[21]=p,d[22]=l):l=d[22],d[23]===Symbol.for(\"react.memo_cache_sentinel\")?(s={\"data-preferences\":!0},d[23]=s):s=d[23],d[24]!==l?(c={label:\"Preferences\",value:i,onClick:l,footer:!0,attributes:s},d[24]=l,d[25]=c):c=d[25],d[26]!==e||d[27]!==c||d[28]!==r||d[29]!==o||d[30]!==a?(u=(0,b.jsx)(oP,{items:[e,r,o,a,c]}),d[26]=e,d[27]=c,d[28]=r,d[29]=o,d[30]=a,d[31]=u):u=d[31],u},u$=function(){var e,t=(0,A.c)(4),n=da(),r=n.state,o=n.dispatch,a=n.shadowRoot;return t[0]!==o||t[1]!==a||t[2]!==r.disableDevIndicator?(e=function(){o({type:Z,disabled:!r.disableDevIndicator});var e=a.getElementById(\"panel-route\"),t=a.getElementById(\"data-devtools-indicator\");if(e&&e.firstElementChild){var n=e.firstElementChild,i=\"none\"===n.style.display;n.style.display=i?\"\":\"none\"}if(t){var l=\"none\"===t.style.display;t.style.display=l?\"\":\"none\"}},t[0]=o,t[1]=a,t[2]=r.disableDevIndicator,t[3]=e):e=t[3],e},uW=function(){var e,t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,w,C,_,k,E,j,S,O=(0,A.c)(44),B=da().state,P=r2().triggerRef,I=u$(),z=\"app\"===B.routerType;O[0]!==B.hideShortcut||O[1]!==I?(s=B.hideShortcut?(e={},t=B.hideShortcut,n=I,t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e):{},O[0]=B.hideShortcut,O[1]=I,O[2]=s):s=O[2],r=s,o=P,(l=(0,A.c)(4))[0]!==o||l[1]!==r?(a=function(){var e=function(e){if(!((n=t9((t=o).current))&&(\"true\"===n.contentEditable||\"INPUT\"===n.tagName||\"TEXTAREA\"===n.tagName||\"SELECT\"===n.tagName||\"true\"===n.dataset[\"shortcut-recorder\"])&&!n.hasAttribute(\"readonly\"))){var t,n,a=[];e.metaKey&&a.push(\"Meta\"),e.ctrlKey&&a.push(\"Control\"),e.altKey&&a.push(\"Alt\"),e.shiftKey&&a.push(\"Shift\"),\"Meta\"!==e.key&&\"Control\"!==e.key&&\"Alt\"!==e.key&&\"Shift\"!==e.key&&a.push(e.code);var i=a.join(\"+\");r[i]&&(e.preventDefault(),r[i]())}};return window.addEventListener(\"keydown\",e),function(){return window.removeEventListener(\"keydown\",e)}},i=[o,r],l[0]=o,l[1]=r,l[2]=a,l[3]=i):(a=l[2],i=l[3]),(0,x.useEffect)(a,i),O[3]===Symbol.for(\"react.memo_cache_sentinel\")?(c=(0,b.jsx)(uQ,{name:\"panel-selector\",children:(0,b.jsx)(uV,{})}),O[3]=c):c=O[3];var T=500/B.scale;O[4]!==T?(u={kind:\"fixed\",height:T,width:512},O[4]=T,O[5]=u):u=O[5],O[6]===Symbol.for(\"react.memo_cache_sentinel\")?(d=(0,b.jsx)(uZ,{title:\"Preferences\"}),f=(0,b.jsx)(uK,{}),O[6]=d,O[7]=f):(d=O[6],f=O[7]),O[8]!==u?(p=(0,b.jsx)(uQ,{name:\"preferences\",children:(0,b.jsx)(o0,{sharePanelSizeGlobally:!1,sizeConfig:u,closeOnClickOutside:!0,header:d,children:f})}),O[8]=u,O[9]=p):p=O[9];var D=B.staticIndicator?\"static\":\"dynamic\",L=B.staticIndicator?300/B.scale:325/B.scale,N=400/B.scale;O[10]!==L||O[11]!==N?(h={kind:\"fixed\",height:L,width:N},O[10]=L,O[11]=N,O[12]=h):h=O[12];var R=\"\".concat(B.staticIndicator?\"Static\":\"Dynamic\",\" Route\");O[13]!==R?(m=(0,b.jsx)(uZ,{title:R}),O[13]=R,O[14]=m):m=O[14],O[15]!==B.routerType||O[16]!==B.staticIndicator?(g=(0,b.jsx)(n1,{routerType:B.routerType,isStaticRoute:B.staticIndicator}),O[15]=B.routerType,O[16]=B.staticIndicator,O[17]=g):g=O[17];var M=n0[B.routerType][B.staticIndicator?\"static\":\"dynamic\"];O[18]!==M?(y=(0,b.jsx)(uY,{href:M}),O[18]=M,O[19]=y):y=O[19],O[20]!==g||O[21]!==y?(v=(0,b.jsxs)(\"div\",{className:\"panel-content\",children:[g,y]}),O[20]=g,O[21]=y,O[22]=v):v=O[22],O[23]!==h||O[24]!==m||O[25]!==v||O[26]!==D?(w=(0,b.jsx)(uQ,{name:\"route-type\",children:(0,b.jsx)(o0,{sharePanelSizeGlobally:!1,sizeConfig:h,closeOnClickOutside:!0,header:m,children:v},D)}),O[23]=h,O[24]=m,O[25]=v,O[26]=D,O[27]=w):w=O[27],O[28]!==z||O[29]!==B.page||O[30]!==B.scale?(C= true&&z&&(0,b.jsx)(uQ,{name:\"segment-explorer\",children:(0,b.jsx)(o0,{sharePanelSizeGlobally:!1,sharePanelPositionGlobally:!1,draggable:!0,sizeConfig:{kind:\"resizable\",maxHeight:\"90vh\",maxWidth:\"90vw\",minHeight:200/B.scale,minWidth:250/B.scale,initialSize:{height:375/B.scale,width:400/B.scale}},header:(0,b.jsx)(uZ,{title:\"Route Info\"}),children:(0,b.jsx)(uz,{page:B.page})})}),O[28]=z,O[29]=B.page,O[30]=B.scale,O[31]=C):C=O[31];var Z=470/B.scale,U=400/B.scale;return O[32]!==Z||O[33]!==U?(_={kind:\"fixed\",height:Z,width:U},O[32]=Z,O[33]=U,O[34]=_):_=O[34],O[35]===Symbol.for(\"react.memo_cache_sentinel\")?(k=(0,b.jsx)(uZ,{title:\"Try Turbopack\"}),O[35]=k):k=O[35],O[36]===Symbol.for(\"react.memo_cache_sentinel\")?(E=(0,b.jsxs)(\"div\",{className:\"panel-content\",children:[(0,b.jsx)(nY,{}),(0,b.jsx)(uY,{href:\"https://nextjs.org/docs/app/api-reference/turbopack\"})]}),O[36]=E):E=O[36],O[37]!==_?(j=(0,b.jsx)(uQ,{name:\"turbo-info\",children:(0,b.jsx)(o0,{sharePanelSizeGlobally:!1,sizeConfig:_,closeOnClickOutside:!0,header:k,children:E})}),O[37]=_,O[38]=j):j=O[38],O[39]!==w||O[40]!==C||O[41]!==j||O[42]!==p?(S=(0,b.jsxs)(b.Fragment,{children:[c,p,w,C,j]}),O[39]=w,O[40]=C,O[41]=j,O[42]=p,O[43]=S):S=O[43],S},uY=function(e){var t,n=(0,A.c)(2),r=e.href;return n[0]!==r?(t=(0,b.jsx)(\"div\",{className:\"dev-tools-info-button-container\",children:(0,b.jsx)(\"a\",{className:\"dev-tools-info-learn-more-button\",href:r,target:\"_blank\",rel:\"noreferrer noopener\",children:\"Learn More\"})}),n[0]=r,n[1]=t):t=n[1],t},uK=function(){var e,t,n,r,o=(0,A.c)(17),a=da(),i=a.dispatch,l=a.state,s=r2(),c=s.setPanel,u=s.setSelectedIndex,d=ow();return o[0]!==i?(e=function(e){i({type:X,scale:e})},o[0]=i,o[1]=e):e=o[1],o[2]!==i||o[3]!==d?(t=function(e){i({type:Y,devToolsPosition:e}),d(e)},o[2]=i,o[3]=d,o[4]=t):t=o[4],o[5]!==i||o[6]!==c||o[7]!==u?(n=function(){i({type:Z,disabled:!0}),u(-1),c(null),fetch(\"/__nextjs_disable_dev_indicator\",{method:\"POST\"})},o[5]=i,o[6]=c,o[7]=u,o[8]=n):n=o[8],o[9]!==l.devToolsPosition||o[10]!==l.hideShortcut||o[11]!==l.scale||o[12]!==l.theme||o[13]!==e||o[14]!==t||o[15]!==n?(r=(0,b.jsx)(\"div\",{className:\"user-preferences-wrapper\",children:(0,b.jsx)(rC,{theme:l.theme,position:l.devToolsPosition,scale:l.scale,setScale:e,setPosition:t,hideShortcut:l.hideShortcut,setHideShortcut:uJ,hide:n})}),o[9]=l.devToolsPosition,o[10]=l.hideShortcut,o[11]=l.scale,o[12]=l.theme,o[13]=e,o[14]=t,o[15]=n,o[16]=r):r=o[16],r},uX=function(){return(0,x.useContext)(uG)},uG=(0,x.createContext)(null);function uQ(e){var t,n,r,o,a,i=(0,A.c)(12),l=e.children,s=e.name,c=r2().panel;i[0]===Symbol.for(\"react.memo_cache_sentinel\")?(t={enterDelay:0,exitDelay:200},i[0]=t):t=i[0];var u=rD(s===c,t),d=u.mounted,f=u.rendered;if(!d)return null;i[1]!==d||i[2]!==s?(n={name:s,mounted:d},i[1]=d,i[2]=s,i[3]=n):n=i[3];var p=+!!f;i[4]!==p?(r={\"--panel-opacity\":p,\"--panel-transition\":\"opacity \".concat(200,\"ms \").concat(t7)},i[4]=p,i[5]=r):r=i[5];var h=r;return i[6]!==l||i[7]!==h?(o=(0,b.jsx)(\"div\",{id:\"panel-route\",className:\"panel-route\",style:h,children:l}),i[6]=l,i[7]=h,i[8]=o):o=i[8],i[9]!==n||i[10]!==o?(a=(0,b.jsx)(uG,{value:n,children:o}),i[9]=n,i[10]=o,i[11]=a):a=i[11],a}function uJ(e){rA({hideShortcut:e})}function u0(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u1(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return u0(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u0(e,t)}}(e,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var u2=(0,x.createContext)(null),u4=function(){return(0,x.useContext)(u2)};function u5(){var e,t,n,r,o=(0,A.c)(11),a=u1((0,x.useState)(null),2),i=a[0],l=a[1],s=u1((0,x.useState)(-1),2),c=s[0],u=s[1],d=da(),f=d.state,p=d.dispatch,h=d.getSquashedHydrationErrorDetails,m=(0,x.useRef)(null);return o[0]===Symbol.for(\"react.memo_cache_sentinel\")?(e=(0,b.jsx)(r$,{}),t=(0,b.jsx)(rI,{}),o[0]=e,o[1]=t):(e=o[0],t=o[1]),o[2]!==p||o[3]!==h||o[4]!==i||o[5]!==c||o[6]!==f?(n=function(e){var t=e.runtimeErrors,n=e.totalErrorCount;return(0,b.jsx)(b.Fragment,{children:f.showIndicator?(0,b.jsx)(b.Fragment,{children:(0,b.jsx)(u2,{value:{runtimeErrors:t,totalErrorCount:n},children:(0,b.jsxs)(r1,{value:{panel:i,setPanel:l,triggerRef:m,selectedIndex:c,setSelectedIndex:u},children:[(0,b.jsx)(rR,{state:f,dispatch:p,getSquashedHydrationErrorDetails:h,runtimeErrors:t,errorCount:n}),(0,b.jsx)(uW,{}),(0,b.jsx)(ox,{})]})})}):null})},o[2]=p,o[3]=h,o[4]=i,o[5]=c,o[6]=f,o[7]=n):n=o[7],o[8]!==f||o[9]!==n?(r=(0,b.jsxs)(ep,{children:[e,t,(0,b.jsx)(rq,{state:f,isAppDir:!0,children:n})]}),o[8]=f,o[9]=n,o[10]=r):r=o[10],r}function u3(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u6(e){return function(e){if(Array.isArray(e))return u3(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||u9(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function u9(e,t){if(e){if(\"string\"==typeof e)return u3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n)return Array.from(n);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u3(e,t)}}var u8=null,u7=[];function de(e){return function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];u8?e.apply(void 0,[u8].concat(u6(n))):u7.push(function(t){e.apply(void 0,[t].concat(u6(n)))})}}var dt={onBuildOk:de(function(e){e({type:P})}),onBuildError:de(function(e,t){e({type:I,message:t})}),onBeforeRefresh:de(function(e){e({type:z})}),onRefresh:de(function(e){e({type:T})}),onVersionInfo:de(function(e,t){e({type:D,versionInfo:t})}),onStaticIndicator:de(function(e,t){e({type:B,staticIndicator:t})}),onDebugInfo:de(function(e,t){e({type:R,debugInfo:t})}),onDevIndicator:de(function(e,t){e({type:M,devIndicator:t})}),onDevToolsConfig:de(function(e,t){e({type:G,devToolsConfig:t})}),onUnhandledError:de(function(e,t){e({type:L,reason:t})}),onUnhandledRejection:de(function(e,t){e({type:N,reason:t})}),openErrorOverlay:de(function(e){e({type:U})}),closeErrorOverlay:de(function(e){e({type:F})}),toggleErrorOverlay:de(function(e){e({type:q})}),buildingIndicatorHide:de(function(e){e({type:V})}),buildingIndicatorShow:de(function(e){e({type:H})}),renderingIndicatorHide:de(function(e){e({type:W})}),renderingIndicatorShow:de(function(e){e({type:$})}),segmentExplorerNodeAdd:de(function(e,t){ae(t)}),segmentExplorerNodeRemove:de(function(e,t){at(t)}),segmentExplorerUpdateRouteState:de(function(e,t){e({type:en,page:t})})};function dn(e){var t,n,r,o,a,i,l,s,c,u,d,f,p,h,m,g,y,v,w,O=(0,A.c)(18),Q=e.getOwnerStack,J=e.getSquashedHydrationErrorDetails,ee=e.isRecoverableError,et=e.routerType,er=e.shadowRoot,el=(t=et,n=Q,r=ee,(s=(0,A.c)(7))[0]!==n||s[1]!==r?(a=function(e,t,o){var a,i=n(o),l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:process.env.__NEXT_DIST_DIR;return e?(e=e.split(\"\\n\").map(function(e){return e.includes(\"(eval \")&&(e=e.replace(/eval code/g,\"eval\").replace(/\\(eval at [^()]* \\(/,\"(file://\").replace(/\\),.*$/g,\")\")),e}).join(\"\\n\"),(0,C.parse)(e).map(function(e){try{var n=new URL(e.file),r=_.exec(n.pathname);if(r){var o,a=null==t||null==(o=t.replace(/\\\\/g,\"/\"))?void 0:o.replace(/\\/$/,\"\");a&&(e.file=\"file://\"+a.concat(r.pop())+n.search)}}catch(e){}return{file:e.file,line1:e.lineNumber,column1:e.column,methodName:e.methodName,arguments:e.arguments}})):[]}((o.stack||\"\")+(i||\"\")),s={id:t,error:o,frames:l,type:r(o)?\"recoverable\":(a=o)&&\"NEXT_CONSOLE_ERROR\"===a[k]?\"console\":\"runtime\"},c=e.filter(function(e){return e.error.stack!==s.error.stack&&eo(e.error.stack)!==eo(s.error.stack)||n(e.error)!==n(s.error)});return c.length===e.length?(c.push(s),c):e},s[0]=n,s[1]=r,s[2]=a):a=s[2],c=a,(s[3]!==c?(i=function(e,t){switch(t.type){case R:return S(j({},e),{debugInfo:t.debugInfo});case B:return S(j({},e),{staticIndicator:t.staticIndicator});case P:return S(j({},e),{buildError:null});case I:return S(j({},e),{buildError:t.message});case z:return S(j({},e),{refreshState:{type:\"pending\",errors:[]}});case T:return S(j({},e),{buildError:null,errors:\"pending\"===e.refreshState.type?e.refreshState.errors:[],refreshState:{type:\"idle\"}});case L:case N:switch(e.refreshState.type){case\"idle\":return S(j({},e),{nextId:e.nextId+1,errors:c(e.errors,e.nextId,t.reason)});case\"pending\":return S(j({},e),{nextId:e.nextId+1,refreshState:S(j({},e.refreshState),{errors:c(e.errors,e.nextId,t.reason)})});default:return e}case D:return S(j({},e),{versionInfo:t.versionInfo});case Z:return S(j({},e),{disableDevIndicator:t.disabled});case M:return S(j({},e),{showIndicator:!0,disableDevIndicator:ea||!!t.devIndicator.disabledUntil});case U:return S(j({},e),{isErrorOverlayOpen:!0});case F:return S(j({},e),{isErrorOverlayOpen:!1});case q:return S(j({},e),{isErrorOverlayOpen:!e.isErrorOverlayOpen});case H:return S(j({},e),{buildingIndicator:!0});case V:return S(j({},e),{buildingIndicator:!1});case $:return S(j({},e),{renderingIndicator:!0});case W:return S(j({},e),{renderingIndicator:!1});case Y:return S(j({},e),{devToolsPosition:t.devToolsPosition});case K:return S(j({},e),{devToolsPanelPosition:S(j({},e.devToolsPanelPosition),E({},t.key,t.devToolsPanelPosition))});case X:return S(j({},e),{scale:t.scale});case en:return S(j({},e),{page:t.page});case G:var n=t.devToolsConfig,r=n.theme,o=n.disableDevIndicator,a=n.devToolsPosition,i=n.devToolsPanelPosition,l=n.devToolsPanelSize,s=n.scale,u=n.hideShortcut;return S(j({},e),{theme:null!=r?r:e.theme,disableDevIndicator:null!=o?o:e.disableDevIndicator,devToolsPosition:null!=a?a:e.devToolsPosition,devToolsPanelPosition:null!=i?i:e.devToolsPanelPosition,scale:null!=s?s:e.scale,devToolsPanelSize:null!=l?l:e.devToolsPanelSize,hideShortcut:void 0!==u?u:e.hideShortcut});default:return e}},s[3]=c,s[4]=i):i=s[4],s[5]!==t)?(o=t,l=S(j({},ei),{isErrorOverlayOpen:\"pages\"===o,routerType:o}),s[5]=t,s[6]=l):l=s[6],u=(0,x.useReducer)(i,l),d=2,function(e){if(Array.isArray(e))return e}(u)||function(e,t){var n,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),a.length!==t);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(u,2)||u9(u,d)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),es=el[0],ec=el[1];return O[0]!==er.host||O[1]!==es.theme?(f=function(){var e=er.host;\"dark\"===es.theme?(e.classList.add(\"dark\"),e.classList.remove(\"light\")):\"light\"===es.theme?(e.classList.add(\"light\"),e.classList.remove(\"dark\")):(e.classList.remove(\"dark\"),e.classList.remove(\"light\"))},O[0]=er.host,O[1]=es.theme,O[2]=f):f=O[2],O[3]!==er||O[4]!==es.theme?(p=[er,es.theme],O[3]=er,O[4]=es.theme,O[5]=p):p=O[5],(0,x.useLayoutEffect)(f,p),O[6]!==ec?(h=function(){u8=ec;var e=setTimeout(function(){!function(e){try{var t=!0,n=!1,r=void 0;try{for(var o,a=u7[Symbol.iterator]();!(t=(o=a.next()).done);t=!0)(0,o.value)(e)}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}finally{u7.length=0}}(ec)});return function(){u8=null,clearTimeout(e)}},O[6]=ec,O[7]=h):h=O[7],O[8]===Symbol.for(\"react.memo_cache_sentinel\")?(m=[],O[8]=m):m=O[8],(0,x.useInsertionEffect)(h,m),O[9]===Symbol.for(\"react.memo_cache_sentinel\")?(g=(0,b.jsx)(eu,{}),O[9]=g):g=O[9],O[10]!==ec||O[11]!==J||O[12]!==er||O[13]!==es?(y={dispatch:ec,getSquashedHydrationErrorDetails:J,shadowRoot:er,state:es},O[10]=ec,O[11]=J,O[12]=er,O[13]=es,O[14]=y):y=O[14],O[15]===Symbol.for(\"react.memo_cache_sentinel\")?(v=(0,b.jsx)(u5,{}),O[15]=v):v=O[15],O[16]!==y?(w=(0,b.jsxs)(b.Fragment,{children:[g,(0,b.jsx)(dr,{value:y,children:v})]}),O[16]=y,O[17]=w):w=O[17],w}var dr=(0,x.createContext)(null),da=function(){return(0,x.useContext)(dr)},di=!1,dl=!1;function ds(){return null}function dc(e,t){if(di)throw Error(\"Next DevTools: Pages Dev Overlay is already mounted. This is a bug in Next.js\");if(!dl){var n=document.createElement(\"script\");n.style.display=\"block\",n.style.position=\"absolute\",n.setAttribute(\"data-nextjs-dev-overlay\",\"true\");var r=document.createElement(\"nextjs-portal\");n.appendChild(r),document.body.appendChild(n);var o=(0,el.createRoot)(r,{identifierPrefix:\"ndt-\"}),a=r.attachShadow({mode:\"open\"});(0,x.startTransition)(function(){o.render((0,b.jsx)(dn,{getOwnerStack:e,getSquashedHydrationErrorDetails:ds,isRecoverableError:t,routerType:\"app\",shadowRoot:a}))}),dl=!0}}function du(e,t,n){if(dl)throw Error(\"Next DevTools: App Dev Overlay is already mounted. This is a bug in Next.js\");if(!di){var r=document.createElement(\"nextjs-portal\");r.style.position=\"absolute\",new MutationObserver(function(e){var t=!0,n=!1,o=void 0;try{for(var a,i=e[Symbol.iterator]();!(t=(a=i.next()).done);t=!0){var l=a.value;if(\"childList\"===l.type){var s=!0,c=!1,u=void 0;try{for(var d,f=l.removedNodes[Symbol.iterator]();!(s=(d=f.next()).done);s=!0)d.value===r&&document.body.appendChild(r)}catch(e){c=!0,u=e}finally{try{s||null==f.return||f.return()}finally{if(c)throw u}}}}}catch(e){n=!0,o=e}finally{try{t||null==i.return||i.return()}finally{if(n)throw o}}}).observe(document.body,{childList:!0}),document.body.appendChild(r);var o=(0,el.createRoot)(r,{identifierPrefix:\"ndt-\"}),a=r.attachShadow({mode:\"open\"});(0,x.startTransition)(function(){o.render((0,b.jsx)(dn,{getOwnerStack:e,getSquashedHydrationErrorDetails:t,isRecoverableError:n,routerType:\"pages\",shadowRoot:a}))}),di=!0}}})(),exports.DevOverlayContext=__nested_webpack_exports__.DevOverlayContext,exports.dispatcher=__nested_webpack_exports__.dispatcher,exports.renderAppDevOverlay=__nested_webpack_exports__.renderAppDevOverlay,exports.renderPagesDevOverlay=__nested_webpack_exports__.renderPagesDevOverlay,exports.useDevOverlayContext=__nested_webpack_exports__.useDevOverlayContext,__nested_webpack_exports__)-1===[\"DevOverlayContext\",\"dispatcher\",\"renderAppDevOverlay\",\"renderPagesDevOverlay\",\"useDevOverlayContext\"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__nested_webpack_exports__[__webpack_i__]);Object.defineProperty(exports, \"__esModule\", ({value:!0}));\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUEseUJBQXlCLDZSQUE2UixhQUFhLE9BQU8sUUFBUSxFQUFFLDhhQUE4YTtBQUNsd0I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLDZJQUE2SSxLQUFLLFVBQVUsS0FBSyxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksV0FBVyxV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OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sMklBQTJJLFlBQVksYUFBYSxXQUFXLFlBQVksYUFBYSxPQUFPLEtBQUssWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxZQUFZLE1BQU0sWUFBWSxPQUFPLE1BQU0sVUFBVSxVQUFVLFVBQVUsWUFBWSxPQUFPLGFBQWEsT0FBTyxVQUFVLFVBQVUsVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sUUFBUSxVQUFVLFVBQVUsVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksT0FBTyxNQUFNLFVBQVUsVUFBVSxZQUFZLE9BQU8sTUFBTSxVQUFVLFVBQVUsWUFBWSxPQUFPLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxXQUFXLFlBQVksYUFB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU0saUlBQWlJLFlBQVksV0FBVyxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsV0FBVyxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFVB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTSxzR0FBc0csV0FBVyxZQUFZLFdBQVcsT0FBTyxVQUFVLEtBQUssT0FBTyxZQUFZLE9BQU8sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE9BQU8sY0FBYyxVQUFVLE9BQU8sS0FBSyxVQUFVLE1BQU0sT0FBTyxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksV0FBVyxZQUFZLE9BQU8sVUFBVSxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxPQUFPLE1BQU0sWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxhQUFhLGFBQWEsT0FBTyxPQUFPLFVBQVUsWUFBWSxPQUFPLFFBQVEsWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxXQUFXLE9BQU8sS0FBSyxZQUFZLE9BQU8sTUFBTSxZQUFZLE9BQU8sS0FBSyxVQUFVLE9BQU8sTUFBTSxZQUFZLFdBQVcsVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLE9BQU8sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxPQUFPLFFBQVEsS0FBSyxPQUFPLFdBQVcsT0FBTyxL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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw4R0FBOEcsWUFBWSxhQUFhLGNBQWMsYUFBYSxjQUFjLGFBQWEsYUFBYSxjQUFjLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGNBQWMsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxjQUFjLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGNBQWMsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxjQUFjLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGNBQWMsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxPQUFPLEtBQUssS0FBSyxZQUFZLGFBQWEsY0FBYyxhQUFhLGNBQWMsYUFBYSxhQUFhLGNBQWMsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFB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QUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGlIQUFpSCxVQUFVLEtBQUssYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGNBQWMsYUFBYSxhQUFhLGNBQWMsTUFBTSxPQUFPLE1BQU0sTUFBTSxZQUFZLGNBQWMsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLE9BQU8sTUFBTSxPQUFPLGFBQWEsYUFBYSxjQUFjLGFBQWEsTUFBTSxRQUFRLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxnQkFBZ0IsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxnQkFBZ0IsS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxjQUFjLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSw4QkFBOEIsbVlBQW1ZLDRCQUE0QiwrQ0FBK0MsZ0RBQWdELG1DQUFtQyw4QkFBOEIsaUNBQWlDLCtCQUErQiwrQkFBK0IsaUpBQWlKLG9HQUFvRywwQ0FBMEMsaUNBQWlDLHNGQUFzRiw0RUFBNEUsa0ZBQWtGLHlGQUF5RiwwRkFBMEYsc0RBQXNELHdEQUF3RCw2QkFBNkIsc0RBQXNELHNJQUFzSSwyQ0FBMkMsK0NBQStDLDJEQUEyRCw0REFBNEQsKzRDQUErNEMsMEJBQTBCLHNCQUFzQixzQkFBc0Isd0JBQXdCLHNCQUFzQix1QkFBdUIsd0JBQXdCLHdCQUF3Qix3QkFBd0IsMkJBQTJCLDBjQUEwYyx3REFBd0Qsd0RBQXdELHdEQUF3RCx3REFBd0Qsd0RBQXdELHdEQUF3RCx3REFBd0Qsd0RBQXdELHdEQUF3RCwwREFBMEQsMERBQTBELDBEQUEwRCwwREFBMEQsMERBQTBELDBEQUEwRCwwREFBMEQsMERBQTBELDBEQUEwRCwwREFBMEQsMERBQTBELDBEQUEwRCwwREFBMEQsMERBQTBELDBEQUEwRCwwREFBMEQsMERBQTBELDBEQUEwRCwwREFBMEQsMERBQTBELDBEQUEwRCwwREFBMEQsMERBQTBELDBEQUEwRCxvQkFBb0Isb0JBQW9CLEtBQUssR0FBRyxpQ0FBaUMsdUJBQXVCLHFCQUFxQixxQkFBcUIsR0FBRyxPQUFPLGlDQUFpQyxhQUFhLG1DQUFtQyxLQUFLLHFCQUFxQixpQ0FBaUMsS0FBSyxHQUFHLG1CQUFtQixHQUFHLFFBQVEsNk1BQTZNLGFBQWEsc0JBQXNCLFNBQVMsNkJBQTZCLDRCQUE0Qix5QkFBeUIsK0NBQStDLHVDQUF1QyxnRUFBZ0UscUJBQXFCLGVBQWUsZUFBZSxLQUFLLFdBQVcseUJBQXlCLDBDQUEwQyxTQUFTLGlCQUFpQixjQUFjLEtBQUssaUJBQWlCLG1CQUFtQixZQUFZLFdBQVcsS0FBSyxzQkFBc0Isb0dBQW9HLGlCQUFpQixxREFBcUQsaUJBQWlCLHlEQUF5RCxpQkFBaUIsMENBQTBDLElBQUksb05BQW9OLGFBQWEsc0JBQXNCLGtCQUFrQixlQUFlLDRCQUE0Qiw0REFBNEQsd0VBQXdFLGNBQWMsdUNBQXVDLHNCQUFzQixvTUFBb00sYUFBYSxTQUFTLGNBQWMsaUJBQWlCLFdBQVcsNEJBQTRCLElBQUksTUFBTSxTQUFTLGdCQUFnQixZQUFZLFVBQVUsV0FBVyxLQUFLLDRFQUE0RSxTQUFTLGNBQWMsNkRBQTZELDRDQUE0QyxLQUFLLG9CQUFvQixrQkFBa0IsK0JBQStCLHVJQUF1SSxNQUFNLDBCQUEwQixvQ0FBb0MsRUFBRSxVQUFVLFNBQVMsd0JBQXdCLHVCQUF1QixFQUFFLG1CQUFtQixRQUFRLFlBQVksV0FBVyxLQUFLLGNBQWMsa0JBQWtCLHFCQUFxQixXQUFXLEtBQUssY0FBYyxvREFBb0QsTUFBTSw4TEFBOEwsYUFBYSxzQkFBc0Isc0NBQXNDLGdFQUFnRSw4TUFBOE0sYUFBYSxzQkFBc0IsV0FBVyw4QkFBOEIsdUxBQXVMLGFBQWEsc0JBQXNCLHVDQUF1QyxtQkFBbUIsc0JBQXNCLDhCQUE4QixPQUFPLG1CQUFtQixVQUFVLHlEQUF5RCw2Q0FBNkMseUZBQXlGLHNCQUFzQixrQkFBa0IscUJBQXFCLGdHQUFnRyxpSEFBaUgsbUJBQW1CLGFBQWEsbURBQW1ELE9BQU8sNkxBQTZMLGFBQWEsd0JBQXdCLHVDQUF1QyxLQUFLLEtBQUssYUFBYSw2QkFBNkIsNENBQTRDLDhDQUE4QyxNQUFNLGFBQWEsT0FBTyxRQUFRLGlCQUFpQixnQkFBZ0IsWUFBWSxXQUFXLEtBQUssV0FBVywrR0FBK0csdUJBQXVCLHdDQUF3QyxRQUFRLG1DQUFtQyxFQUFFLG1DQUFtQyxFQUFFLHFDQUFxQyxFQUFFLHdDQUF3QyxFQUFFLG9DQUFvQyxFQUFFLHlDQUF5QyxFQUFFLHNDQUFzQyxFQUFFLHVDQUF1QyxJQUFJLDZDQUE2QyxFQUFFLDRDQUE0QyxFQUFFLDRDQUE0QyxFQUFFLGdEQUFnRCxFQUFFLDZDQUE2QyxFQUFFLGlEQUFpRCxFQUFFLDhDQUE4QyxFQUFFLGdEQUFnRCxHQUFHLHFCQUFxQixhQUFhLDZFQUE2RSx1RUFBdUUsa0JBQWtCLHNDQUFzQyxnQ0FBZ0MsRUFBRSxnQ0FBZ0MsMEJBQTBCLEVBQUUscUNBQXFDLCtCQUErQixFQUFFLHFDQUFxQywrQkFBK0IsRUFBRSxtQ0FBbUMsNkJBQTZCLFNBQVMsb0NBQW9DLHVCQUF1QixZQUFZLElBQUksZ0JBQWdCLElBQUksNENBQTRDLG1EQUFtRCxnQ0FBZ0MsS0FBSyxJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixJQUFJLHVDQUF1QyxnQkFBZ0IsS0FBSyw4Q0FBOEMsRUFBRSxzQ0FBc0MsdUNBQXVDLG1CQUFtQixjQUFjLGNBQWMsS0FBSyxHQUFHLEVBQUUsZ0NBQWdDLHFEQUFxRCxrQ0FBa0MsR0FBRyxFQUFFLHFDQUFxQyw2QkFBNkIsRUFBRSxxQ0FBcUMsY0FBYywrQ0FBK0MsRUFBRSxtQ0FBbUMsd0JBQXdCLE1BQU0sRUFBRSxvQ0FBb0MsMkNBQTJDLGNBQWMsMkJBQTJCLHdCQUF3Qiw2QkFBNkIsRUFBRSxjQUFjLGdDQUFnQyxnR0FBZ0csbUJBQW1CLEtBQUssZ0NBQWdDLEVBQUUsNkNBQTZDLHNCQUFzQixtRkFBbUYsd0lBQXdJLGtCQUFrQixpQ0FBaUMseUNBQXlDLGVBQWUsZUFBZSxtQkFBbUIsR0FBRyxzQ0FBc0MseUJBQXlCLFdBQVcsRUFBRSwwQkFBMEIsd0RBQXdELHFDQUFxQyxvQ0FBb0Msc0NBQXNDLHlDQUF5QyxxQ0FBcUMsd0NBQXdDLHVDQUF1Qyw4Q0FBOEMsMkJBQTJCLDJCQUEyQiwwQ0FBMEMsMENBQTBDLDBDQUEwQyw0Q0FBNEMsd0JBQXdCLGFBQWEsZ0JBQWdCLGdCQUFnQix5QkFBeUIsMEJBQTBCLHNCQUFzQixtREFBbUQsc0JBQXNCLDhHQUE4Ryw4QkFBOEIsc0VBQXNFLDZDQUE2QyxzQkFBc0IsNEhBQTRILGdOQUFnTixFQUFFLHlDQUF5QyxXQUFXLFFBQVEsbUNBQW1DLG1CQUFtQix3QkFBd0IscUNBQXFDLGtDQUFrQyxlQUFlLGtCQUFrQixpRkFBaUYsc0NBQXNDLG15QkFBbXlCLHFDQUFxQyxLQUFLLElBQUksTUFBTSxjQUFjLFdBQVcsK0JBQStCLFlBQVksV0FBVyxNQUFNLElBQUkseUJBQXlCLFFBQVEsZUFBZSxpQkFBaUIsMkJBQTJCLElBQUksZ0ZBQWdGLGFBQWEsZ0lBQWdJLGNBQWMsb0NBQW9DLHVCQUF1QiwrQ0FBK0MsWUFBWSxtQkFBbUIsbURBQW1ELG9DQUFvQywySEFBMkgsY0FBYyxZQUFZLG9CQUFvQixTQUFTLFlBQVksS0FBSyxJQUFJLGtEQUFrRCxTQUFTLHdCQUF3QixjQUFjLGVBQWUsc0JBQXNCLHNGQUFzRixZQUFZLGNBQWMsZUFBZSxzQkFBc0Isc0ZBQXNGLFlBQVksY0FBYyxnQ0FBZ0Msa2JBQWtiLDBCQUEwQixtQ0FBbUMscUVBQXFFLDhDQUE4QyxvQ0FBb0Msc0JBQXNCLGNBQWMsK0ZBQStGLG1NQUFtTSw2Q0FBNkMsV0FBVyxjQUFjLE9BQU8sV0FBVyxjQUFjLG9DQUFvQyxnQkFBZ0IsNkJBQTZCLDRDQUE0QyxnQkFBZ0IsMkNBQTJDLG1FQUFtRSxNQUFNLHdEQUF3RCxlQUFlLGNBQWMsTUFBTSxlQUFlLE1BQU0sYUFBYSxZQUFZLGFBQWEsZUFBZSxjQUFjLCtCQUErQiwrQkFBK0IsdUJBQXVCLGNBQWMsb0VBQW9FLGNBQWMsbUJBQW1CLGNBQWMsU0FBUywyQ0FBMkMsNEdBQTRHLG1CQUFtQixTQUFTLGdCQUFnQixrQkFBa0IsS0FBSyw4QkFBOEIsK0JBQStCLElBQUksT0FBTyx1Q0FBdUMsSUFBSSxNQUFNLGlCQUFpQixlQUFlLDhDQUE4QyxlQUFlLGVBQWUsK0NBQStDLElBQUksd0JBQXdCLFNBQVMsUUFBUSwwQkFBMEIsS0FBSyxJQUFJLFNBQVMsU0FBUyxJQUFJLHFCQUFxQixLQUFLLElBQUksY0FBYyxTQUFTLElBQUkseURBQXlELEdBQUcsU0FBUywwREFBMEQsb0JBQW9CLHdFQUF3RSw0RUFBNEUsK0VBQStFLG9DQUFvQyxFQUFFLG9EQUFvRCxTQUFTLG9DQUFvQyxVQUFVLDBEQUEwRCxLQUFLLEtBQUssMERBQTBELEtBQUssNERBQTRELHdCQUF3QixLQUFLLEtBQUssV0FBVyx3QkFBd0IsZ0RBQWdELDJDQUEyQyw4RkFBOEYsa0JBQWtCLFFBQVEsUUFBUSwrQkFBK0IsNkNBQTZDLGNBQWMsSUFBSSxnQkFBZ0Isb0JBQW9CLGNBQWMsd0NBQXdDLHlCQUF5QiwwRUFBMEUsaUNBQWlDLG1DQUFtQyxtQ0FBbUMsMkJBQTJCLDZCQUE2QixrQkFBa0IscUJBQXFCLFNBQVMsU0FBUyxTQUFTLDJEQUEyRCwrWkFBK1osZUFBZSw0RUFBNEUsdUJBQXVCLFdBQVcseUNBQXlDLHdDQUF3QywyQ0FBMkMsZUFBZSxXQUFXLGtCQUFrQixhQUFhLGdCQUFnQixnQkFBZ0IsZ0JBQWdCLGdCQUFnQixrQkFBa0Isa0JBQWtCLGtCQUFrQixvQkFBb0IsMEtBQTBLLDJFQUEyRSxnQ0FBZ0MsZ0NBQWdDLGtDQUFrQyxrQ0FBa0MseUJBQXlCLGtCQUFrQixtQkFBbUIscUJBQXFCLGtCQUFrQiwyQ0FBMkMsY0FBYyxrQkFBa0IsME5BQTBOLGlCQUFpQixnRUFBZ0UsY0FBYyxTQUFTLHlDQUF5QyxjQUFjLFNBQVMsK0NBQStDLGVBQWUsaUJBQWlCLEtBQUssY0FBYyxTQUFTLGlCQUFpQixxRkFBcUYsbUJBQW1CLHVDQUF1QyxlQUFlLCtFQUErRSxpQkFBaUIsMEJBQTBCLHNCQUFzQixFQUFFLEVBQUUsc0JBQXNCLDZCQUE2QixpQkFBaUIsV0FBVywyREFBMkQsZUFBZSxVQUFVLFdBQVcsTUFBTSxXQUFXLE1BQU0sYUFBYSxNQUFNLHVOQUF1TixNQUFNLDRCQUE0QixNQUFNLFlBQVksU0FBUyxlQUFlLHdEQUF3RCxjQUFjLFVBQVUsdURBQXVELGlCQUFpQixVQUFVLElBQUksaUJBQWlCLFFBQVEsT0FBTywyT0FBMk8sZUFBZSxpRUFBaUUsZUFBZSxZQUFZLGNBQWMsdUJBQXVCLEVBQUUsRUFBRSxtQkFBbUIsc0VBQXNFLFNBQVMsRUFBRSxvQkFBb0IsUUFBUSxTQUFTLG1CQUFtQixZQUFZLGVBQWUsbUJBQW1CLFlBQVksZ0VBQWdFLFlBQVksZUFBZSxZQUFZLG1EQUFtRCxtQkFBbUIsZUFBZSxZQUFZLG9CQUFvQixpREFBaUQsSUFBSSxlQUFlLFNBQVMscUJBQXFCLGlCQUFpQiwwQkFBMEIsaUJBQWlCLGdCQUFnQixXQUFXLGlCQUFpQixvYUFBb2EsT0FBTyxtQkFBbUIscUdBQXFHLEtBQUssaUJBQWlCLGlFQUFpRSxPQUFPLCtDQUErQyw2REFBNkQsd0JBQXdCLG1CQUFtQixpQ0FBaUMsS0FBSyxpQkFBaUIsK0VBQStFLE9BQU8sd0JBQXdCLHFCQUFxQixpQ0FBaUMsS0FBSyxpQkFBaUIsK0VBQStFLE9BQU8sNEJBQTRCLGVBQWUsaUJBQWlCLDJGQUEyRixrQkFBa0IsZUFBZSxhQUFhLCtFQUErRSxlQUFlLHFCQUFxQiw4QkFBOEIsZ0NBQWdDLGlFQUFpRSx5RkFBeUYsb0JBQW9CLGtDQUFrQywrQkFBK0Isb0JBQW9CLGlCQUFpQix1QkFBdUIsNkJBQTZCLHdCQUF3QixHQUFHLG9CQUFvQixTQUFTLHNCQUFzQixPQUFPLHlCQUF5QixvQ0FBb0MsZUFBZSxlQUFlLGVBQWUsc0JBQXNCLGVBQWUsd0JBQXdCLG1GQUFtRixlQUFlLDhFQUE4RSxJQUFJLCtCQUErQixTQUFTLGVBQWUsa0JBQWtCLGVBQWUsZ0NBQWdDLDRDQUE0QyxFQUFFLDZCQUE2Qix1a0JBQXVrQiw2QkFBNkIsd0dBQXdHLDBEQUEwRCx3RkFBd0YscU1BQXFNLG1CQUFtQixvRkFBb0YscUJBQXFCLGtCQUFrQixLQUFLLFlBQVksV0FBVyxtQkFBbUIsUUFBUSxXQUFXLDRHQUE0RyxLQUFLLDBCQUEwQixXQUFXLEtBQUssbUJBQW1CLDhDQUE4QyxPQUFPLGtDQUFrQywyQkFBMkIsbUJBQW1CLDJEQUEyRCx1Q0FBdUMsT0FBTyxtQ0FBbUMscUJBQXFCLFlBQVksWUFBWSw4QkFBOEIsU0FBUyxpQ0FBaUMsT0FBTyxJQUFJLG9CQUFvQixrRkFBa0YsaUJBQWlCLE1BQU0sbUJBQW1CLHVDQUF1QyxjQUFjLFFBQVEsZ0JBQWdCLHM4QkFBczhCLG1CQUFtQiwwQkFBMEIsK01BQStNLG1CQUFtQixrREFBa0Qsc0JBQXNCLCtJQUErSSwrREFBK0Qsc0RBQXNELGVBQWUsZ0NBQWdDLFVBQVUsMEtBQTBLLGtCQUFrQix5dkZBQXl2RixlQUFlLHFIQUFxSCxlQUFlLFlBQVksZUFBZSw4SEFBOEgsb0JBQW9CLGVBQWUsWUFBWSx1QkFBdUIsa0JBQWtCLDZCQUE2Qix3SUFBd0ksUUFBUSxhQUFhLGdCQUFnQix5RUFBeUUsV0FBVyxLQUFLLFdBQVcsMkJBQTJCLGtCQUFrQix5QkFBeUIsc0ZBQXNGLFFBQVEsV0FBVyxrQ0FBa0MsTUFBTSw0Q0FBNEMsTUFBTSwwREFBMEQsVUFBVSxtQkFBbUIsb0JBQW9CLE1BQU0sSUFBSSxZQUFZLFFBQVEsbUZBQW1GLFdBQVcsY0FBYyxpQkFBaUIsa0JBQWtCLHdCQUF3QixrQkFBa0Isd0JBQXdCLGlCQUFpQiw2VEFBNlQsTUFBTSxhQUFhLGlCQUFpQiwwREFBMEQsU0FBUywwR0FBMEcsVUFBVSxVQUFVLG9DQUFvQyxlQUFlLE9BQU8saUZBQWlGLFNBQVMsTUFBTSw0QkFBNEIsY0FBYyxnQkFBZ0IsMEVBQTBFLFFBQVEsaUJBQWlCLEtBQUssVUFBVSxRQUFRLHNCQUFzQixLQUFLLG9DQUFvQyxlQUFlLGdCQUFnQiw2RkFBNkYsY0FBYyxTQUFTLGNBQWMsU0FBUyxlQUFlLHNCQUFzQiwyS0FBMkssd0lBQXdJLHNCQUFzQiwwQkFBMEIseUJBQXlCLHVCQUF1Qix3SEFBd0gsNEJBQTRCLHVCQUF1Qiw4SEFBOEgscUJBQXFCLGlCQUFpQixJQUFJLHVCQUF1QiwwREFBMEQsK0JBQStCLGdDQUFnQyxrQkFBa0IsS0FBSyxnQkFBZ0IsbUJBQW1CLEtBQUssaUtBQWlLLHVHQUF1Ryx1QkFBdUIseUlBQXlJLHVCQUF1QixzQ0FBc0Msc0JBQXNCLEtBQUssZUFBZSxhQUFhLEtBQUssZ0JBQWdCLGFBQWEsS0FBSyw4Q0FBOEMsYUFBYSxLQUFLLDBCQUEwQixnRUFBZ0UsYUFBYSxLQUFLLE9BQU8sT0FBTywyTUFBMk0sS0FBSyxrWkFBa1osS0FBSyxnRUFBZ0UsZUFBZSx1QkFBdUIsb0VBQW9FLGNBQWMsVUFBVSxjQUFjLEtBQUssZ0JBQWdCLFVBQVUsdUJBQXVCLCtCQUErQiw4SUFBOEksc0hBQXNILGtDQUFrQyxxQkFBcUIsdURBQXVELG1CQUFtQixrRkFBa0YsYUFBYSxLQUFLLCtHQUErRyxhQUFhLEtBQUssdUdBQXVHLGFBQWEsS0FBSyw2Q0FBNkMsYUFBYSxLQUFLLG1CQUFtQiwrREFBK0Qsb0JBQW9CLDhGQUE4RixzQkFBc0IsYUFBYSxLQUFLLHNCQUFzQiw4REFBOEQsMERBQTBELDBFQUEwRSxpQkFBaUIsVUFBVSw4Q0FBOEMscUNBQXFDLHVEQUF1RCxrQkFBa0IsZUFBZSwyREFBMkQsY0FBYyxtSkFBbUosZUFBZSw4Q0FBOEMsOENBQThDLHFCQUFxQiw0R0FBNEcsb0JBQW9CLEdBQUcsb0JBQW9CLGVBQWUsUUFBUSxlQUFlLHNCQUFzQixpQkFBaUIseUJBQXlCLFVBQVUsT0FBTyxPQUFPLDRCQUE0QixRQUFRLHFDQUFxQyxrQ0FBa0Msb0NBQW9DLEtBQUssVUFBVSx3REFBd0QsY0FBYyx1REFBdUQsZUFBZSxxQ0FBcUMsU0FBUywyQkFBMkIsbUJBQW1CLDBGQUEwRixlQUFlLG1FQUFtRSxpQkFBaUIsNEJBQTRCLGlCQUFpQiwwQ0FBMEMsNERBQTRELDZDQUE2QyxpQkFBaUIsb0JBQW9CLHVFQUF1RSxzQ0FBc0MsZ0NBQWdDLFFBQVEsV0FBVyxLQUFLLFdBQVcseUNBQXlDLFNBQVMsZUFBZSxLQUFLLGdCQUFnQixnQkFBZ0IsU0FBUyxpQkFBaUIsY0FBYyxRQUFRLEVBQUUsRUFBRSxtQkFBbUIsOENBQThDLG1CQUFtQixJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsa0JBQWtCLGdCQUFnQixRQUFRLGVBQWUsU0FBUyxTQUFTLGVBQWUsdUdBQXVHLHlCQUF5QixpQ0FBaUMsRUFBRSxJQUFJLHFEQUFxRCxTQUFTLEtBQUssdUJBQXVCLFdBQVcsaUJBQWlCLFNBQVMsZUFBZSw4Q0FBOEMsK0pBQStKLDhGQUE4RixtQkFBbUIsK0RBQStELDhEQUE4RCwwQ0FBMEMsRUFBRSw0S0FBNEsscUdBQXFHLG9CQUFvQixpQkFBaUIsaUJBQWlCLFNBQVMsd0ZBQXdGLFFBQVEsMFZBQTBWLE1BQU0sT0FBTyxlQUFlLHNCQUFzQixtQkFBbUIsY0FBYyw2REFBNkQsU0FBUyxvUEFBb1AsMnpCQUEyekIsaUJBQWlCLHNCQUFzQixxQkFBcUIsOERBQThELGtFQUFrRSxxQ0FBcUMsOEhBQThILEVBQUUsbUNBQW1DLGtIQUFrSCxpQkFBaUIsaUJBQWlCLGNBQWMsdUJBQXVCLElBQUksRUFBRSxZQUFZLGFBQWEsWUFBWSxhQUFhLFlBQVksYUFBYSxZQUFZLG9DQUFvQyxnQkFBZ0IsdURBQXVELGtCQUFrQixxQkFBcUIsa0dBQWtHLHFCQUFxQix5QkFBeUIsaUJBQWlCLCtCQUErQixtQkFBbUIsV0FBVyxrQkFBa0IsdUJBQXVCLHdCQUF3QixTQUFTLHdJQUF3SSwySUFBMkksZUFBZSwwQ0FBMEMsbUJBQW1CLFNBQVMsZ0JBQWdCLGtDQUFrQyxVQUFVLHFCQUFxQixzV0FBc1cscUJBQXFCLHVCQUF1QixlQUFlLCtDQUErQyxpQkFBaUIsa0JBQWtCLHViQUF1YiwwQ0FBMEMsNkVBQTZFLGlCQUFpQixtQkFBbUIsa0JBQWtCLGlhQUFpYSwwQ0FBMEMsSUFBSSx5QkFBeUIsUUFBUSx5Q0FBeUMsOENBQThDLG9DQUFvQyxVQUFVLGdDQUFnQyx5RkFBeUYsU0FBUyxzR0FBc0csbUZBQW1GLFNBQVMsNklBQTZJLFNBQVMsMkRBQTJELGlCQUFpQix3REFBd0QsbUNBQW1DLGlCQUFpQixNQUFNLDBEQUEwRCx3REFBd0Qsd0RBQXdELDJEQUEyRCxZQUFZLFFBQVEsV0FBVyxRQUFRLFlBQVksUUFBUSxZQUFZLFFBQVEsbUJBQW1CLFFBQVEsd0RBQXdELHlEQUF5RCxxQkFBcUIsZ0NBQWdDLG1CQUFtQixtQ0FBbUMsZUFBZSx5QkFBeUIsdUJBQXVCLG1CQUFtQiw2RUFBNkUsbUZBQW1GLEdBQUcsbUJBQW1CLGlCQUFpQixpQ0FBaUMsZ0JBQWdCLHdCQUF3Qiw0QkFBNEIsZ0JBQWdCLE9BQU8sNkJBQTZCLDBEQUEwRCxpQkFBaUIsa0NBQWtDLG1CQUFtQix5Q0FBeUMsU0FBUyxLQUFLLGlCQUFpQixnQkFBZ0IsaUJBQWlCLFNBQVMsWUFBWSxzRUFBc0UseUJBQXlCLGVBQWUscUNBQXFDLGVBQWUsS0FBSyxPQUFPLGlEQUFpRCxLQUFLLE9BQU8seUVBQXlFLGlCQUFpQiwrREFBK0QseURBQXlELGVBQWUsNkZBQTZGLHFCQUFxQixlQUFlLDZDQUE2QywwQkFBMEIsMENBQTBDLE1BQU0sbURBQW1ELE1BQU0sZ0NBQWdDLFlBQVksZ0JBQWdCLE1BQU0sMkJBQTJCLE1BQU0sNERBQTRELE1BQU0sNkJBQTZCLE1BQU0scUdBQXFHLE1BQU0sNkJBQTZCLE1BQU0sdUVBQXVFLDBVQUEwVSxlQUFlLGdCQUFnQixHQUFHLGdCQUFnQiw2QkFBNkIsT0FBTyxxQkFBcUIsT0FBTyxzQkFBc0IsZUFBZSxtQkFBbUIsNkJBQTZCLGNBQWMscUlBQXFJLHlFQUF5RSxTQUFTLGdCQUFnQix5RUFBeUUsU0FBUyw4RkFBOEYsU0FBUyxjQUFjLGlCQUFpQixjQUFjLFNBQVMsZ0VBQWdFLGVBQWUsNEJBQTRCLCtCQUErQixtQkFBbUIsd0NBQXdDLGVBQWUsaUNBQWlDLG1CQUFtQixLQUFLLFNBQVMsRUFBRSxrQkFBa0Isb0lBQW9JLFlBQVkscUJBQXFCLGNBQWMsMkJBQTJCLFNBQVMsRUFBRSxxQkFBcUIsYUFBYSxjQUFjLGlCQUFpQixPQUFPLFNBQVMsRUFBRSxRQUFRLElBQUksWUFBWSxXQUFXLHlCQUF5Qiw2RUFBNkUsUUFBUSxVQUFVLG9CQUFvQiwyQ0FBMkMsaUVBQWlFLGVBQWUsdUJBQXVCLGFBQWEsU0FBUyxFQUFFLFVBQVUsT0FBTyxNQUFNLHlCQUF5QixzQkFBc0IsTUFBTSxXQUFXLEtBQUsscUJBQXFCLE9BQU8saUJBQWlCLFNBQVMsRUFBRSxPQUFPLDRCQUE0QixrQ0FBa0MsZUFBZSxrQkFBa0IsZ0NBQWdDLCtCQUErQixhQUFhLDhEQUE4RCx1QkFBdUIsOENBQThDLDRGQUE0RixXQUFXLHNDQUFzQyxlQUFlLHFCQUFxQixTQUFTLEVBQUUseURBQXlELFNBQVMsU0FBUyxlQUFlLDhEQUE4RCxlQUFlLGdCQUFnQixpQkFBaUIsZ0NBQWdDLGlCQUFpQixzQkFBc0IsTUFBTSxvQ0FBb0MsWUFBWSxnQ0FBZ0MscUJBQXFCLHVCQUF1QixpQkFBaUIsa0JBQWtCLFNBQVMsc0VBQXNFLHdCQUF3QiwwQ0FBMEMsWUFBWSxzQkFBc0IsbUNBQW1DLFdBQVcsR0FBRyxpRUFBaUUsOEZBQThGLGNBQWMsT0FBTywyQ0FBMkMsZUFBZSw4Q0FBOEMscUJBQXFCLEVBQUUsOEJBQThCLGNBQWMsdUJBQXVCLG1DQUFtQyxTQUFTLHFCQUFxQixZQUFZLFdBQVcsZ0JBQWdCLFdBQVcsa0JBQWtCLHVFQUF1RSxjQUFjLFlBQVksaUJBQWlCLCtDQUErQyxZQUFZLG1CQUFtQiwwQkFBMEIsZUFBZSxjQUFjLGlCQUFpQixpQ0FBaUMsaUJBQWlCLHVDQUF1QyxjQUFjLFdBQVcsc0JBQXNCLGdDQUFnQywyREFBMkQsbUJBQW1CLGVBQWUsaURBQWlELG1CQUFtQix3RUFBd0UsK0JBQStCLHNDQUFzQyxtREFBbUQsS0FBSyxnRUFBZ0UsMENBQTBDLHlCQUF5QixRQUFRLGdDQUFnQyxhQUFhLHlCQUF5QixRQUFRLGdDQUFnQyxFQUFFLGlCQUFpQiwrQkFBK0Isc0NBQXNDLGVBQWUsZUFBZSxJQUFJLDhCQUE4QixTQUFTLHlFQUF5RSxTQUFTLFlBQVksY0FBYyxpQ0FBaUMsU0FBUyxpQkFBaUIsZUFBZSxzQ0FBc0MsaUJBQWlCLGVBQWUsU0FBUywyQ0FBMkMsaUJBQWlCLHNDQUFzQyxpQkFBaUIsc0NBQXNDLDhGQUE4Riw4QkFBOEIsTUFBTSxlQUFlLGdCQUFnQixNQUFNLGtCQUFrQixrREFBa0QsZ0JBQWdCLGtCQUFrQixLQUFLLFNBQVMsb0JBQW9CLFlBQVksY0FBYyxrQkFBa0IsU0FBUywwREFBMEQsU0FBUyxnQkFBZ0IsMkNBQTJDLGtCQUFrQiw4SEFBOEgsY0FBYyxxREFBcUQsb0JBQW9CLDZFQUE2RSxvQkFBb0IsYUFBYSw0TkFBNE4sb0JBQW9CLHNMQUFzTCxzQkFBc0IsK0VBQStFLGtCQUFrQiw2R0FBNkcsaUNBQWlDLG1CQUFtQiwwRUFBMEUsMkNBQTJDLDZCQUE2Qix1REFBdUQsaURBQWlELHdDQUF3QyxRQUFRLFlBQVksb0JBQW9CLDBCQUEwQix5R0FBeUcsaUNBQWlDLG1CQUFtQix3Q0FBd0Msd0NBQXdDLCtCQUErQixtREFBbUQsbURBQW1ELDBDQUEwQyxRQUFRLFlBQVksc0JBQXNCLDBHQUEwRyxpQ0FBaUMsbUJBQW1CLDJEQUEyRCwyREFBMkQsaUNBQWlDLG9EQUFvRCxxREFBcUQsNENBQTRDLFFBQVEsWUFBWSx5QkFBeUIsSUFBSSxLQUFLLDBCQUEwQiw4R0FBOEcsbUJBQW1CLFVBQVUsZ0JBQWdCLFNBQVMsRUFBRSxjQUFjLG1CQUFtQixjQUFjLHNEQUFzRCxTQUFTLHlGQUF5RixtREFBbUQsUUFBUSxPQUFPLE1BQU0sbUJBQW1CLDRIQUE0SCxZQUFZLFVBQVUsWUFBWSxTQUFTLEVBQUUsdUhBQXVILG9EQUFvRCxRQUFRLEtBQUssT0FBTyxNQUFNLG1CQUFtQixnQ0FBZ0MsWUFBWSwrQkFBK0IsaUNBQWlDLHVDQUF1QyxxQkFBcUIsS0FBSyxtQ0FBbUMsb0JBQW9CLGFBQWEsZ0JBQWdCLE1BQU0sNkVBQTZFLDRDQUE0QyxhQUFhLEtBQUssV0FBVyxzRUFBc0UscUJBQXFCLFdBQVcsV0FBVyxnSUFBZ0ksZ0NBQWdDLGNBQWMsZ0JBQWdCLFVBQVUsU0FBUyxrREFBa0QseUJBQXlCLCtCQUErQixrREFBa0Qsa0JBQWtCLGdCQUFnQixtQ0FBbUMsdUJBQXVCLGFBQWEsZ0JBQWdCLE1BQU0sNkVBQTZFLHNDQUFzQyxhQUFhLEtBQUssUUFBUSxvRkFBb0YscUJBQXFCLFdBQVcsUUFBUSw4SUFBOEksZ0NBQWdDLGNBQWMsZ0JBQWdCLG9CQUFvQixtREFBbUQsMENBQTBDLFFBQVEsOExBQThMLFVBQVUsaUJBQWlCLFNBQVMsMEJBQTBCLDJCQUEyQiw4QkFBOEIsV0FBVyw4QkFBOEIsZUFBZSxlQUFlLDJFQUEyRSwwQ0FBMEMsaUJBQWlCLGlCQUFpQixtREFBbUQsdUhBQXVILEVBQUUsZUFBZSxPQUFPLG1EQUFtRCxtQkFBbUIsb0JBQW9CLHdCQUF3Qix5QkFBeUIsZ0JBQWdCLHFGQUFxRix5QkFBeUIsbUJBQW1CLDBEQUEwRCxjQUFjLDBDQUEwQyxpQkFBaUIsa0NBQWtDLG9DQUFvQyxrQkFBa0IsaUNBQWlDLEdBQUcsT0FBTyxpRUFBaUUsbUNBQW1DLGdCQUFnQiwwQkFBMEIsV0FBVyxHQUFHLCtGQUErRixpQkFBaUIsT0FBTyw0RUFBNEUsVUFBVSxjQUFjLE9BQU8sU0FBUyxxQkFBcUIscUJBQXFCLE1BQU0sb0JBQW9CLE1BQU0sOERBQThELGFBQWEsc0JBQXNCLGlCQUFpQixzQ0FBc0Msa0JBQWtCLCtHQUErRyxhQUFhLGtCQUFrQix3QkFBd0IsRUFBRSxzQ0FBc0MsMkJBQTJCLDRDQUE0QywyREFBMkQsRUFBRSxHQUFHLFlBQVksa0JBQWtCLDJDQUEyQyxnQkFBZ0IsUUFBUSxJQUFJLFFBQVEsa0NBQWtDLDRFQUE0RSxNQUFNLE1BQU0sUUFBUSxjQUFjLHlHQUF5RyxRQUFRLGlFQUFpRSxzQ0FBc0MsMERBQTBELHVFQUF1RSxxSUFBcUksaUJBQWlCLDhDQUE4QyxVQUFVLGlCQUFpQixrQkFBa0IscUNBQXFDLFdBQVcsZUFBZSx1QkFBdUIsaUJBQWlCLG9DQUFvQyxjQUFjLDBCQUEwQixjQUFjLDBCQUEwQix1QkFBdUIsZUFBZSxrQkFBa0Isd0dBQXdHLGVBQWUsMkNBQTJDLGVBQWUsOERBQThELGNBQWMsa0NBQWtDLGVBQWUsOEJBQThCLFlBQVksZUFBZSxZQUFZLFNBQVMsRUFBRSxlQUFlLHNCQUFzQiw4REFBOEQsZ05BQWdOLDZCQUE2Qix3QkFBd0IsMkJBQTJCLFNBQVMsZUFBZSxLQUFLLGlCQUFpQixFQUFFLDZDQUE2QyxXQUFXLHNDQUFzQyxZQUFZLDBFQUEwRSxjQUFjLG9CQUFvQixpQkFBaUIscUJBQXFCLFlBQVksdUJBQXVCLCtCQUErQixTQUFTLHlCQUF5QiwrSkFBK0osZUFBZSxPQUFPLGdDQUFnQywrREFBK0Qsd0RBQXdELHFCQUFxQixLQUFLLFFBQVEsR0FBRyxzREFBc0Qsd0NBQXdDLG9CQUFvQix1RkFBdUYsZ0JBQWdCLFVBQVUsU0FBUyxjQUFjLDRCQUE0Qix1SEFBdUgsY0FBYyxhQUFhLGNBQWMsbUJBQW1CLHVEQUF1RCxlQUFlLE9BQU8sc0JBQXNCLFNBQVMsRUFBRSxjQUFjLG9DQUFvQyxNQUFNLHlDQUF5QyxjQUFjLE9BQU8sdUVBQXVFLHVEQUF1RCxjQUFjLGNBQWMsbUJBQW1CLGdDQUFnQyxlQUFlLHlDQUF5QyxzQkFBc0IsS0FBSyxhQUFhLDJDQUEyQyxvQkFBb0IsR0FBRywwR0FBMEcsOENBQThDLFVBQVUsY0FBYyxPQUFPLHdEQUF3RCxlQUFlLFNBQVMsMkpBQTJKLGVBQWUsaUNBQWlDLDBDQUEwQywrQkFBK0IsOEJBQThCLGVBQWUsNEJBQTRCLHNDQUFzQyxtQkFBbUIsK0RBQStELDRCQUE0QixpQkFBaUIsVUFBVSxFQUFFLGdCQUFnQixnQkFBZ0Isb0hBQW9ILElBQUksV0FBVyxtQkFBbUIsaUJBQWlCLGtDQUFrQyxlQUFlLHFCQUFxQixtQkFBbUIsY0FBYyxnQ0FBZ0Msd0JBQXdCLDhCQUE4QixhQUFhLGFBQWEsYUFBYSx1QkFBdUIsK0JBQStCLDRDQUE0QyxLQUFLLFNBQVMsNkJBQTZCLEdBQUcseUJBQXlCLHFDQUFxQyxtQkFBbUIsOEJBQThCLGlIQUFpSCxpQkFBaUIsb0JBQW9CLHdCQUF3QixTQUFTLFFBQVEsNEhBQTRILG1EQUFtRCw0REFBNEQsUUFBUSxpSUFBaUksbURBQW1ELFNBQVMsdUJBQXVCLGtGQUFrRixvRUFBb0UsMERBQTBELGVBQWUscUJBQXFCLGdDQUFnQyx3QkFBd0IsK0NBQStDLGFBQWEsZUFBZSxlQUFlLDRCQUE0QixhQUFhLDJHQUEyRyxZQUFZLG1CQUFtQixxQkFBcUIsTUFBTSxrQ0FBa0MsTUFBTSxXQUFXLG1DQUFtQywrSEFBK0gsdUJBQXVCLGVBQWUsMkRBQTJELDBCQUEwQixTQUFTLG1CQUFtQixrQkFBa0Isc0JBQXNCLDZHQUE2RyxxQkFBcUIsdUNBQXVDLG1CQUFtQixvQkFBb0IsYUFBYSxFQUFFLGVBQWUsb0JBQW9CLFVBQVUsSUFBSSxVQUFVLGVBQWUsU0FBUyxVQUFVLGVBQWUsY0FBYyxvQkFBb0IsZUFBZSxXQUFXLHlCQUF5QixRQUFRLGFBQWEsT0FBTyxJQUFJLElBQUksUUFBUSxTQUFTLDhDQUE4Qyw4RUFBOEUsR0FBRyxxQkFBcUIsd0RBQXdELHVCQUF1Qiw2QkFBNkIsd0JBQXdCLE9BQU8sbUhBQW1ILHNCQUFzQiw4SEFBOEgsaUJBQWlCLHFDQUFxQyxtQkFBbUIsZUFBZSxNQUFNLElBQUksbUJBQW1CLDJCQUEyQixTQUFTLFVBQVUsUUFBUSxtREFBbUQsU0FBUyxtQkFBbUIsU0FBUyxXQUFXLG1CQUFtQiwyRUFBMkUsVUFBVSxhQUFhLGlCQUFpQixZQUFZLG1CQUFtQixpSUFBaUksbUJBQW1CLGdCQUFnQiw0QkFBNEIsU0FBUyxpREFBaUQsYUFBYSxjQUFjLGVBQWUsY0FBYyxZQUFZLFdBQVcsZUFBZSxpQkFBaUIsU0FBUyxpQkFBaUIsT0FBTyxtQkFBbUIsYUFBYSxHQUFHLFNBQVMsT0FBTyxPQUFPLEdBQUcsa0JBQWtCLGVBQWUsc0NBQXNDLE9BQU8sUUFBUSxvQ0FBb0MsTUFBTSxxQ0FBcUMsU0FBUyxNQUFNLEtBQUssYUFBYSw4Q0FBOEMsOEVBQThFLDhGQUE4Riw0Q0FBNEMsNEVBQTRFLGVBQWUscUJBQXFCLG1CQUFtQiwyRkFBMkYsWUFBWSxTQUFTLG1CQUFtQixRQUFRLFNBQVMsa0NBQWtDLGtEQUFrRCxlQUFlLGtDQUFrQyxpQkFBaUIsV0FBVyxlQUFlLGdCQUFnQiw2QkFBNkIsdUJBQXVCLDhCQUE4QixrQ0FBa0MscUJBQXFCLFVBQVUsdUNBQXVDLGtKQUFrSixjQUFjLDBCQUEwQixxQkFBcUIsV0FBVyxvQ0FBb0MsZUFBZSxzQkFBc0IscUJBQXFCLFdBQVcsb0JBQW9CLDJCQUEyQix5SEFBeUgsaUJBQWlCLGtCQUFrQixpQkFBaUIsZUFBZSxpQkFBaUIsbUJBQW1CLGlCQUFpQixtQkFBbUIsaUJBQWlCLHlCQUF5QixlQUFlLGtCQUFrQixrQ0FBa0MsNkNBQTZDLGdCQUFnQixtQkFBbUIseURBQXlELGVBQWUsaUJBQWlCLFdBQVcsb0JBQW9CLHNCQUFzQiwyREFBMkQsaUJBQWlCLFdBQVcsb0JBQW9CLHNCQUFzQixvQ0FBb0MsYUFBYSxPQUFPLElBQUksSUFBSSxRQUFRLFFBQVEsK0JBQStCLG1CQUFtQix1R0FBdUcscUJBQXFCLHdKQUF3Six1QkFBdUIsVUFBVSxtQkFBbUIsZUFBZSxtQkFBbUIsSUFBSSxnQkFBZ0IsNkVBQTZFLG1CQUFtQix5REFBeUQsV0FBVyxtQkFBbUIsK0JBQStCLFlBQVksV0FBVyxnQkFBZ0IsYUFBYSx1Q0FBdUMsV0FBVyxxQkFBcUIsS0FBSyxnQkFBZ0IscUJBQXFCLFNBQVMsUUFBUSxpQkFBaUIsNEJBQTRCLE9BQU8sUUFBUSx5REFBeUQsZUFBZSxxQkFBcUIsaUNBQWlDLGtCQUFrQixrQ0FBa0Msa0JBQWtCLEVBQUUsZUFBZSxzQkFBc0IscUJBQXFCLFNBQVMsVUFBVSxrREFBa0QsOEVBQThFLFdBQVcsUUFBUSxrREFBa0QsOEVBQThFLFdBQVcsaUVBQWlFLGVBQWUsWUFBWSxpRUFBaUUsT0FBTyxjQUFjLGNBQWMsY0FBYywwQkFBMEIsY0FBYywwQkFBMEIsZUFBZSxtQkFBbUIsU0FBUyxFQUFFLGNBQWMsNENBQTRDLG1DQUFtQyxXQUFXLGFBQWEsT0FBTyxZQUFZLG1CQUFtQixXQUFXLEdBQUcscUZBQXFGLDZEQUE2RCxtQkFBbUIsZUFBZSxxQkFBcUIsT0FBTyxzRkFBc0YsaUJBQWlCLEtBQUssa0JBQWtCLDhFQUE4RSxtQ0FBbUMsbUZBQW1GLFVBQVUsU0FBUyx3REFBd0QsU0FBUyxxQkFBcUIsTUFBTSx3RkFBd0YsUUFBUSx5QkFBeUIsdUNBQXVDLGVBQWUsa0JBQWtCLGdDQUFnQyxpQkFBaUIsU0FBUyxnQkFBZ0IsdURBQXVELG1CQUFtQixtQkFBbUIsY0FBYyx3Q0FBd0MsUUFBUSx1WEFBdVgsS0FBSyxnREFBZ0Qsa0RBQWtELGdFQUFnRSwrREFBK0QsK0JBQStCLHlCQUF5QixrQ0FBa0MsWUFBWSx1QkFBdUIsV0FBVyxvQkFBb0IsVUFBVSxPQUFPLE9BQU8sSUFBSSxJQUFJLFFBQVEsUUFBUSwrQkFBK0IsNEJBQTRCLFdBQVcsZUFBZSxXQUFXLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxTQUFTLFNBQVMsZ0RBQWdELDZFQUE2RSxxREFBcUQsb0JBQW9CLDZCQUE2QixXQUFXLHNCQUFzQiwyQ0FBMkMsd0NBQXdDLGlEQUFpRCxvQkFBb0IsMEJBQTBCLGFBQWEsb0VBQW9FLHNDQUFzQyxnQkFBZ0IsT0FBTyxrQ0FBa0MsTUFBTSxLQUFLLHVDQUF1Qyx1QkFBdUIsa0JBQWtCLE9BQU8sdUJBQXVCLGlFQUFpRSxlQUFlLCtCQUErQixrQkFBa0IsaUNBQWlDLE9BQU8sY0FBYyxnR0FBZ0csNENBQTRDLHlCQUF5Qix3RkFBd0YsV0FBVyw4QkFBOEIsT0FBTyxvRkFBb0YsNERBQTRELDRDQUE0Qyw0Q0FBNEMsS0FBSyx1TEFBdUwsY0FBYyxpREFBaUQscUNBQXFDLDBCQUEwQixxQ0FBcUMsc0NBQXNDLDJIQUEySCx1QkFBdUIsb0NBQW9DLEtBQUssdUxBQXVMLGNBQWMsaURBQWlELFdBQVcsc0RBQXNELDBCQUEwQixxQ0FBcUMsc0NBQXNDLDJIQUEySCxXQUFXLG1FQUFtRSxxQ0FBcUMscUJBQXFCLHlDQUF5QyxpRUFBaUUsUUFBUSxnQ0FBZ0Msb0JBQW9CLG1CQUFtQixnRkFBZ0YscUNBQXFDLG9CQUFvQixtQkFBbUIsd0ZBQXdGLGtDQUFrQyxvQkFBb0IsbUJBQW1CLDhFQUE4RSwyQkFBMkIsaUtBQWlLLHFCQUFxQiw4T0FBOE8saUJBQWlCLFFBQVEsOEJBQThCLDBCQUEwQiwrQ0FBK0Msa0NBQWtDLFNBQVMsZUFBZSxNQUFNLGVBQWUsaUJBQWlCLGVBQWUsTUFBTSxpQkFBaUIsSUFBSSwrQkFBK0IsdUJBQXVCLEVBQUUsU0FBUyxzQkFBc0IsUUFBUSxHQUFHLG1CQUFtQixJQUFJLDZCQUE2QixnRUFBZ0UsRUFBRSxTQUFTLHNCQUFzQixRQUFRLEdBQUcsbUJBQW1CLGlDQUFpQyxhQUFhLHVCQUF1QixRQUFRLEdBQUcsZUFBZSx3QkFBd0IscUJBQXFCLHNDQUFzQyx5QkFBeUIsY0FBYyxxQkFBcUIsWUFBWSx1QkFBdUIsV0FBVyxrQkFBa0IseUVBQXlFLDRFQUE0RSxjQUFjLGdDQUFnQyw2QkFBNkIsRUFBRSxFQUFFLDJCQUEyQixxQkFBcUIsa0RBQWtELHVCQUF1QixXQUFXLFlBQVksY0FBYyxTQUFTLHNDQUFzQyxTQUFTLHdIQUF3SCx1QkFBdUIsYUFBYSxhQUFhLGlMQUFpTCx1QkFBdUIsc0JBQXNCLHNFQUFzRSw2REFBNkQsdUJBQXVCLGFBQWEsc0JBQXNCLGdHQUFnRyxrQ0FBa0MscUJBQXFCLHFCQUFxQixpREFBaUQsK0NBQStDLHNFQUFzRSxxQkFBcUIscUJBQXFCLHdDQUF3QywwQkFBMEIsU0FBUyxzQ0FBc0Msa0JBQWtCLGlDQUFpQyxtQkFBbUIsK0ZBQStGLGlCQUFpQiwyQkFBMkIsdUVBQXVFLHVHQUF1RywyQkFBMkIsaUJBQWlCLCtEQUErRCxzRUFBc0UsWUFBWSxxQkFBcUIsV0FBVyx3QkFBd0IsdUNBQXVDLGdDQUFnQyw2REFBNkQsaUJBQWlCLGFBQWEsZ0NBQWdDLDJDQUEyQyxtQkFBbUIsMkZBQTJGLGlCQUFpQixZQUFZLHVEQUF1RCxLQUFLLGdFQUFnRSwyQ0FBMkMsdUJBQXVCLDZIQUE2SCx5QkFBeUIsNklBQTZJLHVCQUF1Qiw2QkFBNkIseUJBQXlCLDJOQUEyTixvcUJBQW9xQixrQkFBa0IsY0FBYyxnQ0FBZ0MsVUFBVSxnQ0FBZ0MsNkNBQTZDLGlDQUFpQyxrT0FBa08sc0JBQXNCLDRuQkFBNG5CLEtBQUssOGFBQThhLHNCQUFzQixnaUNBQWdpQyx1UUFBdVEscUJBQXFCLDZDQUE2QyxRQUFRLG1FQUFtRSxlQUFlLE9BQU8sNEJBQTRCLG1CQUFtQixpREFBaUQsbUJBQW1CLCtDQUErQyxxSUFBcUksT0FBTywrRkFBK0Ysb0NBQW9DLGtCQUFrQixnREFBZ0Qsd0VBQXdFLGdEQUFnRCxpQkFBaUIsb0NBQW9DLHlCQUF5Qiw4S0FBOEssc0JBQXNCLHNDQUFzQyx5SkFBeUosbUNBQW1DLHlMQUF5TCxxQkFBcUIsdURBQXVELDhDQUE4QywrQkFBK0IsY0FBYyxzREFBc0QsNEZBQTRGLHdCQUF3QixvS0FBb0ssU0FBUyxxRUFBcUUsa0NBQWtDLGdRQUFnUSxnQkFBZ0IsY0FBYyxvQ0FBb0MsbUhBQW1ILG1DQUFtQyx3SUFBd0ksaUJBQWlCLGFBQWEsMEJBQTBCLDZCQUE2QixpQkFBaUIsb0NBQW9DLG1CQUFtQiw4RkFBOEYsbUJBQW1CLFdBQVcsa0JBQWtCLHdDQUF3Qyx5QkFBeUIsc0JBQXNCLDBCQUEwQiwyRkFBMkYsNEdBQTRHLG1CQUFtQiw4Q0FBOEMsYUFBYSw0QkFBNEIsOEdBQThHLFNBQVMsRUFBRSxnREFBZ0QsNkJBQTZCLHdCQUF3QiwyQkFBMkIsU0FBUyxlQUFlLEtBQUssaUJBQWlCLEVBQUUseUNBQXlDLFdBQVcsc0NBQXNDLFVBQVUsb0NBQW9DLFNBQVMseURBQXlELG9GQUFvRixNQUFNLGtGQUFrRixTQUFTLEVBQUUseUNBQXlDLFVBQVUsTUFBTSxnQ0FBZ0Msb0JBQW9CLE1BQU0sMkNBQTJDLE1BQU0sNkJBQTZCLGVBQWUsbUJBQW1CLDhFQUE4RSx3QkFBd0IscURBQXFELG1EQUFtRCxtQkFBbUIsd0RBQXdELGlCQUFpQix5REFBeUQsZUFBZSxlQUFlLGlCQUFpQiw0REFBNEQsbUJBQW1CLHNEQUFzRCxLQUFLLDJEQUEyRCxjQUFjLDBFQUEwRSxNQUFNLG9CQUFvQixNQUFNLHNDQUFzQyxNQUFNLDJDQUEyQyxNQUFNLGlFQUFpRSxNQUFNLDhCQUE4QixhQUFhLHNEQUFzRCw4Q0FBOEMsaURBQWlELE1BQU0sTUFBTSwrQkFBK0Isb0VBQW9FLHNCQUFzQixhQUFhLGdIQUFnSCxNQUFNLGtEQUFrRCx1Q0FBdUMsaUJBQWlCLFFBQVEsdUJBQXVCLHNEQUFzRCx3QkFBd0IsV0FBVyxxQkFBcUIsK0hBQStILEtBQUssWUFBWSxpQkFBaUIsVUFBVSw0QkFBNEIsUUFBUSxVQUFVLDRCQUE0QixTQUFTLGtDQUFrQyx1QkFBdUIsK0VBQStFLCtCQUErQixVQUFVLHdCQUF3Qix3QkFBd0IsMEJBQTBCLHdCQUF3Qiw0QkFBNEIsd0JBQXdCLHlDQUF5QyxzQkFBc0IsdUNBQXVDLDZEQUE2RCxzQkFBc0IsbUdBQW1HLGlFQUFpRSw4QkFBOEIsSUFBSSxlQUFlLFdBQVcsWUFBWSxhQUFhLFNBQVMsOENBQThDLDBEQUEwRCxVQUFVLCtEQUErRCxpQkFBaUIsc0JBQXNCLG1DQUFtQyxzQkFBc0IseUZBQXlGLHdDQUF3QywwREFBMEQsY0FBYyxRQUFRLGVBQWUsd0NBQXdDLFFBQVEsZ0xBQWdMLEVBQUUscUNBQXFDLEtBQUssZUFBZSxZQUFZLFFBQVEsWUFBWSxVQUFVLFNBQVMsd1JBQXdSLGdPQUFnTyxvRUFBb0UsS0FBSyxlQUFlLEVBQUUsK0NBQStDLHVEQUF1RCxXQUFXLG9CQUFvQixnREFBZ0QsU0FBUywrU0FBK1MsU0FBUyx1REFBdUQsU0FBUyxxUUFBcVEsU0FBUyxrQkFBa0IsS0FBSywyQ0FBMkMsa0NBQWtDLDBEQUEwRCxzQ0FBc0MsWUFBWSw4VEFBOFQsa0VBQWtFLHNCQUFzQixLQUFLLGVBQWUsNEdBQTRHLFNBQVMsOEVBQThFLHlCQUF5QixrSEFBa0gsK0NBQStDLCtDQUErQyxnRUFBZ0Usa0ZBQWtGLDRHQUE0RywrQ0FBK0MsK0NBQStDLHlCQUF5Qiw0REFBNEQsMkJBQTJCLE9BQU8sb0VBQW9FLHVGQUF1RixvQ0FBb0Msa0JBQWtCLGdEQUFnRCx3RUFBd0UsK0JBQStCLGVBQWUsc0JBQXNCLGFBQWEsbUJBQW1CLG9EQUFvRCxtRUFBbUUseUJBQXlCLHNEQUFzRCw0RkFBNEYsaUJBQWlCLDZHQUE2RyxTQUFTLHFCQUFxQixnQ0FBZ0Msb0NBQW9DLHdDQUF3QywySkFBMkosaUJBQWlCLDBIQUEwSCxpQkFBaUIscUxBQXFMLDZCQUE2QiwwQkFBMEIsZUFBZSxXQUFXLHVCQUF1QixpQ0FBaUMsK0VBQStFLDJCQUEyQixvQkFBb0IseUJBQXlCLGlCQUFpQixxRUFBcUUsd0RBQXdELG9CQUFvQixpQkFBaUIsc0ZBQXNGLGlCQUFpQiwwQkFBMEIsc0JBQXNCLGVBQWUsU0FBUyx1Q0FBdUMsb0NBQW9DLE1BQU0seUJBQXlCLGVBQWUsU0FBUyx1Q0FBdUMsMEVBQTBFLGVBQWUsOERBQThELHVCQUF1QixTQUFTLGlHQUFpRyxtQkFBbUIsU0FBUyw2RUFBNkUsMENBQTBDLGlCQUFpQixvQkFBb0Isa0JBQWtCLE1BQU0sNEJBQTRCLE1BQU0sV0FBVyxNQUFNLHNDQUFzQyxNQUFNLGNBQWMsTUFBTSxjQUFjLE1BQU0sbUJBQW1CLE1BQU0sMkNBQTJDLE1BQU0sZ0JBQWdCLGlCQUFpQixJQUFJLGlEQUFpRCxhQUFhLGFBQWEsSUFBSSxHQUFHLGtCQUFrQixTQUFTLGVBQWUscUJBQXFCLFNBQVMsY0FBYyxTQUFTLGtCQUFrQixtQkFBbUIsSUFBSSxpREFBaUQsYUFBYSxhQUFhLElBQUksR0FBRyxrQkFBa0IseUJBQXlCLGVBQWUscUJBQXFCLElBQUksSUFBSSxTQUFTLFlBQVksU0FBUyxjQUFjLFNBQVMsa0JBQWtCLGVBQWUsb0JBQW9CLGFBQWEsa0JBQWtCLElBQUksUUFBUSxTQUFTLG1CQUFtQixtQkFBbUIsMkRBQTJELElBQUkseUJBQXlCLFNBQVMsV0FBVyxpQkFBaUIsSUFBSSxZQUFZLGFBQWEsY0FBYyx5Q0FBeUMsTUFBTSxzQkFBc0Isb0RBQW9ELFNBQVMsV0FBVyxpQkFBaUIsMkJBQTJCLHdDQUF3QyxJQUFJLFNBQVMsVUFBVSxRQUFRLDZEQUE2RCxpQ0FBaUMsUUFBUSxTQUFTLFVBQVUsb0JBQW9CLGVBQWUsNkNBQTZDLElBQUksVUFBVSw0RUFBNEUsTUFBTSwyREFBMkQsU0FBUyxrQkFBa0IsbUJBQW1CLElBQUksa0JBQWtCLG1CQUFtQixVQUFVLGlGQUFpRixpRUFBaUUsWUFBWSxXQUFXLDBDQUEwQyxnQ0FBZ0MsdUJBQXVCLGlEQUFpRCxnQkFBZ0IsV0FBVyw0REFBNEQsZUFBZSxNQUFNLGVBQWUsTUFBTSxrQkFBa0IsTUFBTSx5QkFBeUIsTUFBTSxnQkFBZ0IsTUFBTSx1QkFBdUIsTUFBTSw4RUFBOEUsTUFBTSxnQ0FBZ0Msb0JBQW9CLE9BQU8sc0ZBQXNGLGtCQUFrQixtQkFBbUIsZ0RBQWdELDhFQUE4RSxnQkFBZ0IsTUFBTSx1QkFBdUIsTUFBTSxtQkFBbUIsK0JBQStCLDJGQUEyRixPQUFPLDBHQUEwRyxpQ0FBaUMsMkJBQTJCLDhFQUE4RSxnQkFBZ0IsTUFBTSx1QkFBdUIsTUFBTSxxQkFBcUIsNERBQTRELE1BQU0sK0JBQStCLFVBQVUsT0FBTyx5SUFBeUksaUtBQWlLLE9BQU8sc1FBQXNRLHFGQUFxRiw4RUFBOEUsTUFBTSx3QkFBd0IsT0FBTyxrQkFBa0Isa0dBQWtHLCtGQUErRixRQUFRLDZGQUE2Rix5RkFBeUYsd0JBQXdCLFNBQVMsa0JBQWtCLGVBQWUsMkVBQTJFLGVBQWUsUUFBUSxFQUFFLEtBQUssaUJBQWlCLEVBQUUsNkNBQTZDLFdBQVcsMENBQTBDLGlDQUFpQyxFQUFFLDJFQUEyRSwyQkFBMkIsb0NBQW9DLG1CQUFtQixZQUFZLHFFQUFxRSxrR0FBa0csU0FBUyx1QkFBdUIsZUFBZSxvQ0FBb0MsSUFBSSxnQ0FBZ0MsU0FBUyw2QkFBNkIsMEJBQTBCLFNBQVMsa0JBQWtCLHdFQUF3RSxtQkFBbUIsY0FBYyxjQUFjLDRDQUE0QyxNQUFNLG9EQUFvRCxzQkFBc0IsU0FBUyxpQkFBaUIsS0FBSyxpQ0FBaUMsa0JBQWtCLElBQUksZ0VBQWdFLFNBQVMsa0JBQWtCLGtDQUFrQyxNQUFNLGtEQUFrRCw2Q0FBNkMsMENBQTBDLElBQUksUUFBUSxTQUFTLGtCQUFrQixNQUFNLDZCQUE2QixrRUFBa0UsTUFBTSx3QkFBd0IsTUFBTSw2QkFBNkIsTUFBTSxzR0FBc0csc0JBQXNCLGlDQUFpQyxvREFBb0QsS0FBSyxpQkFBaUIsaURBQWlELDBEQUEwRCxzQkFBc0IsTUFBTSw0Q0FBNEMsNENBQTRDLFNBQVMsa0NBQWtDLDRDQUE0QyxTQUFTLEVBQUUsb0NBQW9DLGNBQWMsd0NBQXdDLE1BQU0sK0VBQStFLHNCQUFzQixTQUFTLGlCQUFpQixpQ0FBaUMsa0JBQWtCLElBQUksK0JBQStCLGtEQUFrRCxXQUFXLGVBQWUsU0FBUyxrQkFBa0IsOEJBQThCLE1BQU0sY0FBYywrREFBK0QsTUFBTSx5QkFBeUIsTUFBTSxpQ0FBaUMsTUFBTSxpQ0FBaUMsTUFBTSx3REFBd0QsU0FBUyxhQUFhLGlEQUFpRCxVQUFVLGtCQUFrQixtQkFBbUIsY0FBYyxTQUFTLHVCQUF1QixtQkFBbUIsc0RBQXNELDhCQUE4QixVQUFVLGNBQWMsNkhBQTZILE1BQU0sb0JBQW9CLGNBQWMsdUVBQXVFLE1BQU0sbUJBQW1CLG9FQUFvRSxpR0FBaUcsU0FBUyxVQUFVLFNBQVMsNEJBQTRCLFNBQVMsVUFBVSxNQUFNLHlJQUF5SSxNQUFNLHdFQUF3RSxNQUFNLHFFQUFxRSxNQUFNLGlHQUFpRyxNQUFNLDBCQUEwQixNQUFNLDBEQUEwRCxpQkFBaUIsK0VBQStFLGVBQWUsSUFBSSxNQUFNLFNBQVMsbUJBQW1CLGlCQUFpQiwyR0FBMkcsTUFBTSxTQUFTLGtCQUFrQixpQkFBaUIsa0JBQWtCLGNBQWMsMENBQTBDLDBDQUEwQyxrRkFBa0YsbUNBQW1DLElBQUksc0JBQXNCLGNBQWMsU0FBUyx3QkFBd0IsYUFBYSxFQUFFLGlCQUFpQixrQkFBa0Isd0JBQXdCLFdBQVcsS0FBSyx1QkFBdUIsT0FBTyxTQUFTLEVBQUUsY0FBYyx1QkFBdUIscUJBQXFCLFFBQVEsTUFBTSw0QkFBNEIsUUFBUSxpREFBaUQsUUFBUSxXQUFXLGlDQUFpQyw4RUFBOEUsc0NBQXNDLFNBQVMscUJBQXFCLFlBQVksaUJBQWlCLDRCQUE0QixjQUFjLDhGQUE4RixNQUFNLG9NQUFvTSxNQUFNLGlCQUFpQiw0REFBNEQsb0NBQW9DLGlFQUFpRSxHQUFHLGdEQUFnRCxZQUFZLDBQQUEwUCxRQUFRLHlEQUF5RCxNQUFNLFlBQVksV0FBVyxvUUFBb1EsY0FBYyxTQUFTLG1EQUFtRCxNQUFNLCtEQUErRCxRQUFRLFdBQVcsd1VBQXdVLGNBQWMsU0FBUyxtREFBbUQsTUFBTSw4QkFBOEIsa0JBQWtCLGNBQWMsOEJBQThCLHlDQUF5Qyw0TkFBNE4sTUFBTSxpSEFBaUgsTUFBTSwwRUFBMEUsY0FBYyxJQUFJLFNBQVMsU0FBUyxrQkFBa0IsK0ZBQStGLE1BQU0sNkJBQTZCLDBDQUEwQyxnQ0FBZ0MsSUFBSSxjQUFjLFNBQVMsa0JBQWtCLE1BQU0saUhBQWlILG9CQUFvQixTQUFTLGlCQUFpQix5QkFBeUIscUNBQXFDLFNBQVMsRUFBRSxRQUFRLCtEQUErRCxLQUFLLE1BQU0sZ0VBQWdFLE1BQU0sOEJBQThCLE1BQU0sMEZBQTBGLE1BQU0sNEtBQTRLLE1BQU0saUNBQWlDLGlEQUFpRCw4SkFBOEosY0FBYyxTQUFTLEVBQUUsUUFBUSxjQUFjLHFEQUFxRCxNQUFNLHNCQUFzQixrQkFBa0IsaUVBQWlFLE1BQU0sd0JBQXdCLG1DQUFtQyxNQUFNLHFDQUFxQyxNQUFNLGFBQWEsYUFBYSxpQkFBaUIsRUFBRSwwQkFBMEIsYUFBYSxNQUFNLElBQUksMkhBQTJILEtBQUssY0FBYyxrRkFBa0YsK0RBQStELFNBQVMsbUJBQW1CLG1CQUFtQixhQUFhLElBQUksSUFBSSwyQ0FBMkMsU0FBUyxtQkFBbUIsb0JBQW9CLGFBQWEsSUFBSSxJQUFJLGtCQUFrQiw4QkFBOEIsU0FBUyxtQkFBbUIsaUZBQWlGLDJCQUEyQixTQUFTLGVBQWUsS0FBSyxpQkFBaUIsRUFBRSx5Q0FBeUMsMkJBQTJCLHNEQUFzRCxvRkFBb0Ysa0JBQWtCLGVBQWUsY0FBYyxRQUFRLElBQUkscUJBQXFCLFNBQVMsRUFBRSxVQUFVLElBQUksTUFBTSxXQUFXLCtCQUErQixjQUFjLGtDQUFrQyxVQUFVLE1BQU0seUJBQXlCLG9DQUFvQyxZQUFZLFVBQVUsTUFBTSxzREFBc0QsbUJBQW1CLFlBQVksNlFBQTZRLHdHQUF3RyxTQUFTLHNCQUFzQixRQUFRLE1BQU0sNkJBQTZCLFNBQVMsaUJBQWlCLFlBQVkseUJBQXlCLGlCQUFpQixxQ0FBcUMsU0FBUyxpQ0FBaUMsaUJBQWlCLFdBQVcseVBBQXlQLGlCQUFpQiw0SEFBNEgscUJBQXFCLHNDQUFzQyxTQUFTLHlCQUF5QixxQkFBcUIsY0FBYyxjQUFjLG1EQUFtRCxNQUFNLDJDQUEyQyxNQUFNLHlKQUF5SixNQUFNLG1CQUFtQiwwQkFBMEIsSUFBSSw4Q0FBOEMsMEZBQTBGLFNBQVMsa0JBQWtCLGlCQUFpQixNQUFNLGNBQWMsbUtBQW1LLDZDQUE2QyxTQUFTLEVBQUUsa0JBQWtCLGNBQWMsNENBQTRDLE1BQU0sY0FBYywwQkFBMEIseUhBQXlILE1BQU0sa0RBQWtELE1BQU0scUJBQXFCLGFBQWEscURBQXFELE1BQU0sK0NBQStDLGlCQUFpQixzQ0FBc0MsU0FBUyxFQUFFLGtCQUFrQixjQUFjLDBDQUEwQyxNQUFNLDBDQUEwQyxNQUFNLGdCQUFnQixhQUFhLFlBQVksZUFBZSxtQ0FBbUMsU0FBUyxtQkFBbUIsZUFBZSxjQUFjLGtFQUFrRSxpQ0FBaUMsU0FBUyxnSEFBZ0gsc0JBQXNCLDBDQUEwQyxNQUFNLDJJQUEySSxPQUFPLGtGQUFrRixRQUFRLCtCQUErQix1QkFBdUIsOEJBQThCLHVNQUF1TSxxQ0FBcUMsTUFBTSxxQkFBcUIsTUFBTSx1QkFBdUIsNENBQTRDLE1BQU0sdUhBQXVILGVBQWUsa0JBQWtCLGlDQUFpQyxhQUFhLGtDQUFrQyxpQkFBaUIsZUFBZSxrQkFBa0Isb0JBQW9CLHdCQUF3QixXQUFXLEtBQUssV0FBVyxhQUFhLE1BQU0sc0NBQXNDLFNBQVMsbUJBQW1CLGVBQWUsY0FBYyw0REFBNEQsTUFBTSw2QkFBNkIsTUFBTSwwQkFBMEIsK0dBQStHLGtCQUFrQixvQkFBb0Isd0JBQXdCLFdBQVcsS0FBSyxXQUFXLGFBQWEsTUFBTSxjQUFjLFNBQVMsRUFBRSxrQkFBa0IsNkNBQTZDLE1BQU0sZ0VBQWdFLE1BQU0sYUFBYSxhQUFhLFlBQVksaUJBQWlCLEtBQUssVUFBVSxFQUFFLFNBQVMsY0FBYyxpQ0FBaUMsTUFBTSw2RUFBNkUscUNBQXFDLHNCQUFzQixNQUFNLGtDQUFrQyxzQ0FBc0MsYUFBYSxVQUFVLEVBQUUsZ0NBQWdDLGtCQUFrQixrQkFBa0IsNlFBQTZRLFdBQVcsUUFBUSxNQUFNLGFBQWEsZ0JBQWdCLE1BQU0sT0FBTyxRQUFRLDRCQUE0Qiw2QkFBNkIsNkNBQTZDLHdCQUF3QixpQ0FBaUMscVBBQXFQLGNBQWMscURBQXFELGNBQWMsb0RBQW9ELGlCQUFpQixrQ0FBa0MsbUJBQW1CLDRLQUE0SyxtQkFBbUIsaUNBQWlDLDJFQUEyRSxTQUFTLE1BQU0sa0JBQWtCLHdEQUF3RCxRQUFRLEtBQUssc0JBQXNCLEtBQUssU0FBUyxhQUFhLGdDQUFnQyxNQUFNLHdCQUF3QixtQkFBbUIsTUFBTSxhQUFhLHFDQUFxQyxhQUFhLFFBQVEsWUFBWSxRQUFRLFlBQVksUUFBUSw2REFBNkQsTUFBTSxrQkFBa0IsZUFBZSwyQkFBMkIsd0JBQXdCLGlDQUFpQyxhQUFhLGdCQUFnQixpQkFBaUIsS0FBSyxlQUFlLDhCQUE4QixTQUFTLHlCQUF5QixNQUFNLGdDQUFnQyxNQUFNLGlCQUFpQixRQUFRLDZCQUE2QixLQUFLLGlCQUFpQixRQUFRLE1BQU0sU0FBUyxRQUFRLHVFQUF1RSxzQkFBc0IsRUFBRSw4QkFBOEIsS0FBSyx5Q0FBeUMsYUFBYSxFQUFFLFlBQVkscUdBQXFHLFdBQVcsS0FBSywyQkFBMkIsVUFBVSxJQUFJLHVCQUF1QixTQUFTLFVBQVUsMkRBQTJELEtBQUssZUFBZSxLQUFLLGlCQUFpQixFQUFFLDBDQUEwQyxXQUFXLHVDQUF1QyxTQUFTLEtBQUssa0JBQWtCLFNBQVMsVUFBVSw4Q0FBOEMscUVBQXFFLFVBQVUsSUFBSSxHQUFHLEtBQUssMkNBQTJDLCtDQUErQyxXQUFXLDBDQUEwQyxRQUFRLHlEQUF5RCxJQUFJLHdCQUF3QixVQUFVLHFCQUFxQixNQUFNLEdBQUcsZ0JBQWdCLGtDQUFrQyxnQ0FBZ0Msc0JBQXNCLFFBQVEsZUFBZSxNQUFNLG9CQUFvQiw0QkFBNEIsMENBQTBDLHlDQUF5Qyx3RUFBd0UsUUFBUSx5Q0FBeUMsTUFBTSxNQUFNLHlDQUF5QyxnRkFBZ0Ysc0NBQXNDLDRCQUE0QixpQ0FBaUMsU0FBUyw2RUFBNkUsNEJBQTRCLG1EQUFtRCxrQkFBa0Isc0JBQXNCLE1BQU0sZ0NBQWdDLGtDQUFrQyxNQUFNLE1BQU0sOEVBQThFLE9BQU8sc0JBQXNCLHFCQUFxQiw0RkFBNEYsWUFBWSxJQUFJLEVBQUUsc0JBQXNCLGNBQWMsaUJBQWlCLGNBQWMsZ0NBQWdDLGNBQWMsY0FBYywwQkFBMEIsNkNBQTZDLEtBQUssU0FBUyw4QkFBOEIsU0FBUyxpQkFBaUIsc0JBQXNCLDBPQUEwTyx1QkFBdUIsb0NBQW9DLElBQUksRUFBRSxzQkFBc0IsY0FBYyxtQkFBbUIsaUJBQWlCLHNMQUFzTCxjQUFjLGlCQUFpQixpR0FBaUcsY0FBYyxVQUFVLDRCQUE0QixjQUFjLFVBQVUsZ0JBQWdCLGNBQWMsd0hBQXdILG1CQUFtQixTQUFTLE1BQU0sa0JBQWtCLHlDQUF5QyxTQUFTLFFBQVEsS0FBSyxzQkFBc0IsY0FBYyxXQUFXLGdCQUFnQixRQUFRLHNEQUFzRCxTQUFTLG1DQUFtQyxJQUFJLFFBQVEsTUFBTSx1Q0FBdUMsWUFBWSxLQUFLLFVBQVUsUUFBUSxTQUFTLE1BQU0sU0FBUyxRQUFRLCtGQUErRixlQUFlLDJCQUEyQixtREFBbUQsZUFBZSxzQkFBc0IsY0FBYyx5REFBeUQsTUFBTSx3REFBd0QsTUFBTSxhQUFhLHlDQUF5QyxtREFBbUQscUJBQXFCLDhCQUE4QixlQUFlLElBQUksdUJBQXVCLDJFQUEyRSwrREFBK0QsY0FBYyxrTkFBa04sa0ZBQWtGLDhEQUE4RCwyRkFBMkYsMEJBQTBCLHlCQUF5Qiw4SEFBOEgsUUFBUSxzQ0FBc0MsUUFBUSx1SEFBdUgsb0JBQW9CLFFBQVEsRUFBRSwwRUFBMEUsY0FBYyxHQUFHLGNBQWMsZ0ZBQWdGLGtQQUFrUCxXQUFXLGdCQUFnQixTQUFTLGNBQWMsbUNBQW1DLFFBQVEsU0FBUyx5QkFBeUIsbUNBQW1DLE9BQU8scUtBQXFLLGVBQWUsUUFBUSxHQUFHLDJDQUEyQyxXQUFXLHNCQUFzQixxQkFBcUIsb0JBQW9CLDZGQUE2RixzVUFBc1UsdUNBQXVDLDRNQUE0TSw0RkFBNEYsS0FBSyxPQUFPLDBDQUEwQyxrQkFBa0IsMERBQTBELGtCQUFrQiwrRUFBK0UsS0FBSyxPQUFPLDBDQUEwQyxrQkFBa0IsNkJBQTZCLEtBQUssb0JBQW9CLFVBQVUsMkRBQTJELE1BQU0sbUVBQW1FLE1BQU0sa0JBQWtCLDhEQUE4RCxNQUFNLHVFQUF1RSxNQUFNLHFHQUFxRyxNQUFNLCtEQUErRCxRQUFRLDZFQUE2RSxNQUFNLG1EQUFtRCxRQUFRLHNCQUFzQixnQkFBZ0IsZ0JBQWdCLFNBQVMsRUFBRSxtREFBbUQsK0NBQStDLDJCQUEyQixTQUFTLGVBQWUsS0FBSyxpQkFBaUIsRUFBRSx5Q0FBeUMsV0FBVyxzQ0FBc0Msa0NBQWtDLHFFQUFxRSxNQUFNLGVBQWUsTUFBTSxhQUFhLFVBQVUsOEVBQThFLDBEQUEwRCxLQUFLLDhEQUE4RCxzQkFBc0Isc0VBQXNFLGlDQUFpQyx3R0FBd0csb0RBQW9ELGtCQUFrQiwrREFBK0QscUJBQXFCLGFBQWEsMEJBQTBCLHlFQUF5RSxRQUFRLDhEQUE4RCxXQUFXLHVGQUF1RixPQUFPLDhCQUE4QixrQkFBa0Isd0NBQXdDLGtCQUFrQixrR0FBa0csMENBQTBDLGFBQWEsMEJBQTBCLHlFQUF5RSxRQUFRLDhEQUE4RCxXQUFXLHVGQUF1RixPQUFPLDhCQUE4QixtQkFBbUIsNkNBQTZDLG9aQUFvWixxRUFBcUUscUNBQXFDLDhEQUE4RCwyREFBMkQsS0FBSyxvREFBb0QsU0FBUyxFQUFFLHFCQUFxQiwrRkFBK0YsU0FBUyxxQkFBcUIsOERBQThELFlBQVkscUVBQXFFLEtBQUssMkJBQTJCLDhJQUE4SSxrR0FBa0csK0ZBQStGLG9LQUFvSyxrQkFBa0IscWdCQUFxZ0IsdUhBQXVILDRCQUE0QiwwQkFBMEIsbUJBQW1CLGFBQWEsS0FBSyxPQUFPLHlCQUF5QixLQUFLLE9BQU8sT0FBTyxnQkFBZ0IsZUFBZSxpQkFBaUIsR0FBRyxvQkFBb0Isb0JBQW9CLDhEQUE4RCwwRkFBMEYsd0NBQXdDLG1DQUFtQyxnREFBZ0QsS0FBSyx1REFBdUQsa0VBQWtFLDBDQUEwQyxLQUFLLHVEQUF1RCwwQkFBMEIsdUJBQXVCLCtCQUErQixrR0FBa0csMkJBQTJCLHFCQUFxQixnQkFBZ0IsYUFBYSxvQkFBb0IsT0FBTyxxR0FBcUcsS0FBSyxPQUFPLE9BQU8sZ0JBQWdCLGFBQWEsK0JBQStCLDJCQUEyQixRQUFRLGNBQWMsaUNBQWlDLGFBQWEscUNBQXFDLDBCQUEwQixxQkFBcUIsZ0tBQWdLLDREQUE0RCxXQUFXLElBQUksRUFBRSxzQkFBc0IsZUFBZSxXQUFXLDhCQUE4QixXQUFXLEtBQUssV0FBVyxnQ0FBZ0MsTUFBTSx3RUFBd0Usc01BQXNNLG1CQUFtQixpR0FBaUcsc0NBQXNDLElBQUksZUFBZSx3Q0FBd0MsK0JBQStCLDJDQUEyQyxRQUFRLG9GQUFvRix3QkFBd0IsZUFBZSxxQ0FBcUMsZ0JBQWdCLElBQUksc0JBQXNCLFNBQVMsT0FBTyxRQUFRLHFDQUFxQyxRQUFRLEVBQUUsS0FBSyw0SUFBNEksU0FBUyxNQUFNLEVBQUUsaUJBQWlCLDhFQUE4RSxtQkFBbUIsSUFBSSx1QkFBdUIsZUFBZSxZQUFZLE1BQU0sZUFBZSxZQUFZLFFBQVEsK0JBQStCLFlBQVksVUFBVSxzRUFBc0UsVUFBVSxVQUFVLEVBQUUsMkNBQTJDLDBFQUEwRSxpQ0FBaUMsK0RBQStELElBQUksbUJBQW1CLHlFQUF5RSxTQUFTLGtCQUFrQixNQUFNLHVCQUF1Qix3REFBd0QsaUNBQWlDLHVDQUF1QyxNQUFNLDBCQUEwQixNQUFNLDJDQUEyQyx5QkFBeUIsdUJBQXVCLE1BQU0sYUFBYSxRQUFRLFFBQVEsa0JBQWtCLHFCQUFxQixjQUFjLFdBQVcsS0FBSyxtQ0FBbUMsaUNBQWlDLGVBQWUsVUFBVSxNQUFNLFNBQVMsTUFBTSxJQUFJLFFBQVEsa0VBQWtFLDhDQUE4QyxtTEFBbUwscUNBQXFDLG9CQUFvQixzQkFBc0IsdUdBQXVHLEtBQUssMkRBQTJELG1CQUFtQix5R0FBeUcsOEJBQThCLHdCQUF3QiwrSEFBK0gsc0JBQXNCLDJJQUEySSxhQUFhLGVBQWUseUJBQXlCLDRDQUE0QyxFQUFFLDhDQUE4QyxXQUFXLEtBQUssV0FBVyx1REFBdUQsbUJBQW1CLFFBQVEsa0JBQWtCLGtCQUFrQixjQUFjLFdBQVcsS0FBSyxrQ0FBa0MsZ0NBQWdDLGVBQWUsVUFBVSxNQUFNLFNBQVMsTUFBTSxJQUFJLG9CQUFvQixRQUFRLGtCQUFrQixNQUFNLGNBQWMsbUJBQW1CLFVBQVUsd0JBQXdCLDBGQUEwRixxQkFBcUIsd0ZBQXdGLDZEQUE2RCxVQUFVLGFBQWEsMkJBQTJCLElBQUksbUNBQW1DLFdBQVcsS0FBSyxXQUFXLFdBQVcsdUJBQXVCLEdBQUcsUUFBUSxhQUFhLHdHQUF3RyxpQkFBaUIsZ0ZBQWdGLGVBQWUsNEJBQTRCLGNBQWMsbUJBQW1CLGNBQWMsS0FBSyx5QkFBeUIsSUFBSSxvQ0FBb0MsY0FBYyxzREFBc0QsU0FBUyw2R0FBNkcsK0JBQStCLFVBQVUsU0FBUyxRQUFRLHFCQUFxQixtQkFBbUIsc0VBQXNFLG1CQUFtQix1QkFBdUIsVUFBVSxTQUFTLEVBQUUsY0FBYyxVQUFVLE1BQU0sY0FBYyxrQkFBa0Isd0hBQXdILGtFQUFrRSxPQUFPLFlBQVksbUJBQW1CLGtCQUFrQixhQUFhLHFCQUFxQixjQUFjLFdBQVcsbURBQW1ELDZEQUE2RCxtQkFBbUIsa0JBQWtCLDhMQUE4TCxpQkFBaUIsb0RBQW9ELGVBQWUsMEJBQTBCLGtDQUFrQyxpQkFBaUIsUUFBUSxjQUFjLG9EQUFvRCwwQkFBMEIsTUFBTSxzQkFBc0IsTUFBTSxrQ0FBa0MsTUFBTSw0QkFBNEIsOEJBQThCLDJDQUEyQyxlQUFlLHVGQUF1Rix3QkFBd0IsR0FBRyxpQkFBaUIsWUFBWSxNQUFNLHFCQUFxQixTQUFTLEVBQUUsZ0JBQWdCLHFCQUFxQixpQkFBaUIsS0FBSyx1Q0FBdUMsdUVBQXVFLHNCQUFzQixrSEFBa0gsU0FBUyxTQUFTLE9BQU8sY0FBYyxLQUFLLGNBQWMsU0FBUyxVQUFVLHFGQUFxRiwyQkFBMkIsU0FBUyxFQUFFLHVCQUF1QixpR0FBaUcsd0NBQXdDLGlCQUFpQiwyRkFBMkYsSUFBSSxFQUFFLDZCQUE2QixpREFBaUQsVUFBVSxpREFBaUQsK0xBQStMLG1CQUFtQix1Q0FBdUMsME9BQTBPLHNCQUFzQiwwQ0FBMEMsOEJBQThCLG1CQUFtQixNQUFNLHFCQUFxQixNQUFNLHFCQUFxQix3RUFBd0UsNEVBQTRFLGlCQUFpQix1RUFBdUUscUJBQXFCLDBDQUEwQyxTQUFTLDZLQUE2SyxpQkFBaUIsb0JBQW9CLFdBQVcsY0FBYyxXQUFXLFNBQVMsZ0JBQWdCLFVBQVUsZUFBZSw2RkFBNkYsaUJBQWlCLDZDQUE2QyxzSkFBc0osYUFBYSxhQUFhLE1BQU0sY0FBYyw0REFBNEQsMC9CQUEwL0Isa1ZBQWtWLGlCQUFpQixXQUFXLFlBQVksV0FBVyxLQUFLLHFCQUFxQixjQUFjLEdBQUcsYUFBYSwwQkFBMEIsS0FBSyxLQUFLLDBDQUEwQyx3REFBd0Qsc0JBQXNCLElBQUksS0FBSyxTQUFTLE1BQU0seUJBQXlCLGFBQWEsV0FBVyxLQUFLLDhGQUE4RixzQkFBc0IsSUFBSSxLQUFLLFNBQVMsTUFBTSw0QkFBNEIsaUJBQWlCLFlBQVksOEJBQThCLG1CQUFtQixrQ0FBa0MsbUJBQW1CLFFBQVEsc0JBQXNCLDZEQUE2RCxlQUFlLFdBQVcsZ0NBQWdDLDBEQUEwRCxFQUFFLHVDQUF1Qyx3REFBd0QscUJBQXFCLGNBQWMsZ0JBQWdCLE1BQU0sWUFBWSxNQUFNLGFBQWEsZ0lBQWdJLHFCQUFxQixnRUFBZ0UsVUFBVSw2QkFBNkIsdUJBQXVCLFFBQVEsd0NBQXdDLEVBQUUsbUJBQW1CLFlBQVksaUJBQWlCLGdDQUFnQyxlQUFlLHdCQUF3QixTQUFTLEVBQUUsWUFBWSx3REFBd0QsV0FBVyxLQUFLLFNBQVMsRUFBRSwyQkFBMkIseUNBQXlDLE1BQU0sV0FBVyxnQkFBZ0IsV0FBVyxjQUFjLHFCQUFxQixHQUFHLGdCQUFnQixlQUFlLGFBQWEsVUFBVSxvQ0FBb0MsK0JBQStCLE1BQU0sNkJBQTZCLE1BQU0sNkJBQTZCLE1BQU0sc0NBQXNDLE1BQU0sb0NBQW9DLGtJQUFrSSxNQUFNLHVIQUF1SCxNQUFNLHVFQUF1RSxNQUFNLDZCQUE2QixNQUFNLGFBQWEsTUFBTSxrQ0FBa0MsTUFBTSxpQkFBaUIsTUFBTSxzQ0FBc0MsTUFBTSxpS0FBaUssTUFBTSxxQ0FBcUMscUZBQXFGLEtBQUssY0FBYyxTQUFTLEVBQUUsUUFBUSxpSEFBaUgsV0FBVywyQ0FBMkMsb0JBQW9CLElBQUksYUFBYSw4V0FBOFcsNFVBQTRVLHlCQUF5QixFQUFFLFdBQVcsSUFBSSxjQUFjLEVBQUUsV0FBVyxLQUFLLE1BQU0sWUFBWSxLQUFLLE1BQU0sWUFBWSxLQUFLLElBQUksRUFBRSxxQ0FBcUMsSUFBSSxRQUFRLGNBQWMsT0FBTyxZQUFZLDREQUE0RCxHQUFHLCtHQUErRyx5QkFBeUIsS0FBSyxLQUFLLFNBQVMseUhBQXlILGtCQUFrQixZQUFZLFFBQVEsc0dBQXNHLDJCQUEyQix1RUFBdUUsTUFBTSw2QkFBNkIsTUFBTSxzQkFBc0IsTUFBTSw4REFBOEQsTUFBTSxrQ0FBa0Msb0NBQW9DLFNBQVMsVUFBVSxrREFBa0QsUUFBUSwwQ0FBMEMsUUFBUSxnREFBZ0QsUUFBUSxTQUFTLGlHQUFpRyxzTUFBc00sb0JBQW9CLGdFQUFnRSxVQUFVLGtDQUFrQywyQ0FBMkMsaUJBQWlCLGtEQUFrRCxxQkFBcUIsb0JBQW9CLG1GQUFtRixVQUFVLGdDQUFnQywwRUFBMEUseUNBQXlDLCtDQUErQyxZQUFZLDZEQUE2RCxzR0FBc0csb0JBQW9CLFlBQVksUUFBUSxxQ0FBcUMsNkNBQTZDLDBGQUEwRix5Q0FBeUMsUUFBUSxvQkFBb0Isa0NBQWtDLHVCQUF1QixXQUFXLGdDQUFnQyxNQUFNLDJDQUEyQyxVQUFVLG9EQUFvRCxxRUFBcUUsT0FBTyxpQkFBaUIsRUFBRSxHQUFHLFFBQVEsRUFBRSxtQkFBbUIsT0FBTyx1Q0FBdUMsaUJBQWlCLDJCQUEyQixTQUFTLEVBQUUsc0JBQXNCLDhJQUE4SSxXQUFXLFNBQVMsZUFBZSx3QkFBd0IsY0FBYyxnQ0FBZ0MsZUFBZSx1QkFBdUIsNEJBQTRCLGdCQUFnQixFQUFFLG9DQUFvQyxpQ0FBaUMsb0lBQW9JLHNCQUFzQixvQkFBb0IsRUFBRSxvQ0FBb0MsZUFBZSxrRUFBa0UsaUJBQWlCLHlCQUF5Qix5QkFBeUIsVUFBVSwrSUFBK0ksTUFBTSxnQ0FBZ0MsTUFBTSxrQ0FBa0MsTUFBTSxzRUFBc0UsTUFBTSxzQkFBc0IsTUFBTSw0QkFBNEIsZUFBZSxNQUFNLCtIQUErSCxxQkFBcUIsTUFBTSwrQkFBK0IsTUFBTSx1REFBdUQseVNBQXlTLE1BQU0sOFdBQThXLHFCQUFxQixNQUFNLCtCQUErQixNQUFNLHNDQUFzQyxNQUFNLHVDQUF1QyxNQUFNLDZDQUE2QyxNQUFNLDBDQUEwQywwREFBMEQsdUJBQXVCLHVDQUF1QyxlQUFlLE1BQU0sc0VBQXNFLE1BQU0sZ0VBQWdFLE1BQU0sOExBQThMLDJGQUEyRixnQ0FBZ0MsTUFBTSwyRUFBMkUsTUFBTSx1UEFBdVAsTUFBTSx3Y0FBd2MsTUFBTSw0SkFBNEosTUFBTSx3SkFBd0osTUFBTSwrSEFBK0gsTUFBTSxvRUFBb0UsTUFBTSwwRUFBMEUsTUFBTSwwRUFBMEUsTUFBTSxvRUFBb0UsTUFBTSxvRUFBb0UsTUFBTSxzRUFBc0UsTUFBTSxvRUFBb0UsTUFBTSx3RUFBd0UsTUFBTSx3RUFBd0UsTUFBTSwwRUFBMEUsTUFBTSxzQkFBc0IsTUFBTSxnR0FBZ0cseUJBQXlCLFVBQVUsc0JBQXNCLE1BQU0sMENBQTBDLDBEQUEwRCx1QkFBdUIsdUNBQXVDLGVBQWUsTUFBTSwrRkFBK0YsTUFBTSx1Q0FBdUMsTUFBTSw2Q0FBNkMsTUFBTSxzQ0FBc0MsTUFBTSxzSUFBc0ksb0NBQW9DLGdNQUFnTSxxSEFBcUgsUUFBUSxzREFBc0QsbUJBQW1CLFVBQVUsaUZBQWlGLHFDQUFxQyxnQkFBZ0IsbUNBQW1DLFdBQVcscUJBQXFCLGVBQWUsTUFBTSxrQkFBa0IsTUFBTSxtRUFBbUUsNEJBQTRCLGtFQUFrRSxPQUFPLDRCQUE0QiwrQkFBK0IsbUNBQW1DLFdBQVcscUJBQXFCLGVBQWUsTUFBTSxlQUFlLE1BQU0sa0JBQWtCLE1BQU0seUJBQXlCLE1BQU0sZ0JBQWdCLE1BQU0sdUJBQXVCLE1BQU0sOEVBQThFLE1BQU0sNEJBQTRCLHFCQUFxQixPQUFPLG9HQUFvRyxnQkFBZ0IsTUFBTSx1QkFBdUIsTUFBTSxtQkFBbUIsMkJBQTJCLHNFQUFzRSxPQUFPLHNHQUFzRyxnQkFBZ0IsTUFBTSx1QkFBdUIsTUFBTSxtQkFBbUIsTUFBTSw0REFBNEQsTUFBTSwyQkFBMkIsWUFBWSxPQUFPLHdKQUF3SixPQUFPLDhFQUE4RSxNQUFNLHVDQUF1QyxNQUFNLGdDQUFnQyxZQUFZLGdCQUFnQixNQUFNLHVDQUF1QyxNQUFNLDZCQUE2QixNQUFNLCtEQUErRCx1TEFBdUwsbUVBQW1FLDJCQUEyQixPQUFPLGtCQUFrQix3RUFBd0UsUUFBUSxtRUFBbUUsb0JBQW9CLGVBQWUsd0NBQXdDLGVBQWUsVUFBVSwwQ0FBMEMsa0RBQWtELGtCQUFrQixpQkFBaUIsbUJBQW1CLG1CQUFtQixvQkFBb0IsaUJBQWlCLHNDQUFzQyxpQkFBaUIsa1BBQWtQLCtPQUErTywwQ0FBMEMsSUFBSSxlQUFlLHNCQUFzQixRQUFRLEVBQUUsZUFBZSxpQkFBaUIsaUJBQWlCLFlBQVksR0FBRyxvQkFBb0Isc0VBQXNFLFVBQVUsdUJBQXVCLE9BQU8sSUFBSSwyREFBMkQsdURBQXVELG9CQUFvQiwyQkFBMkIsdUJBQXVCLEVBQUUsRUFBRSxpQ0FBaUMsd0dBQXdHLHlDQUF5QyxJQUFJLFNBQVMsTUFBTSxpQkFBaUIsUUFBUSxJQUFJLEdBQUcsb0JBQW9CLHFVQUFxVSxTQUFTLCtDQUErQyxJQUFJLFNBQVMsZUFBZSxtQkFBbUIsMENBQTBDLEVBQUUsRUFBRSxRQUFRLG1DQUFtQyw2Q0FBNkMsU0FBUyxrQ0FBa0MsMERBQTBELGtCQUFrQixpQkFBaUIsS0FBSyxlQUFlLGlEQUFpRCxTQUFTLGVBQWUsbUNBQW1DLGVBQWUsMkVBQTJFLGVBQWUsS0FBSyxRQUFRLGlCQUFpQixpQkFBaUIsc0JBQXNCLFVBQVUsb0ZBQW9GLG1DQUFtQyxTQUFTLFlBQVksZUFBZSxnQkFBZ0IsWUFBWSxFQUFFLEVBQUUsbUJBQW1CLGFBQWEsdUJBQXVCLGtDQUFrQyxJQUFJLHdEQUF3RCxnQkFBZ0IsWUFBWSxlQUFlLG9CQUFvQixZQUFZLEVBQUUsRUFBRSxtQkFBbUIsYUFBYSxtREFBbUQsa0JBQWtCLElBQUksNEJBQTRCLG9CQUFvQixZQUFZLG1CQUFtQixrQkFBa0IseURBQXlELFNBQVMsOENBQThDLFNBQVMsOENBQThDLFNBQVMsNkJBQTZCLGVBQWUsdUJBQXVCLFNBQVMsNkJBQTZCLE1BQU0sMEJBQTBCLGVBQWUsd0ZBQXdGLFdBQVcsS0FBSyxhQUFhLG9CQUFvQixZQUFZLGVBQWUsWUFBWSxtREFBbUQsZUFBZSxrQ0FBa0MsaUJBQWlCLCtCQUErQixtQkFBbUIseUJBQXlCLDRDQUE0Qyw2S0FBNkssUUFBUSxVQUFVLG9CQUFvQixNQUFNLHFCQUFxQixpQkFBaUIsK0RBQStELGtNQUFrTSxpQkFBaUIsb0JBQW9CLGlIQUFpSCxVQUFVLCtHQUErRyxxQkFBcUIsMkJBQTJCLDZDQUE2QyxVQUFVLHlJQUF5SSx1RUFBdUUsaUJBQWlCLG9CQUFvQixpREFBaUQsdUNBQXVDLGVBQWUsc0dBQXNHLDRDQUE0QyxjQUFjLG1CQUFtQixzQkFBc0IscUNBQXFDLGVBQWUsZUFBZSxPQUFPLE9BQU8sd0JBQXdCLHlDQUF5QyxLQUFLLEtBQUssNENBQTRDLDJCQUEyQixpQ0FBaUMsb0RBQW9ELHVCQUF1Qix1Q0FBdUMsYUFBYSx3Q0FBd0MsYUFBYSwwQkFBMEIsR0FBRyw2Q0FBNkMsY0FBYyxpQkFBaUIsb0JBQW9CLGlEQUFpRCx1Q0FBdUMsNkJBQTZCLHNHQUFzRyw0Q0FBNEMsZ0JBQWdCLGtEQUFrRCxtQkFBbUIsOEJBQThCLFlBQVksOEdBQThHLDJCQUEyQixzR0FBc0cscUJBQXFCLCtCQUErQiwwQkFBMEIsVUFBVSxtQ0FBbUMsaUlBQWlJLDhDQUE4QyxpQkFBaUIsOENBQThDLDRGQUE0RixhQUFhLCtDQUErQywrQkFBK0IsK0NBQStDLHdCQUF3QiwrRkFBK0YsdUpBQXVKLHVMQUF1TCxvQkFBb0Isd0NBQXdDLG9CQUFvQixvRkFBb0YsU0FBUyxzQ0FBc0MsWUFBWSx5SkFBeUosK0NBQStDLGlCQUFpQiw4Q0FBOEMsK0JBQStCLGVBQWUseUJBQXlCLGVBQWUsc0NBQXNDLGVBQWUsV0FBVyxJQUFJLCtDQUErQyxFQUFFLGVBQWUsMEJBQTBCLGVBQWUsd0JBQXdCLG1CQUFtQiw4Q0FBOEMsd0VBQXdFLGlDQUFpQyxVQUFVLElBQUksNEVBQTRFLEVBQUUsMkdBQTJHLDhCQUE4Qiw2QkFBNkIsb0RBQW9ELGdGQUFnRixRQUFRLHNDQUFzQyx1QkFBdUIsc0VBQXNFLGlGQUFpRixtQ0FBbUMsOEdBQThHLHVCQUF1QixtQ0FBbUMsdUhBQXVILG1CQUFtQixxSUFBcUksV0FBVyxLQUFLLFdBQVcsZ0NBQWdDLG9CQUFvQixzR0FBc0csaUJBQWlCLGdKQUFnSixpQkFBaUIsNEpBQTRKLFlBQVksbUJBQW1CLGNBQWMsMkJBQTJCLFdBQVcsOENBQThDLHFCQUFxQixrREFBa0QsV0FBVyxLQUFLLFdBQVcscUhBQXFILDRCQUE0QixNQUFNLGVBQWUsMEJBQTBCLFNBQVMsbUJBQW1CLDZGQUE2RixlQUFlLG9EQUFvRCxZQUFZLGNBQWMsZ0NBQWdDLDhDQUE4Qyx3QkFBd0IscUJBQXFCLDBCQUEwQixZQUFZLGlCQUFpQixpR0FBaUcsaUJBQWlCLHlCQUF5QixnQkFBZ0IsdUJBQXVCLEtBQUssc0JBQXNCLGlGQUFpRixXQUFXLEtBQUssV0FBVyxnR0FBZ0csaUJBQWlCLGlUQUFpVCxRQUFRLHdGQUF3RiwrQkFBK0IsdXBCQUF1cEIseUJBQXlCLDZFQUE2RSxVQUFVLDBGQUEwRixpQkFBaUIsb0RBQW9ELGtCQUFrQiw0QkFBNEIsaUJBQWlCLGlDQUFpQyxlQUFlLDJCQUEyQixzQkFBc0IsNkNBQTZDLGVBQWUsMkJBQTJCLDJCQUEyQiw2QkFBNkIsVUFBVSxxQkFBcUIsVUFBVSxTQUFTLFVBQVUsSUFBSSxrQkFBa0IsUUFBUSxhQUFhLHFCQUFxQixVQUFVLFNBQVMsVUFBVSxJQUFJLGtCQUFrQixRQUFRLGFBQWEscUJBQXFCLE9BQU8sWUFBWSxtQ0FBbUMsNEJBQTRCLFVBQVUsNENBQTRDLDhDQUE4Qyw4Q0FBOEMsb0NBQW9DLGtEQUFrRCx3RkFBd0YsU0FBUyxnQ0FBZ0MsdUNBQXVDLEtBQUssU0FBUyxFQUFFLFlBQVksMEJBQTBCLDhEQUE4RCx5QkFBeUIsVUFBVSxRQUFRLDBDQUEwQyxFQUFFLEVBQUUsa0JBQWtCLDRCQUE0Qix5Q0FBeUMsTUFBTSwyREFBMkQsZ0RBQWdELElBQUksOEJBQThCLHVCQUF1QixlQUFlLG1CQUFtQixZQUFZLGVBQWUsNkJBQTZCLFdBQVcsbUJBQW1CLEtBQUssWUFBWSxXQUFXLDRCQUE0QixPQUFPLGdCQUFnQiw0QkFBNEIsT0FBTyxlQUFlLGtHQUFrRyxPQUFPLHNCQUFzQixpQkFBaUIsZUFBZSxVQUFVLG16QkFBbXpCLHVTQUF1UywyQkFBMkIsaUJBQWlCLGlCQUFpQiwwQkFBMEIsMEJBQTBCLGtCQUFrQixtQkFBbUIsa1VBQWtVLGlCQUFpQixVQUFVLHFDQUFxQyxNQUFNLHdDQUF3QyxNQUFNLHVDQUF1QyxNQUFNLDBEQUEwRCxNQUFNLHlFQUF5RSx5QkFBeUIsdUNBQXVDLGlGQUFpRiwwSEFBMEgsZUFBZSxtQkFBbUIsYUFBYSxXQUFXLGFBQWEsbUJBQW1CLG9CQUFvQix1Q0FBdUMsTUFBTSxFQUFFLFFBQVEsZ0JBQWdCLG9CQUFvQix1Q0FBdUMsTUFBTSxFQUFFLFFBQVEsK0RBQStELHFEQUFxRCxTQUFTLGlCQUFpQixlQUFlLCtCQUErQiw2QkFBNkIsV0FBVyxFQUFFLHdCQUF3Qiw0REFBNEQsaURBQWlELGlEQUFpRCxTQUFTLG1CQUFtQixtQkFBbUIsY0FBYywySEFBMkgsaUJBQWlCLDBHQUEwRyxZQUFZLGVBQWUsK0VBQStFLGtCQUFrQixZQUFZLFdBQVcsTUFBTSw2QkFBNkIsb0RBQW9ELFdBQVcsWUFBWSxvQ0FBb0MsMkNBQTJDLFFBQVEsR0FBRyxlQUFlLGNBQWMsZUFBZSx3RkFBd0YsWUFBWSxZQUFZLEtBQUssWUFBWSxvQ0FBb0MsS0FBSyx3Q0FBd0Msc0NBQXNDLDREQUE0RCxXQUFXLE1BQU0sa0NBQWtDLGlDQUFpQyxXQUFXLFdBQVcsb0NBQW9DLG9DQUFvQyw4QkFBOEIsZ0JBQWdCLDJEQUEyRCxjQUFjLGNBQWMsMERBQTBELG1CQUFtQiwrQkFBK0IsV0FBVyxFQUFFLHFDQUFxQyxFQUFFLGFBQWEsMkNBQTJDLGFBQWEsK0JBQStCLDhCQUE4QiwyQ0FBMkMsNkRBQTZELEdBQUcsZ0NBQWdDLGdCQUFnQiw4S0FBOEssaUxBQWlMLGVBQWUscUJBQXFCLGVBQWUscUJBQXFCLG9EQUFvRCx5QkFBeUIsZ0NBQWdDLGlDQUFpQyxzREFBc0QseUJBQXlCLGFBQWEsd0JBQXdCLHNCQUFzQixrREFBa0QscURBQXFELE1BQU0sV0FBVyxHQUFHLG9DQUFvQyxZQUFZLHFDQUFxQyxLQUFLLGdDQUFnQyxpQkFBaUIsbUdBQW1HLDZCQUE2Qix3QkFBd0IsZUFBZSxtREFBbUQsK0NBQStDLHlDQUF5QyxrQkFBa0IsT0FBTyx1Q0FBdUMsb0JBQW9CLGlCQUFpQixFQUFFLGVBQWUsa0JBQWtCLGtCQUFrQixhQUFhLHdCQUF3QixJQUFJLFNBQVMsTUFBTSxzQkFBc0IsY0FBYyxFQUFFLEVBQUUsdUJBQXVCLHVCQUF1QixZQUFZLG9CQUFvQiwrQkFBK0IsS0FBSyx1QkFBdUIsRUFBRSxFQUFFLFVBQVUsYUFBYSxNQUFNLFVBQVUsYUFBYSxNQUFNLFlBQVksT0FBTyxjQUFjLEVBQUUsRUFBRSxVQUFVLGFBQWEsTUFBTSxVQUFVLGFBQWEsTUFBTSxZQUFZLDJCQUEyQix1Q0FBdUMsaUNBQWlDLG1DQUFtQyxtQkFBbUIsWUFBWSx5Q0FBeUMsY0FBYyxTQUFTLEVBQUUsNEJBQTRCLFlBQVksWUFBWSwyQkFBMkIscURBQXFELHNDQUFzQyx3Q0FBd0MsY0FBYyxrS0FBa0ssUUFBUSxXQUFXLDJCQUEyQiwrRUFBK0UsNkNBQTZDLHdjQUF3YyxvQ0FBb0MsNENBQTRDLHlFQUF5RSxhQUFhLDBDQUEwQyxjQUFjLG9DQUFvQyx1QkFBdUIsK0NBQStDLFlBQVksbUJBQW1CLG1EQUFtRCxvQ0FBb0MsMkhBQTJILGNBQWMsT0FBTyxHQUFHLGlCQUFpQixvQkFBb0IsNkJBQTZCLHNCQUFzQixrR0FBa0csZ0JBQWdCLHlFQUF5RSw4RkFBOEYsa0VBQWtFLDJFQUEyRSx1QkFBdUIsa0VBQWtFLE9BQU8sOEVBQThFLGFBQWEseUJBQXlCLGdCQUFnQixJQUFJLCtCQUErQixRQUFRLHFCQUFxQiw0QkFBNEIsOEdBQThHLDJCQUEyQiw2QkFBNkIseUJBQXlCLGlEQUFpRCw0SUFBNEksdUVBQXVFLDBDQUEwQyx5QkFBeUIsd0ZBQXdGLEdBQUcsK0JBQStCLHVEQUF1RCxnQ0FBZ0MsNEJBQTRCLFNBQVMsc0hBQXNILEdBQUcsdUJBQXVCLHlCQUF5Qiw0RUFBNEUsZ0NBQWdDLFdBQVcsMmRBQTJkLEdBQUcsK0JBQStCLDRCQUE0Qiw0QkFBNEIsU0FBUyw4SEFBOEgsRUFBRSxjQUFjLGdDQUFnQyxTQUFTLHlDQUF5QyxZQUFZLGdDQUFnQywrQkFBK0IsNEJBQTRCLHFDQUFxQyw2Q0FBNkMsdURBQXVELGFBQWEsY0FBYyxzSEFBc0gsMkNBQTJDLFNBQVMsa0JBQWtCLCtFQUErRSxzREFBc0QsYUFBYSxjQUFjLHNIQUFzSCwyQ0FBMkMsU0FBUyxrQkFBa0Isd0VBQXdFLGtGQUFrRixhQUFhLDBHQUEwRyxnQkFBZ0IsNEJBQTRCLDJFQUEyRSxhQUFhLCtDQUErQyxrQkFBa0IsV0FBVyxnRkFBZ0YsMEJBQTBCLFNBQVMsT0FBTywrREFBK0QseURBQXlELCtEQUErRCxhQUFhLHFYQUFxWCxxQkFBcUIsU0FBUyxnQ0FBZ0MsaUNBQWlDLDhCQUE4QixzQkFBc0Isa0JBQWtCLDBEQUEwRCxjQUFjLGtCQUFrQiwwREFBMEQsK0JBQStCLG9DQUFvQywyS0FBMkssa0RBQWtELHFDQUFxQyxzREFBc0QseUJBQXlCLHdCQUF3QiwyREFBMkQsb0JBQW9CLGNBQWMsT0FBTyw0QkFBNEIsbUNBQW1DLGtCQUFrQixZQUFZLE9BQU8sdURBQXVELGNBQWMsbURBQW1ELGFBQWEsZ0JBQWdCLFFBQVEsK0RBQStELGtCQUFrQixtQ0FBbUMsWUFBWSxrQkFBa0Isa0JBQWtCLG9CQUFvQixhQUFhLDZCQUE2QixxQkFBcUIsMkNBQTJDLFNBQVMsaUJBQWlCLGVBQWUsNENBQTRDLE1BQU0sZ0NBQWdDLG1CQUFtQixNQUFNLGtEQUFrRCwrR0FBK0csU0FBUyxxSUFBcUksSUFBSSx1QkFBdUIsb0JBQW9CLFdBQVcsb0NBQW9DLDhJQUE4SSxtQkFBbUIsc0NBQXNDLHNCQUFzQixrREFBa0QsaUJBQWlCLCtCQUErQiw4QkFBOEIsNEZBQTRGLHVEQUF1RCxhQUFhLHVEQUF1RCxhQUFhLCtCQUErQiwrQkFBK0IsUUFBUSxhQUFhLG9IQUFvSCw4QkFBOEIsa0ZBQWtGLFNBQVMsdUJBQXVCLHVCQUF1QixJQUFJLGNBQWMsbUJBQW1CLGdCQUFnQix5QkFBeUIsMkRBQTJELGFBQWEsMkRBQTJELDRDQUE0QywwQ0FBMEMsZ0JBQWdCLDZEQUE2RCxrRUFBa0UscUNBQXFDLDhIQUE4SCxFQUFFLG1DQUFtQyxrSEFBa0gsa0JBQWtCLFlBQVksOEJBQThCLGVBQWUsd0JBQXdCLElBQUksbUJBQW1CLFFBQVEsc0JBQXNCLElBQUksSUFBSSxxQkFBcUIsdUJBQXVCLFNBQVMsTUFBTSxrQkFBa0IsOEZBQThGLFVBQVUsaUxBQWlMLDZCQUE2Qiw0QkFBNEIscUJBQXFCLGtCQUFrQixnQ0FBZ0MsMEJBQTBCLFlBQVksZ0NBQWdDLHNGQUFzRixVQUFVLGtCQUFrQixrSkFBa0oseUJBQXlCLHNCQUFzQixhQUFhLHVCQUF1QixJQUFJLHdCQUF3QixhQUFhLHFCQUFxQiw2QkFBNkIsVUFBVSx1RkFBdUYseUJBQXlCLHNCQUFzQixHQUFHLGlDQUFpQyxVQUFVLFFBQVEscUhBQXFILHlCQUF5QixzQkFBc0IsYUFBYSx1QkFBdUIsSUFBSSx3QkFBd0IsYUFBYSwwRUFBMEUsZ0JBQWdCLHdCQUF3QixPQUFPLGNBQWMsMEJBQTBCLE9BQU8scUJBQXFCLHVDQUF1QyxPQUFPLHFCQUFxQixxQkFBcUIsVUFBVSxzQkFBc0IsT0FBTyw2Q0FBNkMsK0JBQStCLGVBQWUsTUFBTSxJQUFJLGdCQUFnQixzRkFBc0YsU0FBUyxLQUFLLFFBQVEsbURBQW1ELHVDQUF1Qyw2QkFBNkIsbUJBQW1CLGtCQUFrQixrQ0FBa0MsaUNBQWlDLDZCQUE2Qiw0QkFBNEIsMEJBQTBCLHlCQUF5Qiw2QkFBNkIsa0NBQWtDLGlDQUFpQywyQkFBMkIsMEJBQTBCLG9CQUFvQixtQkFBbUIsdUNBQXVDLHNDQUFzQyxvQ0FBb0MsbUNBQW1DLGlDQUFpQyxnQ0FBZ0MseUJBQXlCLHdCQUF3QiwrQkFBK0IsOEJBQThCLDhCQUE4Qiw2QkFBNkIsc0JBQXNCLHFCQUFxQix3QkFBd0IsdUJBQXVCLHdDQUF3Qyx1Q0FBdUMsNEJBQTRCLDJCQUEyQiw2Q0FBNkMsNkRBQTZELGFBQWEsOEVBQThFLGtEQUFrRCxhQUFhLDZEQUE2RCx3REFBd0QsYUFBYSx5RUFBeUUsdUVBQXVFLGFBQWEsZ0JBQWdCLGVBQWUsY0FBYyxJQUFJLEVBQUUscUJBQXFCLDhCQUE4QixZQUFZLGNBQWMsOEJBQThCLGNBQWMsNEJBQTRCLHFCQUFxQixVQUFVLE9BQU8sK0JBQStCLElBQUksRUFBRSxvQ0FBb0Msa0VBQWtFLHdDQUF3QyxZQUFZLFNBQVMsZ0JBQWdCLDhCQUE4Qix5QkFBeUIsMkZBQTJGLG9CQUFvQiwwQkFBMEIsZ0JBQWdCLEtBQUsscUJBQXFCLDBCQUEwQixrQkFBa0IsME1BQTBNLGNBQWMsZUFBZSxTQUFTLEVBQUUsMEJBQTBCLGdFQUFnRSxXQUFXLFFBQVEsY0FBYyxrREFBa0QsS0FBSyxXQUFXLDhCQUE4Qix1QkFBdUIsYUFBYSxtQ0FBbUMsYUFBYSxXQUFXLHVCQUF1QixJQUFJLFNBQVMsSUFBSSxHQUFHLDhCQUE4QixRQUFRLElBQUksR0FBRyxnQkFBZ0IscUNBQXFDLEVBQUUsaUJBQWlCLHlCQUF5QixrQ0FBa0MsNkJBQTZCLDRDQUE0Qyx1QkFBdUIsUUFBUSxvQkFBb0IsVUFBVSxPQUFPLGlCQUFpQixLQUFLLFdBQVcsbUNBQW1DLFFBQVEsUUFBUSxrQkFBa0IsUUFBUSxhQUFhLHFDQUFxQyxNQUFNLDRDQUE0QyxtQ0FBbUMsaUNBQWlDLHFCQUFxQixrQkFBa0IsUUFBUSxnQkFBZ0IsZUFBZSxvQkFBb0IsSUFBSSxnTkFBZ04sZ0JBQWdCLHVDQUF1QyxzS0FBc0ssK0NBQStDLFNBQVMsNkJBQTZCLFVBQVUsNkJBQTZCLE1BQU0sWUFBWSxRQUFRLElBQUksSUFBSSxXQUFXLFFBQVEsS0FBSyxvQ0FBb0MsS0FBSywwQ0FBMEMsVUFBVSx5Q0FBeUMsWUFBWSxRQUFRLElBQUksSUFBSSxXQUFXLFFBQVEsS0FBSyw2Q0FBNkMsdUJBQXVCLGlGQUFpRixnQkFBZ0IsTUFBTSxhQUFhLE1BQU0sb0JBQW9CLE1BQU0sYUFBYSxNQUFNLGNBQWMsZ0JBQWdCLDRFQUE0RSxxSUFBcUksOERBQThELFFBQVEsa0JBQWtCLFFBQVEsSUFBSSxJQUFJLCtCQUErQixRQUFRLE9BQU8sc0RBQXNELGFBQWEscUVBQXFFLDJFQUEyRSxNQUFNLGFBQWEsdUVBQXVFLHlCQUF5QixzQ0FBc0MsU0FBUyw4d0JBQTh3QiwwQ0FBMEMsOEJBQThCLGdCQUFnQixrQkFBa0IsdUZBQXVGLG9EQUFvRCw2R0FBNkcseUJBQXlCLGtGQUFrRixvQkFBb0IsZ0JBQWdCLGtCQUFrQixzREFBc0Qsb0RBQW9ELGtIQUFrSCx5QkFBeUIsa0ZBQWtGLDRCQUE0QixrRkFBa0YsT0FBTyxzQkFBc0IsS0FBSyxhQUFhLElBQUksbURBQW1ELE1BQU0sYUFBYSxPQUFPLFFBQVEsWUFBWSxlQUFlLEdBQUcsb0NBQW9DLGdCQUFnQiw2Q0FBNkMsaURBQWlELElBQUksSUFBSSxJQUFJLElBQUksOENBQThDLGVBQWUsYUFBYSxxREFBcUQsTUFBTSxjQUFjLFdBQVcsK0JBQStCLFlBQVksV0FBVyxNQUFNLElBQUkseUJBQXlCLFFBQVEsZUFBZSxpQkFBaUIsMkJBQTJCLElBQUksMkVBQTJFLGFBQWEsdUNBQXVDLGdEQUFnRCxvRUFBb0UsbUNBQW1DLGdCQUFnQix1Q0FBdUMsb0xBQW9MLGFBQWEsNkNBQTZDLGtDQUFrQyxPQUFPLHdCQUF3QixpR0FBaUcsaUZBQWlGLHdCQUF3QixvREFBb0QsVUFBVSw4RUFBOEUsdUNBQXVDLHdCQUF3QixtQ0FBbUMsK0JBQStCLG1EQUFtRCxnQ0FBZ0MsK0hBQStILFdBQVcsNERBQTRELElBQUksRUFBRSx5QkFBeUIsd0JBQXdCLEVBQUUsS0FBSyw2Q0FBNkMsTUFBTSxhQUFhLE9BQU8sb0JBQW9CLG1FQUFtRSxrQkFBa0IsMkNBQTJDLGdFQUFnRSw2QkFBNkIsYUFBYSwrQkFBK0IsbUJBQW1CLDRCQUE0QixnRUFBZ0UsbUNBQW1DLHNCQUFzQixFQUFFLGVBQWUsWUFBWSx5Q0FBeUMsNEJBQTRCLFNBQVMsNkZBQTZGLGdCQUFnQiwwQ0FBMEMsbUZBQW1GLHNDQUFzQyxTQUFTLGFBQWEsZ0JBQWdCLDhCQUE4QixlQUFlLHNDQUFzQyxTQUFTLG1EQUFtRCxhQUFhLDJZQUEyWSxzQkFBc0IsYUFBYSxtQkFBbUIsZUFBZSx5Q0FBeUMsK0JBQStCLHlCQUF5QixtQ0FBbUMsMkJBQTJCLHdHQUF3RyxVQUFVLHFCQUFxQixpQkFBaUIsSUFBSSxXQUFXLE9BQU8sdUVBQXVFLDREQUE0RCx5REFBeUQsK0NBQStDLEtBQUssWUFBWSxLQUFLLGdCQUFnQixFQUFFLGdCQUFnQixpQ0FBaUMsV0FBVyxzQ0FBc0MsV0FBVyxlQUFlLGlCQUFpQixpQkFBaUIsb0RBQW9ELEVBQUUsR0FBRyxXQUFXLG9CQUFvQixjQUFjLGtFQUFrRSxjQUFjLDhCQUE4Qix3QkFBd0IsUUFBUSxNQUFNLDZDQUE2QyxnQkFBZ0IsOEJBQThCLGtCQUFrQixPQUFPLDRCQUE0QixpQkFBaUIsdUJBQXVCLGtDQUFrQyxvQkFBb0IsOENBQThDLDBCQUEwQixZQUFZLHNDQUFzQyxTQUFTLHFEQUFxRCxJQUFJLDBCQUEwQixVQUFVLGdCQUFnQiw0QkFBNEIsZ0JBQWdCLHFCQUFxQixtRUFBbUUsa0JBQWtCLDJDQUEyQyxnRUFBZ0UsNkJBQTZCLGFBQWEsK0JBQStCLG1CQUFtQiw0QkFBNEIsMkNBQTJDLG1GQUFtRixzQ0FBc0MsU0FBUyx5RUFBeUUsYUFBYSxRQUFRLHNDQUFzQyxTQUFTLDRDQUE0QyxtQ0FBbUMsVUFBVSxNQUFNLCtDQUErQyxxQkFBcUIsOENBQThDLDBCQUEwQixZQUFZLHNDQUFzQyxTQUFTLG1KQUFtSiw2Q0FBNkMsNklBQTZJLEVBQUUseUJBQXlCLHdCQUF3QixnQkFBZ0IsSUFBSSxzQ0FBc0MsNkJBQTZCLGFBQWEsNkJBQTZCLCtCQUErQixTQUFTLHVEQUF1RCxzQkFBc0IsVUFBVSxPQUFPLHVCQUF1QixpQkFBaUIsUUFBUSxjQUFjLG1CQUFtQixRQUFRLDJDQUEyQyxRQUFRLCtDQUErQyx1QkFBdUIsU0FBUyxnQkFBZ0IseUNBQXlDLDhDQUE4QyxPQUFPLHdCQUF3QixtQ0FBbUMsU0FBUyxnQkFBZ0Isa0NBQWtDLFFBQVEsY0FBYyxFQUFFLDhCQUE4Qiw0QkFBNEIsU0FBUyxnQkFBZ0IsSUFBSSxjQUFjLEdBQUcsK0RBQStELHlJQUF5SSxPQUFPLHlCQUF5Qix5Q0FBeUMsaUJBQWlCLGVBQWUsdUJBQXVCLFlBQVksdUJBQXVCLHFLQUFxSyxhQUFhLHNDQUFzQyxTQUFTLEVBQUUsYUFBYSxVQUFVLHNDQUFzQyxTQUFTLCtFQUErRSxvQkFBb0IseUJBQXlCLDJCQUEyQixjQUFjLG1CQUFtQixTQUFTLHNCQUFzQixTQUFTLDBCQUEwQiwrREFBK0QseUJBQXlCLHlCQUF5QixtREFBbUQsWUFBWSxvRUFBb0UsU0FBUyxvRUFBb0UsU0FBUyxnQkFBZ0IsZ0NBQWdDLHNLQUFzSyx1Q0FBdUMsRUFBRSxjQUFjLHdGQUF3Rix3QkFBd0IsVUFBVSxrT0FBa08saUJBQWlCLGlEQUFpRCwyQ0FBMkMsK0VBQStFLDZDQUE2QywrQ0FBK0MsMkNBQTJDLDJDQUEyQyw4REFBOEQsd0NBQXdDLHlHQUF5Ryx3RUFBd0Usd0VBQXdFLDJFQUEyRSw4QkFBOEIseUNBQXlDLGVBQWUsc0NBQXNDLFNBQVMsRUFBRSxzQkFBc0Isa0JBQWtCLE1BQU0sZUFBZSxpR0FBaUcsV0FBVyxhQUFhLFdBQVcsRUFBRSxNQUFNLHlFQUF5RSx3REFBd0QsRUFBRSxNQUFNLDBFQUEwRSwrQkFBK0IsRUFBRSxNQUFNLG9EQUFvRCxNQUFNLDJGQUEyRiw2QkFBNkIsRUFBRSxNQUFNLHlFQUF5RSw2QkFBNkIsY0FBYyxXQUFXLEdBQUcsTUFBTSxxRUFBcUUsTUFBTSx5RUFBeUUsTUFBTSxrREFBa0QsTUFBTSw4SEFBOEgsc0JBQXNCLGlEQUFpRCxHQUFHLG9EQUFvRCxzQkFBc0IscUVBQXFFLHdCQUF3QixnRUFBZ0Usc0JBQXNCLHdFQUF3RSxhQUFhLFlBQVksTUFBTSx1RUFBdUUsc0RBQXNELEVBQUUsV0FBVyxxREFBcUQsaURBQWlELEVBQUUsV0FBVyxxRUFBcUUsb0ZBQW9GLEVBQUUsVUFBVSxrQ0FBa0Msb0ZBQW9GLEVBQUUsNEJBQTRCLGtCQUFrQixNQUFNLHFFQUFxRSxxREFBcUQsRUFBRSxXQUFXLHFEQUFxRCxpREFBaUQsRUFBRSxXQUFXLGtEQUFrRCxtRUFBbUUsRUFBRSxVQUFVLHNDQUFzQyxtRUFBbUUsRUFBRSxVQUFVLGtDQUFrQyx5RUFBeUUsRUFBRSw0QkFBNEIsa0JBQWtCLE1BQU0sNkNBQTZDLE1BQU0sNEZBQTRGLE1BQU0sc0VBQXNFLGFBQWEsRUFBRSxNQUFNLHlEQUF5RCxNQUFNLCtDQUErQyxPQUFPLFlBQVksZUFBZSxRQUFRLE1BQU0sc0NBQXNDLFNBQVMsczlCQUFzOUIsZ0RBQWdELFFBQVEscUJBQXFCLHVFQUF1RSxXQUFXLDhLQUE4SyxjQUFjLDJCQUEyQix5QkFBeUIsb0ZBQW9GLE9BQU8sdUJBQXVCLGtDQUFrQyxzQ0FBc0Msb0NBQW9DLGNBQWMsZUFBZSxJQUFJLCtEQUErRCxHQUFHLHNIQUFzSCxVQUFVLHlCQUF5QixFQUFFLGlCQUFpQixJQUFJLFVBQVUsR0FBRyxxQ0FBcUMsMEJBQTBCLGtCQUFrQiw2QkFBNkIsMEJBQTBCLHVCQUF1QixFQUFFLDhCQUE4QixnQkFBZ0IsUUFBUSxrQkFBa0IsNkJBQTZCLFlBQVksa0NBQWtDLHFCQUFxQixXQUFXLHlJQUF5SSx1QkFBdUIsT0FBTyw4QkFBOEIsMElBQTBJLGNBQWMscUJBQXFCLDBFQUEwRSxTQUFTLGVBQWUsdUNBQXVDLFdBQVcsMEJBQTBCLDJCQUEyQixjQUFjLGVBQWUsT0FBTyxRQUFRLDREQUE0RCx5R0FBeUcsb0JBQW9CLDRCQUE0QixFQUFFLGNBQWMsZUFBZSxPQUFPLFFBQVEsMENBQTBDLGlHQUFpRyxnQ0FBZ0MsdUJBQXVCLHdCQUF3QixFQUFFLHdCQUF3QixjQUFjLEVBQUUsd0JBQXdCLFNBQVMsMkZBQTJGLG9CQUFvQix5QkFBeUIsd0JBQXdCLDRCQUE0QixjQUFjLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLHFDQUFxQywyQkFBMkIsY0FBYywwQkFBMEIsT0FBTyxRQUFRLGtEQUFrRCx5R0FBeUcsZ0JBQWdCLDRCQUE0QixFQUFFLDBEQUEwRCxZQUFZLGdDQUFnQyw2QkFBNkIsOERBQThELFVBQVUsNkJBQTZCLEVBQUUsK0ZBQStGLEVBQUUsZ0JBQWdCLHVGQUF1RixlQUFlLGVBQWUsMENBQTBDLGdDQUFnQyxFQUFFLGVBQWUsMkJBQTJCLGVBQWUsZzhCQUFnOEIseURBQXlELFdBQVcsaUNBQWlDLFdBQVcsaUNBQWlDLFVBQVUsa0NBQWtDLFFBQVEsc0JBQXNCLFVBQVUsaUNBQWlDLE1BQU0sb0NBQW9DLE9BQU8sa0NBQWtDLGFBQWEsZUFBZSwwREFBMEQsOEJBQThCLEVBQUUsV0FBVyxlQUFlLCtGQUErRixFQUFFLFFBQVEsZUFBZSxnREFBZ0QsRUFBRSxTQUFTLGVBQWUsMkZBQTJGLEVBQUUsWUFBWSw2QkFBNkIsMkJBQTJCLEVBQUUsUUFBUSx5QkFBeUIsV0FBVyx1QkFBdUIsYUFBYSxzQ0FBc0MsYUFBYSxxQ0FBcUMscUNBQXFDLGdCQUFnQixHQUFHLDJDQUEyQyxHQUFHLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGVBQWUsR0FBRyxtQkFBbUIsR0FBRyxzYkFBc2IsR0FBRyxtRUFBbUUsRUFBRSxzSEFBc0gsRUFBRSw4RkFBOEYsSUFBSSxHQUFHLElBQUksWUFBWSxJQUFJLGNBQWMsSUFBSSxHQUFHLElBQUksZUFBZSxJQUFJLEdBQUcsSUFBSSxhQUFhLElBQUksY0FBYyxJQUFJLEdBQUcsSUFBSSxjQUFjLElBQUksRUFBRSxJQUFJLGNBQWMsSUFBSSxHQUFHLElBQUksY0FBYyxJQUFJLEVBQUUsSUFBSSxjQUFjLElBQUksR0FBRyxJQUFJLGNBQWMsSUFBSSxFQUFFLElBQUksY0FBYyxJQUFJLEdBQUcsSUFBSSxjQUFjLElBQUksRUFBRSxJQUFJLGFBQWEsSUFBSSxnQkFBZ0IsSUFBSSxFQUFFLElBQUksa0JBQWtCLElBQUksRUFBRSxJQUFJLHVCQUF1QixJQUFJLEVBQUUsSUFBSSxhQUFhLEdBQUcsWUFBWSxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksb0JBQW9CLElBQUksT0FBTyxJQUFJLFVBQVUsSUFBSSxtQkFBbUIsSUFBSSxPQUFPLElBQUksb0JBQW9CLElBQUksR0FBRyxJQUFJLHFCQUFxQixJQUFJLE9BQU8sSUFBSSxVQUFVLElBQUksbUJBQW1CLElBQUksT0FBTyxJQUFJLDRCQUE0QixJQUFJLEdBQUcsSUFBSSxZQUFZLElBQUksY0FBYyxJQUFJLEdBQUcsSUFBSSxlQUFlLElBQUksR0FBRyxJQUFJLGFBQWEsSUFBSSxjQUFjLElBQUksR0FBRyxJQUFJLGNBQWMsSUFBSSxFQUFFLElBQUksY0FBYyxJQUFJLEdBQUcsSUFBSSxjQUFjLElBQUksRUFBRSxJQUFJLGNBQWMsSUFBSSxHQUFHLElBQUksY0FBYyxJQUFJLEVBQUUsSUFBSSxjQUFjLElBQUksR0FBRyxJQUFJLGNBQWMsSUFBSSxFQUFFLElBQUksYUFBYSxJQUFJLGdCQUFnQixJQUFJLEVBQUUsSUFBSSxrQkFBa0IsSUFBSSxFQUFFLElBQUksdUJBQXVCLElBQUksRUFBRSxJQUFJLGFBQWEsR0FBRyxZQUFZLElBQUksRUFBRSxJQUFJLEdBQUcsSUFBSSxvQkFBb0IsSUFBSSxPQUFPLElBQUksVUFBVSxJQUFJLG1CQUFtQixJQUFJLE9BQU8sSUFBSSxvQkFBb0IsSUFBSSxHQUFHLElBQUkscUJBQXFCLElBQUksT0FBTyxJQUFJLFVBQVUsSUFBSSxtQkFBbUIsSUFBSSxPQUFPLElBQUksK0RBQStELEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsdUdBQXVHLEVBQUUsb0hBQW9ILEVBQUUsSUFBSSxjQUFjLGlCQUFpQixpQkFBaUIsRUFBRSxPQUFPLEVBQUUsYUFBYSwyQkFBMkIsRUFBRSxhQUFhLDBCQUEwQixvQ0FBb0MsRUFBRSxHQUFHLEVBQUUsRUFBRSxjQUFjLFNBQVMsRUFBRSxHQUFHLEtBQUssT0FBTywyREFBMkQsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsWUFBWSxjQUFjLEVBQUUsSUFBSSxrQkFBa0IsVUFBVSxZQUFZLE1BQU0sd0ZBQXdGLDhCQUE4QixpQ0FBaUMsdUZBQXVGLFlBQVksd0JBQXdCLCtIQUErSCxvR0FBb0csYUFBYSxzR0FBc0csa0dBQWtHLGFBQWEsMkJBQTJCLG9EQUFvRCxrRUFBa0Usa0dBQWtHLGdDQUFnQyxvR0FBb0csYUFBYSxpR0FBaUcsd0VBQXdFLGFBQWEsNkNBQTZDLHNCQUFzQixLQUFLLGdCQUFnQixtRkFBbUYsd0VBQXdFLGFBQWEsZ0dBQWdHLHVFQUF1RSxhQUFhLGtHQUFrRyx5RUFBeUUsYUFBYSxnR0FBZ0csdUVBQXVFLGFBQWEsaUdBQWlHLHdFQUF3RSxhQUFhLGdHQUFnRyx1RUFBdUUsYUFBYSwyQkFBMkIsZ0JBQWdCLE1BQU0sdURBQXVELHNFQUFzRSxZQUFZLHdIQUF3SCx3RUFBd0Usb0tBQW9LLCtDQUErQyxxQ0FBcUMsbUJBQW1CLDZOQUE2TiwrQ0FBK0MsbUJBQW1CLG1CQUFtQixtSEFBbUgsK0NBQStDLGlCQUFpQixtQkFBbUIsNEdBQTRHLDJFQUEyRSxxR0FBcUcsdUVBQXVFLHdDQUF3QyxLQUFLLDBFQUEwRSx1RUFBdUUseUdBQXlHLDJFQUEyRSxxS0FBcUsscUVBQXFFLDRDQUE0Qyx1QkFBdUIsSUFBSSxvQkFBb0IsZUFBZSx3R0FBd0csMEZBQTBGLFNBQVMsTUFBTSxVQUFVLHdFQUF3RSxzRUFBc0UsdUtBQXVLLHVFQUF1RSx3R0FBd0cseUVBQXlFLDBHQUEwRyw0RUFBNEUsbUNBQW1DLE9BQU8sNkJBQTZCLGNBQWMscUNBQXFDLDJFQUEyRSxFQUFFLGFBQWEsY0FBYyw0Q0FBNEMsRUFBRSxTQUFTLHVCQUF1Qix3Q0FBd0MsRUFBRSxPQUFPLHVCQUF1QixzQ0FBc0MsRUFBRSxTQUFTLHVCQUF1Qix3Q0FBd0MsRUFBRSxRQUFRLHVCQUF1Qix1Q0FBdUMsRUFBRSxVQUFVLHVCQUF1Qix5Q0FBeUMsRUFBRSxRQUFRLHVCQUF1Qix1Q0FBdUMsRUFBRSxTQUFTLHVCQUF1Qix3Q0FBd0MsRUFBRSxRQUFRLHVCQUF1Qix1Q0FBdUMsRUFBRSxVQUFVLHVCQUF1Qix5Q0FBeUMsRUFBRSxhQUFhLHVCQUF1Qiw0Q0FBNEMsRUFBRSxPQUFPLHVCQUF1QixzQ0FBc0MsRUFBRSxNQUFNLHVCQUF1QixxQ0FBcUMsRUFBRSxRQUFRLHVCQUF1Qix1Q0FBdUMsRUFBRSxZQUFZLHlDQUF5Qyw0REFBNEQsa0JBQWtCLDhJQUE4SSxFQUFFLFFBQVEsdUJBQXVCLHNCQUFzQixFQUFFLFFBQVEseUNBQXlDLHFDQUFxQyxrQkFBa0Isa0dBQWtHLEVBQUUsWUFBWSx1QkFBdUIsMkNBQTJDLEVBQUUsV0FBVyx1QkFBdUIsZ0RBQWdELEVBQUUsY0FBYyx1QkFBdUIsaUZBQWlGLEVBQUUsZ0JBQWdCLHVCQUF1QixxREFBcUQsRUFBRSxjQUFjLHVCQUF1QixtREFBbUQsRUFBRSxTQUFTLHVCQUF1Qiw4Q0FBOEMsRUFBRSxTQUFTLHVCQUF1Qiw4Q0FBOEMsRUFBRSxZQUFZLHVCQUF1QixpREFBaUQsRUFBRSxZQUFZLDJDQUEyQyxPQUFPLGNBQWMsMENBQTBDLFlBQVksRUFBRSxFQUFFLGNBQWMsY0FBYywwQ0FBMEMsbUJBQW1CLEVBQUUsRUFBRSxjQUFjLGNBQWMsMENBQTBDLG1CQUFtQixFQUFFLEVBQUUsaUJBQWlCLHNEQUFzRCxhQUFhLGtEQUFrRCxhQUFhLGtEQUFrRCxpQkFBaUIsc0RBQXNELGNBQWMsbURBQW1ELFlBQVksaURBQWlELGNBQWMsbURBQW1ELGFBQWEsa0RBQWtELGVBQWUsb0RBQW9ELGFBQWEsa0RBQWtELGNBQWMsbURBQW1ELGFBQWEsa0RBQWtELFdBQVcsZ0RBQWdELGFBQWEsa0RBQWtELGVBQWUsb0RBQW9ELGtCQUFrQix1REFBdUQsZ0JBQWdCLFdBQVcsaUZBQWlGLFNBQVMsZ0JBQWdCLFdBQVcsaUZBQWlGLFVBQVUsaUNBQWlDLDREQUE0RCxFQUFFLGtCQUFrQixjQUFjLGtGQUFrRixVQUFVLE1BQU0sd0ZBQXdGLDhCQUE4QixpQ0FBaUMsdUZBQXVGLFlBQVksd0JBQXdCLCtIQUErSCx1RkFBdUYsa0lBQWtJLDZHQUE2RyxrSUFBa0ksMkdBQTJHLHFEQUFxRCxrR0FBa0cseUdBQXlHLDBFQUEwRSx5RUFBeUUsZ0hBQWdILGlEQUFpRCxtQ0FBbUMsT0FBTyw2QkFBNkIsU0FBUyx5REFBeUQsUUFBUSx5REFBeUQsU0FBUyx5REFBeUQsUUFBUSx5REFBeUQsa0JBQWtCLGNBQWMsMENBQTBDLDJEQUEyRCxFQUFFLEVBQUUsYUFBYSxjQUFjLDRDQUE0QyxFQUFFLE9BQU8sdUJBQXVCLDJDQUEyQyxFQUFFLFlBQVksdUJBQXVCLGdFQUFnRSxFQUFFLFlBQVksdUJBQXVCLGdFQUFnRSxFQUFFLGVBQWUsdUJBQXVCLGdFQUFnRSxFQUFFLGVBQWUsdUJBQXVCLGdFQUFnRSxFQUFFLGdCQUFnQix1QkFBdUIsMERBQTBELEVBQUUsVUFBVSx1QkFBdUIsOENBQThDLEVBQUUsUUFBUSx1QkFBdUIsc0ZBQXNGLGFBQWEsc0ZBQXNGLEVBQUUsZUFBZSxXQUFXLGlGQUFpRixTQUFTLGVBQWUsV0FBVyxpRkFBaUYsU0FBUyxZQUFZLG1HQUFtRyxlQUFlLGtCQUFrQixtR0FBbUcseUdBQXlHLCtDQUErQyxpQ0FBaUMsNERBQTRELEVBQUUsa0JBQWtCLGNBQWMsd0RBQXdELFVBQVUsTUFBTSx3QkFBd0Isc0JBQXNCLE1BQU0sZ0NBQWdDLDZFQUE2RSx3QkFBd0IsbUpBQW1KLG9HQUFvRyxrSUFBa0ksa0dBQWtHLHVIQUF1SCx5RUFBeUUsbUNBQW1DLE9BQU8sNkJBQTZCLG9CQUFvQiw4QkFBOEIsaUNBQWlDLHVGQUF1RixZQUFZLFNBQVMseURBQXlELFFBQVEseURBQXlELFNBQVMseURBQXlELFFBQVEseURBQXlELGtCQUFrQixjQUFjLDBDQUEwQywyREFBMkQsRUFBRSxFQUFFLGFBQWEsY0FBYyw0Q0FBNEMsRUFBRSxZQUFZLHVCQUF1Qix3RUFBd0UsRUFBRSxZQUFZLHVCQUF1Qix3RUFBd0UsRUFBRSxlQUFlLHVCQUF1Qix3RUFBd0UsRUFBRSxlQUFlLHVCQUF1Qix3RUFBd0UsRUFBRSxnQkFBZ0IsdUJBQXVCLDBEQUEwRCxFQUFFLGVBQWUsV0FBVyxpRkFBaUYsU0FBUyxlQUFlLFdBQVcsaUZBQWlGLFVBQVUsaUNBQWlDLDREQUE0RCxFQUFFLGtCQUFrQixVQUFVLG1GQUFtRiw4QkFBOEIsaUNBQWlDLHdGQUF3RixZQUFZLHdCQUF3QixrQ0FBa0MsbURBQW1ELEVBQUUsa0JBQWtCLFVBQVUsTUFBTSx3RkFBd0YsOEJBQThCLGlDQUFpQyxxRkFBcUYsWUFBWSxtQ0FBbUMsOEJBQThCLGlDQUFpQyxpQ0FBaUMsWUFBWSx3QkFBd0IsK0hBQStILGtHQUFrRyw4R0FBOEcsZ0dBQWdHLG1DQUFtQyxPQUFPLGlEQUFpRCxhQUFhLGNBQWMsNENBQTRDLEVBQUUsU0FBUyx1QkFBdUIsNkRBQTZELEVBQUUsU0FBUyx1QkFBdUIsNkRBQTZELEVBQUUsY0FBYyxXQUFXLGlGQUFpRixnQ0FBZ0MsY0FBYyxXQUFXLGlGQUFpRixpQ0FBaUMsK0JBQStCLDBEQUEwRCxFQUFFLGtCQUFrQixVQUFVLDhDQUE4Qyw4QkFBOEIsaUNBQWlDLHVGQUF1RixZQUFZLHdCQUF3QixpQ0FBaUMsNkJBQTZCLEVBQUUsa0JBQWtCLFVBQVUsaURBQWlELDhCQUE4QixpQ0FBaUMsMEZBQTBGLFlBQVksd0JBQXdCLG9DQUFvQyxnQ0FBZ0MsRUFBRSxrQkFBa0IsVUFBVSw0Q0FBNEMsOEJBQThCLGlDQUFpQyxxRkFBcUYsWUFBWSx3QkFBd0IsK0JBQStCLDJCQUEyQixFQUFFLGtCQUFrQixjQUFjLGlDQUFpQyxVQUFVLHdCQUF3Qiw4QkFBOEIsMEJBQTBCLEVBQUUsa0JBQWtCLGNBQWMscUNBQXFDLFVBQVUsd0JBQXdCLGtDQUFrQyw4QkFBOEIsRUFBRSxrQkFBa0IsVUFBVSw4QkFBOEIsaUNBQWlDLHNGQUFzRixhQUFhLGdDQUFnQyw0QkFBNEIsRUFBRSxrQkFBa0IsVUFBVSxpREFBaUQsOEJBQThCLGlDQUFpQyxxRkFBcUYsWUFBWSx3QkFBd0IsK0JBQStCLDJCQUEyQixFQUFFLGtCQUFrQixVQUFVLElBQUksZUFBZSx5Q0FBeUMseUVBQXlFLHNGQUFzRixZQUFZLHlCQUF5Qiw0RUFBNEUsb0NBQW9DLGtNQUFrTSxhQUFhLG9GQUFvRix1SEFBdUgsOEZBQThGLHFIQUFxSCx1SkFBdUoscUVBQXFFLHFDQUFxQyxjQUFjLHNCQUFzQixTQUFTLGNBQWMsd0JBQXdCLHlDQUF5QyxFQUFFLFNBQVMsY0FBYyx3QkFBd0IseUNBQXlDLEVBQUUsWUFBWSxjQUFjLDBCQUEwQix5Q0FBeUMsRUFBRSxZQUFZLHNCQUFzQixvQ0FBb0Msa0ZBQWtGLEVBQUUsa0JBQWtCLGNBQWMsK0ZBQStGLGFBQWEsMkNBQTJDLCtDQUErQyxxQkFBcUIsZUFBZSxjQUFjLFVBQVUsOENBQThDLDhCQUE4QixpQ0FBaUMsdUZBQXVGLFlBQVksSUFBSSxlQUFlLDhCQUE4QixlQUFlLHdCQUF3QixvSEFBb0gsU0FBUyxnQkFBZ0IsdUJBQXVCLFFBQVEsS0FBSyx1QkFBdUIsMkRBQTJELEVBQUUsb0NBQW9DLDRCQUE0Qiw0Q0FBNEMsS0FBSyx1QkFBdUIsUUFBUSxnQ0FBZ0MsRUFBRSw2REFBNkQsNkNBQTZDLGFBQWEscUJBQXFCLHlFQUF5RSxLQUFLLHlCQUF5QixnQkFBZ0IsZ0JBQWdCLFFBQVEsS0FBSyx1QkFBdUIsMkRBQTJELEdBQUcsdURBQXVELFNBQVMsZ0JBQWdCLGtDQUFrQyxRQUFRLG9DQUFvQyxFQUFFLFNBQVMsaUZBQWlGLFlBQVkseUJBQXlCLFVBQVUsbUNBQW1DLGlEQUFpRCxpQkFBaUIsd0RBQXdELG9DQUFvQywyQ0FBMkMsRUFBRSxZQUFZLElBQUksRUFBRSxRQUFRLGNBQWMsaUNBQWlDLEVBQUUsY0FBYyxjQUFjLHVDQUF1QyxFQUFFLFVBQVUsY0FBYyx5QkFBeUIsMEJBQTBCLEVBQUUsRUFBRSxTQUFTLGNBQWMsb0VBQW9FLHVDQUF1Qyx1QkFBdUIsRUFBRSxZQUFZLHFCQUFxQixNQUFNLEVBQUUsWUFBWSxjQUFjLHdCQUF3QixFQUFFLFFBQVEsU0FBUyw0RUFBNEUsY0FBYyx5QkFBeUIsRUFBRSxRQUFRLFNBQVMsc0VBQXNFLGNBQWMseUJBQXlCLEVBQUUsY0FBYyxxQkFBcUIsbUJBQW1CLFNBQVMsc0JBQXNCLGlCQUFpQixxQkFBcUIsY0FBYyxzQkFBc0IsRUFBRSxnQ0FBZ0MsNEJBQTRCLEVBQUUsbURBQW1ELG1EQUFtRCx3REFBd0QsY0FBYyxPQUFPLFdBQVcsU0FBUyw0Q0FBNEMsb0JBQW9CLGtDQUFrQyxjQUFjLHlCQUF5QixFQUFFLFlBQVksU0FBUywwRUFBMEUsS0FBSyxvQkFBb0IsS0FBSyxnQkFBZ0Isb0JBQW9CLE9BQU8sY0FBYyx5QkFBeUIsRUFBRSxRQUFRLDBDQUEwQyxxQ0FBcUMsaUZBQWlGLCtCQUErQixrRkFBa0YsNkJBQTZCLDZFQUE2RSxFQUFFLGtCQUFrQixVQUFVLElBQUksTUFBTSxpREFBaUQscURBQXFELE9BQU8sYUFBYSxzQkFBc0IsY0FBYyxPQUFPLDRCQUE0QixpQ0FBaUMsU0FBUyxvQkFBb0IsNERBQTRELHlHQUF5RyxvREFBb0QsaUNBQWlDLGdEQUFnRCxZQUFZLEdBQUcsV0FBVyxnQkFBZ0IsT0FBTyxhQUFhLHNCQUFzQixhQUFhLGlCQUFpQixpQ0FBaUMsRUFBRSwrQkFBK0IsMkJBQTJCLGVBQWUsa0RBQWtELGtFQUFrRSxrQ0FBa0MsaUNBQWlDLGdEQUFnRCxhQUFhLGNBQWMsMEJBQTBCLG9DQUFvQyxzQ0FBc0MsRUFBRSxVQUFVLHNDQUFzQywyQ0FBMkMsbUNBQW1DLG9DQUFvQyxzREFBc0QsbURBQW1ELHNDQUFzQyxvQ0FBb0Msd0RBQXdELHNEQUFzRCw2Q0FBNkMsNkNBQTZDLG1EQUFtRCxlQUFlLGtCQUFrQixVQUFVLElBQUksTUFBTSw2QkFBNkIsMEVBQTBFLHVGQUF1RixZQUFZLDhEQUE4RCx1Q0FBdUMsaUNBQWlDLGdCQUFnQixpQ0FBaUMsOEJBQThCLG9HQUFvRyxhQUFhLG9CQUFvQiwrQkFBK0IsY0FBYyx5QkFBeUIsaUJBQWlCLDRCQUE0QixxQkFBcUIsY0FBYyxnQkFBZ0Isb0JBQW9CLDREQUE0RCxFQUFFLG9EQUFvRCxnQkFBZ0Isa0RBQWtELFdBQVcsc0JBQXNCLFVBQVUsR0FBRyxZQUFZLGNBQWMsZ0ZBQWdGLEdBQUcsMEJBQTBCLGtCQUFrQixVQUFVLElBQUksZUFBZSx1Q0FBdUMsMkRBQTJELHNCQUFzQixzREFBc0QsZ0JBQWdCLGlCQUFpQiwyREFBMkQsa0ZBQWtGLFdBQVcsZ0JBQWdCLG1CQUFtQixtQkFBbUIsVUFBVSxZQUFZLE9BQU8saUJBQWlCLHlEQUF5RCw4QkFBOEIsVUFBVSxTQUFTLFlBQVksV0FBVyxLQUFLLG1CQUFtQixtQkFBbUIsVUFBVSxlQUFlLE9BQU8saUJBQWlCLHFFQUFxRSxpQkFBaUIsT0FBTyxVQUFVLGtCQUFrQixpRUFBaUUsNEJBQTRCLDhCQUE4QiwrQ0FBK0MsY0FBYywrREFBK0QsaUNBQWlDLCtCQUErQixpQ0FBaUMsdURBQXVELGlDQUFpQyw4QkFBOEIsaUNBQWlDLElBQUksNkNBQTZDLGtEQUFrRCxFQUFFLGtCQUFrQixVQUFVLElBQUksZUFBZSw2QkFBNkIseUVBQXlFLHNGQUFzRixZQUFZLHlFQUF5RSxnR0FBZ0csWUFBWSxtRkFBbUYsOEZBQThGLGFBQWEsOEJBQThCLHlDQUF5Qyw0Q0FBNEMsaUJBQWlCLDBHQUEwRyxZQUFZLHVCQUF1QixRQUFRLGNBQWMsb0JBQW9CLEdBQUcsOEJBQThCLDBGQUEwRixjQUFjLDhDQUE4QyxHQUFHLGtCQUFrQixnQkFBZ0IseUJBQXlCLGtCQUFrQiwyQkFBMkIsVUFBVSxJQUFJLGVBQWUsNkJBQTZCLDBFQUEwRSx1RkFBdUYsWUFBWSxtREFBbUQsNEJBQTRCLG9HQUFvRyxFQUFFLDZGQUE2RixjQUFjLDJCQUEyQixxQkFBcUIsNkJBQTZCLG1EQUFtRCxFQUFFLDREQUE0RCxHQUFHLGNBQWMsa0JBQWtCLGdCQUFnQix5QkFBeUIsa0JBQWtCLDJCQUEyQixVQUFVLElBQUksZUFBZSw2QkFBNkIsdUVBQXVFLG9GQUFvRixZQUFZLHVGQUF1Rix3RkFBd0YsR0FBRyxtQkFBbUIsY0FBYyx3Q0FBd0MsZ0JBQWdCLGtDQUFrQywrREFBK0QsMkVBQTJFLE9BQU8sd0JBQXdCLEdBQUcsY0FBYyxnQkFBZ0Isc0JBQXNCLCtEQUErRCwyRUFBMkUsT0FBTywwQkFBMEIsb0NBQW9DLGdEQUFnRCxFQUFFLG1CQUFtQixVQUFVLElBQUksZUFBZSw2QkFBNkIsdUVBQXVFLG9GQUFvRixZQUFZLGdCQUFnQiwyRUFBMkUsaUhBQWlILHdGQUF3RiwrR0FBK0csYUFBYSwwQkFBMEIsY0FBYyxjQUFjLGdCQUFnQix5Q0FBeUMsNkNBQTZDLE9BQU8sd0JBQXdCLHFFQUFxRSx3REFBd0QsU0FBUyxlQUFlLHNCQUFzQix5Q0FBeUMsRUFBRSxTQUFTLGVBQWUsc0JBQXNCLHlDQUF5QyxFQUFFLFVBQVUsOEJBQThCLFlBQVksc0JBQXNCLHFDQUFxQyxnRUFBZ0UsRUFBRSxtQkFBbUIsY0FBYyxpREFBaUQsVUFBVSxJQUFJLE1BQU0sNkJBQTZCLDRFQUE0RSx5RkFBeUYsWUFBWSxnQkFBZ0IsdUJBQXVCLDRJQUE0SSx3REFBd0QsRUFBRSxnQkFBZ0IsdUJBQXVCLDRJQUE0SSwyREFBMkQsRUFBRSxPQUFPLHFDQUFxQyxVQUFVLG9DQUFvQyxXQUFXLG9DQUFvQyx1RUFBdUUsMkJBQTJCLGtDQUFrQyxnRUFBZ0UsMkJBQTJCLEVBQUUsR0FBRyxXQUFXLDhCQUE4QixpQ0FBaUMsbURBQW1ELG1FQUFtRSxtREFBbUQsY0FBYyxHQUFHLGFBQWEsc0JBQXNCLGFBQWEseUJBQXlCLFdBQVcsZUFBZSwrQ0FBK0MsRUFBRSxXQUFXLGVBQWUsdUJBQXVCLEVBQUUsYUFBYSxxQkFBcUIsbUJBQW1CLHFCQUFxQixxQkFBcUIsZUFBZSwyRkFBMkYsR0FBRyxpQkFBaUIsbUJBQW1CLGFBQWEsMEJBQTBCLFVBQVUsSUFBSSxNQUFNLDZCQUE2QixrQ0FBa0MsaUNBQWlDLEdBQUcsc0NBQXNDLG9DQUFvQyxFQUFFLG1CQUFtQixVQUFVLDZCQUE2Qiw4QkFBOEIsaUNBQWlDLDZFQUE2RSxZQUFZLE9BQU8sNkJBQTZCLFlBQVksd0JBQXdCLGlCQUFpQixlQUFlLG9DQUFvQyxFQUFFLHlDQUF5QyxzQ0FBc0MsRUFBRSxtQkFBbUIsVUFBVSw0QkFBNEIsaURBQWlELGlDQUFpQyxxRkFBcUYsWUFBWSxrRkFBa0YsaURBQWlELGlDQUFpQyxpRUFBaUUsWUFBWSx1QkFBdUIsY0FBYyx3QkFBd0IsV0FBVyxTQUFTLHFDQUFxQyxTQUFTLGFBQWEsU0FBUyxxQ0FBcUMsU0FBUyxXQUFXLFNBQVMscUNBQXFDLFNBQVMsdUJBQXVCLG9CQUFvQixrQkFBa0IsRUFBRSx1QkFBdUIseURBQXlELGtCQUFrQixHQUFHLDBCQUEwQixtQkFBbUIsVUFBVSw0RUFBNEUsaUZBQWlGLDZCQUE2QixpQ0FBaUMscUZBQXFGLFlBQVksNkdBQTZHLDZCQUE2QixpQ0FBaUMsaUVBQWlFLFlBQVksdUJBQXVCLFdBQVcseUJBQXlCLDRDQUE0QywwQ0FBMEMsRUFBRSxtQkFBbUIsU0FBUyxzQkFBc0IsVUFBVSxJQUFJLE1BQU0sNkJBQTZCLGdHQUFnRyx3RkFBd0YsWUFBWSw0RUFBNEUsc0RBQXNELGlEQUFpRCxLQUFLLHlDQUF5QyxxQ0FBcUMsRUFBRSxtQkFBbUIsWUFBWSx3QkFBd0IsYUFBYSxvR0FBb0csVUFBVSxJQUFJLGVBQWUseURBQXlELGFBQWEseURBQXlELFlBQVksZ0JBQWdCLHdEQUF3RCw0QkFBNEIsMkRBQTJELHdDQUF3QywwQ0FBMEMsNEJBQTRCLEVBQUUsa0dBQWtHLEdBQUcsd0NBQXdDLG1DQUFtQyw0QkFBNEIsRUFBRSxtR0FBbUcsMEJBQTBCLFVBQVUsd0JBQXdCLDRDQUE0QyxpSUFBaUksVUFBVSw0REFBNEQsaUNBQWlDLDhGQUE4Riw2QkFBNkIsTUFBTSxtQ0FBbUMsaUNBQWlDLEVBQUUsZ0ZBQWdGLDZCQUE2QixHQUFHLG9GQUFvRixpQ0FBaUMsNkVBQTZFLHVCQUF1QixjQUFjLEtBQUssbUNBQW1DLGlDQUFpQyxFQUFFLHNDQUFzQyw2QkFBNkIsdUlBQXVJLE9BQU8sd0JBQXdCLHVCQUF1QiwrREFBK0QsZ0RBQWdELDJDQUEyQyxpQkFBaUIsOEJBQThCLCtCQUErQixFQUFFLG1CQUFtQixVQUFVLG1HQUFtRyxTQUFTLDRCQUE0QiwwQ0FBMEMsMkNBQTJDLEVBQUUsbUJBQW1CLFVBQVUsNEZBQTRGLFNBQVMsNEJBQTRCLDBDQUEwQywyQ0FBMkMsRUFBRSxtQkFBbUIsVUFBVSxJQUFJLE1BQU0sc0NBQXNDLDBHQUEwRyw0QkFBNEIsRUFBRSxnQkFBZ0IsNEJBQTRCLHlDQUF5Qyw0R0FBNEcsRUFBRSxtQkFBbUIsVUFBVSxJQUFJLE1BQU0sZ0NBQWdDLGFBQWEsdUJBQXVCLCtCQUErQixnQ0FBZ0MsTUFBTSxFQUFFLG1DQUFtQyxzRUFBc0UsWUFBWSx1Q0FBdUMsY0FBYyxFQUFFLElBQUksc0VBQXNFLFlBQVksdUNBQXVDLGNBQWMsR0FBRyxjQUFjLDRCQUE0Qix1Q0FBdUMsa0dBQWtHLEVBQUUsbUJBQW1CLFVBQVUsMkNBQTJDLDhCQUE4QixpQ0FBaUMsb0ZBQW9GLFlBQVksT0FBTyw4QkFBOEIsaUNBQWlDLDBCQUEwQiw4QkFBOEIsbUJBQW1CLFVBQVUsSUFBSSxNQUFNLHNDQUFzQyw4QkFBOEIsNEJBQTRCLEVBQUUsU0FBUyx1QkFBdUIsZ0JBQWdCLG1CQUFtQixVQUFVLElBQUksZUFBZSw2QkFBNkIsbUNBQW1DLHNDQUFzQyxpQ0FBaUMsRUFBRSxvSEFBb0gsa0NBQWtDLEVBQUUsS0FBSywrQkFBK0IsaUNBQWlDLEVBQUUsb0VBQW9FLDZCQUE2Qiw0QkFBNEIsa0NBQWtDLEdBQUcsbUJBQW1CLGVBQWUsa0NBQWtDLEdBQUcsaUJBQWlCLG1CQUFtQixVQUFVLGdHQUFnRyw0Q0FBNEMsU0FBUyw0QkFBNEIsaUJBQWlCLG9EQUFvRCxVQUFVLEdBQUcsMEJBQTBCLFVBQVUsR0FBRyxrQkFBa0IsSUFBSSx3Q0FBd0MsV0FBVywwQ0FBMEMsT0FBTywrQkFBK0IsWUFBWSwyQkFBMkIsR0FBRyxFQUFFLE9BQU8sK0JBQStCLFlBQVksMkJBQTJCLEdBQUcsYUFBYSwwQ0FBMEMsMkNBQTJDLFVBQVUsb0JBQW9CLG9DQUFvQyxrNUJBQWs1QixpQ0FBaUMsT0FBTyxFQUFFLDJCQUEyQixnQkFBZ0IsWUFBWSxnQkFBZ0IsOENBQThDLGdCQUFnQix1ZEFBdWQsaUJBQWlCLHNPQUFzTyxvQkFBb0IsZUFBZSxzQkFBc0IsZUFBZSx1QkFBdUIsZUFBZSxzQkFBc0IsZUFBZSxvQkFBb0IsZUFBZSxFQUFFLG9CQUFvQixNQUFNLGNBQWMsV0FBVywrQkFBK0IsWUFBWSxXQUFXLE1BQU0sSUFBSSx3Q0FBd0MsUUFBUSxlQUFlLGlCQUFpQiwyQkFBMkIsS0FBSyw2QkFBNkIsU0FBUyxpQ0FBbUIsSUFBSSxrQ0FBa0MsK0JBQStCLG1DQUFtQyxpQkFBaUIsMENBQTBDLGlDQUFtQixZQUFZLGlDQUFtQixPQUFPLDBDQUEwQyxPQUFPLGlDQUFtQixNQUFNLElBQUksSUFBSSxPQUFPLHlFQUF5RSxpQ0FBbUIsaUJBQWlCLDhHQUE4RywwQkFBMEIsaUNBQW1CLE1BQU0sU0FBUyxlQUFlLGNBQWMsaUJBQWlCLG1DQUFtQyxpREFBaUQsY0FBYyxFQUFFLHVCQUF1QixpQ0FBbUIsV0FBVyxJQUFJLGlDQUFtQixXQUFXLGVBQWUsaUNBQW1CLFVBQVUsaUNBQW1CLG9DQUFvQyx1QkFBdUIsRUFBRSxDQUFDLGlDQUFtQixvREFBb0QsaUNBQW1CLE9BQU8sNEZBQTRGLGVBQWUsd0NBQXdDLFNBQVMsRUFBRSxDQUFDLGlDQUFtQixXQUFXLElBQUksMEJBQW1CLElBQUksOEJBQThCLGFBQWEsaUNBQW1CLEdBQUcsMEJBQW1CLEVBQUUsaUNBQW1CLEdBQUcsMEJBQW1CLEVBQUUsK0hBQStILEVBQUUsWUFBWSxpQ0FBbUIsMkxBQTJMLGlDQUFtQixRQUFRLGlDQUFtQiw4S0FBOEssaUNBQW1CLFFBQVEsaUNBQW1CLGtFQUFrRSxpQ0FBbUIsUUFBUSxpQ0FBbUIsaU1BQWlNLGlDQUFtQixRQUFRLGlDQUFtQixxTEFBcUwsaUNBQW1CLFFBQVEsaUNBQW1CLG9MQUFvTCxpQ0FBbUIsUUFBUSxpQ0FBbUIsME9BQTBPLHNJQUFzSSxNQUFNLGlDQUFtQiwwUEFBMFAsc0lBQXNJLE1BQU0saUNBQW1CLDJDQUEyQyxpQ0FBbUIsZ0RBQWdELGlDQUFtQixxQ0FBcUMsaUNBQW1CLFVBQVUsaUNBQW1CLG9JQUFvSSxrQkFBa0IseUNBQXlDLGtEQUFrRCxXQUFXLGNBQWMsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFlBQVksRUFBRSxTQUFTLGdCQUFnQixxQkFBcUIsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxPQUFPLGlDQUFpQyw0ekJBQTR6QixlQUFlLHFDQUFxQyxpQkFBaUIsSUFBZ0MscUNBQXFDLG1LQUFtSyxZQUFZLGNBQWMsc0NBQXNDLFlBQVksMkJBQTJCLDBEQUEwRCx1Q0FBdUMseURBQXlELElBQUksaUNBQW1CLHdDQUF3QyxlQUFlLGtEQUFrRCxJQUFJLHdCQUF3QixpQkFBaUIsMkNBQTJDLGdCQUFnQiwrRUFBK0UsR0FBRyx3QkFBd0IsRUFBRSxLQUFLLFVBQVUsY0FBYywwREFBMEQsd0NBQXdDLDZCQUE2QiwrQkFBK0IsNkJBQTZCLHlFQUF5RSw2UEFBNlAsU0FBUywyQ0FBMkMsNkNBQTZDLDZCQUE2QiwrQkFBK0IsNkJBQTZCLDhFQUE4RSw2UEFBNlAsU0FBUyx1Q0FBdUMsd0NBQXdDLDZCQUE2QiwrQkFBK0IsNkJBQTZCLHFFQUFxRSwwTkFBME4sU0FBUyx1Q0FBdUMsNkNBQTZDLDZCQUE2QiwrQkFBK0IsNkJBQTZCLDBFQUEwRSwwTkFBME4sU0FBUyxvRUFBb0UsS0FBSyx3QkFBd0IsSUFBSSxxQkFBcUIsU0FBUyxHQUFHLGtCQUFrQixtQkFBbUIsZ0hBQWdILGNBQWMsc0NBQXNDLHNFQUFzRSw4QkFBOEIsT0FBTyxpQ0FBbUIsdUNBQXVDLGVBQWUsa0RBQWtELHFGQUFxRixlQUFlLHVEQUF1RCxxQkFBcUIsd0RBQXdELCtCQUErQiw0S0FBNEssd0NBQXdDLHVCQUF1QixzQkFBc0IsMEJBQTBCLGVBQWUsb0JBQW9CLHVEQUF1RCx3QkFBd0IsNERBQTRELEVBQUUsc0JBQXNCLElBQUksa0JBQWtCLGtCQUFrQixlQUFlLGlDQUFpQyxXQUFXLEtBQUssV0FBVyxzQ0FBc0MsbUVBQW1FLHdEQUF3RCxzREFBc0QsSUFBSSxpQkFBaUIsc0RBQXNELElBQUksVUFBVSx1RUFBdUUscUNBQXFDLFNBQVMsSUFBSSwrQkFBK0IsWUFBWSxNQUFNLEdBQUcscUJBQXFCLFNBQVMsc0JBQXNCLFlBQVkscUNBQXFDLEdBQUcscUJBQXFCLDRCQUE0QixXQUFXLG9CQUFvQix1REFBdUQsWUFBWSx5Q0FBeUMsV0FBVywwQkFBMEIseUdBQXlHLGVBQWUsdUJBQXVCLElBQUksa0NBQWtDLHVCQUF1QixNQUFNLGNBQWMsc0JBQXNCLG1CQUFtQixTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsU0FBUyxlQUFlLHVCQUF1QixJQUFJLGtDQUFrQyx1QkFBdUIsTUFBTSxjQUFjLG1CQUFtQixTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsU0FBUywyQkFBMkIsSUFBSSx3QkFBd0IsU0FBUyxLQUFLLE9BQU8seUNBQXlDLGVBQWUsa0JBQWtCLHVCQUF1QixpQ0FBaUMsbUJBQW1CLGNBQWMsdUJBQXVCLGNBQWMsd0JBQXdCLFVBQVUsR0FBRyxpQkFBaUIsYUFBYSx3QkFBd0IscUJBQXFCLFlBQVksZ0JBQWdCLDBFQUEwRSx3R0FBd0csWUFBWSxJQUFJLGNBQWMsbUJBQW1CLFlBQVksd0RBQXdELEtBQUssdUJBQXVCLEtBQUssa0hBQWtILHlDQUF5QyxrQkFBa0IsTUFBTSx5QkFBeUIsb0JBQW9CLDhCQUE4QixTQUFTLGtDQUFrQyxTQUFTLDBFQUEwRSxJQUFJLFNBQVMseUNBQXlDLGFBQWEsTUFBTSwyQkFBMkIsaUJBQWlCLE1BQU0sb0JBQW9CLDJCQUEyQixNQUFNLCtCQUErQixTQUFTLGNBQWMsU0FBUyxZQUFZLFFBQVEsTUFBTSxxQkFBcUIsT0FBTyxrQ0FBa0MsaUJBQWlCLE1BQU0sNEZBQTRGLDhHQUE4RyxnQkFBZ0IsUUFBUSwyQkFBMkIsK0NBQStDLFVBQVUsZ05BQWdOLEVBQUUsRUFBRSxzQkFBc0IsUUFBUSxPQUFPLHVNQUF1TSxFQUFFLG1CQUFtQixxQkFBcUIsWUFBWSwyQkFBMkIsZ0JBQWdCLFVBQVUsK0VBQStFLDZCQUE2QixnRkFBZ0YscUNBQXFDLEdBQUcsK0JBQStCLGtDQUFrQyxpREFBaUQsbUJBQW1CLDREQUE0RCxrQkFBa0IsSUFBSSx5QkFBeUIsbUJBQW1CLDRCQUE0Qiw4Q0FBOEMsYUFBYSxrR0FBa0csRUFBRSxLQUFLLEVBQUUsSUFBSSxlQUFlLG9CQUFvQixzQkFBc0Isa0JBQWtCLFNBQVMsNkJBQTZCLGdJQUFnSSxTQUFTLGFBQWEsK0pBQStKLGVBQWUscUJBQXFCLHlCQUF5Qix5QkFBeUIsbUNBQW1DLGtEQUFrRCw4QkFBOEIsMEJBQTBCLGtHQUFrRyxNQUFrQywyRUFBMkUsNEdBQTRHLEdBQUcsdUNBQXVDLGVBQWUsZUFBZSxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLGlCQUFpQixxQkFBcUIsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxlQUFlLHFCQUFxQiwyRUFBMkUscWZBQXFmLG9EQUFvRCwwRkFBMEYsS0FBSyxXQUFXLDJCQUEyQixlQUFlLHFCQUFxQiwyRUFBMkUscWpCQUFxakIsb0RBQW9ELHVHQUF1RyxLQUFLLFdBQVcsMkJBQTJCLGVBQWUsc0NBQXNDLDhFQUE4RSxtQkFBbUIsd0JBQXdCLDRGQUE0RixtQkFBbUIsa0dBQWtHLG1CQUFtQiw0R0FBNEcsbUJBQW1CLG1GQUFtRixtQkFBbUIsZ0ZBQWdGLG9CQUFvQixjQUFjLG1CQUFtQiwwRUFBMEUsc0hBQXNILHF4RkFBcXhGLEVBQUUsbUJBQW1CLGNBQWMsbUJBQW1CLDBFQUEwRSx5R0FBeUcsNnFDQUE2cUMsRUFBRSxtQkFBbUIsY0FBYyxtQkFBbUIsMkVBQTJFLHdIQUF3SCxxREFBcUQsb0JBQW9CLHFEQUFxRCxvQkFBb0Isdy9DQUF3L0MsR0FBRyxtQkFBbUIsY0FBYyxtQkFBbUIsMEVBQTBFLGlHQUFpRyxnUUFBZ1EsRUFBRSxtQkFBbUIsY0FBYyxxQkFBcUIsd0VBQXdFLHNFQUFzRSxneExBQWd4TCxFQUFFLHFGQUFxRixnR0FBZ0csK0JBQStCLDBEQUEwRCxvQ0FBb0MsRUFBRSxFQUFFLEdBQUcsbUJBQW1CLE9BQU8saUNBQW1CLHNDQUFzQyxpQ0FBbUIsVUFBVSxpQ0FBbUIsMkNBQTJDLGlDQUFtQixPQUFPLGVBQWUsNENBQTRDLHVGQUF1RixrQ0FBa0MsZUFBZSx1QkFBdUIsOENBQThDLE1BQU0sK0JBQStCLHdFQUF3RSxhQUFhLFNBQVMsMEJBQTBCLGVBQWUsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxlQUFlLGtFQUFrRSxtQkFBbUIseUJBQXlCLHVDQUF1QywrQkFBK0IsSUFBSSxpQ0FBaUMsdUJBQXVCLE1BQU0sY0FBYyw0RkFBNEYsV0FBVyxLQUFLLFdBQVcsd0JBQXdCLHFCQUFxQixnSEFBZ0gscUJBQXFCLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLFNBQVMsaUNBQWlDLGdFQUFnRSxJQUFJLGFBQWEsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxHQUFHLEtBQUssVUFBVSxrQ0FBa0MsZ0JBQWdCLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYywrQkFBK0IseUJBQXlCLHNCQUFzQixPQUFPLHFNQUFxTSx1RUFBdUUsR0FBRyxFQUFFLGNBQWMsd0VBQXdFLHdEQUF3RCx3QkFBd0Isc0RBQXNELHVEQUF1RCx3REFBd0QsbURBQW1ELE9BQU8sRUFBRSxxQkFBcUIsc0RBQXNELGtCQUFrQixHQUFHLHNCQUFzQixrSEFBa0gsdUVBQXVFLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxFQUFFLG1CQUFtQixxREFBcUQsMERBQTBELHNFQUFzRSx1SEFBdUgsU0FBUyw2QkFBNkIsd0JBQXdCLFVBQVUsa0RBQWtELHdCQUF3QixlQUFlLDBCQUEwQixtQkFBbUIsNEJBQTRCLHFCQUFxQixFQUFFLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLHdCQUF3QixFQUFFLEVBQUUsR0FBRyxFQUFFLG1CQUFtQiw2QkFBNkIsaUNBQWlDLG9CQUFvQix3QkFBd0Isb0JBQW9CLFlBQVksa0JBQWtCLFFBQVEsV0FBVyx3Q0FBd0MsU0FBUyxNQUFNLGlDQUFpQyxzQ0FBc0MsUUFBUSxXQUFXLDRGQUE0RixTQUFTLDRLQUE0SyxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLEVBQUUseUNBQXlDLFNBQVMsV0FBVyxnSEFBZ0gscUJBQXFCLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLFNBQVMsaUNBQWlDLGdFQUFnRSw0Q0FBNEMsZ0JBQWdCLDZCQUE2QixpQ0FBaUMsb0JBQW9CLHdCQUF3QixvQkFBb0IsWUFBWSxrQkFBa0IsUUFBUSxXQUFXLHdDQUF3QyxTQUFTLE1BQU0saUNBQWlDLHNDQUFzQyxRQUFRLFdBQVcsNEZBQTRGLFNBQVMsNEtBQTRLLFlBQVksbUJBQW1CLEtBQUssd0NBQXdDLGtCQUFrQixnSEFBZ0gsdURBQXVELDBCQUEwQixVQUFVLGlEQUFpRCxrREFBa0QsU0FBUyxFQUFFLFNBQVMsRUFBRSw0Q0FBNEMsU0FBUyxXQUFXLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLDZDQUE2QyxjQUFjLDhDQUE4Qyw4Q0FBOEMscUNBQXFDLHNDQUFzQyxrQ0FBa0MsdUNBQXVDLHNDQUFzQyxzQkFBc0IsNkJBQTZCLGtCQUFrQixvQ0FBb0MsOENBQThDLHlCQUF5Qix3QkFBd0Isa0JBQWtCLGlCQUFpQiwwQ0FBMEMsc0RBQXNELHdEQUF3RCxpQ0FBaUMsbUJBQW1CLGlCQUFpQixPQUFPLHFEQUFxRCxrQkFBa0IsdUdBQXVHLHVEQUF1RCxtQkFBbUIsT0FBTyxLQUFLLDRCQUE0QixpQkFBaUIsS0FBSyxxQ0FBcUMsaUJBQWlCLDJFQUEyRSxLQUFLLG9DQUFvQyxrQkFBa0IsS0FBSyw2RkFBNkYsaUJBQWlCLEtBQUssb0NBQW9DLG1CQUFtQixnQkFBZ0Isb0JBQW9CLDZCQUE2Qix5QkFBeUIsMENBQTBDLEtBQUssa0VBQWtFLHFCQUFxQix5QkFBeUIsS0FBSyxnRUFBZ0UseUJBQXlCLHFCQUFxQixLQUFLLGtDQUFrQyxvQ0FBb0Msc0NBQXNDLE9BQU8sS0FBSyxpQ0FBaUMsaUNBQWlDLHVDQUF1QyxPQUFPLEtBQUssaUNBQWlDLGlDQUFpQyx1Q0FBdUMsT0FBTyxLQUFLLGlDQUFpQyxpQ0FBaUMsdUNBQXVDLE9BQU8sS0FBSyxnRUFBZ0UsS0FBSyx3QkFBd0IsSUFBSSxxQkFBcUIsU0FBUyxHQUFHLGdCQUFnQixjQUFjLDBDQUEwQyxJQUFJLHNCQUFzQixtQ0FBbUMsaUJBQWlCLG9DQUFvQyx1QkFBdUIsSUFBSSxjQUFjLFNBQVMsZUFBZSxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLGlCQUFpQixxQkFBcUIsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxpQkFBaUIsbUJBQW1CLDZCQUE2QixtQkFBbUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLDJEQUEyRCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLEdBQUcsaUJBQWlCLHdCQUF3QixnQkFBZ0Isb0JBQW9CLGdCQUFnQixxQkFBcUIsZ0JBQWdCLG1CQUFtQiw0QkFBNEIsR0FBRyxlQUFlLE9BQU8sdUJBQXVCLGNBQWMsT0FBTyxpQkFBaUIsdURBQXVELDJCQUEyQiwwQkFBMEIsbUJBQW1CLGdCQUFnQiw4RUFBOEUseUVBQXlFLEdBQUcsMEVBQTBFLGdCQUFnQixnQkFBZ0IsdURBQXVELDZEQUE2RCw2QkFBNkIsVUFBVSxFQUFFLGdCQUFnQixRQUFRLDZEQUE2RCxXQUFXLGdCQUFnQixRQUFRLHNFQUFzRSxhQUFhLDhCQUE4QixtREFBbUQsZ0JBQWdCLGdCQUFnQiw2Q0FBNkMsOENBQThDLDRCQUE0QixlQUFlLG1EQUFtRCxHQUFHLGNBQWMsRUFBRSxhQUFhLEdBQUcscUJBQXFCLEVBQUUsTUFBTSx3RUFBd0UsR0FBRyw4REFBOEQsR0FBRyxhQUFhLEVBQUUsaU5BQWlOLGVBQWUsb0RBQW9ELDBCQUEwQixvQkFBb0Isd0JBQXdCLG9CQUFvQixZQUFZLGtCQUFrQixRQUFRLFdBQVcsd0NBQXdDLFNBQVMsTUFBTSxpQ0FBaUMsc0NBQXNDLFFBQVEsV0FBVyw0RkFBNEYsU0FBUywyU0FBMlMscUJBQXFCLGdDQUFnQyxRQUFRLDBDQUEwQywrRUFBK0Usd0JBQXdCLDBCQUEwQiw0R0FBNEcsd0JBQXdCLDRCQUE0QixJQUFJLE1BQU0sa0JBQWtCLGtCQUFrQiwrSkFBK0osZ0VBQWdFLGlFQUFpRSxtQkFBbUIsaUVBQWlFLHlDQUF5QyxzREFBc0QsNEpBQTRKLE9BQU8sa0NBQWtDLGlEQUFpRCxrSEFBa0gsS0FBSyxvSUFBb0ksOEVBQThFLGVBQWUscUJBQXFCLDJFQUEyRSw0akJBQTRqQixvREFBb0QsMEZBQTBGLEtBQUssV0FBVywyQkFBMkIsY0FBYyxtQkFBbUIsMEVBQTBFLG9JQUFvSSx1S0FBdUssRUFBRSxtQkFBbUIsZUFBZSxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLGlCQUFpQixxQkFBcUIsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxrQkFBa0IsdUNBQXVDLGlFQUFpRSxrQ0FBa0MsR0FBRyxlQUFlLDRDQUE0QywwREFBMEQscUJBQXFCLG9GQUFvRix5SEFBeUgsd05BQXdOLEVBQUUsa0ZBQWtGLDJEQUEyRCw0R0FBNEcsRUFBRSxvRUFBb0UscUJBQXFCLG9GQUFvRix5SEFBeUgseUxBQXlMLEVBQUUsa0ZBQWtGLDJEQUEyRCwrR0FBK0csRUFBRSxvRUFBb0UscUJBQXFCLG9GQUFvRix5SEFBeUgsd0tBQXdLLEVBQUUsbUZBQW1GLDJCQUEyQiwyREFBMkQsa0ZBQWtGLEVBQUUsR0FBRyxnR0FBZ0csNklBQTZJLGdDQUFnQyxvQkFBb0IsZ0NBQWdDLG9CQUFvQixnQ0FBZ0MsR0FBRyxpR0FBaUcsNElBQTRJLGlDQUFpQyxvQkFBb0IsaUNBQWlDLG9CQUFvQiwrQkFBK0IsR0FBRyx5RkFBeUYsMkNBQTJDLDJJQUEySSxpQ0FBaUMsb0JBQW9CLGlDQUFpQyxvQkFBb0IsaUNBQWlDLG9CQUFvQixnQ0FBZ0Msb0JBQW9CLGdDQUFnQyxHQUFHLEdBQUcsd0RBQXdELDBGQUEwRixLQUFLLHVCQUF1Qiw4QkFBOEIsZUFBZSw0Q0FBNEMsMERBQTBELHFCQUFxQixvRkFBb0YseUhBQXlILHdOQUF3TixFQUFFLGtGQUFrRiwyREFBMkQsOEdBQThHLEVBQUUsb0VBQW9FLHFCQUFxQixvRkFBb0YseUhBQXlILDRMQUE0TCxFQUFFLGtGQUFrRiwyREFBMkQsNkdBQTZHLEVBQUUsb0VBQW9FLHFCQUFxQixvRkFBb0YseUhBQXlILDJLQUEySyxFQUFFLG1GQUFtRiwyQkFBMkIsMkRBQTJELGlGQUFpRixFQUFFLEdBQUcsZ0dBQWdHLDZJQUE2SSxnQ0FBZ0Msb0JBQW9CLGdDQUFnQyxvQkFBb0IsZ0NBQWdDLEdBQUcsaUdBQWlHLDRJQUE0SSxpQ0FBaUMsb0JBQW9CLGlDQUFpQyxvQkFBb0IsK0JBQStCLEdBQUcseUZBQXlGLDJDQUEyQywySUFBMkksaUNBQWlDLG9CQUFvQixpQ0FBaUMsb0JBQW9CLGlDQUFpQyxvQkFBb0IsZ0NBQWdDLG9CQUFvQixnQ0FBZ0MsR0FBRyxHQUFHLHdEQUF3RCwwRkFBMEYsS0FBSyx1QkFBdUIsOEJBQThCLDBGQUEwRixlQUFlLG1EQUFtRCw4RUFBOEUsaUVBQWlFLDJDQUEyQyx3S0FBd0ssNkZBQTZGLGtPQUFrTyxpRUFBaUUsRUFBRSxvQkFBb0IsZUFBZSx3REFBd0QsMkNBQTJDLG9LQUFvSyxpQ0FBaUMsaUJBQWlCLG9DQUFvQyx1QkFBdUIsSUFBSSxjQUFjLFNBQVMsZUFBZSw2QkFBNkIsY0FBYyw4SkFBOEosaUJBQWlCLDRCQUE0Qix1RkFBdUYsWUFBWSxtQkFBbUIsSUFBSSxnQkFBZ0IsMkRBQTJELE9BQU8sU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLFVBQVUscUJBQXFCLGVBQWUsMEJBQTBCLG9HQUFvRyxpQkFBaUIsaUJBQWlCLE1BQU0scUNBQXFDLG9EQUFvRCxpR0FBaUcsdUZBQXVGLGdsQkFBZ2xCLGVBQWUsMkJBQTJCLGlCQUFpQixFQUFFLGtEQUFrRCxlQUFlLDJCQUEyQix1QkFBdUIsRUFBRSxlQUFlLDBDQUEwQyx3QkFBd0IsK0ZBQStGLFlBQVkseUJBQXlCLFlBQVksS0FBSyw0QkFBNEIsV0FBVyxtQkFBbUIsMEJBQTBCLFFBQVEsMEVBQTBFLGlFQUFpRSw0Q0FBNEMsd0tBQXdLLGtHQUFrRyxxSkFBcUosaUVBQWlFLEVBQUUsb0JBQW9CLGVBQWUseUJBQXlCLDJFQUEyRSx1YUFBdWEsNkRBQTZELFlBQVksbUJBQW1CLEtBQUssd0NBQXdDLGtCQUFrQixnSEFBZ0gsdURBQXVELDBCQUEwQixVQUFVLGlEQUFpRCxrREFBa0QsU0FBUyxFQUFFLFNBQVMsRUFBRSwwRkFBMEYsU0FBUyxXQUFXLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLDhCQUE4QixlQUFlLDJGQUEyRixvQ0FBb0MsNEJBQTRCLGlFQUFpRSx1QkFBdUIsZ0NBQWdDLDJDQUEyQyxpQ0FBaUMsc0JBQXNCLHNGQUFzRixxREFBcUQsa0RBQWtELGVBQWUseUJBQXlCLHdFQUF3RSw0Q0FBNEMseXNCQUF5c0IsRUFBRSw2REFBNkQsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxFQUFFLHFIQUFxSCxTQUFTLFdBQVcsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsOEJBQThCLGVBQWUseUJBQXlCLDJFQUEyRSxnbkJBQWduQiw2REFBNkQsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxFQUFFLHVIQUF1SCxTQUFTLFdBQVcsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsOEJBQThCLGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLDJCQUEyQixJQUFJLHdCQUF3QixTQUFTLEtBQUssT0FBTyx5Q0FBeUMsbUJBQW1CLHlDQUF5QyxrREFBa0QsV0FBVyxlQUFlLDBEQUEwRCxrQkFBa0IsNkJBQTZCLG1CQUFtQix1RkFBdUYsWUFBWSxtQkFBbUIsSUFBSSxnQkFBZ0IsdURBQXVELE9BQU8sU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLFVBQVUscUJBQXFCLE1BQU0scUNBQXFDLG9EQUFvRCxpR0FBaUcsdUZBQXVGLGtCQUFrQiw4SkFBOEosMkJBQTJCLEtBQXFDLGlDQUFpQyxNQUFNLG9CQUFvQixxQkFBcUIsYUFBYSx3QkFBd0IscUJBQXFCLFlBQVksZ0JBQWdCLDBFQUEwRSx3R0FBd0csWUFBWSxJQUFJLGNBQWMsbUJBQW1CLFlBQVksd0RBQXdELEtBQUssdUJBQXVCLEtBQUssa0hBQWtILHlDQUF5QyxrQkFBa0IsTUFBTSx5QkFBeUIsb0JBQW9CLDhCQUE4QixTQUFTLGtDQUFrQyxTQUFTLDBFQUEwRSxJQUFJLFNBQVMseUNBQXlDLGFBQWEsTUFBTSwyQkFBMkIsaUJBQWlCLE1BQU0sb0JBQW9CLDJCQUEyQixNQUFNLCtCQUErQixTQUFTLGNBQWMsU0FBUyxZQUFZLFFBQVEsTUFBTSxxQkFBcUIsT0FBTyxrQ0FBa0Msa0JBQWtCLGdCQUFnQixxQkFBcUIsUUFBUSxxQkFBcUIsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLGFBQWEsRUFBRSxTQUFTLEdBQUcsb0JBQW9CLFdBQVcsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxZQUFZLHVEQUF1RCxNQUFrQyw4REFBOEQsb0NBQW9DLEtBQUssMkZBQTJGLHlFQUF5RSxrQkFBa0IsRUFBRSxZQUFZLHVCQUF1QixpQ0FBaUMsbUJBQW1CLGNBQWMsdUJBQXVCLGNBQWMsd0JBQXdCLFVBQVUsRUFBRSxJQUFJLE1BQU0sdUJBQXVCLGdIQUFnSCwwR0FBMEcseUJBQXlCLHlCQUF5Qix3QkFBd0IsMEhBQTBILEVBQUUsc0JBQXNCLDJGQUEyRixhQUFhLGdLQUFnSyxxQkFBcUIsRUFBRSxzQkFBc0IsK0ZBQStGLGFBQWEsZ0tBQWdLLDRCQUE0QixxQkFBcUIsRUFBRSxHQUFHLEVBQUUsRUFBRSxlQUFlLG1DQUFtQyxtQ0FBbUMsdUNBQXVDLDZEQUE2RCxrRkFBa0YsMEJBQTBCLG1DQUFtQyxvQkFBb0IsMEJBQTBCLHFDQUFxQyxpQkFBaUIsb0JBQW9CLDhDQUE4QyxrREFBa0QsS0FBSyx1QkFBdUIsd0JBQXdCLFdBQVcsa0NBQWtDLHlCQUF5QixrQkFBa0IsT0FBTyxLQUFLLHFDQUFxQyxvQkFBb0IsMEJBQTBCLGVBQWUsMEJBQTBCLG1DQUFtQyxLQUFLLDhCQUE4Qiw2QkFBNkIsb0JBQW9CLDBCQUEwQiwwQkFBMEIseUVBQXlFLHdCQUF3Qix1QkFBdUIsbUJBQW1CLHVDQUF1Qyw0QkFBNEIsNkJBQTZCLG9CQUFvQiwwQkFBMEIsOEJBQThCLHNCQUFzQixpQkFBaUIsbUNBQW1DLE9BQU8saUJBQWlCLGdEQUFnRCxPQUFPLGtCQUFrQixnREFBZ0QsT0FBTyxLQUFLLDhDQUE4QyxtQkFBbUIsMEJBQTBCLEtBQUssOEJBQThCLDhDQUE4QyxLQUFLLDZDQUE2QyxtQ0FBbUMsNEJBQTRCLDZCQUE2QixLQUFLLFVBQVUsaUJBQWlCLG9DQUFvQyx1QkFBdUIsSUFBSSxjQUFjLFNBQVMsaUJBQWlCLG1CQUFtQiw2QkFBNkIsbUJBQW1CLHVGQUF1RixZQUFZLG1CQUFtQixJQUFJLGdCQUFnQiwyREFBMkQsT0FBTyxTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsVUFBVSxxQkFBcUIsTUFBTSxxQ0FBcUMsb0RBQW9ELGlHQUFpRyx1RkFBdUYsa0JBQWtCLDhKQUE4SixHQUFHLGVBQWUsb0pBQW9KLDZEQUE2RCx5Q0FBeUMsaUZBQWlGLG9FQUFvRSw0Q0FBNEMsZ0VBQWdFLG1GQUFtRiwyQkFBMkIsc0RBQXNELHNCQUFzQixtQkFBbUIsYUFBYSwySUFBMkksR0FBRyx3RUFBd0UsNERBQTRELG9DQUFvQyxlQUFlLGlDQUFpQyxxQ0FBcUMsMEZBQTBGLDBCQUEwQixlQUFlLDZDQUE2QywyRUFBMkUsK1JBQStSLHdEQUF3RCxnSUFBZ0ksaUNBQWlDLGVBQWUsNkNBQTZDLDJFQUEyRSwrUkFBK1Isd0RBQXdELGdJQUFnSSxpQ0FBaUMsaUJBQWlCLG9DQUFvQyx1QkFBdUIsSUFBSSxjQUFjLFNBQVMsZUFBZSw0R0FBNEcsaUNBQWlDLHVDQUF1Qyx3QkFBd0IsRUFBRSw4QkFBOEIsUUFBUSxrREFBa0QsdUNBQXVDLHNEQUFzRCxFQUFFLDRDQUE0Qyw0RkFBNEYsNkJBQTZCLG1CQUFtQix1RkFBdUYsWUFBWSxtQkFBbUIsSUFBSSxnQkFBZ0IsdURBQXVELE9BQU8sU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLFVBQVUscUJBQXFCLE1BQU0scUNBQXFDLG9EQUFvRCxpR0FBaUcsdUZBQXVGLGtCQUFrQiw4SkFBOEosa0JBQWtCLDhEQUE4RCxLQUFLLGdCQUFnQixRQUFRLDRDQUE0QyxZQUFZLG9EQUFvRCwySUFBMkkseUZBQXlGLCtFQUErRSw4SUFBOEksWUFBWSwwQkFBMEIsMEhBQTBILHNCQUFzQiw4R0FBOEcseUdBQXlHLG9CQUFvQixpRUFBaUUsa0VBQWtFLDBFQUEwRSx5SkFBeUosMkNBQTJDLFVBQVUsMkNBQTJDLG9EQUFvRCxtQ0FBbUMsa0JBQWtCLCtCQUErQixzREFBc0QscUVBQXFFLDBEQUEwRCxtQ0FBbUMsb0NBQW9DLHdFQUF3RSw4REFBOEQsMEVBQTBFLHFKQUFxSixnR0FBZ0csc0dBQXNHLDZDQUE2QyxlQUFlLHlCQUF5Qiw2RUFBNkUsc0NBQXNDLDZEQUE2RCxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLEVBQUUsMEZBQTBGLFNBQVMsV0FBVyxnSEFBZ0gscUJBQXFCLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLFNBQVMsaUNBQWlDLGdFQUFnRSw4QkFBOEIsZUFBZSwwRUFBMEUsaUNBQWlDLDRDQUE0QyxHQUFHLGtCQUFrQixtRkFBbUYsVUFBVSx5R0FBeUcsTUFBTSxzSkFBc0osTUFBTSx1SkFBdUosTUFBTSwySUFBMkksTUFBTSw2RkFBNkYsT0FBTyxpQ0FBaUMsMENBQTBDLG9EQUFvRCw0Q0FBNEMsc0ZBQXNGLHVCQUF1QixxREFBcUQsOE5BQThOLDhDQUE4QyxvQkFBb0Isb0RBQW9ELEtBQUssRUFBRSxRQUFRLHFJQUFxSSxzRUFBc0Usc0RBQXNELDBEQUEwRCxxQ0FBcUMsWUFBWSw2RUFBNkUsb0RBQW9ELG1DQUFtQywwQkFBMEIsNkZBQTZGLHVCQUF1QixvR0FBb0csNkJBQTZCLHFEQUFxRCxlQUFlLCtGQUErRixTQUEwQixFQUFFLENBQVMsQ0FBQywrQ0FBK0MsaUNBQWlDLHFEQUFxRCxtQ0FBbUMsa0RBQWtELEVBQUUsbUVBQW1FLG9DQUFvQyw0QkFBNEIsRUFBRSxnRUFBZ0Usa0RBQWtELG1DQUFtQyxlQUFlLGVBQWUsaUVBQWlFLHdFQUF3RSx5REFBeUQsNkRBQTZELGlDQUFpQyxjQUFjLHVCQUF1QiwwREFBMEQsaUJBQWlCLHFGQUFxRiw0SUFBNEksMkpBQTJKLDJDQUEyQyxvQkFBb0IseUhBQXlILEdBQUcsb0JBQW9CLHNJQUFzSSxvQkFBb0Isa2xCQUFrbEIsR0FBRyxxRkFBcUYsc0xBQXNMLDZFQUE2RSxtS0FBbUsseURBQXlELG9CQUFvQixtSkFBbUosR0FBRyxvQkFBb0Isa0xBQWtMLG9CQUFvQixrd0JBQWt3QixHQUFHLEdBQUcsbUJBQW1CLGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLG1RQUFtUSw4SEFBOEgsb0JBQW9CLHdCQUF3QixvQkFBb0IsWUFBWSxrQkFBa0IsUUFBUSxXQUFXLHdDQUF3QyxTQUFTLE1BQU0saUNBQWlDLHNDQUFzQyxRQUFRLFdBQVcsNEZBQTRGLFNBQVMsZ01BQWdNLDZCQUE2QixtQkFBbUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLHVEQUF1RCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLGtCQUFrQixzQ0FBc0MsNkNBQTZDLHlEQUF5RCxxQkFBcUIsa0JBQWtCLGlEQUFpRCwyQkFBMkIsU0FBUyxtQkFBbUIsd0VBQXdFLFdBQVcsYUFBYSx5RUFBeUUsdUdBQXVHLGlCQUFpQix3Q0FBd0MsMEdBQTBHLDRFQUE0RSw0QkFBNEIsbU5BQW1OLHFDQUFxQyxzQ0FBc0Msb0NBQW9DLFlBQVksbUJBQW1CLEtBQUssd0NBQXdDLGtCQUFrQixnSEFBZ0gsdURBQXVELDBCQUEwQixVQUFVLGlEQUFpRCxrREFBa0QsU0FBUyxFQUFFLFNBQVMsRUFBRSxvTEFBb0wsa0NBQWtDLFNBQVMsV0FBVyxnSEFBZ0gscUJBQXFCLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLFNBQVMsaUNBQWlDLGdFQUFnRSxPQUFPLGVBQWUsa0NBQWtDLGlDQUFpQyxvQkFBb0Isd0JBQXdCLG9CQUFvQixZQUFZLGtCQUFrQixRQUFRLFdBQVcsd0NBQXdDLFNBQVMsTUFBTSxpQ0FBaUMsc0NBQXNDLFFBQVEsV0FBVyw0RkFBNEYsU0FBUyx1TUFBdU0sWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxFQUFFLHdKQUF3SixTQUFTLFdBQVcsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsbUZBQW1GLDBEQUEwRCxvQ0FBb0MsZUFBZSx1QkFBdUIsa0RBQWtELFlBQVksbUJBQW1CLEtBQUssd0NBQXdDLGtCQUFrQixnSEFBZ0gsdURBQXVELDBCQUEwQixVQUFVLGlEQUFpRCxrREFBa0QsU0FBUyxFQUFFLFNBQVMsRUFBRSwrQkFBK0IsU0FBUyxvQkFBb0IsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsOEJBQThCLGVBQWUsZ0NBQWdDLGlDQUFpQyxzREFBc0QsMEJBQTBCLGVBQWUsZ0NBQWdDLGlDQUFpQyxvREFBb0QsMEJBQTBCLHdCQUF3QiwrQkFBK0IsaUNBQWlDLG9CQUFvQix3QkFBd0Isb0JBQW9CLFlBQVksa0JBQWtCLFFBQVEsV0FBVyx3Q0FBd0MsU0FBUyxNQUFNLGlDQUFpQyxzQ0FBc0MsUUFBUSxXQUFXLDRGQUE0RixTQUFTLGtRQUFrUSxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLEVBQUUsNENBQTRDLFNBQVMsV0FBVyxnSEFBZ0gscUJBQXFCLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLFNBQVMsaUNBQWlDLGdFQUFnRSw2Q0FBNkMsY0FBYyxzQkFBc0IsbUlBQW1JLEVBQUUsY0FBYyw2QkFBNkIsY0FBYyw2REFBNkQsbUtBQW1LLEtBQUssY0FBYyxpREFBaUQsdUJBQXVCLGdCQUFnQixLQUFLLGdFQUFnRSxLQUFLLHdCQUF3QixJQUFJLHFCQUFxQixTQUFTLEdBQUcsZUFBZSwyQkFBMkIsaUNBQWlDLG9CQUFvQix3QkFBd0Isb0JBQW9CLFlBQVksa0JBQWtCLFFBQVEsV0FBVyx3Q0FBd0MsU0FBUyxNQUFNLGlDQUFpQyxzQ0FBc0MsUUFBUSxXQUFXLDRGQUE0RixTQUFTLHVIQUF1SCxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLEdBQUcsU0FBUyxXQUFXLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLHFDQUFxQyxnQkFBZ0IsZUFBZSxnRUFBZ0UsMEVBQTBFLDZGQUE2RixxQkFBcUIsNkZBQTZGLDhEQUE4RCxtRkFBbUYsaUZBQWlGLEVBQUUsMEJBQTBCLGVBQWUsdUNBQXVDLHFDQUFxQyxtREFBbUQsMEJBQTBCLGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLGVBQWUseUNBQXlDLGtLQUFrSyx1QkFBdUIscUJBQXFCLCtEQUErRCxNQUFNLHNFQUFzRSxtQkFBbUIsd2tCQUF3a0IsZUFBZSwrQkFBK0Isc0dBQXNHLDRGQUE0RixzR0FBc0csaUZBQWlGLHlGQUF5RixzREFBc0QsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxFQUFFLG1DQUFtQywrQ0FBK0MsUUFBUSx3REFBd0QsMkdBQTJHLHdDQUF3QyxFQUFFLGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLGlCQUFpQixtQkFBbUIsNkJBQTZCLG1CQUFtQix1RkFBdUYsWUFBWSxtQkFBbUIsSUFBSSxnQkFBZ0IsMkRBQTJELE9BQU8sU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLFVBQVUscUJBQXFCLE1BQU0scUNBQXFDLG9EQUFvRCxpR0FBaUcsdUZBQXVGLGtCQUFrQiw4SkFBOEosR0FBRyxzQ0FBc0MsMERBQTBELDBCQUEwQixvQkFBb0Isd0JBQXdCLG9CQUFvQixZQUFZLGtCQUFrQixRQUFRLFdBQVcsd0NBQXdDLFNBQVMsTUFBTSxpQ0FBaUMsc0NBQXNDLFFBQVEsV0FBVyw0RkFBNEYsU0FBUyx3R0FBd0csNExBQTRMLFNBQVMsdUNBQXVDLDZCQUE2QiwrQ0FBK0MsTUFBTSxrQkFBa0IsRUFBRSwrQkFBK0Isd0JBQXdCLGlLQUFpSyxvQkFBb0IsdURBQXVELG9EQUFvRCxpQkFBaUIsb0dBQW9HLFlBQVksbUJBQW1CLEtBQUssd0NBQXdDLGtCQUFrQixnSEFBZ0gsdURBQXVELDBCQUEwQixVQUFVLGlEQUFpRCxrREFBa0QsU0FBUyxFQUFFLFNBQVMsR0FBRyxTQUFTLHlCQUF5QixnSEFBZ0gscUJBQXFCLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLFNBQVMsaUNBQWlDLGdFQUFnRSx1REFBdUQsRUFBRSxlQUFlLHVCQUF1QiwwQkFBMEIsb0JBQW9CLHdCQUF3QixvQkFBb0IsWUFBWSxrQkFBa0IsUUFBUSxXQUFXLHdDQUF3QyxTQUFTLE1BQU0saUNBQWlDLHNDQUFzQyxRQUFRLFdBQVcsNEZBQTRGLFNBQVMsOERBQThELGtCQUFrQix5REFBeUQsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxFQUFFLHVFQUF1RSxvQ0FBb0MsaUJBQWlCLG9DQUFvQyx1QkFBdUIsSUFBSSxjQUFjLFNBQVMsZUFBZSxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLGlCQUFpQixxQkFBcUIsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxpQkFBaUIsbUJBQW1CLDZCQUE2QixtQkFBbUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLDJEQUEyRCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLEdBQUcsZUFBZSx3WUFBd1ksYUFBYSwwQkFBMEIsdUJBQXVCLFFBQVEsdUJBQXVCLDBCQUEwQiw4QkFBOEIseUZBQXlGLG9DQUFvQyxrQkFBa0IsNEJBQTRCLDBKQUEwSiw2QkFBNkIsbUJBQW1CLHVGQUF1RixZQUFZLG1CQUFtQixJQUFJLGdCQUFnQix1REFBdUQsT0FBTyxTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsVUFBVSxxQkFBcUIsTUFBTSxxQ0FBcUMsb0RBQW9ELGlHQUFpRyx1RkFBdUYsa0JBQWtCLDhKQUE4SiwwQkFBMEIsMEdBQTBHLGdDQUFnQyw2RUFBNkUsV0FBVyxFQUFFLGtCQUFrQiw2REFBNkQsb0VBQW9FLGVBQWUseUZBQXlGLG9DQUFvQyxnQkFBZ0IsU0FBUyw4REFBOEQsZ0NBQWdDLG1DQUFtQyxnQkFBZ0IsU0FBUywwQkFBMEIsUUFBUSw4RkFBOEYseUVBQXlFLHFHQUFxRyxZQUFZLG9DQUFvQyxVQUFVLDJCQUEyQixZQUFZLHlGQUF5RixrQ0FBa0Msc0ZBQXNGLGtEQUFrRCxvRkFBb0Ysd0NBQXdDLGdHQUFnRyw0RkFBNEYsc0VBQXNFLGVBQWUsa0VBQWtFLGVBQWUsOERBQThELFdBQVcsa0VBQWtFLGVBQWUscUZBQXFGLDBEQUEwRCw0Q0FBNEMsbUJBQW1CLDhDQUE4QywwQkFBMEIsNkdBQTZHLG1FQUFtRSw2SEFBNkgsa0RBQWtELDhFQUE4RSx1REFBdUQsS0FBSyxpQkFBaUIscUdBQXFHLEtBQUssZUFBZSw4Q0FBOEMsNkVBQTZFLG9CQUFvQiw2QkFBNkIsOENBQThDLG1DQUFtQywwRUFBMEUsNkVBQTZFLHFDQUFxQyx5QkFBeUIsdUJBQXVCLEtBQUssb0NBQW9DLHVCQUF1QixtQkFBbUIsS0FBSyx5REFBeUQseUJBQXlCLEtBQUssMENBQTBDLGdDQUFnQyxrQ0FBa0Msd0JBQXdCLGlDQUFpQyxtQ0FBbUMsS0FBSywyQ0FBMkMsZ0NBQWdDLG9DQUFvQyx3QkFBd0IsS0FBSyxrREFBa0QsK0NBQStDLEtBQUssbURBQW1ELGdCQUFnQixzQkFBc0IsS0FBSyw2Q0FBNkMscUJBQXFCLHdCQUF3QixLQUFLLHlGQUF5Rix5QkFBeUIsZ0JBQWdCLGtCQUFrQixLQUFLLDZFQUE2RSw0Q0FBNEMsc0RBQXNELG9CQUFvQixxQ0FBcUMsMEJBQTBCLG9CQUFvQiwyQkFBMkIsaUJBQWlCLG9CQUFvQixpRkFBaUYsOENBQThDLDhCQUE4Qiw4REFBOEQsb0JBQW9CLGdEQUFnRCxzQkFBc0IsNENBQTRDLDBFQUEwRSw0QkFBNEIsMkJBQTJCLCtCQUErQiwyQkFBMkIseURBQXlELHVDQUF1Qyx5QkFBeUIsV0FBVyxnREFBZ0QsZ0NBQWdDLFdBQVcsU0FBUyxnQ0FBZ0MsMEJBQTBCLHlEQUF5RCx1Q0FBdUMsd0JBQXdCLHVDQUF1QyxXQUFXLGdEQUFnRCwrQkFBK0IsV0FBVyxTQUFTLHFDQUFxQyw2QkFBNkIsMERBQTBELCtCQUErQixzQkFBc0IsK0RBQStELFNBQVMsT0FBTyxLQUFLLGlDQUFpQyx1Q0FBdUMsNENBQTRDLCtFQUErRSwwRUFBMEUsNEJBQTRCLHlCQUF5QixxREFBcUQsc0NBQXNDLDJCQUEyQixvQkFBb0IsMkRBQTJELDZCQUE2QixXQUFXLHVDQUF1QywwQkFBMEIsV0FBVyxTQUFTLE9BQU8sS0FBSyx5REFBeUQsdUJBQXVCLGdCQUFnQix5Q0FBeUMsdUNBQXVDLHVCQUF1QixnQ0FBZ0Msa0NBQWtDLCtDQUErQyxrQ0FBa0MsS0FBSywyREFBMkQseUJBQXlCLEtBQUssc0NBQXNDLGdCQUFnQix1QkFBdUIsa0NBQWtDLHVCQUF1QixnQ0FBZ0MsOEJBQThCLGtDQUFrQyxnQ0FBZ0MsNEJBQTRCLEtBQUssZ0RBQWdELHdCQUF3Qix1QkFBdUIsS0FBSyxrREFBa0QseUJBQXlCLGdCQUFnQixjQUFjLGVBQWUsbUJBQW1CLG1JQUFtSSxLQUFLLCtDQUErQyx5QkFBeUIsbUJBQW1CLGdCQUFnQixrQ0FBa0Msb0JBQW9CLDBCQUEwQix1QkFBdUIsOENBQThDLG9EQUFvRCwyQkFBMkIsc0hBQXNILGdDQUFnQyxzQkFBc0IsbUNBQW1DLHVCQUF1Qiw2Q0FBNkMsS0FBSyxxREFBcUQsd0NBQXdDLEtBQUssZ0RBQWdELG9CQUFvQixlQUFlLEtBQUssNkVBQTZFLG9CQUFvQiw4QkFBOEIsMEJBQTBCLDhCQUE4Qiw2QkFBNkIsOENBQThDLG1DQUFtQyxvREFBb0Qsc0NBQXNDLHlDQUF5QyxhQUFhLDhCQUE4QiwrQkFBK0IsT0FBTyxpQkFBaUIsbUNBQW1DLE9BQU8sZ0NBQWdDLGdEQUFnRCxPQUFPLGlDQUFpQyxnREFBZ0QsT0FBTyxvQkFBb0IsZ0RBQWdELDRCQUE0QixPQUFPLEtBQUssMENBQTBDLG1DQUFtQyxLQUFLLDRDQUE0QyxvQkFBb0IsMEJBQTBCLGVBQWUsS0FBSyxLQUFLLGNBQWMsaURBQWlELHNCQUFzQixhQUFhLGVBQWUsZ0JBQWdCLGNBQWMsOEVBQThFLHNCQUFzQiw0QkFBNEIsMEJBQTBCLDZCQUE2QiwyQkFBMkIsS0FBSyxrQ0FBa0Msb0NBQW9DLDZCQUE2QixPQUFPLEtBQUsscUNBQXFDLHNCQUFzQixhQUFhLGVBQWUsZ0JBQWdCLGNBQWMsOENBQThDLGtDQUFrQywwQkFBMEIsa0JBQWtCLEtBQUssMkNBQTJDLDBCQUEwQix5Q0FBeUMsaUNBQWlDLEtBQUssZ0VBQWdFLEtBQUssd0JBQXdCLElBQUkscUJBQXFCLFNBQVMsR0FBRyxnQkFBZ0IsZUFBZSwrSEFBK0gsaUNBQWlDLHlCQUF5QixxQ0FBcUMsNkRBQTZELDJFQUEyRSxrTEFBa0wsNkRBQTZELHdCQUF3Qix3QkFBd0Isb0JBQW9CLCtCQUErQixHQUFHLG1FQUFtRSwrSkFBK0osd0NBQXdDLGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLG1CQUFtQiwyREFBMkQsVUFBVSxxQkFBcUIsb0JBQW9CLGtCQUFrQix3Q0FBd0MsNkJBQTZCLG1CQUFtQix1RkFBdUYsWUFBWSxtQkFBbUIsSUFBSSxnQkFBZ0IsdURBQXVELE9BQU8sU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLFVBQVUscUJBQXFCLE1BQU0scUNBQXFDLG9EQUFvRCxpR0FBaUcsdUZBQXVGLGtCQUFrQiw4SkFBOEosc0ZBQXNGLE9BQU8sMkJBQTJCLGtCQUFrQixTQUFTLGdDQUFnQyxzQkFBc0IsNENBQTRDLHNCQUFzQixtREFBbUQsR0FBRyxhQUFhLDJEQUEyRCxFQUFFLHFCQUFxQixhQUFhLFNBQVMsU0FBUyxLQUFLLCtDQUErQyxzRUFBc0UsMEJBQTBCLHVDQUF1QyxFQUFFLE1BQU0sYUFBYSxPQUFPLEVBQUUsVUFBVSxxS0FBcUssS0FBSyx1TkFBdU4sdURBQXVELHdCQUF3QixzREFBc0QseURBQXlELHdEQUF3RCxtREFBbUQsT0FBTyxFQUFFLG9CQUFvQiw4QkFBOEIsc0JBQXNCLGtIQUFrSCx1RUFBdUUsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsbUJBQW1CLHNEQUFzRCwyREFBMkQsd0JBQXdCLGtCQUFrQixZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLEVBQUUsa0RBQWtELHdCQUF3QixlQUFlLDBCQUEwQixtQkFBbUIsZ0NBQWdDLGVBQWUsRUFBRSw4QkFBOEIsb0JBQW9CLG9CQUFvQix1QkFBdUIsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixvQkFBb0IsNkNBQTZDLGdCQUFnQixzQ0FBc0MsMEJBQTBCLG9CQUFvQix3QkFBd0Isb0JBQW9CLFlBQVksa0JBQWtCLFFBQVEsV0FBVyx3Q0FBd0MsU0FBUyxNQUFNLGlDQUFpQyxzQ0FBc0MsUUFBUSxXQUFXLDRGQUE0RixTQUFTLDZHQUE2RyxRQUFRLGtJQUFrSSxTQUFTLHFGQUFxRixjQUFjLHNDQUFzQyxvR0FBb0csU0FBMEIsUUFBUSw2REFBNkQsUUFBUSxrQ0FBa0MsVUFBVSxpSEFBaUgsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxFQUFFLDhFQUE4RSxTQUFTLFdBQVcsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0Usa0VBQWtFLGVBQWUsbUJBQW1CLGdJQUFnSSx5QkFBeUIsd0VBQXdFLHFDQUFxQyxZQUFZLHdDQUF3QyxRQUFRLGtCQUFrQixTQUFTLDRDQUE0QyxrQkFBa0IscUdBQXFHLDBIQUEwSCxtQkFBbUIsRUFBRSxvSEFBb0gsMkRBQTJELCtCQUErQixtRkFBbUYsbUJBQW1CLEVBQUUsMEdBQTBHLDBEQUEwRCxxRkFBcUYsd0VBQXdFLDJHQUEyRyw2SUFBNkksOERBQThELGNBQWMsbUJBQW1CLDBFQUEwRSxxSEFBcUgsdWZBQXVmLEVBQUUsbUJBQW1CLGNBQWMsdURBQXVELHlCQUF5QixzQkFBc0IsS0FBSyx1Q0FBdUMsb0JBQW9CLHFDQUFxQywwQkFBMEIsaUNBQWlDLGdDQUFnQyxrQkFBa0IsS0FBSyxzQ0FBc0Msb0JBQW9CLHFDQUFxQywwQkFBMEIsZUFBZSxrQkFBa0Isc0NBQXNDLGdDQUFnQyx1QkFBdUIsS0FBSyxzQ0FBc0Msb0JBQW9CLDhCQUE4QiwwQkFBMEIsOEJBQThCLDZCQUE2QixlQUFlLHNDQUFzQyx5QkFBeUIsZ0NBQWdDLHVCQUF1QixrQ0FBa0MsMkNBQTJDLHdDQUF3QyxLQUFLLDJEQUEyRCxpQkFBaUIsb0JBQW9CLDBCQUEwQixlQUFlLG1DQUFtQyxnQ0FBZ0Msa0NBQWtDLHlCQUF5Qix1QkFBdUIseUJBQXlCLHdDQUF3QyxpQkFBaUIsMENBQTBDLE9BQU8saUJBQWlCLG1DQUFtQyxPQUFPLGFBQWEsOEJBQThCLCtCQUErQixPQUFPLEtBQUssZ0VBQWdFLEtBQUssd0JBQXdCLElBQUkscUJBQXFCLFNBQVMsR0FBRyxlQUFlLDRHQUE0RywwQ0FBMEMsNEVBQTRFLG9EQUFvRCxHQUFHLHlGQUF5Riw0SkFBNEosR0FBRyw4RUFBOEUsa0RBQWtELCtFQUErRSxrQ0FBa0MsUUFBUSxTQUFTLCtHQUErRyxxREFBcUQscUNBQXFDLGdCQUFnQixpQkFBaUIsb0NBQW9DLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxlQUFlLG9HQUFvRyw2QkFBNkIsbUJBQW1CLHVGQUF1RixZQUFZLG1CQUFtQixJQUFJLGdCQUFnQix1REFBdUQsT0FBTyxTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsVUFBVSxxQkFBcUIsTUFBTSxxQ0FBcUMsb0RBQW9ELGlHQUFpRyx1RkFBdUYsa0JBQWtCLDhKQUE4Siw2Q0FBNkMsOEJBQThCLHVCQUF1QixJQUFJLE1BQU0sb0JBQW9CLDBEQUEwRCwrQkFBK0IsTUFBTSx3REFBd0QscUhBQXFILCtDQUErQyxVQUFVLHNCQUFzQixFQUFFLGVBQWUsNkJBQTZCLHlCQUF5Qix5QkFBeUIsa0JBQWtCLHdDQUF3QyxPQUFPLG9DQUFvQyxHQUFHLDJGQUEyRixPQUFPLHlCQUF5QixnS0FBZ0ssdUVBQXVFLFlBQVksbUJBQW1CLEtBQUssd0NBQXdDLGtCQUFrQixnSEFBZ0gsdURBQXVELDBCQUEwQixVQUFVLGlEQUFpRCxrREFBa0QsU0FBUyxFQUFFLFNBQVMsRUFBRSwrRkFBK0YsU0FBUyxXQUFXLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLHFDQUFxQyxpQkFBaUIsb0NBQW9DLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxpQkFBaUIsbUJBQW1CLDZCQUE2QixtQkFBbUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLDJEQUEyRCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLEdBQUcsZUFBZSxzR0FBc0csbURBQW1ELGdKQUFnSiwyQkFBMkIsdUpBQXVKLDhCQUE4QixtRUFBbUUsVUFBVSxFQUFFLHlEQUF5RCxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLEVBQUUsbURBQW1ELElBQUkseURBQXlELGNBQWMsOEJBQThCLG1FQUFtRSxVQUFVLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLHFCQUFxQiw0QkFBNEIsU0FBUyw4QkFBOEIsYUFBYSxpQkFBaUIsWUFBWSw0RkFBNEYsNklBQTZJLG1FQUFtRSxpRkFBaUYsV0FBVyxFQUFFLCtFQUErRSxtSEFBbUgsNkNBQTZDLGlDQUFpQyxlQUFlLG1CQUFtQiwyQkFBMkIsSUFBSSx3QkFBd0IsU0FBUyxLQUFLLE9BQU8seUNBQXlDLGVBQWUsa0JBQWtCLHVCQUF1QixpQ0FBaUMsbUJBQW1CLGNBQWMsdUJBQXVCLGNBQWMsd0JBQXdCLFVBQVUsR0FBRyxlQUFlLFlBQVksbUJBQW1CLEtBQUssd0NBQXdDLGtCQUFrQixnSEFBZ0gsdURBQXVELDBCQUEwQixVQUFVLGlEQUFpRCxrREFBa0QsU0FBUyxFQUFFLFNBQVMsaUJBQWlCLHFCQUFxQixnSEFBZ0gscUJBQXFCLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLFNBQVMsaUNBQWlDLGdFQUFnRSxJQUFJLGlCQUFpQixhQUFhLHdCQUF3QixxQkFBcUIsWUFBWSxnQkFBZ0IsMEVBQTBFLHdHQUF3RyxZQUFZLElBQUksY0FBYyxtQkFBbUIsWUFBWSx3REFBd0QsS0FBSyx1QkFBdUIsS0FBSyxrSEFBa0gseUNBQXlDLGtCQUFrQixNQUFNLHlCQUF5QixvQkFBb0IsOEJBQThCLFNBQVMsa0NBQWtDLFNBQVMsMEVBQTBFLElBQUksU0FBUyx5Q0FBeUMsYUFBYSxNQUFNLDJCQUEyQixpQkFBaUIsTUFBTSxvQkFBb0IsMkJBQTJCLE1BQU0sK0JBQStCLFNBQVMsY0FBYyxTQUFTLFlBQVksUUFBUSxNQUFNLHFCQUFxQixPQUFPLGtDQUFrQyxtQkFBbUIsZUFBZSxjQUFjLGVBQWUsNElBQTRJLGtCQUFrQix3SkFBd0osaUJBQWlCLGVBQWUsb0ZBQW9GLDREQUE0RCw4REFBOEQsd0VBQXdFLDRCQUE0Qiw0RUFBNEUsZUFBZSxpQ0FBaUMsZUFBZSxnRUFBZ0Usc0VBQXNFLHFCQUFxQixvQkFBb0IsOENBQThDLDhDQUE4QywwQ0FBMEMsK0NBQStDLGdDQUFnQywyQkFBMkIscUVBQXFFLEtBQUsscURBQXFELDRCQUE0QixrQkFBa0IseUJBQXlCLCtCQUErQixLQUFLLDhEQUE4RCx5Q0FBeUMseURBQXlELHdCQUF3QixLQUFLLGdFQUFnRSxpQkFBaUIsd0JBQXdCLGVBQWUsc0JBQXNCLE9BQU8sS0FBSyw0REFBNEQseUNBQXlDLEtBQUssMERBQTBELG1DQUFtQyx5QkFBeUIsS0FBSyxzSEFBc0gsb0NBQW9DLEtBQUssK0RBQStELHVDQUF1QyxLQUFLLHlIQUF5SCxrQ0FBa0MsbUNBQW1DLHlCQUF5QixLQUFLLHdIQUF3SCxvQ0FBb0MsS0FBSywwREFBMEQsNEJBQTRCLG1CQUFtQixnQkFBZ0IsS0FBSyxzRUFBc0Usb0NBQW9DLEtBQUssZ0RBQWdELGdCQUFnQixLQUFLLDBIQUEwSCx3QkFBd0Isd0VBQXdFLDJCQUEyQixLQUFLLHFEQUFxRCxxQkFBcUIsa0JBQWtCLDRCQUE0QixvQ0FBb0MseUJBQXlCLEtBQUssc0RBQXNELGdDQUFnQyxLQUFLLG1EQUFtRCxvQ0FBb0MsS0FBSyxvREFBb0Qsa0NBQWtDLEtBQUssVUFBVSxlQUFlLCtFQUErRSxpQkFBaUIsb0NBQW9DLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxlQUFlLDBDQUEwQyxlQUFlLCtCQUErQixpQ0FBaUMsa0JBQWtCLDBCQUEwQixlQUFlLG9IQUFvSCxtSkFBbUosdUJBQXVCLGtCQUFrQixFQUFFLDBCQUEwQixRQUFRLGdFQUFnRSxlQUFlLHlHQUF5RyxvQkFBb0Isd0JBQXdCLG9CQUFvQixZQUFZLGtCQUFrQixRQUFRLFdBQVcsd0NBQXdDLFNBQVMsTUFBTSxpQ0FBaUMsc0NBQXNDLFFBQVEsV0FBVyw0RkFBNEYsU0FBUyxrSEFBa0gsNElBQTRJLDZCQUE2QixtQkFBbUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLHVEQUF1RCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLGtCQUFrQixlQUFlLHFGQUFxRix3QkFBd0IsaUJBQWlCLG1CQUFtQiw2SEFBNkgsK1BBQStQLGtCQUFrQixnQkFBZ0IsVUFBVSxxRUFBcUUsT0FBTyxvREFBb0QsNERBQTRELDJCQUEyQixTQUFTLGtDQUFrQyx1REFBdUQsRUFBRSw4Q0FBOEMsT0FBTyx3REFBd0QsMEJBQTBCLE9BQU8sc0RBQXNELG1DQUFtQyxvQkFBb0IsdURBQXVELFNBQVMsdUNBQXVDLDJJQUEySSxnQ0FBZ0MsY0FBYyx5UkFBeVIseUJBQXlCLCtCQUErQixRQUFRLDRMQUE0TCx1Q0FBdUMsZ0dBQWdHLHlIQUF5SCxrRkFBa0YsRUFBRSxtREFBbUQsZ0xBQWdMLGdDQUFnQyxnRUFBZ0UsRUFBRSw2QkFBNkIscUNBQXFDLGVBQWUsU0FBUyx1Q0FBdUMsMEJBQTBCLDZDQUE2QywyQ0FBMkMsdUNBQXVDLHlEQUF5RCwyQkFBMkIsaUJBQWlCLEVBQUUsZUFBZSx3QkFBd0IseUJBQXlCLHlFQUF5RSx5RUFBeUUsdUJBQXVCLHVFQUF1RSx5RUFBeUUsU0FBUyxrQkFBa0IsK0NBQStDLHVDQUF1QyxvQ0FBb0Msb0NBQW9DLG9HQUFvRyxTQUEwQixRQUFRLDBCQUEwQix5QkFBeUIsd0JBQXdCLEVBQUUsRUFBRSxrQkFBa0IsNkRBQTZELG1DQUFtQyxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLEVBQUUscURBQXFELFVBQVUsZ0JBQWdCLFFBQVEsNkhBQTZILFNBQVMsNEJBQTRCLDRFQUE0RSx3QkFBd0IsNEZBQTRGLEVBQUUsd0JBQXdCLHNHQUFzRyx1Q0FBdUMsRUFBRSxRQUFRLDJDQUEyQyx3REFBd0QsNkJBQTZCLDBCQUEwQixpQ0FBaUMseUJBQXlCLDJCQUEyQixrQkFBa0IsR0FBRyxnSEFBZ0gscUJBQXFCLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLFNBQVMsaUNBQWlDLGdFQUFnRSxNQUFNLGVBQWUsd0RBQXdELDJFQUEyRSxpREFBaUQsbUZBQW1GLHVQQUF1UCwrQ0FBK0MsZ0RBQWdELG1GQUFtRixvR0FBb0csdURBQXVELHdEQUF3RCxrRUFBa0UsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxFQUFFLG1DQUFtQyxTQUFTLGVBQWUsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsNEZBQTRGLDBKQUEwSixvRkFBb0YseURBQXlELHFCQUFxQixzREFBc0QsRUFBRSxxR0FBcUcsNEVBQTRFLG9FQUFvRSxTQUFTLEdBQUcscUZBQXFGLGdFQUFnRSxzRkFBc0YsaUhBQWlILG1GQUFtRixPQUFPLHdGQUF3RixrRUFBa0Usd0ZBQXdGLHdGQUF3Rix5RUFBeUUsT0FBTyx3RkFBd0Ysa0VBQWtFLHdGQUF3Rix3RkFBd0YseUVBQXlFLE9BQU8sd0ZBQXdGLGlFQUFpRSx1RkFBdUYsMkVBQTJFLG1FQUFtRSxzRUFBc0Usd0NBQXdDLHdGQUF3Rix3RUFBd0UsR0FBRyxtQkFBbUIsd0RBQXdELEVBQUUsbUJBQW1CLHNEQUFzRCxFQUFFLG1CQUFtQix5REFBeUQsR0FBRyxFQUFFLEdBQUcsRUFBRSx1REFBdUQsZUFBZSw2QkFBNkIsZUFBZSxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLGlCQUFpQixxQkFBcUIsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxpQkFBaUIsb0JBQW9CLHdCQUF3QixvQkFBb0IsWUFBWSxrQkFBa0IsUUFBUSxXQUFXLHdDQUF3QyxTQUFTLE1BQU0saUNBQWlDLHNDQUFzQyxRQUFRLFdBQVcsNEZBQTRGLFNBQVMsZUFBZSw4QkFBOEIsd0pBQXdKLGdGQUFnRixrRUFBa0UsbUZBQW1GLGlCQUFpQixnT0FBZ08sbUNBQW1DLHlKQUF5Siw4R0FBOEcsT0FBTyx5RkFBeUYsb05BQW9OLG1FQUFtRSxtQ0FBbUMsS0FBSyxpQkFBaUIsa0NBQWtDLGVBQWUsZ0NBQWdDLGlLQUFpSyxrRUFBa0UsbUZBQW1GLGdLQUFnSyx3QkFBd0IsT0FBTyxtQkFBbUIsME9BQTBPLHlFQUF5RSxnRkFBZ0YsMk1BQTJNLDBIQUEwSCxrQkFBa0IsMkZBQTJGLHVNQUF1TSxnQ0FBZ0MsNEpBQTRKLHdDQUF3Qyw0Q0FBNEMsbUJBQW1CLEVBQUUsc0ZBQXNGLDBFQUEwRSxtQ0FBbUMsS0FBSyxpQkFBaUIsb0NBQW9DLFFBQVEsT0FBTyxvTUFBb00sTUFBTSxvT0FBb08sZUFBZSx5QkFBeUIsZ01BQWdNLGFBQWEsc0JBQXNCLGFBQWEsMkNBQTJDLGNBQWMsbUJBQW1CLDBFQUEwRSxpR0FBaUcsZ2dCQUFnZ0IsRUFBRSxtQkFBbUIsY0FBYyxxQkFBcUIsd0VBQXdFLGlFQUFpRSxna0JBQWdrQixFQUFFLHFGQUFxRix3SEFBd0gsK0JBQStCLHFEQUFxRCxzQ0FBc0MsRUFBRSxFQUFFLEdBQUcsbUJBQW1CLGNBQWMsbUJBQW1CLDBFQUEwRSx3SEFBd0gsdXZCQUF1dkIsRUFBRSxtQkFBbUIsY0FBYyxtQkFBbUIsMEVBQTBFLHlFQUF5RSwyTEFBMkwsRUFBRSxtQkFBbUIsaUJBQWlCLG9DQUFvQyx1QkFBdUIsSUFBSSxjQUFjLFNBQVMsaUJBQWlCLG1CQUFtQiw2QkFBNkIsbUJBQW1CLHVGQUF1RixZQUFZLG1CQUFtQixJQUFJLGdCQUFnQiwyREFBMkQsT0FBTyxTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsVUFBVSwyQkFBMkIsOEpBQThKLEdBQUcsZUFBZSxtQkFBbUIsaUNBQWlDLGlCQUFpQixvR0FBb0csdUJBQXVCLHlKQUF5SixHQUFHLGlCQUFpQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixjQUFjLHVDQUF1QyxvQkFBb0IsMEJBQTBCLDhCQUE4QixlQUFlLHlCQUF5QiwwQ0FBMEMsbUNBQW1DLHNCQUFzQiw0QkFBNEIsaUJBQWlCLGdDQUFnQyxpREFBaUQseUNBQXlDLHlCQUF5Qix5QkFBeUIsa0NBQWtDLHNDQUFzQywyREFBMkQsdUNBQXVDLHdEQUF3RCxxQkFBcUIsZ0RBQWdELFdBQVcsU0FBUyxtQkFBbUIsOENBQThDLFNBQVMsMEJBQTBCLHVDQUF1QyxTQUFTLGlEQUFpRCw2QkFBNkIsU0FBUywyQkFBMkIscUNBQXFDLCtCQUErQixTQUFTLE9BQU8sYUFBYSw2QkFBNkIsNEJBQTRCLGdDQUFnQyw0Q0FBNEMsMENBQTBDLHdCQUF3QixxQkFBcUIsd0JBQXdCLDJCQUEyQixzQ0FBc0Msa0NBQWtDLHlCQUF5QixTQUFTLE9BQU8seUNBQXlDLHdCQUF3QixzQ0FBc0Msb0JBQW9CLHFCQUFxQixzQkFBc0IsNEJBQTRCLGdDQUFnQywyQkFBMkIseURBQXlELG1CQUFtQiw0Q0FBNEMsU0FBUywyQkFBMkIscUNBQXFDLFNBQVMsZUFBZSxzQkFBc0IsdUJBQXVCLFNBQVMsT0FBTyxLQUFLLCtCQUErQiwyQkFBMkIsd0JBQXdCLG9CQUFvQiwwQkFBMEIsZUFBZSxLQUFLLGtDQUFrQyxpQkFBaUIsMkNBQTJDLG9DQUFvQyx5Q0FBeUMsZ0NBQWdDLHVCQUF1Qix5QkFBeUIseUJBQXlCLHNDQUFzQyx5QkFBeUIsaUJBQWlCLGtCQUFrQiwwQkFBMEIsd0JBQXdCLG1HQUFtRyw2QkFBNkIsbUJBQW1CLGlCQUFpQixPQUFPLGFBQWEsMkJBQTJCLG9DQUFvQyxxQkFBcUIsa0JBQWtCLE9BQU8sbUNBQW1DLHNCQUFzQiw0QkFBNEIsaUJBQWlCLE9BQU8sd0NBQXdDLG1CQUFtQixvQkFBb0IsMkJBQTJCLHVCQUF1Qix5Q0FBeUMsa0NBQWtDLDZDQUE2QyxTQUFTLE9BQU8sS0FBSyxnRUFBZ0UsS0FBSyx3QkFBd0IsSUFBSSxxQkFBcUIsU0FBUyxHQUFHLHdEQUF3RCxlQUFlLHFKQUFxSiwrQ0FBK0MsaUpBQWlKLDRDQUE0Qyx3Q0FBd0MsNkRBQTZELGtCQUFrQix1Q0FBdUMsNERBQTRELE1BQU0sTUFBTSxPQUFPLHFEQUFxRCxrREFBa0Qsd0JBQXdCLHNCQUFzQixXQUFXLFlBQVksMEJBQTBCLDZCQUE2QixjQUFjLDRDQUE0QyxXQUFXLDBCQUEwQix1QkFBdUIsSUFBSSxNQUFNLE1BQU0sV0FBVyxrQ0FBa0MsR0FBRyxxQ0FBcUMsUUFBUSx1QkFBdUIsTUFBTSxpRUFBaUUsTUFBTSxVQUFVLHVCQUF1QixRQUFRLDZEQUE2RCxrQkFBa0IsZ0JBQWdCLFFBQVEsNkRBQTZELE1BQU0sd0VBQXdFLGdCQUFnQixRQUFRLDJDQUEyQyxzREFBc0QsaUdBQWlHLG9HQUFvRywwREFBMEQsa0VBQWtFLEVBQUUsc0dBQXNHLHlKQUF5SixpRkFBaUYsMkRBQTJELDJCQUEyQixtQ0FBbUMsaURBQWlELG9EQUFvRCxxR0FBcUcsNkRBQTZELG1FQUFtRSw2RUFBNkUsNkNBQTZDLHFDQUFxQyxlQUFlLDJCQUEyQixlQUFlLG9CQUFvQixXQUFXLElBQUksZUFBZSxzQkFBc0IsY0FBYyxtQkFBbUIsMEVBQTBFLG1IQUFtSCxtTkFBbU4sRUFBRSxtQkFBbUIsZUFBZSxzQ0FBc0Msd0JBQXdCLFVBQVUsZ0NBQWdDLEVBQUUsaUNBQWlDLHNDQUFzQyxzQkFBc0Isc0JBQXNCLG1DQUFtQyxpREFBaUQsd0JBQXdCLDBCQUEwQiwwQkFBMEIsMkJBQTJCLHNCQUFzQiwwQkFBMEIsdUJBQXVCLCtDQUErQyxVQUFVLHVCQUF1QixRQUFRLHVCQUF1QixXQUFXLGlEQUFpRCwrQkFBK0IsT0FBTyxnRkFBZ0YsdUZBQXVGLGdUQUFnVCxnQ0FBZ0MsbUJBQW1CLDhDQUE4QywyQkFBMkIsaUNBQWlDLGNBQWMsd0VBQXdFLGdKQUFnSixRQUFRLG9FQUFvRSxpQ0FBaUMsOEdBQThHLHNDQUFzQyw4Q0FBOEMsbUJBQW1CLDBCQUEwQixjQUFjLG1CQUFtQiwwRUFBMEUsNkZBQTZGLDRYQUE0WCxFQUFFLG1CQUFtQixnQkFBZ0IsZUFBZSxrR0FBa0csaUJBQWlCLG9DQUFvQyx1QkFBdUIsSUFBSSxjQUFjLFNBQVMsMkJBQTJCLElBQUksd0JBQXdCLFNBQVMsS0FBSyxPQUFPLHlDQUF5QyxPQUFPLGlDQUFtQixrREFBa0QsdVhBQXVYLHlDQUF5Qyw4RkFBOEYsRUFBRSxlQUFlLCtFQUErRSxTQUFTLFNBQVMsY0FBYywrQkFBK0IseUJBQXlCLEtBQUssb0NBQW9DLHVCQUF1QixrQ0FBa0MscUJBQXFCLG9CQUFvQiwwREFBMEQsZUFBZSxFQUFFLEdBQUcsZUFBZSxzQkFBc0IsbUdBQW1HLG1CQUFtQiw2SUFBNkksa0JBQWtCLFlBQVksbUJBQW1CLEtBQUssd0NBQXdDLGtCQUFrQixnSEFBZ0gsdURBQXVELDBCQUEwQixVQUFVLGlEQUFpRCxrREFBa0QsU0FBUyxFQUFFLFNBQVMsR0FBRyxJQUFJLGdCQUFnQixrQkFBa0Isa0tBQWtLLFNBQVMsa0RBQWtELGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLGNBQWMsMkNBQTJDLGtCQUFrQixLQUFLLGlDQUFpQyw4QkFBOEIscUJBQXFCLE9BQU8sS0FBSyx1Q0FBdUMscUJBQXFCLEtBQUssMkJBQTJCLHNCQUFzQixxREFBcUQsb0JBQW9CLHFDQUFxQywwQkFBMEIsZ0JBQWdCLEtBQUssc0NBQXNDLDBCQUEwQixLQUFLLDBCQUEwQix1QkFBdUIsY0FBYyxLQUFLLGdDQUFnQyxnQ0FBZ0MsdUJBQXVCLG9DQUFvQyxnQkFBZ0IsS0FBSywrQkFBK0IsbUNBQW1DLGdDQUFnQyxnQkFBZ0IsS0FBSyx5Q0FBeUMsb0JBQW9CLDBCQUEwQixlQUFlLDhDQUE4Qyw4Q0FBOEMsdUNBQXVDLHVCQUF1QixnQ0FBZ0Msb0NBQW9DLHVCQUF1Qix5REFBeUQsaUJBQWlCLDRDQUE0QyxPQUFPLGFBQWEsb0JBQW9CLHFCQUFxQiwwQkFBMEIsT0FBTyxLQUFLLHNCQUFzQixzQkFBc0IsbUNBQW1DLDZCQUE2QixPQUFPLGdCQUFnQixtQkFBbUIsT0FBTyxnQkFBZ0Isc0NBQXNDLGdEQUFnRCxPQUFPLEtBQUssMkNBQTJDLG1CQUFtQiwwQkFBMEIsS0FBSyxzQkFBc0Isa0JBQWtCLG1CQUFtQixrQkFBa0IsS0FBSyxnRUFBZ0UsS0FBSyx3QkFBd0IsSUFBSSxxQkFBcUIsU0FBUyxHQUFHLGVBQWUscVFBQXFRLDZCQUE2QixtQkFBbUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLHVEQUF1RCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLGVBQWUsMEJBQTBCLG9DQUFvQyxvQkFBb0IsZ0JBQWdCLHFCQUFxQixhQUFhLHdCQUF3QixxQkFBcUIsWUFBWSxnQkFBZ0IsMEVBQTBFLHdHQUF3RyxZQUFZLElBQUksY0FBYyxtQkFBbUIsWUFBWSx3REFBd0QsS0FBSyx1QkFBdUIsS0FBSyxrSEFBa0gseUNBQXlDLGtCQUFrQixNQUFNLHlCQUF5QixvQkFBb0IsOEJBQThCLFNBQVMsa0NBQWtDLFNBQVMsMEVBQTBFLElBQUksU0FBUyx5Q0FBeUMsYUFBYSxNQUFNLDJCQUEyQixpQkFBaUIsTUFBTSxvQkFBb0IsMkJBQTJCLE1BQU0sK0JBQStCLFNBQVMsY0FBYyxTQUFTLFlBQVksUUFBUSxNQUFNLHFCQUFxQixPQUFPLGtDQUFrQyxrQkFBa0IsZ0JBQWdCLDRHQUE0Ryw2RkFBNkYsZ0JBQWdCLG1CQUFtQixxQkFBcUIsb0JBQW9CLDJHQUEyRyxHQUFHLGdKQUFnSixrQkFBa0IsY0FBYyxHQUFHLGtJQUFrSSxjQUFjLCtCQUErQixpQ0FBaUMseUJBQXlCLEdBQUcsMEJBQTBCLHlGQUF5RixnQkFBZ0IsbUJBQW1CLHFCQUFxQixHQUFHLG9FQUFvRSxZQUFZLDZCQUE2Qix3QkFBd0IsK0dBQStHLHdGQUF3Riw0QkFBNEIsbUJBQW1CLEVBQUUsWUFBWSx1QkFBdUIsaUNBQWlDLG1CQUFtQixjQUFjLHVCQUF1QixjQUFjLHdCQUF3QixVQUFVLEVBQUUsSUFBSSxhQUFhLHlEQUF5RCw4QkFBOEIsY0FBYyw4QkFBOEIsMkRBQTJELGVBQWUsRUFBRSxPQUFPLGlGQUFpRixhQUFhLDREQUE0RCxjQUFjLEdBQUcsNkJBQTZCLFNBQVMseUJBQXlCLHVCQUF1QixnQ0FBZ0MsRUFBRSx3QkFBd0IsU0FBUyx5QkFBeUIsNkJBQTZCLFVBQVUsUUFBUSxFQUFFLHdCQUF3QixTQUFTLHlFQUF5RSw0REFBNEQscUZBQXFGLDJEQUEyRCxpQ0FBaUMsaUJBQWlCLDRFQUE0RSxHQUFHLDJDQUEyQyxRQUFRLCtGQUErRixpQ0FBaUMsd0JBQXdCLCtCQUErQix3QkFBd0IsNkJBQTZCLDJHQUEyRywwREFBMEQsc0VBQXNFLEdBQUcsaUhBQWlILDJEQUEyRCx1Q0FBdUMsaUJBQWlCLHNGQUFzRixHQUFHLDBGQUEwRiwyQ0FBMkMsd0JBQXdCLDZDQUE2Qyx3QkFBd0IscUNBQXFDLHdCQUF3Qix1Q0FBdUMsaUhBQWlILDBEQUEwRCxzRUFBc0UsR0FBRywwR0FBMEcsMkRBQTJELCtCQUErQixpQkFBaUIsaUZBQWlGLEdBQUcsNEpBQTRKLHlEQUF5RCxxREFBcUQsR0FBRyx5R0FBeUcsMkRBQTJELCtEQUErRCxpQkFBaUIsMEdBQTBHLEdBQUcscUZBQXFGLHNCQUFzQixnQkFBZ0Isb0VBQW9FLDREQUE0RCw2REFBNkQsc0lBQXNJLEVBQUUsR0FBRyxnR0FBZ0csMkRBQTJELHVEQUF1RCxpQkFBaUIsbUdBQW1HLEdBQUcsZ0pBQWdKLDREQUE0RCxzREFBc0QsbUJBQW1CLEVBQUUsR0FBRyx5R0FBeUcsOENBQThDLHdGQUF3RixnRUFBZ0UsdUZBQXVGLDBEQUEwRCwwREFBMEQseUhBQXlILHVEQUF1RCxlQUFlLEdBQUcsRUFBRSw4RkFBOEYseURBQXlELDhIQUE4SCx1RUFBdUUsd0ZBQXdGLDJEQUEyRCxzREFBc0QsaUJBQWlCLG9IQUFvSCxHQUFHLDRDQUE0QyxXQUFXLDZCQUE2QixFQUFFLGdHQUFnRyxtQkFBbUIsNkRBQTZELDZEQUE2RCw0REFBNEQsNERBQTRELHdPQUF3TyxFQUFFLEdBQUcsRUFBRSw4REFBOEQsS0FBK0Msa0JBQWtCLDZEQUE2RCwyREFBMkQsMkRBQTJELHdEQUF3RCxpQkFBaUIseUtBQXlLLEdBQUcsbUJBQW1CLDREQUE0RCxrUkFBa1IsV0FBVyw2QkFBNkIsRUFBRSx3Q0FBd0MsdUJBQXVCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFJLDhGQUE4RixxQkFBcUIsNkNBQTZDLGVBQWUsMkJBQTJCLDZCQUE2QixxQkFBcUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLHVEQUF1RCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLGtCQUFrQiwwQkFBMEIsbUJBQW1CLElBQUksZUFBZSxrQ0FBa0MsaUNBQWlDLG9CQUFvQix3QkFBd0Isb0JBQW9CLFlBQVksa0JBQWtCLFFBQVEsV0FBVyx3Q0FBd0MsU0FBUyxNQUFNLGlDQUFpQyxzQ0FBc0MsUUFBUSxXQUFXLDRGQUE0RixTQUFTLCtKQUErSixZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLEdBQUcsU0FBUyxXQUFXLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLG9HQUFvRyx5REFBeUQsMkNBQTJDLG1DQUFtQyxlQUFlLHVCQUF1QixnQkFBZ0IscUZBQXFGLG1CQUFtQixtRkFBbUYsbUJBQW1CLG9GQUFvRixtQkFBbUIscUJBQXFCLGdCQUFnQixjQUFjLG1CQUFtQiwwRUFBMEUsdUZBQXVGLDBSQUEwUixFQUFFLG1CQUFtQixjQUFjLDhEQUE4RCxvQkFBb0IsMEJBQTBCLDhDQUE4Qyx5Q0FBeUMsOENBQThDLHNDQUFzQyxLQUFLLHdEQUF3RCxtQkFBbUIsb0JBQW9CLDBCQUEwQiw4QkFBOEIsS0FBSyxvRUFBb0UsK0JBQStCLGlFQUFpRSxLQUFLLG1FQUFtRSwrQkFBK0IsaUVBQWlFLEtBQUssOENBQThDLGlCQUFpQixtQkFBbUIsd0NBQXdDLEtBQUssZ0VBQWdFLEtBQUssd0JBQXdCLElBQUkscUJBQXFCLFNBQVMsR0FBRyxnQkFBZ0IsY0FBYyxnWUFBZ1ksS0FBSyx3QkFBd0IsSUFBSSxxQkFBcUIsU0FBUyxHQUFHLGNBQWMseUJBQXlCLGdEQUFnRCxxQkFBcUIsYUFBYSw4QkFBOEIsK0JBQStCLE9BQU8sS0FBSyx1Q0FBdUMsOENBQThDLDBCQUEwQixLQUFLLDREQUE0RCxzQkFBc0IsS0FBSyw2R0FBNkcsbUNBQW1DLEtBQUssc0RBQXNELHFDQUFxQyxLQUFLLG1EQUFtRCx1QkFBdUIseUJBQXlCLHlDQUF5QyxLQUFLLDJEQUEyRCx1QkFBdUIsS0FBSyxxREFBcUQsbUJBQW1CLEtBQUssc0NBQXNDLHdCQUF3QixxQkFBcUIsNkJBQTZCLDBCQUEwQixnQ0FBZ0MsNkJBQTZCLDRCQUE0Qix5QkFBeUIseUNBQXlDLEtBQUsscUNBQXFDLG9CQUFvQiwwQkFBMEIsZUFBZSwyQkFBMkIsK0NBQStDLHNDQUFzQyxnQ0FBZ0MsdUJBQXVCLGtDQUFrQyxhQUFhLGdDQUFnQyxpQ0FBaUMsT0FBTyxLQUFLLDREQUE0RCxvQkFBb0IsMEJBQTBCLDhCQUE4Qix5Q0FBeUMsbUJBQW1CLCtCQUErQixhQUFhLDhCQUE4QiwrQkFBK0IsT0FBTyx5QkFBeUIsbUNBQW1DLDZCQUE2QixPQUFPLGlCQUFpQiwwQ0FBMEMsT0FBTyxLQUFLLHFDQUFxQyxtQ0FBbUMsZ0NBQWdDLGtDQUFrQyxLQUFLLGtEQUFrRCx1QkFBdUIsZ0JBQWdCLHlDQUF5Qyx3Q0FBd0MsdUJBQXVCLGdDQUFnQyxtQ0FBbUMsK0NBQStDLGtDQUFrQyxLQUFLLHdEQUF3RCxrQkFBa0Isd0NBQXdDLHlCQUF5Qiw4Q0FBOEMsdUNBQXVDLDhDQUE4QywwR0FBMEcsS0FBSywyQ0FBMkMseUNBQXlDLEtBQUssMkNBQTJDLHlDQUF5QyxrQkFBa0IsS0FBSyxtQ0FBbUMsa0JBQWtCLHlCQUF5QixtQkFBbUIsZ0JBQWdCLHdCQUF3QixLQUFLLHlDQUF5QyxpQ0FBaUMscUVBQXFFLCtCQUErQixvS0FBb0ssc0JBQXNCLGlDQUFpQyxrQkFBa0Isc0JBQXNCLHVCQUF1QixrQkFBa0IsOENBQThDLDJDQUEyQyx5QkFBeUIsNEVBQTRFLE9BQU8sK0RBQStELDZDQUE2QyxzR0FBc0csU0FBUyxPQUFPLGlDQUFpQyw2Q0FBNkMsOERBQThELFNBQVMsT0FBTyw2SEFBNkgsa0NBQWtDLE9BQU8saUNBQWlDLDZDQUE2QyxvQ0FBb0MsU0FBUyxPQUFPLEtBQUssb0NBQW9DLDBDQUEwQyxvQkFBb0IsOEJBQThCLDBCQUEwQixlQUFlLHlCQUF5QixLQUFLLHVDQUF1QyxtQ0FBbUMseUJBQXlCLGdDQUFnQyx1QkFBdUIsa0NBQWtDLHlDQUF5QyxLQUFLLHdDQUF3QyxvQkFBb0IsOEJBQThCLDBCQUEwQiw4QkFBOEIsNkJBQTZCLHdDQUF3QyxxQkFBcUIscUJBQXFCLHlDQUF5QyxhQUFhLDhCQUE4QiwrQkFBK0IsT0FBTyx5QkFBeUIsbUNBQW1DLE9BQU8saUNBQWlDLDBDQUEwQyxPQUFPLG9CQUFvQixxQkFBcUIsNEJBQTRCLE9BQU8sS0FBSyw2Q0FBNkMsb0NBQW9DLEtBQUssa0NBQWtDLGlDQUFpQywrQ0FBK0Msb0RBQW9ELG9DQUFvQyw4QkFBOEIsOENBQThDLHlCQUF5QiwrQ0FBK0MsZ0NBQWdDLGlEQUFpRCxvQkFBb0IsYUFBYSw4QkFBOEIsK0JBQStCLE9BQU8sS0FBSyw0Q0FBNEMseUNBQXlDLEtBQUssNEJBQTRCLHFCQUFxQixLQUFLLHlCQUF5Qiw2QkFBNkIsS0FBSyxvQ0FBb0MsdUJBQXVCLHVCQUF1QixLQUFLLDBCQUEwQixrQkFBa0IsNENBQTRDLGlDQUFpQyxxREFBcUQsS0FBSyxtREFBbUQsbUJBQW1CLCtCQUErQix5Q0FBeUMsd0JBQXdCLHlCQUF5QixtQ0FBbUMsNkJBQTZCLE9BQU8saUJBQWlCLDBDQUEwQyxPQUFPLEtBQUssbUZBQW1GLG9EQUFvRCxLQUFLLHdDQUF3QyxxQkFBcUIsb0NBQW9DLCtDQUErQyxLQUFLLGdGQUFnRix5QkFBeUIseUJBQXlCLGlCQUFpQiwyQkFBMkIsbUJBQW1CLE9BQU8sa0JBQWtCLG9CQUFvQiwwREFBMEQsOENBQThDLG1EQUFtRCx5Q0FBeUMseURBQXlELDJCQUEyQixPQUFPLEtBQUsscUNBQXFDLGdCQUFnQixLQUFLLHdCQUF3QixvQkFBb0IsZ0JBQWdCLGlCQUFpQixLQUFLLDRDQUE0Qyx3QkFBd0IsS0FBSyx5Q0FBeUMsdUJBQXVCLDRCQUE0QixLQUFLLG1DQUFtQyxtQ0FBbUMsS0FBSyxvRkFBb0Ysb0RBQW9ELEtBQUssZ0NBQWdDLHFCQUFxQixvQ0FBb0MsK0NBQStDLEtBQUssd0NBQXdDLG9CQUFvQiwwQkFBMEIscUNBQXFDLHNCQUFzQixnQkFBZ0IsS0FBSyw0Q0FBNEMsd0NBQXdDLEtBQUssc0NBQXNDLHVCQUF1Qiw0QkFBNEIsS0FBSyw4Q0FBOEMsa0JBQWtCLDZCQUE2Qix1QkFBdUIsS0FBSyxxQ0FBcUMsc0JBQXNCLEtBQUssMkNBQTJDLHdDQUF3QyxLQUFLLGtEQUFrRCx3QkFBd0IsS0FBSyx1Q0FBdUMsK0JBQStCLEtBQUssc0NBQXNDLGdDQUFnQyxLQUFLLHVDQUF1QyxzQ0FBc0MsZ0NBQWdDLHVCQUF1QixLQUFLLDBEQUEwRCxtQ0FBbUMsS0FBSyx3Q0FBd0Msc0NBQXNDLHlCQUF5QixnQ0FBZ0MsS0FBSyxpQ0FBaUMsc0JBQXNCLHNDQUFzQyxLQUFLLHVDQUF1Qyw0QkFBNEIsS0FBSywwQkFBMEIsb0JBQW9CLDBCQUEwQixrQ0FBa0MsS0FBSyxnQ0FBZ0Msd0JBQXdCLEtBQUssK0JBQStCLHdCQUF3QixtQkFBbUIsdUJBQXVCLDRDQUE0QyxpQkFBaUIscUNBQXFDLG1CQUFtQixLQUFLLHFDQUFxQyxpQkFBaUIsS0FBSyw0Q0FBNEMsb0JBQW9CLDBCQUEwQixxQ0FBcUMsMEJBQTBCLEtBQUssb0NBQW9DLHNCQUFzQixLQUFLLHNDQUFzQyw0QkFBNEIsS0FBSywwREFBMEQsb0JBQW9CLDhCQUE4QiwwQkFBMEIsZUFBZSwrQkFBK0IsK0JBQStCLDhDQUE4QyxtQ0FBbUMsb0RBQW9ELHNDQUFzQyx5Q0FBeUMscUNBQXFDLGdDQUFnQyx1QkFBdUIsa0NBQWtDLEtBQUsscURBQXFELDRCQUE0QixtQ0FBbUMsaUJBQWlCLDBDQUEwQyxPQUFPLGlCQUFpQixtQ0FBbUMsT0FBTyxLQUFLLDBDQUEwQyxtQ0FBbUMscUNBQXFDLEtBQUssd0NBQXdDLG1DQUFtQyxxQ0FBcUMsS0FBSywyQ0FBMkMsaUNBQWlDLG1DQUFtQyxLQUFLLDBDQUEwQyxrQ0FBa0Msb0NBQW9DLEtBQUssc0VBQXNFLG1KQUFtSiw0QkFBNEIsb0NBQW9DLDJDQUEyQyxLQUFLLCtCQUErQix3Q0FBd0Msb0NBQW9DLCtDQUErQyx1QkFBdUIsZ0JBQWdCLGdDQUFnQyxnQ0FBZ0MseUNBQXlDLEtBQUssNENBQTRDLG1CQUFtQixLQUFLLGtDQUFrQyx5QkFBeUIsOENBQThDLG9EQUFvRCx5Q0FBeUMsdUJBQXVCLEtBQUssc0NBQXNDLGdCQUFnQiwrQ0FBK0MsZ0NBQWdDLEtBQUssbUNBQW1DLHlCQUF5QixzQkFBc0IsOEJBQThCLDBCQUEwQixpQkFBaUIsZUFBZSxtQkFBbUIsNkJBQTZCLDRCQUE0Qix5Q0FBeUMsb0RBQW9ELDhDQUE4QyxLQUFLLHVDQUF1QyxxQkFBcUIsdUJBQXVCLHNCQUFzQixLQUFLLGdFQUFnRSxtREFBbUQsd0NBQXdDLEtBQUssMkNBQTJDLHlDQUF5QyxLQUFLLDZDQUE2QyxzQ0FBc0MsS0FBSyxxQ0FBcUMsa0JBQWtCLGtCQUFrQixzQkFBc0IsOENBQThDLHlCQUF5QiwyQkFBMkIsd0JBQXdCLGtCQUFrQiw0QkFBNEIsY0FBYyx5Q0FBeUMsNEJBQTRCLGVBQWUsMEVBQTBFLHlGQUF5RixPQUFPLEtBQUssV0FBVyxFQUFFLGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLGlCQUFpQixtQkFBbUIsNkJBQTZCLG1CQUFtQix1RkFBdUYsWUFBWSxtQkFBbUIsSUFBSSxnQkFBZ0IsMkRBQTJELE9BQU8sU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLFVBQVUscUJBQXFCLE1BQU0scUNBQXFDLG9EQUFvRCxpR0FBaUcsdUZBQXVGLGtCQUFrQiw4SkFBOEosR0FBRyxpQkFBaUIsMENBQTBDLHlCQUF5Qix5QkFBeUIsd0pBQXdKLGtEQUFrRCxRQUFRLG1EQUFtRCxNQUFNLCtDQUErQyxNQUFNLGdCQUFnQixpQ0FBaUMsMkdBQTJHLHFCQUFxQixnQ0FBZ0MsZUFBZSxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLGlCQUFpQixxQkFBcUIsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxlQUFlLGlJQUFpSSxLQUFxQixDQUFDLG1EQUFtRCxjQUFjLGdCQUFnQiwwREFBMEQsNkNBQTZDLHlGQUF5RixpREFBaUQsUUFBUSxrRkFBa0YsS0FBSyxpQ0FBaUMsa0ZBQWtGLEdBQUcsT0FBTyxFQUFFLGtIQUFrSCxLQUFLLG1GQUFtRixtSkFBbUosOEZBQThGLG9CQUFvQixpQkFBaUIsb0NBQW9DLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxtQkFBbUIseUNBQXlDLGtEQUFrRCxXQUFXLGVBQWUsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLGFBQWEsRUFBRSxTQUFTLGlCQUFpQixtQkFBbUIsNkJBQTZCLG1CQUFtQix1RkFBdUYsWUFBWSxtQkFBbUIsSUFBSSxnQkFBZ0IsMkRBQTJELE9BQU8sU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLFVBQVUscUJBQXFCLE1BQU0scUNBQXFDLG9EQUFvRCxpR0FBaUcsdUZBQXVGLGtCQUFrQiw4SkFBOEosR0FBRyxtQkFBbUIscUJBQXFCLHlEQUF5RCw2REFBNkQsOEJBQThCLGdCQUFnQiwyRUFBMkUsb0RBQW9ELGdCQUFnQiw0Q0FBNEMsdUJBQXVCLHdCQUF3QixXQUFXLEtBQUssa0JBQWtCLFdBQVcsYUFBYSxTQUFTLElBQUksTUFBTSw2QkFBNkIsWUFBWSw0QkFBNEIsaUNBQWlDLFlBQVksYUFBYSw2QkFBNkIsVUFBVSwyQkFBMkIsZ0JBQWdCLGVBQWUsTUFBTSw2Q0FBNkMsMEJBQTBCLGlCQUFpQixLQUFLLHdCQUF3QixxQkFBcUIsMkJBQTJCLGdCQUFnQiw0Q0FBNEMsMkJBQTJCLEVBQUUsSUFBSSxlQUFlLFNBQVMsRUFBRSxHQUFHLHNCQUFzQixTQUFTLGdDQUFnQyxvRUFBb0Usa0JBQWtCLEVBQUUsc0JBQXNCLGlCQUFpQixRQUFRLGNBQWMsb0JBQW9CLGNBQWMsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxFQUFFLGFBQWEsT0FBTywyRUFBMkUsZUFBZSwyQ0FBMkMsa0NBQWtDLDJDQUEyQyxnQkFBZ0Isc0JBQXNCLG1DQUFtQyxHQUFHLGNBQWMscURBQXFELDhDQUE4QyxpR0FBaUcsa0dBQWtHLE9BQU8saUNBQW1CLHFSQUFxUixpQkFBaUIsb0NBQW9DLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxpQkFBaUIsb0NBQW9DLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxpQkFBaUIsbUJBQW1CLDZCQUE2QixtQkFBbUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLDJEQUEyRCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLEdBQUcsaUJBQWlCLG9DQUFvQyx1QkFBdUIsSUFBSSxjQUFjLFNBQVMsZUFBZSx5QkFBeUIsMkVBQTJFLGdaQUFnWiw2REFBNkQsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxFQUFFLDBGQUEwRixTQUFTLFdBQVcsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsOEJBQThCLGVBQWUseUJBQXlCLDJFQUEyRSxpeEJBQWl4Qiw2REFBNkQsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxFQUFFLDBGQUEwRixTQUFTLFdBQVcsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsOEJBQThCLGdKQUFnSiwrQ0FBK0MsNEJBQTRCLGVBQWUsdUJBQXVCLGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLGVBQWUsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxpQkFBaUIscUJBQXFCLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLElBQUksaUJBQWlCLG9CQUFvQix3QkFBd0Isb0JBQW9CLFlBQVksa0JBQWtCLFFBQVEsV0FBVyx3Q0FBd0MsU0FBUyxNQUFNLGlDQUFpQyxzQ0FBc0MsUUFBUSxXQUFXLDRGQUE0RixTQUFTLGlCQUFpQixtQkFBbUIsNkJBQTZCLG1CQUFtQix1RkFBdUYsWUFBWSxtQkFBbUIsSUFBSSxnQkFBZ0IsMkRBQTJELE9BQU8sU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLFVBQVUscUJBQXFCLE1BQU0scUNBQXFDLG9EQUFvRCxpR0FBaUcsdUZBQXVGLGtCQUFrQiw4SkFBOEosR0FBRyxjQUFjLG1EQUFtRCw2REFBNkQscUNBQXFDLDRDQUE0Qyw0REFBNEQsa0VBQWtFLGdFQUFnRSxtRUFBbUUsaUVBQWlFLHFEQUFxRCx5REFBeUQsNkRBQTZELG9DQUFvQyxlQUFlLGFBQWEsb0NBQW9DLDRCQUE0QixrQ0FBa0Msc0NBQXNDLGlDQUFpQyxhQUFhLGlDQUFpQyxpQ0FBaUMsa0NBQWtDLDRCQUE0QixrQ0FBa0MsaUNBQWlDLDZDQUE2Qyw4TEFBOEwsMENBQTBDLGlEQUFpRCxnQ0FBZ0MsOEJBQThCLHVCQUF1QiwrQkFBK0IsZ0VBQWdFLGdRQUFnUSw4Q0FBOEMsNEJBQTRCLGVBQWUsb0RBQW9ELDRCQUE0QixlQUFlLDJFQUEyRSwyQ0FBMkMsb0NBQW9DLGVBQWUsc0NBQXNDLG9DQUFvQyw4Q0FBOEMsb0NBQW9DLDZEQUE2RCxzQ0FBc0MscUNBQXFDLCtDQUErQyx5Q0FBeUMsbUJBQW1CLDZCQUE2QixpRUFBaUUsbUJBQW1CLGlCQUFpQixlQUFlLGdGQUFnRix5QkFBeUIsZUFBZSx1QkFBdUIsOEJBQThCLGVBQWUsYUFBYSxvREFBb0QseUNBQXlDLGFBQWEsbUVBQW1FLHlDQUF5QyxtQ0FBbUMsYUFBYSwwQkFBMEIsMEJBQTBCLG1DQUFtQyxvQ0FBb0MsK0JBQStCLDhEQUE4RCxpQ0FBaUMsaUNBQWlDLHVCQUF1Qix5QkFBeUIsdUJBQXVCLG1DQUFtQyxvREFBb0Qsc0RBQXNELGFBQWEsNkJBQTZCLGtDQUFrQyw0QkFBNEIsdUJBQXVCLGtDQUFrQyxnQ0FBZ0MsaUNBQWlDLHFDQUFxQyxnQ0FBZ0MsaURBQWlELGdFQUFnRSxpREFBaUQsMkRBQTJELGVBQWUsK0NBQStDLDZEQUE2RCxlQUFlLDhCQUE4QixvQ0FBb0MsZUFBZSxhQUFhLGtDQUFrQyx3Q0FBd0MsMkJBQTJCLGlDQUFpQywyQkFBMkIsNEJBQTRCLHVCQUF1QixrQ0FBa0Msd0JBQXdCLDBDQUEwQywrQkFBK0IseUJBQXlCLGtDQUFrQyxpQ0FBaUMsMkJBQTJCLGVBQWUsYUFBYSxzQ0FBc0Msb0NBQW9DLHFDQUFxQyxpREFBaUQsZ0VBQWdFLHlCQUF5QiwyREFBMkQsZUFBZSxhQUFhLDRCQUE0QiwwQkFBMEIsb0NBQW9DLHFDQUFxQyxhQUFhLGdDQUFnQyxzQ0FBc0MsdUNBQXVDLDRCQUE0Qiw0QkFBNEIsa0NBQWtDLGlEQUFpRCx3RUFBd0UsaUNBQWlDLDJCQUEyQixlQUFlLHlCQUF5Qiw0REFBNEQsZUFBZSxxQkFBcUIsK0JBQStCLHNDQUFzQyx1Q0FBdUMsZUFBZSxhQUFhLDZDQUE2Qyw0QkFBNEIseUNBQXlDLGlEQUFpRCx5Q0FBeUMsb0ZBQW9GLDBDQUEwQyxpQkFBaUIsZUFBZSxxQkFBcUIsaUNBQWlDLGVBQWUsMENBQTBDLGdFQUFnRSxlQUFlLDJDQUEyQywrREFBK0QsZUFBZSxhQUFhLDBDQUEwQyxvQ0FBb0Msc0NBQXNDLCtEQUErRCxlQUFlLGFBQWEsc0JBQXNCLHlEQUF5RCxhQUFhLHNCQUFzQixzREFBc0Qsb0NBQW9DLGFBQWEsdUJBQXVCLG1DQUFtQyxhQUFhLGlDQUFpQyxrQkFBa0IsMkJBQTJCLGtDQUFrQywyQ0FBMkMsZUFBZSxvQkFBb0IsMkJBQTJCLGtDQUFrQyx5Q0FBeUMsZUFBZSxhQUFhLGtDQUFrQyxrQkFBa0IsMkJBQTJCLGtDQUFrQyx5Q0FBeUMsZUFBZSxvQkFBb0IsMkJBQTJCLDZDQUE2QyxrQ0FBa0MsZUFBZSxhQUFhLGdDQUFnQyxvQ0FBb0MseUNBQXlDLGVBQWUscUNBQXFDLHFDQUFxQyxlQUFlLHFDQUFxQyxxQ0FBcUMsZUFBZSxzQ0FBc0Msd0NBQXdDLGVBQWUsYUFBYSxnQ0FBZ0Msb0NBQW9DLHlDQUF5QyxlQUFlLHFDQUFxQyxxQ0FBcUMsZUFBZSxxQ0FBcUMscUNBQXFDLGVBQWUsc0NBQXNDLHdDQUF3QyxlQUFlLGFBQWEsK0NBQStDLHlIQUF5SCxtREFBbUQsZUFBZSxhQUFhLHdFQUF3RSxLQUFLLHdCQUF3QixJQUFJLHFCQUFxQixTQUFTLEdBQUcsZUFBZSxzR0FBc0csOEZBQThGLHNQQUFzUCx5QkFBeUIsZ0pBQWdKLDZCQUE2QixtQkFBbUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLHVEQUF1RCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLCtDQUErQyxRQUFRLHdDQUF3QyxpQ0FBaUMsTUFBTSxtQ0FBbUMsTUFBTSxJQUFJLGtCQUFrQixtQkFBbUIsaU1BQWlNLGdCQUFnQixNQUFNLHFDQUFxQyxnQ0FBZ0MsRUFBRSwrQkFBK0Isd0JBQXdCLDBNQUEwTSw2QkFBNkIsbUJBQW1CLHVGQUF1RixZQUFZLG1CQUFtQixJQUFJLGdCQUFnQix1REFBdUQsT0FBTyxTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsVUFBVSxxQkFBcUIsTUFBTSxxQ0FBcUMsb0RBQW9ELGlHQUFpRyx1RkFBdUYsa0JBQWtCLDhKQUE4Six5RkFBeUYsd0dBQXdHLCtCQUErQixLQUFLLGdEQUFnRCxvQ0FBb0MscUJBQXFCLDJCQUEyQixrQkFBa0Isb0NBQW9DLHVNQUF1TSx5QkFBeUIsOERBQThELGdDQUFnQyxTQUFTLDRFQUE0RSxrQkFBa0IsK0JBQStCLFNBQVMsaU1BQWlNLGtTQUFrUyxLQUFLLHVCQUF1QiwrQ0FBK0MsRUFBRSxxU0FBcVMsZ0RBQWdELDRFQUE0RSx1Q0FBdUMsT0FBTyxFQUFFLEdBQUcsT0FBTyxXQUFXLG1EQUFtRCxnREFBZ0QsRUFBRSxnQkFBZ0IsdURBQXVELDBCQUEwQix5Q0FBeUMscUZBQXFGLEdBQUcsR0FBRyxxQ0FBcUMsa0ZBQWtGLE1BQU0sb0VBQW9FLHdCQUF3QixnQkFBZ0IsRUFBRSxHQUFHLDJMQUEyTCxzQkFBc0IsZ0hBQWdILG1HQUFtRyxrSUFBa0ksK0JBQStCLDhEQUE4RCxvREFBb0Qsc0NBQXNDLGVBQWUsOEJBQThCLHNIQUFzSCwwQkFBMEIsb0NBQW9DLHdEQUF3RCxxREFBcUQsK0RBQStELDZGQUE2RixLQUFLLGdDQUFnQyxvREFBb0QsZUFBZSx1SEFBdUgsOEJBQThCLHNNQUFzTSx3QkFBd0IseUJBQXlCLHFDQUFxQyxzSkFBc0osOERBQThELDhDQUE4Qyx3RUFBd0UsdUpBQXVKLFlBQVksb0JBQW9CLDhDQUE4QyxvQkFBb0IsdUNBQXVDLEdBQUcsaUVBQWlFLHNKQUFzSixZQUFZLG9CQUFvQix1Q0FBdUMsR0FBRyxnR0FBZ0csaURBQWlELHdDQUF3QyxvQkFBb0Isb0NBQW9DLEdBQUcsOERBQThELGlCQUFpQix3RkFBd0YsaUdBQWlHLDZDQUE2QyxrQ0FBa0Msb0NBQW9DLGlDQUFpQyxvQkFBb0Isd0JBQXdCLG9CQUFvQixZQUFZLGtCQUFrQixRQUFRLFdBQVcsd0NBQXdDLFNBQVMsTUFBTSxpQ0FBaUMsc0NBQXNDLFFBQVEsV0FBVyw0RkFBNEYsU0FBUyx3S0FBd0ssb0VBQW9FLHNLQUFzSyxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLEdBQUcsU0FBUyx1Q0FBdUMsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsZ0VBQWdFLEVBQUUsZUFBZSxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLGlDQUFpQyxlQUFlLHNHQUFzRyxpQkFBaUIscUNBQXFDLG9CQUFvQixnQ0FBZ0MsT0FBTyxzREFBc0QsVUFBVSw2QkFBNkIsbUJBQW1CLEVBQUUsY0FBYywyQkFBMkIsZUFBZSx3Q0FBd0MsMEJBQTBCLG9CQUFvQix3QkFBd0Isb0JBQW9CLFlBQVksa0JBQWtCLFFBQVEsV0FBVyx3Q0FBd0MsU0FBUyxNQUFNLGlDQUFpQyxzQ0FBc0MsUUFBUSxXQUFXLDRGQUE0RixTQUFTLGdHQUFnRyxnQ0FBZ0Msd0JBQXdCLHNEQUFzRCxLQUFLLE1BQU0sa0lBQWtJLHVCQUF1QixRQUFRLHVCQUF1Qiw4QkFBOEIsZ0JBQWdCLGdDQUFnQyx5QkFBeUIsa0VBQWtFLG1EQUFtRCxvQ0FBb0MsMkRBQTJELFNBQVMsMkdBQTJHLE1BQU0sU0FBUyxtQkFBbUIsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UseURBQXlELGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLGVBQWUsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxpQkFBaUIscUJBQXFCLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLElBQUksaUJBQWlCLG9CQUFvQix3QkFBd0Isb0JBQW9CLFlBQVksa0JBQWtCLFFBQVEsV0FBVyx3Q0FBd0MsU0FBUyxNQUFNLGlDQUFpQyxzQ0FBc0MsUUFBUSxXQUFXLDRGQUE0RixTQUFTLGVBQWUsbUJBQW1CLGlDQUFpQyxpQkFBaUIsb0dBQW9HLHVCQUF1Qix5SkFBeUosR0FBRyxpQkFBaUIsTUFBTSxxQ0FBcUMsb0RBQW9ELGlHQUFpRyx1RkFBdUYsZUFBZSwwQ0FBMEMsa1lBQWtZLGtCQUFrQix5Q0FBeUMsYUFBYSx1Q0FBdUMsUUFBUSxrQkFBa0IsUUFBUSxzRUFBc0UsUUFBUSxrSUFBa0ksaUJBQWlCLEVBQUUsYUFBYSx1T0FBdU8sS0FBSyxjQUFjLHlGQUF5RixjQUFjLGdCQUFnQix5SEFBeUgsaUNBQWlDLE1BQU0sbURBQW1ELFFBQVEsaUVBQWlFLG9CQUFvQixjQUFjLGlDQUFpQyxNQUFNLGtEQUFrRCxhQUFhLHdEQUF3RCxjQUFjLDhCQUE4Qiw0REFBNEQsNkNBQTZDLG1DQUFtQyx3T0FBd08sNkJBQTZCLE9BQU8sd0JBQXdCLHFDQUFxQyxlQUFlLGdDQUFnQyxFQUFFLGlCQUFpQiw2REFBNkQsdUJBQXVCLHlEQUF5RCxhQUFhLG9CQUFvQixxQkFBcUIsU0FBUyxxREFBcUQsY0FBYyxRQUFRLEVBQUUsNkVBQTZFLFlBQVksaURBQWlELHVDQUF1QyxnQkFBZ0IsNkJBQTZCLGdCQUFnQixFQUFFLGdDQUFnQyxNQUFNLDBCQUEwQiwyQkFBMkIsZ0NBQWdDLFlBQVksaUJBQWlCLEVBQUUsNkJBQTZCLGtCQUFrQixTQUFTLG9FQUFvRSx3QkFBd0Isd0JBQXdCLFlBQVksY0FBYyxxSkFBcUosc0ZBQXNGLHFEQUFxRCxZQUFZLEVBQUUsaUhBQWlILHdDQUF3QyxtQ0FBbUMseURBQXlELE9BQU8sU0FBUyw0QkFBNEIsK01BQStNLDRHQUE0RyxvQkFBb0IseUJBQXlCLFlBQVksT0FBTyxTQUFTLE1BQU0sMEJBQTBCLE9BQU8scUJBQXFCLHFIQUFxSCxtQkFBbUIsMkJBQTJCLDZCQUE2QixxQkFBcUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLHVEQUF1RCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLDJCQUEyQiw4SkFBOEosa0JBQWtCLE9BQU8sK0RBQStELDhEQUE4RCxzQkFBc0IsSUFBSSxrQ0FBa0MsRUFBRSwwQkFBMEIsR0FBRyw0QkFBNEIsZUFBZSxzQkFBc0IsTUFBTSw4REFBOEQsRUFBRSxzQkFBc0IsZ0RBQWdELDhCQUE4Qiw2REFBNkQsZ0lBQWdJLEtBQUssTUFBTSxNQUFNLG1CQUFtQiw4REFBOEQsZUFBZSxrQkFBa0IsZUFBZSxrRUFBa0UscUJBQXFCLGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLG1CQUFtQix5Q0FBeUMsa0RBQWtELFdBQVcsVUFBVSxjQUFjLDRIQUE0SCxvR0FBb0csdUJBQXVCLDZCQUE2QixxQkFBcUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLHVEQUF1RCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLGtCQUFrQiwwQkFBMEIsb0dBQW9HLG1GQUFtRixtQkFBbUIseUNBQXlDLEdBQUcsMEJBQTBCLE1BQU0sbUJBQW1CLE9BQU8sNkVBQTZFLDBCQUEwQixpREFBaUQsOEJBQThCLHNIQUFzSCw4RUFBOEUsMEdBQTBHLGtFQUFrRSxxQ0FBcUMsa0JBQWtCLGlEQUFpRCwrREFBK0QsR0FBRyxzQ0FBc0MsRUFBRSw2REFBNkQsT0FBTyxzQkFBc0IsR0FBRyxxQ0FBcUMsU0FBUyxNQUFNLHdCQUF3QixFQUFFLHVEQUF1RCxlQUFlLHVCQUF1QixpQkFBaUIsb0NBQW9DLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxtQkFBbUIseUNBQXlDLGtEQUFrRCxXQUFXLGVBQWUsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLGFBQWEsRUFBRSxTQUFTLGlCQUFpQixxQkFBcUIsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxpQkFBaUIsbUJBQW1CLDZCQUE2QixtQkFBbUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLDJEQUEyRCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLEdBQUcsNkJBQTZCLEVBQUUsZUFBZSw0Q0FBNEMsMEJBQTBCLG9CQUFvQix3QkFBd0Isb0JBQW9CLFlBQVksa0JBQWtCLFFBQVEsV0FBVyx3Q0FBd0MsU0FBUyxNQUFNLGlDQUFpQyxzQ0FBc0MsUUFBUSxXQUFXLDRGQUE0RixTQUFTLGdNQUFnTSxtSUFBbUksc0RBQXNELGlGQUFpRiwrQ0FBK0MsUUFBUSx5REFBeUQsMkJBQTJCLDBFQUEwRSxhQUFhLG1EQUFtRCxvQ0FBb0MsMEJBQTBCLG1DQUFtQyxzQ0FBc0MsaURBQWlELDBEQUEwRCxpREFBaUQsOEtBQThLLDJJQUEySSxLQUFLLGVBQWUsOEdBQThHLG1CQUFtQix5T0FBeU8sd0JBQXdCLFVBQVUsMkJBQTJCLE9BQU8sMkJBQTJCLGNBQWMsT0FBTyxxQkFBcUIsbUNBQW1DLE1BQU0sbUNBQW1DLG9EQUFvRCxFQUFFLEtBQUssZ0dBQWdHLHdKQUF3SixVQUFVLHlCQUF5QixnQkFBZ0IseUJBQXlCLGdCQUFnQixFQUFFLHVCQUF1Qiw0QkFBNEIsbUJBQW1CLDJCQUEyQixpQkFBaUIsU0FBUyxjQUFjLG9CQUFvQixnREFBZ0QsRUFBRSxNQUFNLGtCQUFrQixnREFBZ0QsRUFBRSxNQUFNLGVBQWUsMkNBQTJDLEVBQUUsTUFBTSxjQUFjLDBDQUEwQyxFQUFFLE1BQU0sdUJBQXVCLGdEQUFnRCxFQUFFLE1BQU0sdUJBQXVCLGdEQUFnRCxHQUFHLDZJQUE2SSxvZkFBb2YsNEJBQTRCLE9BQU8sbUNBQW1DLDRCQUE0QixPQUFPLDJCQUEyQiw4QkFBOEIsdUJBQXVCLDJGQUEyRix3QkFBd0IsRUFBRSxtQkFBbUIsb0VBQW9FLE1BQU0sMEJBQTBCLDREQUE0RCxnQkFBZ0IsaURBQWlELGlCQUFpQixnQkFBZ0IsV0FBVyxFQUFFLEdBQUcsRUFBRSxHQUFHLGlCQUFpQixnQkFBZ0IsaUJBQWlCLHFCQUFxQixrQkFBa0IsSUFBSSxTQUFTLGVBQWUsd0NBQXdDLDJFQUEyRSxzREFBc0QsMERBQTBELCtFQUErRSxpQ0FBaUMsY0FBYyxtQkFBbUIsMEVBQTBFLHFIQUFxSCxzUkFBc1IsRUFBRSxtQkFBbUIsZUFBZSxpREFBaUQsaURBQWlELDJFQUEyRSxPQUFPLDJFQUEyRSxFQUFFLEVBQUUsZ0RBQWdELDJFQUEyRSxPQUFPLDhDQUE4QyxFQUFFLEVBQUUsaUZBQWlGLDZCQUE2QixpQkFBaUIsb0NBQW9DLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxnREFBZ0QscURBQXFELE9BQU8sa0dBQWtHLGdCQUFnQix3S0FBd0ssNkJBQTZCLG1CQUFtQix1RkFBdUYsWUFBWSxtQkFBbUIsSUFBSSxnQkFBZ0IsdURBQXVELE9BQU8sU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLFVBQVUscUJBQXFCLE1BQU0scUNBQXFDLG9EQUFvRCxpR0FBaUcsdUZBQXVGLGtCQUFrQiw4SkFBOEosK0VBQStFLGtDQUFrQyw2QkFBNkIsTUFBTSw0QkFBNEIsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxHQUFHLFNBQVMsOENBQThDLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLDJCQUEyQixpSEFBaUgsNENBQTRDLHVDQUF1QyxNQUFNLDhGQUE4RixVQUFVLG9HQUFvRyx1QkFBdUIsc0dBQXNHLHNDQUFzQyxzREFBc0QsK0NBQStDLHdIQUF3SCxPQUFPLDRIQUE0SCxZQUFZLEVBQUUsZUFBZSwyQkFBMkIscUVBQXFFLFNBQVMsSUFBSSxpQ0FBbUIsbVJBQW1SLGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLGdKQUFnSixtQkFBbUIsME1BQTBNLG1EQUFtRCw4QkFBOEIsZ0JBQWdCLDJDQUEyQyw2QkFBNkIsbUJBQW1CLHVGQUF1RixZQUFZLG1CQUFtQixJQUFJLGdCQUFnQix1REFBdUQsT0FBTyxTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsVUFBVSxxQkFBcUIsTUFBTSxxQ0FBcUMsb0RBQW9ELGlHQUFpRyx1RkFBdUYsa0JBQWtCLDhKQUE4SixrQkFBa0IsK0JBQStCLGNBQWMsNkNBQTZDLEdBQUcsNEpBQTRKLEdBQUcseU1BQXlNLGlDQUFpQyxLQUFLLGtGQUFrRix5RUFBeUUsNkZBQTZGLGNBQWMsNEdBQTRHLG1FQUFtRSxJQUFJLHVCQUF1QixRQUFRLGlCQUFpQixtQ0FBbUMsa0RBQWtELFlBQVksSUFBSSxpRkFBaUYscUZBQXFGLFFBQVEsMkVBQTJFLHNDQUFzQyxzREFBc0QsMkVBQTJFLGdEQUFnRCwwQkFBMEIsbUxBQW1MLDBFQUEwRSwrT0FBK08sZ0tBQWdLLGVBQWUscUNBQXFDLDhCQUE4Qix5RUFBeUUsVUFBVSxtQkFBbUIsK0RBQStELGtCQUFrQiwrREFBK0Qsb0JBQW9CLCtEQUErRCxpQkFBaUIsK0RBQStELHNCQUFzQix5RkFBeUYsdUJBQXVCLHlGQUF5Rix5QkFBeUIseUZBQXlGLDBCQUEwQix5RkFBeUYsc0JBQXNCLGVBQWUsVUFBVSxvQ0FBb0Msb0NBQW9DLG9DQUFvQyxvQ0FBb0MscUJBQXFCLE9BQU8saUNBQW1CLHdQQUF3UCxpQkFBaUIsb0NBQW9DLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxtQkFBbUIseUNBQXlDLGtEQUFrRCxXQUFXLGVBQWUsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLGFBQWEsRUFBRSxTQUFTLGlCQUFpQixtQkFBbUIsNkJBQTZCLG1CQUFtQix1RkFBdUYsWUFBWSxtQkFBbUIsSUFBSSxnQkFBZ0IsMkRBQTJELE9BQU8sU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLFVBQVUscUJBQXFCLE1BQU0scUNBQXFDLG9EQUFvRCxpR0FBaUcsdUZBQXVGLGtCQUFrQiw4SkFBOEosR0FBRyxlQUFlLHFFQUFxRSwrQkFBK0Isb0NBQW9DLGtJQUFrSSwrQ0FBK0Msc0NBQXNDLGVBQWUscUhBQXFILG9GQUFvRixzQkFBc0Isb1pBQW9aLG1DQUFtQyxVQUFVLDZDQUE2QyxxQ0FBcUMsT0FBTyxxQkFBcUIsRUFBRSxnR0FBZ0cseVRBQXlULE9BQU8scUlBQXFJLHlJQUF5SSxpQkFBaUIsR0FBRyxvSUFBb0ksR0FBRyxzREFBc0QsK0NBQStDLDhOQUE4TixvQkFBb0IsT0FBTyxzTUFBc00sMkJBQTJCLGdFQUFnRSw0RkFBNEYsSUFBSSxzTUFBc00sRUFBRSwyR0FBMkcseUJBQXlCLG1DQUFtQyxrREFBa0QsdURBQXVELCtDQUErQyxHQUFHLHFDQUFxQyw0QkFBNEIsMkJBQTJCLE1BQU0sRUFBRSxRQUFRLDJDQUEyQyxnREFBZ0QsbUNBQW1DLFNBQVMseUZBQXlGLGlEQUFpRCxXQUFXLG1CQUFtQiw2RUFBNkUsR0FBRyxnSEFBZ0gscUJBQXFCLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLFNBQVMsaUNBQWlDLGdFQUFnRSxnQ0FBZ0MsMkVBQTJFLHdCQUF3QiwyQkFBMkIsZ0JBQWdCLDhCQUE4QixHQUFHLHFFQUFxRSx3QkFBd0IsNkJBQTZCLGdCQUFnQiw0QkFBNEIsR0FBRyxtRUFBbUUsd0JBQXdCLGdDQUFnQyxnQkFBZ0IsaUNBQWlDLGdCQUFnQixtQ0FBbUMsZ0JBQWdCLG9DQUFvQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsZ0pBQWdKLE9BQU8saUNBQW1CLHlRQUF5USxlQUFlLFlBQVksbUJBQW1CLEtBQUssd0NBQXdDLGtCQUFrQixnSEFBZ0gsdURBQXVELDBCQUEwQixVQUFVLGlEQUFpRCxrREFBa0QsU0FBUyxFQUFFLFNBQVMsZ0pBQWdKLG1CQUFtQixzQkFBc0IsNEJBQTRCLHFCQUFxQix3QkFBd0Isb0JBQW9CLDhCQUE4QixxQkFBcUIsMEVBQTBFLCtDQUErQyxVQUFVLDBDQUEwQyxhQUFhLE1BQU0sMEJBQTBCLGFBQWEsdUJBQXVCLElBQUksa0NBQWtDLHVCQUF1QixtQkFBbUIsU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxlQUFlLE9BQU8sbUJBQW1CLGtDQUFrQyxJQUFJLGlDQUFpQyx1QkFBdUIsTUFBTSxjQUFjLCtCQUErQix5QkFBeUIsbUJBQW1CLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxpQkFBaUIsUUFBUSxvQkFBb0IsNENBQTRDLElBQUksaUNBQWlDLHVCQUF1QixNQUFNLGNBQWMsbUJBQW1CLEtBQUssTUFBTSwyQkFBMkIsU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLG9CQUFvQixlQUFlLHFCQUFxQixLQUFLLEtBQUssa0JBQWtCLHFFQUFxRSxPQUFPLFNBQVMsb0JBQW9CLFdBQVcsRUFBRSxzQkFBc0IsMEZBQTBGLDJCQUEyQiw4QkFBOEIsK0JBQStCLGlDQUFtQixpUkFBaVIsZ0pBQWdKLFVBQVUsaUJBQWlCLG1CQUFtQiwwQ0FBMEMsVUFBVSxlQUFlLGtCQUFrQixTQUFTLGdCQUFnQixjQUFjLFlBQVksV0FBVyw0Q0FBNEMscUJBQXFCLElBQUksWUFBWSwwQkFBMEIsV0FBVyxxRUFBcUUsNkJBQTZCLGNBQWMsNEJBQTRCLDZCQUE2Qiw4QkFBOEIseUJBQXlCLHVEQUF1RCxlQUFlLHFCQUFxQiwwQ0FBMEMsY0FBYyxPQUFPLDBFQUEwRSxvQkFBb0IsU0FBUyxlQUFlLGFBQWEsOENBQThDLEVBQUUsSUFBSSxVQUFVLDhEQUE4RCxRQUFRLEtBQUssZ0JBQWdCLFFBQVEsS0FBSyxrQkFBa0IsaUJBQWlCLGdCQUFnQixXQUFXLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxLQUFLLDJCQUEyQiw4QkFBOEIsd0JBQXdCLHFCQUFxQixFQUFFLEdBQUcsR0FBRyxJQUFJLFVBQVUsTUFBTSxjQUFjLGNBQWMsT0FBTyxVQUFVLDJCQUEyQixTQUFTLDJDQUEyQyxVQUFVLHNCQUFzQiw0REFBNEQsNkdBQTZHLGVBQWUsSUFBSSxnQkFBZ0IsVUFBVSw2QkFBNkIsc0JBQXNCLGdCQUFnQixvQkFBb0IsRUFBRSxlQUFlLElBQUksV0FBVyxzQ0FBc0MsMkJBQTJCLHlCQUF5QixxQ0FBcUMsOEJBQThCLDZCQUE2QixzQkFBc0IsMkNBQTJDLHNCQUFzQixFQUFFLGVBQWUsSUFBSSxvQ0FBb0MsdUJBQXVCLHFGQUFxRixvREFBb0QsaUNBQWlDLGFBQWEsb0JBQW9CLHVCQUF1Qix3QkFBd0Isa0ZBQWtGLDhCQUE4Qix1QkFBdUIsd0VBQXdFLGlCQUFpQixjQUFjLGlDQUFpQyxlQUFlLHdEQUF3RCxlQUFlLE1BQU0sd0VBQXdFLGVBQWUsTUFBTSw4RkFBOEYsZUFBZSwyREFBMkQsZUFBZSxpRUFBaUUsZUFBZSx5RUFBeUUsZUFBZSx1R0FBdUcsc0NBQXNDLGVBQWUsSUFBSSw2Q0FBNkMsT0FBTyxnRUFBZ0Usa0VBQWtFLGVBQWUsbUJBQW1CLElBQUksb0JBQW9CLFNBQVMsVUFBVSxFQUFFLDhLQUE4SyxlQUFlLDJCQUEyQixtUUFBbVEsY0FBYyw4RkFBOEYsNENBQTRDLGVBQWUscUJBQXFCLGVBQWUsaUNBQWlDLGVBQWUsY0FBYyw4Q0FBOEMsRUFBRSwwQ0FBMEMsZUFBZSwyQkFBMkIseURBQXlELHNCQUFzQixtQkFBbUIsTUFBTSxzQ0FBc0Msb0JBQW9CLFlBQVksNkVBQTZFLDREQUE0RCxNQUFNLFlBQVksaUVBQWlFLDhCQUE4QixlQUFlLHFFQUFxRSxlQUFlLHVCQUF1QiwrQkFBK0IsZUFBZSxPQUFPLDZCQUE2QixtQkFBbUIsU0FBUyxtREFBbUQsY0FBYywrQkFBK0IsOEJBQThCLG9CQUFvQiw0REFBNEQsRUFBRSw2RUFBNkUsaUJBQWlCLGdCQUFnQiw4QkFBOEIscURBQXFELGlCQUFpQixnQkFBZ0IsOEJBQThCLGlEQUFpRCxrQkFBa0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxpQ0FBaUMscUxBQXFMLHdCQUF3Qix5TEFBeUwsZUFBZSx1Q0FBdUMsZUFBZSw2SEFBNkgsZUFBZSxnTkFBZ04saUJBQWlCLHNCQUFzQiwwQ0FBMEMscUhBQXFILGVBQWUsc0JBQXNCLEtBQUssbUNBQW1DLDhCQUE4QixTQUFTLGlCQUFpQixtQkFBbUIsd0JBQXdCLDBCQUEwQixhQUFhLFFBQVEsS0FBSyxFQUFFLEVBQUUsa0JBQWtCLHdCQUF3QixTQUFTLGVBQWUsc0RBQXNELGlCQUFpQix1R0FBdUcsZUFBZSxrQ0FBa0MsZUFBZSxnSkFBZ0osZUFBZSxzREFBc0QsZUFBZSxrREFBa0QsR0FBRyxZQUFZLGVBQWUsc0JBQXNCLEVBQUUsRUFBRSwwQkFBMEIsbUJBQW1CLHNCQUFzQiwrQkFBK0IseUJBQXlCLFVBQVUsa0NBQWtDLGNBQWMsZUFBZSxpQ0FBaUMsa0JBQWtCLEVBQUUsSUFBSSxvREFBb0QsSUFBSSw4RUFBOEUsb0pBQW9KLDJCQUEyQixnQ0FBZ0MsNkNBQTZDLEVBQUUsaUJBQWlCLHNDQUFzQyx1QkFBdUIsWUFBWSxPQUFPLEVBQUUsb0RBQW9ELDZCQUE2Qiw2QkFBNkIsY0FBYyxxQkFBcUIscUNBQXFDLCtDQUErQyx1Q0FBdUMseUJBQXlCLHlDQUF5QyxzQ0FBc0MsZ0VBQWdFLG9CQUFvQiw2QkFBNkIsWUFBWSxjQUFjLDBCQUEwQiw2REFBNkQsNEZBQTRGLGlCQUFpQiwwQkFBMEIsa0NBQWtDLGtGQUFrRixRQUFRLDJMQUEyTCxxUkFBcVIsY0FBYywyRkFBMkYscUNBQXFDLGlCQUFpQiwyQkFBMkIscUJBQXFCLGNBQWMsdUJBQXVCLFlBQVkscUJBQXFCLGdFQUFnRSxrQ0FBa0Msc0VBQXNFLHFDQUFxQyxFQUFFLGdCQUFnQixpREFBaUQsc0NBQXNDLE9BQU8sMERBQTBELGNBQWMsOENBQThDLHNFQUFzRSxtQkFBbUIsS0FBSyxhQUFhLFVBQVUsY0FBYyxjQUFjLGtEQUFrRCx3REFBd0QsYUFBYSxpQkFBaUIsMEJBQTBCLDBCQUEwQixzQkFBc0IseUZBQXlGLGlJQUFpSSw4RUFBOEUsMEJBQTBCLDJDQUEyQywrQkFBK0IsNEJBQTRCLDZCQUE2QixxQkFBcUIsY0FBYyx3QkFBd0IsT0FBTyxnREFBZ0QsSUFBSSxjQUFjLEdBQUcsYUFBYSxzQ0FBc0Msd0tBQXdLLGdCQUFnQix3QkFBd0IsWUFBWSxHQUFHLFFBQVEsc0JBQXNCLDBGQUEwRixpQkFBaUIseUNBQXlDLEtBQUssRUFBRSxFQUFFLDBCQUEwQixpQ0FBaUMsU0FBUyxpQkFBaUIsMkJBQTJCLGtCQUFrQixJQUFJLE9BQU8sdUNBQXVDLDJDQUEyQyxTQUFTLGdCQUFnQixFQUFFLElBQUksdURBQXVELHlGQUF5Rix5REFBeUQsZUFBZSxRQUFRLGFBQWEsY0FBYyw0RUFBNEUsSUFBSSxvQkFBb0IsK1lBQStZLHVCQUF1QixvQkFBb0IsS0FBSyxPQUFPLDhGQUE4RixVQUFVLG1CQUFtQixxSEFBcUgsU0FBUyxVQUFVLG9FQUFvRSxNQUFNLHVFQUF1RSxNQUFNLHFFQUFxRSxNQUFNLHNFQUFzRSxpQkFBaUIsb0JBQW9CLFVBQVUsb0JBQW9CLDhCQUE4QixxREFBcUQscUNBQXFDLHVCQUF1QixzQkFBc0IsNkJBQTZCLHlCQUF5QixVQUFVLFdBQVcsaUZBQWlGLHlFQUF5RSxjQUFjLDhFQUE4RSxxRUFBcUUsdUpBQXVKLGFBQWEsK0VBQStFLHFFQUFxRSxrQkFBa0Isb0NBQW9DLG9CQUFvQixxQkFBcUIsR0FBRyxjQUFjLGtCQUFrQixFQUFFLElBQUksb0RBQW9ELElBQUksOEJBQThCLHdDQUF3QyxpQkFBaUIsYUFBYSx5QkFBeUIsYUFBYSxnRkFBZ0YsYUFBYSxhQUFhLGFBQWEsYUFBYSx5SEFBeUgsdUhBQXVILHdDQUF3QyxzQ0FBc0MsdUJBQXVCLFlBQVksU0FBUyxFQUFFLDJEQUEyRCxRQUFRLHNCQUFzQixlQUFlLGFBQWEsWUFBWSxvQkFBb0Isd0JBQXdCLGFBQWEseUJBQXlCLDZCQUE2QixxQkFBcUIsbUJBQW1CLElBQUksbUNBQW1DLFNBQVMsVUFBVSxXQUFXLDRCQUE0QixXQUFXLGFBQWEsMEhBQTBILGVBQWUsK0RBQStELDRIQUE0SCxHQUFHLDRCQUE0Qix3QkFBd0IsWUFBWSxHQUFHLFFBQVEsaUNBQWlDLGlCQUFpQixhQUFhLGlCQUFpQixTQUFTLFVBQVUsZUFBZSxTQUFTLG9CQUFvQiwyQ0FBMkMsb0ZBQW9GLFdBQVcsZ0JBQWdCLFdBQVcsa0JBQWtCLCtJQUErSSxVQUFVLHFCQUFxQixpRkFBaUYsU0FBUyxnQkFBZ0IsY0FBYyxrQkFBa0IscUJBQXFCLGlCQUFpQixvQkFBb0IsZUFBZSxXQUFXLDZDQUE2Qyx3QkFBd0IsRUFBRSxZQUFZLHdFQUF3RSw4QkFBOEIsY0FBYyw0QkFBNEIsNkJBQTZCLFFBQVEsT0FBTyxtQkFBbUIsTUFBTSxXQUFXLHdCQUF3QixLQUFLLHVCQUF1QixLQUFLLDhDQUE4QyxlQUFlLE9BQU8seUdBQXlHLGtCQUFrQixFQUFFLElBQUksMkNBQTJDLElBQUksc0tBQXNLLHlGQUF5RiwyQkFBMkIsUUFBUSwyQkFBMkIsNkVBQTZFLHdCQUF3QixZQUFZLGdCQUFnQixxREFBcUQsV0FBVyxrREFBa0Qsd0VBQXdFLHlDQUF5QyxTQUFTLGlCQUFpQix1RUFBdUUsWUFBWSxxREFBcUQsV0FBVyxVQUFVLDBFQUEwRSxXQUFXLFdBQVcsOENBQThDLHFDQUFxQyxXQUFXLGVBQWUsZ0NBQWdDLDZCQUE2QixnQkFBZ0IsOEVBQThFLGtCQUFrQixZQUFZLHVEQUF1RCxLQUFLLFVBQVUsRUFBRSxZQUFZLHVCQUF1QixJQUFJLHdHQUF3RyxVQUFVLHlUQUF5VCxlQUFlLGtIQUFrSCxvREFBb0Qsb0NBQW9DLGVBQWUsU0FBUyxpQkFBaUIsMEVBQTBFLFlBQVksd0JBQXdCLFdBQVcsc0VBQXNFLDRCQUE0QixXQUFXLG1HQUFtRyxrQkFBa0IsNkVBQTZFLEVBQUUsT0FBTyxNQUFNLFdBQVcsMkZBQTJGLFdBQVcsdUVBQXVFLGtDQUFrQyxXQUFXLHNHQUFzRyx1R0FBdUcsNkVBQTZFLFdBQVcsMkpBQTJKLEVBQUUsaUJBQWlCLGlCQUFpQixpRUFBaUUsYUFBYSxjQUFjLDBCQUEwQixhQUFhLHVCQUF1QixhQUFhLHNCQUFzQixhQUFhLEVBQUUscUJBQXFCLG1XQUFtVyxTQUFTLDJRQUEyUSwrQkFBK0IsV0FBVyxFQUFFLE9BQU8sNFlBQTRZLGtDQUFrQyxhQUFhLCtEQUErRCw2QkFBNkIsUUFBUSxzQkFBc0IsbUJBQW1CLFlBQVksc0NBQXNDLHdCQUF3QixXQUFXLHlDQUF5QyxzQkFBc0Isd0JBQXdCLGlDQUFpQyxZQUFZLDRDQUE0Qyw2QkFBNkIsRUFBRSxvQkFBb0IsbUdBQW1HLFdBQVcsd0JBQXdCLHVCQUF1QixHQUFHLFVBQVUsMEtBQTBLLFFBQVEsTUFBTSxvREFBb0QsS0FBSyx5QkFBeUIsaUJBQWlCLGtDQUFrQyxlQUFlLHVCQUF1QixlQUFlLHVCQUF1QixlQUFlLHNCQUFzQixlQUFlLCtCQUErQixpQ0FBaUMsZUFBZSw2QkFBNkIsZUFBZSx3Q0FBd0Msb0ZBQW9GLGVBQWUsb0RBQW9ELGVBQWUsMEJBQTBCLG1DQUFtQyxFQUFFLCtCQUErQixlQUFlLElBQUkseUJBQXlCLEdBQUcsT0FBTyw0REFBNEQsbUJBQW1CLDJCQUEyQixpQkFBaUIsZ0NBQWdDLGlCQUFpQixhQUFhLGtCQUFrQixFQUFFLGlCQUFpQixhQUFhLDhEQUE4RCxFQUFFLGVBQWUsK0RBQStELEdBQUcsRUFBRSxRQUFRLGFBQWEsOENBQThDLFNBQVMsbUJBQW1CLG9DQUFvQywwQkFBMEIsbUJBQW1CLHFGQUFxRixTQUFTLGtCQUFrQixFQUFFLElBQUksaURBQWlELEdBQUcsNEJBQTRCLG9CQUFvQixnQkFBZ0IsRUFBRSxrQ0FBa0MsbUJBQW1CLFVBQVUsd0JBQXdCLDBCQUEwQixxQkFBcUIsaUJBQWlCLDJDQUEyQyxtQkFBbUIsa0VBQWtFLGtCQUFrQixpTUFBaU0sdUJBQXVCLHNEQUFzRCxXQUFXLG1CQUFtQixnQ0FBZ0MsMkZBQTJGLFlBQVksV0FBVyxNQUFNLGtCQUFrQixvREFBb0QscUJBQXFCLHFCQUFxQixnQkFBZ0IsV0FBVywrS0FBK0ssK0JBQStCLGVBQWUsdUJBQXVCLG9IQUFvSCxTQUFTLDZCQUE2Qix5QkFBeUIsNERBQTRELDhHQUE4RywyQkFBMkIsc0JBQXNCLFlBQVksRUFBRSxXQUFXLGVBQWUsb0JBQW9CLGdCQUFnQixzQkFBc0Isa0JBQWtCLFVBQVUsRUFBRSxFQUFFLFdBQVcsY0FBYyxnQkFBZ0IsaUJBQWlCLGdDQUFnQyxzQkFBc0IsVUFBVSxFQUFFLFdBQVcsY0FBYyw4QkFBOEIsMENBQTBDLFNBQVMsZUFBZSxJQUFJLHVDQUF1QyxzQ0FBc0MsV0FBVyx1QkFBdUIsTUFBTSx1QkFBdUIsa0JBQWtCLDBCQUEwQixZQUFZLFNBQVMsOEZBQThGLGFBQWEsc0VBQXNFLG9DQUFvQyxFQUFFLG1CQUFtQixHQUFHLEVBQUUsTUFBTSxpQkFBaUIsVUFBVSxtQkFBbUIsRUFBRSxjQUFjLCtCQUErQixrQkFBa0IsdUJBQXVCLHVFQUF1RSwyQkFBMkIsZUFBZSxrQ0FBa0MsYUFBYSxNQUFNLE1BQU0sT0FBTyxTQUFTLFlBQVksYUFBYSx3QkFBd0IsMEJBQTBCLFdBQVcsMEhBQTBILGFBQWEsNkZBQTZGLFlBQVksd0VBQXdFLFFBQVEsa0RBQWtELGtFQUFrRSw2QkFBNkIsZ0JBQWdCLE9BQU8sdUJBQXVCLHlDQUF5QyxZQUFZLHdEQUF3RCxJQUFJLDJCQUEyQiwrQ0FBK0Msc0NBQXNDLG9CQUFvQixnQkFBZ0IsdUVBQXVFLHFEQUFxRCxhQUFhLG9EQUFvRCxpQ0FBaUMsZ0dBQWdHLCtCQUErQiwrTEFBK0wseWFBQXlhLHVCQUF1Qix1R0FBdUcseUJBQXlCLGlEQUFpRCxJQUFJLHlDQUF5QyxJQUFJLDZFQUE2RSw4R0FBOEcsYUFBYSwySkFBMkosYUFBYSxpQkFBaUIsK0NBQStDLGtEQUFrRCxLQUFLLGNBQWMsZUFBZSxhQUFhLGtSQUFrUixLQUFLLCtCQUErQixrQkFBa0IsdUJBQXVCLHlJQUF5SSxTQUFTLDJCQUEyQixpQkFBaUIsNkJBQTZCLFVBQVUsUUFBUSxVQUFVLHVCQUF1QixPQUFPLGFBQWEscUVBQXFFLGlCQUFpQixnQ0FBZ0MsZUFBZSxnQkFBZ0IsV0FBVyxVQUFVLCtCQUErQixNQUFNLHVDQUF1QyxNQUFNLHVCQUF1QiwwREFBMEQsMEVBQTBFLGdDQUFnQyxlQUFlLE1BQU0sdURBQXVELE1BQU0sV0FBVywwQ0FBMEMsV0FBVyxnQkFBZ0IsS0FBSyxVQUFVLFNBQVMsTUFBTSxlQUFlLDJCQUEyQixpQkFBaUIsd0JBQXdCLGVBQWUsbUNBQW1DLDRCQUE0QixHQUFHLGlCQUFpQix1QkFBdUIsY0FBYyxXQUFXLGdCQUFnQixTQUFTLDhNQUE4TSxzU0FBc1MsMkJBQTJCLHVCQUF1QixrSEFBa0gsU0FBUyxLQUFLLFFBQVEsc0JBQXNCLElBQUkseUJBQXlCLElBQUksOEJBQThCLEVBQUUsYUFBYSxXQUFXLHNDQUFzQyx3T0FBd08sb0RBQW9ELDZDQUE2QyxpQkFBaUIsZ0RBQWdELE9BQU8sdUJBQXVCLE9BQU8saUJBQWlCLGFBQWEsR0FBRyxlQUFlLHdCQUF3QixpQkFBaUIsTUFBTSw0Q0FBNEMsUUFBUSx1Q0FBdUMsYUFBYSx1Q0FBdUMsUUFBUSxZQUFZLFFBQVEsR0FBRywwQkFBMEIsYUFBYSx1Q0FBdUMsaUVBQWlFLE1BQU0sT0FBTywwQkFBMEIsNENBQTRDLGtFQUFrRSx1QkFBdUIsSUFBSSx1QkFBdUIsbUNBQW1DLDJCQUEyQixhQUFhLElBQUksUUFBUSxxRkFBcUYsSUFBSSwwREFBMEQsSUFBSSxRQUFRLG9CQUFvQix1RUFBdUUsZ0ZBQWdGLDREQUE0RCx3QkFBd0IsNEJBQTRCLHNCQUFzQixlQUFlLGdDQUFnQyxFQUFFLElBQUkscUNBQXFDLFNBQVMsRUFBRSw0Q0FBNEMsaUZBQWlGLGlCQUFpQixtQkFBbUIsb0JBQW9CLGlDQUFpQyxFQUFFLHdEQUF3RCxjQUFjLDhCQUE4Qiw0R0FBNEcsYUFBYSw2Q0FBNkMsNENBQTRDLE1BQU0sbU1BQW1NLEVBQUUsOEJBQThCLFdBQVcsMklBQTJJLFdBQVcseUJBQXlCLGFBQWEsUUFBUSxXQUFXLFVBQVUsdUJBQXVCLDRCQUE0QixlQUFlLFlBQVksOEdBQThHLHNCQUFzQiwrR0FBK0csc0JBQXNCLEVBQUUsU0FBUyxZQUFZLGlFQUFpRSxvQkFBb0IsRUFBRSxJQUFJLGdDQUFnQyxJQUFJLDJFQUEyRSwrQ0FBK0MsaUJBQWlCLHdCQUF3QixnQkFBZ0IsZ0NBQWdDLGlEQUFpRCxzRkFBc0YsZUFBZSxlQUFlLEVBQUUsWUFBWSxnQkFBZ0IsdUJBQXVCLGlCQUFpQixPQUFPLHNCQUFzQixvQ0FBb0MscUdBQXFHLGFBQWEsa0JBQWtCLHFCQUFxQix3QkFBd0IsWUFBWSxXQUFXLEtBQUssNktBQTZLLFlBQVksMkhBQTJILG9CQUFvQixFQUFFLElBQUksK0JBQStCLElBQUksNkJBQTZCLGdLQUFnSyxTQUFTLHVDQUF1QyxjQUFjLEVBQUUsNEhBQTRILGdCQUFnQixpQkFBaUIsS0FBSyxvQkFBb0IsZ0JBQWdCLG1CQUFtQiwyQkFBMkIscUJBQXFCLDRCQUE0QixpQ0FBaUMsT0FBTyxZQUFZLFNBQVMsb0NBQW9DLHFCQUFxQixzQkFBc0IsOEJBQThCLG9CQUFvQixJQUFJLE9BQU8scUJBQXFCLE1BQU0sRUFBRSxlQUFlLFVBQVUsbUNBQW1DLHdCQUF3QixTQUFTLFFBQVEsd0JBQXdCLDhCQUE4QixHQUFHLFlBQVksS0FBSyxZQUFZLDJCQUEyQixJQUFJLDhDQUE4QyxJQUFJLDJDQUEyQywrU0FBK1Msc0NBQXNDLFFBQVEsZ0NBQWdDLFFBQVEsbUdBQW1HLGlDQUFpQyxrSkFBa0osY0FBYywyQ0FBMkMsRUFBRSxHQUFHLHVDQUF1QyxvRUFBb0UsZ0NBQWdDLEVBQUUsdUNBQXVDLHNEQUFzRCw4QkFBOEIsYUFBYSxRQUFRLGdCQUFnQiwrREFBK0QsaUNBQWlDLElBQUksRUFBRSxFQUFFLFFBQVEsNEdBQTRHLCtCQUErQixnQ0FBZ0MsdUNBQXVDLDBIQUEwSCxlQUFlLGlMQUFpTCxLQUFLLDZDQUE2Qyw2Q0FBNkMsNENBQTRDLDBKQUEwSiwyQkFBMkIsaUJBQWlCLEVBQUUsK0JBQStCLCtDQUErQyxVQUFVLGdDQUFnQyxRQUFRLCtCQUErQixjQUFjLHFCQUFxQiwyQkFBMkIseUNBQXlDLE9BQU8sU0FBUyxnQkFBZ0IsRUFBRSxrQkFBa0IsV0FBVyxnQkFBZ0IsWUFBWSxpQkFBaUIsZUFBZSxnQkFBZ0IsRUFBRSxrQ0FBa0MsaUJBQWlCLGNBQWMsRUFBRSxnRkFBZ0YsaUJBQWlCLE1BQU0sc0lBQXNJLGNBQWMsMkZBQTJGLDRHQUE0Ryx3SkFBd0osT0FBTyxvQ0FBb0MsNEZBQTRGLHFCQUFxQix3QkFBd0IsT0FBTyxpQkFBaUIscUJBQXFCLGFBQWEsbUJBQW1CLGlCQUFpQixNQUFNLFNBQVMsYUFBYSxHQUFHLEVBQUUsU0FBUyxZQUFZLElBQUksaUJBQWlCLElBQUkscUJBQXFCLGdEQUFnRCxPQUFPLGNBQWMsU0FBUyw2R0FBNkcsNkdBQTZHLEVBQUUsUUFBUSxlQUFlLHVCQUF1QixnQkFBZ0Isd0RBQXdELG1CQUFtQiwwQkFBMEIsb0JBQW9CLGVBQWUsNkNBQTZDLDJDQUEyQyxxQkFBcUIsK0NBQStDLGdDQUFnQyxjQUFjLCtDQUErQyxrQ0FBa0MseUJBQXlCLHdDQUF3QyxnQkFBZ0Isd0NBQXdDLGtFQUFrRSwrQ0FBK0MseUJBQXlCLHVEQUF1RCxnQkFBZ0IsdURBQXVELHFCQUFxQixrQkFBa0IsMkNBQTJDLHdDQUF3QyxLQUFLLFNBQVMsRUFBRSw0Q0FBNEMsRUFBRSw2T0FBNk8sb0JBQW9CLDBCQUEwQixVQUFVLGtCQUFrQix3QkFBd0IsbUJBQW1CLHdCQUF3Qix3QkFBd0IsaUNBQWlDLG1CQUFtQix5RkFBeUYsR0FBRyxnREFBZ0QsZ0JBQWdCLHFFQUFxRSxnQ0FBZ0MsT0FBTyxrRUFBa0Usa0NBQWtDLDZCQUE2QixrQ0FBa0MsdURBQXVELCtDQUErQyw2QkFBNkIsK0NBQStDLHdDQUF3Qyw0QkFBNEIsMEJBQTBCLCtCQUErQixpREFBaUQsY0FBYyxxQ0FBcUMsdUZBQXVGLE9BQU8sS0FBSyxpQkFBaUIsY0FBYyxvREFBb0QsY0FBYyw4Q0FBOEMsY0FBYywwREFBMEQsT0FBTyxrQkFBa0IsUUFBUSxhQUFhLDJJQUEySSxvQkFBb0IsYUFBYSxNQUFNLG9CQUFvQiwwQkFBMEIsTUFBTSxtRkFBbUYsT0FBTywyRkFBMkYsV0FBVywwQkFBMEIsMkRBQTJELGtDQUFrQyx3QkFBd0IsZ0NBQWdDLEdBQUcsY0FBYyxLQUFLLDJPQUEyTyxtQ0FBbUMsSUFBSSxpQkFBaUIsSUFBSSxvSUFBb0ksK0ZBQStGLFFBQVEsMkNBQTJDLGdCQUFnQix3Q0FBd0MsVUFBVSxhQUFhLDBGQUEwRixXQUFXLGtCQUFrQixvR0FBb0cseUJBQXlCLGdCQUFnQix3TEFBd0wsMkxBQTJMLHVDQUF1QyxFQUFFLCtFQUErRSw0REFBNEQsb0JBQW9CLFlBQVkseUJBQXlCLHVCQUF1QixvQkFBb0IsU0FBUyx3QkFBd0IsdUJBQXVCLEdBQUcsVUFBVSxLQUFLLGdEQUFnRCxlQUFlLGtDQUFrQyxhQUFhLEtBQUssR0FBRyx5REFBeUQsMkNBQTJDLElBQUksc0NBQXNDLGtCQUFrQix3QkFBd0IsZ0JBQWdCLGtHQUFrRyxhQUFhLEVBQUUsUUFBUSxHQUFHLGFBQWEsb0RBQW9ELGFBQWEsRUFBRSx5REFBeUQsb0JBQW9CLGVBQWUsZUFBZSxNQUFNLGVBQWUsT0FBTyxRQUFRLHVCQUF1QixvQ0FBb0MsZUFBZSwwQkFBMEIsZUFBZSxNQUFNLFdBQVcsVUFBVSxrRUFBa0UsZ2ZBQWdmLG1GQUFtRixvQkFBb0IsRUFBRSw4REFBOEQsWUFBWSxNQUFNLHFCQUFxQixjQUFjLHFCQUFxQixvSEFBb0gsY0FBYyxPQUFPLG9DQUFvQyxpQkFBaUIsaUNBQWlDLGdCQUFnQixPQUFPLGVBQWUsb0RBQW9ELGlDQUFpQyxZQUFZLFdBQVcsTUFBTSxXQUFXLDRCQUE0QixnQkFBZ0IsV0FBVywrQkFBK0IsTUFBTSwwQkFBMEIsZUFBZSxZQUFZLFdBQVcsTUFBTSxXQUFXLDRCQUE0QixnQkFBZ0IsV0FBVyxpQ0FBaUMsTUFBTSxpQ0FBaUMsbUJBQW1CLGlGQUFpRixHQUFHLE1BQU0sc0JBQXNCLEtBQUssb0JBQW9CLEtBQUssMkRBQTJELGdCQUFnQix5TEFBeUwsR0FBRyxpQkFBaUIsZ0VBQWdFLEdBQUcsTUFBTSxrQkFBa0IsS0FBSyxrQ0FBa0MsS0FBSyxhQUFhLEtBQUssZUFBZSxLQUFLLHFCQUFxQixLQUFLLGtCQUFrQixLQUFLLGtCQUFrQixLQUFLLDBDQUEwQywyQkFBMkIsb0JBQW9CLEVBQUUsZ0NBQWdDLEVBQUUsUUFBUSxPQUFPLHFCQUFxQixJQUFJLG1GQUFtRixvREFBb0QseUNBQXlDLFNBQVMsZ0JBQWdCLFdBQVcseUJBQXlCLGNBQWMsNEJBQTRCLFNBQVMsaUJBQWlCLGdCQUFnQixvQkFBb0IsZ0JBQWdCLGlCQUFpQixTQUFTLG1CQUFtQiwwQ0FBMEMsMEJBQTBCLG1DQUFtQyxPQUFPLGdCQUFnQixZQUFZLFdBQVcsa0JBQWtCLFNBQVMsY0FBYywyRUFBMkUsUUFBUSxxQkFBcUIsNEZBQTRGLGtIQUFrSCxNQUFNLDRDQUE0QyxNQUFNLHNDQUFzQyxvQkFBb0IsdUNBQXVDLDBCQUEwQixRQUFRLGdEQUFnRCxtQkFBbUIsNkJBQTZCLFlBQVksdUJBQXVCLG9FQUFvRSxvQkFBb0IsZUFBZSw2REFBNkQsK0JBQStCLGtCQUFrQix1QkFBdUIsbUlBQW1JLFNBQVMsZ0JBQWdCLEVBQUUsSUFBSSwrREFBK0QsZ0RBQWdELGdCQUFnQixvQ0FBb0MsR0FBRyxRQUFRLGFBQWEsSUFBSSxnRkFBZ0YsMkJBQTJCLE9BQU8scUJBQXFCLE9BQU8sYUFBYSwwQ0FBMEMsNEhBQTRILG1CQUFtQixFQUFFLDJFQUEyRSxFQUFFLGVBQWUsZ0JBQWdCLHVGQUF1RixvQkFBb0Isa0NBQWtDLElBQUksSUFBSSxtRUFBbUUsR0FBRyxXQUFXLGtDQUFrQyxvQ0FBb0MsT0FBTyxnQkFBZ0IsVUFBVSxjQUFjLHFEQUFxRCwrRUFBK0UsMENBQTBDLFlBQVkscUdBQXFHLGtCQUFrQixvQ0FBb0MsUUFBUSxXQUFXLGNBQWMsTUFBTSx5QkFBeUIsd0JBQXdCLGVBQWUsa0JBQWtCLDhCQUE4QixjQUFjLFdBQVcsZUFBZSxXQUFXLGlCQUFpQixtRUFBbUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLElBQUksa0RBQWtELElBQUksc0ZBQXNGLDZFQUE2RSxtQkFBbUIsZ0JBQWdCLHlCQUF5QixpQkFBaUIsMENBQTBDLHFEQUFxRCxpQkFBaUIseURBQXlELGNBQWMsZUFBZSxnQkFBZ0Isd0JBQXdCLE1BQU0sdUJBQXVCLDZDQUE2QyxjQUFjLHlCQUF5QixjQUFjLFNBQVMsZUFBZSxJQUFJLDBHQUEwRyxJQUFJLGdDQUFnQyxjQUFjLEVBQUUsSUFBSSxxRUFBcUUsT0FBTyxjQUFjLDBDQUEwQyxPQUFPLCtCQUErQiwwQkFBMEIsS0FBSyxlQUFlLGdCQUFnQixpQkFBaUIsMERBQTBELGlCQUFpQixxQ0FBcUMsRUFBRSxXQUFXLEVBQUUsZUFBZSwrREFBK0QsRUFBRSxrQ0FBa0MsSUFBSSwwREFBMEQsSUFBSSx1SUFBdUksc0NBQXNDLDZCQUE2QixLQUFLLG9CQUFvQixhQUFhLFNBQVMsTUFBTSxpQkFBaUIsbUNBQW1DLGVBQWUsYUFBYSxxQkFBcUIsdUJBQXVCLGVBQWUsMkVBQTJFLGtIQUFrSCxlQUFlLGtCQUFrQiwrR0FBK0csbURBQW1ELG9MQUFvTCxPQUFPLHFFQUFxRSxZQUFZLHNHQUFzRyxnQ0FBZ0MsRUFBRSxFQUFFLGlCQUFpQixvRUFBb0UsUUFBUSxFQUFFLFVBQVUsa0RBQWtELGdCQUFnQixHQUFHLEVBQUUsNkNBQTZDLHFCQUFxQixhQUFhLG9EQUFvRCxRQUFRLElBQUkseUNBQXlDLGtCQUFrQiw4Q0FBOEMsMkRBQTJELEVBQUUsdUJBQXVCLG1GQUFtRixJQUFJLE1BQU0sdUlBQXVJLCtCQUErQixzQkFBc0IsZUFBZSxnQkFBZ0IsdUJBQXVCLDZGQUE2RixFQUFFLEVBQUUsMFhBQTBYLDJKQUEySixNQUFNLHlEQUF5RCxhQUFhLHNDQUFzQyxvQkFBb0IsbUJBQW1CLG1FQUFtRSxnREFBZ0QsZ0JBQWdCLDZFQUE2RSx5QkFBeUIsb0JBQW9CLGtCQUFrQiwwREFBMEQsb0RBQW9ELHNCQUFzQiw2QkFBNkIsU0FBUyxFQUFFLGdCQUFnQixvQ0FBb0MsMkRBQTJELG9DQUFvQywyQkFBMkIsRUFBRSxLQUFLLDJEQUEyRCxxSUFBcUksU0FBUywyQ0FBMkMsb0NBQW9DLDJCQUEyQixFQUFFLG9DQUFvQyxTQUFTLGdCQUFnQixzREFBc0QsZ0JBQWdCLHNDQUFzQyw2RkFBNkYsa0JBQWtCLFlBQVksMEJBQTBCLGtCQUFrQixxRkFBcUYsZ0JBQWdCLDBCQUEwQixrQkFBa0IsWUFBWSxXQUFXLCtDQUErQyxnQkFBZ0Isb0JBQW9CLG9DQUFvQyxnRUFBZ0Usd0hBQXdILFNBQVMsWUFBWSxTQUFTLDhLQUE4SyxtQkFBbUIsZ0JBQWdCLGdCQUFnQixNQUFNLHlDQUF5QyxnQkFBZ0IsOERBQThELCtIQUErSCxNQUFNLDZGQUE2RixTQUFTLGdCQUFnQixxREFBcUQsb0JBQW9CLGtCQUFrQix1Q0FBdUMsc0RBQXNELG1FQUFtRSwrQ0FBK0MscUNBQXFDLG9DQUFvQyxLQUFLLHlCQUF5QixZQUFZLEVBQUUsRUFBRSw4QkFBOEIsNENBQTRDLGdFQUFnRSxJQUFJLDBDQUEwQyw4QkFBOEIsU0FBUyxnQkFBZ0IsZ0ZBQWdGLEVBQUUsRUFBRSx1Q0FBdUMsWUFBWSxvQkFBb0IsS0FBSyx5QkFBeUIsa0ZBQWtGLFNBQVMsa0JBQWtCLFNBQVMsa0JBQWtCLFFBQVEsb0pBQW9KLDRCQUE0QixVQUFVLGtCQUFrQixtQ0FBbUMsZ0JBQWdCLDhDQUE4QywyQkFBMkIsa0JBQWtCLGNBQWMsK0JBQStCLDBFQUEwRSw0Q0FBNEMsc0RBQXNELEVBQUUsa0NBQWtDLCtEQUErRCxlQUFlLGtCQUFrQixrQkFBa0IsMkNBQTJDLG9GQUFvRiw0Q0FBNEMsa0JBQWtCLGNBQWMsMkNBQTJDLGdFQUFnRSwyQ0FBMkMsa0JBQWtCLFVBQVUsb0NBQW9DLG1DQUFtQyxhQUFhLG1JQUFtSSxFQUFFLGlCQUFpQiw0QkFBNEIsZ0JBQWdCLCtCQUErQixpQ0FBaUMsZUFBZSwyQkFBMkIsZUFBZSw0QkFBNEIsaUJBQWlCLDJDQUEyQyxtQkFBbUIsZUFBZSx1QkFBdUIsa0ZBQWtGLEVBQUUsZUFBZSxrREFBa0QseUJBQXlCLHVGQUF1RixFQUFFLHFFQUFxRSxnQkFBZ0IsRUFBRSxJQUFJLFlBQVkseURBQXlELG1CQUFtQixnQ0FBZ0MsZUFBZSxFQUFFLGNBQWMsd0JBQXdCLHdDQUF3QyxhQUFhLG9DQUFvQywrREFBK0QsZ0JBQWdCLGtDQUFrQyx1QkFBdUIsNENBQTRDLFdBQVcsNkRBQTZELG9DQUFvQyxzRUFBc0UsY0FBYyxlQUFlLElBQUksNkNBQTZDLFNBQVMsWUFBWSx1SkFBdUosd0JBQXdCLCtGQUErRiw4RUFBOEUsY0FBYyxhQUFhLHlCQUF5QixlQUFlLDJCQUEyQixjQUFjLGdDQUFnQyxzQkFBc0IsK0hBQStILHVDQUF1Qyx3Q0FBd0MsOEJBQThCLEtBQUssZ0NBQWdDLGFBQWEsMEJBQTBCLDBCQUEwQiw4Q0FBOEMsd0NBQXdDLDhCQUE4QixLQUFLLGdDQUFnQywrRUFBK0UsR0FBRyxFQUFFLCtCQUErQixlQUFlLElBQUksd0NBQXdDLElBQUksVUFBVSxNQUFNLG1DQUFtQywrQkFBK0Isa0JBQWtCLEVBQUUsT0FBTywrQkFBK0IsbUJBQW1CLE9BQU8sdUJBQXVCLHVIQUF1SCxVQUFVLGFBQWEsb0JBQW9CLE1BQU0sZ0JBQWdCLG9CQUFvQixNQUFNLGVBQWUsbUJBQW1CLE1BQU0sY0FBYyxtQkFBbUIsTUFBTSxXQUFXLGFBQWEsY0FBYyxnQ0FBZ0MsTUFBTSw4QkFBOEIsU0FBUyxzQkFBc0IsSUFBSSxzRUFBc0UsNEZBQTRGLGtDQUFrQyxHQUFHLFFBQVEsbUJBQW1CLEtBQUssWUFBWSxXQUFXLEtBQUssSUFBSSxZQUFZLE9BQU8sdUJBQXVCLFVBQVUsZ0dBQWdHLHdCQUF3QixFQUFFLCtCQUErQixVQUFVLGNBQWMsb0hBQW9ILGtDQUFrQyxZQUFZLFFBQVEsa0JBQWtCLE9BQU8sa0RBQWtELHVCQUF1QixNQUFNLGlCQUFpQixFQUFFLElBQUksaURBQWlELElBQUksa0hBQWtILDhGQUE4Rix5TUFBeU0scUJBQXFCLHdEQUF3RCx1TEFBdUwsUUFBUSw2SEFBNkgsNENBQTRDLEtBQUssT0FBTyx5SUFBeUksaUJBQWlCLE9BQU8sdUZBQXVGLGVBQWUsMkJBQTJCLCtCQUErQix1QkFBdUIsSUFBSSxrQ0FBa0MsNEhBQTRILHVDQUF1QyxxQkFBcUIsMENBQTBDLEVBQUUsK0VBQStFLHNEQUFzRCxZQUFZLEVBQUUsYUFBYSxlQUFlLHVJQUF1SSxxQkFBcUIsc0JBQXNCLGVBQWUsZ0NBQWdDLGVBQWUsWUFBWSx1QkFBdUIsaUNBQWlDLHFCQUFxQixpRUFBaUUsa0VBQWtFLFNBQVMsYUFBYSxlQUFlLFlBQVksK0JBQStCLDJEQUEyRCxJQUFJLHFCQUFxQixVQUFVLHNDQUFzQyxnREFBZ0QsZ0NBQWdDLDJJQUEySSxNQUFNLDJDQUEyQyxLQUFLLFlBQVksRUFBRSx5SkFBeUoscURBQXFELFdBQVcseUJBQXlCLEVBQUUsaUJBQWlCLHVCQUF1QixtQ0FBbUMsbUJBQW1CLG1CQUFtQixvRUFBb0UsT0FBTyx5QkFBeUIscUNBQXFDLG1CQUFtQixNQUFNLGtDQUFrQyxnRkFBZ0YsTUFBTSxxQkFBcUIsV0FBVyxxREFBcUQsT0FBTywwQkFBMEIsTUFBTSxxQ0FBcUMsZ05BQWdOLHVFQUF1RSwwQkFBMEIsUUFBUSw4QkFBOEIsMElBQTBJLE9BQU8sOEJBQThCLE1BQU0sS0FBSyxZQUFZLEdBQUcsbURBQW1ELGFBQWEsZUFBZSxnQ0FBZ0MsaUJBQWlCLGdEQUFnRCxpQkFBaUIscUJBQXFCLDZDQUE2QyxpQkFBaUIsTUFBTSxZQUFZLGtCQUFrQixXQUFXLFlBQVksS0FBSyxVQUFVLEVBQUUsMEJBQTBCLFFBQVEsU0FBUyxjQUFjLEtBQUssOEJBQThCLFdBQVcsZ0RBQWdELFlBQVksS0FBSyxjQUFjLEVBQUUsa0JBQWtCLGVBQWUsUUFBUSxZQUFZLE9BQU8seUJBQXlCLDBFQUEwRSxPQUFPLDBCQUEwQixvREFBb0QseUJBQXlCLFNBQVMsc0RBQXNELG1CQUFtQix5Q0FBeUMsb0JBQW9CLHNCQUFzQiwyREFBMkQsT0FBTywrREFBK0QsdURBQXVELHdDQUF3QyxLQUFLLGtFQUFrRSxJQUFJLDRDQUE0QywrQ0FBK0Msd0JBQXdCLE9BQU8seUJBQXlCLHlCQUF5Qiw0REFBNEQsWUFBWSxpREFBaUQsZ0NBQWdDLE9BQU8sNEdBQTRHLG1EQUFtRCxJQUFJLCtDQUErQyx3REFBd0QsZUFBZSxjQUFjLGlHQUFpRyxLQUFLLGNBQWMsRUFBRSxvQkFBb0IsMkhBQTJILFlBQVksa0VBQWtFLHdDQUF3QyxvQkFBb0Isc0RBQXNELGdCQUFnQixtSEFBbUgsWUFBWSxPQUFPLDZEQUE2RCxrRUFBa0Usc0NBQXNDLDJCQUEyQixJQUFJLGlCQUFpQixPQUFPLE9BQU8sa0JBQWtCLDRDQUE0QyxnQ0FBZ0MsaUJBQWlCLG9FQUFvRSxxQkFBcUIsTUFBTSxpQkFBaUIsRUFBRSxJQUFJLG9LQUFvSyw4Q0FBOEMsY0FBYyxrQ0FBa0MsV0FBVyxvQ0FBb0MsRUFBRSx5QkFBeUIscUJBQXFCLGFBQWEsTUFBTSxtREFBbUQsdUJBQXVCLHlDQUF5QyxpQ0FBaUMsOEJBQThCLEdBQUcsd0JBQXdCLG9FQUFvRSw2RUFBNkUsTUFBTSxjQUFjLDZCQUE2QixVQUFVLGlCQUFpQiw0QkFBNEIsV0FBVyxNQUFNLGlEQUFpRCxJQUFJLDhCQUE4QiwwQkFBMEIsRUFBRSxTQUFTLGdDQUFnQyxhQUFhLE9BQU8sdUJBQXVCLDZCQUE2QixTQUFTLHlGQUF5RixNQUFNLDBCQUEwQixPQUFPLG9DQUFvQyxtQkFBbUIsdUJBQXVCLFlBQVksZ0RBQWdELFlBQVksTUFBTSxjQUFjLDBFQUEwRSw4RUFBOEUseUVBQXlFLGlCQUFpQixVQUFVLGtCQUFrQiwrQkFBK0IsOERBQThELDZCQUE2QixxQkFBcUIsb0NBQW9DLFFBQVEsT0FBTyw0QkFBNEIsU0FBUyxrRUFBa0UsUUFBUSxPQUFPLFFBQVEsdUNBQXVDLFFBQVEsT0FBTyxFQUFFLFdBQVcsd0RBQXdELFNBQVMsa0JBQWtCLGVBQWUsNkZBQTZGLGlCQUFpQixZQUFZLHlCQUF5QixlQUFlLGtCQUFrQixlQUFlLFlBQVksSUFBSSxtQkFBbUIsMkNBQTJDLFFBQVEsb0hBQW9ILEtBQUssbUJBQW1CLElBQUksb0JBQW9CLEdBQUcsT0FBTyxpREFBaUQsa0RBQWtELGFBQWEsa0RBQWtELGVBQWUsY0FBYywrQkFBK0IsZ1RBQWdULDRJQUE0SSxrSEFBa0gsd0JBQXdCLEVBQUUsR0FBRyxFQUFFLEtBQUssa0VBQWtFLHVFQUF1RSw0SEFBNEgsT0FBTyx3Q0FBd0MscUNBQXFDLDJCQUEyQixvQ0FBb0MsUUFBUSxJQUFJLHFDQUFxQyxtQkFBbUIsMkZBQTJGLEVBQUUsc0JBQXNCLG9CQUFvQixnQkFBZ0IsOEVBQThFLElBQUkseUJBQXlCLDJGQUEyRixhQUFhLGNBQWMsSUFBSSw4RUFBOEUsSUFBSSwwSUFBMEksU0FBUyxpREFBaUQsbUhBQW1ILFlBQVksc0JBQXNCLGtCQUFrQixtQ0FBbUMsOEJBQThCLFVBQVUsMkNBQTJDLGVBQWUsc0NBQXNDLGtCQUFrQixzQkFBc0IsNkRBQTZELFdBQVcsZ0ZBQWdGLHNCQUFzQixzQkFBc0IsbUJBQW1CLDBHQUEwRyx5REFBeUQsUUFBUSx3QkFBd0IsWUFBWSx3QkFBd0IscUJBQXFCLHNEQUFzRCw2RkFBNkYsTUFBTSxvQkFBb0IsUUFBUSxjQUFjLGdIQUFnSCxnQkFBZ0IsZUFBZSw0QkFBNEIsTUFBTSxzQkFBc0Isc0JBQXNCLFNBQVMsK0dBQStHLFNBQVMsTUFBTSwyQkFBMkIsZ0JBQWdCLE9BQU8sY0FBYyxVQUFVLGVBQWUsbUJBQW1CLE1BQU0sa0RBQWtELE9BQU8scUJBQXFCLGtEQUFrRCw4REFBOEQsdUJBQXVCLHVCQUF1QixJQUFJLFNBQVMsbUNBQW1DLE9BQU8scUNBQXFDLFFBQVEsR0FBRyxnQkFBZ0IsSUFBSSw2Q0FBNkMsSUFBSSx3Q0FBd0MsWUFBWSxRQUFRLCtEQUErRCx1QkFBdUIsRUFBRSw2QkFBNkIsTUFBTSxvSEFBb0gsbUJBQW1CLE1BQU0sUUFBUSxxT0FBcU8sbUJBQW1CLE9BQU8sY0FBYyxrQkFBa0IsZ0JBQWdCLHlCQUF5QixHQUFHLG1DQUFtQyxJQUFJLG9CQUFvQixJQUFJLHdDQUF3QyxPQUFPLElBQUksUUFBUSxHQUFHLE9BQU8sVUFBVSxNQUFNLFlBQVksUUFBUSxtREFBbUQsTUFBTSx3RUFBd0UsZ0JBQWdCLE1BQU0sd0VBQXdFLGdCQUFnQixZQUFZLGlCQUFpQixFQUFFLE9BQU8sV0FBVyx5QkFBeUIsZ0JBQWdCLGdCQUFnQixFQUFFLDJFQUEyRSxJQUFJLHlCQUF5QixZQUFZLFVBQVUsV0FBVyxRQUFRLFlBQVksb0NBQW9DLEVBQUUsZ0JBQWdCLHVCQUF1QixFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixRQUFRLHlCQUF5QixTQUFTLElBQUksb0JBQW9CLHlCQUF5QixHQUFHLGFBQWEsUUFBUSxTQUFTLDBDQUEwQyxJQUFJLGNBQWMsTUFBTSx3REFBd0QsaUJBQWlCLFlBQVkscUpBQXFKLDBHQUEwRyxvSEFBb0gsa0VBQWtFLDBGQUEwRixTQUFTLHdDQUF3QyxFQUFFLHdDQUF3QyxrQ0FBa0MsT0FBTyxVQUFVLEtBQUssZUFBZSxVQUFVLG1GQUFtRixTQUFTLElBQUkscUNBQXFDLElBQUksbUVBQW1FLElBQUksNENBQTRDLGFBQWEsb0JBQW9CLGVBQWUsUUFBUSx3UEFBd1AsNERBQTRELCtOQUErTixPQUFPLGlCQUFpQixnQ0FBZ0MsbUJBQW1CLFdBQVcsZUFBZSxHQUFHLHlCQUF5QixHQUFHLGtDQUFrQyxJQUFJLFFBQVEsSUFBSSxrQ0FBa0MsU0FBUyxVQUFVLHVCQUF1QixxQkFBcUIsZ0NBQWdDLGVBQWUsT0FBTyxNQUFNLGlEQUFpRCxlQUFlLHFCQUFxQixvQkFBb0IsY0FBYyxPQUFPLE1BQU0saUNBQWlDLG1CQUFtQixnQkFBZ0IsRUFBRSw2QkFBNkIsSUFBSSxvREFBb0Qsc05BQXNOLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsS0FBSyxHQUFHLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxhQUFhLEdBQUcsS0FBSyxFQUFFLElBQUksU0FBUyxFQUFFLEtBQUssa0JBQWtCLElBQUksaUZBQWlGLElBQUksU0FBUyxZQUFZLGVBQWUsZ0RBQWdELEVBQUUsdUJBQXVCLDRHQUE0RyxRQUFRLG9IQUFvSCxjQUFjLEVBQUUsSUFBSSxTQUFTLFNBQVMsZUFBZSw0Q0FBNEMsNkhBQTZILFFBQVEsaUJBQWlCLE1BQU0sa0JBQWtCLGlCQUFpQixFQUFFLElBQUksZ0ZBQWdGLHVCQUF1QixHQUFHLDhDQUE4QyxxQkFBcUIsZ0RBQWdELGlCQUFpQixzQkFBc0IsY0FBYyxxRUFBcUUsa0NBQWtDLHlCQUF5QixrQ0FBa0MsMEhBQTBILGlDQUFpQyxPQUFPLHFDQUFxQyw2Q0FBNkMsaUJBQWlCLGlCQUFpQixJQUFJLG9CQUFvQixlQUFlLGdCQUFnQixFQUFFLGtDQUFrQyxPQUFPLGtDQUFrQyw0REFBNEQsS0FBSyxHQUFHLEVBQUUsY0FBYyxRQUFRLGtFQUFrRSxxQkFBcUIsSUFBSSxNQUFNLG1CQUFtQiwwQkFBMEIsYUFBYSxjQUFjLDJDQUEyQyxxQ0FBcUMsS0FBSyxjQUFjLHNCQUFzQixvREFBb0QsMkJBQTJCLHVCQUF1QiwwQkFBMEIsT0FBTyx5QkFBeUIsd0JBQXdCLDhDQUE4QyxVQUFVLHNFQUFzRSx3QkFBd0IsRUFBRSx5QkFBeUIsMkJBQTJCLHVCQUF1QixpREFBaUQsZUFBZSxFQUFFLGVBQWUsWUFBWSxjQUFjLHNCQUFzQixhQUFhLDJHQUEyRyxHQUFHLDRCQUE0QiwrQkFBK0IsZ0pBQWdKLDZCQUE2QiwrREFBK0Qsa0NBQWtDLDZCQUE2QixvQ0FBb0MscUNBQXFDLGVBQWUsZUFBZSxvQ0FBb0MsNENBQTRDLGlCQUFpQixrQkFBa0IsaUNBQWlDLGFBQWEsRUFBRSw4R0FBOEcsR0FBRyxrQkFBa0Isc0JBQXNCLHFCQUFxQixtQkFBbUIsR0FBRyxZQUFZLEdBQUcsSUFBSSw0Q0FBNEMsUUFBUSxhQUFhLHlFQUF5RSwwREFBMEQsOEJBQThCLGFBQWEsZ0JBQWdCLCtHQUErRyw4QkFBOEIsbUZBQW1GLGlCQUFpQiwyRkFBMkYscURBQXFELDRDQUE0Qyx1QkFBdUIsK0lBQStJLHFDQUFxQyxlQUFlLDhCQUE4QixlQUFlLElBQUksbURBQW1ELGtHQUFrRywyQ0FBMkMsV0FBVyxzQ0FBc0MsbUJBQW1CLGNBQWMscURBQXFELG1CQUFtQixTQUFTLGFBQWEsRUFBRSxJQUFJLFFBQVEsUUFBUSxxSUFBcUksZ0JBQWdCLDJCQUEyQixZQUFZLEdBQUcsUUFBUSxtQkFBbUIsUUFBUSxzQkFBc0Isc0ZBQXNGLGlCQUFpQiw2QkFBNkIsbUJBQW1CLEVBQUUsY0FBYyxlQUFlLGNBQWMsZUFBZSxpQkFBaUIsbUNBQW1DLDhKQUE4SixrQ0FBa0MsT0FBTyxjQUFjLEdBQUcsTUFBTSxpQ0FBaUM7QUFDcnA4bkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsT0FBTyxLQUFLLE1BQU07QUFDMUIsUUFBUSxPQUFPLEtBQUssU0FBUztBQUM3QixRQUFRLFFBQVEsS0FBSyxTQUFTO0FBQzlCLFFBQVEsUUFBUSxLQUFLLE1BQU07QUFDM0IsUUFBUSxPQUFPLEtBQUssTUFBTTtBQUMxQixPQUFPLHVCQUF1Qiw4REFBOEQsK0VBQStFLEVBQUUsZ0NBQWdDLE1BQU0sSUFBSSxpUEFBaVAsSUFBSSxrTEFBa0wsbUJBQW1CLHVCQUF1QixnRUFBZ0UsU0FBUyxpQkFBaUIsNkJBQTZCLGVBQWUsYUFBYSxPQUFPLGlCQUFpQiwwQkFBMEIsa0JBQWtCLFlBQVksbUNBQW1DLDJHQUEyRyxZQUFZLGtHQUFrRyxvQ0FBb0MsNFBBQTRQLEdBQUcsU0FBUyx1QkFBdUIsU0FBUyxvQ0FBb0MscUNBQXFDLDZCQUE2QiwyQkFBMkIsaUJBQWlCLGNBQWMsMkhBQTJILGlDQUFpQyx1QkFBdUIsK0JBQStCLHFCQUFxQiwrQkFBK0IsRUFBRSxZQUFZLHNCQUFzQixvRkFBb0YsOERBQThELG9JQUFvSSx1RkFBdUYsbURBQW1ELFdBQVcsaUhBQWlILG1HQUFtRyxtQ0FBbUMsOElBQThJLGdCQUFnQiw0QkFBNEIscUNBQXFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sOERBQThELGVBQWUsdUVBQXVFLHdCQUF3QixnREFBZ0QsY0FBYywrQkFBK0IsY0FBYyw0QkFBNEIsaUJBQWlCLHVGQUF1RixnQ0FBZ0MsMENBQTBDLG9FQUFvRSwrQkFBK0IsaVBBQWlQLGVBQWUsSUFBSSxzS0FBc0ssSUFBSSxtREFBbUQsMkJBQTJCLGdSQUFnUixXQUFXLG1EQUFtRCxFQUFFLGlCQUFpQixnQkFBZ0IsY0FBYywwREFBMEQsWUFBWSw0Q0FBNEMsb0NBQW9DLHFDQUFxQyxxREFBcUQsb0NBQW9DLGNBQWMsNkJBQTZCLHVCQUF1QiwyQkFBMkIsZ0JBQWdCLGFBQWEsYUFBYSxjQUFjLGdEQUFnRCxvQkFBb0IsMFdBQTBXLHdFQUF3RSxpQkFBaUIsK0NBQStDLGlCQUFpQiw4QkFBOEIsNkJBQTZCLE9BQU8sY0FBYyxhQUFhLE9BQU8sNERBQTRELEVBQUUsZ0JBQWdCLGFBQWEsNENBQTRDLDZCQUE2QixFQUFFLHFLQUFxSywwSkFBMEosb0NBQW9DLDJGQUEyRixpQkFBaUIsZ0JBQWdCLHFEQUFxRCxhQUFhLG1FQUFtRSxvQkFBb0IseUJBQXlCLCtFQUErRSwwQkFBMEIsWUFBWSw0QkFBNEIsa0RBQWtELDJCQUEyQixZQUFZLCtCQUErQiwwREFBMEQsZ0JBQWdCLDZDQUE2QyxxQ0FBcUMsS0FBSyxtR0FBbUcsZ0lBQWdJLEVBQUUseUJBQXlCLGNBQWMsZ0RBQWdELG9HQUFvRyx1R0FBdUcsR0FBRyxnRUFBZ0Usd09BQXdPLFdBQVcsS0FBSyxnQ0FBZ0Msb0JBQW9CLGdCQUFnQixvQkFBb0IsMEVBQTBFLGdCQUFnQixvQkFBb0IsRUFBRSxFQUFFLHdCQUF3QixNQUFNLGdCQUFnQixZQUFZLFlBQVksMEJBQTBCLEVBQUUscUhBQXFILGtDQUFrQyxLQUFLLFNBQVMscUNBQXFDLG9CQUFvQixnQkFBZ0IsK0JBQStCLG1HQUFtRyw4QkFBOEIsdUpBQXVKLHNCQUFzQixpSEFBaUgsZ0NBQWdDLGNBQWMsNEJBQTRCLDRCQUE0QixHQUFHLG9CQUFvQixrQkFBa0IsV0FBVywrQkFBK0IsSUFBSSwrREFBK0QsaUJBQWlCLGFBQWEsR0FBRyx5Q0FBeUMsb0JBQW9CLGFBQWEsRUFBRSx1QkFBdUIsZ0JBQWdCLGNBQWMsWUFBWSwyREFBMkQsWUFBWSxtREFBbUQsMkNBQTJDLGtCQUFrQix3Q0FBd0MsK0RBQStELE9BQU8sOEJBQThCLDBCQUEwQiw2QkFBNkIsb0JBQW9CLFVBQVUsMkJBQTJCLDZCQUE2QiwyQkFBMkIsdUNBQXVDLE1BQU0sVUFBVSxrQkFBa0IsOEVBQThFLFlBQVksV0FBVywwQ0FBMEMscUJBQXFCLHVDQUF1QyxnQkFBZ0IsbUZBQW1GLFlBQVksV0FBVyx5Q0FBeUMsR0FBRyxFQUFFLFFBQVEsWUFBWSwrQkFBK0IsSUFBSSx1Q0FBdUMsSUFBSSxvSkFBb0osT0FBTyxpQ0FBaUMsWUFBWSx1QkFBdUIsc0lBQXNJLFNBQVMsR0FBRyxJQUFJLDBCQUEwQixZQUFZLEVBQUUsSUFBSSxTQUFTLE1BQU0saUJBQWlCLGNBQWMsMEJBQTBCLDRCQUE0QixrQkFBa0IsUUFBUSxrQkFBa0Isc0JBQXNCLDBFQUEwRSwyRkFBMkYscUJBQXFCLEVBQUUsNkNBQTZDLG9FQUFvRSw2R0FBNkcsRUFBRSwyREFBMkQsSUFBSSwwQkFBMEIsOENBQThDLGFBQWEscUJBQXFCLGFBQWEsdUNBQXVDLEVBQUUsNkJBQTZCLG1CQUFtQixFQUFFLEVBQUUsZUFBZSx1QkFBdUIsa0NBQWtDLElBQUksK0JBQStCLFlBQVksYUFBYSxZQUFZLHVCQUF1QiwwSEFBMEgsU0FBUyxHQUFHLHlCQUF5QixVQUFVLHFCQUFxQixhQUFhLCtCQUErQixFQUFFLE1BQU0sb0JBQW9CLHNDQUFzQyxJQUFJLDBKQUEwSixJQUFJLHlCQUF5QixhQUFhLElBQUksZ0lBQWdJLHFCQUFxQiw2QkFBNkIsS0FBSyw2Q0FBNkMseUJBQXlCLG9EQUFvRCwwQ0FBMEMsYUFBYSxpREFBaUQsYUFBYSxtQkFBbUIsK0JBQStCLEVBQUUsZ0JBQWdCLGtFQUFrRSxtQ0FBbUMsdUJBQXVCLHlCQUF5QixTQUFTLEVBQUUsOEhBQThILEVBQUUsbUJBQW1CLHNCQUFzQix5QkFBeUIsaUNBQWlDLEVBQUUsaUNBQWlDLElBQUksb0NBQW9DLDBCQUEwQixRQUFRLG1CQUFtQiwrREFBK0QsNkJBQTZCLFNBQVMsTUFBTSxvQkFBb0IsMkdBQTJHLEVBQUUsRUFBRSwwQkFBMEIsZUFBZSxtR0FBbUcsbUJBQW1CLGVBQWUsd0JBQXdCLGVBQWUsd0JBQXdCLGlCQUFpQixvQ0FBb0MsdUJBQXVCLElBQUksY0FBYyxTQUFTLGVBQWUsWUFBWSxtQkFBbUIsS0FBSyx3Q0FBd0Msa0JBQWtCLGdIQUFnSCx1REFBdUQsMEJBQTBCLFVBQVUsaURBQWlELGtEQUFrRCxTQUFTLEVBQUUsU0FBUyxpQkFBaUIscUJBQXFCLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLElBQUksaUJBQWlCLG1CQUFtQiw2QkFBNkIsbUJBQW1CLHVGQUF1RixZQUFZLG1CQUFtQixJQUFJLGdCQUFnQiwyREFBMkQsT0FBTyxTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsVUFBVSxxQkFBcUIsTUFBTSxxQ0FBcUMsb0RBQW9ELGlHQUFpRyx1RkFBdUYsa0JBQWtCLDhKQUE4SixHQUFHLGtCQUFrQiwwQ0FBMEMsSUFBSSxzQkFBc0IsbUJBQW1CLHNCQUFzQiwyQ0FBMkMsSUFBSSxlQUFlLDBMQUEwTCxvQkFBb0IsTUFBTSw2Q0FBNkMseUNBQXlDLGdCQUFnQix5REFBeUQsNERBQTRELG1GQUFtRixZQUFZLEdBQUcsMEZBQTBGLG9EQUFvRCxzQkFBc0IsRUFBRSxnREFBZ0Qsb0JBQW9CLEVBQUUsMkRBQTJELDJCQUEyQixLQUFLLG9EQUFvRCxvQkFBb0IsaUNBQWlDLDJCQUEyQixzQ0FBc0MsRUFBRSxnQkFBZ0IsTUFBa0MsMkVBQTJFLHFDQUFxQyxVQUFVLCtDQUErQyxNQUFNLG9CQUFvQixNQUFNLHdCQUF3QixXQUFXLEdBQUcscUNBQXFDLGdGQUFnRixnQkFBZ0IsRUFBRSxhQUFhLHFCQUFxQiwrREFBK0QscUhBQXFILGtCQUFrQiwyQkFBMkIsS0FBSyxNQUFNLEdBQUcsYUFBYSxnQkFBZ0IsbUNBQW1DLHdJQUF3SSwrREFBK0Qsd0JBQXdCLHFFQUFxRSxvQkFBb0IscUJBQXFCLDhEQUE4RCxrQkFBa0IsK0NBQStDLFVBQVUsR0FBRyxnQkFBZ0Isd0JBQXdCLDhEQUE4RCxrQkFBa0IsK0NBQStDLFVBQVUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMscUJBQXFCLHdFQUF3RSw0REFBNEQsK2NBQStjLEVBQUUscUZBQXFGLDRIQUE0SCwrQkFBK0IsZ0RBQWdELCtEQUErRCxFQUFFLEVBQUUsR0FBRyxtQkFBbUIsY0FBYyxxQkFBcUIsd0VBQXdFLDREQUE0RCwrM0JBQSszQixFQUFFLHFGQUFxRix3SEFBd0gsK0JBQStCLGdEQUFnRCwrREFBK0QsRUFBRSxFQUFFLEdBQUcsbUJBQW1CLGNBQWMsbUJBQW1CLDBFQUEwRSx5SEFBeUgsK2lCQUEraUIsRUFBRSxtQkFBbUIsY0FBYyxtQkFBbUIsMEVBQTBFLHFIQUFxSCw2YkFBNmIsRUFBRSxtQkFBbUIsZUFBZSxxQkFBcUIsMkVBQTJFLGdmQUFnZixvREFBb0QsMkNBQTJDLEtBQUssV0FBVywyQkFBMkIsZUFBZSxxQkFBcUIsMkVBQTJFLGlFQUFpRSxzQkFBc0IsRUFBRSx3REFBd0QsS0FBSyxXQUFXLDJCQUEyQiwrQkFBK0IsY0FBYyx1QkFBdUIseUhBQXlILFNBQVMsa0NBQWtDLElBQUksMEJBQTBCLElBQUksMENBQTBDLE1BQU0sc0JBQXNCLHNCQUFzQixPQUFPLHVEQUF1RCxFQUFFLDZCQUE2QixjQUFjLHVCQUF1QiwrSUFBK0ksU0FBUyxrQ0FBa0MsSUFBSSwwQkFBMEIsSUFBSSxpRUFBaUUsTUFBTSxtQkFBbUIsc0JBQXNCLG1DQUFtQywrQkFBK0IseUJBQXlCLDhCQUE4QixFQUFFLE1BQU0sWUFBWSwrQkFBK0IsSUFBSSwwQkFBMEIsSUFBSSx1RkFBdUYsT0FBTyxlQUFlLE1BQU0sV0FBVywwQkFBMEIsWUFBWSxjQUFjLHNCQUFzQixtREFBbUQsb0ZBQW9GLEVBQUUsMkRBQTJELElBQUksZ1FBQWdRLElBQUksNEZBQTRGLFlBQVksd01BQXdNLHVCQUF1QixtRUFBbUUsU0FBUyx3QkFBd0IsbUJBQW1CLFNBQVMsbURBQW1ELHFDQUFxQyw2QkFBNkIsaURBQWlELGFBQWEsMkJBQTJCLDZEQUE2RCx1REFBdUQscUZBQXFGLGdFQUFnRSw4REFBOEQsRUFBRSw2QkFBNkIsbUJBQW1CLEVBQUUsRUFBRSxlQUFlLFVBQVUsWUFBWSxFQUFFLHdDQUF3QyxlQUFlLElBQUksd0NBQXdDLElBQUksVUFBVSxNQUFNLG1DQUFtQywrQkFBK0Isa0JBQWtCLEVBQUUsT0FBTyx3QkFBd0IscUNBQXFDLFVBQVUsa0JBQWtCLFVBQVUsOEJBQThCLGFBQWEsb0JBQW9CLGNBQWMsRUFBRSxlQUFlLElBQUksaUNBQWlDLHdFQUF3RSw2QkFBNkIsc0JBQXNCLHFHQUFxRyxvQkFBb0IsRUFBRSw4Q0FBOEMsSUFBSSxtQ0FBbUMscUJBQXFCLHFCQUFxQiwyQkFBMkIsZUFBZSxTQUFTLDZCQUE2QiwrQkFBK0Isd0NBQXdDLEVBQUUsR0FBRyxlQUFlLGdDQUFnQyxlQUFlLElBQUksc0pBQXNKLCtHQUErRyxtREFBbUQsVUFBVSxrQkFBa0IsaUdBQWlHLGFBQWEsZ0JBQWdCLGlGQUFpRixZQUFZLDhCQUE4QixJQUFJLDBDQUEwQyxpQkFBaUIsY0FBYyxFQUFFLElBQUkscUNBQXFDLFFBQVEsZ0NBQWdDLFVBQVUsT0FBTyxVQUFVLFVBQVUsdUJBQXVCLDRCQUE0QixjQUFjLHNCQUFzQiwwQ0FBMEMsZ0JBQWdCLEVBQUUsSUFBSSxtQ0FBbUMsSUFBSSxhQUFhLElBQUksb0dBQW9HLHVDQUF1QyxlQUFlLGFBQWEseUZBQXlGLG9DQUFvQyxvQ0FBb0MsV0FBVyxLQUFLLDhCQUE4QixpQkFBaUIsNEJBQTRCLFdBQVcsbUNBQW1DLHdCQUF3QixtQ0FBbUMsaUhBQWlILG9DQUFvQyxlQUFlLHNCQUFzQiwwQ0FBMEMsV0FBVywwQkFBMEIsNkVBQTZFLHNFQUFzRSxnQ0FBZ0MsU0FBUyw0REFBNEQsMEJBQTBCLFVBQVUsVUFBVSxXQUFXLFVBQVUsNkJBQTZCLEdBQUcsdUNBQXVDLDBCQUEwQixFQUFFLElBQUksMkJBQTJCLDBCQUEwQixRQUFRLElBQUksNkNBQTZDLHdGQUF3RixnRUFBZ0UsUUFBUSxVQUFVLCtCQUErQix1Q0FBdUMscUJBQXFCLGlEQUFpRCxtQ0FBbUMseUJBQXlCLHdNQUF3TSxnUUFBZ1EsNkRBQTZELElBQUksV0FBVyw4REFBOEQsbUNBQW1DLG1DQUFtQyxZQUFZLGNBQWMseUZBQXlGLGtEQUFrRCxrQ0FBa0MsV0FBVyxxREFBcUQscUJBQXFCLDBCQUEwQixzQkFBc0IsNENBQTRDLHNCQUFzQix5QkFBeUIsc0JBQXNCLGdCQUFnQiw2Q0FBNkMsWUFBWSxxQkFBcUIsY0FBYyxpQkFBaUIsT0FBTywrREFBK0QsTUFBTSx3QkFBd0IsWUFBWSxHQUFHLFFBQVEsSUFBSSxnREFBZ0Qsc0JBQXNCLGdPQUFnTyxtREFBbUQsd0RBQXdELGVBQWUsNkJBQTZCLDRCQUE0QixFQUFFLE9BQU8saUNBQW1CLCtQQUErUCxnSkFBZ0osc0NBQXNDLDhLQUE4SyxlQUFlLHdCQUF3QixRQUFRLHNDQUFzQyxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLEdBQUcsU0FBUyxXQUFXLGdIQUFnSCxxQkFBcUIsaUNBQWlDLHNDQUFzQyxrQkFBa0IsU0FBUyxpQ0FBaUMsZ0VBQWdFLE1BQU0sMkRBQTJELGVBQWUsK0JBQStCLGlFQUFpRSx1QkFBdUIsdUNBQXVDLDhCQUE4QixRQUFRLGtEQUFrRCx3QkFBd0IsY0FBYyxpQkFBaUIsMEJBQTBCLHNDQUFzQyw0REFBNEQsd0JBQXdCLGNBQWMsaUJBQWlCLDBCQUEwQixRQUFRLDZDQUE2QyxvQkFBb0IsZ0dBQWdHLG1DQUFtQywrR0FBK0csc0VBQXNFLHlGQUF5Rix1QkFBdUIseUVBQXlFLHdCQUF3Qix5QkFBeUIsRUFBRSxxQ0FBcUMsRUFBRSxlQUFlLDZMQUE2TCx3RUFBd0UsK0NBQStDLGdFQUFnRSxvRUFBb0UsRUFBRSwwQkFBMEIsZUFBZSxZQUFZLG1CQUFtQixLQUFLLHdDQUF3QyxrQkFBa0IsZ0hBQWdILHVEQUF1RCwwQkFBMEIsVUFBVSxpREFBaUQsa0RBQWtELFNBQVMsRUFBRSxTQUFTLGlCQUFpQixxQkFBcUIsZ0hBQWdILHFCQUFxQixpQ0FBaUMsc0NBQXNDLGtCQUFrQixTQUFTLGlDQUFpQyxnRUFBZ0UsSUFBSSxtQkFBbUIsUUFBUSxvRkFBb0YsZUFBZSw4QkFBOEIsd0VBQXdFLCtDQUErQywwRUFBMEUsNERBQTRELEdBQUcsMEJBQTBCLGVBQWUsdUxBQXVMLDJFQUEyRSw0RUFBNEUsNERBQTRELHFEQUFxRCwwRkFBMEYsa0VBQWtFLDhEQUE4RCxFQUFFLCtDQUErQyxlQUFlLHFPQUFxTywwSUFBMEksTUFBTSx1QkFBdUIsTUFBTSxXQUFXLGdDQUFnQyxrQkFBa0IsTUFBa0MsdURBQXVELHFEQUFxRCx3REFBd0QscURBQXFELGdCQUFnQixzQkFBc0IseUZBQXlGLHFDQUFxQyxxREFBcUQsZUFBZSxvRkFBb0YsMEJBQTBCLFVBQVUsc0pBQXNKLGFBQWEsSUFBSSxxREFBcUQsZUFBZSxNQUFNLDBIQUEwSCxRQUFRLEVBQUUsSUFBSSx1QkFBdUIsUUFBUSwwREFBMEQsb0RBQW9ELDBDQUEwQyxPQUFPLDJFQUEyRSxnQ0FBZ0MsNkNBQTZDLDhHQUE4RywwQkFBMEIsRUFBRSw4REFBOEQsd0NBQXdDLHdGQUF3RiwyRUFBMkUsNkNBQTZDLHNCQUFzQixlQUFlLDhEQUE4RCwrQkFBK0IsMENBQTBDLFNBQVMsNkJBQTZCLG9CQUFvQixlQUFlLGdDQUFnQyx3RUFBd0UseUJBQXlCLDBDQUEwQyx3Q0FBd0MsbUJBQW1CLGtCQUFrQixTQUFTLHdKQUF3SixrRUFBa0UsZUFBZSxvQkFBb0IsOElBQThJLDBCQUEwQiwwQkFBMEIsa0RBQWtELElBQUksaUNBQWlDLHVCQUF1QixNQUFNLDhCQUE4QixNQUFNLFVBQVUsVUFBVSxTQUFTLFlBQVksU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxjQUFjLGtFQUFrRSxLQUFLLEtBQUssdUJBQXVCLGVBQWUsdUJBQXVCLFdBQVcsSUFBSSxRQUFRLDhCQUE4QixJQUFJLGlDQUFpQyx1QkFBdUIsTUFBTSw4QkFBOEIsaUNBQWlDLElBQUksUUFBUSxTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsT0FBTyxvQkFBb0IsOERBQThELDZCQUE2QixvQkFBb0IsaUNBQWlDLHVCQUF1Qix1Q0FBdUMseUJBQXlCLDhCQUE4QixtSEFBbUgsaURBQWlELEVBQUUsb0NBQW9DLDRCQUE0QixzRUFBc0Usc0VBQXNFLDJFQUEyRSxhQUFhLEdBQUcsbUJBQW1CLHlDQUF5QyxnQ0FBZ0MsOERBQThELG9CQUFvQiw4Q0FBOEMsMFFBQTBRLG9CQUFvQixtSUFBbUksbUVBQW1FLEVBQUUsSUFBSSxFQUFFLDRCQUE0QiwrQkFBK0IsR0FBRyxFQUFFLEVBQUUsRUFBRSxvQkFBb0Isb0JBQW9CLGtCQUFrQixvQkFBb0Isb0JBQW9CLCtCQUErQixJQUFJLEdBQUcsRUFBRSxlQUFlLHVCQUF1QiwyRUFBMkUsOElBQThJLHNCQUFzQiw4TUFBOE0scUVBQXFFLDBGQUEwRixLQUFLLGVBQWUsMkJBQTJCLGNBQWMsbUJBQW1CLDBFQUEwRSxzSUFBc0ksa1BBQWtQLEVBQUUsbUJBQW1CLGVBQWUscUJBQXFCLDJFQUEyRSx3b0JBQXdvQixvREFBb0Qsc0ZBQXNGLEtBQUssV0FBVywyQkFBMkIsY0FBYyxxRUFBcUUsdUNBQXVDLFdBQVcsc0VBQXNFLEtBQUssd0JBQXdCLElBQUkscUJBQXFCLFNBQVMsR0FBRyxlQUFlLDRHQUE0RyxvRUFBb0UsTUFBTSwrQkFBK0IsbUhBQW1ILGlNQUFpTSxtRUFBbUUsK0VBQStFLDRDQUE0QyxtQkFBbUIsK0NBQStDLG9CQUFvQiwwRUFBMEUsMktBQTJLLGtCQUFrQixrRUFBa0UsK0lBQStJLGlHQUFpRyxrQkFBa0IsbUZBQW1GLGlDQUFpQyxxREFBcUQsZUFBZSxrREFBa0QsMkVBQTJFLGVBQWUsc0JBQXNCLGVBQWUsK0RBQStELHNMQUFzTCwwQkFBMEIsY0FBYyxtQkFBbUIsMEVBQTBFLHFIQUFxSCxxeERBQXF4RCxFQUFFLG1CQUFtQixPQUFPLGlDQUFtQixzUEFBc1AsZ0pBQWdKLGtCQUFrQiw2SkFBNkosNkVBQTZFLDZJQUE2SSxXQUFXLHFCQUFxQix5QkFBeUIsR0FBRyxPQUFPLFVBQVUsT0FBTyxzQkFBc0IsT0FBTyxHQUFHLHNFQUFzRSxrSEFBa0gsdUJBQXVCLHVCQUF1Qix1QkFBdUIsMkNBQTJDLG9CQUFvQiwyQkFBMkIsc0VBQXNFLHFEQUFxRCwrREFBK0QsTUFBcUIsQ0FBQyxDQUFpRSxFQUFFLG1IQUFtSCxxQkFBcUIsd0JBQXdCLGtEQUFrRCxLQUE2QyxNQUFNLHdDQUF3QyxxQkFBcUIsNkJBQTZCLGFBQWEsNEJBQTRCLG9HQUFvRywyQ0FBMkMsd0JBQXdCLDhFQUE4RSxzQkFBc0IsZ0NBQWdDLDZEQUE2RCxpR0FBaUcsa0JBQWtCLDZEQUE2RCxlQUFlLGdFQUFnRSxzRUFBc0UsR0FBRyx1Q0FBdUMsRUFBRSxvRkFBb0YsMkJBQTJCLHFEQUFxRCw0QkFBNEIsTUFBTSwrQkFBK0IsNkJBQTZCLDJEQUEyRCxlQUFlLG1JQUFtSSx1REFBdUQsd0RBQXdELGtEQUFrRCxjQUFjLGlHQUFpRyxrQkFBa0Isb01BQW9NLGFBQWEsNkxBQTZMLGtCQUFrQixvQ0FBb0MsdURBQXVELGdEQUFnRCwySUFBMkksOENBQThDLEVBQUUsaUJBQWlCLGtCQUFrQixhQUFhLGdDQUFnQyx1RkFBdUYsb0JBQW9CLG1CQUFtQiwyREFBMkQsMENBQTBDLGtGQUFrRixFQUFFLHdCQUF3QixxR0FBcUcseUJBQXlCLDhCQUE4QixrQ0FBa0MsK0RBQStELDJCQUEyQixRQUFRLDRGQUE0Rix3REFBd0QsOERBQThELDZEQUE2RCwyQkFBMkIsT0FBTyxxRUFBcUUseUNBQXlDLCtGQUErRix5Q0FBeUMsa0ZBQWtGLElBQUksaUdBQWlHLEtBQTJDLG1CQUFtQiwrQ0FBK0MsaUZBQWlGLDBHQUEwRyxzQ0FBc0Msc0JBQXNCLG1CQUFtQix5QkFBeUIsWUFBWSxFQUFFLEVBQUUsc0RBQXNELGdDQUFnQyxnQ0FBZ0MsOEJBQThCLG1HQUFtRyxzQkFBc0Isd0ZBQXdGLG1EQUFtRCxnQkFBZ0IsMkRBQTJELEdBQUcsOENBQThDLHlDQUF5QyxrRkFBa0YsRUFBRSxnR0FBZ0cscUJBQXFCLHFEQUFxRCxnQkFBZ0IsNEJBQTRCLG9DQUFvQyxvRUFBb0Usb0hBQW9ILEVBQUUsMEJBQTBCLGVBQWUsd0dBQXdHLCtCQUErQixHQUFHLGVBQWUsRUFBRSx5REFBeUQsR0FBRywwQkFBMEIsT0FBTyx5RUFBeUUsR0FBRyxtQkFBbUIseURBQXlELGNBQWMsRUFBRSw4S0FBOEssNERBQTRELHVJQUF1SSxFQUFFLHNIQUFzSCxlQUFlLDJCQUEyQiw4QkFBOEIsZUFBZSwrREFBK0QsbURBQW1ELDJCQUEyQixnQkFBZ0IsMkNBQTJDLGtCQUFrQix1QkFBdUIsaUJBQWlCLDhCQUE4QixXQUFXLGFBQWEsaUZBQWlGLHVCQUF1QixRQUFRLDhDQUE4Qyw0REFBNEQsb0VBQW9FLG1CQUFtQixvQ0FBb0MsZUFBZSxJQUFJLGVBQWUsRUFBRSxpQkFBaUIsb0NBQW9DLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxpQkFBaUIsbUJBQW1CLDZCQUE2QixtQkFBbUIsdUZBQXVGLFlBQVksbUJBQW1CLElBQUksZ0JBQWdCLDJEQUEyRCxPQUFPLFNBQVMsU0FBUyxRQUFRLElBQUksOEJBQThCLFFBQVEsY0FBYyxVQUFVLHFCQUFxQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsOEpBQThKLEdBQUcsK0NBQStDLDRCQUE0QixjQUFjLHNNQUFzTSx3RUFBd0UsbUJBQW1CLGlHQUFpRywwQ0FBMEMsNEJBQTRCLCtDQUErQyx1QkFBdUIsT0FBTyxrQ0FBa0MseUJBQXlCLE9BQU8sbUVBQW1FLHlCQUF5QixtRkFBbUYsaUJBQWlCLGlCQUFpQixHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsd0ZBQXdGLDRCQUE0QiwrQkFBK0IsR0FBRyxtQ0FBbUMsaUJBQWlCLG9DQUFvQyx1QkFBdUIsSUFBSSxjQUFjLFNBQVMsZUFBZSxtQkFBbUIsaUNBQWlDLGlCQUFpQixvR0FBb0csdUJBQXVCLHlKQUF5SixHQUFHLGlCQUFpQixNQUFNLHFDQUFxQyxvREFBb0QsaUdBQWlHLHVGQUF1RixrQkFBa0IsZUFBZSxrQkFBa0IsMENBQTBDLElBQUksc0JBQXNCLDBEQUEwRCxrQ0FBa0MsR0FBRyxRQUFRLHlCQUF5QixHQUFHLE9BQU8sRUFBRSxnQ0FBZ0MsR0FBRyxpQkFBaUIsRUFBRSxpQ0FBaUMsR0FBRyxPQUFPLEVBQUUsMkJBQTJCLEdBQUcsT0FBTyxFQUFFLGlDQUFpQyxHQUFHLHFCQUFxQixFQUFFLHFDQUFxQyxHQUFHLHlCQUF5QixFQUFFLCtCQUErQixHQUFHLG1CQUFtQixFQUFFLGtDQUFrQyxHQUFHLHNCQUFzQixFQUFFLG9DQUFvQyxHQUFHLHdCQUF3QixFQUFFLG9DQUFvQyxHQUFHLGdCQUFnQixFQUFFLHdDQUF3QyxHQUFHLGdCQUFnQixFQUFFLGtDQUFrQyxHQUFHLE9BQU8sRUFBRSxtQ0FBbUMsR0FBRyxPQUFPLEVBQUUsb0NBQW9DLEdBQUcsT0FBTyxFQUFFLHVDQUF1QyxHQUFHLE9BQU8sRUFBRSx1Q0FBdUMsR0FBRyxPQUFPLEVBQUUsd0NBQXdDLEdBQUcsT0FBTyxFQUFFLHdDQUF3QyxHQUFHLE9BQU8sRUFBRSwwQ0FBMEMsTUFBTSw2Q0FBNkMsTUFBTSxtREFBbUQsR0FBRyxlQUFlLEVBQUUsR0FBRyxlQUFlLDRPQUE0TywyQkFBMkIseUZBQXlGLDBDQUEwQyxtSUFBbUksNENBQTRDLElBQUksMkNBQTJDLE1BQU0sMkVBQTJFLGtEQUFrRCxVQUFVLE9BQU8sK0ZBQStGLE1BQU0sMkJBQTJCLHFHQUFxRyx3QkFBd0IscUdBQXFHLEVBQUUsMkNBQTJDLDZEQUE2RCxlQUFlLG9CQUFvQixLQUFLLHNCQUFzQixFQUFFLG9CQUFvQixLQUFLLGtDQUFrQyxFQUFFLG9CQUFvQixLQUFLLGdCQUFnQixFQUFFLG9CQUFvQixLQUFLLHFCQUFxQixFQUFFLG9CQUFvQixLQUFLLGNBQWMsMEJBQTBCLEVBQUUsb0JBQW9CLEtBQUssOEZBQThGLGFBQWEsRUFBRSwwQ0FBMEMsd0JBQXdCLEtBQUssdURBQXVELEVBQUUsMkJBQTJCLEtBQUsscUNBQXFDLGtCQUFrQixxQ0FBcUMsRUFBRSxFQUFFLGlCQUFpQixvQkFBb0IsS0FBSywwQkFBMEIsRUFBRSxvQkFBb0IsS0FBSywrQkFBK0IsRUFBRSxvQkFBb0IsS0FBSyx3RUFBd0UsRUFBRSxvQkFBb0IsS0FBSyxzQkFBc0IsRUFBRSxvQkFBb0IsS0FBSyxzQkFBc0IsRUFBRSxvQkFBb0IsS0FBSyx5Q0FBeUMsRUFBRSxvQkFBb0IsS0FBSyxxQkFBcUIsRUFBRSxvQkFBb0IsS0FBSyxxQkFBcUIsRUFBRSxvQkFBb0IsS0FBSyxzQkFBc0IsRUFBRSxvQkFBb0IsS0FBSyxzQkFBc0IsRUFBRSxvQkFBb0IsS0FBSyxvQ0FBb0MsRUFBRSxvQkFBb0IsS0FBSyw0QkFBNEIsOEJBQThCLGlDQUFpQyxFQUFFLG9CQUFvQixLQUFLLGNBQWMsRUFBRSxxQkFBcUIsS0FBSyxZQUFZLEVBQUUsZ0tBQWdLLGFBQWEsS0FBSyxtU0FBbVMsRUFBRSxrQkFBa0IsOENBQThDLE1BQU0sNENBQTRDLGdFQUFnRSw2QkFBNkIsbUJBQW1CLHVGQUF1RixZQUFZLG1CQUFtQixJQUFJLGdCQUFnQix1REFBdUQsT0FBTyxTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGNBQWMsVUFBVSwyQkFBMkIsOEpBQThKLHNCQUFzQixxREFBcUQsY0FBYywwTUFBME0sK0tBQStLLE1BQU0sNEJBQTRCLGFBQWEsSUFBSSx1QkFBdUIsSUFBSSxrQ0FBa0MsdUJBQXVCLG9CQUFvQixTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGVBQWUsUUFBUSxhQUFhLEtBQUssRUFBRSxrQkFBa0IseUJBQXlCLDJMQUEyTCxtRUFBbUUsc0VBQXNFLHVIQUF1SCx1REFBdUQsMEJBQTBCLG1CQUFtQixHQUFHLDZCQUE2QiwrQ0FBK0MsMkJBQTJCLGFBQWEsY0FBYyxZQUFZLGlCQUFpQixtR0FBbUcsUUFBUSx1Q0FBdUMscUdBQXFHLDhDQUE4Qyw4Q0FBOEMsMkJBQTJCLHdCQUF3QixvQkFBb0IsWUFBWSxFQUFFLGlDQUFpQyx1QkFBdUIsdUdBQXVHLEdBQUcsU0FBUyxtQkFBbUIsaUdBQWlHLFFBQVEsOENBQThDLDZEQUE2RCx1QkFBdUIsSUFBSSxpQ0FBaUMsdUJBQXVCLE1BQU0sY0FBYyx5QkFBeUIsdUJBQXVCLElBQUksOENBQThDLHVCQUF1QiwrQ0FBK0MsU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxpQkFBaUIsU0FBUyxTQUFTLFFBQVEsSUFBSSw4QkFBOEIsUUFBUSxlQUFlLHlCQUF5QixhQUFhLCtCQUErQiwyQkFBMkIsd0JBQXdCLG9CQUFvQixZQUFZLEVBQUUsaUNBQWlDLHVCQUF1Qix3R0FBd0csR0FBRyxVQUFVLElBQUkseUJBQXlCLENBQUMsMEJBQW1CLG1CQUFtQixrQkFBa0IsQ0FBQywwQkFBbUIsWUFBWSwyQkFBMkIsQ0FBQywwQkFBbUIscUJBQXFCLDZCQUE2QixDQUFDLDBCQUFtQix1QkFBdUIsNEJBQTRCLENBQUMsMEJBQW1CLHNCQUFzQiwwQkFBbUIsOEpBQThKLDBCQUFtQixpQkFBaUIsOENBQTJDLENBQUMsU0FBUyxFQUFDO0FBQzF6bUUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1kZXZ0b29scy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX193ZWJwYWNrX21vZHVsZXNfXz17XCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9kZXZ0b29scy1pbmRpY2F0b3IvZGV2dG9vbHMtaW5kaWNhdG9yLmNzc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7WjooKT0+bH0pO3ZhciByPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCIpLG89bi5uKHIpLGE9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiKSxpPW4ubihhKSgpKG8oKSk7aS5wdXNoKFtlLmlkLGBbZGF0YS1uZXh0anMtdG9hc3RdIHtcbiAgJltkYXRhLWhpZGRlbj0ndHJ1ZSddIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5kZXYtdG9vbHMtaW5kaWNhdG9yLW1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tZW51KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stc2Fucyk7XG4gIHotaW5kZXg6IDM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIG91dGxpbmU6IDA7XG4gIG1pbi13aWR0aDogMjQ4cHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tYW5pbWF0ZS1vdXQtZHVyYXRpb24tbXMpXG4gICAgdmFyKC0tYW5pbWF0ZS1vdXQtdGltaW5nLWZ1bmN0aW9uKTtcblxuICAmW2RhdGEtcmVuZGVyZWQ9J3RydWUnXSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBzY2FsZTogMTtcbiAgfVxufVxuXG4uZGV2LXRvb2xzLWluZGljYXRvci1pbm5lciB7XG4gIHBhZGRpbmc6IDZweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiA4cHggNnB4O1xuICBoZWlnaHQ6IHZhcigtLXNpemUtMzYpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBzdmcge1xuICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcbiAgcGFkZGluZzogNnB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmRldi10b29scy1pbmRpY2F0b3ItaXRlbVtkYXRhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcbn1cblxuLmRldi10b29scy1pbmRpY2F0b3ItbGFiZWwge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xufVxuXG4uZGV2LXRvb2xzLWluZGljYXRvci12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWlzc3VlLWNvdW50IHtcbiAgLS1jb2xvci1wcmltYXJ5OiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XG4gIC0tY29sb3Itc2Vjb25kYXJ5OiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWluLXdpZHRoOiB2YXIoLS1zaXplLTQwKTtcbiAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbWFsbCk7XG4gIHBhZGRpbmc6IDJweDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDEyOHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTMpO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuXG4gICZbZGF0YS1oYXMtaXNzdWVzPSd0cnVlJ10ge1xuICAgIC0tY29sb3ItcHJpbWFyeTogdmFyKC0tY29sb3ItcmVkLTgwMCk7XG4gICAgLS1jb2xvci1zZWNvbmRhcnk6IHZhcigtLWNvbG9yLXJlZC0xMDApO1xuICB9XG5cbiAgLmRldi10b29scy1pbmRpY2F0b3ItaXNzdWUtY291bnQtaW5kaWNhdG9yIHtcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS04KTtcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtOCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB9XG59XG5cbi5kZXYtdG9vbHMtaW5kaWNhdG9yLXNob3J0Y3V0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA0cHg7XG5cbiAga2JkIHtcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS0yMCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLXNhbnMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0xNik7XG4gIH1cbn1cblxuLmRldi10b29scy1ncmFiYmluZyB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG5cbiAgPiAqIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2RldnRvb2xzLWluZGljYXRvci9kZXZ0b29scy1pbmRpY2F0b3IuY3NzXCJdLG5hbWVzOltdLG1hcHBpbmdzOlwiQUFBQTtFQUNFO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2Qix1Q0FBdUM7RUFDdkMsNkNBQTZDO0VBQzdDLDRCQUE0QjtFQUM1Qiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLGtCQUFrQjtFQUNsQixtQ0FBbUM7RUFDbkMsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQixVQUFVO0VBQ1YsVUFBVTtFQUNWLGdCQUFnQjtFQUNoQjtzQ0FDb0M7O0VBRXBDO0lBQ0UsVUFBVTtJQUNWLFFBQVE7RUFDVjtBQUNGOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsZ0NBQWdDO0VBQ2hDLGlCQUFpQjtFQUNqQixtQkFBbUI7O0VBRW5CO0lBQ0UscUJBQXFCO0lBQ3JCLHNCQUFzQjtFQUN4Qjs7RUFFQTtJQUNFLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0UsdUNBQXVDO0VBQ3ZDLFlBQVk7RUFDWiwyQ0FBMkM7RUFDM0MsV0FBVztBQUNiOztBQUVBO0VBQ0UsZUFBZTtFQUNmLHVDQUF1QztBQUN6Qzs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QiwyQkFBMkI7RUFDM0IsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLDJCQUEyQjtFQUMzQiw0QkFBNEI7RUFDNUIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0Usc0NBQXNDO0VBQ3RDLHdDQUF3QztFQUN4QyxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsUUFBUTtFQUNSLHlCQUF5QjtFQUN6QixzQkFBc0I7RUFDdEIsdUNBQXVDO0VBQ3ZDLDZDQUE2QztFQUM3Qyw0QkFBNEI7RUFDNUIsK0JBQStCO0VBQy9CLFlBQVk7RUFDWiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsa0NBQWtDOztFQUVsQztJQUNFLHFDQUFxQztJQUNyQyx1Q0FBdUM7RUFDekM7O0VBRUE7SUFDRSxvQkFBb0I7SUFDcEIscUJBQXFCO0lBQ3JCLGdDQUFnQztJQUNoQyw0Q0FBNEM7SUFDNUMsa0JBQWtCO0VBQ3BCO0FBQ0Y7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsUUFBUTs7RUFFUjtJQUNFLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIsYUFBYTtJQUNiLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIsZ0NBQWdDO0lBQ2hDLHVDQUF1QztJQUN2QyxtQ0FBbUM7SUFDbkMsdUNBQXVDO0lBQ3ZDLDZCQUE2QjtJQUM3QixrQkFBa0I7SUFDbEIseUJBQXlCO0lBQ3pCLDJCQUEyQjtFQUM3QjtBQUNGOztBQUVBO0VBQ0UsZ0JBQWdCOztFQUVoQjtJQUNFLG9CQUFvQjtFQUN0QjtBQUNGXCIsc291cmNlc0NvbnRlbnQ6W1wiW2RhdGEtbmV4dGpzLXRvYXN0XSB7XFxuICAmW2RhdGEtaGlkZGVuPSd0cnVlJ10ge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG5cXG4uZGV2LXRvb2xzLWluZGljYXRvci1tZW51IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1lbnUpO1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcXG4gIHotaW5kZXg6IDM7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgb3BhY2l0eTogMDtcXG4gIG91dGxpbmU6IDA7XFxuICBtaW4td2lkdGg6IDI0OHB4O1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1hbmltYXRlLW91dC1kdXJhdGlvbi1tcylcXG4gICAgdmFyKC0tYW5pbWF0ZS1vdXQtdGltaW5nLWZ1bmN0aW9uKTtcXG5cXG4gICZbZGF0YS1yZW5kZXJlZD0ndHJ1ZSddIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgc2NhbGU6IDE7XFxuICB9XFxufVxcblxcbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWlubmVyIHtcXG4gIHBhZGRpbmc6IDZweDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG5cXG4uZGV2LXRvb2xzLWluZGljYXRvci1pdGVtIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgcGFkZGluZzogOHB4IDZweDtcXG4gIGhlaWdodDogdmFyKC0tc2l6ZS0zNik7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG5cXG4gIHN2ZyB7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gIH1cXG5cXG4gICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgIG91dGxpbmU6IDA7XFxuICB9XFxufVxcblxcbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWZvb3RlciB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxuICBwYWRkaW5nOiA2cHg7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcblxcbi5kZXYtdG9vbHMtaW5kaWNhdG9yLWl0ZW1bZGF0YS1zZWxlY3RlZD0ndHJ1ZSddIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG59XFxuXFxuLmRldi10b29scy1pbmRpY2F0b3ItbGFiZWwge1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbn1cXG5cXG4uZGV2LXRvb2xzLWluZGljYXRvci12YWx1ZSB7XFxuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbn1cXG5cXG4uZGV2LXRvb2xzLWluZGljYXRvci1pc3N1ZS1jb3VudCB7XFxuICAtLWNvbG9yLXByaW1hcnk6IHZhcigtLWNvbG9yLWdyYXktODAwKTtcXG4gIC0tY29sb3Itc2Vjb25kYXJ5OiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGdhcDogOHB4O1xcbiAgbWluLXdpZHRoOiB2YXIoLS1zaXplLTQwKTtcXG4gIGhlaWdodDogdmFyKC0tc2l6ZS0yNCk7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtYWxsKTtcXG4gIHBhZGRpbmc6IDJweDtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgYm9yZGVyLXJhZGl1czogMTI4cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEzKTtcXG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XFxuXFxuICAmW2RhdGEtaGFzLWlzc3Vlcz0ndHJ1ZSddIHtcXG4gICAgLS1jb2xvci1wcmltYXJ5OiB2YXIoLS1jb2xvci1yZWQtODAwKTtcXG4gICAgLS1jb2xvci1zZWNvbmRhcnk6IHZhcigtLWNvbG9yLXJlZC0xMDApO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmRpY2F0b3ItaXNzdWUtY291bnQtaW5kaWNhdG9yIHtcXG4gICAgd2lkdGg6IHZhcigtLXNpemUtOCk7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS04KTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XFxuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB9XFxufVxcblxcbi5kZXYtdG9vbHMtaW5kaWNhdG9yLXNob3J0Y3V0IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBnYXA6IDRweDtcXG5cXG4gIGtiZCB7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTIwKTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbWQpO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLXNhbnMpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gIH1cXG59XFxuXFxuLmRldi10b29scy1ncmFiYmluZyB7XFxuICBjdXJzb3I6IGdyYWJiaW5nO1xcblxcbiAgPiAqIHtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxufVxcblwiXSxzb3VyY2VSb290OlwiXCJ9XSk7bGV0IGw9aX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9kZXZ0b29scy1wYW5lbC9yZXNpemUvcmVzaXplLWhhbmRsZS5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnJlc2l6ZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8qIHRvZG86IGJldHRlciB6IGluZGV4ICovXG4gIHotaW5kZXg6IDEwO1xuICAvKiB0b2RvOiBpcyB0aGlzIG5lZWRlZCAqL1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLnJlc2l6ZS1saW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvKiB0b2RvIHNtYXJ0ZXIgeiBpbmRleCAqL1xuICB6LWluZGV4OiAtMTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC8qIGEgbm9ybWFsIGV4aXQgYW5pbWF0aW9uIGN1cnZlLSBhdCB0aGlzIHBvaW50IHRoZSBleGl0IGFuaW1hdGlvbiBpcyAqL1xuICAvKiBpbW1lZGlhdGVseSByZXNwb25zaXZlIHNvIHdlIGRvbid0IG5lZWQgYSBiZXNwb2tlIGN1cnZlICovXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIC8qIHRvZG86IGJldHRlciB2YXI/ICovXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbn1cblxuLyogc3RhcnQgcmVhbGx5IGZhc3QgYmVjYXVzZSB3ZSBzdGFydCBzdXBlciBoaWRkZW4gaW5pdGlhbGx5IGJlaGluZCB0aGUgcGFuZWwsIG90aGVyd2lzZSBmZWVscyBsaWtlIGFuIHVuaW50ZW5kZWQgYW5pbWF0aW9uIGRlbGF5ICovXG4ucmVzaXplLWNvbnRhaW5lcjpob3ZlciB+IC5yZXNpemUtbGluZSB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMC45KTtcbn1cblxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQsXG4ucmVzaXplLWNvbnRhaW5lci5sZWZ0IHtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAyMnB4O1xuICBjdXJzb3I6IGV3LXJlc2l6ZTtcbn1cblxuLyogdG9kbzogZG9uJ3QgaGFyZCBjb2RlIGFsbCB0aGVzZSB2YWx1ZXMvdXNlIHZhcnMgKi9cblxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLFxuLnJlc2l6ZS1jb250YWluZXIudG9wIHtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjJweDtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG59XG5cbi5yZXNpemUtY29udGFpbmVyLnRvcCB7XG4gIHRvcDogLTdweDtcbn1cbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbSB7XG4gIGJvdHRvbTogLTdweDtcbn1cbi5yZXNpemUtY29udGFpbmVyLmxlZnQge1xuICBsZWZ0OiAtN3B4O1xufVxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQge1xuICByaWdodDogLTdweDtcbn1cblxuLnJlc2l6ZS1jb250YWluZXIudG9wLWxlZnQsXG4ucmVzaXplLWNvbnRhaW5lci50b3AtcmlnaHQsXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20tbGVmdCxcbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbS1yaWdodCB7XG4gIHdpZHRoOiAyNnB4O1xuICBoZWlnaHQ6IDI2cHg7XG4gIHotaW5kZXg6IDE1O1xufVxuXG4ucmVzaXplLWNvbnRhaW5lci50b3AtbGVmdCB7XG4gIHRvcDogLTVweDtcbiAgbGVmdDogLTVweDtcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbn1cbi5yZXNpemUtY29udGFpbmVyLnRvcC1yaWdodCB7XG4gIHRvcDogLTVweDtcbiAgcmlnaHQ6IC01cHg7XG4gIGN1cnNvcjogbmVzdy1yZXNpemU7XG59XG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20tbGVmdCB7XG4gIGJvdHRvbTogLTVweDtcbiAgbGVmdDogLTVweDtcbiAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcbn1cbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbS1yaWdodCB7XG4gIGJvdHRvbTogLTVweDtcbiAgcmlnaHQ6IC01cHg7XG4gIGN1cnNvcjogbndzZS1yZXNpemU7XG59XG5cbi5yZXNpemUtbGluZS50b3AsXG4ucmVzaXplLWxpbmUuYm90dG9tIHtcbiAgaGVpZ2h0OiAxOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xufVxuXG4ucmVzaXplLWxpbmUubGVmdCxcbi5yZXNpemUtbGluZS5yaWdodCB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcbn1cblxuLnJlc2l6ZS1saW5lLnRvcCB7XG4gIHRvcDogLTdweDtcbiAgbGVmdDogY2FsYygtMSAqIHZhcigtLWJvcmRlci1sZWZ0LCAycHgpKTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWJvcmRlci1ob3Jpem9udGFsLCA0cHgpKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1sZykgdmFyKC0tcm91bmRlZC1sZykgMCAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMThweCk7XG59XG5cbi5yZXNpemUtbGluZS5ib3R0b20ge1xuICBib3R0b206IC03cHg7XG4gIGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItbGVmdCwgMnB4KSk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItaG9yaXpvbnRhbCwgNHB4KSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1yb3VuZGVkLWxnKSB2YXIoLS1yb3VuZGVkLWxnKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xOHB4KTtcbn1cblxuLnJlc2l6ZS1saW5lLmxlZnQge1xuICB0b3A6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItdG9wLCAycHgpKTtcbiAgbGVmdDogLTdweDtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItdmVydGljYWwsIDRweCkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWxnKSAwIDAgdmFyKC0tcm91bmRlZC1sZyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxOHB4KTtcbn1cblxuLnJlc2l6ZS1saW5lLnJpZ2h0IHtcbiAgdG9wOiBjYWxjKC0xICogdmFyKC0tYm9yZGVyLXRvcCwgMnB4KSk7XG4gIHJpZ2h0OiAtN3B4O1xuICBoZWlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLWJvcmRlci12ZXJ0aWNhbCwgNHB4KSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcm91bmRlZC1sZykgdmFyKC0tcm91bmRlZC1sZykgMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xOHB4KTtcbn1cblxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQsXG4ucmVzaXplLWNvbnRhaW5lci5sZWZ0OmhvdmVyIH4gLnJlc2l6ZS1saW5lLmxlZnQsXG4ucmVzaXplLWxpbmUucmlnaHQuZHJhZ2dpbmcsXG4ucmVzaXplLWxpbmUubGVmdC5kcmFnZ2luZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tOmhvdmVyIH4gLnJlc2l6ZS1saW5lLmJvdHRvbSxcbi5yZXNpemUtY29udGFpbmVyLnRvcDpob3ZlciB+IC5yZXNpemUtbGluZS50b3AsXG4ucmVzaXplLWxpbmUuYm90dG9tLmRyYWdnaW5nLFxuLnJlc2l6ZS1saW5lLnRvcC5kcmFnZ2luZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLyogbWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3Qgc2hvdyBtdWx0aXBsZSBoYW5kbGVzIGF0IG9uY2VcbiAqIHdlIHNob3VsZCBvbmx5IGV2ZXIgc2hvdyB0aGUgY3VycmVudGx5IHJlc2l6aW5nIGhhbmRsZVxuICogcmVnYXJkbGVzcyBvZiBob3ZlciBzdGF0ZSBcbiAqL1xuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xufVxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIubGVmdDpob3ZlciB+IC5yZXNpemUtbGluZS5sZWZ0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xufVxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIuYm90dG9tOmhvdmVyIH4gLnJlc2l6ZS1saW5lLmJvdHRvbSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XG59XG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci50b3A6aG92ZXIgfiAucmVzaXplLWxpbmUudG9wIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2RldnRvb2xzLXBhbmVsL3Jlc2l6ZS9yZXNpemUtaGFuZGxlLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxrQkFBa0I7RUFDbEIseUJBQXlCO0VBQ3pCLFdBQVc7RUFDWCx5QkFBeUI7RUFDekIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHlCQUF5QjtFQUN6QixXQUFXO0VBQ1gsb0JBQW9CO0VBQ3BCLHVFQUF1RTtFQUN2RSw0REFBNEQ7RUFDNUQsdURBQXVEO0VBQ3ZELHNCQUFzQjtFQUN0Qix1Q0FBdUM7QUFDekM7O0FBRUEsbUlBQW1JO0FBQ25JO0VBQ0UsNERBQTREO0FBQzlEOztBQUVBOztFQUVFLE1BQU07RUFDTixZQUFZO0VBQ1osV0FBVztFQUNYLGlCQUFpQjtBQUNuQjs7QUFFQSxvREFBb0Q7O0FBRXBEOztFQUVFLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtFQUNaLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLFNBQVM7QUFDWDtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTs7OztFQUlFLFdBQVc7RUFDWCxZQUFZO0VBQ1osV0FBVztBQUNiOztBQUVBO0VBQ0UsU0FBUztFQUNULFVBQVU7RUFDVixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLFNBQVM7RUFDVCxXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osVUFBVTtFQUNWLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7RUFDWCxtQkFBbUI7QUFDckI7O0FBRUE7O0VBRUUsWUFBWTtFQUNaLFdBQVc7RUFDWCw2Q0FBNkM7QUFDL0M7O0FBRUE7O0VBRUUsV0FBVztFQUNYLFlBQVk7RUFDWiw2Q0FBNkM7QUFDL0M7O0FBRUE7RUFDRSxTQUFTO0VBQ1Qsd0NBQXdDO0VBQ3hDLGlEQUFpRDtFQUNqRCxzREFBc0Q7RUFDdEQsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsWUFBWTtFQUNaLHdDQUF3QztFQUN4QyxpREFBaUQ7RUFDakQsc0RBQXNEO0VBQ3RELDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLHNDQUFzQztFQUN0QyxVQUFVO0VBQ1YsZ0RBQWdEO0VBQ2hELHNEQUFzRDtFQUN0RCwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxzQ0FBc0M7RUFDdEMsV0FBVztFQUNYLGdEQUFnRDtFQUNoRCxzREFBc0Q7RUFDdEQsNEJBQTRCO0FBQzlCOztBQUVBOzs7O0VBSUUsd0JBQXdCO0FBQzFCOztBQUVBOzs7O0VBSUUsd0JBQXdCO0FBQzFCOztBQUVBOzs7RUFHRTtBQUNGO0VBQ0UsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCXCIsc291cmNlc0NvbnRlbnQ6W1wiLnJlc2l6ZS1jb250YWluZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgLyogdG9kbzogYmV0dGVyIHogaW5kZXggKi9cXG4gIHotaW5kZXg6IDEwO1xcbiAgLyogdG9kbzogaXMgdGhpcyBuZWVkZWQgKi9cXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG4ucmVzaXplLWxpbmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgLyogdG9kbyBzbWFydGVyIHogaW5kZXggKi9cXG4gIHotaW5kZXg6IC0xO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAvKiBhIG5vcm1hbCBleGl0IGFuaW1hdGlvbiBjdXJ2ZS0gYXQgdGhpcyBwb2ludCB0aGUgZXhpdCBhbmltYXRpb24gaXMgKi9cXG4gIC8qIGltbWVkaWF0ZWx5IHJlc3BvbnNpdmUgc28gd2UgZG9uJ3QgbmVlZCBhIGJlc3Bva2UgY3VydmUgKi9cXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XFxuICAvKiB0b2RvOiBiZXR0ZXIgdmFyPyAqL1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbn1cXG5cXG4vKiBzdGFydCByZWFsbHkgZmFzdCBiZWNhdXNlIHdlIHN0YXJ0IHN1cGVyIGhpZGRlbiBpbml0aWFsbHkgYmVoaW5kIHRoZSBwYW5lbCwgb3RoZXJ3aXNlIGZlZWxzIGxpa2UgYW4gdW5pbnRlbmRlZCBhbmltYXRpb24gZGVsYXkgKi9cXG4ucmVzaXplLWNvbnRhaW5lcjpob3ZlciB+IC5yZXNpemUtbGluZSB7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDAuOSk7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLnJpZ2h0LFxcbi5yZXNpemUtY29udGFpbmVyLmxlZnQge1xcbiAgdG9wOiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDIycHg7XFxuICBjdXJzb3I6IGV3LXJlc2l6ZTtcXG59XFxuXFxuLyogdG9kbzogZG9uJ3QgaGFyZCBjb2RlIGFsbCB0aGVzZSB2YWx1ZXMvdXNlIHZhcnMgKi9cXG5cXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20sXFxuLnJlc2l6ZS1jb250YWluZXIudG9wIHtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMjJweDtcXG4gIGN1cnNvcjogbnMtcmVzaXplO1xcbn1cXG5cXG4ucmVzaXplLWNvbnRhaW5lci50b3Age1xcbiAgdG9wOiAtN3B4O1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20ge1xcbiAgYm90dG9tOiAtN3B4O1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5sZWZ0IHtcXG4gIGxlZnQ6IC03cHg7XFxufVxcbi5yZXNpemUtY29udGFpbmVyLnJpZ2h0IHtcXG4gIHJpZ2h0OiAtN3B4O1xcbn1cXG5cXG4ucmVzaXplLWNvbnRhaW5lci50b3AtbGVmdCxcXG4ucmVzaXplLWNvbnRhaW5lci50b3AtcmlnaHQsXFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLWxlZnQsXFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcXG4gIHdpZHRoOiAyNnB4O1xcbiAgaGVpZ2h0OiAyNnB4O1xcbiAgei1pbmRleDogMTU7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLnRvcC1sZWZ0IHtcXG4gIHRvcDogLTVweDtcXG4gIGxlZnQ6IC01cHg7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci50b3AtcmlnaHQge1xcbiAgdG9wOiAtNXB4O1xcbiAgcmlnaHQ6IC01cHg7XFxuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20tbGVmdCB7XFxuICBib3R0b206IC01cHg7XFxuICBsZWZ0OiAtNXB4O1xcbiAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcXG4gIGJvdHRvbTogLTVweDtcXG4gIHJpZ2h0OiAtNXB4O1xcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcXG59XFxuXFxuLnJlc2l6ZS1saW5lLnRvcCxcXG4ucmVzaXplLWxpbmUuYm90dG9tIHtcXG4gIGhlaWdodDogMThweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbn1cXG5cXG4ucmVzaXplLWxpbmUubGVmdCxcXG4ucmVzaXplLWxpbmUucmlnaHQge1xcbiAgd2lkdGg6IDE4cHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxufVxcblxcbi5yZXNpemUtbGluZS50b3Age1xcbiAgdG9wOiAtN3B4O1xcbiAgbGVmdDogY2FsYygtMSAqIHZhcigtLWJvcmRlci1sZWZ0LCAycHgpKTtcXG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItaG9yaXpvbnRhbCwgNHB4KSk7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWxnKSB2YXIoLS1yb3VuZGVkLWxnKSAwIDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMThweCk7XFxufVxcblxcbi5yZXNpemUtbGluZS5ib3R0b20ge1xcbiAgYm90dG9tOiAtN3B4O1xcbiAgbGVmdDogY2FsYygtMSAqIHZhcigtLWJvcmRlci1sZWZ0LCAycHgpKTtcXG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItaG9yaXpvbnRhbCwgNHB4KSk7XFxuICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tcm91bmRlZC1sZykgdmFyKC0tcm91bmRlZC1sZyk7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE4cHgpO1xcbn1cXG5cXG4ucmVzaXplLWxpbmUubGVmdCB7XFxuICB0b3A6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItdG9wLCAycHgpKTtcXG4gIGxlZnQ6IC03cHg7XFxuICBoZWlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLWJvcmRlci12ZXJ0aWNhbCwgNHB4KSk7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWxnKSAwIDAgdmFyKC0tcm91bmRlZC1sZyk7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMThweCk7XFxufVxcblxcbi5yZXNpemUtbGluZS5yaWdodCB7XFxuICB0b3A6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItdG9wLCAycHgpKTtcXG4gIHJpZ2h0OiAtN3B4O1xcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItdmVydGljYWwsIDRweCkpO1xcbiAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1yb3VuZGVkLWxnKSB2YXIoLS1yb3VuZGVkLWxnKSAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xOHB4KTtcXG59XFxuXFxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQsXFxuLnJlc2l6ZS1jb250YWluZXIubGVmdDpob3ZlciB+IC5yZXNpemUtbGluZS5sZWZ0LFxcbi5yZXNpemUtbGluZS5yaWdodC5kcmFnZ2luZyxcXG4ucmVzaXplLWxpbmUubGVmdC5kcmFnZ2luZyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbTpob3ZlciB+IC5yZXNpemUtbGluZS5ib3R0b20sXFxuLnJlc2l6ZS1jb250YWluZXIudG9wOmhvdmVyIH4gLnJlc2l6ZS1saW5lLnRvcCxcXG4ucmVzaXplLWxpbmUuYm90dG9tLmRyYWdnaW5nLFxcbi5yZXNpemUtbGluZS50b3AuZHJhZ2dpbmcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbn1cXG5cXG4vKiBtYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBzaG93IG11bHRpcGxlIGhhbmRsZXMgYXQgb25jZVxcbiAqIHdlIHNob3VsZCBvbmx5IGV2ZXIgc2hvdyB0aGUgY3VycmVudGx5IHJlc2l6aW5nIGhhbmRsZVxcbiAqIHJlZ2FyZGxlc3Mgb2YgaG92ZXIgc3RhdGUgXFxuICovXFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIubGVmdDpob3ZlciB+IC5yZXNpemUtbGluZS5sZWZ0IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIuYm90dG9tOmhvdmVyIH4gLnJlc2l6ZS1saW5lLmJvdHRvbSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci50b3A6aG92ZXIgfiAucmVzaXplLWxpbmUudG9wIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcXG59XFxuXCJdLHNvdXJjZVJvb3Q6XCJcIn1dKTtsZXQgbD1pfSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL292ZXJ2aWV3L3NlZ21lbnQtYm91bmRhcnktdHJpZ2dlci5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiA0cHggNnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQgLnBsdXMtaWNvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQ6aG92ZXIgLnBsdXMtaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIgc3ZnIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXI6aG92ZXIgc3ZnIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF0gc3ZnLFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF06aG92ZXIgc3ZnIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24ge1xuICBwYWRkaW5nOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBtaW4td2lkdGg6IDEyMHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3gtc2hhZG93OiAwcHggNHB4IDhweCAtNHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci1ncmF5LTkwMCkgNCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24tcG9zaXRpb25lciB7XG4gIHotaW5kZXg6IHZhcigtLXRvcC16LWluZGV4KTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24taXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDhweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtaW4td2lkdGg6IDIyMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtW2RhdGEtZGlzYWJsZWRdIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24taXRlbSBzdmcge1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFFBQVE7RUFDUixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLFlBQVk7RUFDWix5QkFBeUI7RUFDekIsZUFBZTtFQUNmLHVDQUF1QztBQUN6Qzs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsZ0NBQWdDO0FBQ2xDOztBQUVBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixjQUFjO0VBQ2Qsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUVBOztFQUVFLDRCQUE0QjtFQUM1QixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osdUNBQXVDO0VBQ3ZDLHVDQUF1QztFQUN2QyxtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2Ysc0ZBQXNGO0FBQ3hGOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixXQUFXO0FBQ2I7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQiw0QkFBNEI7QUFDOUI7O0FBRUE7RUFDRSw4QkFBOEI7RUFDOUIsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLDRCQUE0QjtBQUM5QlwiLHNvdXJjZXNDb250ZW50OltcIi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBnYXA6IDRweDtcXG4gIHBhZGRpbmc6IDRweCA2cHg7XFxuICBsaW5lLWhlaWdodDogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcXG59XFxuXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci10ZXh0IHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci10ZXh0IC5wbHVzLWljb24ge1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2U7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXItdGV4dDpob3ZlciAucGx1cy1pY29uIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIgc3ZnIHtcXG4gIHdpZHRoOiAxNHB4O1xcbiAgaGVpZ2h0OiAxNHB4O1xcbiAgZmxleC1zaHJpbms6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyOmhvdmVyIHN2ZyB7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS03MDApO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyW2Rpc2FibGVkXSBzdmcsXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF06aG92ZXIgc3ZnIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93biB7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xcbiAgbWluLXdpZHRoOiAxMjBweDtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgYm94LXNoYWRvdzogMHB4IDRweCA4cHggLTRweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItZ3JheS05MDApIDQlLCB0cmFuc3BhcmVudCk7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLXBvc2l0aW9uZXIge1xcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgcGFkZGluZzogOHB4O1xcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIG1pbi13aWR0aDogMjIwcHg7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW1bZGF0YS1kaXNhYmxlZF0ge1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW0gc3ZnIHtcXG4gIG1hcmdpbi1yaWdodDogMTJweDtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06aG92ZXIge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0yMDApO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06bGFzdC1jaGlsZCB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1ncm91cC1sYWJlbCB7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBmb250LXNpemU6IDEzcHg7XFxuICBsaW5lLWhlaWdodDogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnNlZ21lbnQtZXhwbG9yZXItY29udGVudCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xuICBnYXA6IDEycHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLXBhZ2Utcm91dGUtYmFyLXBhdGgge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtIHtcbiAgbWFyZ2luOiA0cHggMDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcbn1cbi5zZWdtZW50LWV4cGxvcmVyLWl0ZW0tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG59XG4uc2VnbWVudC1leHBsb3Jlci1pdGVtLXJvdy1tYWluIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItY2hpbGRyZW4tLWludGVuZGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlbmFtZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUgc2VsZWN0IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG4uc2VnbWVudC1leHBsb3Jlci1maWxlbmFtZS0tcGF0aCB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGggc21hbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLW5hbWUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS04MDApO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVzICsgLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlciB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgNnB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC10ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLW92ZXJyaWRkZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbCAuY29kZS1pY29uIHtcbiAgb3BhY2l0eTogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHdpZHRoOiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZS1pbi1vdXQ7XG59XG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsOmhvdmVyIC5jb2RlLWljb24ge1xuICBvcGFjaXR5OiAxO1xuICB3aWR0aDogMTJweDtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbDpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwLjk1KTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tYnVpbHRpbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tY29sb3ItZ3JheS01MDApO1xuICBoZWlnaHQ6IDI0cHg7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLWJ1aWx0aW4gc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xufVxuXG4vKiBGb290ZXIgc3R5bGVzICovXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXIge1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b24tLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLXRleHQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDAgNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtdG9vbHRpcC0tc20ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRvb2x0aXAtLWxnIHtcbiAgbWluLXdpZHRoOiAyMDBweDtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItc3VnZ2VzdGlvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZ2FwOiA4cHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLXN1Z2dlc3Rpb25zLXRvb2x0aXAge1xuICB3aWR0aDogMjAwcHg7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci5jc3NcIl0sbmFtZXM6W10sbWFwcGluZ3M6XCJBQUFBO0VBQ0UseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsNkNBQTZDO0VBQzdDLFNBQVM7QUFDWDs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsNkJBQTZCO0VBQzdCLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLDZDQUE2QztBQUMvQztBQUNBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixpQkFBaUI7RUFDakIsb0JBQW9CO0VBQ3BCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLHFCQUFxQjtFQUNyQixRQUFRO0VBQ1IsVUFBVTtBQUNaO0FBQ0E7RUFDRSw0QkFBNEI7QUFDOUI7O0FBRUE7RUFDRSxvQkFBb0I7RUFDcEIsUUFBUTtFQUNSLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGNBQWM7RUFDZCxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQix5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YsdUNBQXVDO0VBQ3ZDLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLHdDQUF3QztFQUN4Qyw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsY0FBYztFQUNkLFFBQVE7RUFDUixpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsNkJBQTZCO0VBQzdCLDRCQUE0QjtFQUM1Qix3Q0FBd0M7RUFDeEMsWUFBWTtFQUNaLGVBQWU7QUFDakI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7O0FBRUEsa0JBQWtCO0FBQ2xCO0VBQ0UsWUFBWTtFQUNaLDJDQUEyQztFQUMzQyxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFDWix1Q0FBdUM7RUFDdkMsdUNBQXVDO0VBQ3ZDLGtCQUFrQjtFQUNsQiw2QkFBNkI7RUFDN0IseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsdUNBQXVDO0FBQ3pDOztBQUVBO0VBQ0UsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsZUFBZTtFQUNmLFlBQVk7RUFDWixjQUFjO0VBQ2Qsa0NBQWtDO0VBQ2xDLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLFFBQVE7QUFDVjs7QUFFQTtFQUNFLFlBQVk7QUFDZFwiLHNvdXJjZXNDb250ZW50OltcIi5zZWdtZW50LWV4cGxvcmVyLWNvbnRlbnQge1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gIHBhZGRpbmc6IDAgOHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLXBhZ2Utcm91dGUtYmFyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgcGFkZGluZzogMTRweCAxNnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbiAgZ2FwOiAxMnB4O1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhci1wYXRoIHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBsaW5lLWhlaWdodDogMjBweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItaXRlbSB7XFxuICBtYXJnaW46IDRweCAwO1xcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtOm50aC1jaGlsZChldmVuKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxufVxcbi5zZWdtZW50LWV4cGxvcmVyLWl0ZW0tcm93IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgcGFkZGluZy10b3A6IDEwcHg7XFxuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItaXRlbS1yb3ctbWFpbiB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHdoaXRlLXNwYWNlOiBwcmU7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItY2hpbGRyZW4tLWludGVuZGVkIHtcXG4gIHBhZGRpbmctbGVmdDogMTZweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lIHNlbGVjdCB7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGgge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lLS1wYXRoIHNtYWxsIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAwO1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLW5hbWUge1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktODAwKTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZXMge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBnYXA6IDhweDtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlcyArIC5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHBhZGRpbmc6IDAgNnB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcXG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbn1cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRleHQge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLS1vdmVycmlkZGVuIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTMwMCk7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbCAuY29kZS1pY29uIHtcXG4gIG9wYWNpdHk6IDA7XFxuICBtYXJnaW4tbGVmdDogMDtcXG4gIHdpZHRoOiAwO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xcbn1cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsOmhvdmVyIC5jb2RlLWljb24ge1xcbiAgb3BhY2l0eTogMTtcXG4gIHdpZHRoOiAxMnB4O1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbDpob3ZlciB7XFxuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45NSk7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLWJ1aWx0aW4ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWdyYXktNTAwKTtcXG4gIGhlaWdodDogMjRweDtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tYnVpbHRpbiBzdmcge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gIG1hcmdpbi1yaWdodDogLTRweDtcXG59XFxuXFxuLyogRm9vdGVyIHN0eWxlcyAqL1xcbi5zZWdtZW50LWV4cGxvcmVyLWZvb3RlciB7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b24ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGdhcDogOHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiA2cHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJ1dHRvbi0tZGlzYWJsZWQge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLXRleHQge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItYmFkZ2Uge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBtaW4td2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxuICBwYWRkaW5nOiAwIDZweDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFtYmVyLTMwMCk7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcXG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XFxuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRvb2x0aXAtLXNtIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtdG9vbHRpcC0tbGcge1xcbiAgbWluLXdpZHRoOiAyMDBweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItc3VnZ2VzdGlvbnMge1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICBnYXA6IDhweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItc3VnZ2VzdGlvbnMtdG9vbHRpcCB7XFxuICB3aWR0aDogMjAwcHg7XFxufVxcblwiXSxzb3VyY2VSb290OlwiXCJ9XSk7bGV0IGw9aX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy90b2FzdC9zdHlsZS5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLm5leHRqcy10b2FzdCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xuICBtYXgtd2lkdGg6IDQyMHB4O1xuICBib3gtc2hhZG93OiAwcHggMTZweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cbi5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudCB7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtNHhsKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3RvYXN0L3N0eWxlLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxlQUFlO0VBQ2YsMkJBQTJCO0VBQzNCLGdCQUFnQjtFQUNoQiw2Q0FBNkM7QUFDL0M7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsaUNBQWlDO0VBQ2pDLGdCQUFnQjtFQUNoQixxQ0FBcUM7RUFDckMsdUNBQXVDO0FBQ3pDXCIsc291cmNlc0NvbnRlbnQ6W1wiLm5leHRqcy10b2FzdCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB6LWluZGV4OiB2YXIoLS10b3Atei1pbmRleCk7XFxuICBtYXgtd2lkdGg6IDQyMHB4O1xcbiAgYm94LXNoYWRvdzogMHB4IDE2cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbn1cXG5cXG4ubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQge1xcbiAgcGFkZGluZzogMTZweDtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtNHhsKTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGUpO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNzc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7WjooKT0+bH0pO3ZhciByPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCIpLG89bi5uKHIpLGE9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiKSxpPW4ubihhKSgpKG8oKSk7aS5wdXNoKFtlLmlkLGAudG9vbHRpcC13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbn1cblxuLnRvb2x0aXAtYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnRvb2x0aXAtYXJyb3ctLXRvcCB7XG4gIGJvcmRlci13aWR0aDogdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KSB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDBcbiAgICB2YXIoLS1hcnJvdy1zaXplLCA2cHgpO1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbn1cblxuLnRvb2x0aXAtYXJyb3ctLWJvdHRvbSB7XG4gIGJvcmRlci13aWR0aDogMCB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIHZhcigtLWFycm93LXNpemUsIDZweClcbiAgICB2YXIoLS1hcnJvdy1zaXplLCA2cHgpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xuICB0b3A6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG59XG5cbi50b29sdGlwLWFycm93LS1sZWZ0IHtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCk7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xuICByaWdodDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuXG4udG9vbHRpcC1hcnJvdy0tcmlnaHQge1xuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCkgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCkgMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xufVxuXG4udG9vbHRpcC1wb3NpdGlvbmVyIHtcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jc3NcIl0sbmFtZXM6W10sbWFwcGluZ3M6XCJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsNEJBQTRCO0VBQzVCLHdDQUF3QztBQUMxQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsU0FBUztFQUNULG1CQUFtQjtFQUNuQixvQ0FBb0M7RUFDcEMseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0U7MEJBQ3dCO0VBQ3hCLHdDQUF3QztFQUN4QyxTQUFTO0VBQ1QsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0U7MEJBQ3dCO0VBQ3hCLDJDQUEyQztFQUMzQyxNQUFNO0VBQ04sNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0U7MEJBQ3dCO0VBQ3hCLHlDQUF5QztFQUN6QyxRQUFRO0VBQ1IsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0U7NEJBQzBCO0VBQzFCLDBDQUEwQztFQUMxQyxPQUFPO0VBQ1AsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCXCIsc291cmNlc0NvbnRlbnQ6W1wiLnRvb2x0aXAtd3JhcHBlciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuXFxuLnRvb2x0aXAge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZzogNnB4IDEycHg7XFxuICBib3JkZXItcmFkaXVzOiA4cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBsaW5lLWhlaWdodDogMS40O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG59XFxuXFxuLnRvb2x0aXAtYXJyb3cge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpO1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuXFxuLnRvb2x0aXAtYXJyb3ctLXRvcCB7XFxuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCkgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KSAwXFxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCk7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgYm90dG9tOiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdy0tYm90dG9tIHtcXG4gIGJvcmRlci13aWR0aDogMCB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIHZhcigtLWFycm93LXNpemUsIDZweClcXG4gICAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KTtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICB0b3A6IDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdy0tbGVmdCB7XFxuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCkgMCB2YXIoLS1hcnJvdy1zaXplLCA2cHgpXFxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCk7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIHJpZ2h0OiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdy0tcmlnaHQge1xcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIHZhcigtLWFycm93LXNpemUsIDZweClcXG4gICAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KSAwO1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgbGVmdDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxufVxcblxcbi50b29sdGlwLXBvc2l0aW9uZXIge1xcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2dsb2JhbC5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9PmZ9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSksbD1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L25vcm1hbGl6ZS5jc3NcIikscz1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3N0eWxlcy9kZWZhdWx0LXRoZW1lLmNzc1wiKSxjPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvc3R5bGVzL2RhcmstdGhlbWUuY3NzXCIpLHU9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9zdHlsZXMvY29sb3JzLmNzc1wiKSxkPWkoKShvKCkpO2QuaShsLlopLGQuaShzLlopLGQuaShjLlopLGQuaSh1LlopLGQucHVzaChbZS5pZCxgLyogZGV2dG9vbCBnbG9iYWwgY3NzIHZhcmlhYmxlcyAqL1xuOmhvc3Qge1xuICAvKiB2YXJpYWJsZXMgKi9cbiAgLS10b3Atei1pbmRleDogMjE0NzQ4MzY0Nztcbn1cblxuLyogZ2xvYmFsIHN0eWxlcyAqL1xuKiB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG4vKiBnbG9iYWwgcmVzZXQgZm9yIGRyYWdnYWJsZSBjb250ZW50IHNjcm9sbGJhciBzdHlsZXMgKi9cbltkYXRhLW5leHRqcy1zY3JvbGxhYmxlLWNvbnRlbnRdLFxuW2RhdGEtbmV4dGpzLXNjcm9sbGFibGUtY29udGVudF0gKiB7XG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxcmVtIDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMXJlbSAxcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNTAwKTtcbiAgfVxufVxuXG4vKiBQbGFjZSBvdmVyZmxvdzogaGlkZGVuIG9uIHRoaXMgc28gd2UgY2FuIGJyZWFrIG91dCBmcm9tIFtkYXRhLW5leHRqcy1kaWFsb2ddICovXG5bZGF0YS1uZXh0anMtc2Nyb2xsYWJsZS1jb250ZW50XSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2dsb2JhbC5jc3NcIl0sbmFtZXM6W10sbWFwcGluZ3M6XCJBQUtBLGlDQUFpQztBQUNqQztFQUNFLGNBQWM7RUFDZCx5QkFBeUI7QUFDM0I7O0FBRUEsa0JBQWtCO0FBQ2xCO0VBQ0UsbUNBQW1DO0FBQ3JDOztBQUVBLHdEQUF3RDtBQUN4RDs7RUFFRTtJQUNFLFVBQVU7SUFDVixXQUFXO0lBQ1gsNEJBQTRCO0lBQzVCLG1CQUFtQjtFQUNyQjs7RUFFQTtJQUNFLGFBQWE7RUFDZjs7RUFFQTtJQUNFLDRCQUE0QjtJQUM1Qiw2Q0FBNkM7RUFDL0M7O0VBRUE7SUFDRSxtQkFBbUI7SUFDbkIsdUNBQXVDO0VBQ3pDO0FBQ0Y7O0FBRUEsaUZBQWlGO0FBQ2pGO0VBQ0UsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtBQUN4QlwiLHNvdXJjZXNDb250ZW50OltcIkBpbXBvcnQgJy4vbm9ybWFsaXplLmNzcyc7XFxuQGltcG9ydCAnLi9zdHlsZXMvZGVmYXVsdC10aGVtZS5jc3MnO1xcbkBpbXBvcnQgJy4vc3R5bGVzL2RhcmstdGhlbWUuY3NzJztcXG5AaW1wb3J0ICcuL3N0eWxlcy9jb2xvcnMuY3NzJztcXG5cXG4vKiBkZXZ0b29sIGdsb2JhbCBjc3MgdmFyaWFibGVzICovXFxuOmhvc3Qge1xcbiAgLyogdmFyaWFibGVzICovXFxuICAtLXRvcC16LWluZGV4OiAyMTQ3NDgzNjQ3O1xcbn1cXG5cXG4vKiBnbG9iYWwgc3R5bGVzICovXFxuKiB7XFxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG59XFxuXFxuLyogZ2xvYmFsIHJlc2V0IGZvciBkcmFnZ2FibGUgY29udGVudCBzY3JvbGxiYXIgc3R5bGVzICovXFxuW2RhdGEtbmV4dGpzLXNjcm9sbGFibGUtY29udGVudF0sXFxuW2RhdGEtbmV4dGpzLXNjcm9sbGFibGUtY29udGVudF0gKiB7XFxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XFxuICAgIHdpZHRoOiA2cHg7XFxuICAgIGhlaWdodDogNnB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMXJlbSAxcmVtO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgfVxcblxcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG5cXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcXG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDFyZW0gMXJlbTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgfVxcblxcbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xcbiAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XFxuICB9XFxufVxcblxcbi8qIFBsYWNlIG92ZXJmbG93OiBoaWRkZW4gb24gdGhpcyBzbyB3ZSBjYW4gYnJlYWsgb3V0IGZyb20gW2RhdGEtbmV4dGpzLWRpYWxvZ10gKi9cXG5bZGF0YS1uZXh0anMtc2Nyb2xsYWJsZS1jb250ZW50XSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG59XFxuXCJdLHNvdXJjZVJvb3Q6XCJcIn1dKTtsZXQgZj1kfSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9tZW51L3BhbmVsLXJvdXRlci5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLyogUGFuZWwgY29udGVudCBwYWRkaW5nIHN0eWxlcyAqL1xuLnBhbmVsLWNvbnRlbnQge1xuICBwYWRkaW5nOiAxNnB4O1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBVc2VyIHByZWZlcmVuY2VzIHdyYXBwZXIgc3R5bGVzICovXG4udXNlci1wcmVmZXJlbmNlcy13cmFwcGVyIHtcbiAgcGFkZGluZzogMjBweDtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogUGFuZWwgcm91dGUgYmFzZSBzdHlsZXMgKi9cbi5wYW5lbC1yb3V0ZSB7XG4gIG9wYWNpdHk6IHZhcigtLXBhbmVsLW9wYWNpdHkpO1xuICB0cmFuc2l0aW9uOiB2YXIoLS1wYW5lbC10cmFuc2l0aW9uKTtcbn1cbmAsXCJcIix7dmVyc2lvbjozLHNvdXJjZXM6W1wid2VicGFjazovLy4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvbWVudS9wYW5lbC1yb3V0ZXIuY3NzXCJdLG5hbWVzOltdLG1hcHBpbmdzOlwiQUFBQSxpQ0FBaUM7QUFDakM7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjs7QUFFQSxvQ0FBb0M7QUFDcEM7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjs7QUFFQSw0QkFBNEI7QUFDNUI7RUFDRSw2QkFBNkI7RUFDN0IsbUNBQW1DO0FBQ3JDXCIsc291cmNlc0NvbnRlbnQ6W1wiLyogUGFuZWwgY29udGVudCBwYWRkaW5nIHN0eWxlcyAqL1xcbi5wYW5lbC1jb250ZW50IHtcXG4gIHBhZGRpbmc6IDE2cHg7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuXFxuLyogVXNlciBwcmVmZXJlbmNlcyB3cmFwcGVyIHN0eWxlcyAqL1xcbi51c2VyLXByZWZlcmVuY2VzLXdyYXBwZXIge1xcbiAgcGFkZGluZzogMjBweDtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG5cXG4vKiBQYW5lbCByb3V0ZSBiYXNlIHN0eWxlcyAqL1xcbi5wYW5lbC1yb3V0ZSB7XFxuICBvcGFjaXR5OiB2YXIoLS1wYW5lbC1vcGFjaXR5KTtcXG4gIHRyYW5zaXRpb246IHZhcigtLXBhbmVsLXRyYW5zaXRpb24pO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L25vcm1hbGl6ZS5jc3NcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7bi5kKHQse1o6KCk9Pmx9KTt2YXIgcj1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPW4ubihyKSxhPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgOmhvc3Qge1xuICBhbGw6IGluaXRpYWw7XG5cbiAgLyogdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSBpcyBub3QgcmVzZXQgYnkgJ2FsbCcgKi9cbiAgZGlyZWN0aW9uOiBsdHI7XG59XG5cbi8qIVxuICogQm9vdHN0cmFwIFJlYm9vdCB2NC40LjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFRoZSBCb290c3RyYXAgQXV0aG9yc1xuICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICogRm9ya2VkIGZyb20gTm9ybWFsaXplLmNzcywgbGljZW5zZWQgTUlUIChodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQpXG4gKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbjpob3N0IHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sXG4gICAgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsICdOb3RvIFNhbnMnLCBzYW5zLXNlcmlmLCAnQXBwbGUgQ29sb3IgRW1vamknLFxuICAgICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLCAnTm90byBDb2xvciBFbW9qaSc7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZvbnQpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG46aG9zdDpub3QoYnV0dG9uKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cblt0YWJpbmRleD0nLTEnXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xufVxuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbnAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAwO1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xufVxuXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxub2wsXG51bCxcbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxub2wgb2wsXG51bCB1bCxcbm9sIHVsLFxudWwgb2wge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbmRkIHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG59XG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG5zdWIsXG5zdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG5hIHtcbiAgY29sb3I6ICMwMDdiZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbmE6aG92ZXIge1xuICBjb2xvcjogIzAwNTZiMztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbmE6bm90KFtocmVmXSkge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOm5vdChbaHJlZl0pOmhvdmVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxucHJlLFxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJyxcbiAgICAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5wcmUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwIDAgMTZweDtcbn1cblxuaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG5zdmcge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogMTJweDtcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIGNvbG9yOiAjNmM3NTdkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbn1cblxudGgge1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggZG90dGVkO1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbmJ1dHRvbjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG5vcHRncm91cCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbnNlbGVjdCB7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuXG5idXR0b24sXG5bdHlwZT0nYnV0dG9uJ10sXG5bdHlwZT0ncmVzZXQnXSxcblt0eXBlPSdzdWJtaXQnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5idXR0b246bm90KDpkaXNhYmxlZCksXG5bdHlwZT0nYnV0dG9uJ106bm90KDpkaXNhYmxlZCksXG5bdHlwZT0ncmVzZXQnXTpub3QoOmRpc2FibGVkKSxcblt0eXBlPSdzdWJtaXQnXTpub3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9J3JhZGlvJ10sXG5pbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMDtcbn1cblxuaW5wdXRbdHlwZT0nZGF0ZSddLFxuaW5wdXRbdHlwZT0ndGltZSddLFxuaW5wdXRbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSxcbmlucHV0W3R5cGU9J21vbnRoJ10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGxpc3Rib3g7XG59XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmZpZWxkc2V0IHtcbiAgbWluLXdpZHRoOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbn1cblxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPSdzZWFyY2gnXSB7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5vdXRwdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbmAsXCJcIix7dmVyc2lvbjozLHNvdXJjZXM6W1wid2VicGFjazovLy4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvbm9ybWFsaXplLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxZQUFZOztFQUVaLGlEQUFpRDtFQUNqRCxjQUFjO0FBQ2hCOztBQUVBOzs7Ozs7RUFNRTtBQUNGOzs7RUFHRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIsaUJBQWlCO0VBQ2pCLDhCQUE4QjtFQUM5Qiw2Q0FBNkM7QUFDL0M7O0FBRUE7Ozs7Ozs7Ozs7RUFVRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsU0FBUztFQUNUOzsyREFFeUQ7RUFDekQsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsd0JBQXdCO0VBQ3hCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2QixTQUFTO0VBQ1QsaUJBQWlCO0FBQ25COztBQUVBOzs7Ozs7RUFNRSxhQUFhO0VBQ2Isa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtBQUNyQjs7QUFFQTs7RUFFRSwwQkFBMEI7RUFDMUIseUNBQXlDO0VBQ3pDLGlDQUFpQztFQUNqQyxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLHNDQUFzQztFQUN0Qyw4QkFBOEI7QUFDaEM7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtBQUN0Qjs7QUFFQTs7O0VBR0UsYUFBYTtFQUNiLG1CQUFtQjtBQUNyQjs7QUFFQTs7OztFQUlFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBOztFQUVFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7O0VBRUUsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxxQkFBcUI7RUFDckIsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsY0FBYztFQUNkLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxjQUFjO0VBQ2QscUJBQXFCO0FBQ3ZCOztBQUVBOzs7O0VBSUU7NEJBQzBCO0VBQzFCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixvQkFBb0I7RUFDcEIsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsU0FBUztFQUNULGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLDBDQUEwQztBQUM1Qzs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTs7Ozs7RUFLRSxTQUFTO0VBQ1Qsb0JBQW9CO0VBQ3BCLGtCQUFrQjtFQUNsQixvQkFBb0I7QUFDdEI7O0FBRUE7O0VBRUUsaUJBQWlCO0FBQ25COztBQUVBOztFQUVFLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTs7OztFQUlFLDBCQUEwQjtBQUM1Qjs7QUFFQTs7OztFQUlFLGVBQWU7QUFDakI7O0FBRUE7Ozs7RUFJRSxVQUFVO0VBQ1Ysa0JBQWtCO0FBQ3BCOztBQUVBOztFQUVFLHNCQUFzQjtFQUN0QixVQUFVO0FBQ1o7O0FBRUE7Ozs7RUFJRSwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsWUFBWTtFQUNaLFVBQVU7RUFDVixTQUFTO0VBQ1QsU0FBUztBQUNYOztBQUVBO0VBQ0UsY0FBYztFQUNkLFdBQVc7RUFDWCxlQUFlO0VBQ2YsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2Ysb0JBQW9CO0VBQ3BCLGNBQWM7RUFDZCxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7O0VBRUUsWUFBWTtBQUNkOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLGFBQWE7RUFDYiwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQlwiLHNvdXJjZXNDb250ZW50OltcIjpob3N0IHtcXG4gIGFsbDogaW5pdGlhbDtcXG5cXG4gIC8qIHRoZSBkaXJlY3Rpb24gcHJvcGVydHkgaXMgbm90IHJlc2V0IGJ5ICdhbGwnICovXFxuICBkaXJlY3Rpb246IGx0cjtcXG59XFxuXFxuLyohXFxuICogQm9vdHN0cmFwIFJlYm9vdCB2NC40LjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXFxuICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUaGUgQm9vdHN0cmFwIEF1dGhvcnNcXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFR3aXR0ZXIsIEluYy5cXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxcbiAqIEZvcmtlZCBmcm9tIE5vcm1hbGl6ZS5jc3MsIGxpY2Vuc2VkIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcy9ibG9iL21hc3Rlci9MSUNFTlNFLm1kKVxcbiAqL1xcbiosXFxuKjo6YmVmb3JlLFxcbio6OmFmdGVyIHtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcblxcbjpob3N0IHtcXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XFxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XFxufVxcblxcbmFydGljbGUsXFxuYXNpZGUsXFxuZmlnY2FwdGlvbixcXG5maWd1cmUsXFxuZm9vdGVyLFxcbmhlYWRlcixcXG5oZ3JvdXAsXFxubWFpbixcXG5uYXYsXFxuc2VjdGlvbiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuXFxuOmhvc3Qge1xcbiAgbWFyZ2luOiAwO1xcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLFxcbiAgICAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgJ05vdG8gU2FucycsIHNhbnMtc2VyaWYsICdBcHBsZSBDb2xvciBFbW9qaScsXFxuICAgICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLCAnTm90byBDb2xvciBFbW9qaSc7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mb250KTtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcblxcbjpob3N0Om5vdChidXR0b24pIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxufVxcblxcblt0YWJpbmRleD0nLTEnXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcXG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcXG59XFxuXFxuaHIge1xcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICBoZWlnaHQ6IDA7XFxuICBvdmVyZmxvdzogdmlzaWJsZTtcXG59XFxuXFxuaDEsXFxuaDIsXFxuaDMsXFxuaDQsXFxuaDUsXFxuaDYge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuXFxucCB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuXFxuYWJiclt0aXRsZV0sXFxuYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgY3Vyc29yOiBoZWxwO1xcbiAgYm9yZGVyLWJvdHRvbTogMDtcXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xcbiAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xcbn1cXG5cXG5hZGRyZXNzIHtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG59XFxuXFxub2wsXFxudWwsXFxuZGwge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XFxufVxcblxcbm9sIG9sLFxcbnVsIHVsLFxcbm9sIHVsLFxcbnVsIG9sIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxufVxcblxcbmR0IHtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcblxcbmRkIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG5cXG5ibG9ja3F1b3RlIHtcXG4gIG1hcmdpbjogMCAwIDE2cHg7XFxufVxcblxcbmIsXFxuc3Ryb25nIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XFxufVxcblxcbnNtYWxsIHtcXG4gIGZvbnQtc2l6ZTogODAlO1xcbn1cXG5cXG5zdWIsXFxuc3VwIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGZvbnQtc2l6ZTogNzUlO1xcbiAgbGluZS1oZWlnaHQ6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxufVxcblxcbnN1YiB7XFxuICBib3R0b206IC0wLjI1ZW07XFxufVxcblxcbnN1cCB7XFxuICB0b3A6IC0wLjVlbTtcXG59XFxuXFxuYSB7XFxuICBjb2xvcjogIzAwN2JmZjtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG5hOmhvdmVyIHtcXG4gIGNvbG9yOiAjMDA1NmIzO1xcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxufVxcblxcbmE6bm90KFtocmVmXSkge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxufVxcblxcbmE6bm90KFtocmVmXSk6aG92ZXIge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxufVxcblxcbnByZSxcXG5jb2RlLFxcbmtiZCxcXG5zYW1wIHtcXG4gIGZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLFxcbiAgICAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XFxuICBmb250LXNpemU6IDFlbTtcXG59XFxuXFxucHJlIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcblxcbmZpZ3VyZSB7XFxuICBtYXJnaW46IDAgMCAxNnB4O1xcbn1cXG5cXG5pbWcge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcXG59XFxuXFxuc3ZnIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG5cXG50YWJsZSB7XFxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xcbn1cXG5cXG5jYXB0aW9uIHtcXG4gIHBhZGRpbmctdG9wOiAxMnB4O1xcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XFxuICBjb2xvcjogIzZjNzU3ZDtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcXG59XFxuXFxudGgge1xcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcXG59XFxuXFxubGFiZWwge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG5cXG5idXR0b24ge1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG4gIGJvcmRlcjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW46IDA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgYXBwZWFyYW5jZTogbm9uZTtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuXFxuYnV0dG9uOmZvY3VzIHtcXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQ7XFxuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XFxufVxcblxcbmJ1dHRvbjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxufVxcblxcbmlucHV0LFxcbmJ1dHRvbixcXG5zZWxlY3QsXFxub3B0Z3JvdXAsXFxudGV4dGFyZWEge1xcbiAgbWFyZ2luOiAwO1xcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG59XFxuXFxuYnV0dG9uLFxcbmlucHV0IHtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbn1cXG5cXG5idXR0b24sXFxuc2VsZWN0IHtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbn1cXG5cXG5zZWxlY3Qge1xcbiAgd29yZC13cmFwOiBub3JtYWw7XFxufVxcblxcbmJ1dHRvbixcXG5bdHlwZT0nYnV0dG9uJ10sXFxuW3R5cGU9J3Jlc2V0J10sXFxuW3R5cGU9J3N1Ym1pdCddIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbn1cXG5cXG5idXR0b246bm90KDpkaXNhYmxlZCksXFxuW3R5cGU9J2J1dHRvbiddOm5vdCg6ZGlzYWJsZWQpLFxcblt0eXBlPSdyZXNldCddOm5vdCg6ZGlzYWJsZWQpLFxcblt0eXBlPSdzdWJtaXQnXTpub3QoOmRpc2FibGVkKSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcXG5bdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsXFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXFxuW3R5cGU9J3N1Ym1pdCddOjotbW96LWZvY3VzLWlubmVyIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXItc3R5bGU6IG5vbmU7XFxufVxcblxcbmlucHV0W3R5cGU9J3JhZGlvJ10sXFxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuaW5wdXRbdHlwZT0nZGF0ZSddLFxcbmlucHV0W3R5cGU9J3RpbWUnXSxcXG5pbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxcbmlucHV0W3R5cGU9J21vbnRoJ10ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94O1xcbn1cXG5cXG50ZXh0YXJlYSB7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIHJlc2l6ZTogdmVydGljYWw7XFxufVxcblxcbmZpZWxkc2V0IHtcXG4gIG1pbi13aWR0aDogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW46IDA7XFxuICBib3JkZXI6IDA7XFxufVxcblxcbmxlZ2VuZCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogMDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbn1cXG5cXG5wcm9ncmVzcyB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxufVxcblxcblt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG5cXG5bdHlwZT0nc2VhcmNoJ10ge1xcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcblxcblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcblxcbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xcbiAgZm9udDogaW5oZXJpdDtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbn1cXG5cXG5vdXRwdXQge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG5cXG5zdW1tYXJ5IHtcXG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxudGVtcGxhdGUge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuXFxuW2hpZGRlbl0ge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3BhbmVsL2R5bmFtaWMtcGFuZWwuY3NzXCI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtaOigpPT5sfSk7dmFyIHI9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIiksbz1uLm4ociksYT1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCIpLGk9bi5uKGEpKCkobygpKTtpLnB1c2goW2UuaWQsYC8qIFBhbmVsIGNvbnRhaW5lciBiYXNlIHN0eWxlcyB3aXRoIGR5bmFtaWMgcG9zaXRpb25pbmcgYW5kIHNpemluZyAqL1xuLmR5bmFtaWMtcGFuZWwtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAyMTQ3NDgzNjQ2O1xuICBvdXRsaW5lOiBub25lO1xuICB0b3A6IHZhcigtLXBhbmVsLXRvcCwgYXV0byk7XG4gIGJvdHRvbTogdmFyKC0tcGFuZWwtYm90dG9tLCBhdXRvKTtcbiAgbGVmdDogdmFyKC0tcGFuZWwtbGVmdCwgYXV0byk7XG4gIHJpZ2h0OiB2YXIoLS1wYW5lbC1yaWdodCwgYXV0byk7XG4gIHdpZHRoOiB2YXIoLS1wYW5lbC13aWR0aCk7XG4gIGhlaWdodDogdmFyKC0tcGFuZWwtaGVpZ2h0KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1wYW5lbC1taW4td2lkdGgpO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1wYW5lbC1taW4taGVpZ2h0KTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1wYW5lbC1tYXgtd2lkdGgpO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1wYW5lbC1tYXgtaGVpZ2h0KTtcbn1cblxuLyogUGFuZWwgY29udGVudCBjb250YWluZXIgc3R5bGVzICovXG4ucGFuZWwtY29udGVudC1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLyogRHJhZ2dhYmxlIGNvbnRlbnQgYXJlYSBzdHlsZXMgKi9cbi5kcmFnZ2FibGUtY29udGVudCB7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9wYW5lbC9keW5hbWljLXBhbmVsLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUEsb0VBQW9FO0FBQ3BFO0VBQ0UsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQyw2QkFBNkI7RUFDN0IsK0JBQStCO0VBQy9CLHlCQUF5QjtFQUN6QiwyQkFBMkI7RUFDM0IsaUNBQWlDO0VBQ2pDLG1DQUFtQztFQUNuQyxpQ0FBaUM7RUFDakMsbUNBQW1DO0FBQ3JDOztBQUVBLG1DQUFtQztBQUNuQztFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtFQUNaLDZDQUE2QztFQUM3QyxnQ0FBZ0M7RUFDaEMsdUNBQXVDO0VBQ3ZDLGFBQWE7RUFDYixzQkFBc0I7QUFDeEI7O0FBRUEsa0NBQWtDO0FBQ2xDO0VBQ0UsT0FBTztFQUNQLGNBQWM7QUFDaEJcIixzb3VyY2VzQ29udGVudDpbXCIvKiBQYW5lbCBjb250YWluZXIgYmFzZSBzdHlsZXMgd2l0aCBkeW5hbWljIHBvc2l0aW9uaW5nIGFuZCBzaXppbmcgKi9cXG4uZHluYW1pYy1wYW5lbC1jb250YWluZXIge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgei1pbmRleDogMjE0NzQ4MzY0NjtcXG4gIG91dGxpbmU6IG5vbmU7XFxuICB0b3A6IHZhcigtLXBhbmVsLXRvcCwgYXV0byk7XFxuICBib3R0b206IHZhcigtLXBhbmVsLWJvdHRvbSwgYXV0byk7XFxuICBsZWZ0OiB2YXIoLS1wYW5lbC1sZWZ0LCBhdXRvKTtcXG4gIHJpZ2h0OiB2YXIoLS1wYW5lbC1yaWdodCwgYXV0byk7XFxuICB3aWR0aDogdmFyKC0tcGFuZWwtd2lkdGgpO1xcbiAgaGVpZ2h0OiB2YXIoLS1wYW5lbC1oZWlnaHQpO1xcbiAgbWluLXdpZHRoOiB2YXIoLS1wYW5lbC1taW4td2lkdGgpO1xcbiAgbWluLWhlaWdodDogdmFyKC0tcGFuZWwtbWluLWhlaWdodCk7XFxuICBtYXgtd2lkdGg6IHZhcigtLXBhbmVsLW1heC13aWR0aCk7XFxuICBtYXgtaGVpZ2h0OiB2YXIoLS1wYW5lbC1tYXgtaGVpZ2h0KTtcXG59XFxuXFxuLyogUGFuZWwgY29udGVudCBjb250YWluZXIgc3R5bGVzICovXFxuLnBhbmVsLWNvbnRlbnQtY29udGFpbmVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxuXFxuLyogRHJhZ2dhYmxlIGNvbnRlbnQgYXJlYSBzdHlsZXMgKi9cXG4uZHJhZ2dhYmxlLWNvbnRlbnQge1xcbiAgZmxleDogMTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3N0eWxlcy9jb2xvcnMuY3NzXCI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtaOigpPT5sfSk7dmFyIHI9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIiksbz1uLm4ociksYT1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCIpLGk9bi5uKGEpKCkobygpKTtpLnB1c2goW2UuaWQsYDpob3N0IHtcbiAgLyogXG4gICAqIENBVVRJT046IFRISVMgSVMgQSBXT1JLQVJPVU5EIVxuICAgKiBGb3Igbm93LCB3ZSB1c2UgQGJhYmVsL2NvZGUtZnJhbWUgdG8gcGFyc2UgdGhlIGNvZGUgZnJhbWUgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBvcHRpb24gdG8gY2hhbmdlIHRoZSBjb2xvci5cbiAgICogeC1yZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJlbC9iYWJlbC9ibG9iL2VmYTUyMzI0ZmY4MzViNzk0YzQ4MDgwZjE0ODc3YjZjYWYzMmNkMTUvcGFja2FnZXMvYmFiZWwtY29kZS1mcmFtZS9zcmMvZGVmcy50cyNMNDAtTDU0XG4gICAqIFNvLCB3ZSBkbyBhIHdvcmthcm91bmQgbWFwcGluZyB0byBjaGFuZ2UgdGhlIGNvbG9yIG1hdGNoaW5nIHRoZSB0aGVtZS5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGluIEBiYWJlbC9jb2RlLWZyYW1lLCB0aGUgXCJrZXl3b3JkXCIgaXMgbWFwcGVkIHRvIEFOU0kgXCJjeWFuXCIuXG4gICAqIFdlIHdhbnQgdGhlIFwia2V5d29yZFwiIHRvIHVzZSB0aGUgXCJzeW50YXgta2V5d29yZFwiIGNvbG9yIGluIHRoZSB0aGVtZS5cbiAgICogU28sIHdlIG1hcCB0aGUgXCJjeWFuXCIgdG8gdGhlIFwic3ludGF4LWtleXdvcmRcIiBpbiB0aGUgdGhlbWUuXG4gICAqL1xuICAvKiBjeWFuOiBrZXl3b3JkICovXG4gIC0tY29sb3ItYW5zaS1jeWFuOiB2YXIoLS1jb2xvci1zeW50YXgta2V5d29yZCk7XG4gIC8qIHllbGxvdzogY2FwaXRhbGl6ZWQsIGpzeElkZW50aWZpZXIsIHB1bmN0dWF0aW9uICovXG4gIC0tY29sb3ItYW5zaS15ZWxsb3c6IHZhcigtLWNvbG9yLXN5bnRheC1mdW5jdGlvbik7XG4gIC8qIG1hZ2VudGE6IG51bWJlciwgcmVnZXggKi9cbiAgLS1jb2xvci1hbnNpLW1hZ2VudGE6IHZhcigtLWNvbG9yLXN5bnRheC1rZXl3b3JkKTtcbiAgLyogZ3JlZW46IHN0cmluZyAqL1xuICAtLWNvbG9yLWFuc2ktZ3JlZW46IHZhcigtLWNvbG9yLXN5bnRheC1zdHJpbmcpO1xuICAvKiBncmF5IChicmlnaHQgYmxhY2spOiBjb21tZW50LCBndXR0ZXIgKi9cbiAgLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjazogdmFyKC0tY29sb3Itc3ludGF4LWNvbW1lbnQpO1xuXG4gIC8qIEFuc2kgLSBUZW1wb3JhcnkgKi9cbiAgLS1jb2xvci1hbnNpLXNlbGVjdGlvbjogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0zMDApO1xuICAtLWNvbG9yLWFuc2ktYmc6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcbiAgLS1jb2xvci1hbnNpLWZnOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xuXG4gIC0tY29sb3ItYW5zaS13aGl0ZTogdmFyKC0tY29sb3ItZ3JheS03MDApO1xuICAtLWNvbG9yLWFuc2ktYmxhY2s6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcbiAgLS1jb2xvci1hbnNpLWJsdWU6IHZhcigtLWNvbG9yLWJsdWUtNzAwKTtcbiAgLS1jb2xvci1hbnNpLXJlZDogdmFyKC0tY29sb3ItcmVkLTcwMCk7XG4gIC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGU6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XG4gIC0tY29sb3ItYW5zaS1icmlnaHQtYmx1ZTogdmFyKC0tY29sb3ItYmx1ZS04MDApO1xuICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWN5YW46IHZhcigtLWNvbG9yLWJsdWUtODAwKTtcbiAgLS1jb2xvci1hbnNpLWJyaWdodC1ncmVlbjogdmFyKC0tY29sb3ItZ3JlZW4tODAwKTtcbiAgLS1jb2xvci1hbnNpLWJyaWdodC1tYWdlbnRhOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XG4gIC0tY29sb3ItYW5zaS1icmlnaHQtcmVkOiB2YXIoLS1jb2xvci1yZWQtODAwKTtcbiAgLS1jb2xvci1hbnNpLWJyaWdodC15ZWxsb3c6IHZhcigtLWNvbG9yLWFtYmVyLTkwMCk7XG5cbiAgLyogQmFja2dyb3VuZCBMaWdodCAqL1xuICAtLWNvbG9yLWJhY2tncm91bmQtMTAwOiAjZmZmZmZmO1xuICAtLWNvbG9yLWJhY2tncm91bmQtMjAwOiAjZmFmYWZhO1xuXG4gIC8qIFN5bnRheCBMaWdodCAqL1xuICAtLWNvbG9yLXN5bnRheC1jb21tZW50OiAjNTQ1NDU0O1xuICAtLWNvbG9yLXN5bnRheC1jb25zdGFudDogIzE3MTcxNztcbiAgLS1jb2xvci1zeW50YXgtZnVuY3Rpb246ICMwMDU0YWQ7XG4gIC0tY29sb3Itc3ludGF4LWtleXdvcmQ6ICNhNTE4NTA7XG4gIC0tY29sb3Itc3ludGF4LWxpbms6ICMwNjYwNTY7XG4gIC0tY29sb3Itc3ludGF4LXBhcmFtZXRlcjogIzhmM2UwMDtcbiAgLS1jb2xvci1zeW50YXgtcHVuY3R1YXRpb246ICMxNzE3MTc7XG4gIC0tY29sb3Itc3ludGF4LXN0cmluZzogIzAzNjE1NztcbiAgLS1jb2xvci1zeW50YXgtc3RyaW5nLWV4cHJlc3Npb246ICMwNjYwNTY7XG5cbiAgLyogR3JheSBTY2FsZSBMaWdodCAqL1xuICAtLWNvbG9yLWdyYXktMTAwOiAjZjJmMmYyO1xuICAtLWNvbG9yLWdyYXktMjAwOiAjZWJlYmViO1xuICAtLWNvbG9yLWdyYXktMzAwOiAjZTZlNmU2O1xuICAtLWNvbG9yLWdyYXktNDAwOiAjZWFlYWVhO1xuICAtLWNvbG9yLWdyYXktNTAwOiAjYzljOWM5O1xuICAtLWNvbG9yLWdyYXktNjAwOiAjYThhOGE4O1xuICAtLWNvbG9yLWdyYXktNzAwOiAjOGY4ZjhmO1xuICAtLWNvbG9yLWdyYXktODAwOiAjN2Q3ZDdkO1xuICAtLWNvbG9yLWdyYXktOTAwOiAjNjY2NjY2O1xuICAtLWNvbG9yLWdyYXktMTAwMDogIzE3MTcxNztcblxuICAvKiBHcmF5IEFscGhhIFNjYWxlIExpZ2h0ICovXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0xMDA6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS0yMDA6IHJnYmEoMCwgMCwgMCwgMC4wODEpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtMzAwOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS00MDA6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS01MDA6IHJnYmEoMCwgMCwgMCwgMC4yMSk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS02MDA6IHJnYmEoMCwgMCwgMCwgMC4zNCk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS03MDA6IHJnYmEoMCwgMCwgMCwgMC40NCk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS04MDA6IHJnYmEoMCwgMCwgMCwgMC41MSk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS05MDA6IHJnYmEoMCwgMCwgMCwgMC42MDUpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtMTAwMDogcmdiYSgwLCAwLCAwLCAwLjkxKTtcblxuICAvKiBCbHVlIFNjYWxlIExpZ2h0ICovXG4gIC0tY29sb3ItYmx1ZS0xMDA6ICNmMGY3ZmY7XG4gIC0tY29sb3ItYmx1ZS0yMDA6ICNlZGY2ZmY7XG4gIC0tY29sb3ItYmx1ZS0zMDA6ICNlMWYwZmY7XG4gIC0tY29sb3ItYmx1ZS00MDA6ICNjZGU3ZmY7XG4gIC0tY29sb3ItYmx1ZS01MDA6ICM5OWNlZmY7XG4gIC0tY29sb3ItYmx1ZS02MDA6ICM1MmFlZmY7XG4gIC0tY29sb3ItYmx1ZS03MDA6ICMwMDcwZjM7XG4gIC0tY29sb3ItYmx1ZS04MDA6ICMwMDYwZDE7XG4gIC0tY29sb3ItYmx1ZS05MDA6ICMwMDY3ZDY7XG4gIC0tY29sb3ItYmx1ZS0xMDAwOiAjMDAyNWFkO1xuXG4gIC8qIFJlZCBTY2FsZSBMaWdodCAqL1xuICAtLWNvbG9yLXJlZC0xMDA6ICNmZmYwZjA7XG4gIC0tY29sb3ItcmVkLTIwMDogI2ZmZWJlYjtcbiAgLS1jb2xvci1yZWQtMzAwOiAjZmZlNWU1O1xuICAtLWNvbG9yLXJlZC00MDA6ICNmZGQ4ZDg7XG4gIC0tY29sb3ItcmVkLTUwMDogI2Y4YmFiYTtcbiAgLS1jb2xvci1yZWQtNjAwOiAjZjg3Mjc0O1xuICAtLWNvbG9yLXJlZC03MDA6ICNlNTQ4NGQ7XG4gIC0tY29sb3ItcmVkLTgwMDogI2RhMzAzNjtcbiAgLS1jb2xvci1yZWQtOTAwOiAjY2EyYTMwO1xuICAtLWNvbG9yLXJlZC0xMDAwOiAjMzgxMzE2O1xuXG4gIC8qIEFtYmVyIFNjYWxlIExpZ2h0ICovXG4gIC0tY29sb3ItYW1iZXItMTAwOiAjZmZmNmU1O1xuICAtLWNvbG9yLWFtYmVyLTIwMDogI2ZmZjRkNTtcbiAgLS1jb2xvci1hbWJlci0zMDA6ICNmZWYwY2Q7XG4gIC0tY29sb3ItYW1iZXItNDAwOiAjZmZkZGJmO1xuICAtLWNvbG9yLWFtYmVyLTUwMDogI2ZmYzk2YjtcbiAgLS1jb2xvci1hbWJlci02MDA6ICNmNWIwNDc7XG4gIC0tY29sb3ItYW1iZXItNzAwOiAjZmZiMjI0O1xuICAtLWNvbG9yLWFtYmVyLTgwMDogI2ZmOTkwYTtcbiAgLS1jb2xvci1hbWJlci05MDA6ICNhMzUyMDA7XG4gIC0tY29sb3ItYW1iZXItMTAwMDogIzRlMjAwOTtcblxuICAvKiBHcmVlbiBTY2FsZSBMaWdodCAqL1xuICAtLWNvbG9yLWdyZWVuLTEwMDogI2VmZmJlZjtcbiAgLS1jb2xvci1ncmVlbi0yMDA6ICNlYWZhZWE7XG4gIC0tY29sb3ItZ3JlZW4tMzAwOiAjZGNmNmRjO1xuICAtLWNvbG9yLWdyZWVuLTQwMDogI2M4ZjFjOTtcbiAgLS1jb2xvci1ncmVlbi01MDA6ICM5OWU1OWY7XG4gIC0tY29sb3ItZ3JlZW4tNjAwOiAjNmNkYTc2O1xuICAtLWNvbG9yLWdyZWVuLTcwMDogIzQ2YTc1ODtcbiAgLS1jb2xvci1ncmVlbi04MDA6ICMzODhlNGE7XG4gIC0tY29sb3ItZ3JlZW4tOTAwOiAjMjk3YzNiO1xuICAtLWNvbG9yLWdyZWVuLTEwMDA6ICMxODMxMWU7XG5cbiAgLyogVHVyYm9wYWNrIExpZ2h0IC0gVGVtcG9yYXJ5ICovXG4gIC0tY29sb3ItdHVyYm9wYWNrLXRleHQtcmVkOiAjZmYxZTU2O1xuICAtLWNvbG9yLXR1cmJvcGFjay10ZXh0LWJsdWU6ICMwMDk2ZmY7XG4gIC0tY29sb3ItdHVyYm9wYWNrLWJvcmRlci1yZWQ6ICNmMGFkYmU7XG4gIC0tY29sb3ItdHVyYm9wYWNrLWJvcmRlci1ibHVlOiAjYWRjY2VhO1xuICAtLWNvbG9yLXR1cmJvcGFjay1iYWNrZ3JvdW5kLXJlZDogI2ZmZjdmOTtcbiAgLS1jb2xvci10dXJib3BhY2stYmFja2dyb3VuZC1ibHVlOiAjZjZmYmZmO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9zdHlsZXMvY29sb3JzLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRTs7Ozs7Ozs7O0lBU0U7RUFDRixrQkFBa0I7RUFDbEIsOENBQThDO0VBQzlDLG9EQUFvRDtFQUNwRCxpREFBaUQ7RUFDakQsMkJBQTJCO0VBQzNCLGlEQUFpRDtFQUNqRCxrQkFBa0I7RUFDbEIsOENBQThDO0VBQzlDLHlDQUF5QztFQUN6QyxzREFBc0Q7O0VBRXRELHFCQUFxQjtFQUNyQixtREFBbUQ7RUFDbkQsNENBQTRDO0VBQzVDLHVDQUF1Qzs7RUFFdkMseUNBQXlDO0VBQ3pDLHlDQUF5QztFQUN6Qyx3Q0FBd0M7RUFDeEMsc0NBQXNDO0VBQ3RDLGlEQUFpRDtFQUNqRCwrQ0FBK0M7RUFDL0MsK0NBQStDO0VBQy9DLGlEQUFpRDtFQUNqRCxrREFBa0Q7RUFDbEQsNkNBQTZDO0VBQzdDLGtEQUFrRDs7RUFFbEQscUJBQXFCO0VBQ3JCLCtCQUErQjtFQUMvQiwrQkFBK0I7O0VBRS9CLGlCQUFpQjtFQUNqQiwrQkFBK0I7RUFDL0IsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQywrQkFBK0I7RUFDL0IsNEJBQTRCO0VBQzVCLGlDQUFpQztFQUNqQyxtQ0FBbUM7RUFDbkMsOEJBQThCO0VBQzlCLHlDQUF5Qzs7RUFFekMscUJBQXFCO0VBQ3JCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLDBCQUEwQjs7RUFFMUIsMkJBQTJCO0VBQzNCLDJDQUEyQztFQUMzQyw0Q0FBNEM7RUFDNUMsMENBQTBDO0VBQzFDLDJDQUEyQztFQUMzQywyQ0FBMkM7RUFDM0MsMkNBQTJDO0VBQzNDLDJDQUEyQztFQUMzQywyQ0FBMkM7RUFDM0MsNENBQTRDO0VBQzVDLDRDQUE0Qzs7RUFFNUMscUJBQXFCO0VBQ3JCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLDBCQUEwQjs7RUFFMUIsb0JBQW9CO0VBQ3BCLHdCQUF3QjtFQUN4Qix3QkFBd0I7RUFDeEIsd0JBQXdCO0VBQ3hCLHdCQUF3QjtFQUN4Qix3QkFBd0I7RUFDeEIsd0JBQXdCO0VBQ3hCLHdCQUF3QjtFQUN4Qix3QkFBd0I7RUFDeEIsd0JBQXdCO0VBQ3hCLHlCQUF5Qjs7RUFFekIsc0JBQXNCO0VBQ3RCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDJCQUEyQjs7RUFFM0Isc0JBQXNCO0VBQ3RCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDJCQUEyQjs7RUFFM0IsZ0NBQWdDO0VBQ2hDLG1DQUFtQztFQUNuQyxvQ0FBb0M7RUFDcEMscUNBQXFDO0VBQ3JDLHNDQUFzQztFQUN0Qyx5Q0FBeUM7RUFDekMsMENBQTBDO0FBQzVDXCIsc291cmNlc0NvbnRlbnQ6Wyc6aG9zdCB7XFxuICAvKiBcXG4gICAqIENBVVRJT046IFRISVMgSVMgQSBXT1JLQVJPVU5EIVxcbiAgICogRm9yIG5vdywgd2UgdXNlIEBiYWJlbC9jb2RlLWZyYW1lIHRvIHBhcnNlIHRoZSBjb2RlIGZyYW1lIHdoaWNoIGRvZXMgbm90IHN1cHBvcnQgb3B0aW9uIHRvIGNoYW5nZSB0aGUgY29sb3IuXFxuICAgKiB4LXJlZjogaHR0cHM6Ly9naXRodWIuY29tL2JhYmVsL2JhYmVsL2Jsb2IvZWZhNTIzMjRmZjgzNWI3OTRjNDgwODBmMTQ4NzdiNmNhZjMyY2QxNS9wYWNrYWdlcy9iYWJlbC1jb2RlLWZyYW1lL3NyYy9kZWZzLnRzI0w0MC1MNTRcXG4gICAqIFNvLCB3ZSBkbyBhIHdvcmthcm91bmQgbWFwcGluZyB0byBjaGFuZ2UgdGhlIGNvbG9yIG1hdGNoaW5nIHRoZSB0aGVtZS5cXG4gICAqXFxuICAgKiBGb3IgZXhhbXBsZSwgaW4gQGJhYmVsL2NvZGUtZnJhbWUsIHRoZSBcImtleXdvcmRcIiBpcyBtYXBwZWQgdG8gQU5TSSBcImN5YW5cIi5cXG4gICAqIFdlIHdhbnQgdGhlIFwia2V5d29yZFwiIHRvIHVzZSB0aGUgXCJzeW50YXgta2V5d29yZFwiIGNvbG9yIGluIHRoZSB0aGVtZS5cXG4gICAqIFNvLCB3ZSBtYXAgdGhlIFwiY3lhblwiIHRvIHRoZSBcInN5bnRheC1rZXl3b3JkXCIgaW4gdGhlIHRoZW1lLlxcbiAgICovXFxuICAvKiBjeWFuOiBrZXl3b3JkICovXFxuICAtLWNvbG9yLWFuc2ktY3lhbjogdmFyKC0tY29sb3Itc3ludGF4LWtleXdvcmQpO1xcbiAgLyogeWVsbG93OiBjYXBpdGFsaXplZCwganN4SWRlbnRpZmllciwgcHVuY3R1YXRpb24gKi9cXG4gIC0tY29sb3ItYW5zaS15ZWxsb3c6IHZhcigtLWNvbG9yLXN5bnRheC1mdW5jdGlvbik7XFxuICAvKiBtYWdlbnRhOiBudW1iZXIsIHJlZ2V4ICovXFxuICAtLWNvbG9yLWFuc2ktbWFnZW50YTogdmFyKC0tY29sb3Itc3ludGF4LWtleXdvcmQpO1xcbiAgLyogZ3JlZW46IHN0cmluZyAqL1xcbiAgLS1jb2xvci1hbnNpLWdyZWVuOiB2YXIoLS1jb2xvci1zeW50YXgtc3RyaW5nKTtcXG4gIC8qIGdyYXkgKGJyaWdodCBibGFjayk6IGNvbW1lbnQsIGd1dHRlciAqL1xcbiAgLS1jb2xvci1hbnNpLWJyaWdodC1ibGFjazogdmFyKC0tY29sb3Itc3ludGF4LWNvbW1lbnQpO1xcblxcbiAgLyogQW5zaSAtIFRlbXBvcmFyeSAqL1xcbiAgLS1jb2xvci1hbnNpLXNlbGVjdGlvbjogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0zMDApO1xcbiAgLS1jb2xvci1hbnNpLWJnOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxuICAtLWNvbG9yLWFuc2ktZmc6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuXFxuICAtLWNvbG9yLWFuc2ktd2hpdGU6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcXG4gIC0tY29sb3ItYW5zaS1ibGFjazogdmFyKC0tY29sb3ItZ3JheS0yMDApO1xcbiAgLS1jb2xvci1hbnNpLWJsdWU6IHZhcigtLWNvbG9yLWJsdWUtNzAwKTtcXG4gIC0tY29sb3ItYW5zaS1yZWQ6IHZhcigtLWNvbG9yLXJlZC03MDApO1xcbiAgLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZTogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIC0tY29sb3ItYW5zaS1icmlnaHQtYmx1ZTogdmFyKC0tY29sb3ItYmx1ZS04MDApO1xcbiAgLS1jb2xvci1hbnNpLWJyaWdodC1jeWFuOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWdyZWVuOiB2YXIoLS1jb2xvci1ncmVlbi04MDApO1xcbiAgLS1jb2xvci1hbnNpLWJyaWdodC1tYWdlbnRhOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXJlZDogdmFyKC0tY29sb3ItcmVkLTgwMCk7XFxuICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXllbGxvdzogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcXG5cXG4gIC8qIEJhY2tncm91bmQgTGlnaHQgKi9cXG4gIC0tY29sb3ItYmFja2dyb3VuZC0xMDA6ICNmZmZmZmY7XFxuICAtLWNvbG9yLWJhY2tncm91bmQtMjAwOiAjZmFmYWZhO1xcblxcbiAgLyogU3ludGF4IExpZ2h0ICovXFxuICAtLWNvbG9yLXN5bnRheC1jb21tZW50OiAjNTQ1NDU0O1xcbiAgLS1jb2xvci1zeW50YXgtY29uc3RhbnQ6ICMxNzE3MTc7XFxuICAtLWNvbG9yLXN5bnRheC1mdW5jdGlvbjogIzAwNTRhZDtcXG4gIC0tY29sb3Itc3ludGF4LWtleXdvcmQ6ICNhNTE4NTA7XFxuICAtLWNvbG9yLXN5bnRheC1saW5rOiAjMDY2MDU2O1xcbiAgLS1jb2xvci1zeW50YXgtcGFyYW1ldGVyOiAjOGYzZTAwO1xcbiAgLS1jb2xvci1zeW50YXgtcHVuY3R1YXRpb246ICMxNzE3MTc7XFxuICAtLWNvbG9yLXN5bnRheC1zdHJpbmc6ICMwMzYxNTc7XFxuICAtLWNvbG9yLXN5bnRheC1zdHJpbmctZXhwcmVzc2lvbjogIzA2NjA1NjtcXG5cXG4gIC8qIEdyYXkgU2NhbGUgTGlnaHQgKi9cXG4gIC0tY29sb3ItZ3JheS0xMDA6ICNmMmYyZjI7XFxuICAtLWNvbG9yLWdyYXktMjAwOiAjZWJlYmViO1xcbiAgLS1jb2xvci1ncmF5LTMwMDogI2U2ZTZlNjtcXG4gIC0tY29sb3ItZ3JheS00MDA6ICNlYWVhZWE7XFxuICAtLWNvbG9yLWdyYXktNTAwOiAjYzljOWM5O1xcbiAgLS1jb2xvci1ncmF5LTYwMDogI2E4YThhODtcXG4gIC0tY29sb3ItZ3JheS03MDA6ICM4ZjhmOGY7XFxuICAtLWNvbG9yLWdyYXktODAwOiAjN2Q3ZDdkO1xcbiAgLS1jb2xvci1ncmF5LTkwMDogIzY2NjY2NjtcXG4gIC0tY29sb3ItZ3JheS0xMDAwOiAjMTcxNzE3O1xcblxcbiAgLyogR3JheSBBbHBoYSBTY2FsZSBMaWdodCAqL1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0yMDA6IHJnYmEoMCwgMCwgMCwgMC4wODEpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTMwMDogcmdiYSgwLCAwLCAwLCAwLjEpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTQwMDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS01MDA6IHJnYmEoMCwgMCwgMCwgMC4yMSk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtNjAwOiByZ2JhKDAsIDAsIDAsIDAuMzQpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTcwMDogcmdiYSgwLCAwLCAwLCAwLjQ0KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS04MDA6IHJnYmEoMCwgMCwgMCwgMC41MSk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtOTAwOiByZ2JhKDAsIDAsIDAsIDAuNjA1KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0xMDAwOiByZ2JhKDAsIDAsIDAsIDAuOTEpO1xcblxcbiAgLyogQmx1ZSBTY2FsZSBMaWdodCAqL1xcbiAgLS1jb2xvci1ibHVlLTEwMDogI2YwZjdmZjtcXG4gIC0tY29sb3ItYmx1ZS0yMDA6ICNlZGY2ZmY7XFxuICAtLWNvbG9yLWJsdWUtMzAwOiAjZTFmMGZmO1xcbiAgLS1jb2xvci1ibHVlLTQwMDogI2NkZTdmZjtcXG4gIC0tY29sb3ItYmx1ZS01MDA6ICM5OWNlZmY7XFxuICAtLWNvbG9yLWJsdWUtNjAwOiAjNTJhZWZmO1xcbiAgLS1jb2xvci1ibHVlLTcwMDogIzAwNzBmMztcXG4gIC0tY29sb3ItYmx1ZS04MDA6ICMwMDYwZDE7XFxuICAtLWNvbG9yLWJsdWUtOTAwOiAjMDA2N2Q2O1xcbiAgLS1jb2xvci1ibHVlLTEwMDA6ICMwMDI1YWQ7XFxuXFxuICAvKiBSZWQgU2NhbGUgTGlnaHQgKi9cXG4gIC0tY29sb3ItcmVkLTEwMDogI2ZmZjBmMDtcXG4gIC0tY29sb3ItcmVkLTIwMDogI2ZmZWJlYjtcXG4gIC0tY29sb3ItcmVkLTMwMDogI2ZmZTVlNTtcXG4gIC0tY29sb3ItcmVkLTQwMDogI2ZkZDhkODtcXG4gIC0tY29sb3ItcmVkLTUwMDogI2Y4YmFiYTtcXG4gIC0tY29sb3ItcmVkLTYwMDogI2Y4NzI3NDtcXG4gIC0tY29sb3ItcmVkLTcwMDogI2U1NDg0ZDtcXG4gIC0tY29sb3ItcmVkLTgwMDogI2RhMzAzNjtcXG4gIC0tY29sb3ItcmVkLTkwMDogI2NhMmEzMDtcXG4gIC0tY29sb3ItcmVkLTEwMDA6ICMzODEzMTY7XFxuXFxuICAvKiBBbWJlciBTY2FsZSBMaWdodCAqL1xcbiAgLS1jb2xvci1hbWJlci0xMDA6ICNmZmY2ZTU7XFxuICAtLWNvbG9yLWFtYmVyLTIwMDogI2ZmZjRkNTtcXG4gIC0tY29sb3ItYW1iZXItMzAwOiAjZmVmMGNkO1xcbiAgLS1jb2xvci1hbWJlci00MDA6ICNmZmRkYmY7XFxuICAtLWNvbG9yLWFtYmVyLTUwMDogI2ZmYzk2YjtcXG4gIC0tY29sb3ItYW1iZXItNjAwOiAjZjViMDQ3O1xcbiAgLS1jb2xvci1hbWJlci03MDA6ICNmZmIyMjQ7XFxuICAtLWNvbG9yLWFtYmVyLTgwMDogI2ZmOTkwYTtcXG4gIC0tY29sb3ItYW1iZXItOTAwOiAjYTM1MjAwO1xcbiAgLS1jb2xvci1hbWJlci0xMDAwOiAjNGUyMDA5O1xcblxcbiAgLyogR3JlZW4gU2NhbGUgTGlnaHQgKi9cXG4gIC0tY29sb3ItZ3JlZW4tMTAwOiAjZWZmYmVmO1xcbiAgLS1jb2xvci1ncmVlbi0yMDA6ICNlYWZhZWE7XFxuICAtLWNvbG9yLWdyZWVuLTMwMDogI2RjZjZkYztcXG4gIC0tY29sb3ItZ3JlZW4tNDAwOiAjYzhmMWM5O1xcbiAgLS1jb2xvci1ncmVlbi01MDA6ICM5OWU1OWY7XFxuICAtLWNvbG9yLWdyZWVuLTYwMDogIzZjZGE3NjtcXG4gIC0tY29sb3ItZ3JlZW4tNzAwOiAjNDZhNzU4O1xcbiAgLS1jb2xvci1ncmVlbi04MDA6ICMzODhlNGE7XFxuICAtLWNvbG9yLWdyZWVuLTkwMDogIzI5N2MzYjtcXG4gIC0tY29sb3ItZ3JlZW4tMTAwMDogIzE4MzExZTtcXG5cXG4gIC8qIFR1cmJvcGFjayBMaWdodCAtIFRlbXBvcmFyeSAqL1xcbiAgLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQ6ICNmZjFlNTY7XFxuICAtLWNvbG9yLXR1cmJvcGFjay10ZXh0LWJsdWU6ICMwMDk2ZmY7XFxuICAtLWNvbG9yLXR1cmJvcGFjay1ib3JkZXItcmVkOiAjZjBhZGJlO1xcbiAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLWJsdWU6ICNhZGNjZWE7XFxuICAtLWNvbG9yLXR1cmJvcGFjay1iYWNrZ3JvdW5kLXJlZDogI2ZmZjdmOTtcXG4gIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtYmx1ZTogI2Y2ZmJmZjtcXG59XFxuJ10sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3N0eWxlcy9kYXJrLXRoZW1lLmNzc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtuLmQodCx7WjooKT0+bH0pO3ZhciByPW4oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCIpLG89bi5uKHIpLGE9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiKSxpPW4ubihhKSgpKG8oKSk7aS5wdXNoKFtlLmlkLGA6aG9zdCguZGFyaykge1xuICAtLWNvbG9yLWZvbnQ6IHdoaXRlO1xuICAtLWNvbG9yLWJhY2tkcm9wOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIC0tY29sb3ItYm9yZGVyLXNoYWRvdzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0NSk7XG5cbiAgLS1jb2xvci10aXRsZS1jb2xvcjogI2ZhZmFmYTtcbiAgLS1jb2xvci1zdGFjay1ub3RlczogI2E5YTlhOTtcblxuICAvKiBCYWNrZ3JvdW5kIERhcmsgKi9cbiAgLS1jb2xvci1iYWNrZ3JvdW5kLTEwMDogIzBhMGEwYTtcbiAgLS1jb2xvci1iYWNrZ3JvdW5kLTIwMDogIzAwMDAwMDtcblxuICAvKiBTeW50YXggRGFyayAqL1xuICAtLWNvbG9yLXN5bnRheC1jb21tZW50OiAjYTBhMGEwO1xuICAtLWNvbG9yLXN5bnRheC1jb25zdGFudDogI2VkZWRlZDtcbiAgLS1jb2xvci1zeW50YXgtZnVuY3Rpb246ICM1MmE5ZmY7XG4gIC0tY29sb3Itc3ludGF4LWtleXdvcmQ6ICNmNzZlOTk7XG4gIC0tY29sb3Itc3ludGF4LWxpbms6ICMwYWM1YjI7XG4gIC0tY29sb3Itc3ludGF4LXBhcmFtZXRlcjogI2YxYTEwZDtcbiAgLS1jb2xvci1zeW50YXgtcHVuY3R1YXRpb246ICNlZGVkZWQ7XG4gIC0tY29sb3Itc3ludGF4LXN0cmluZzogIzBhYzViMjtcbiAgLS1jb2xvci1zeW50YXgtc3RyaW5nLWV4cHJlc3Npb246ICMwYWM1YjI7XG5cbiAgLyogR3JheSBTY2FsZSBEYXJrICovXG4gIC0tY29sb3ItZ3JheS0xMDA6ICMxYTFhMWE7XG4gIC0tY29sb3ItZ3JheS0yMDA6ICMxZjFmMWY7XG4gIC0tY29sb3ItZ3JheS0zMDA6ICMyOTI5Mjk7XG4gIC0tY29sb3ItZ3JheS00MDA6ICMyZTJlMmU7XG4gIC0tY29sb3ItZ3JheS01MDA6ICM0NTQ1NDU7XG4gIC0tY29sb3ItZ3JheS02MDA6ICM4Nzg3ODc7XG4gIC0tY29sb3ItZ3JheS03MDA6ICM4ZjhmOGY7XG4gIC0tY29sb3ItZ3JheS04MDA6ICM3ZDdkN2Q7XG4gIC0tY29sb3ItZ3JheS05MDA6ICNhMGEwYTA7XG4gIC0tY29sb3ItZ3JheS0xMDAwOiAjZWRlZGVkO1xuXG4gIC8qIEdyYXkgQWxwaGEgU2NhbGUgRGFyayAqL1xuICAtLWNvbG9yLWdyYXktYWxwaGEtMTAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDY2KTtcbiAgLS1jb2xvci1ncmF5LWFscGhhLTIwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4Nyk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS0zMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMjUpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtNDAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcbiAgLS1jb2xvci1ncmF5LWFscGhhLTUwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIzOSk7XG4gIC0tY29sb3ItZ3JheS1hbHBoYS02MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41MDYpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtNzAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtODAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDcpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtOTAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjEpO1xuICAtLWNvbG9yLWdyYXktYWxwaGEtMTAwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyMyk7XG5cbiAgLyogQmx1ZSBTY2FsZSBEYXJrICovXG4gIC0tY29sb3ItYmx1ZS0xMDA6ICMwZjFiMmQ7XG4gIC0tY29sb3ItYmx1ZS0yMDA6ICMxMDI0M2U7XG4gIC0tY29sb3ItYmx1ZS0zMDA6ICMwZjMwNTg7XG4gIC0tY29sb3ItYmx1ZS00MDA6ICMwZDM4Njg7XG4gIC0tY29sb3ItYmx1ZS01MDA6ICMwYTQ0ODE7XG4gIC0tY29sb3ItYmx1ZS02MDA6ICMwMDkxZmY7XG4gIC0tY29sb3ItYmx1ZS03MDA6ICMwMDcwZjM7XG4gIC0tY29sb3ItYmx1ZS04MDA6ICMwMDYwZDE7XG4gIC0tY29sb3ItYmx1ZS05MDA6ICM1MmE5ZmY7XG4gIC0tY29sb3ItYmx1ZS0xMDAwOiAjZWFmNmZmO1xuXG4gIC8qIFJlZCBTY2FsZSBEYXJrICovXG4gIC0tY29sb3ItcmVkLTEwMDogIzJhMTMxNDtcbiAgLS1jb2xvci1yZWQtMjAwOiAjM2QxNzE5O1xuICAtLWNvbG9yLXJlZC0zMDA6ICM1NTFhMWU7XG4gIC0tY29sb3ItcmVkLTQwMDogIzY3MWUyMjtcbiAgLS1jb2xvci1yZWQtNTAwOiAjODIyMDI1O1xuICAtLWNvbG9yLXJlZC02MDA6ICNlNTQ4NGQ7XG4gIC0tY29sb3ItcmVkLTcwMDogI2U1NDg0ZDtcbiAgLS1jb2xvci1yZWQtODAwOiAjZGEzMDM2O1xuICAtLWNvbG9yLXJlZC05MDA6ICNmZjYzNjk7XG4gIC0tY29sb3ItcmVkLTEwMDA6ICNmZmVjZWU7XG5cbiAgLyogQW1iZXIgU2NhbGUgRGFyayAqL1xuICAtLWNvbG9yLWFtYmVyLTEwMDogIzI3MTcwMDtcbiAgLS1jb2xvci1hbWJlci0yMDA6ICMzNDFjMDA7XG4gIC0tY29sb3ItYW1iZXItMzAwOiAjNGEyOTAwO1xuICAtLWNvbG9yLWFtYmVyLTQwMDogIzU3MzMwMDtcbiAgLS1jb2xvci1hbWJlci01MDA6ICM2OTNmMDU7XG4gIC0tY29sb3ItYW1iZXItNjAwOiAjZTc5YzEzO1xuICAtLWNvbG9yLWFtYmVyLTcwMDogI2ZmYjIyNDtcbiAgLS1jb2xvci1hbWJlci04MDA6ICNmZjk5MGE7XG4gIC0tY29sb3ItYW1iZXItOTAwOiAjZjFhMTBkO1xuICAtLWNvbG9yLWFtYmVyLTEwMDA6ICNmZWYzZGQ7XG5cbiAgLyogR3JlZW4gU2NhbGUgRGFyayAqL1xuICAtLWNvbG9yLWdyZWVuLTEwMDogIzBiMjIxMTtcbiAgLS1jb2xvci1ncmVlbi0yMDA6ICMwZjJjMTc7XG4gIC0tY29sb3ItZ3JlZW4tMzAwOiAjMTEzNTFiO1xuICAtLWNvbG9yLWdyZWVuLTQwMDogIzBjNDYxYjtcbiAgLS1jb2xvci1ncmVlbi01MDA6ICMxMjY0Mjc7XG4gIC0tY29sb3ItZ3JlZW4tNjAwOiAjMWE5MzM4O1xuICAtLWNvbG9yLWdyZWVuLTcwMDogIzQ2YTc1ODtcbiAgLS1jb2xvci1ncmVlbi04MDA6ICMzODhlNGE7XG4gIC0tY29sb3ItZ3JlZW4tOTAwOiAjNjNjMTc0O1xuICAtLWNvbG9yLWdyZWVuLTEwMDA6ICNlNWZiZWI7XG5cbiAgLyogVHVyYm9wYWNrIERhcmsgLSBUZW1wb3JhcnkgKi9cbiAgLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQ6ICNmZjZkOTI7XG4gIC0tY29sb3ItdHVyYm9wYWNrLXRleHQtYmx1ZTogIzQ1YjJmZjtcbiAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLXJlZDogIzZlMjkzYjtcbiAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLWJsdWU6ICMyODRmODA7XG4gIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtcmVkOiAjMjUwZDEyO1xuICAtLWNvbG9yLXR1cmJvcGFjay1iYWNrZ3JvdW5kLWJsdWU6ICMwYTE3MjM7XG59XG5cbkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgOmhvc3QoOm5vdCgubGlnaHQpKSB7XG4gICAgLS1jb2xvci1mb250OiB3aGl0ZTtcbiAgICAtLWNvbG9yLWJhY2tkcm9wOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcblxuICAgIC0tY29sb3ItdGl0bGUtY29sb3I6ICNmYWZhZmE7XG4gICAgLS1jb2xvci1zdGFjay1ub3RlczogI2E5YTlhOTtcblxuICAgIC8qIEJhY2tncm91bmQgRGFyayAqL1xuICAgIC0tY29sb3ItYmFja2dyb3VuZC0xMDA6ICMwYTBhMGE7XG4gICAgLS1jb2xvci1iYWNrZ3JvdW5kLTIwMDogIzAwMDAwMDtcblxuICAgIC8qIFN5bnRheCBEYXJrICovXG4gICAgLS1jb2xvci1zeW50YXgtY29tbWVudDogI2EwYTBhMDtcbiAgICAtLWNvbG9yLXN5bnRheC1jb25zdGFudDogI2VkZWRlZDtcbiAgICAtLWNvbG9yLXN5bnRheC1mdW5jdGlvbjogIzUyYTlmZjtcbiAgICAtLWNvbG9yLXN5bnRheC1rZXl3b3JkOiAjZjc2ZTk5O1xuICAgIC0tY29sb3Itc3ludGF4LWxpbms6ICMwYWM1YjI7XG4gICAgLS1jb2xvci1zeW50YXgtcGFyYW1ldGVyOiAjZjFhMTBkO1xuICAgIC0tY29sb3Itc3ludGF4LXB1bmN0dWF0aW9uOiAjZWRlZGVkO1xuICAgIC0tY29sb3Itc3ludGF4LXN0cmluZzogIzBhYzViMjtcbiAgICAtLWNvbG9yLXN5bnRheC1zdHJpbmctZXhwcmVzc2lvbjogIzBhYzViMjtcblxuICAgIC8qIEdyYXkgU2NhbGUgRGFyayAqL1xuICAgIC0tY29sb3ItZ3JheS0xMDA6ICMxYTFhMWE7XG4gICAgLS1jb2xvci1ncmF5LTIwMDogIzFmMWYxZjtcbiAgICAtLWNvbG9yLWdyYXktMzAwOiAjMjkyOTI5O1xuICAgIC0tY29sb3ItZ3JheS00MDA6ICMyZTJlMmU7XG4gICAgLS1jb2xvci1ncmF5LTUwMDogIzQ1NDU0NTtcbiAgICAtLWNvbG9yLWdyYXktNjAwOiAjODc4Nzg3O1xuICAgIC0tY29sb3ItZ3JheS03MDA6ICM4ZjhmOGY7XG4gICAgLS1jb2xvci1ncmF5LTgwMDogIzdkN2Q3ZDtcbiAgICAtLWNvbG9yLWdyYXktOTAwOiAjYTBhMGEwO1xuICAgIC0tY29sb3ItZ3JheS0xMDAwOiAjZWRlZGVkO1xuXG4gICAgLyogR3JheSBBbHBoYSBTY2FsZSBEYXJrICovXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2Nik7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTIwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4Nyk7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTMwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyNSk7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTQwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0NSk7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTUwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIzOSk7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTYwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUwNik7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTcwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTtcbiAgICAtLWNvbG9yLWdyYXktYWxwaGEtODAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDcpO1xuICAgIC0tY29sb3ItZ3JheS1hbHBoYS05MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42MSk7XG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MjMpO1xuXG4gICAgLyogQmx1ZSBTY2FsZSBEYXJrICovXG4gICAgLS1jb2xvci1ibHVlLTEwMDogIzBmMWIyZDtcbiAgICAtLWNvbG9yLWJsdWUtMjAwOiAjMTAyNDNlO1xuICAgIC0tY29sb3ItYmx1ZS0zMDA6ICMwZjMwNTg7XG4gICAgLS1jb2xvci1ibHVlLTQwMDogIzBkMzg2ODtcbiAgICAtLWNvbG9yLWJsdWUtNTAwOiAjMGE0NDgxO1xuICAgIC0tY29sb3ItYmx1ZS02MDA6ICMwMDkxZmY7XG4gICAgLS1jb2xvci1ibHVlLTcwMDogIzAwNzBmMztcbiAgICAtLWNvbG9yLWJsdWUtODAwOiAjMDA2MGQxO1xuICAgIC0tY29sb3ItYmx1ZS05MDA6ICM1MmE5ZmY7XG4gICAgLS1jb2xvci1ibHVlLTEwMDA6ICNlYWY2ZmY7XG5cbiAgICAvKiBSZWQgU2NhbGUgRGFyayAqL1xuICAgIC0tY29sb3ItcmVkLTEwMDogIzJhMTMxNDtcbiAgICAtLWNvbG9yLXJlZC0yMDA6ICMzZDE3MTk7XG4gICAgLS1jb2xvci1yZWQtMzAwOiAjNTUxYTFlO1xuICAgIC0tY29sb3ItcmVkLTQwMDogIzY3MWUyMjtcbiAgICAtLWNvbG9yLXJlZC01MDA6ICM4MjIwMjU7XG4gICAgLS1jb2xvci1yZWQtNjAwOiAjZTU0ODRkO1xuICAgIC0tY29sb3ItcmVkLTcwMDogI2U1NDg0ZDtcbiAgICAtLWNvbG9yLXJlZC04MDA6ICNkYTMwMzY7XG4gICAgLS1jb2xvci1yZWQtOTAwOiAjZmY2MzY5O1xuICAgIC0tY29sb3ItcmVkLTEwMDA6ICNmZmVjZWU7XG5cbiAgICAvKiBBbWJlciBTY2FsZSBEYXJrICovXG4gICAgLS1jb2xvci1hbWJlci0xMDA6ICMyNzE3MDA7XG4gICAgLS1jb2xvci1hbWJlci0yMDA6ICMzNDFjMDA7XG4gICAgLS1jb2xvci1hbWJlci0zMDA6ICM0YTI5MDA7XG4gICAgLS1jb2xvci1hbWJlci00MDA6ICM1NzMzMDA7XG4gICAgLS1jb2xvci1hbWJlci01MDA6ICM2OTNmMDU7XG4gICAgLS1jb2xvci1hbWJlci02MDA6ICNlNzljMTM7XG4gICAgLS1jb2xvci1hbWJlci03MDA6ICNmZmIyMjQ7XG4gICAgLS1jb2xvci1hbWJlci04MDA6ICNmZjk5MGE7XG4gICAgLS1jb2xvci1hbWJlci05MDA6ICNmMWExMGQ7XG4gICAgLS1jb2xvci1hbWJlci0xMDAwOiAjZmVmM2RkO1xuXG4gICAgLyogR3JlZW4gU2NhbGUgRGFyayAqL1xuICAgIC0tY29sb3ItZ3JlZW4tMTAwOiAjMGIyMjExO1xuICAgIC0tY29sb3ItZ3JlZW4tMjAwOiAjMGYyYzE3O1xuICAgIC0tY29sb3ItZ3JlZW4tMzAwOiAjMTEzNTFiO1xuICAgIC0tY29sb3ItZ3JlZW4tNDAwOiAjMGM0NjFiO1xuICAgIC0tY29sb3ItZ3JlZW4tNTAwOiAjMTI2NDI3O1xuICAgIC0tY29sb3ItZ3JlZW4tNjAwOiAjMWE5MzM4O1xuICAgIC0tY29sb3ItZ3JlZW4tNzAwOiAjNDZhNzU4O1xuICAgIC0tY29sb3ItZ3JlZW4tODAwOiAjMzg4ZTRhO1xuICAgIC0tY29sb3ItZ3JlZW4tOTAwOiAjNjNjMTc0O1xuICAgIC0tY29sb3ItZ3JlZW4tMTAwMDogI2U1ZmJlYjtcblxuICAgIC8qIFR1cmJvcGFjayBEYXJrIC0gVGVtcG9yYXJ5ICovXG4gICAgLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQ6ICNmZjZkOTI7XG4gICAgLS1jb2xvci10dXJib3BhY2stdGV4dC1ibHVlOiAjNDViMmZmO1xuICAgIC0tY29sb3ItdHVyYm9wYWNrLWJvcmRlci1yZWQ6ICM2ZTI5M2I7XG4gICAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLWJsdWU6ICMyODRmODA7XG4gICAgLS1jb2xvci10dXJib3BhY2stYmFja2dyb3VuZC1yZWQ6ICMyNTBkMTI7XG4gICAgLS1jb2xvci10dXJib3BhY2stYmFja2dyb3VuZC1ibHVlOiAjMGExNzIzO1xuICB9XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3N0eWxlcy9kYXJrLXRoZW1lLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxtQkFBbUI7RUFDbkIsb0NBQW9DO0VBQ3BDLGlEQUFpRDs7RUFFakQsNEJBQTRCO0VBQzVCLDRCQUE0Qjs7RUFFNUIsb0JBQW9CO0VBQ3BCLCtCQUErQjtFQUMvQiwrQkFBK0I7O0VBRS9CLGdCQUFnQjtFQUNoQiwrQkFBK0I7RUFDL0IsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQywrQkFBK0I7RUFDL0IsNEJBQTRCO0VBQzVCLGlDQUFpQztFQUNqQyxtQ0FBbUM7RUFDbkMsOEJBQThCO0VBQzlCLHlDQUF5Qzs7RUFFekMsb0JBQW9CO0VBQ3BCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLDBCQUEwQjs7RUFFMUIsMEJBQTBCO0VBQzFCLGtEQUFrRDtFQUNsRCxrREFBa0Q7RUFDbEQsa0RBQWtEO0VBQ2xELGtEQUFrRDtFQUNsRCxrREFBa0Q7RUFD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LDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLDJCQUEyQjs7SUFFM0IsK0JBQStCO0lBQy9CLG1DQUFtQztJQUNuQyxvQ0FBb0M7SUFDcEMscUNBQXFDO0lBQ3JDLHNDQUFzQztJQUN0Qyx5Q0FBeUM7SUFDekMsMENBQTBDO0VBQzVDO0FBQ0ZcIixzb3VyY2VzQ29udGVudDpbXCI6aG9zdCguZGFyaykge1xcbiAgLS1jb2xvci1mb250OiB3aGl0ZTtcXG4gIC0tY29sb3ItYmFja2Ryb3A6IHJnYmEoMCwgMCwgMCwgMC44KTtcXG4gIC0tY29sb3ItYm9yZGVyLXNoYWRvdzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0NSk7XFxuXFxuICAtLWNvbG9yLXRpdGxlLWNvbG9yOiAjZmFmYWZhO1xcbiAgLS1jb2xvci1zdGFjay1ub3RlczogI2E5YTlhOTtcXG5cXG4gIC8qIEJhY2tncm91bmQgRGFyayAqL1xcbiAgLS1jb2xvci1iYWNrZ3JvdW5kLTEwMDogIzBhMGEwYTtcXG4gIC0tY29sb3ItYmFja2dyb3VuZC0yMDA6ICMwMDAwMDA7XFxuXFxuICAvKiBTeW50YXggRGFyayAqL1xcbiAgLS1jb2xvci1zeW50YXgtY29tbWVudDogI2EwYTBhMDtcXG4gIC0tY29sb3Itc3ludGF4LWNvbnN0YW50OiAjZWRlZGVkO1xcbiAgLS1jb2xvci1zeW50YXgtZnVuY3Rpb246ICM1MmE5ZmY7XFxuICAtLWNvbG9yLXN5bnRheC1rZXl3b3JkOiAjZjc2ZTk5O1xcbiAgLS1jb2xvci1zeW50YXgtbGluazogIzBhYzViMjtcXG4gIC0tY29sb3Itc3ludGF4LXBhcmFtZXRlcjogI2YxYTEwZDtcXG4gIC0tY29sb3Itc3ludGF4LXB1bmN0dWF0aW9uOiAjZWRlZGVkO1xcbiAgLS1jb2xvci1zeW50YXgtc3RyaW5nOiAjMGFjNWIyO1xcbiAgLS1jb2xvci1zeW50YXgtc3RyaW5nLWV4cHJlc3Npb246ICMwYWM1YjI7XFxuXFxuICAvKiBHcmF5IFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItZ3JheS0xMDA6ICMxYTFhMWE7XFxuICAtLWNvbG9yLWdyYXktMjAwOiAjMWYxZjFmO1xcbiAgLS1jb2xvci1ncmF5LTMwMDogIzI5MjkyOTtcXG4gIC0tY29sb3ItZ3JheS00MDA6ICMyZTJlMmU7XFxuICAtLWNvbG9yLWdyYXktNTAwOiAjNDU0NTQ1O1xcbiAgLS1jb2xvci1ncmF5LTYwMDogIzg3ODc4NztcXG4gIC0tY29sb3ItZ3JheS03MDA6ICM4ZjhmOGY7XFxuICAtLWNvbG9yLWdyYXktODAwOiAjN2Q3ZDdkO1xcbiAgLS1jb2xvci1ncmF5LTkwMDogI2EwYTBhMDtcXG4gIC0tY29sb3ItZ3JheS0xMDAwOiAjZWRlZGVkO1xcblxcbiAgLyogR3JheSBBbHBoYSBTY2FsZSBEYXJrICovXFxuICAtLWNvbG9yLWdyYXktYWxwaGEtMTAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDY2KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0yMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wODcpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTMwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyNSk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtNDAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS01MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMzkpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTYwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUwNik7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtNzAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTgwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ3KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS05MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42MSk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtMTAwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyMyk7XFxuXFxuICAvKiBCbHVlIFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItYmx1ZS0xMDA6ICMwZjFiMmQ7XFxuICAtLWNvbG9yLWJsdWUtMjAwOiAjMTAyNDNlO1xcbiAgLS1jb2xvci1ibHVlLTMwMDogIzBmMzA1ODtcXG4gIC0tY29sb3ItYmx1ZS00MDA6ICMwZDM4Njg7XFxuICAtLWNvbG9yLWJsdWUtNTAwOiAjMGE0NDgxO1xcbiAgLS1jb2xvci1ibHVlLTYwMDogIzAwOTFmZjtcXG4gIC0tY29sb3ItYmx1ZS03MDA6ICMwMDcwZjM7XFxuICAtLWNvbG9yLWJsdWUtODAwOiAjMDA2MGQxO1xcbiAgLS1jb2xvci1ibHVlLTkwMDogIzUyYTlmZjtcXG4gIC0tY29sb3ItYmx1ZS0xMDAwOiAjZWFmNmZmO1xcblxcbiAgLyogUmVkIFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItcmVkLTEwMDogIzJhMTMxNDtcXG4gIC0tY29sb3ItcmVkLTIwMDogIzNkMTcxOTtcXG4gIC0tY29sb3ItcmVkLTMwMDogIzU1MWExZTtcXG4gIC0tY29sb3ItcmVkLTQwMDogIzY3MWUyMjtcXG4gIC0tY29sb3ItcmVkLTUwMDogIzgyMjAyNTtcXG4gIC0tY29sb3ItcmVkLTYwMDogI2U1NDg0ZDtcXG4gIC0tY29sb3ItcmVkLTcwMDogI2U1NDg0ZDtcXG4gIC0tY29sb3ItcmVkLTgwMDogI2RhMzAzNjtcXG4gIC0tY29sb3ItcmVkLTkwMDogI2ZmNjM2OTtcXG4gIC0tY29sb3ItcmVkLTEwMDA6ICNmZmVjZWU7XFxuXFxuICAvKiBBbWJlciBTY2FsZSBEYXJrICovXFxuICAtLWNvbG9yLWFtYmVyLTEwMDogIzI3MTcwMDtcXG4gIC0tY29sb3ItYW1iZXItMjAwOiAjMzQxYzAwO1xcbiAgLS1jb2xvci1hbWJlci0zMDA6ICM0YTI5MDA7XFxuICAtLWNvbG9yLWFtYmVyLTQwMDogIzU3MzMwMDtcXG4gIC0tY29sb3ItYW1iZXItNTAwOiAjNjkzZjA1O1xcbiAgLS1jb2xvci1hbWJlci02MDA6ICNlNzljMTM7XFxuICAtLWNvbG9yLWFtYmVyLTcwMDogI2ZmYjIyNDtcXG4gIC0tY29sb3ItYW1iZXItODAwOiAjZmY5OTBhO1xcbiAgLS1jb2xvci1hbWJlci05MDA6ICNmMWExMGQ7XFxuICAtLWNvbG9yLWFtYmVyLTEwMDA6ICNmZWYzZGQ7XFxuXFxuICAvKiBHcmVlbiBTY2FsZSBEYXJrICovXFxuICAtLWNvbG9yLWdyZWVuLTEwMDogIzBiMjIxMTtcXG4gIC0tY29sb3ItZ3JlZW4tMjAwOiAjMGYyYzE3O1xcbiAgLS1jb2xvci1ncmVlbi0zMDA6ICMxMTM1MWI7XFxuICAtLWNvbG9yLWdyZWVuLTQwMDogIzBjNDYxYjtcXG4gIC0tY29sb3ItZ3JlZW4tNTAwOiAjMTI2NDI3O1xcbiAgLS1jb2xvci1ncmVlbi02MDA6ICMxYTkzMzg7XFxuICAtLWNvbG9yLWdyZWVuLTcwMDogIzQ2YTc1ODtcXG4gIC0tY29sb3ItZ3JlZW4tODAwOiAjMzg4ZTRhO1xcbiAgLS1jb2xvci1ncmVlbi05MDA6ICM2M2MxNzQ7XFxuICAtLWNvbG9yLWdyZWVuLTEwMDA6ICNlNWZiZWI7XFxuXFxuICAvKiBUdXJib3BhY2sgRGFyayAtIFRlbXBvcmFyeSAqL1xcbiAgLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQ6ICNmZjZkOTI7XFxuICAtLWNvbG9yLXR1cmJvcGFjay10ZXh0LWJsdWU6ICM0NWIyZmY7XFxuICAtLWNvbG9yLXR1cmJvcGFjay1ib3JkZXItcmVkOiAjNmUyOTNiO1xcbiAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLWJsdWU6ICMyODRmODA7XFxuICAtLWNvbG9yLXR1cmJvcGFjay1iYWNrZ3JvdW5kLXJlZDogIzI1MGQxMjtcXG4gIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtYmx1ZTogIzBhMTcyMztcXG59XFxuXFxuQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xcbiAgOmhvc3QoOm5vdCgubGlnaHQpKSB7XFxuICAgIC0tY29sb3ItZm9udDogd2hpdGU7XFxuICAgIC0tY29sb3ItYmFja2Ryb3A6IHJnYmEoMCwgMCwgMCwgMC44KTtcXG4gICAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcXG5cXG4gICAgLS1jb2xvci10aXRsZS1jb2xvcjogI2ZhZmFmYTtcXG4gICAgLS1jb2xvci1zdGFjay1ub3RlczogI2E5YTlhOTtcXG5cXG4gICAgLyogQmFja2dyb3VuZCBEYXJrICovXFxuICAgIC0tY29sb3ItYmFja2dyb3VuZC0xMDA6ICMwYTBhMGE7XFxuICAgIC0tY29sb3ItYmFja2dyb3VuZC0yMDA6ICMwMDAwMDA7XFxuXFxuICAgIC8qIFN5bnRheCBEYXJrICovXFxuICAgIC0tY29sb3Itc3ludGF4LWNvbW1lbnQ6ICNhMGEwYTA7XFxuICAgIC0tY29sb3Itc3ludGF4LWNvbnN0YW50OiAjZWRlZGVkO1xcbiAgICAtLWNvbG9yLXN5bnRheC1mdW5jdGlvbjogIzUyYTlmZjtcXG4gICAgLS1jb2xvci1zeW50YXgta2V5d29yZDogI2Y3NmU5OTtcXG4gICAgLS1jb2xvci1zeW50YXgtbGluazogIzBhYzViMjtcXG4gICAgLS1jb2xvci1zeW50YXgtcGFyYW1ldGVyOiAjZjFhMTBkO1xcbiAgICAtLWNvbG9yLXN5bnRheC1wdW5jdHVhdGlvbjogI2VkZWRlZDtcXG4gICAgLS1jb2xvci1zeW50YXgtc3RyaW5nOiAjMGFjNWIyO1xcbiAgICAtLWNvbG9yLXN5bnRheC1zdHJpbmctZXhwcmVzc2lvbjogIzBhYzViMjtcXG5cXG4gICAgLyogR3JheSBTY2FsZSBEYXJrICovXFxuICAgIC0tY29sb3ItZ3JheS0xMDA6ICMxYTFhMWE7XFxuICAgIC0tY29sb3ItZ3JheS0yMDA6ICMxZjFmMWY7XFxuICAgIC0tY29sb3ItZ3JheS0zMDA6ICMyOTI5Mjk7XFxuICAgIC0tY29sb3ItZ3JheS00MDA6ICMyZTJlMmU7XFxuICAgIC0tY29sb3ItZ3JheS01MDA6ICM0NTQ1NDU7XFxuICAgIC0tY29sb3ItZ3JheS02MDA6ICM4Nzg3ODc7XFxuICAgIC0tY29sb3ItZ3JheS03MDA6ICM4ZjhmOGY7XFxuICAgIC0tY29sb3ItZ3JheS04MDA6ICM3ZDdkN2Q7XFxuICAgIC0tY29sb3ItZ3JheS05MDA6ICNhMGEwYTA7XFxuICAgIC0tY29sb3ItZ3JheS0xMDAwOiAjZWRlZGVkO1xcblxcbiAgICAvKiBHcmF5IEFscGhhIFNjYWxlIERhcmsgKi9cXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2Nik7XFxuICAgIC0tY29sb3ItZ3JheS1hbHBoYS0yMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wODcpO1xcbiAgICAtLWNvbG9yLWdyYXktYWxwaGEtMzAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTI1KTtcXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTQwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0NSk7XFxuICAgIC0tY29sb3ItZ3JheS1hbHBoYS01MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yMzkpO1xcbiAgICAtLWNvbG9yLWdyYXktYWxwaGEtNjAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTA2KTtcXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTcwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KTtcXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTgwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ3KTtcXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTkwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYxKTtcXG4gICAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MjMpO1xcblxcbiAgICAvKiBCbHVlIFNjYWxlIERhcmsgKi9cXG4gICAgLS1jb2xvci1ibHVlLTEwMDogIzBmMWIyZDtcXG4gICAgLS1jb2xvci1ibHVlLTIwMDogIzEwMjQzZTtcXG4gICAgLS1jb2xvci1ibHVlLTMwMDogIzBmMzA1ODtcXG4gICAgLS1jb2xvci1ibHVlLTQwMDogIzBkMzg2ODtcXG4gICAgLS1jb2xvci1ibHVlLTUwMDogIzBhNDQ4MTtcXG4gICAgLS1jb2xvci1ibHVlLTYwMDogIzAwOTFmZjtcXG4gICAgLS1jb2xvci1ibHVlLTcwMDogIzAwNzBmMztcXG4gICAgLS1jb2xvci1ibHVlLTgwMDogIzAwNjBkMTtcXG4gICAgLS1jb2xvci1ibHVlLTkwMDogIzUyYTlmZjtcXG4gICAgLS1jb2xvci1ibHVlLTEwMDA6ICNlYWY2ZmY7XFxuXFxuICAgIC8qIFJlZCBTY2FsZSBEYXJrICovXFxuICAgIC0tY29sb3ItcmVkLTEwMDogIzJhMTMxNDtcXG4gICAgLS1jb2xvci1yZWQtMjAwOiAjM2QxNzE5O1xcbiAgICAtLWNvbG9yLXJlZC0zMDA6ICM1NTFhMWU7XFxuICAgIC0tY29sb3ItcmVkLTQwMDogIzY3MWUyMjtcXG4gICAgLS1jb2xvci1yZWQtNTAwOiAjODIyMDI1O1xcbiAgICAtLWNvbG9yLXJlZC02MDA6ICNlNTQ4NGQ7XFxuICAgIC0tY29sb3ItcmVkLTcwMDogI2U1NDg0ZDtcXG4gICAgLS1jb2xvci1yZWQtODAwOiAjZGEzMDM2O1xcbiAgICAtLWNvbG9yLXJlZC05MDA6ICNmZjYzNjk7XFxuICAgIC0tY29sb3ItcmVkLTEwMDA6ICNmZmVjZWU7XFxuXFxuICAgIC8qIEFtYmVyIFNjYWxlIERhcmsgKi9cXG4gICAgLS1jb2xvci1hbWJlci0xMDA6ICMyNzE3MDA7XFxuICAgIC0tY29sb3ItYW1iZXItMjAwOiAjMzQxYzAwO1xcbiAgICAtLWNvbG9yLWFtYmVyLTMwMDogIzRhMjkwMDtcXG4gICAgLS1jb2xvci1hbWJlci00MDA6ICM1NzMzMDA7XFxuICAgIC0tY29sb3ItYW1iZXItNTAwOiAjNjkzZjA1O1xcbiAgICAtLWNvbG9yLWFtYmVyLTYwMDogI2U3OWMxMztcXG4gICAgLS1jb2xvci1hbWJlci03MDA6ICNmZmIyMjQ7XFxuICAgIC0tY29sb3ItYW1iZXItODAwOiAjZmY5OTBhO1xcbiAgICAtLWNvbG9yLWFtYmVyLTkwMDogI2YxYTEwZDtcXG4gICAgLS1jb2xvci1hbWJlci0xMDAwOiAjZmVmM2RkO1xcblxcbiAgICAvKiBHcmVlbiBTY2FsZSBEYXJrICovXFxuICAgIC0tY29sb3ItZ3JlZW4tMTAwOiAjMGIyMjExO1xcbiAgICAtLWNvbG9yLWdyZWVuLTIwMDogIzBmMmMxNztcXG4gICAgLS1jb2xvci1ncmVlbi0zMDA6ICMxMTM1MWI7XFxuICAgIC0tY29sb3ItZ3JlZW4tNDAwOiAjMGM0NjFiO1xcbiAgICAtLWNvbG9yLWdyZWVuLTUwMDogIzEyNjQyNztcXG4gICAgLS1jb2xvci1ncmVlbi02MDA6ICMxYTkzMzg7XFxuICAgIC0tY29sb3ItZ3JlZW4tNzAwOiAjNDZhNzU4O1xcbiAgICAtLWNvbG9yLWdyZWVuLTgwMDogIzM4OGU0YTtcXG4gICAgLS1jb2xvci1ncmVlbi05MDA6ICM2M2MxNzQ7XFxuICAgIC0tY29sb3ItZ3JlZW4tMTAwMDogI2U1ZmJlYjtcXG5cXG4gICAgLyogVHVyYm9wYWNrIERhcmsgLSBUZW1wb3JhcnkgKi9cXG4gICAgLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQ6ICNmZjZkOTI7XFxuICAgIC0tY29sb3ItdHVyYm9wYWNrLXRleHQtYmx1ZTogIzQ1YjJmZjtcXG4gICAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLXJlZDogIzZlMjkzYjtcXG4gICAgLS1jb2xvci10dXJib3BhY2stYm9yZGVyLWJsdWU6ICMyODRmODA7XFxuICAgIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtcmVkOiAjMjUwZDEyO1xcbiAgICAtLWNvbG9yLXR1cmJvcGFjay1iYWNrZ3JvdW5kLWJsdWU6ICMwYTE3MjM7XFxuICB9XFxufVxcblwiXSxzb3VyY2VSb290OlwiXCJ9XSk7bGV0IGw9aX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvc3R5bGVzL2RlZmF1bHQtdGhlbWUuY3NzXCI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiO24uZCh0LHtaOigpPT5sfSk7dmFyIHI9bihcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIiksbz1uLm4ociksYT1uKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCIpLGk9bi5uKGEpKCkobygpKTtpLnB1c2goW2UuaWQsYDpob3N0IHtcbiAgLyogXG4gICAqIEFsdGhvdWdoIHRoZSBzdHlsZSBhcHBsaWVkIHRvIHRoZSBzaGFkb3cgaG9zdCBpcyBpc29sYXRlZCxcbiAgICogdGhlIGVsZW1lbnQgdGhhdCBhdHRhY2hlZCB0aGUgc2hhZG93IGhvc3QgKGkuZS4gXCJuZXh0anMtcG9ydGFsXCIpXG4gICAqIGlzIHN0aWxsIGFmZmVjdGVkIGJ5IHRoZSBwYXJlbnQncyBzdHlsZSAoZS5nLiBcImJvZHlcIikuIFRoaXMgbWF5XG4gICAqIG9jY3VyIHN0eWxlIGNvbmZsaWN0cyBsaWtlIFwiZGlzcGxheTogZmxleFwiLCB3aXRoIG90aGVyIGNoaWxkcmVuXG4gICAqIGVsZW1lbnRzIHRoZXJlZm9yZSBnaXZlIHRoZSBzaGFkb3cgaG9zdCBhbiBhYnNvbHV0ZSBwb3NpdGlvbi5cbiAgICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAtLWNvbG9yLWZvbnQ6ICM3NTc1NzU7XG4gIC0tY29sb3ItYmFja2Ryb3A6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC44KTtcbiAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMTQ1KTtcblxuICAtLWNvbG9yLXRpdGxlLWNvbG9yOiAjMWYxZjFmO1xuICAtLWNvbG9yLXN0YWNrLW5vdGVzOiAjNzc3O1xuXG4gIC0tY29sb3ItYWNjZW50cy0xOiAjODA4MDgwO1xuICAtLWNvbG9yLWFjY2VudHMtMjogIzIyMjIyMjtcbiAgLS1jb2xvci1hY2NlbnRzLTM6ICM0MDQwNDA7XG5cbiAgLS1mb250LXN0YWNrLW1vbm9zcGFjZTogJ19fbmV4dGpzLUdlaXN0IE1vbm8nLCAnR2Vpc3QgTW9ubycsICdTRk1vbm8tUmVndWxhcicsXG4gICAgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlO1xuICAtLWZvbnQtc3RhY2stc2FuczogJ19fbmV4dGpzLUdlaXN0JywgJ0dlaXN0JywgLWFwcGxlLXN5c3RlbSwgJ1NvdXJjZSBTYW5zIFBybycsXG4gICAgc2Fucy1zZXJpZjtcblxuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcbiAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9uZTtcblxuICAvKiBUT0RPOiBSZW1vdmUgcmVwbGFjZWQgb25lcy4gKi9cbiAgLS1zaGFkb3ctc206IDAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpO1xuICAtLXNoYWRvdzogMCAxcHggM3B4IDAgcmdiKDAgMCAwIC8gMC4xKSwgMCAxcHggMnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS1zaGFkb3ctbWQ6IDAgNHB4IDZweCAtMXB4IHJnYigwIDAgMCAvIDAuMSksIDAgMnB4IDRweCAtMnB4IHJnYigwIDAgMCAvIDAuMSk7XG4gIC0tc2hhZG93LWxnOiAwIDEwcHggMTVweCAtM3B4IHJnYigwIDAgMCAvIDAuMSksXG4gICAgMCA0cHggNnB4IC00cHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS1zaGFkb3cteGw6IDAgMjBweCAyNXB4IC01cHggcmdiKDAgMCAwIC8gMC4xKSxcbiAgICAwIDhweCAxMHB4IC02cHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS1zaGFkb3ctMnhsOiAwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjI1KTtcbiAgLS1zaGFkb3ctaW5uZXI6IGluc2V0IDAgMnB4IDRweCAwIHJnYigwIDAgMCAvIDAuMDUpO1xuICAtLXNoYWRvdy1ub25lOiAwIDAgIzAwMDA7XG5cbiAgLS1zaGFkb3ctc21hbGw6IDBweCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gIC0tc2hhZG93LW1lbnU6IDBweCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wMiksXG4gICAgMHB4IDRweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMDQpLCAwcHggMTZweCAyNHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcblxuICAtLWZvY3VzLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XG4gIC0tZm9jdXMtcmluZzogMnB4IHNvbGlkIHZhcigtLWZvY3VzLWNvbG9yKTtcblxuICAtLXRpbWluZy1zd2lmdDogY3ViaWMtYmV6aWVyKDAuMjMsIDAuODgsIDAuMjYsIDAuOTIpO1xuICAtLXRpbWluZy1vdmVybGF5OiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjEpO1xuICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgLS10aW1pbmctYm91bmNlOiBsaW5lYXIoMCAwJSwgMC4wMDU4NzEgMSUsIDAuMDIyMDU4IDIlLCAwLjA0NjYxMiAzJSwgMC4wNzc4MjMgNCUsIDAuMTE0MTk5IDUlLCAwLjE1NDQ0MSA2JSwgMC4xOTc0MzEgNy4wMDAwMDAwMDAwMDAwMDElLCAwLjI0MjIwOCA4JSwgMC4yODc5NTkgOSUsIDAuMzMzOTk1IDEwJSwgMC4zNzk3NDMgMTElLCAwLjQyNDczMiAxMiUsIDAuNDY4NTggMTMlLCAwLjUxMDk4MiAxNC4wMDAwMDAwMDAwMDAwMDIlLCAwLjU1MTcwMiAxNSUsIDAuNTkwNTY0IDE2JSwgMC42Mjc0NDUgMTclLCAwLjY2MjI2MSAxOCUsIDAuNjk0OTcxIDE5JSwgMC43MjU1NjEgMjAlLCAwLjc1NDA0NyAyMSUsIDAuNzgwNDYyIDIyJSwgMC44MDQ4NjEgMjMlLCAwLjgyNzMxIDI0JSwgMC44NDc4ODggMjUlLCAwLjg2NjY3OSAyNiUsIDAuODgzNzc1IDI3JSwgMC44OTkyNzIgMjguMDAwMDAwMDAwMDAwMDA0JSwgMC45MTMyNjcgMjguOTk5OTk5OTk5OTk5OTk2JSwgMC45MjU4NTYgMzAlLCAwLjkzNzEzNyAzMSUsIDAuOTQ3MjA1IDMyJSwgMC45NTYxNTMgMzMlLCAwLjk2NDA3IDM0JSwgMC45NzEwNDMgMzUlLCAwLjk3NzE1MyAzNiUsIDAuOTgyNDc5IDM3JSwgMC45ODcwOTQgMzglLCAwLjk5MTA2NiAzOSUsIDAuOTk0NDYyIDQwJSwgMC45OTczMzkgNDElLCAwLjk5OTc1NSA0MiUsIDEuMDAxNzYxIDQzJSwgMS4wMDM0MDQgNDQlLCAxLjAwNDcyNyA0NSUsIDEuMDA1NzcgNDYlLCAxLjAwNjU2OSA0NyUsIDEuMDA3MTU3IDQ4JSwgMS4wMDc1NjMgNDklLCAxLjAwNzgxMyA1MCUsIDEuMDA3OTMxIDUxJSwgMS4wMDc5MzkgNTIlLCAxLjAwNzg1NSA1MyUsIDEuMDA3Njk3IDU0JSwgMS4wMDc0NzcgNTUuMDAwMDAwMDAwMDAwMDElLCAxLjAwNzIxIDU2LjAwMDAwMDAwMDAwMDAxJSwgMS4wMDY5MDcgNTYuOTk5OTk5OTk5OTk5OTklLCAxLjAwNjU3NiA1Ny45OTk5OTk5OTk5OTk5OSUsIDEuMDA2MjI4IDU5JSwgMS4wMDU4NjggNjAlLCAxLjAwNTUwMyA2MSUsIDEuMDA1MTM3IDYyJSwgMS4wMDQ3NzYgNjMlLCAxLjAwNDQyMiA2NCUsIDEuMDA0MDc4IDY1JSwgMS4wMDM3NDYgNjYlLCAxLjAwMzQyOSA2NyUsIDEuMDAzMTI3IDY4JSwgMS4wMDI4NCA2OSUsIDEuMDAyNTcxIDcwJSwgMS4wMDIzMTggNzElLCAxLjAwMjA4MiA3MiUsIDEuMDAxODYzIDczJSwgMS4wMDE2NiA3NCUsIDEuMDAxNDczIDc1JSwgMS4wMDEzMDEgNzYlLCAxLjAwMTE0MyA3NyUsIDEuMDAxIDc4JSwgMS4wMDA4NjkgNzklLCAxLjAwMDc1MiA4MCUsIDEuMDAwNjQ1IDgxJSwgMS4wMDA1NSA4MiUsIDEuMDAwNDY0IDgzJSwgMS4wMDAzODggODQlLCAxLjAwMDMyMSA4NSUsIDEuMDAwMjYxIDg2JSwgMS4wMDAyMDkgODclLCAxLjAwMDE2MyA4OCUsIDEuMDAwMTIzIDg5JSwgMS4wMDAwODggOTAlKTtcblxuICAtLXJvdW5kZWQtbm9uZTogMHB4O1xuICAtLXJvdW5kZWQtc206IDJweDtcbiAgLS1yb3VuZGVkLW1kOiA0cHg7XG4gIC0tcm91bmRlZC1tZC0yOiA2cHg7XG4gIC0tcm91bmRlZC1sZzogOHB4O1xuICAtLXJvdW5kZWQteGw6IDEycHg7XG4gIC0tcm91bmRlZC0yeGw6IDE2cHg7XG4gIC0tcm91bmRlZC0zeGw6IDI0cHg7XG4gIC0tcm91bmRlZC00eGw6IDMycHg7XG4gIC0tcm91bmRlZC1mdWxsOiA5OTk5cHg7XG5cbiAgLyogXG4gICAgVGhpcyB2YWx1ZSBnZXRzIHNldCBmcm9tIHRoZSBEZXYgVG9vbHMgcHJlZmVyZW5jZXMsXG4gICAgYW5kIHdlIHVzZSB0aGUgZm9sbG93aW5nIC0tc2l6ZS0qIHZhcmlhYmxlcyB0byBcbiAgICBzY2FsZSB0aGUgcmVsZXZhbnQgZWxlbWVudHMuXG5cbiAgICBUaGUgcmVhc29uIHdoeSB3ZSBkb24ndCByZWx5IG9uIHJlbSB2YWx1ZXMgaXMgYmVjYXVzZVxuICAgIGlmIGFuIGFwcCBzZXRzIHRoZWlyIHJvb3QgZm9udCBzaXplIHRvIHNvbWV0aGluZyB0aW55LCBcbiAgICBpdCBmZWVscyB1bmV4cGVjdGVkIHRvIGhhdmUgdGhlIGFwcCByb290IHNpemUgbGVhayBcbiAgICBpbnRvIGEgTmV4dC5qcyBzdXJmYWNlLlxuXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2Rpc2N1c3Npb25zLzc2ODEyXG4gICovXG4gIC0tbmV4dGpzLWRldi10b29scy1zY2FsZTogMTtcbiAgLS1zaXplLTE6IGNhbGMoMXB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMjogY2FsYygycHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0zOiBjYWxjKDNweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTQ6IGNhbGMoNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtNTogY2FsYyg1cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS02OiBjYWxjKDZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTc6IGNhbGMoN3B4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtODogY2FsYyg4cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS05OiBjYWxjKDlweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTEwOiBjYWxjKDEwcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0xMTogY2FsYygxMXB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMTI6IGNhbGMoMTJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTEzOiBjYWxjKDEzcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0xNDogY2FsYygxNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMTU6IGNhbGMoMTVweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTE2OiBjYWxjKDE2cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0xNzogY2FsYygxN3B4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMTg6IGNhbGMoMThweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTIwOiBjYWxjKDIwcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0yMjogY2FsYygyMnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMjQ6IGNhbGMoMjRweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTI2OiBjYWxjKDI2cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0yODogY2FsYygyOHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMzA6IGNhbGMoMzBweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTMyOiBjYWxjKDMycHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS0zNDogY2FsYygzNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtMzY6IGNhbGMoMzZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTM4OiBjYWxjKDM4cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS00MDogY2FsYyg0MHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtNDI6IGNhbGMoNDJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcbiAgLS1zaXplLTQ0OiBjYWxjKDQ0cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XG4gIC0tc2l6ZS00NjogY2FsYyg0NnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xuICAtLXNpemUtNDg6IGNhbGMoNDhweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG5hIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcbiAgfVxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xuICB9XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3N0eWxlcy9kZWZhdWx0LXRoZW1lLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRTs7Ozs7O0lBTUU7RUFDRixrQkFBa0I7O0VBRWxCLHFCQUFxQjtFQUNyQiwwQ0FBMEM7RUFDMUMsMkNBQTJDOztFQUUzQyw0QkFBNEI7RUFDNUIseUJBQXlCOztFQUV6QiwwQkFBMEI7RUFDMUIsMEJBQTBCO0VBQzFCLDBCQUEwQjs7RUFFMUI7MERBQ3dEO0VBQ3hEO2NBQ1k7O0VBRVosbUNBQW1DO0VBQ25DLDRCQUE0Qjs7RUFFNUIsZ0NBQWdDO0VBQ2hDLDBDQUEwQztFQUMxQyx1RUFBdUU7RUFDdkUsNkVBQTZFO0VBQzdFO21DQUNpQztFQUNqQztvQ0FDa0M7RUFDbEMsaURBQWlEO0VBQ2pELG1EQUFtRDtFQUNuRCx3QkFBd0I7O0VBRXhCLCtDQUErQztFQUMvQztnRkFDOEU7O0VBRTlFLG9DQUFvQztFQUNwQywwQ0FBMEM7O0VBRTFDLG9EQUFvRDtFQUNwRCx1REFBdUQ7RUFDdkQsb0JBQW9CO0VBQ3BCLGkzQ0FBaTNDOztFQUVqM0MsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsc0JBQXNCOztFQUV0Qjs7Ozs7Ozs7Ozs7R0FXQztFQUNELDJCQUEyQjtFQUMzQixtREFBbUQ7RUFDbkQsbURBQW1EO0VBQ25ELG1EQUFtRDtFQUNuRCxtREFBbUQ7RUFDbkQsbURBQW1EO0VBQ25ELG1EQUFtRDtFQUNuRCxtREFBbUQ7RUFDbkQsbURBQW1EO0VBQ25ELG1EQUFtRDtFQUNuRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDtFQUNyRCxxREFBcUQ7RUFDckQscURBQXFEO0VBQ3JELHFEQUFxRDs7RUFFckQ7SUFDRSxhQUFhO0VBQ2Y7QUFDRjs7QUFFQTs7Ozs7O0VBTUUsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUI7SUFDRSw0QkFBNEI7RUFDOUI7RUFDQTtJQUNFLDBCQUEwQjtFQUM1QjtBQUNGXCIsc291cmNlc0NvbnRlbnQ6W1wiOmhvc3Qge1xcbiAgLyogXFxuICAgKiBBbHRob3VnaCB0aGUgc3R5bGUgYXBwbGllZCB0byB0aGUgc2hhZG93IGhvc3QgaXMgaXNvbGF0ZWQsXFxuICAgKiB0aGUgZWxlbWVudCB0aGF0IGF0dGFjaGVkIHRoZSBzaGFkb3cgaG9zdCAoaS5lLiBcXFwibmV4dGpzLXBvcnRhbFxcXCIpXFxuICAgKiBpcyBzdGlsbCBhZmZlY3RlZCBieSB0aGUgcGFyZW50J3Mgc3R5bGUgKGUuZy4gXFxcImJvZHlcXFwiKS4gVGhpcyBtYXlcXG4gICAqIG9jY3VyIHN0eWxlIGNvbmZsaWN0cyBsaWtlIFxcXCJkaXNwbGF5OiBmbGV4XFxcIiwgd2l0aCBvdGhlciBjaGlsZHJlblxcbiAgICogZWxlbWVudHMgdGhlcmVmb3JlIGdpdmUgdGhlIHNoYWRvdyBob3N0IGFuIGFic29sdXRlIHBvc2l0aW9uLlxcbiAgICovXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuXFxuICAtLWNvbG9yLWZvbnQ6ICM3NTc1NzU7XFxuICAtLWNvbG9yLWJhY2tkcm9wOiByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuOCk7XFxuICAtLWNvbG9yLWJvcmRlci1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4xNDUpO1xcblxcbiAgLS1jb2xvci10aXRsZS1jb2xvcjogIzFmMWYxZjtcXG4gIC0tY29sb3Itc3RhY2stbm90ZXM6ICM3Nzc7XFxuXFxuICAtLWNvbG9yLWFjY2VudHMtMTogIzgwODA4MDtcXG4gIC0tY29sb3ItYWNjZW50cy0yOiAjMjIyMjIyO1xcbiAgLS1jb2xvci1hY2NlbnRzLTM6ICM0MDQwNDA7XFxuXFxuICAtLWZvbnQtc3RhY2stbW9ub3NwYWNlOiAnX19uZXh0anMtR2Vpc3QgTW9ubycsICdHZWlzdCBNb25vJywgJ1NGTW9uby1SZWd1bGFyJyxcXG4gICAgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlO1xcbiAgLS1mb250LXN0YWNrLXNhbnM6ICdfX25leHRqcy1HZWlzdCcsICdHZWlzdCcsIC1hcHBsZS1zeXN0ZW0sICdTb3VyY2UgU2FucyBQcm8nLFxcbiAgICBzYW5zLXNlcmlmO1xcblxcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stc2Fucyk7XFxuICBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub25lO1xcblxcbiAgLyogVE9ETzogUmVtb3ZlIHJlcGxhY2VkIG9uZXMuICovXFxuICAtLXNoYWRvdy1zbTogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7XFxuICAtLXNoYWRvdzogMCAxcHggM3B4IDAgcmdiKDAgMCAwIC8gMC4xKSwgMCAxcHggMnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gIC0tc2hhZG93LW1kOiAwIDRweCA2cHggLTFweCByZ2IoMCAwIDAgLyAwLjEpLCAwIDJweCA0cHggLTJweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgLS1zaGFkb3ctbGc6IDAgMTBweCAxNXB4IC0zcHggcmdiKDAgMCAwIC8gMC4xKSxcXG4gICAgMCA0cHggNnB4IC00cHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gIC0tc2hhZG93LXhsOiAwIDIwcHggMjVweCAtNXB4IHJnYigwIDAgMCAvIDAuMSksXFxuICAgIDAgOHB4IDEwcHggLTZweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgLS1zaGFkb3ctMnhsOiAwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjI1KTtcXG4gIC0tc2hhZG93LWlubmVyOiBpbnNldCAwIDJweCA0cHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcXG4gIC0tc2hhZG93LW5vbmU6IDAgMCAjMDAwMDtcXG5cXG4gIC0tc2hhZG93LXNtYWxsOiAwcHggMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDQpO1xcbiAgLS1zaGFkb3ctbWVudTogMHB4IDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjAyKSxcXG4gICAgMHB4IDRweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMDQpLCAwcHggMTZweCAyNHB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcXG5cXG4gIC0tZm9jdXMtY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtODAwKTtcXG4gIC0tZm9jdXMtcmluZzogMnB4IHNvbGlkIHZhcigtLWZvY3VzLWNvbG9yKTtcXG5cXG4gIC0tdGltaW5nLXN3aWZ0OiBjdWJpYy1iZXppZXIoMC4yMywgMC44OCwgMC4yNiwgMC45Mik7XFxuICAtLXRpbWluZy1vdmVybGF5OiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjEpO1xcbiAgLyogcHJldHRpZXItaWdub3JlICovXFxuICAtLXRpbWluZy1ib3VuY2U6IGxpbmVhcigwIDAlLCAwLjAwNTg3MSAxJSwgMC4wMjIwNTggMiUsIDAuMDQ2NjEyIDMlLCAwLjA3NzgyMyA0JSwgMC4xMTQxOTkgNSUsIDAuMTU0NDQxIDYlLCAwLjE5NzQzMSA3LjAwMDAwMDAwMDAwMDAwMSUsIDAuMjQyMjA4IDglLCAwLjI4Nzk1OSA5JSwgMC4zMzM5OTUgMTAlLCAwLjM3OTc0MyAxMSUsIDAuNDI0NzMyIDEyJSwgMC40Njg1OCAxMyUsIDAuNTEwOTgyIDE0LjAwMDAwMDAwMDAwMDAwMiUsIDAuNTUxNzAyIDE1JSwgMC41OTA1NjQgMTYlLCAwLjYyNzQ0NSAxNyUsIDAuNjYyMjYxIDE4JSwgMC42OTQ5NzEgMTklLCAwLjcyNTU2MSAyMCUsIDAuNzU0MDQ3IDIxJSwgMC43ODA0NjIgMjIlLCAwLjgwNDg2MSAyMyUsIDAuODI3MzEgMjQlLCAwLjg0Nzg4OCAyNSUsIDAuODY2Njc5IDI2JSwgMC44ODM3NzUgMjclLCAwLjg5OTI3MiAyOC4wMDAwMDAwMDAwMDAwMDQlLCAwLjkxMzI2NyAyOC45OTk5OTk5OTk5OTk5OTYlLCAwLjkyNTg1NiAzMCUsIDAuOTM3MTM3IDMxJSwgMC45NDcyMDUgMzIlLCAwLjk1NjE1MyAzMyUsIDAuOTY0MDcgMzQlLCAwLjk3MTA0MyAzNSUsIDAuOTc3MTUzIDM2JSwgMC45ODI0NzkgMzclLCAwLjk4NzA5NCAzOCUsIDAuOTkxMDY2IDM5JSwgMC45OTQ0NjIgNDAlLCAwLjk5NzMzOSA0MSUsIDAuOTk5NzU1IDQyJSwgMS4wMDE3NjEgNDMlLCAxLjAwMzQwNCA0NCUsIDEuMDA0NzI3IDQ1JSwgMS4wMDU3NyA0NiUsIDEuMDA2NTY5IDQ3JSwgMS4wMDcxNTcgNDglLCAxLjAwNzU2MyA0OSUsIDEuMDA3ODEzIDUwJSwgMS4wMDc5MzEgNTElLCAxLjAwNzkzOSA1MiUsIDEuMDA3ODU1IDUzJSwgMS4wMDc2OTcgNTQlLCAxLjAwNzQ3NyA1NS4wMDAwMDAwMDAwMDAwMSUsIDEuMDA3MjEgNTYuMDAwMDAwMDAwMDAwMDElLCAxLjAwNjkwNyA1Ni45OTk5OTk5OTk5OTk5OSUsIDEuMDA2NTc2IDU3Ljk5OTk5OTk5OTk5OTk5JSwgMS4wMDYyMjggNTklLCAxLjAwNTg2OCA2MCUsIDEuMDA1NTAzIDYxJSwgMS4wMDUxMzcgNjIlLCAxLjAwNDc3NiA2MyUsIDEuMDA0NDIyIDY0JSwgMS4wMDQwNzggNjUlLCAxLjAwMzc0NiA2NiUsIDEuMDAzNDI5IDY3JSwgMS4wMDMxMjcgNjglLCAxLjAwMjg0IDY5JSwgMS4wMDI1NzEgNzAlLCAxLjAwMjMxOCA3MSUsIDEuMDAyMDgyIDcyJSwgMS4wMDE4NjMgNzMlLCAxLjAwMTY2IDc0JSwgMS4wMDE0NzMgNzUlLCAxLjAwMTMwMSA3NiUsIDEuMDAxMTQzIDc3JSwgMS4wMDEgNzglLCAxLjAwMDg2OSA3OSUsIDEuMDAwNzUyIDgwJSwgMS4wMDA2NDUgODElLCAxLjAwMDU1IDgyJSwgMS4wMDA0NjQgODMlLCAxLjAwMDM4OCA4NCUsIDEuMDAwMzIxIDg1JSwgMS4wMDAyNjEgODYlLCAxLjAwMDIwOSA4NyUsIDEuMDAwMTYzIDg4JSwgMS4wMDAxMjMgODklLCAxLjAwMDA4OCA5MCUpO1xcblxcbiAgLS1yb3VuZGVkLW5vbmU6IDBweDtcXG4gIC0tcm91bmRlZC1zbTogMnB4O1xcbiAgLS1yb3VuZGVkLW1kOiA0cHg7XFxuICAtLXJvdW5kZWQtbWQtMjogNnB4O1xcbiAgLS1yb3VuZGVkLWxnOiA4cHg7XFxuICAtLXJvdW5kZWQteGw6IDEycHg7XFxuICAtLXJvdW5kZWQtMnhsOiAxNnB4O1xcbiAgLS1yb3VuZGVkLTN4bDogMjRweDtcXG4gIC0tcm91bmRlZC00eGw6IDMycHg7XFxuICAtLXJvdW5kZWQtZnVsbDogOTk5OXB4O1xcblxcbiAgLyogXFxuICAgIFRoaXMgdmFsdWUgZ2V0cyBzZXQgZnJvbSB0aGUgRGV2IFRvb2xzIHByZWZlcmVuY2VzLFxcbiAgICBhbmQgd2UgdXNlIHRoZSBmb2xsb3dpbmcgLS1zaXplLSogdmFyaWFibGVzIHRvIFxcbiAgICBzY2FsZSB0aGUgcmVsZXZhbnQgZWxlbWVudHMuXFxuXFxuICAgIFRoZSByZWFzb24gd2h5IHdlIGRvbid0IHJlbHkgb24gcmVtIHZhbHVlcyBpcyBiZWNhdXNlXFxuICAgIGlmIGFuIGFwcCBzZXRzIHRoZWlyIHJvb3QgZm9udCBzaXplIHRvIHNvbWV0aGluZyB0aW55LCBcXG4gICAgaXQgZmVlbHMgdW5leHBlY3RlZCB0byBoYXZlIHRoZSBhcHAgcm9vdCBzaXplIGxlYWsgXFxuICAgIGludG8gYSBOZXh0LmpzIHN1cmZhY2UuXFxuXFxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9kaXNjdXNzaW9ucy83NjgxMlxcbiAgKi9cXG4gIC0tbmV4dGpzLWRldi10b29scy1zY2FsZTogMTtcXG4gIC0tc2l6ZS0xOiBjYWxjKDFweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0yOiBjYWxjKDJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0zOiBjYWxjKDNweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS00OiBjYWxjKDRweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS01OiBjYWxjKDVweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS02OiBjYWxjKDZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS03OiBjYWxjKDdweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS04OiBjYWxjKDhweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS05OiBjYWxjKDlweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0xMDogY2FsYygxMHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTExOiBjYWxjKDExcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMTI6IGNhbGMoMTJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0xMzogY2FsYygxM3B4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTE0OiBjYWxjKDE0cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMTU6IGNhbGMoMTVweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0xNjogY2FsYygxNnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTE3OiBjYWxjKDE3cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMTg6IGNhbGMoMThweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0yMDogY2FsYygyMHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTIyOiBjYWxjKDIycHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMjQ6IGNhbGMoMjRweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0yNjogY2FsYygyNnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTI4OiBjYWxjKDI4cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMzA6IGNhbGMoMzBweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0zMjogY2FsYygzMnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTM0OiBjYWxjKDM0cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtMzY6IGNhbGMoMzZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS0zODogY2FsYygzOHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTQwOiBjYWxjKDQwcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtNDI6IGNhbGMoNDJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gIC0tc2l6ZS00NDogY2FsYyg0NHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgLS1zaXplLTQ2OiBjYWxjKDQ2cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAtLXNpemUtNDg6IGNhbGMoNDhweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG5cXG4gIEBtZWRpYSBwcmludCB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcblxcbmgxLFxcbmgyLFxcbmgzLFxcbmg0LFxcbmg1LFxcbmg2IHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMS41O1xcbn1cXG5cXG5hIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTkwMCk7XFxuICAmOmhvdmVyIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcXG4gIH1cXG4gICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgfVxcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHQpe3ZhciBuPVwiXCIscj12b2lkIDAhPT10WzVdO3JldHVybiB0WzRdJiYobis9XCJAc3VwcG9ydHMgKFwiLmNvbmNhdCh0WzRdLFwiKSB7XCIpKSx0WzJdJiYobis9XCJAbWVkaWEgXCIuY29uY2F0KHRbMl0sXCIge1wiKSksciYmKG4rPVwiQGxheWVyXCIuY29uY2F0KHRbNV0ubGVuZ3RoPjA/XCIgXCIuY29uY2F0KHRbNV0pOlwiXCIsXCIge1wiKSksbis9ZSh0KSxyJiYobis9XCJ9XCIpLHRbMl0mJihuKz1cIn1cIiksdFs0XSYmKG4rPVwifVwiKSxufSkuam9pbihcIlwiKX0sdC5pPWZ1bmN0aW9uKGUsbixyLG8sYSl7XCJzdHJpbmdcIj09dHlwZW9mIGUmJihlPVtbbnVsbCxlLHZvaWQgMF1dKTt2YXIgaT17fTtpZihyKWZvcih2YXIgbD0wO2w8dGhpcy5sZW5ndGg7bCsrKXt2YXIgcz10aGlzW2xdWzBdO251bGwhPXMmJihpW3NdPSEwKX1mb3IodmFyIGM9MDtjPGUubGVuZ3RoO2MrKyl7dmFyIHU9W10uY29uY2F0KGVbY10pO3ImJmlbdVswXV18fCh2b2lkIDAhPT1hJiYodm9pZCAwPT09dVs1XXx8KHVbMV09XCJAbGF5ZXJcIi5jb25jYXQodVs1XS5sZW5ndGg+MD9cIiBcIi5jb25jYXQodVs1XSk6XCJcIixcIiB7XCIpLmNvbmNhdCh1WzFdLFwifVwiKSksdVs1XT1hKSxuJiYodVsyXSYmKHVbMV09XCJAbWVkaWEgXCIuY29uY2F0KHVbMl0sXCIge1wiKS5jb25jYXQodVsxXSxcIn1cIikpLHVbMl09biksbyYmKHVbNF0/KHVbMV09XCJAc3VwcG9ydHMgKFwiLmNvbmNhdCh1WzRdLFwiKSB7XCIpLmNvbmNhdCh1WzFdLFwifVwiKSx1WzRdPW8pOnVbNF09XCJcIi5jb25jYXQobykpLHQucHVzaCh1KSl9fSx0fX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWVbMV0sbj1lWzNdO2lmKCFuKXJldHVybiB0O2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGJ0b2Epe3ZhciByPWJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KG4pKSkpO3JldHVyblt0XS5jb25jYXQoW1wiLyojIFwiLmNvbmNhdChcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChyKSxcIiAqL1wiKV0pLmpvaW4oXCJcXG5cIil9cmV0dXJuW3RdLmpvaW4oXCJcXG5cIil9fSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO3ZhciB0PVtdO2Z1bmN0aW9uIG4oZSl7Zm9yKHZhciBuPS0xLHI9MDtyPHQubGVuZ3RoO3IrKylpZih0W3JdLmlkZW50aWZpZXI9PT1lKXtuPXI7YnJlYWt9cmV0dXJuIG59ZnVuY3Rpb24gcihlLHIpe2Zvcih2YXIgbz17fSxhPVtdLGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIGw9ZVtpXSxzPXIuYmFzZT9sWzBdK3IuYmFzZTpsWzBdLGM9b1tzXXx8MCx1PVwiXCIuY29uY2F0KHMsXCIgXCIpLmNvbmNhdChjKTtvW3NdPWMrMTt2YXIgZD1uKHUpLGY9e2NzczpsWzFdLG1lZGlhOmxbMl0sc291cmNlTWFwOmxbM10sc3VwcG9ydHM6bFs0XSxsYXllcjpsWzVdfTtpZigtMSE9PWQpdFtkXS5yZWZlcmVuY2VzKyssdFtkXS51cGRhdGVyKGYpO2Vsc2V7dmFyIHA9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmRvbUFQSSh0KTtyZXR1cm4gbi51cGRhdGUoZSksZnVuY3Rpb24odCl7dD8odC5jc3MhPT1lLmNzc3x8dC5tZWRpYSE9PWUubWVkaWF8fHQuc291cmNlTWFwIT09ZS5zb3VyY2VNYXB8fHQuc3VwcG9ydHMhPT1lLnN1cHBvcnRzfHx0LmxheWVyIT09ZS5sYXllcikmJm4udXBkYXRlKGU9dCk6bi5yZW1vdmUoKX19KGYscik7ci5ieUluZGV4PWksdC5zcGxpY2UoaSwwLHtpZGVudGlmaWVyOnUsdXBkYXRlcjpwLHJlZmVyZW5jZXM6MX0pfWEucHVzaCh1KX1yZXR1cm4gYX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSxvKXt2YXIgYT1yKGU9ZXx8W10sbz1vfHx7fSk7cmV0dXJuIGZ1bmN0aW9uKGUpe2U9ZXx8W107Zm9yKHZhciBpPTA7aTxhLmxlbmd0aDtpKyspe3ZhciBsPW4oYVtpXSk7dFtsXS5yZWZlcmVuY2VzLS19Zm9yKHZhciBzPXIoZSxvKSxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciB1PW4oYVtjXSk7MD09PXRbdV0ucmVmZXJlbmNlcyYmKHRbdV0udXBkYXRlcigpLHQuc3BsaWNlKHUsMSkpfWE9c319fSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7cmV0dXJuIGUuc2V0QXR0cmlidXRlcyh0LGUuYXR0cmlidXRlcyksZS5pbnNlcnQodCxlLm9wdGlvbnMpLHR9fSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9bi5uYzt0JiZlLnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsdCl9fSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI6ZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBkb2N1bWVudClyZXR1cm57dXBkYXRlOmZ1bmN0aW9uKCl7fSxyZW1vdmU6ZnVuY3Rpb24oKXt9fTt2YXIgdD1lLmluc2VydFN0eWxlRWxlbWVudChlKTtyZXR1cm57dXBkYXRlOmZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPVwiXCIsbi5zdXBwb3J0cyYmKHIrPVwiQHN1cHBvcnRzIChcIi5jb25jYXQobi5zdXBwb3J0cyxcIikge1wiKSksbi5tZWRpYSYmKHIrPVwiQG1lZGlhIFwiLmNvbmNhdChuLm1lZGlhLFwiIHtcIikpLChvPXZvaWQgMCE9PW4ubGF5ZXIpJiYocis9XCJAbGF5ZXJcIi5jb25jYXQobi5sYXllci5sZW5ndGg+MD9cIiBcIi5jb25jYXQobi5sYXllcik6XCJcIixcIiB7XCIpKSxyKz1uLmNzcyxvJiYocis9XCJ9XCIpLG4ubWVkaWEmJihyKz1cIn1cIiksbi5zdXBwb3J0cyYmKHIrPVwifVwiKSwoYT1uLnNvdXJjZU1hcCkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBidG9hJiYocis9XCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShhKSkpKSxcIiAqL1wiKSksZS5zdHlsZVRhZ1RyYW5zZm9ybShyLHQsZS5vcHRpb25zKX0scmVtb3ZlOmZ1bmN0aW9uKCl7IWZ1bmN0aW9uKGUpe2lmKG51bGwhPT1lLnBhcmVudE5vZGUpZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSh0KX19fX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKHQuc3R5bGVTaGVldCl0LnN0eWxlU2hlZXQuY3NzVGV4dD1lO2Vsc2V7Zm9yKDt0LmZpcnN0Q2hpbGQ7KXQucmVtb3ZlQ2hpbGQodC5maXJzdENoaWxkKTt0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKX19fSxcIi4vZGlzdC9jb21waWxlZC9hbnNlci9pbmRleC5qc1wiOmZ1bmN0aW9uKGUpeygoKT0+e1widXNlIHN0cmljdFwiO3ZhciB0PXsyMTE6ZT0+e3ZhciB0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gbiYmZSh0LnByb3RvdHlwZSxuKSxyJiZlKHQsciksdH19KCksbj1bW3tjb2xvcjpcIjAsIDAsIDBcIixjbGFzczpcImFuc2ktYmxhY2tcIn0se2NvbG9yOlwiMTg3LCAwLCAwXCIsY2xhc3M6XCJhbnNpLXJlZFwifSx7Y29sb3I6XCIwLCAxODcsIDBcIixjbGFzczpcImFuc2ktZ3JlZW5cIn0se2NvbG9yOlwiMTg3LCAxODcsIDBcIixjbGFzczpcImFuc2kteWVsbG93XCJ9LHtjb2xvcjpcIjAsIDAsIDE4N1wiLGNsYXNzOlwiYW5zaS1ibHVlXCJ9LHtjb2xvcjpcIjE4NywgMCwgMTg3XCIsY2xhc3M6XCJhbnNpLW1hZ2VudGFcIn0se2NvbG9yOlwiMCwgMTg3LCAxODdcIixjbGFzczpcImFuc2ktY3lhblwifSx7Y29sb3I6XCIyNTUsMjU1LDI1NVwiLGNsYXNzOlwiYW5zaS13aGl0ZVwifV0sW3tjb2xvcjpcIjg1LCA4NSwgODVcIixjbGFzczpcImFuc2ktYnJpZ2h0LWJsYWNrXCJ9LHtjb2xvcjpcIjI1NSwgODUsIDg1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1yZWRcIn0se2NvbG9yOlwiMCwgMjU1LCAwXCIsY2xhc3M6XCJhbnNpLWJyaWdodC1ncmVlblwifSx7Y29sb3I6XCIyNTUsIDI1NSwgODVcIixjbGFzczpcImFuc2ktYnJpZ2h0LXllbGxvd1wifSx7Y29sb3I6XCI4NSwgODUsIDI1NVwiLGNsYXNzOlwiYW5zaS1icmlnaHQtYmx1ZVwifSx7Y29sb3I6XCIyNTUsIDg1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LW1hZ2VudGFcIn0se2NvbG9yOlwiODUsIDI1NSwgMjU1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1jeWFuXCJ9LHtjb2xvcjpcIjI1NSwgMjU1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LXdoaXRlXCJ9XV07ZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGUpKXRocm93IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTt0aGlzLmZnPXRoaXMuYmc9dGhpcy5mZ190cnVlY29sb3I9dGhpcy5iZ190cnVlY29sb3I9bnVsbCx0aGlzLmJyaWdodD0wfXJldHVybiB0KGUsbnVsbCxbe2tleTpcImVzY2FwZUZvckh0bWxcIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4obmV3IGUpLmVzY2FwZUZvckh0bWwodCl9fSx7a2V5OlwibGlua2lmeVwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybihuZXcgZSkubGlua2lmeSh0KX19LHtrZXk6XCJhbnNpVG9IdG1sXCIsdmFsdWU6ZnVuY3Rpb24odCxuKXtyZXR1cm4obmV3IGUpLmFuc2lUb0h0bWwodCxuKX19LHtrZXk6XCJhbnNpVG9Kc29uXCIsdmFsdWU6ZnVuY3Rpb24odCxuKXtyZXR1cm4obmV3IGUpLmFuc2lUb0pzb24odCxuKX19LHtrZXk6XCJhbnNpVG9UZXh0XCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKG5ldyBlKS5hbnNpVG9UZXh0KHQpfX1dKSx0KGUsW3trZXk6XCJzZXR1cFBhbGV0dGVcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuUEFMRVRURV9DT0xPUlM9W107Zm9yKHZhciBlPTA7ZTwyOysrZSlmb3IodmFyIHQ9MDt0PDg7Kyt0KXRoaXMuUEFMRVRURV9DT0xPUlMucHVzaChuW2VdW3RdLmNvbG9yKTtmb3IodmFyIHI9WzAsOTUsMTM1LDE3NSwyMTUsMjU1XSxvPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gcltlXStcIiwgXCIrclt0XStcIiwgXCIrcltuXX0sYT0wO2E8NjsrK2EpZm9yKHZhciBpPTA7aTw2OysraSlmb3IodmFyIGw9MDtsPDY7KytsKXRoaXMuUEFMRVRURV9DT0xPUlMucHVzaChvKGEsaSxsKSk7Zm9yKHZhciBzPTgsYz0wO2M8MjQ7KytjLHMrPTEwKXRoaXMuUEFMRVRURV9DT0xPUlMucHVzaChvKHMscyxzKSl9fSx7a2V5OlwiZXNjYXBlRm9ySHRtbFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoL1smPD5dL2dtLGZ1bmN0aW9uKGUpe3JldHVyblwiJlwiPT1lP1wiJmFtcDtcIjpcIjxcIj09ZT9cIiZsdDtcIjpcIj5cIj09ZT9cIiZndDtcIjpcIlwifSl9fSx7a2V5OlwibGlua2lmeVwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoLyhodHRwcz86XFwvXFwvW15cXHNdKykvZ20sZnVuY3Rpb24oZSl7cmV0dXJuJzxhIGhyZWY9XCInK2UrJ1wiPicrZStcIjwvYT5cIn0pfX0se2tleTpcImFuc2lUb0h0bWxcIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnByb2Nlc3MoZSx0LCEwKX19LHtrZXk6XCJhbnNpVG9Kc29uXCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4odD10fHx7fSkuanNvbj0hMCx0LmNsZWFyTGluZT0hMSx0aGlzLnByb2Nlc3MoZSx0LCEwKX19LHtrZXk6XCJhbnNpVG9UZXh0XCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHJvY2VzcyhlLHt9LCExKX19LHtrZXk6XCJwcm9jZXNzXCIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMsbz1lLnNwbGl0KC9cXDAzM1xcWy8pLGE9by5zaGlmdCgpO251bGw9PXQmJih0PXt9KSx0LmNsZWFyTGluZT0vXFxyLy50ZXN0KGUpO3ZhciBpPW8ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiByLnByb2Nlc3NDaHVuayhlLHQsbil9KTtpZih0JiZ0Lmpzb24pe3ZhciBsPXRoaXMucHJvY2Vzc0NodW5rSnNvbihcIlwiKTtyZXR1cm4gbC5jb250ZW50PWEsbC5jbGVhckxpbmU9dC5jbGVhckxpbmUsaS51bnNoaWZ0KGwpLHQucmVtb3ZlX2VtcHR5JiYoaT1pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hZS5pc0VtcHR5KCl9KSksaX1yZXR1cm4gaS51bnNoaWZ0KGEpLGkuam9pbihcIlwiKX19LHtrZXk6XCJwcm9jZXNzQ2h1bmtKc29uXCIsdmFsdWU6ZnVuY3Rpb24oZSx0LHIpe3ZhciBvPSh0PXZvaWQgMD09PXQ/e306dCkudXNlX2NsYXNzZXM9dm9pZCAwIT09dC51c2VfY2xhc3NlcyYmdC51c2VfY2xhc3NlcyxhPXQua2V5PW8/XCJjbGFzc1wiOlwiY29sb3JcIixpPXtjb250ZW50OmUsZmc6bnVsbCxiZzpudWxsLGZnX3RydWVjb2xvcjpudWxsLGJnX3RydWVjb2xvcjpudWxsLGNsZWFyTGluZTp0LmNsZWFyTGluZSxkZWNvcmF0aW9uOm51bGwsd2FzX3Byb2Nlc3NlZDohMSxpc0VtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIWkuY29udGVudH19LGw9ZS5tYXRjaCgvXihbIVxceDNjLVxceDNmXSopKFtcXGQ7XSopKFtcXHgyMC1cXHgyY10qW1xceDQwLVxceDdlXSkoW1xcc1xcU10qKS9tKTtpZighbClyZXR1cm4gaTtpLmNvbnRlbnQ9bFs0XTt2YXIgcz1sWzJdLnNwbGl0KFwiO1wiKTtpZihcIlwiIT09bFsxXXx8XCJtXCIhPT1sWzNdfHwhcilyZXR1cm4gaTtmb3IodGhpcy5kZWNvcmF0aW9uPW51bGw7cy5sZW5ndGg+MDspe3ZhciBjPXBhcnNlSW50KHMuc2hpZnQoKSk7aWYoaXNOYU4oYyl8fDA9PT1jKXRoaXMuZmc9dGhpcy5iZz10aGlzLmRlY29yYXRpb249bnVsbDtlbHNlIGlmKDE9PT1jKXRoaXMuZGVjb3JhdGlvbj1cImJvbGRcIjtlbHNlIGlmKDI9PT1jKXRoaXMuZGVjb3JhdGlvbj1cImRpbVwiO2Vsc2UgaWYoMz09Yyl0aGlzLmRlY29yYXRpb249XCJpdGFsaWNcIjtlbHNlIGlmKDQ9PWMpdGhpcy5kZWNvcmF0aW9uPVwidW5kZXJsaW5lXCI7ZWxzZSBpZig1PT1jKXRoaXMuZGVjb3JhdGlvbj1cImJsaW5rXCI7ZWxzZSBpZig3PT09Yyl0aGlzLmRlY29yYXRpb249XCJyZXZlcnNlXCI7ZWxzZSBpZig4PT09Yyl0aGlzLmRlY29yYXRpb249XCJoaWRkZW5cIjtlbHNlIGlmKDk9PT1jKXRoaXMuZGVjb3JhdGlvbj1cInN0cmlrZXRocm91Z2hcIjtlbHNlIGlmKDM5PT1jKXRoaXMuZmc9bnVsbDtlbHNlIGlmKDQ5PT1jKXRoaXMuYmc9bnVsbDtlbHNlIGlmKGM+PTMwJiZjPDM4KXRoaXMuZmc9blswXVtjJTEwXVthXTtlbHNlIGlmKGM+PTkwJiZjPDk4KXRoaXMuZmc9blsxXVtjJTEwXVthXTtlbHNlIGlmKGM+PTQwJiZjPDQ4KXRoaXMuYmc9blswXVtjJTEwXVthXTtlbHNlIGlmKGM+PTEwMCYmYzwxMDgpdGhpcy5iZz1uWzFdW2MlMTBdW2FdO2Vsc2UgaWYoMzg9PT1jfHw0OD09PWMpe3ZhciB1PTM4PT09YztpZihzLmxlbmd0aD49MSl7dmFyIGQ9cy5zaGlmdCgpO2lmKFwiNVwiPT09ZCYmcy5sZW5ndGg+PTEpe3ZhciBmPXBhcnNlSW50KHMuc2hpZnQoKSk7aWYoZj49MCYmZjw9MjU1KWlmKG8pe3ZhciBwPWY+PTE2P1wiYW5zaS1wYWxldHRlLVwiK2Y6blsrKGY+NyldW2YlOF0uY2xhc3M7dT90aGlzLmZnPXA6dGhpcy5iZz1wfWVsc2UgdGhpcy5QQUxFVFRFX0NPTE9SU3x8dGhpcy5zZXR1cFBhbGV0dGUoKSx1P3RoaXMuZmc9dGhpcy5QQUxFVFRFX0NPTE9SU1tmXTp0aGlzLmJnPXRoaXMuUEFMRVRURV9DT0xPUlNbZl19ZWxzZSBpZihcIjJcIj09PWQmJnMubGVuZ3RoPj0zKXt2YXIgaD1wYXJzZUludChzLnNoaWZ0KCkpLG09cGFyc2VJbnQocy5zaGlmdCgpKSxnPXBhcnNlSW50KHMuc2hpZnQoKSk7aWYoaD49MCYmaDw9MjU1JiZtPj0wJiZtPD0yNTUmJmc+PTAmJmc8PTI1NSl7dmFyIHk9aCtcIiwgXCIrbStcIiwgXCIrZztvP3U/KHRoaXMuZmc9XCJhbnNpLXRydWVjb2xvclwiLHRoaXMuZmdfdHJ1ZWNvbG9yPXkpOih0aGlzLmJnPVwiYW5zaS10cnVlY29sb3JcIix0aGlzLmJnX3RydWVjb2xvcj15KTp1P3RoaXMuZmc9eTp0aGlzLmJnPXl9fX19fXJldHVybiBudWxsPT09dGhpcy5mZyYmbnVsbD09PXRoaXMuYmcmJm51bGw9PT10aGlzLmRlY29yYXRpb258fChpLmZnPXRoaXMuZmcsaS5iZz10aGlzLmJnLGkuZmdfdHJ1ZWNvbG9yPXRoaXMuZmdfdHJ1ZWNvbG9yLGkuYmdfdHJ1ZWNvbG9yPXRoaXMuYmdfdHJ1ZWNvbG9yLGkuZGVjb3JhdGlvbj10aGlzLmRlY29yYXRpb24saS53YXNfcHJvY2Vzc2VkPSEwKSxpfX0se2tleTpcInByb2Nlc3NDaHVua1wiLHZhbHVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10aGlzO3Q9dHx8e307dmFyIG89dGhpcy5wcm9jZXNzQ2h1bmtKc29uKGUsdCxuKTtpZih0Lmpzb24pcmV0dXJuIG87aWYoby5pc0VtcHR5KCkpcmV0dXJuXCJcIjtpZighby53YXNfcHJvY2Vzc2VkKXJldHVybiBvLmNvbnRlbnQ7dmFyIGE9dC51c2VfY2xhc3NlcyxpPVtdLGw9W10scz17fSxjPWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49dm9pZCAwO2ZvcihuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmdC5wdXNoKFwiZGF0YS1cIituKyc9XCInK3IuZXNjYXBlRm9ySHRtbChlW25dKSsnXCInKTtyZXR1cm4gdC5sZW5ndGg+MD9cIiBcIit0LmpvaW4oXCIgXCIpOlwiXCJ9O3JldHVybihvLmZnJiYoYT8obC5wdXNoKG8uZmcrXCItZmdcIiksbnVsbCE9PW8uZmdfdHJ1ZWNvbG9yJiYoc1tcImFuc2ktdHJ1ZWNvbG9yLWZnXCJdPW8uZmdfdHJ1ZWNvbG9yLG8uZmdfdHJ1ZWNvbG9yPW51bGwpKTppLnB1c2goXCJjb2xvcjpyZ2IoXCIrby5mZytcIilcIikpLG8uYmcmJihhPyhsLnB1c2goby5iZytcIi1iZ1wiKSxudWxsIT09by5iZ190cnVlY29sb3ImJihzW1wiYW5zaS10cnVlY29sb3ItYmdcIl09by5iZ190cnVlY29sb3Isby5iZ190cnVlY29sb3I9bnVsbCkpOmkucHVzaChcImJhY2tncm91bmQtY29sb3I6cmdiKFwiK28uYmcrXCIpXCIpKSxvLmRlY29yYXRpb24mJihhP2wucHVzaChcImFuc2ktXCIrby5kZWNvcmF0aW9uKTpcImJvbGRcIj09PW8uZGVjb3JhdGlvbj9pLnB1c2goXCJmb250LXdlaWdodDpib2xkXCIpOlwiZGltXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwib3BhY2l0eTowLjVcIik6XCJpdGFsaWNcIj09PW8uZGVjb3JhdGlvbj9pLnB1c2goXCJmb250LXN0eWxlOml0YWxpY1wiKTpcInJldmVyc2VcIj09PW8uZGVjb3JhdGlvbj9pLnB1c2goXCJmaWx0ZXI6aW52ZXJ0KDEwMCUpXCIpOlwiaGlkZGVuXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwidmlzaWJpbGl0eTpoaWRkZW5cIik6XCJzdHJpa2V0aHJvdWdoXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwidGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaFwiKTppLnB1c2goXCJ0ZXh0LWRlY29yYXRpb246XCIrby5kZWNvcmF0aW9uKSksYSk/JzxzcGFuIGNsYXNzPVwiJytsLmpvaW4oXCIgXCIpKydcIicrYyhzKStcIj5cIitvLmNvbnRlbnQrXCI8L3NwYW4+XCI6JzxzcGFuIHN0eWxlPVwiJytpLmpvaW4oXCI7XCIpKydcIicrYyhzKStcIj5cIitvLmNvbnRlbnQrXCI8L3NwYW4+XCJ9fV0pLGV9KCl9fSxuPXt9O2Z1bmN0aW9uIHIoZSl7dmFyIG89bltlXTtpZih2b2lkIDAhPT1vKXJldHVybiBvLmV4cG9ydHM7dmFyIGE9bltlXT17ZXhwb3J0czp7fX0saT0hMDt0cnl7dFtlXShhLGEuZXhwb3J0cyxyKSxpPSExfWZpbmFsbHl7aSYmZGVsZXRlIG5bZV19cmV0dXJuIGEuZXhwb3J0c31yLmFiPVwiLy9cIixlLmV4cG9ydHM9cigyMTEpfSkoKX0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tY2xpZW50LnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbz1uKFwiLi9kaXN0L2NvbXBpbGVkL3NjaGVkdWxlci9pbmRleC5qc1wiKSxhPW4oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIiksaT1uKFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9pbmRleC5qc1wiKTtmdW5jdGlvbiBsKGUpe3ZhciB0PVwiaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzL1wiK2U7aWYoMTxhcmd1bWVudHMubGVuZ3RoKXt0Kz1cIj9hcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBuPTI7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0Kz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSl9cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrZStcIjsgdmlzaXQgXCIrdCtcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9ZnVuY3Rpb24gcyhlKXt2YXIgdD1lLG49ZTtpZihlLmFsdGVybmF0ZSlmb3IoO3QucmV0dXJuOyl0PXQucmV0dXJuO2Vsc2V7ZT10O2RvIDAhPSg0MDk4Jih0PWUpLmZsYWdzKSYmKG49dC5yZXR1cm4pLGU9dC5yZXR1cm47d2hpbGUoZSl9cmV0dXJuIDM9PT10LnRhZz9uOm51bGx9ZnVuY3Rpb24gYyhlKXtpZigxMz09PWUudGFnKXt2YXIgdD1lLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PXQmJm51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJih0PWUubWVtb2l6ZWRTdGF0ZSksbnVsbCE9PXQpcmV0dXJuIHQuZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiB1KGUpe2lmKDMxPT09ZS50YWcpe3ZhciB0PWUubWVtb2l6ZWRTdGF0ZTtpZihudWxsPT09dCYmbnVsbCE9PShlPWUuYWx0ZXJuYXRlKSYmKHQ9ZS5tZW1vaXplZFN0YXRlKSxudWxsIT09dClyZXR1cm4gdC5kZWh5ZHJhdGVkfXJldHVybiBudWxsfWZ1bmN0aW9uIGQoZSl7aWYocyhlKSE9PWUpdGhyb3cgRXJyb3IobCgxODgpKX12YXIgZj1PYmplY3QuYXNzaWduLHA9U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIiksaD1TeW1ib2wuZm9yKFwicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnRcIiksbT1TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpLGc9U3ltYm9sLmZvcihcInJlYWN0LmZyYWdtZW50XCIpLHk9U3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLHY9U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpLGI9U3ltYm9sLmZvcihcInJlYWN0LmNvbnN1bWVyXCIpLEE9U3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIikseD1TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksdz1TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VcIiksQz1TeW1ib2wuZm9yKFwicmVhY3Quc3VzcGVuc2VfbGlzdFwiKSxfPVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLGs9U3ltYm9sLmZvcihcInJlYWN0LmxhenlcIik7U3ltYm9sLmZvcihcInJlYWN0LnNjb3BlXCIpO3ZhciBFPVN5bWJvbC5mb3IoXCJyZWFjdC5hY3Rpdml0eVwiKTtTeW1ib2wuZm9yKFwicmVhY3QubGVnYWN5X2hpZGRlblwiKSxTeW1ib2wuZm9yKFwicmVhY3QudHJhY2luZ19tYXJrZXJcIik7dmFyIGo9U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik7U3ltYm9sLmZvcihcInJlYWN0LnZpZXdfdHJhbnNpdGlvblwiKTt2YXIgUz1TeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gTyhlKXtyZXR1cm4gbnVsbD09PWV8fFwib2JqZWN0XCIhPXR5cGVvZiBlP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2YoZT1TJiZlW1NdfHxlW1wiQEBpdGVyYXRvclwiXSk/ZTpudWxsfXZhciBCPVN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpLFA9QXJyYXkuaXNBcnJheSxJPWEuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLHo9aS5fX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsVD17cGVuZGluZzohMSxkYXRhOm51bGwsbWV0aG9kOm51bGwsYWN0aW9uOm51bGx9LEQ9W10sTD0tMTtmdW5jdGlvbiBOKGUpe3JldHVybntjdXJyZW50OmV9fWZ1bmN0aW9uIFIoZSl7MD5MfHwoZS5jdXJyZW50PURbTF0sRFtMXT1udWxsLEwtLSl9ZnVuY3Rpb24gTShlLHQpe0RbKytMXT1lLmN1cnJlbnQsZS5jdXJyZW50PXR9dmFyIFo9TihudWxsKSxVPU4obnVsbCksRj1OKG51bGwpLHE9TihudWxsKTtmdW5jdGlvbiBIKGUsdCl7c3dpdGNoKE0oRix0KSxNKFUsZSksTShaLG51bGwpLHQubm9kZVR5cGUpe2Nhc2UgOTpjYXNlIDExOmU9KGU9dC5kb2N1bWVudEVsZW1lbnQpJiYoZT1lLm5hbWVzcGFjZVVSSSk/Y2goZSk6MDticmVhaztkZWZhdWx0OmlmKGU9dC50YWdOYW1lLHQ9dC5uYW1lc3BhY2VVUkkpZT1jbSh0PWNoKHQpLGUpO2Vsc2Ugc3dpdGNoKGUpe2Nhc2VcInN2Z1wiOmU9MTticmVhaztjYXNlXCJtYXRoXCI6ZT0yO2JyZWFrO2RlZmF1bHQ6ZT0wfX1SKFopLE0oWixlKX1mdW5jdGlvbiBWKCl7UihaKSxSKFUpLFIoRil9ZnVuY3Rpb24gJChlKXtudWxsIT09ZS5tZW1vaXplZFN0YXRlJiZNKHEsZSk7dmFyIHQ9Wi5jdXJyZW50LG49Y20odCxlLnR5cGUpO3QhPT1uJiYoTShVLGUpLE0oWixuKSl9ZnVuY3Rpb24gVyhlKXtVLmN1cnJlbnQ9PT1lJiYoUihaKSxSKFUpKSxxLmN1cnJlbnQ9PT1lJiYoUihxKSxjOS5fY3VycmVudFZhbHVlPVQpfWZ1bmN0aW9uIFkoZSl7aWYodm9pZCAwPT09dEwpdHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goZSl7dmFyIHQ9ZS5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTt0TD10JiZ0WzFdfHxcIlwiLHROPS0xPGUuc3RhY2suaW5kZXhPZihcIlxcbiAgICBhdFwiKT9cIiAoPGFub255bW91cz4pXCI6LTE8ZS5zdGFjay5pbmRleE9mKFwiQFwiKT9cIkB1bmtub3duOjA6MFwiOlwiXCJ9cmV0dXJuXCJcXG5cIit0TCtlK3ROfXZhciBLPSExO2Z1bmN0aW9uIFgoZSx0KXtpZighZXx8SylyZXR1cm5cIlwiO0s9ITA7dmFyIG49RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7RXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9dm9pZCAwO3RyeXt2YXIgcj17RGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290OmZ1bmN0aW9uKCl7dHJ5e2lmKHQpe3ZhciBuPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKX07aWYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4ucHJvdG90eXBlLFwicHJvcHNcIix7c2V0OmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoKX19KSxcIm9iamVjdFwiPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChuLFtdKX1jYXRjaChlKXt2YXIgcj1lfVJlZmxlY3QuY29uc3RydWN0KGUsW10sbil9ZWxzZXt0cnl7bi5jYWxsKCl9Y2F0Y2goZSl7cj1lfWUuY2FsbChuLnByb3RvdHlwZSl9fWVsc2V7dHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goZSl7cj1lfShuPWUoKSkmJlwiZnVuY3Rpb25cIj09dHlwZW9mIG4uY2F0Y2gmJm4uY2F0Y2goZnVuY3Rpb24oKXt9KX19Y2F0Y2goZSl7aWYoZSYmciYmXCJzdHJpbmdcIj09dHlwZW9mIGUuc3RhY2spcmV0dXJuW2Uuc3RhY2ssci5zdGFja119cmV0dXJuW251bGwsbnVsbF19fTtyLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdC5kaXNwbGF5TmFtZT1cIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiO3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioci5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsXCJuYW1lXCIpO28mJm8uY29uZmlndXJhYmxlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoci5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsXCJuYW1lXCIse3ZhbHVlOlwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290XCJ9KTt2YXIgYT1yLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLGk9YVswXSxsPWFbMV07aWYoaSYmbCl7dmFyIHM9aS5zcGxpdChcIlxcblwiKSxjPWwuc3BsaXQoXCJcXG5cIik7Zm9yKG89cj0wO3I8cy5sZW5ndGgmJiFzW3JdLmluY2x1ZGVzKFwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290XCIpOylyKys7Zm9yKDtvPGMubGVuZ3RoJiYhY1tvXS5pbmNsdWRlcyhcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiKTspbysrO2lmKHI9PT1zLmxlbmd0aHx8bz09PWMubGVuZ3RoKWZvcihyPXMubGVuZ3RoLTEsbz1jLmxlbmd0aC0xOzE8PXImJjA8PW8mJnNbcl0hPT1jW29dOylvLS07Zm9yKDsxPD1yJiYwPD1vO3ItLSxvLS0paWYoc1tyXSE9PWNbb10pe2lmKDEhPT1yfHwxIT09bylkbyBpZihyLS0sby0tLDA+b3x8c1tyXSE9PWNbb10pe3ZhciB1PVwiXFxuXCIrc1tyXS5yZXBsYWNlKFwiIGF0IG5ldyBcIixcIiBhdCBcIik7cmV0dXJuIGUuZGlzcGxheU5hbWUmJnUuaW5jbHVkZXMoXCI8YW5vbnltb3VzPlwiKSYmKHU9dS5yZXBsYWNlKFwiPGFub255bW91cz5cIixlLmRpc3BsYXlOYW1lKSksdX13aGlsZSgxPD1yJiYwPD1vKTticmVha319fWZpbmFsbHl7Sz0hMSxFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT1ufXJldHVybihuPWU/ZS5kaXNwbGF5TmFtZXx8ZS5uYW1lOlwiXCIpP1kobik6XCJcIn1mdW5jdGlvbiBHKGUpe3RyeXt2YXIgdD1cIlwiLG49bnVsbDtkbyB0Kz1mdW5jdGlvbihlLHQpe3N3aXRjaChlLnRhZyl7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpyZXR1cm4gWShlLnR5cGUpO2Nhc2UgMTY6cmV0dXJuIFkoXCJMYXp5XCIpO2Nhc2UgMTM6cmV0dXJuIGUuY2hpbGQhPT10JiZudWxsIT09dD9ZKFwiU3VzcGVuc2UgRmFsbGJhY2tcIik6WShcIlN1c3BlbnNlXCIpO2Nhc2UgMTk6cmV0dXJuIFkoXCJTdXNwZW5zZUxpc3RcIik7Y2FzZSAwOmNhc2UgMTU6cmV0dXJuIFgoZS50eXBlLCExKTtjYXNlIDExOnJldHVybiBYKGUudHlwZS5yZW5kZXIsITEpO2Nhc2UgMTpyZXR1cm4gWChlLnR5cGUsITApO2Nhc2UgMzE6cmV0dXJuIFkoXCJBY3Rpdml0eVwiKTtkZWZhdWx0OnJldHVyblwiXCJ9fShlLG4pLG49ZSxlPWUucmV0dXJuO3doaWxlKGUpO3JldHVybiB0fWNhdGNoKGUpe3JldHVyblwiXFxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogXCIrZS5tZXNzYWdlK1wiXFxuXCIrZS5zdGFja319dmFyIFE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxKPW8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxlZT1vLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLGV0PW8udW5zdGFibGVfc2hvdWxkWWllbGQsZW49by51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsZXI9by51bnN0YWJsZV9ub3csZW89by51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxlYT1vLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LGVpPW8udW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksZWw9by51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxlcz1vLnVuc3RhYmxlX0xvd1ByaW9yaXR5LGVjPW8udW5zdGFibGVfSWRsZVByaW9yaXR5LGV1PW8ubG9nLGVkPW8udW5zdGFibGVfc2V0RGlzYWJsZVlpZWxkVmFsdWUsZWY9bnVsbCxlcD1udWxsO2Z1bmN0aW9uIGVoKGUpe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGV1JiZlZChlKSxlcCYmXCJmdW5jdGlvblwiPT10eXBlb2YgZXAuc2V0U3RyaWN0TW9kZSl0cnl7ZXAuc2V0U3RyaWN0TW9kZShlZixlKX1jYXRjaChlKXt9fXZhciBlbT1NYXRoLmNsejMyP01hdGguY2x6MzI6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PShlPj4+PTApPzMyOjMxLShlZyhlKS9leXwwKXwwfSxlZz1NYXRoLmxvZyxleT1NYXRoLkxOMixldj0yNTYsZWI9NDE5NDMwNDtmdW5jdGlvbiBlQShlKXt2YXIgdD00MiZlO2lmKDAhPT10KXJldHVybiB0O3N3aXRjaChlJi1lKXtjYXNlIDE6cmV0dXJuIDE7Y2FzZSAyOnJldHVybiAyO2Nhc2UgNDpyZXR1cm4gNDtjYXNlIDg6cmV0dXJuIDg7Y2FzZSAxNjpyZXR1cm4gMTY7Y2FzZSAzMjpyZXR1cm4gMzI7Y2FzZSA2NDpyZXR1cm4gNjQ7Y2FzZSAxMjg6cmV0dXJuIDEyODtjYXNlIDI1NjpjYXNlIDUxMjpjYXNlIDEwMjQ6Y2FzZSAyMDQ4OmNhc2UgNDA5NjpjYXNlIDgxOTI6Y2FzZSAxNjM4NDpjYXNlIDMyNzY4OmNhc2UgNjU1MzY6Y2FzZSAxMzEwNzI6Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gNDE5NDA0OCZlO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAweDEwMDAwMDA6Y2FzZSAweDIwMDAwMDA6cmV0dXJuIDB4M2MwMDAwMCZlO2Nhc2UgMHg0MDAwMDAwOnJldHVybiAweDQwMDAwMDA7Y2FzZSAweDgwMDAwMDA6cmV0dXJuIDB4ODAwMDAwMDtjYXNlIDB4MTAwMDAwMDA6cmV0dXJuIDB4MTAwMDAwMDA7Y2FzZSAweDIwMDAwMDAwOnJldHVybiAweDIwMDAwMDAwO2Nhc2UgMHg0MDAwMDAwMDpyZXR1cm4gMDtkZWZhdWx0OnJldHVybiBlfX1mdW5jdGlvbiBleChlLHQsbil7dmFyIHI9ZS5wZW5kaW5nTGFuZXM7aWYoMD09PXIpcmV0dXJuIDA7dmFyIG89MCxhPWUuc3VzcGVuZGVkTGFuZXMsaT1lLnBpbmdlZExhbmVzO2U9ZS53YXJtTGFuZXM7dmFyIGw9MHg3ZmZmZmZmJnI7cmV0dXJuIDAhPT1sPzAhPShyPWwmfmEpP289ZUEocik6MCE9KGkmPWwpP289ZUEoaSk6bnx8MCE9KG49bCZ+ZSkmJihvPWVBKG4pKTowIT0obD1yJn5hKT9vPWVBKGwpOjAhPT1pP289ZUEoaSk6bnx8MCE9KG49ciZ+ZSkmJihvPWVBKG4pKSwwPT09bz8wOjAhPT10JiZ0IT09byYmMD09KHQmYSkmJigoYT1vJi1vKT49KG49dCYtdCl8fDMyPT09YSYmMCE9KDQxOTQwNDgmbikpP3Q6b31mdW5jdGlvbiBldyhlLHQpe3JldHVybiAwPT0oZS5wZW5kaW5nTGFuZXMmfihlLnN1c3BlbmRlZExhbmVzJn5lLnBpbmdlZExhbmVzKSZ0KX1mdW5jdGlvbiBlQygpe3ZhciBlPWV2O3JldHVybiAwPT0oNDE5NDA0OCYoZXY8PD0xKSkmJihldj0yNTYpLGV9ZnVuY3Rpb24gZV8oKXt2YXIgZT1lYjtyZXR1cm4gMD09KDB4M2MwMDAwMCYoZWI8PD0xKSkmJihlYj00MTk0MzA0KSxlfWZ1bmN0aW9uIGVrKGUpe2Zvcih2YXIgdD1bXSxuPTA7MzE+bjtuKyspdC5wdXNoKGUpO3JldHVybiB0fWZ1bmN0aW9uIGVFKGUsdCl7ZS5wZW5kaW5nTGFuZXN8PXQsMHgxMDAwMDAwMCE9PXQmJihlLnN1c3BlbmRlZExhbmVzPTAsZS5waW5nZWRMYW5lcz0wLGUud2FybUxhbmVzPTApfWZ1bmN0aW9uIGVqKGUsdCxuKXtlLnBlbmRpbmdMYW5lc3w9dCxlLnN1c3BlbmRlZExhbmVzJj1+dDt2YXIgcj0zMS1lbSh0KTtlLmVudGFuZ2xlZExhbmVzfD10LGUuZW50YW5nbGVtZW50c1tyXT0weDQwMDAwMDAwfGUuZW50YW5nbGVtZW50c1tyXXw0MTk0MDkwJm59ZnVuY3Rpb24gZVMoZSx0KXt2YXIgbj1lLmVudGFuZ2xlZExhbmVzfD10O2ZvcihlPWUuZW50YW5nbGVtZW50cztuOyl7dmFyIHI9MzEtZW0obiksbz0xPDxyO28mdHxlW3JdJnQmJihlW3JdfD10KSxuJj1+b319ZnVuY3Rpb24gZU8oZSx0KXt2YXIgbj10Ji10O3JldHVybiAwIT0oKG49MCE9KDQyJm4pPzE6ZUIobikpJihlLnN1c3BlbmRlZExhbmVzfHQpKT8wOm59ZnVuY3Rpb24gZUIoZSl7c3dpdGNoKGUpe2Nhc2UgMjplPTE7YnJlYWs7Y2FzZSA4OmU9NDticmVhaztjYXNlIDMyOmU9MTY7YnJlYWs7Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6Y2FzZSA0MTk0MzA0OmNhc2UgODM4ODYwODpjYXNlIDB4MTAwMDAwMDpjYXNlIDB4MjAwMDAwMDplPTEyODticmVhaztjYXNlIDB4MTAwMDAwMDA6ZT0weDgwMDAwMDA7YnJlYWs7ZGVmYXVsdDplPTB9cmV0dXJuIGV9ZnVuY3Rpb24gZVAoZSl7cmV0dXJuIDI8KGUmPS1lKT84PGU/MCE9KDB4N2ZmZmZmZiZlKT8zMjoweDEwMDAwMDAwOjg6Mn1mdW5jdGlvbiBlSSgpe3ZhciBlPXoucDtyZXR1cm4gMCE9PWU/ZTp2b2lkIDA9PT0oZT13aW5kb3cuZXZlbnQpPzMyOnVkKGUudHlwZSl9ZnVuY3Rpb24gZXooZSx0KXt2YXIgbj16LnA7dHJ5e3JldHVybiB6LnA9ZSx0KCl9ZmluYWxseXt6LnA9bn19dmFyIGVUPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLGVEPVwiX19yZWFjdEZpYmVyJFwiK2VULGVMPVwiX19yZWFjdFByb3BzJFwiK2VULGVOPVwiX19yZWFjdENvbnRhaW5lciRcIitlVCxlUj1cIl9fcmVhY3RFdmVudHMkXCIrZVQsZU09XCJfX3JlYWN0TGlzdGVuZXJzJFwiK2VULGVaPVwiX19yZWFjdEhhbmRsZXMkXCIrZVQsZVU9XCJfX3JlYWN0UmVzb3VyY2VzJFwiK2VULGVGPVwiX19yZWFjdE1hcmtlciRcIitlVDtmdW5jdGlvbiBlcShlKXtkZWxldGUgZVtlRF0sZGVsZXRlIGVbZUxdLGRlbGV0ZSBlW2VSXSxkZWxldGUgZVtlTV0sZGVsZXRlIGVbZVpdfWZ1bmN0aW9uIGVIKGUpe3ZhciB0PWVbZURdO2lmKHQpcmV0dXJuIHQ7Zm9yKHZhciBuPWUucGFyZW50Tm9kZTtuOyl7aWYodD1uW2VOXXx8bltlRF0pe2lmKG49dC5hbHRlcm5hdGUsbnVsbCE9PXQuY2hpbGR8fG51bGwhPT1uJiZudWxsIT09bi5jaGlsZClmb3IoZT1jeihlKTtudWxsIT09ZTspe2lmKG49ZVtlRF0pcmV0dXJuIG47ZT1jeihlKX1yZXR1cm4gdH1uPShlPW4pLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZVYoZSl7aWYoZT1lW2VEXXx8ZVtlTl0pe3ZhciB0PWUudGFnO2lmKDU9PT10fHw2PT09dHx8MTM9PT10fHwzMT09PXR8fDI2PT09dHx8Mjc9PT10fHwzPT09dClyZXR1cm4gZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBlJChlKXt2YXIgdD1lLnRhZztpZig1PT09dHx8MjY9PT10fHwyNz09PXR8fDY9PT10KXJldHVybiBlLnN0YXRlTm9kZTt0aHJvdyBFcnJvcihsKDMzKSl9ZnVuY3Rpb24gZVcoZSl7dmFyIHQ9ZVtlVV07cmV0dXJuIHR8fCh0PWVbZVVdPXtob2lzdGFibGVTdHlsZXM6bmV3IE1hcCxob2lzdGFibGVTY3JpcHRzOm5ldyBNYXB9KSx0fWZ1bmN0aW9uIGVZKGUpe2VbZUZdPSEwfXZhciBlSz1uZXcgU2V0LGVYPXt9O2Z1bmN0aW9uIGVHKGUsdCl7ZVEoZSx0KSxlUShlK1wiQ2FwdHVyZVwiLHQpfWZ1bmN0aW9uIGVRKGUsdCl7Zm9yKGVYW2VdPXQsZT0wO2U8dC5sZW5ndGg7ZSsrKWVLLmFkZCh0W2VdKX12YXIgZUo9UmVnRXhwKFwiXls6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXVs6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXFxcXC0uMC05XFxcXHUwMEI3XFxcXHUwMzAwLVxcXFx1MDM2RlxcXFx1MjAzRi1cXFxcdTIwNDBdKiRcIiksZTA9e30sZTE9e307ZnVuY3Rpb24gZTIoZSx0LG4pe2lmKFEuY2FsbChlMSx0KXx8IVEuY2FsbChlMCx0KSYmKGVKLnRlc3QodCk/ZTFbdF09ITA6KGUwW3RdPSEwLCExKSkpaWYobnVsbD09PW4pZS5yZW1vdmVBdHRyaWJ1dGUodCk7ZWxzZXtzd2l0Y2godHlwZW9mIG4pe2Nhc2VcInVuZGVmaW5lZFwiOmNhc2VcImZ1bmN0aW9uXCI6Y2FzZVwic3ltYm9sXCI6ZS5yZW1vdmVBdHRyaWJ1dGUodCk7cmV0dXJuO2Nhc2VcImJvb2xlYW5cIjp2YXIgcj10LnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KTtpZihcImRhdGEtXCIhPT1yJiZcImFyaWEtXCIhPT1yKXJldHVybiB2b2lkIGUucmVtb3ZlQXR0cmlidXRlKHQpfWUuc2V0QXR0cmlidXRlKHQsXCJcIituKX19ZnVuY3Rpb24gZTQoZSx0LG4pe2lmKG51bGw9PT1uKWUucmVtb3ZlQXR0cmlidXRlKHQpO2Vsc2V7c3dpdGNoKHR5cGVvZiBuKXtjYXNlXCJ1bmRlZmluZWRcIjpjYXNlXCJmdW5jdGlvblwiOmNhc2VcInN5bWJvbFwiOmNhc2VcImJvb2xlYW5cIjplLnJlbW92ZUF0dHJpYnV0ZSh0KTtyZXR1cm59ZS5zZXRBdHRyaWJ1dGUodCxcIlwiK24pfX1mdW5jdGlvbiBlNShlLHQsbixyKXtpZihudWxsPT09cillLnJlbW92ZUF0dHJpYnV0ZShuKTtlbHNle3N3aXRjaCh0eXBlb2Ygcil7Y2FzZVwidW5kZWZpbmVkXCI6Y2FzZVwiZnVuY3Rpb25cIjpjYXNlXCJzeW1ib2xcIjpjYXNlXCJib29sZWFuXCI6ZS5yZW1vdmVBdHRyaWJ1dGUobik7cmV0dXJufWUuc2V0QXR0cmlidXRlTlModCxuLFwiXCIrcil9fWZ1bmN0aW9uIGUzKGUpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZVwiYmlnaW50XCI6Y2FzZVwiYm9vbGVhblwiOmNhc2VcIm51bWJlclwiOmNhc2VcInN0cmluZ1wiOmNhc2VcInVuZGVmaW5lZFwiOmNhc2VcIm9iamVjdFwiOnJldHVybiBlO2RlZmF1bHQ6cmV0dXJuXCJcIn19ZnVuY3Rpb24gZTYoZSl7dmFyIHQ9ZS50eXBlO3JldHVybihlPWUubm9kZU5hbWUpJiZcImlucHV0XCI9PT1lLnRvTG93ZXJDYXNlKCkmJihcImNoZWNrYm94XCI9PT10fHxcInJhZGlvXCI9PT10KX1mdW5jdGlvbiBlOShlKXtpZighZS5fdmFsdWVUcmFja2VyKXt2YXIgdD1lNihlKT9cImNoZWNrZWRcIjpcInZhbHVlXCI7ZS5fdmFsdWVUcmFja2VyPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUuY29uc3RydWN0b3IucHJvdG90eXBlLHQpO2lmKCFlLmhhc093blByb3BlcnR5KHQpJiZ2b2lkIDAhPT1yJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmdldCYmXCJmdW5jdGlvblwiPT10eXBlb2Ygci5zZXQpe3ZhciBvPXIuZ2V0LGE9ci5zZXQ7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24oZSl7bj1cIlwiK2UsYS5jYWxsKHRoaXMsZSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTpyLmVudW1lcmFibGV9KSx7Z2V0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbn0sc2V0VmFsdWU6ZnVuY3Rpb24oZSl7bj1cIlwiK2V9LHN0b3BUcmFja2luZzpmdW5jdGlvbigpe2UuX3ZhbHVlVHJhY2tlcj1udWxsLGRlbGV0ZSBlW3RdfX19fShlLHQsXCJcIitlW3RdKX19ZnVuY3Rpb24gZTgoZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS5fdmFsdWVUcmFja2VyO2lmKCF0KXJldHVybiEwO3ZhciBuPXQuZ2V0VmFsdWUoKSxyPVwiXCI7cmV0dXJuIGUmJihyPWU2KGUpP2UuY2hlY2tlZD9cInRydWVcIjpcImZhbHNlXCI6ZS52YWx1ZSksKGU9cikhPT1uJiYodC5zZXRWYWx1ZShlKSwhMCl9ZnVuY3Rpb24gZTcoZSl7aWYodm9pZCAwPT09KGU9ZXx8KFwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDApKSlyZXR1cm4gbnVsbDt0cnl7cmV0dXJuIGUuYWN0aXZlRWxlbWVudHx8ZS5ib2R5fWNhdGNoKHQpe3JldHVybiBlLmJvZHl9fXZhciB0ZT0vW1xcblwiXFxcXF0vZztmdW5jdGlvbiB0dChlKXtyZXR1cm4gZS5yZXBsYWNlKHRlLGZ1bmN0aW9uKGUpe3JldHVyblwiXFxcXFwiK2UuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikrXCIgXCJ9KX1mdW5jdGlvbiB0bihlLHQsbixyLG8sYSxpLGwpe2UubmFtZT1cIlwiLG51bGwhPWkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGkmJlwic3ltYm9sXCIhPXR5cGVvZiBpJiZcImJvb2xlYW5cIiE9dHlwZW9mIGk/ZS50eXBlPWk6ZS5yZW1vdmVBdHRyaWJ1dGUoXCJ0eXBlXCIpLG51bGwhPXQ/XCJudW1iZXJcIj09PWk/KDA9PT10JiZcIlwiPT09ZS52YWx1ZXx8ZS52YWx1ZSE9dCkmJihlLnZhbHVlPVwiXCIrZTModCkpOmUudmFsdWUhPT1cIlwiK2UzKHQpJiYoZS52YWx1ZT1cIlwiK2UzKHQpKTpcInN1Ym1pdFwiIT09aSYmXCJyZXNldFwiIT09aXx8ZS5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKSxudWxsIT10P3RvKGUsaSxlMyh0KSk6bnVsbCE9bj90byhlLGksZTMobikpOm51bGwhPXImJmUucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIiksbnVsbD09byYmbnVsbCE9YSYmKGUuZGVmYXVsdENoZWNrZWQ9ISFhKSxudWxsIT1vJiYoZS5jaGVja2VkPW8mJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG8mJlwic3ltYm9sXCIhPXR5cGVvZiBvKSxudWxsIT1sJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBsJiZcInN5bWJvbFwiIT10eXBlb2YgbCYmXCJib29sZWFuXCIhPXR5cGVvZiBsP2UubmFtZT1cIlwiK2UzKGwpOmUucmVtb3ZlQXR0cmlidXRlKFwibmFtZVwiKX1mdW5jdGlvbiB0cihlLHQsbixyLG8sYSxpLGwpe2lmKG51bGwhPWEmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGEmJlwic3ltYm9sXCIhPXR5cGVvZiBhJiZcImJvb2xlYW5cIiE9dHlwZW9mIGEmJihlLnR5cGU9YSksbnVsbCE9dHx8bnVsbCE9bil7aWYoKFwic3VibWl0XCI9PT1hfHxcInJlc2V0XCI9PT1hKSYmbnVsbD09dClyZXR1cm4gdm9pZCBlOShlKTtuPW51bGwhPW4/XCJcIitlMyhuKTpcIlwiLHQ9bnVsbCE9dD9cIlwiK2UzKHQpOm4sbHx8dD09PWUudmFsdWV8fChlLnZhbHVlPXQpLGUuZGVmYXVsdFZhbHVlPXR9cj1cImZ1bmN0aW9uXCIhPXR5cGVvZihyPW51bGwhPXI/cjpvKSYmXCJzeW1ib2xcIiE9dHlwZW9mIHImJiEhcixlLmNoZWNrZWQ9bD9lLmNoZWNrZWQ6ISFyLGUuZGVmYXVsdENoZWNrZWQ9ISFyLG51bGwhPWkmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGkmJlwic3ltYm9sXCIhPXR5cGVvZiBpJiZcImJvb2xlYW5cIiE9dHlwZW9mIGkmJihlLm5hbWU9aSksZTkoZSl9ZnVuY3Rpb24gdG8oZSx0LG4pe1wibnVtYmVyXCI9PT10JiZlNyhlLm93bmVyRG9jdW1lbnQpPT09ZXx8ZS5kZWZhdWx0VmFsdWU9PT1cIlwiK258fChlLmRlZmF1bHRWYWx1ZT1cIlwiK24pfWZ1bmN0aW9uIHRhKGUsdCxuLHIpe2lmKGU9ZS5vcHRpb25zLHQpe3Q9e307Zm9yKHZhciBvPTA7bzxuLmxlbmd0aDtvKyspdFtcIiRcIituW29dXT0hMDtmb3Iobj0wO248ZS5sZW5ndGg7bisrKW89dC5oYXNPd25Qcm9wZXJ0eShcIiRcIitlW25dLnZhbHVlKSxlW25dLnNlbGVjdGVkIT09byYmKGVbbl0uc2VsZWN0ZWQ9byksbyYmciYmKGVbbl0uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2ZvcihvPTAsbj1cIlwiK2UzKG4pLHQ9bnVsbDtvPGUubGVuZ3RoO28rKyl7aWYoZVtvXS52YWx1ZT09PW4pe2Vbb10uc2VsZWN0ZWQ9ITAsciYmKGVbb10uZGVmYXVsdFNlbGVjdGVkPSEwKTtyZXR1cm59bnVsbCE9PXR8fGVbb10uZGlzYWJsZWR8fCh0PWVbb10pfW51bGwhPT10JiYodC5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIHRpKGUsdCxuKXtpZihudWxsIT10JiYoKHQ9XCJcIitlMyh0KSkhPT1lLnZhbHVlJiYoZS52YWx1ZT10KSxudWxsPT1uKSl7ZS5kZWZhdWx0VmFsdWUhPT10JiYoZS5kZWZhdWx0VmFsdWU9dCk7cmV0dXJufWUuZGVmYXVsdFZhbHVlPW51bGwhPW4/XCJcIitlMyhuKTpcIlwifWZ1bmN0aW9uIHRsKGUsdCxuLHIpe2lmKG51bGw9PXQpe2lmKG51bGwhPXIpe2lmKG51bGwhPW4pdGhyb3cgRXJyb3IobCg5MikpO2lmKFAocikpe2lmKDE8ci5sZW5ndGgpdGhyb3cgRXJyb3IobCg5MykpO3I9clswXX1uPXJ9bnVsbD09biYmKG49XCJcIiksdD1ufWUuZGVmYXVsdFZhbHVlPW49ZTModCksKHI9ZS50ZXh0Q29udGVudCk9PT1uJiZcIlwiIT09ciYmbnVsbCE9PXImJihlLnZhbHVlPXIpLGU5KGUpfWZ1bmN0aW9uIHRzKGUsdCl7aWYodCl7dmFyIG49ZS5maXJzdENoaWxkO2lmKG4mJm49PT1lLmxhc3RDaGlsZCYmMz09PW4ubm9kZVR5cGUpe24ubm9kZVZhbHVlPXQ7cmV0dXJufX1lLnRleHRDb250ZW50PXR9dmFyIHRjPW5ldyBTZXQoXCJhbmltYXRpb25JdGVyYXRpb25Db3VudCBhc3BlY3RSYXRpbyBib3JkZXJJbWFnZU91dHNldCBib3JkZXJJbWFnZVNsaWNlIGJvcmRlckltYWdlV2lkdGggYm94RmxleCBib3hGbGV4R3JvdXAgYm94T3JkaW5hbEdyb3VwIGNvbHVtbkNvdW50IGNvbHVtbnMgZmxleCBmbGV4R3JvdyBmbGV4UG9zaXRpdmUgZmxleFNocmluayBmbGV4TmVnYXRpdmUgZmxleE9yZGVyIGdyaWRBcmVhIGdyaWRSb3cgZ3JpZFJvd0VuZCBncmlkUm93U3BhbiBncmlkUm93U3RhcnQgZ3JpZENvbHVtbiBncmlkQ29sdW1uRW5kIGdyaWRDb2x1bW5TcGFuIGdyaWRDb2x1bW5TdGFydCBmb250V2VpZ2h0IGxpbmVDbGFtcCBsaW5lSGVpZ2h0IG9wYWNpdHkgb3JkZXIgb3JwaGFucyBzY2FsZSB0YWJTaXplIHdpZG93cyB6SW5kZXggem9vbSBmaWxsT3BhY2l0eSBmbG9vZE9wYWNpdHkgc3RvcE9wYWNpdHkgc3Ryb2tlRGFzaGFycmF5IHN0cm9rZURhc2hvZmZzZXQgc3Ryb2tlTWl0ZXJsaW1pdCBzdHJva2VPcGFjaXR5IHN0cm9rZVdpZHRoIE1vekFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IE1vekJveEZsZXggTW96Qm94RmxleEdyb3VwIE1vekxpbmVDbGFtcCBtc0FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IG1zRmxleCBtc1pvb20gbXNGbGV4R3JvdyBtc0ZsZXhOZWdhdGl2ZSBtc0ZsZXhPcmRlciBtc0ZsZXhQb3NpdGl2ZSBtc0ZsZXhTaHJpbmsgbXNHcmlkQ29sdW1uIG1zR3JpZENvbHVtblNwYW4gbXNHcmlkUm93IG1zR3JpZFJvd1NwYW4gV2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgV2Via2l0Qm94RmxleCBXZWJLaXRCb3hGbGV4R3JvdXAgV2Via2l0Qm94T3JkaW5hbEdyb3VwIFdlYmtpdENvbHVtbkNvdW50IFdlYmtpdENvbHVtbnMgV2Via2l0RmxleCBXZWJraXRGbGV4R3JvdyBXZWJraXRGbGV4UG9zaXRpdmUgV2Via2l0RmxleFNocmluayBXZWJraXRMaW5lQ2xhbXBcIi5zcGxpdChcIiBcIikpO2Z1bmN0aW9uIHR1KGUsdCxuKXt2YXIgcj0wPT09dC5pbmRleE9mKFwiLS1cIik7bnVsbD09bnx8XCJib29sZWFuXCI9PXR5cGVvZiBufHxcIlwiPT09bj9yP2Uuc2V0UHJvcGVydHkodCxcIlwiKTpcImZsb2F0XCI9PT10P2UuY3NzRmxvYXQ9XCJcIjplW3RdPVwiXCI6cj9lLnNldFByb3BlcnR5KHQsbik6XCJudW1iZXJcIiE9dHlwZW9mIG58fDA9PT1ufHx0Yy5oYXModCk/XCJmbG9hdFwiPT09dD9lLmNzc0Zsb2F0PW46ZVt0XT0oXCJcIituKS50cmltKCk6ZVt0XT1uK1wicHhcIn1mdW5jdGlvbiB0ZChlLHQsbil7aWYobnVsbCE9dCYmXCJvYmplY3RcIiE9dHlwZW9mIHQpdGhyb3cgRXJyb3IobCg2MikpO2lmKGU9ZS5zdHlsZSxudWxsIT1uKXtmb3IodmFyIHIgaW4gbikhbi5oYXNPd25Qcm9wZXJ0eShyKXx8bnVsbCE9dCYmdC5oYXNPd25Qcm9wZXJ0eShyKXx8KDA9PT1yLmluZGV4T2YoXCItLVwiKT9lLnNldFByb3BlcnR5KHIsXCJcIik6XCJmbG9hdFwiPT09cj9lLmNzc0Zsb2F0PVwiXCI6ZVtyXT1cIlwiKTtmb3IodmFyIG8gaW4gdClyPXRbb10sdC5oYXNPd25Qcm9wZXJ0eShvKSYmbltvXSE9PXImJnR1KGUsbyxyKX1lbHNlIGZvcih2YXIgYSBpbiB0KXQuaGFzT3duUHJvcGVydHkoYSkmJnR1KGUsYSx0W2FdKX1mdW5jdGlvbiB0ZihlKXtpZigtMT09PWUuaW5kZXhPZihcIi1cIikpcmV0dXJuITE7c3dpdGNoKGUpe2Nhc2VcImFubm90YXRpb24teG1sXCI6Y2FzZVwiY29sb3ItcHJvZmlsZVwiOmNhc2VcImZvbnQtZmFjZVwiOmNhc2VcImZvbnQtZmFjZS1zcmNcIjpjYXNlXCJmb250LWZhY2UtdXJpXCI6Y2FzZVwiZm9udC1mYWNlLWZvcm1hdFwiOmNhc2VcImZvbnQtZmFjZS1uYW1lXCI6Y2FzZVwibWlzc2luZy1nbHlwaFwiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciB0cD1uZXcgTWFwKFtbXCJhY2NlcHRDaGFyc2V0XCIsXCJhY2NlcHQtY2hhcnNldFwiXSxbXCJodG1sRm9yXCIsXCJmb3JcIl0sW1wiaHR0cEVxdWl2XCIsXCJodHRwLWVxdWl2XCJdLFtcImNyb3NzT3JpZ2luXCIsXCJjcm9zc29yaWdpblwiXSxbXCJhY2NlbnRIZWlnaHRcIixcImFjY2VudC1oZWlnaHRcIl0sW1wiYWxpZ25tZW50QmFzZWxpbmVcIixcImFsaWdubWVudC1iYXNlbGluZVwiXSxbXCJhcmFiaWNGb3JtXCIsXCJhcmFiaWMtZm9ybVwiXSxbXCJiYXNlbGluZVNoaWZ0XCIsXCJiYXNlbGluZS1zaGlmdFwiXSxbXCJjYXBIZWlnaHRcIixcImNhcC1oZWlnaHRcIl0sW1wiY2xpcFBhdGhcIixcImNsaXAtcGF0aFwiXSxbXCJjbGlwUnVsZVwiLFwiY2xpcC1ydWxlXCJdLFtcImNvbG9ySW50ZXJwb2xhdGlvblwiLFwiY29sb3ItaW50ZXJwb2xhdGlvblwiXSxbXCJjb2xvckludGVycG9sYXRpb25GaWx0ZXJzXCIsXCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnNcIl0sW1wiY29sb3JQcm9maWxlXCIsXCJjb2xvci1wcm9maWxlXCJdLFtcImNvbG9yUmVuZGVyaW5nXCIsXCJjb2xvci1yZW5kZXJpbmdcIl0sW1wiZG9taW5hbnRCYXNlbGluZVwiLFwiZG9taW5hbnQtYmFzZWxpbmVcIl0sW1wiZW5hYmxlQmFja2dyb3VuZFwiLFwiZW5hYmxlLWJhY2tncm91bmRcIl0sW1wiZmlsbE9wYWNpdHlcIixcImZpbGwtb3BhY2l0eVwiXSxbXCJmaWxsUnVsZVwiLFwiZmlsbC1ydWxlXCJdLFtcImZsb29kQ29sb3JcIixcImZsb29kLWNvbG9yXCJdLFtcImZsb29kT3BhY2l0eVwiLFwiZmxvb2Qtb3BhY2l0eVwiXSxbXCJmb250RmFtaWx5XCIsXCJmb250LWZhbWlseVwiXSxbXCJmb250U2l6ZVwiLFwiZm9udC1zaXplXCJdLFtcImZvbnRTaXplQWRqdXN0XCIsXCJmb250LXNpemUtYWRqdXN0XCJdLFtcImZvbnRTdHJldGNoXCIsXCJmb250LXN0cmV0Y2hcIl0sW1wiZm9udFN0eWxlXCIsXCJmb250LXN0eWxlXCJdLFtcImZvbnRWYXJpYW50XCIsXCJmb250LXZhcmlhbnRcIl0sW1wiZm9udFdlaWdodFwiLFwiZm9udC13ZWlnaHRcIl0sW1wiZ2x5cGhOYW1lXCIsXCJnbHlwaC1uYW1lXCJdLFtcImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsXCIsXCJnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsXCJdLFtcImdseXBoT3JpZW50YXRpb25WZXJ0aWNhbFwiLFwiZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWxcIl0sW1wiaG9yaXpBZHZYXCIsXCJob3Jpei1hZHYteFwiXSxbXCJob3Jpek9yaWdpblhcIixcImhvcml6LW9yaWdpbi14XCJdLFtcImltYWdlUmVuZGVyaW5nXCIsXCJpbWFnZS1yZW5kZXJpbmdcIl0sW1wibGV0dGVyU3BhY2luZ1wiLFwibGV0dGVyLXNwYWNpbmdcIl0sW1wibGlnaHRpbmdDb2xvclwiLFwibGlnaHRpbmctY29sb3JcIl0sW1wibWFya2VyRW5kXCIsXCJtYXJrZXItZW5kXCJdLFtcIm1hcmtlck1pZFwiLFwibWFya2VyLW1pZFwiXSxbXCJtYXJrZXJTdGFydFwiLFwibWFya2VyLXN0YXJ0XCJdLFtcIm92ZXJsaW5lUG9zaXRpb25cIixcIm92ZXJsaW5lLXBvc2l0aW9uXCJdLFtcIm92ZXJsaW5lVGhpY2tuZXNzXCIsXCJvdmVybGluZS10aGlja25lc3NcIl0sW1wicGFpbnRPcmRlclwiLFwicGFpbnQtb3JkZXJcIl0sW1wicGFub3NlLTFcIixcInBhbm9zZS0xXCJdLFtcInBvaW50ZXJFdmVudHNcIixcInBvaW50ZXItZXZlbnRzXCJdLFtcInJlbmRlcmluZ0ludGVudFwiLFwicmVuZGVyaW5nLWludGVudFwiXSxbXCJzaGFwZVJlbmRlcmluZ1wiLFwic2hhcGUtcmVuZGVyaW5nXCJdLFtcInN0b3BDb2xvclwiLFwic3RvcC1jb2xvclwiXSxbXCJzdG9wT3BhY2l0eVwiLFwic3RvcC1vcGFjaXR5XCJdLFtcInN0cmlrZXRocm91Z2hQb3NpdGlvblwiLFwic3RyaWtldGhyb3VnaC1wb3NpdGlvblwiXSxbXCJzdHJpa2V0aHJvdWdoVGhpY2tuZXNzXCIsXCJzdHJpa2V0aHJvdWdoLXRoaWNrbmVzc1wiXSxbXCJzdHJva2VEYXNoYXJyYXlcIixcInN0cm9rZS1kYXNoYXJyYXlcIl0sW1wic3Ryb2tlRGFzaG9mZnNldFwiLFwic3Ryb2tlLWRhc2hvZmZzZXRcIl0sW1wic3Ryb2tlTGluZWNhcFwiLFwic3Ryb2tlLWxpbmVjYXBcIl0sW1wic3Ryb2tlTGluZWpvaW5cIixcInN0cm9rZS1saW5lam9pblwiXSxbXCJzdHJva2VNaXRlcmxpbWl0XCIsXCJzdHJva2UtbWl0ZXJsaW1pdFwiXSxbXCJzdHJva2VPcGFjaXR5XCIsXCJzdHJva2Utb3BhY2l0eVwiXSxbXCJzdHJva2VXaWR0aFwiLFwic3Ryb2tlLXdpZHRoXCJdLFtcInRleHRBbmNob3JcIixcInRleHQtYW5jaG9yXCJdLFtcInRleHREZWNvcmF0aW9uXCIsXCJ0ZXh0LWRlY29yYXRpb25cIl0sW1widGV4dFJlbmRlcmluZ1wiLFwidGV4dC1yZW5kZXJpbmdcIl0sW1widHJhbnNmb3JtT3JpZ2luXCIsXCJ0cmFuc2Zvcm0tb3JpZ2luXCJdLFtcInVuZGVybGluZVBvc2l0aW9uXCIsXCJ1bmRlcmxpbmUtcG9zaXRpb25cIl0sW1widW5kZXJsaW5lVGhpY2tuZXNzXCIsXCJ1bmRlcmxpbmUtdGhpY2tuZXNzXCJdLFtcInVuaWNvZGVCaWRpXCIsXCJ1bmljb2RlLWJpZGlcIl0sW1widW5pY29kZVJhbmdlXCIsXCJ1bmljb2RlLXJhbmdlXCJdLFtcInVuaXRzUGVyRW1cIixcInVuaXRzLXBlci1lbVwiXSxbXCJ2QWxwaGFiZXRpY1wiLFwidi1hbHBoYWJldGljXCJdLFtcInZIYW5naW5nXCIsXCJ2LWhhbmdpbmdcIl0sW1widklkZW9ncmFwaGljXCIsXCJ2LWlkZW9ncmFwaGljXCJdLFtcInZNYXRoZW1hdGljYWxcIixcInYtbWF0aGVtYXRpY2FsXCJdLFtcInZlY3RvckVmZmVjdFwiLFwidmVjdG9yLWVmZmVjdFwiXSxbXCJ2ZXJ0QWR2WVwiLFwidmVydC1hZHYteVwiXSxbXCJ2ZXJ0T3JpZ2luWFwiLFwidmVydC1vcmlnaW4teFwiXSxbXCJ2ZXJ0T3JpZ2luWVwiLFwidmVydC1vcmlnaW4teVwiXSxbXCJ3b3JkU3BhY2luZ1wiLFwid29yZC1zcGFjaW5nXCJdLFtcIndyaXRpbmdNb2RlXCIsXCJ3cml0aW5nLW1vZGVcIl0sW1wieG1sbnNYbGlua1wiLFwieG1sbnM6eGxpbmtcIl0sW1wieEhlaWdodFwiLFwieC1oZWlnaHRcIl1dKSx0aD0vXltcXHUwMDAwLVxcdTAwMUYgXSpqW1xcclxcblxcdF0qYVtcXHJcXG5cXHRdKnZbXFxyXFxuXFx0XSphW1xcclxcblxcdF0qc1tcXHJcXG5cXHRdKmNbXFxyXFxuXFx0XSpyW1xcclxcblxcdF0qaVtcXHJcXG5cXHRdKnBbXFxyXFxuXFx0XSp0W1xcclxcblxcdF0qOi9pO2Z1bmN0aW9uIHRtKGUpe3JldHVybiB0aC50ZXN0KFwiXCIrZSk/XCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignUmVhY3QgaGFzIGJsb2NrZWQgYSBqYXZhc2NyaXB0OiBVUkwgYXMgYSBzZWN1cml0eSBwcmVjYXV0aW9uLicpXCI6ZX1mdW5jdGlvbiB0Zygpe312YXIgdHk9bnVsbDtmdW5jdGlvbiB0dihlKXtyZXR1cm4oZT1lLnRhcmdldHx8ZS5zcmNFbGVtZW50fHx3aW5kb3cpLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoZT1lLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KSwzPT09ZS5ub2RlVHlwZT9lLnBhcmVudE5vZGU6ZX12YXIgdGI9bnVsbCx0QT1udWxsO2Z1bmN0aW9uIHR4KGUpe3ZhciB0PWVWKGUpO2lmKHQmJihlPXQuc3RhdGVOb2RlKSl7dmFyIG49ZVtlTF18fG51bGw7c3dpdGNoKGU9dC5zdGF0ZU5vZGUsdC50eXBlKXtjYXNlXCJpbnB1dFwiOmlmKHRuKGUsbi52YWx1ZSxuLmRlZmF1bHRWYWx1ZSxuLmRlZmF1bHRWYWx1ZSxuLmNoZWNrZWQsbi5kZWZhdWx0Q2hlY2tlZCxuLnR5cGUsbi5uYW1lKSx0PW4ubmFtZSxcInJhZGlvXCI9PT1uLnR5cGUmJm51bGwhPXQpe2ZvcihuPWU7bi5wYXJlbnROb2RlOyluPW4ucGFyZW50Tm9kZTtmb3Iobj1uLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W25hbWU9XCInK3R0KFwiXCIrdCkrJ1wiXVt0eXBlPVwicmFkaW9cIl0nKSx0PTA7dDxuLmxlbmd0aDt0Kyspe3ZhciByPW5bdF07aWYociE9PWUmJnIuZm9ybT09PWUuZm9ybSl7dmFyIG89cltlTF18fG51bGw7aWYoIW8pdGhyb3cgRXJyb3IobCg5MCkpO3RuKHIsby52YWx1ZSxvLmRlZmF1bHRWYWx1ZSxvLmRlZmF1bHRWYWx1ZSxvLmNoZWNrZWQsby5kZWZhdWx0Q2hlY2tlZCxvLnR5cGUsby5uYW1lKX19Zm9yKHQ9MDt0PG4ubGVuZ3RoO3QrKykocj1uW3RdKS5mb3JtPT09ZS5mb3JtJiZlOChyKX1icmVhaztjYXNlXCJ0ZXh0YXJlYVwiOnRpKGUsbi52YWx1ZSxuLmRlZmF1bHRWYWx1ZSk7YnJlYWs7Y2FzZVwic2VsZWN0XCI6bnVsbCE9KHQ9bi52YWx1ZSkmJnRhKGUsISFuLm11bHRpcGxlLHQsITEpfX19dmFyIHR3PSExO2Z1bmN0aW9uIHRDKGUsdCxuKXtpZih0dylyZXR1cm4gZSh0LG4pO3R3PSEwO3RyeXtyZXR1cm4gZSh0KX1maW5hbGx5e2lmKHR3PSExLChudWxsIT09dGJ8fG51bGwhPT10QSkmJihzYygpLHRiJiYodD10YixlPXRBLHRBPXRiPW51bGwsdHgodCksZSkpKWZvcih0PTA7dDxlLmxlbmd0aDt0KyspdHgoZVt0XSl9fWZ1bmN0aW9uIHRfKGUsdCl7dmFyIG49ZS5zdGF0ZU5vZGU7aWYobnVsbD09PW4pcmV0dXJuIG51bGw7dmFyIHI9bltlTF18fG51bGw7aWYobnVsbD09PXIpcmV0dXJuIG51bGw7c3dpdGNoKG49clt0XSx0KXtjYXNlXCJvbkNsaWNrXCI6Y2FzZVwib25DbGlja0NhcHR1cmVcIjpjYXNlXCJvbkRvdWJsZUNsaWNrXCI6Y2FzZVwib25Eb3VibGVDbGlja0NhcHR1cmVcIjpjYXNlXCJvbk1vdXNlRG93blwiOmNhc2VcIm9uTW91c2VEb3duQ2FwdHVyZVwiOmNhc2VcIm9uTW91c2VNb3ZlXCI6Y2FzZVwib25Nb3VzZU1vdmVDYXB0dXJlXCI6Y2FzZVwib25Nb3VzZVVwXCI6Y2FzZVwib25Nb3VzZVVwQ2FwdHVyZVwiOmNhc2VcIm9uTW91c2VFbnRlclwiOihyPSFyLmRpc2FibGVkKXx8KHI9XCJidXR0b25cIiE9PShlPWUudHlwZSkmJlwiaW5wdXRcIiE9PWUmJlwic2VsZWN0XCIhPT1lJiZcInRleHRhcmVhXCIhPT1lKSxlPSFyO2JyZWFrO2RlZmF1bHQ6ZT0hMX1pZihlKXJldHVybiBudWxsO2lmKG4mJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgRXJyb3IobCgyMzEsdCx0eXBlb2YgbikpO3JldHVybiBufXZhciB0az1cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50LHRFPSExO2lmKHRrKXRyeXt2YXIgdGo9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KHRqLFwicGFzc2l2ZVwiLHtnZXQ6ZnVuY3Rpb24oKXt0RT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3RcIix0aix0aiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsdGosdGopfWNhdGNoKGUpe3RFPSExfXZhciB0Uz1udWxsLHRPPW51bGwsdEI9bnVsbDtmdW5jdGlvbiB0UCgpe2lmKHRCKXJldHVybiB0Qjt2YXIgZSx0LG49dE8scj1uLmxlbmd0aCxvPVwidmFsdWVcImluIHRTP3RTLnZhbHVlOnRTLnRleHRDb250ZW50LGE9by5sZW5ndGg7Zm9yKGU9MDtlPHImJm5bZV09PT1vW2VdO2UrKyk7dmFyIGk9ci1lO2Zvcih0PTE7dDw9aSYmbltyLXRdPT09b1thLXRdO3QrKyk7cmV0dXJuIHRCPW8uc2xpY2UoZSwxPHQ/MS10OnZvaWQgMCl9ZnVuY3Rpb24gdEkoZSl7dmFyIHQ9ZS5rZXlDb2RlO3JldHVyblwiY2hhckNvZGVcImluIGU/MD09PShlPWUuY2hhckNvZGUpJiYxMz09PXQmJihlPTEzKTplPXQsMTA9PT1lJiYoZT0xMyksMzI8PWV8fDEzPT09ZT9lOjB9ZnVuY3Rpb24gdHooKXtyZXR1cm4hMH1mdW5jdGlvbiB0VCgpe3JldHVybiExfWZ1bmN0aW9uIHREKGUpe2Z1bmN0aW9uIHQodCxuLHIsbyxhKXtmb3IodmFyIGkgaW4gdGhpcy5fcmVhY3ROYW1lPXQsdGhpcy5fdGFyZ2V0SW5zdD1yLHRoaXMudHlwZT1uLHRoaXMubmF0aXZlRXZlbnQ9byx0aGlzLnRhcmdldD1hLHRoaXMuY3VycmVudFRhcmdldD1udWxsLGUpZS5oYXNPd25Qcm9wZXJ0eShpKSYmKHQ9ZVtpXSx0aGlzW2ldPXQ/dChvKTpvW2ldKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KG51bGwhPW8uZGVmYXVsdFByZXZlbnRlZD9vLmRlZmF1bHRQcmV2ZW50ZWQ6ITE9PT1vLnJldHVyblZhbHVlKT90ejp0VCx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXRULHRoaXN9cmV0dXJuIGYodC5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUucHJldmVudERlZmF1bHQ/ZS5wcmV2ZW50RGVmYXVsdCgpOlwidW5rbm93blwiIT10eXBlb2YgZS5yZXR1cm5WYWx1ZSYmKGUucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPXR6KX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5uYXRpdmVFdmVudDtlJiYoZS5zdG9wUHJvcGFnYXRpb24/ZS5zdG9wUHJvcGFnYXRpb24oKTpcInVua25vd25cIiE9dHlwZW9mIGUuY2FuY2VsQnViYmxlJiYoZS5jYW5jZWxCdWJibGU9ITApLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9dHopfSxwZXJzaXN0OmZ1bmN0aW9uKCl7fSxpc1BlcnNpc3RlbnQ6dHp9KSx0fXZhciB0TCx0Tix0Uix0TSx0Wix0VT17ZXZlbnRQaGFzZTowLGJ1YmJsZXM6MCxjYW5jZWxhYmxlOjAsdGltZVN0YW1wOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRpbWVTdGFtcHx8RGF0ZS5ub3coKX0sZGVmYXVsdFByZXZlbnRlZDowLGlzVHJ1c3RlZDowfSx0Rj10RCh0VSksdHE9Zih7fSx0VSx7dmlldzowLGRldGFpbDowfSksdEg9dEQodHEpLHRWPWYoe30sdHEse3NjcmVlblg6MCxzY3JlZW5ZOjAsY2xpZW50WDowLGNsaWVudFk6MCxwYWdlWDowLHBhZ2VZOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLGdldE1vZGlmaWVyU3RhdGU6dDIsYnV0dG9uOjAsYnV0dG9uczowLHJlbGF0ZWRUYXJnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWUucmVsYXRlZFRhcmdldD9lLmZyb21FbGVtZW50PT09ZS5zcmNFbGVtZW50P2UudG9FbGVtZW50OmUuZnJvbUVsZW1lbnQ6ZS5yZWxhdGVkVGFyZ2V0fSxtb3ZlbWVudFg6ZnVuY3Rpb24oZSl7cmV0dXJuXCJtb3ZlbWVudFhcImluIGU/ZS5tb3ZlbWVudFg6KGUhPT10WiYmKHRaJiZcIm1vdXNlbW92ZVwiPT09ZS50eXBlPyh0Uj1lLnNjcmVlblgtdFouc2NyZWVuWCx0TT1lLnNjcmVlblktdFouc2NyZWVuWSk6dE09dFI9MCx0Wj1lKSx0Uil9LG1vdmVtZW50WTpmdW5jdGlvbihlKXtyZXR1cm5cIm1vdmVtZW50WVwiaW4gZT9lLm1vdmVtZW50WTp0TX19KSx0JD10RCh0ViksdFc9dEQoZih7fSx0Vix7ZGF0YVRyYW5zZmVyOjB9KSksdFk9dEQoZih7fSx0cSx7cmVsYXRlZFRhcmdldDowfSkpLHRLPXREKGYoe30sdFUse2FuaW1hdGlvbk5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pKSx0WD10RChmKHt9LHRVLHtjbGlwYm9hcmREYXRhOmZ1bmN0aW9uKGUpe3JldHVyblwiY2xpcGJvYXJkRGF0YVwiaW4gZT9lLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSkpLHRHPXREKGYoe30sdFUse2RhdGE6MH0pKSx0UT17RXNjOlwiRXNjYXBlXCIsU3BhY2ViYXI6XCIgXCIsTGVmdDpcIkFycm93TGVmdFwiLFVwOlwiQXJyb3dVcFwiLFJpZ2h0OlwiQXJyb3dSaWdodFwiLERvd246XCJBcnJvd0Rvd25cIixEZWw6XCJEZWxldGVcIixXaW46XCJPU1wiLE1lbnU6XCJDb250ZXh0TWVudVwiLEFwcHM6XCJDb250ZXh0TWVudVwiLFNjcm9sbDpcIlNjcm9sbExvY2tcIixNb3pQcmludGFibGVLZXk6XCJVbmlkZW50aWZpZWRcIn0sdEo9ezg6XCJCYWNrc3BhY2VcIiw5OlwiVGFiXCIsMTI6XCJDbGVhclwiLDEzOlwiRW50ZXJcIiwxNjpcIlNoaWZ0XCIsMTc6XCJDb250cm9sXCIsMTg6XCJBbHRcIiwxOTpcIlBhdXNlXCIsMjA6XCJDYXBzTG9ja1wiLDI3OlwiRXNjYXBlXCIsMzI6XCIgXCIsMzM6XCJQYWdlVXBcIiwzNDpcIlBhZ2VEb3duXCIsMzU6XCJFbmRcIiwzNjpcIkhvbWVcIiwzNzpcIkFycm93TGVmdFwiLDM4OlwiQXJyb3dVcFwiLDM5OlwiQXJyb3dSaWdodFwiLDQwOlwiQXJyb3dEb3duXCIsNDU6XCJJbnNlcnRcIiw0NjpcIkRlbGV0ZVwiLDExMjpcIkYxXCIsMTEzOlwiRjJcIiwxMTQ6XCJGM1wiLDExNTpcIkY0XCIsMTE2OlwiRjVcIiwxMTc6XCJGNlwiLDExODpcIkY3XCIsMTE5OlwiRjhcIiwxMjA6XCJGOVwiLDEyMTpcIkYxMFwiLDEyMjpcIkYxMVwiLDEyMzpcIkYxMlwiLDE0NDpcIk51bUxvY2tcIiwxNDU6XCJTY3JvbGxMb2NrXCIsMjI0OlwiTWV0YVwifSx0MD17QWx0OlwiYWx0S2V5XCIsQ29udHJvbDpcImN0cmxLZXlcIixNZXRhOlwibWV0YUtleVwiLFNoaWZ0Olwic2hpZnRLZXlcIn07ZnVuY3Rpb24gdDEoZSl7dmFyIHQ9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gdC5nZXRNb2RpZmllclN0YXRlP3QuZ2V0TW9kaWZpZXJTdGF0ZShlKTohIShlPXQwW2VdKSYmISF0W2VdfWZ1bmN0aW9uIHQyKCl7cmV0dXJuIHQxfXZhciB0ND10RChmKHt9LHRxLHtrZXk6ZnVuY3Rpb24oZSl7aWYoZS5rZXkpe3ZhciB0PXRRW2Uua2V5XXx8ZS5rZXk7aWYoXCJVbmlkZW50aWZpZWRcIiE9PXQpcmV0dXJuIHR9cmV0dXJuXCJrZXlwcmVzc1wiPT09ZS50eXBlPzEzPT09KGU9dEkoZSkpP1wiRW50ZXJcIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGUpOlwia2V5ZG93blwiPT09ZS50eXBlfHxcImtleXVwXCI9PT1lLnR5cGU/dEpbZS5rZXlDb2RlXXx8XCJVbmlkZW50aWZpZWRcIjpcIlwifSxjb2RlOjAsbG9jYXRpb246MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAscmVwZWF0OjAsbG9jYWxlOjAsZ2V0TW9kaWZpZXJTdGF0ZTp0MixjaGFyQ29kZTpmdW5jdGlvbihlKXtyZXR1cm5cImtleXByZXNzXCI9PT1lLnR5cGU/dEkoZSk6MH0sa2V5Q29kZTpmdW5jdGlvbihlKXtyZXR1cm5cImtleWRvd25cIj09PWUudHlwZXx8XCJrZXl1cFwiPT09ZS50eXBlP2Uua2V5Q29kZTowfSx3aGljaDpmdW5jdGlvbihlKXtyZXR1cm5cImtleXByZXNzXCI9PT1lLnR5cGU/dEkoZSk6XCJrZXlkb3duXCI9PT1lLnR5cGV8fFwia2V5dXBcIj09PWUudHlwZT9lLmtleUNvZGU6MH19KSksdDU9dEQoZih7fSx0Vix7cG9pbnRlcklkOjAsd2lkdGg6MCxoZWlnaHQ6MCxwcmVzc3VyZTowLHRhbmdlbnRpYWxQcmVzc3VyZTowLHRpbHRYOjAsdGlsdFk6MCx0d2lzdDowLHBvaW50ZXJUeXBlOjAsaXNQcmltYXJ5OjB9KSksdDM9dEQoZih7fSx0cSx7dG91Y2hlczowLHRhcmdldFRvdWNoZXM6MCxjaGFuZ2VkVG91Y2hlczowLGFsdEtleTowLG1ldGFLZXk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxnZXRNb2RpZmllclN0YXRlOnQyfSkpLHQ2PXREKGYoe30sdFUse3Byb3BlcnR5TmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSkpLHQ5PXREKGYoe30sdFYse2RlbHRhWDpmdW5jdGlvbihlKXtyZXR1cm5cImRlbHRhWFwiaW4gZT9lLmRlbHRhWDpcIndoZWVsRGVsdGFYXCJpbiBlPy1lLndoZWVsRGVsdGFYOjB9LGRlbHRhWTpmdW5jdGlvbihlKXtyZXR1cm5cImRlbHRhWVwiaW4gZT9lLmRlbHRhWTpcIndoZWVsRGVsdGFZXCJpbiBlPy1lLndoZWVsRGVsdGFZOlwid2hlZWxEZWx0YVwiaW4gZT8tZS53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSkpLHQ4PXREKGYoe30sdFUse25ld1N0YXRlOjAsb2xkU3RhdGU6MH0pKSx0Nz1bOSwxMywyNywzMl0sbmU9dGsmJlwiQ29tcG9zaXRpb25FdmVudFwiaW4gd2luZG93LG50PW51bGw7dGsmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmKG50PWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIG5uPXRrJiZcIlRleHRFdmVudFwiaW4gd2luZG93JiYhbnQsbnI9dGsmJighbmV8fG50JiY4PG50JiYxMT49bnQpLG5vPSExO2Z1bmN0aW9uIG5hKGUsdCl7c3dpdGNoKGUpe2Nhc2VcImtleXVwXCI6cmV0dXJuIC0xIT09dDcuaW5kZXhPZih0LmtleUNvZGUpO2Nhc2VcImtleWRvd25cIjpyZXR1cm4gMjI5IT09dC5rZXlDb2RlO2Nhc2VcImtleXByZXNzXCI6Y2FzZVwibW91c2Vkb3duXCI6Y2FzZVwiZm9jdXNvdXRcIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBuaShlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YoZT1lLmRldGFpbCkmJlwiZGF0YVwiaW4gZT9lLmRhdGE6bnVsbH12YXIgbmw9ITEsbnM9e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsXCJkYXRldGltZS1sb2NhbFwiOiEwLGVtYWlsOiEwLG1vbnRoOiEwLG51bWJlcjohMCxwYXNzd29yZDohMCxyYW5nZTohMCxzZWFyY2g6ITAsdGVsOiEwLHRleHQ6ITAsdGltZTohMCx1cmw6ITAsd2VlazohMH07ZnVuY3Rpb24gbmMoZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVyblwiaW5wdXRcIj09PXQ/ISFuc1tlLnR5cGVdOlwidGV4dGFyZWFcIj09PXR9ZnVuY3Rpb24gbnUoZSx0LG4scil7dGI/dEE/dEEucHVzaChyKTp0QT1bcl06dGI9ciwwPCh0PWN0KHQsXCJvbkNoYW5nZVwiKSkubGVuZ3RoJiYobj1uZXcgdEYoXCJvbkNoYW5nZVwiLFwiY2hhbmdlXCIsbnVsbCxuLHIpLGUucHVzaCh7ZXZlbnQ6bixsaXN0ZW5lcnM6dH0pKX12YXIgbmQ9bnVsbCxuZj1udWxsO2Z1bmN0aW9uIG5wKGUpe3M0KGUsMCl9ZnVuY3Rpb24gbmgoZSl7aWYoZTgoZSQoZSkpKXJldHVybiBlfWZ1bmN0aW9uIG5tKGUsdCl7aWYoXCJjaGFuZ2VcIj09PWUpcmV0dXJuIHR9dmFyIG5nPSExO2lmKHRrKXtpZih0ayl7dmFyIG55PVwib25pbnB1dFwiaW4gZG9jdW1lbnQ7aWYoIW55KXt2YXIgbnY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtudi5zZXRBdHRyaWJ1dGUoXCJvbmlucHV0XCIsXCJyZXR1cm47XCIpLG55PVwiZnVuY3Rpb25cIj09dHlwZW9mIG52Lm9uaW5wdXR9cj1ueX1lbHNlIHI9ITE7bmc9ciYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKX1mdW5jdGlvbiBuYigpe25kJiYobmQuZGV0YWNoRXZlbnQoXCJvbnByb3BlcnR5Y2hhbmdlXCIsbkEpLG5mPW5kPW51bGwpfWZ1bmN0aW9uIG5BKGUpe2lmKFwidmFsdWVcIj09PWUucHJvcGVydHlOYW1lJiZuaChuZikpe3ZhciB0PVtdO251KHQsbmYsZSx0dihlKSksdEMobnAsdCl9fWZ1bmN0aW9uIG54KGUsdCxuKXtcImZvY3VzaW5cIj09PWU/KG5iKCksbmQ9dCxuZj1uLG5kLmF0dGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLG5BKSk6XCJmb2N1c291dFwiPT09ZSYmbmIoKX1mdW5jdGlvbiBudyhlKXtpZihcInNlbGVjdGlvbmNoYW5nZVwiPT09ZXx8XCJrZXl1cFwiPT09ZXx8XCJrZXlkb3duXCI9PT1lKXJldHVybiBuaChuZil9ZnVuY3Rpb24gbkMoZSx0KXtpZihcImNsaWNrXCI9PT1lKXJldHVybiBuaCh0KX1mdW5jdGlvbiBuXyhlLHQpe2lmKFwiaW5wdXRcIj09PWV8fFwiY2hhbmdlXCI9PT1lKXJldHVybiBuaCh0KX12YXIgbms9XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmlzP09iamVjdC5pczpmdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKDAhPT1lfHwxL2U9PTEvdCl8fGUhPWUmJnQhPXR9O2Z1bmN0aW9uIG5FKGUsdCl7aWYobmsoZSx0KSlyZXR1cm4hMDtpZihcIm9iamVjdFwiIT10eXBlb2YgZXx8bnVsbD09PWV8fFwib2JqZWN0XCIhPXR5cGVvZiB0fHxudWxsPT09dClyZXR1cm4hMTt2YXIgbj1PYmplY3Qua2V5cyhlKSxyPU9iamVjdC5rZXlzKHQpO2lmKG4ubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuITE7Zm9yKHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIG89bltyXTtpZighUS5jYWxsKHQsbyl8fCFuayhlW29dLHRbb10pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIG5qKGUpe2Zvcig7ZSYmZS5maXJzdENoaWxkOyllPWUuZmlyc3RDaGlsZDtyZXR1cm4gZX1mdW5jdGlvbiBuUyhlLHQpe3ZhciBuLHI9bmooZSk7Zm9yKGU9MDtyOyl7aWYoMz09PXIubm9kZVR5cGUpe2lmKG49ZStyLnRleHRDb250ZW50Lmxlbmd0aCxlPD10JiZuPj10KXJldHVybntub2RlOnIsb2Zmc2V0OnQtZX07ZT1ufWU6e2Zvcig7cjspe2lmKHIubmV4dFNpYmxpbmcpe3I9ci5uZXh0U2libGluZzticmVhayBlfXI9ci5wYXJlbnROb2RlfXI9dm9pZCAwfXI9bmoocil9fWZ1bmN0aW9uIG5PKGUpe2U9bnVsbCE9ZSYmbnVsbCE9ZS5vd25lckRvY3VtZW50JiZudWxsIT1lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc/ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3OndpbmRvdztmb3IodmFyIHQ9ZTcoZS5kb2N1bWVudCk7dCBpbnN0YW5jZW9mIGUuSFRNTElGcmFtZUVsZW1lbnQ7KXt0cnl7dmFyIG49XCJzdHJpbmdcIj09dHlwZW9mIHQuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmfWNhdGNoKGUpe249ITF9aWYobillPXQuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO3Q9ZTcoZS5kb2N1bWVudCl9cmV0dXJuIHR9ZnVuY3Rpb24gbkIoZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0JiYoXCJpbnB1dFwiPT09dCYmKFwidGV4dFwiPT09ZS50eXBlfHxcInNlYXJjaFwiPT09ZS50eXBlfHxcInRlbFwiPT09ZS50eXBlfHxcInVybFwiPT09ZS50eXBlfHxcInBhc3N3b3JkXCI9PT1lLnR5cGUpfHxcInRleHRhcmVhXCI9PT10fHxcInRydWVcIj09PWUuY29udGVudEVkaXRhYmxlKX12YXIgblA9dGsmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSxuST1udWxsLG56PW51bGwsblQ9bnVsbCxuRD0hMTtmdW5jdGlvbiBuTChlLHQsbil7dmFyIHI9bi53aW5kb3c9PT1uP24uZG9jdW1lbnQ6OT09PW4ubm9kZVR5cGU/bjpuLm93bmVyRG9jdW1lbnQ7bkR8fG51bGw9PW5JfHxuSSE9PWU3KHIpfHwocj1cInNlbGVjdGlvblN0YXJ0XCJpbihyPW5JKSYmbkIocik/e3N0YXJ0OnIuc2VsZWN0aW9uU3RhcnQsZW5kOnIuc2VsZWN0aW9uRW5kfTp7YW5jaG9yTm9kZToocj0oci5vd25lckRvY3VtZW50JiZyLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKCkpLmFuY2hvck5vZGUsYW5jaG9yT2Zmc2V0OnIuYW5jaG9yT2Zmc2V0LGZvY3VzTm9kZTpyLmZvY3VzTm9kZSxmb2N1c09mZnNldDpyLmZvY3VzT2Zmc2V0fSxuVCYmbkUoblQscil8fChuVD1yLDA8KHI9Y3QobnosXCJvblNlbGVjdFwiKSkubGVuZ3RoJiYodD1uZXcgdEYoXCJvblNlbGVjdFwiLFwic2VsZWN0XCIsbnVsbCx0LG4pLGUucHVzaCh7ZXZlbnQ6dCxsaXN0ZW5lcnM6cn0pLHQudGFyZ2V0PW5JKSkpfWZ1bmN0aW9uIG5OKGUsdCl7dmFyIG49e307cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXT10LnRvTG93ZXJDYXNlKCksbltcIldlYmtpdFwiK2VdPVwid2Via2l0XCIrdCxuW1wiTW96XCIrZV09XCJtb3pcIit0LG59dmFyIG5SPXthbmltYXRpb25lbmQ6bk4oXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkVuZFwiKSxhbmltYXRpb25pdGVyYXRpb246bk4oXCJBbmltYXRpb25cIixcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxhbmltYXRpb25zdGFydDpuTihcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uU3RhcnRcIiksdHJhbnNpdGlvbnJ1bjpuTihcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25SdW5cIiksdHJhbnNpdGlvbnN0YXJ0Om5OKFwiVHJhbnNpdGlvblwiLFwiVHJhbnNpdGlvblN0YXJ0XCIpLHRyYW5zaXRpb25jYW5jZWw6bk4oXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uQ2FuY2VsXCIpLHRyYW5zaXRpb25lbmQ6bk4oXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uRW5kXCIpfSxuTT17fSxuWj17fTtmdW5jdGlvbiBuVShlKXtpZihuTVtlXSlyZXR1cm4gbk1bZV07aWYoIW5SW2VdKXJldHVybiBlO3ZhciB0LG49blJbZV07Zm9yKHQgaW4gbilpZihuLmhhc093blByb3BlcnR5KHQpJiZ0IGluIG5aKXJldHVybiBuTVtlXT1uW3RdO3JldHVybiBlfXRrJiYoblo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5zdHlsZSxcIkFuaW1hdGlvbkV2ZW50XCJpbiB3aW5kb3d8fChkZWxldGUgblIuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgblIuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgblIuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSxcIlRyYW5zaXRpb25FdmVudFwiaW4gd2luZG93fHxkZWxldGUgblIudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTt2YXIgbkY9blUoXCJhbmltYXRpb25lbmRcIiksbnE9blUoXCJhbmltYXRpb25pdGVyYXRpb25cIiksbkg9blUoXCJhbmltYXRpb25zdGFydFwiKSxuVj1uVShcInRyYW5zaXRpb25ydW5cIiksbiQ9blUoXCJ0cmFuc2l0aW9uc3RhcnRcIiksblc9blUoXCJ0cmFuc2l0aW9uY2FuY2VsXCIpLG5ZPW5VKFwidHJhbnNpdGlvbmVuZFwiKSxuSz1uZXcgTWFwLG5YPVwiYWJvcnQgYXV4Q2xpY2sgYmVmb3JlVG9nZ2xlIGNhbmNlbCBjYW5QbGF5IGNhblBsYXlUaHJvdWdoIGNsaWNrIGNsb3NlIGNvbnRleHRNZW51IGNvcHkgY3V0IGRyYWcgZHJhZ0VuZCBkcmFnRW50ZXIgZHJhZ0V4aXQgZHJhZ0xlYXZlIGRyYWdPdmVyIGRyYWdTdGFydCBkcm9wIGR1cmF0aW9uQ2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGdvdFBvaW50ZXJDYXB0dXJlIGlucHV0IGludmFsaWQga2V5RG93biBrZXlQcmVzcyBrZXlVcCBsb2FkIGxvYWRlZERhdGEgbG9hZGVkTWV0YWRhdGEgbG9hZFN0YXJ0IGxvc3RQb2ludGVyQ2FwdHVyZSBtb3VzZURvd24gbW91c2VNb3ZlIG1vdXNlT3V0IG1vdXNlT3ZlciBtb3VzZVVwIHBhc3RlIHBhdXNlIHBsYXkgcGxheWluZyBwb2ludGVyQ2FuY2VsIHBvaW50ZXJEb3duIHBvaW50ZXJNb3ZlIHBvaW50ZXJPdXQgcG9pbnRlck92ZXIgcG9pbnRlclVwIHByb2dyZXNzIHJhdGVDaGFuZ2UgcmVzZXQgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VibWl0IHN1c3BlbmQgdGltZVVwZGF0ZSB0b3VjaENhbmNlbCB0b3VjaEVuZCB0b3VjaFN0YXJ0IHZvbHVtZUNoYW5nZSBzY3JvbGwgdG9nZ2xlIHRvdWNoTW92ZSB3YWl0aW5nIHdoZWVsXCIuc3BsaXQoXCIgXCIpO2Z1bmN0aW9uIG5HKGUsdCl7bksuc2V0KGUsdCksZUcodCxbZV0pfW5YLnB1c2goXCJzY3JvbGxFbmRcIik7dmFyIG5RPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcG9ydEVycm9yP3JlcG9ydEVycm9yOmZ1bmN0aW9uKGUpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHdpbmRvdy5FcnJvckV2ZW50KXt2YXIgdD1uZXcgd2luZG93LkVycm9yRXZlbnQoXCJlcnJvclwiLHtidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsbWVzc2FnZTpcIm9iamVjdFwiPT10eXBlb2YgZSYmbnVsbCE9PWUmJlwic3RyaW5nXCI9PXR5cGVvZiBlLm1lc3NhZ2U/U3RyaW5nKGUubWVzc2FnZSk6U3RyaW5nKGUpLGVycm9yOmV9KTtpZighd2luZG93LmRpc3BhdGNoRXZlbnQodCkpcmV0dXJufWVsc2UgaWYoXCJvYmplY3RcIj09dHlwZW9mIHByb2Nlc3MmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHByb2Nlc3MuZW1pdClyZXR1cm4gdm9pZCBwcm9jZXNzLmVtaXQoXCJ1bmNhdWdodEV4Y2VwdGlvblwiLGUpO2NvbnNvbGUuZXJyb3IoZSl9LG5KPVtdLG4wPTAsbjE9MDtmdW5jdGlvbiBuMigpe2Zvcih2YXIgZT1uMCx0PW4xPW4wPTA7dDxlOyl7dmFyIG49bkpbdF07bkpbdCsrXT1udWxsO3ZhciByPW5KW3RdO25KW3QrK109bnVsbDt2YXIgbz1uSlt0XTtuSlt0KytdPW51bGw7dmFyIGE9bkpbdF07aWYobkpbdCsrXT1udWxsLG51bGwhPT1yJiZudWxsIT09byl7dmFyIGk9ci5wZW5kaW5nO251bGw9PT1pP28ubmV4dD1vOihvLm5leHQ9aS5uZXh0LGkubmV4dD1vKSxyLnBlbmRpbmc9b30wIT09YSYmbjYobixvLGEpfX1mdW5jdGlvbiBuNChlLHQsbixyKXtuSltuMCsrXT1lLG5KW24wKytdPXQsbkpbbjArK109bixuSltuMCsrXT1yLG4xfD1yLGUubGFuZXN8PXIsbnVsbCE9PShlPWUuYWx0ZXJuYXRlKSYmKGUubGFuZXN8PXIpfWZ1bmN0aW9uIG41KGUsdCxuLHIpe3JldHVybiBuNChlLHQsbixyKSxuOShlKX1mdW5jdGlvbiBuMyhlLHQpe3JldHVybiBuNChlLG51bGwsbnVsbCx0KSxuOShlKX1mdW5jdGlvbiBuNihlLHQsbil7ZS5sYW5lc3w9bjt2YXIgcj1lLmFsdGVybmF0ZTtudWxsIT09ciYmKHIubGFuZXN8PW4pO2Zvcih2YXIgbz0hMSxhPWUucmV0dXJuO251bGwhPT1hOylhLmNoaWxkTGFuZXN8PW4sbnVsbCE9PShyPWEuYWx0ZXJuYXRlKSYmKHIuY2hpbGRMYW5lc3w9biksMjI9PT1hLnRhZyYmKG51bGw9PT0oZT1hLnN0YXRlTm9kZSl8fDEmZS5fdmlzaWJpbGl0eXx8KG89ITApKSxlPWEsYT1hLnJldHVybjtyZXR1cm4gMz09PWUudGFnPyhhPWUuc3RhdGVOb2RlLG8mJm51bGwhPT10JiYobz0zMS1lbShuKSxudWxsPT09KHI9KGU9YS5oaWRkZW5VcGRhdGVzKVtvXSk/ZVtvXT1bdF06ci5wdXNoKHQpLHQubGFuZT0weDIwMDAwMDAwfG4pLGEpOm51bGx9ZnVuY3Rpb24gbjkoZSl7aWYoNTA8c3QpdGhyb3cgc3Q9MCxzbj1udWxsLEVycm9yKGwoMTg1KSk7Zm9yKHZhciB0PWUucmV0dXJuO251bGwhPT10Oyl0PShlPXQpLnJldHVybjtyZXR1cm4gMz09PWUudGFnP2Uuc3RhdGVOb2RlOm51bGx9dmFyIG44PXt9O2Z1bmN0aW9uIG43KGUsdCxuLHIpe3RoaXMudGFnPWUsdGhpcy5rZXk9bix0aGlzLnNpYmxpbmc9dGhpcy5jaGlsZD10aGlzLnJldHVybj10aGlzLnN0YXRlTm9kZT10aGlzLnR5cGU9dGhpcy5lbGVtZW50VHlwZT1udWxsLHRoaXMuaW5kZXg9MCx0aGlzLnJlZkNsZWFudXA9dGhpcy5yZWY9bnVsbCx0aGlzLnBlbmRpbmdQcm9wcz10LHRoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsLHRoaXMubW9kZT1yLHRoaXMuc3VidHJlZUZsYWdzPXRoaXMuZmxhZ3M9MCx0aGlzLmRlbGV0aW9ucz1udWxsLHRoaXMuY2hpbGRMYW5lcz10aGlzLmxhbmVzPTAsdGhpcy5hbHRlcm5hdGU9bnVsbH1mdW5jdGlvbiByZShlLHQsbixyKXtyZXR1cm4gbmV3IG43KGUsdCxuLHIpfWZ1bmN0aW9uIHJ0KGUpe3JldHVybiEoIShlPWUucHJvdG90eXBlKXx8IWUuaXNSZWFjdENvbXBvbmVudCl9ZnVuY3Rpb24gcm4oZSx0KXt2YXIgbj1lLmFsdGVybmF0ZTtyZXR1cm4gbnVsbD09PW4/KChuPXJlKGUudGFnLHQsZS5rZXksZS5tb2RlKSkuZWxlbWVudFR5cGU9ZS5lbGVtZW50VHlwZSxuLnR5cGU9ZS50eXBlLG4uc3RhdGVOb2RlPWUuc3RhdGVOb2RlLG4uYWx0ZXJuYXRlPWUsZS5hbHRlcm5hdGU9bik6KG4ucGVuZGluZ1Byb3BzPXQsbi50eXBlPWUudHlwZSxuLmZsYWdzPTAsbi5zdWJ0cmVlRmxhZ3M9MCxuLmRlbGV0aW9ucz1udWxsKSxuLmZsYWdzPTB4M2UwMDAwMCZlLmZsYWdzLG4uY2hpbGRMYW5lcz1lLmNoaWxkTGFuZXMsbi5sYW5lcz1lLmxhbmVzLG4uY2hpbGQ9ZS5jaGlsZCxuLm1lbW9pemVkUHJvcHM9ZS5tZW1vaXplZFByb3BzLG4ubWVtb2l6ZWRTdGF0ZT1lLm1lbW9pemVkU3RhdGUsbi51cGRhdGVRdWV1ZT1lLnVwZGF0ZVF1ZXVlLHQ9ZS5kZXBlbmRlbmNpZXMsbi5kZXBlbmRlbmNpZXM9bnVsbD09PXQ/bnVsbDp7bGFuZXM6dC5sYW5lcyxmaXJzdENvbnRleHQ6dC5maXJzdENvbnRleHR9LG4uc2libGluZz1lLnNpYmxpbmcsbi5pbmRleD1lLmluZGV4LG4ucmVmPWUucmVmLG4ucmVmQ2xlYW51cD1lLnJlZkNsZWFudXAsbn1mdW5jdGlvbiBycihlLHQpe2UuZmxhZ3MmPTB4M2UwMDAwMjt2YXIgbj1lLmFsdGVybmF0ZTtyZXR1cm4gbnVsbD09PW4/KGUuY2hpbGRMYW5lcz0wLGUubGFuZXM9dCxlLmNoaWxkPW51bGwsZS5zdWJ0cmVlRmxhZ3M9MCxlLm1lbW9pemVkUHJvcHM9bnVsbCxlLm1lbW9pemVkU3RhdGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGwsZS5kZXBlbmRlbmNpZXM9bnVsbCxlLnN0YXRlTm9kZT1udWxsKTooZS5jaGlsZExhbmVzPW4uY2hpbGRMYW5lcyxlLmxhbmVzPW4ubGFuZXMsZS5jaGlsZD1uLmNoaWxkLGUuc3VidHJlZUZsYWdzPTAsZS5kZWxldGlvbnM9bnVsbCxlLm1lbW9pemVkUHJvcHM9bi5tZW1vaXplZFByb3BzLGUubWVtb2l6ZWRTdGF0ZT1uLm1lbW9pemVkU3RhdGUsZS51cGRhdGVRdWV1ZT1uLnVwZGF0ZVF1ZXVlLGUudHlwZT1uLnR5cGUsZS5kZXBlbmRlbmNpZXM9bnVsbD09PSh0PW4uZGVwZW5kZW5jaWVzKT9udWxsOntsYW5lczp0LmxhbmVzLGZpcnN0Q29udGV4dDp0LmZpcnN0Q29udGV4dH0pLGV9ZnVuY3Rpb24gcm8oZSx0LG4scixvLGEpe3ZhciBpPTA7aWYocj1lLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpcnQoZSkmJihpPTEpO2Vsc2UgaWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpaT0hZnVuY3Rpb24oZSx0LG4pe2lmKDE9PT1ufHxudWxsIT10Lml0ZW1Qcm9wKXJldHVybiExO3N3aXRjaChlKXtjYXNlXCJtZXRhXCI6Y2FzZVwidGl0bGVcIjpyZXR1cm4hMDtjYXNlXCJzdHlsZVwiOmlmKFwic3RyaW5nXCIhPXR5cGVvZiB0LnByZWNlZGVuY2V8fFwic3RyaW5nXCIhPXR5cGVvZiB0LmhyZWZ8fFwiXCI9PT10LmhyZWYpYnJlYWs7cmV0dXJuITA7Y2FzZVwibGlua1wiOmlmKFwic3RyaW5nXCIhPXR5cGVvZiB0LnJlbHx8XCJzdHJpbmdcIiE9dHlwZW9mIHQuaHJlZnx8XCJcIj09PXQuaHJlZnx8dC5vbkxvYWR8fHQub25FcnJvcilicmVhaztpZihcInN0eWxlc2hlZXRcIj09PXQucmVsKXJldHVybiBlPXQuZGlzYWJsZWQsXCJzdHJpbmdcIj09dHlwZW9mIHQucHJlY2VkZW5jZSYmbnVsbD09ZTtyZXR1cm4hMDtjYXNlXCJzY3JpcHRcIjppZih0LmFzeW5jJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB0LmFzeW5jJiZcInN5bWJvbFwiIT10eXBlb2YgdC5hc3luYyYmIXQub25Mb2FkJiYhdC5vbkVycm9yJiZ0LnNyYyYmXCJzdHJpbmdcIj09dHlwZW9mIHQuc3JjKXJldHVybiEwfXJldHVybiExfShlLG4sWi5jdXJyZW50KT9cImh0bWxcIj09PWV8fFwiaGVhZFwiPT09ZXx8XCJib2R5XCI9PT1lPzI3OjU6MjY7ZWxzZSBlOnN3aXRjaChlKXtjYXNlIEU6cmV0dXJuKGU9cmUoMzEsbix0LG8pKS5lbGVtZW50VHlwZT1FLGUubGFuZXM9YSxlO2Nhc2UgZzpyZXR1cm4gcmEobi5jaGlsZHJlbixvLGEsdCk7Y2FzZSB5Omk9OCxvfD0yNDticmVhaztjYXNlIHY6cmV0dXJuKGU9cmUoMTIsbix0LDJ8bykpLmVsZW1lbnRUeXBlPXYsZS5sYW5lcz1hLGU7Y2FzZSB3OnJldHVybihlPXJlKDEzLG4sdCxvKSkuZWxlbWVudFR5cGU9dyxlLmxhbmVzPWEsZTtjYXNlIEM6cmV0dXJuKGU9cmUoMTksbix0LG8pKS5lbGVtZW50VHlwZT1DLGUubGFuZXM9YSxlO2RlZmF1bHQ6aWYoXCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIEE6aT0xMDticmVhayBlO2Nhc2UgYjppPTk7YnJlYWsgZTtjYXNlIHg6aT0xMTticmVhayBlO2Nhc2UgXzppPTE0O2JyZWFrIGU7Y2FzZSBrOmk9MTYscj1udWxsO2JyZWFrIGV9aT0yOSxuPUVycm9yKGwoMTMwLG51bGw9PT1lP1wibnVsbFwiOnR5cGVvZiBlLFwiXCIpKSxyPW51bGx9cmV0dXJuKHQ9cmUoaSxuLHQsbykpLmVsZW1lbnRUeXBlPWUsdC50eXBlPXIsdC5sYW5lcz1hLHR9ZnVuY3Rpb24gcmEoZSx0LG4scil7cmV0dXJuKGU9cmUoNyxlLHIsdCkpLmxhbmVzPW4sZX1mdW5jdGlvbiByaShlLHQsbil7cmV0dXJuKGU9cmUoNixlLG51bGwsdCkpLmxhbmVzPW4sZX1mdW5jdGlvbiBybChlKXt2YXIgdD1yZSgxOCxudWxsLG51bGwsMCk7cmV0dXJuIHQuc3RhdGVOb2RlPWUsdH1mdW5jdGlvbiBycyhlLHQsbil7cmV0dXJuKHQ9cmUoNCxudWxsIT09ZS5jaGlsZHJlbj9lLmNoaWxkcmVuOltdLGUua2V5LHQpKS5sYW5lcz1uLHQuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmUuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjplLmltcGxlbWVudGF0aW9ufSx0fXZhciByYz1uZXcgV2Vha01hcDtmdW5jdGlvbiBydShlLHQpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiBlJiZudWxsIT09ZSl7dmFyIG49cmMuZ2V0KGUpO3JldHVybiB2b2lkIDAhPT1uP246KHQ9e3ZhbHVlOmUsc291cmNlOnQsc3RhY2s6Ryh0KX0scmMuc2V0KGUsdCksdCl9cmV0dXJue3ZhbHVlOmUsc291cmNlOnQsc3RhY2s6Ryh0KX19dmFyIHJkPVtdLHJmPTAscnA9bnVsbCxyaD0wLHJtPVtdLHJnPTAscnk9bnVsbCxydj0xLHJiPVwiXCI7ZnVuY3Rpb24gckEoZSx0KXtyZFtyZisrXT1yaCxyZFtyZisrXT1ycCxycD1lLHJoPXR9ZnVuY3Rpb24gcngoZSx0LG4pe3JtW3JnKytdPXJ2LHJtW3JnKytdPXJiLHJtW3JnKytdPXJ5LHJ5PWU7dmFyIHI9cnY7ZT1yYjt2YXIgbz0zMi1lbShyKS0xO3ImPX4oMTw8byksbis9MTt2YXIgYT0zMi1lbSh0KStvO2lmKDMwPGEpe3ZhciBpPW8tbyU1O2E9KHImKDE8PGkpLTEpLnRvU3RyaW5nKDMyKSxyPj49aSxvLT1pLHJ2PTE8PDMyLWVtKHQpK298bjw8b3xyLHJiPWErZX1lbHNlIHJ2PTE8PGF8bjw8b3xyLHJiPWV9ZnVuY3Rpb24gcncoZSl7bnVsbCE9PWUucmV0dXJuJiYockEoZSwxKSxyeChlLDEsMCkpfWZ1bmN0aW9uIHJDKGUpe2Zvcig7ZT09PXJwOylycD1yZFstLXJmXSxyZFtyZl09bnVsbCxyaD1yZFstLXJmXSxyZFtyZl09bnVsbDtmb3IoO2U9PT1yeTspcnk9cm1bLS1yZ10scm1bcmddPW51bGwscmI9cm1bLS1yZ10scm1bcmddPW51bGwscnY9cm1bLS1yZ10scm1bcmddPW51bGx9ZnVuY3Rpb24gcl8oZSx0KXtybVtyZysrXT1ydixybVtyZysrXT1yYixybVtyZysrXT1yeSxydj10LmlkLHJiPXQub3ZlcmZsb3cscnk9ZX12YXIgcms9bnVsbCxyRT1udWxsLHJqPSExLHJTPW51bGwsck89ITEsckI9RXJyb3IobCg1MTkpKTtmdW5jdGlvbiByUChlKXt2YXIgdD1FcnJvcihsKDQxOCwxPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdP1widGV4dFwiOlwiSFRNTFwiLFwiXCIpKTt0aHJvdyByTihydSh0LGUpKSxyQn1mdW5jdGlvbiBySShlKXt2YXIgdD1lLnN0YXRlTm9kZSxuPWUudHlwZSxyPWUubWVtb2l6ZWRQcm9wcztzd2l0Y2godFtlRF09ZSx0W2VMXT1yLG4pe2Nhc2VcImRpYWxvZ1wiOnM1KFwiY2FuY2VsXCIsdCksczUoXCJjbG9zZVwiLHQpO2JyZWFrO2Nhc2VcImlmcmFtZVwiOmNhc2VcIm9iamVjdFwiOmNhc2VcImVtYmVkXCI6czUoXCJsb2FkXCIsdCk7YnJlYWs7Y2FzZVwidmlkZW9cIjpjYXNlXCJhdWRpb1wiOmZvcihuPTA7bjxzMS5sZW5ndGg7bisrKXM1KHMxW25dLHQpO2JyZWFrO2Nhc2VcInNvdXJjZVwiOnM1KFwiZXJyb3JcIix0KTticmVhaztjYXNlXCJpbWdcIjpjYXNlXCJpbWFnZVwiOmNhc2VcImxpbmtcIjpzNShcImVycm9yXCIsdCksczUoXCJsb2FkXCIsdCk7YnJlYWs7Y2FzZVwiZGV0YWlsc1wiOnM1KFwidG9nZ2xlXCIsdCk7YnJlYWs7Y2FzZVwiaW5wdXRcIjpzNShcImludmFsaWRcIix0KSx0cih0LHIudmFsdWUsci5kZWZhdWx0VmFsdWUsci5jaGVja2VkLHIuZGVmYXVsdENoZWNrZWQsci50eXBlLHIubmFtZSwhMCk7YnJlYWs7Y2FzZVwic2VsZWN0XCI6czUoXCJpbnZhbGlkXCIsdCk7YnJlYWs7Y2FzZVwidGV4dGFyZWFcIjpzNShcImludmFsaWRcIix0KSx0bCh0LHIudmFsdWUsci5kZWZhdWx0VmFsdWUsci5jaGlsZHJlbil9XCJzdHJpbmdcIiE9dHlwZW9mKG49ci5jaGlsZHJlbikmJlwibnVtYmVyXCIhPXR5cGVvZiBuJiZcImJpZ2ludFwiIT10eXBlb2Ygbnx8dC50ZXh0Q29udGVudD09PVwiXCIrbnx8ITA9PT1yLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x8Y2wodC50ZXh0Q29udGVudCxuKT8obnVsbCE9ci5wb3BvdmVyJiYoczUoXCJiZWZvcmV0b2dnbGVcIix0KSxzNShcInRvZ2dsZVwiLHQpKSxudWxsIT1yLm9uU2Nyb2xsJiZzNShcInNjcm9sbFwiLHQpLG51bGwhPXIub25TY3JvbGxFbmQmJnM1KFwic2Nyb2xsZW5kXCIsdCksbnVsbCE9ci5vbkNsaWNrJiYodC5vbmNsaWNrPXRnKSx0PSEwKTp0PSExLHR8fHJQKGUsITApfWZ1bmN0aW9uIHJ6KGUpe2Zvcihyaz1lLnJldHVybjtyazspc3dpdGNoKHJrLnRhZyl7Y2FzZSA1OmNhc2UgMzE6Y2FzZSAxMzpyTz0hMTtyZXR1cm47Y2FzZSAyNzpjYXNlIDM6ck89ITA7cmV0dXJuO2RlZmF1bHQ6cms9cmsucmV0dXJufX1mdW5jdGlvbiByVChlKXtpZihlIT09cmspcmV0dXJuITE7aWYoIXJqKXJldHVybiByeihlKSxyaj0hMCwhMTt2YXIgdCxuPWUudGFnO2lmKCh0PTMhPT1uJiYyNyE9PW4pJiYoKHQ9NT09PW4pJiYodD1cImZvcm1cIj09PSh0PWUudHlwZSl8fFwiYnV0dG9uXCI9PT10fHxjZyhlLnR5cGUsZS5tZW1vaXplZFByb3BzKSksdD0hdCksdCYmckUmJnJQKGUpLHJ6KGUpLDEzPT09bil7aWYoIShlPW51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpP2UuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihsKDMxNykpO3JFPWNJKGUpfWVsc2UgaWYoMzE9PT1uKXtpZighKGU9bnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSk/ZS5kZWh5ZHJhdGVkOm51bGwpKXRocm93IEVycm9yKGwoMzE3KSk7ckU9Y0koZSl9ZWxzZSAyNz09PW4/KG49ckUsY0MoZS50eXBlKT8oZT1jUCxjUD1udWxsLHJFPWUpOnJFPW4pOnJFPXJrP2NCKGUuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfWZ1bmN0aW9uIHJEKCl7ckU9cms9bnVsbCxyaj0hMX1mdW5jdGlvbiByTCgpe3ZhciBlPXJTO3JldHVybiBudWxsIT09ZSYmKG51bGw9PT1sUT9sUT1lOmxRLnB1c2guYXBwbHkobFEsZSksclM9bnVsbCksZX1mdW5jdGlvbiByTihlKXtudWxsPT09clM/clM9W2VdOnJTLnB1c2goZSl9dmFyIHJSPU4obnVsbCksck09bnVsbCxyWj1udWxsO2Z1bmN0aW9uIHJVKGUsdCxuKXtNKHJSLHQuX2N1cnJlbnRWYWx1ZSksdC5fY3VycmVudFZhbHVlPW59ZnVuY3Rpb24gckYoZSl7ZS5fY3VycmVudFZhbHVlPXJSLmN1cnJlbnQsUihyUil9ZnVuY3Rpb24gcnEoZSx0LG4pe2Zvcig7bnVsbCE9PWU7KXt2YXIgcj1lLmFsdGVybmF0ZTtpZigoZS5jaGlsZExhbmVzJnQpIT09dD8oZS5jaGlsZExhbmVzfD10LG51bGwhPT1yJiYoci5jaGlsZExhbmVzfD10KSk6bnVsbCE9PXImJihyLmNoaWxkTGFuZXMmdCkhPT10JiYoci5jaGlsZExhbmVzfD10KSxlPT09bilicmVhaztlPWUucmV0dXJufX1mdW5jdGlvbiBySChlLHQsbixyKXt2YXIgbz1lLmNoaWxkO2ZvcihudWxsIT09byYmKG8ucmV0dXJuPWUpO251bGwhPT1vOyl7dmFyIGE9by5kZXBlbmRlbmNpZXM7aWYobnVsbCE9PWEpe3ZhciBpPW8uY2hpbGQ7YT1hLmZpcnN0Q29udGV4dDtlOmZvcig7bnVsbCE9PWE7KXt2YXIgcz1hO2E9bztmb3IodmFyIGM9MDtjPHQubGVuZ3RoO2MrKylpZihzLmNvbnRleHQ9PT10W2NdKXthLmxhbmVzfD1uLG51bGwhPT0ocz1hLmFsdGVybmF0ZSkmJihzLmxhbmVzfD1uKSxycShhLnJldHVybixuLGUpLHJ8fChpPW51bGwpO2JyZWFrIGV9YT1zLm5leHR9fWVsc2UgaWYoMTg9PT1vLnRhZyl7aWYobnVsbD09PShpPW8ucmV0dXJuKSl0aHJvdyBFcnJvcihsKDM0MSkpO2kubGFuZXN8PW4sbnVsbCE9PShhPWkuYWx0ZXJuYXRlKSYmKGEubGFuZXN8PW4pLHJxKGksbixlKSxpPW51bGx9ZWxzZSBpPW8uY2hpbGQ7aWYobnVsbCE9PWkpaS5yZXR1cm49bztlbHNlIGZvcihpPW87bnVsbCE9PWk7KXtpZihpPT09ZSl7aT1udWxsO2JyZWFrfWlmKG51bGwhPT0obz1pLnNpYmxpbmcpKXtvLnJldHVybj1pLnJldHVybixpPW87YnJlYWt9aT1pLnJldHVybn1vPWl9fWZ1bmN0aW9uIHJWKGUsdCxuLHIpe2U9bnVsbDtmb3IodmFyIG89dCxhPSExO251bGwhPT1vOyl7aWYoIWEpe2lmKDAhPSg1MjQyODgmby5mbGFncykpYT0hMDtlbHNlIGlmKDAhPSgyNjIxNDQmby5mbGFncykpYnJlYWt9aWYoMTA9PT1vLnRhZyl7dmFyIGk9by5hbHRlcm5hdGU7aWYobnVsbD09PWkpdGhyb3cgRXJyb3IobCgzODcpKTtpZihudWxsIT09KGk9aS5tZW1vaXplZFByb3BzKSl7dmFyIHM9by50eXBlO25rKG8ucGVuZGluZ1Byb3BzLnZhbHVlLGkudmFsdWUpfHwobnVsbCE9PWU/ZS5wdXNoKHMpOmU9W3NdKX19ZWxzZSBpZihvPT09cS5jdXJyZW50KXtpZihudWxsPT09KGk9by5hbHRlcm5hdGUpKXRocm93IEVycm9yKGwoMzg3KSk7aS5tZW1vaXplZFN0YXRlLm1lbW9pemVkU3RhdGUhPT1vLm1lbW9pemVkU3RhdGUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT1lP2UucHVzaChjOSk6ZT1bYzldKX1vPW8ucmV0dXJufW51bGwhPT1lJiZySCh0LGUsbixyKSx0LmZsYWdzfD0yNjIxNDR9ZnVuY3Rpb24gciQoZSl7Zm9yKGU9ZS5maXJzdENvbnRleHQ7bnVsbCE9PWU7KXtpZighbmsoZS5jb250ZXh0Ll9jdXJyZW50VmFsdWUsZS5tZW1vaXplZFZhbHVlKSlyZXR1cm4hMDtlPWUubmV4dH1yZXR1cm4hMX1mdW5jdGlvbiByVyhlKXtyTT1lLHJaPW51bGwsbnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmKGUuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIHJZKGUpe3JldHVybiByWChyTSxlKX1mdW5jdGlvbiBySyhlLHQpe3JldHVybiBudWxsPT09ck0mJnJXKGUpLHJYKGUsdCl9ZnVuY3Rpb24gclgoZSx0KXt2YXIgbj10Ll9jdXJyZW50VmFsdWU7aWYodD17Y29udGV4dDp0LG1lbW9pemVkVmFsdWU6bixuZXh0Om51bGx9LG51bGw9PT1yWil7aWYobnVsbD09PWUpdGhyb3cgRXJyb3IobCgzMDgpKTtyWj10LGUuZGVwZW5kZW5jaWVzPXtsYW5lczowLGZpcnN0Q29udGV4dDp0fSxlLmZsYWdzfD01MjQyODh9ZWxzZSByWj1yWi5uZXh0PXQ7cmV0dXJuIG59dmFyIHJHPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBBYm9ydENvbnRyb2xsZXI/QWJvcnRDb250cm9sbGVyOmZ1bmN0aW9uKCl7dmFyIGU9W10sdD10aGlzLnNpZ25hbD17YWJvcnRlZDohMSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQsbil7ZS5wdXNoKG4pfX07dGhpcy5hYm9ydD1mdW5jdGlvbigpe3QuYWJvcnRlZD0hMCxlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pfX0sclE9by51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLHJKPW8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHkscjA9eyQkdHlwZW9mOkEsQ29uc3VtZXI6bnVsbCxQcm92aWRlcjpudWxsLF9jdXJyZW50VmFsdWU6bnVsbCxfY3VycmVudFZhbHVlMjpudWxsLF90aHJlYWRDb3VudDowfTtmdW5jdGlvbiByMSgpe3JldHVybntjb250cm9sbGVyOm5ldyByRyxkYXRhOm5ldyBNYXAscmVmQ291bnQ6MH19ZnVuY3Rpb24gcjIoZSl7ZS5yZWZDb3VudC0tLDA9PT1lLnJlZkNvdW50JiZyUShySixmdW5jdGlvbigpe2UuY29udHJvbGxlci5hYm9ydCgpfSl9dmFyIHI0PW51bGwscjU9MCxyMz0wLHI2PW51bGw7ZnVuY3Rpb24gcjkoKXtpZigwPT0tLXI1JiZudWxsIT09cjQpe251bGwhPT1yNiYmKHI2LnN0YXR1cz1cImZ1bGZpbGxlZFwiKTt2YXIgZT1yNDtyND1udWxsLHIzPTAscjY9bnVsbDtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKykoMCxlW3RdKSgpfX12YXIgcjg9SS5TO0kuUz1mdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT09dCYmXCJmdW5jdGlvblwiPT10eXBlb2YgdC50aGVuJiZmdW5jdGlvbihlLHQpe2lmKG51bGw9PT1yNCl7dmFyIG49cjQ9W107cjU9MCxyMz1zWCgpLHI2PXtzdGF0dXM6XCJwZW5kaW5nXCIsdmFsdWU6dm9pZCAwLHRoZW46ZnVuY3Rpb24oZSl7bi5wdXNoKGUpfX19cjUrKyx0LnRoZW4ocjkscjkpfSgwLHQpLG51bGwhPT1yOCYmcjgoZSx0KX07dmFyIHI3PU4obnVsbCk7ZnVuY3Rpb24gb2UoKXt2YXIgZT1yNy5jdXJyZW50O3JldHVybiBudWxsIT09ZT9lOmxMLnBvb2xlZENhY2hlfWZ1bmN0aW9uIG90KGUsdCl7bnVsbD09PXQ/TShyNyxyNy5jdXJyZW50KTpNKHI3LHQucG9vbCl9ZnVuY3Rpb24gb24oKXt2YXIgZT1vZSgpO3JldHVybiBudWxsPT09ZT9udWxsOntwYXJlbnQ6cjAuX2N1cnJlbnRWYWx1ZSxwb29sOmV9fXZhciBvcj1FcnJvcihsKDQ2MCkpLG9vPUVycm9yKGwoNDc0KSksb2E9RXJyb3IobCg1NDIpKSxvaT17dGhlbjpmdW5jdGlvbigpe319O2Z1bmN0aW9uIG9sKGUpe3JldHVyblwiZnVsZmlsbGVkXCI9PT0oZT1lLnN0YXR1cyl8fFwicmVqZWN0ZWRcIj09PWV9ZnVuY3Rpb24gb3MoZSx0LG4pe3N3aXRjaCh2b2lkIDA9PT0obj1lW25dKT9lLnB1c2godCk6biE9PXQmJih0LnRoZW4odGcsdGcpLHQ9biksdC5zdGF0dXMpe2Nhc2VcImZ1bGZpbGxlZFwiOnJldHVybiB0LnZhbHVlO2Nhc2VcInJlamVjdGVkXCI6dGhyb3cgb2YoZT10LnJlYXNvbiksZTtkZWZhdWx0OmlmKFwic3RyaW5nXCI9PXR5cGVvZiB0LnN0YXR1cyl0LnRoZW4odGcsdGcpO2Vsc2V7aWYobnVsbCE9PShlPWxMKSYmMTAwPGUuc2hlbGxTdXNwZW5kQ291bnRlcil0aHJvdyBFcnJvcihsKDQ4MikpOyhlPXQpLnN0YXR1cz1cInBlbmRpbmdcIixlLnRoZW4oZnVuY3Rpb24oZSl7aWYoXCJwZW5kaW5nXCI9PT10LnN0YXR1cyl7dmFyIG49dDtuLnN0YXR1cz1cImZ1bGZpbGxlZFwiLG4udmFsdWU9ZX19LGZ1bmN0aW9uKGUpe2lmKFwicGVuZGluZ1wiPT09dC5zdGF0dXMpe3ZhciBuPXQ7bi5zdGF0dXM9XCJyZWplY3RlZFwiLG4ucmVhc29uPWV9fSl9c3dpdGNoKHQuc3RhdHVzKXtjYXNlXCJmdWxmaWxsZWRcIjpyZXR1cm4gdC52YWx1ZTtjYXNlXCJyZWplY3RlZFwiOnRocm93IG9mKGU9dC5yZWFzb24pLGV9dGhyb3cgb3U9dCxvcn19ZnVuY3Rpb24gb2MoZSl7dHJ5e3JldHVybigwLGUuX2luaXQpKGUuX3BheWxvYWQpfWNhdGNoKGUpe2lmKG51bGwhPT1lJiZcIm9iamVjdFwiPT10eXBlb2YgZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS50aGVuKXRocm93IG91PWUsb3I7dGhyb3cgZX19dmFyIG91PW51bGw7ZnVuY3Rpb24gb2QoKXtpZihudWxsPT09b3UpdGhyb3cgRXJyb3IobCg0NTkpKTt2YXIgZT1vdTtyZXR1cm4gb3U9bnVsbCxlfWZ1bmN0aW9uIG9mKGUpe2lmKGU9PT1vcnx8ZT09PW9hKXRocm93IEVycm9yKGwoNDgzKSl9dmFyIG9wPW51bGwsb2g9MDtmdW5jdGlvbiBvbShlKXt2YXIgdD1vaDtyZXR1cm4gb2grPTEsbnVsbD09PW9wJiYob3A9W10pLG9zKG9wLGUsdCl9ZnVuY3Rpb24gb2coZSx0KXtlLnJlZj12b2lkIDAhPT0odD10LnByb3BzLnJlZik/dDpudWxsfWZ1bmN0aW9uIG95KGUsdCl7aWYodC4kJHR5cGVvZj09PXApdGhyb3cgRXJyb3IobCg1MjUpKTt0aHJvdyBFcnJvcihsKDMxLFwiW29iamVjdCBPYmplY3RdXCI9PT0oZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkpP1wib2JqZWN0IHdpdGgga2V5cyB7XCIrT2JqZWN0LmtleXModCkuam9pbihcIiwgXCIpK1wifVwiOmUpKX1mdW5jdGlvbiBvdihlKXtmdW5jdGlvbiB0KHQsbil7aWYoZSl7dmFyIHI9dC5kZWxldGlvbnM7bnVsbD09PXI/KHQuZGVsZXRpb25zPVtuXSx0LmZsYWdzfD0xNik6ci5wdXNoKG4pfX1mdW5jdGlvbiBuKG4scil7aWYoIWUpcmV0dXJuIG51bGw7Zm9yKDtudWxsIT09cjspdChuLHIpLHI9ci5zaWJsaW5nO3JldHVybiBudWxsfWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0PW5ldyBNYXA7bnVsbCE9PWU7KW51bGwhPT1lLmtleT90LnNldChlLmtleSxlKTp0LnNldChlLmluZGV4LGUpLGU9ZS5zaWJsaW5nO3JldHVybiB0fWZ1bmN0aW9uIG8oZSx0KXtyZXR1cm4oZT1ybihlLHQpKS5pbmRleD0wLGUuc2libGluZz1udWxsLGV9ZnVuY3Rpb24gYSh0LG4scil7cmV0dXJuKHQuaW5kZXg9cixlKT9udWxsIT09KHI9dC5hbHRlcm5hdGUpPyhyPXIuaW5kZXgpPG4/KHQuZmxhZ3N8PTB4NDAwMDAwMixuKTpyOih0LmZsYWdzfD0weDQwMDAwMDIsbik6KHQuZmxhZ3N8PTEwNDg1NzYsbil9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZSYmbnVsbD09PXQuYWx0ZXJuYXRlJiYodC5mbGFnc3w9MHg0MDAwMDAyKSx0fWZ1bmN0aW9uIHMoZSx0LG4scil7cmV0dXJuIG51bGw9PT10fHw2IT09dC50YWc/KHQ9cmkobixlLm1vZGUscikpLnJldHVybj1lOih0PW8odCxuKSkucmV0dXJuPWUsdH1mdW5jdGlvbiBjKGUsdCxuLHIpe3ZhciBhPW4udHlwZTtyZXR1cm4gYT09PWc/ZChlLHQsbi5wcm9wcy5jaGlsZHJlbixyLG4ua2V5KToobnVsbCE9PXQmJih0LmVsZW1lbnRUeXBlPT09YXx8XCJvYmplY3RcIj09dHlwZW9mIGEmJm51bGwhPT1hJiZhLiQkdHlwZW9mPT09ayYmb2MoYSk9PT10LnR5cGUpP29nKHQ9byh0LG4ucHJvcHMpLG4pOm9nKHQ9cm8obi50eXBlLG4ua2V5LG4ucHJvcHMsbnVsbCxlLm1vZGUsciksbiksdC5yZXR1cm49ZSx0KX1mdW5jdGlvbiB1KGUsdCxuLHIpe3JldHVybiBudWxsPT09dHx8NCE9PXQudGFnfHx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09bi5jb250YWluZXJJbmZvfHx0LnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PW4uaW1wbGVtZW50YXRpb24/KHQ9cnMobixlLm1vZGUscikpLnJldHVybj1lOih0PW8odCxuLmNoaWxkcmVufHxbXSkpLnJldHVybj1lLHR9ZnVuY3Rpb24gZChlLHQsbixyLGEpe3JldHVybiBudWxsPT09dHx8NyE9PXQudGFnPyh0PXJhKG4sZS5tb2RlLHIsYSkpLnJldHVybj1lOih0PW8odCxuKSkucmV0dXJuPWUsdH1mdW5jdGlvbiBmKGUsdCxuKXtpZihcInN0cmluZ1wiPT10eXBlb2YgdCYmXCJcIiE9PXR8fFwibnVtYmVyXCI9PXR5cGVvZiB0fHxcImJpZ2ludFwiPT10eXBlb2YgdClyZXR1cm4odD1yaShcIlwiK3QsZS5tb2RlLG4pKS5yZXR1cm49ZSx0O2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT09dCl7c3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgaDpyZXR1cm4gb2cobj1ybyh0LnR5cGUsdC5rZXksdC5wcm9wcyxudWxsLGUubW9kZSxuKSx0KSxuLnJldHVybj1lLG47Y2FzZSBtOnJldHVybih0PXJzKHQsZS5tb2RlLG4pKS5yZXR1cm49ZSx0O2Nhc2UgazpyZXR1cm4gZihlLHQ9b2ModCksbil9aWYoUCh0KXx8Tyh0KSlyZXR1cm4odD1yYSh0LGUubW9kZSxuLG51bGwpKS5yZXR1cm49ZSx0O2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQudGhlbilyZXR1cm4gZihlLG9tKHQpLG4pO2lmKHQuJCR0eXBlb2Y9PT1BKXJldHVybiBmKGUscksoZSx0KSxuKTtveShlLHQpfXJldHVybiBudWxsfWZ1bmN0aW9uIHAoZSx0LG4scil7dmFyIG89bnVsbCE9PXQ/dC5rZXk6bnVsbDtpZihcInN0cmluZ1wiPT10eXBlb2YgbiYmXCJcIiE9PW58fFwibnVtYmVyXCI9PXR5cGVvZiBufHxcImJpZ2ludFwiPT10eXBlb2YgbilyZXR1cm4gbnVsbCE9PW8/bnVsbDpzKGUsdCxcIlwiK24scik7aWYoXCJvYmplY3RcIj09dHlwZW9mIG4mJm51bGwhPT1uKXtzd2l0Y2gobi4kJHR5cGVvZil7Y2FzZSBoOnJldHVybiBuLmtleT09PW8/YyhlLHQsbixyKTpudWxsO2Nhc2UgbTpyZXR1cm4gbi5rZXk9PT1vP3UoZSx0LG4scik6bnVsbDtjYXNlIGs6cmV0dXJuIHAoZSx0LG49b2Mobikscil9aWYoUChuKXx8TyhuKSlyZXR1cm4gbnVsbCE9PW8/bnVsbDpkKGUsdCxuLHIsbnVsbCk7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50aGVuKXJldHVybiBwKGUsdCxvbShuKSxyKTtpZihuLiQkdHlwZW9mPT09QSlyZXR1cm4gcChlLHQscksoZSxuKSxyKTtveShlLG4pfXJldHVybiBudWxsfWZ1bmN0aW9uIHkoZSx0LG4scixvKXtpZihcInN0cmluZ1wiPT10eXBlb2YgciYmXCJcIiE9PXJ8fFwibnVtYmVyXCI9PXR5cGVvZiByfHxcImJpZ2ludFwiPT10eXBlb2YgcilyZXR1cm4gcyh0LGU9ZS5nZXQobil8fG51bGwsXCJcIityLG8pO2lmKFwib2JqZWN0XCI9PXR5cGVvZiByJiZudWxsIT09cil7c3dpdGNoKHIuJCR0eXBlb2Ype2Nhc2UgaDpyZXR1cm4gYyh0LGU9ZS5nZXQobnVsbD09PXIua2V5P246ci5rZXkpfHxudWxsLHIsbyk7Y2FzZSBtOnJldHVybiB1KHQsZT1lLmdldChudWxsPT09ci5rZXk/bjpyLmtleSl8fG51bGwscixvKTtjYXNlIGs6cmV0dXJuIHkoZSx0LG4scj1vYyhyKSxvKX1pZihQKHIpfHxPKHIpKXJldHVybiBkKHQsZT1lLmdldChuKXx8bnVsbCxyLG8sbnVsbCk7aWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygci50aGVuKXJldHVybiB5KGUsdCxuLG9tKHIpLG8pO2lmKHIuJCR0eXBlb2Y9PT1BKXJldHVybiB5KGUsdCxuLHJLKHQsciksbyk7b3kodCxyKX1yZXR1cm4gbnVsbH1yZXR1cm4gZnVuY3Rpb24ocyxjLHUsZCl7dHJ5e29oPTA7dmFyIHY9ZnVuY3Rpb24gcyhjLHUsZCx2KXtpZihcIm9iamVjdFwiPT10eXBlb2YgZCYmbnVsbCE9PWQmJmQudHlwZT09PWcmJm51bGw9PT1kLmtleSYmKGQ9ZC5wcm9wcy5jaGlsZHJlbiksXCJvYmplY3RcIj09dHlwZW9mIGQmJm51bGwhPT1kKXtzd2l0Y2goZC4kJHR5cGVvZil7Y2FzZSBoOmU6e2Zvcih2YXIgYj1kLmtleTtudWxsIT09dTspe2lmKHUua2V5PT09Yil7aWYoKGI9ZC50eXBlKT09PWcpe2lmKDc9PT11LnRhZyl7bihjLHUuc2libGluZyksKHY9byh1LGQucHJvcHMuY2hpbGRyZW4pKS5yZXR1cm49YyxjPXY7YnJlYWsgZX19ZWxzZSBpZih1LmVsZW1lbnRUeXBlPT09Ynx8XCJvYmplY3RcIj09dHlwZW9mIGImJm51bGwhPT1iJiZiLiQkdHlwZW9mPT09ayYmb2MoYik9PT11LnR5cGUpe24oYyx1LnNpYmxpbmcpLG9nKHY9byh1LGQucHJvcHMpLGQpLHYucmV0dXJuPWMsYz12O2JyZWFrIGV9bihjLHUpO2JyZWFrfXQoYyx1KSx1PXUuc2libGluZ31kLnR5cGU9PT1nPyh2PXJhKGQucHJvcHMuY2hpbGRyZW4sYy5tb2RlLHYsZC5rZXkpKS5yZXR1cm49Yzoob2codj1ybyhkLnR5cGUsZC5rZXksZC5wcm9wcyxudWxsLGMubW9kZSx2KSxkKSx2LnJldHVybj1jKSxjPXZ9cmV0dXJuIGkoYyk7Y2FzZSBtOmU6e2ZvcihiPWQua2V5O251bGwhPT11Oyl7aWYodS5rZXk9PT1iKWlmKDQ9PT11LnRhZyYmdS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWQuY29udGFpbmVySW5mbyYmdS5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT1kLmltcGxlbWVudGF0aW9uKXtuKGMsdS5zaWJsaW5nKSwodj1vKHUsZC5jaGlsZHJlbnx8W10pKS5yZXR1cm49YyxjPXY7YnJlYWsgZX1lbHNle24oYyx1KTticmVha310KGMsdSksdT11LnNpYmxpbmd9KHY9cnMoZCxjLm1vZGUsdikpLnJldHVybj1jLGM9dn1yZXR1cm4gaShjKTtjYXNlIGs6cmV0dXJuIHMoYyx1LGQ9b2MoZCksdil9aWYoUChkKSlyZXR1cm4gZnVuY3Rpb24obyxpLGwscyl7Zm9yKHZhciBjPW51bGwsdT1udWxsLGQ9aSxoPWk9MCxtPW51bGw7bnVsbCE9PWQmJmg8bC5sZW5ndGg7aCsrKXtkLmluZGV4Pmg/KG09ZCxkPW51bGwpOm09ZC5zaWJsaW5nO3ZhciBnPXAobyxkLGxbaF0scyk7aWYobnVsbD09PWcpe251bGw9PT1kJiYoZD1tKTticmVha31lJiZkJiZudWxsPT09Zy5hbHRlcm5hdGUmJnQobyxkKSxpPWEoZyxpLGgpLG51bGw9PT11P2M9Zzp1LnNpYmxpbmc9Zyx1PWcsZD1tfWlmKGg9PT1sLmxlbmd0aClyZXR1cm4gbihvLGQpLHJqJiZyQShvLGgpLGM7aWYobnVsbD09PWQpe2Zvcig7aDxsLmxlbmd0aDtoKyspbnVsbCE9PShkPWYobyxsW2hdLHMpKSYmKGk9YShkLGksaCksbnVsbD09PXU/Yz1kOnUuc2libGluZz1kLHU9ZCk7cmV0dXJuIHJqJiZyQShvLGgpLGN9Zm9yKGQ9cihkKTtoPGwubGVuZ3RoO2grKyludWxsIT09KG09eShkLG8saCxsW2hdLHMpKSYmKGUmJm51bGwhPT1tLmFsdGVybmF0ZSYmZC5kZWxldGUobnVsbD09PW0ua2V5P2g6bS5rZXkpLGk9YShtLGksaCksbnVsbD09PXU/Yz1tOnUuc2libGluZz1tLHU9bSk7cmV0dXJuIGUmJmQuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gdChvLGUpfSkscmomJnJBKG8saCksY30oYyx1LGQsdik7aWYoTyhkKSl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YoYj1PKGQpKSl0aHJvdyBFcnJvcihsKDE1MCkpO3JldHVybiBmdW5jdGlvbihvLGkscyxjKXtpZihudWxsPT1zKXRocm93IEVycm9yKGwoMTUxKSk7Zm9yKHZhciB1PW51bGwsZD1udWxsLGg9aSxtPWk9MCxnPW51bGwsdj1zLm5leHQoKTtudWxsIT09aCYmIXYuZG9uZTttKyssdj1zLm5leHQoKSl7aC5pbmRleD5tPyhnPWgsaD1udWxsKTpnPWguc2libGluZzt2YXIgYj1wKG8saCx2LnZhbHVlLGMpO2lmKG51bGw9PT1iKXtudWxsPT09aCYmKGg9Zyk7YnJlYWt9ZSYmaCYmbnVsbD09PWIuYWx0ZXJuYXRlJiZ0KG8saCksaT1hKGIsaSxtKSxudWxsPT09ZD91PWI6ZC5zaWJsaW5nPWIsZD1iLGg9Z31pZih2LmRvbmUpcmV0dXJuIG4obyxoKSxyaiYmckEobyxtKSx1O2lmKG51bGw9PT1oKXtmb3IoOyF2LmRvbmU7bSsrLHY9cy5uZXh0KCkpbnVsbCE9PSh2PWYobyx2LnZhbHVlLGMpKSYmKGk9YSh2LGksbSksbnVsbD09PWQ/dT12OmQuc2libGluZz12LGQ9dik7cmV0dXJuIHJqJiZyQShvLG0pLHV9Zm9yKGg9cihoKTshdi5kb25lO20rKyx2PXMubmV4dCgpKW51bGwhPT0odj15KGgsbyxtLHYudmFsdWUsYykpJiYoZSYmbnVsbCE9PXYuYWx0ZXJuYXRlJiZoLmRlbGV0ZShudWxsPT09di5rZXk/bTp2LmtleSksaT1hKHYsaSxtKSxudWxsPT09ZD91PXY6ZC5zaWJsaW5nPXYsZD12KTtyZXR1cm4gZSYmaC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0KG8sZSl9KSxyaiYmckEobyxtKSx1fShjLHUsZD1iLmNhbGwoZCksdil9aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZC50aGVuKXJldHVybiBzKGMsdSxvbShkKSx2KTtpZihkLiQkdHlwZW9mPT09QSlyZXR1cm4gcyhjLHUscksoYyxkKSx2KTtveShjLGQpfXJldHVyblwic3RyaW5nXCI9PXR5cGVvZiBkJiZcIlwiIT09ZHx8XCJudW1iZXJcIj09dHlwZW9mIGR8fFwiYmlnaW50XCI9PXR5cGVvZiBkPyhkPVwiXCIrZCxudWxsIT09dSYmNj09PXUudGFnPyhuKGMsdS5zaWJsaW5nKSwodj1vKHUsZCkpLnJldHVybj1jKToobihjLHUpLCh2PXJpKGQsYy5tb2RlLHYpKS5yZXR1cm49YyksaShjPXYpKTpuKGMsdSl9KHMsYyx1LGQpO3JldHVybiBvcD1udWxsLHZ9Y2F0Y2goZSl7aWYoZT09PW9yfHxlPT09b2EpdGhyb3cgZTt2YXIgYj1yZSgyOSxlLG51bGwscy5tb2RlKTtyZXR1cm4gYi5sYW5lcz1kLGIucmV0dXJuPXMsYn1maW5hbGx5e319fXZhciBvYj1vdighMCksb0E9b3YoITEpLG94PSExO2Z1bmN0aW9uIG93KGUpe2UudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTplLm1lbW9pemVkU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm51bGwsbGFzdEJhc2VVcGRhdGU6bnVsbCxzaGFyZWQ6e3BlbmRpbmc6bnVsbCxsYW5lczowLGhpZGRlbkNhbGxiYWNrczpudWxsfSxjYWxsYmFja3M6bnVsbH19ZnVuY3Rpb24gb0MoZSx0KXtlPWUudXBkYXRlUXVldWUsdC51cGRhdGVRdWV1ZT09PWUmJih0LnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmUuZmlyc3RCYXNlVXBkYXRlLGxhc3RCYXNlVXBkYXRlOmUubGFzdEJhc2VVcGRhdGUsc2hhcmVkOmUuc2hhcmVkLGNhbGxiYWNrczpudWxsfSl9ZnVuY3Rpb24gb18oZSl7cmV0dXJue2xhbmU6ZSx0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fWZ1bmN0aW9uIG9rKGUsdCxuKXt2YXIgcj1lLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1yKXJldHVybiBudWxsO2lmKHI9ci5zaGFyZWQsMCE9KDImbEQpKXt2YXIgbz1yLnBlbmRpbmc7cmV0dXJuIG51bGw9PT1vP3QubmV4dD10Oih0Lm5leHQ9by5uZXh0LG8ubmV4dD10KSxyLnBlbmRpbmc9dCx0PW45KGUpLG42KGUsbnVsbCxuKSx0fXJldHVybiBuNChlLHIsdCxuKSxuOShlKX1mdW5jdGlvbiBvRShlLHQsbil7aWYobnVsbCE9PSh0PXQudXBkYXRlUXVldWUpJiYodD10LnNoYXJlZCwwIT0oNDE5NDA0OCZuKSkpe3ZhciByPXQubGFuZXM7ciY9ZS5wZW5kaW5nTGFuZXMsbnw9cix0LmxhbmVzPW4sZVMoZSxuKX19ZnVuY3Rpb24gb2ooZSx0KXt2YXIgbj1lLnVwZGF0ZVF1ZXVlLHI9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PXImJm49PT0ocj1yLnVwZGF0ZVF1ZXVlKSl7dmFyIG89bnVsbCxhPW51bGw7aWYobnVsbCE9PShuPW4uZmlyc3RCYXNlVXBkYXRlKSl7ZG97dmFyIGk9e2xhbmU6bi5sYW5lLHRhZzpuLnRhZyxwYXlsb2FkOm4ucGF5bG9hZCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH07bnVsbD09PWE/bz1hPWk6YT1hLm5leHQ9aSxuPW4ubmV4dH13aGlsZShudWxsIT09bik7bnVsbD09PWE/bz1hPXQ6YT1hLm5leHQ9dH1lbHNlIG89YT10O249e2Jhc2VTdGF0ZTpyLmJhc2VTdGF0ZSxmaXJzdEJhc2VVcGRhdGU6byxsYXN0QmFzZVVwZGF0ZTphLHNoYXJlZDpyLnNoYXJlZCxjYWxsYmFja3M6ci5jYWxsYmFja3N9LGUudXBkYXRlUXVldWU9bjtyZXR1cm59bnVsbD09PShlPW4ubGFzdEJhc2VVcGRhdGUpP24uZmlyc3RCYXNlVXBkYXRlPXQ6ZS5uZXh0PXQsbi5sYXN0QmFzZVVwZGF0ZT10fXZhciBvUz0hMTtmdW5jdGlvbiBvTygpe2lmKG9TKXt2YXIgZT1yNjtpZihudWxsIT09ZSl0aHJvdyBlfX1mdW5jdGlvbiBvQihlLHQsbixyKXtvUz0hMTt2YXIgbz1lLnVwZGF0ZVF1ZXVlO294PSExO3ZhciBhPW8uZmlyc3RCYXNlVXBkYXRlLGk9by5sYXN0QmFzZVVwZGF0ZSxsPW8uc2hhcmVkLnBlbmRpbmc7aWYobnVsbCE9PWwpe28uc2hhcmVkLnBlbmRpbmc9bnVsbDt2YXIgcz1sLGM9cy5uZXh0O3MubmV4dD1udWxsLG51bGw9PT1pP2E9YzppLm5leHQ9YyxpPXM7dmFyIHU9ZS5hbHRlcm5hdGU7bnVsbCE9PXUmJihsPSh1PXUudXBkYXRlUXVldWUpLmxhc3RCYXNlVXBkYXRlKSE9PWkmJihudWxsPT09bD91LmZpcnN0QmFzZVVwZGF0ZT1jOmwubmV4dD1jLHUubGFzdEJhc2VVcGRhdGU9cyl9aWYobnVsbCE9PWEpe3ZhciBkPW8uYmFzZVN0YXRlO2ZvcihpPTAsdT1jPXM9bnVsbCxsPWE7Oyl7dmFyIHA9LTB4MjAwMDAwMDEmbC5sYW5lLGg9cCE9PWwubGFuZTtpZihoPyhsUiZwKT09PXA6KHImcCk9PT1wKXswIT09cCYmcD09PXIzJiYob1M9ITApLG51bGwhPT11JiYodT11Lm5leHQ9e2xhbmU6MCx0YWc6bC50YWcscGF5bG9hZDpsLnBheWxvYWQsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9KTtlOnt2YXIgbT1lLGc9bDtzd2l0Y2gocD10LGcudGFnKXtjYXNlIDE6aWYoXCJmdW5jdGlvblwiPT10eXBlb2YobT1nLnBheWxvYWQpKXtkPW0uY2FsbChuLGQscCk7YnJlYWsgZX1kPW07YnJlYWsgZTtjYXNlIDM6bS5mbGFncz0tNjU1MzcmbS5mbGFnc3wxMjg7Y2FzZSAwOmlmKG51bGw9PShwPVwiZnVuY3Rpb25cIj09dHlwZW9mKG09Zy5wYXlsb2FkKT9tLmNhbGwobixkLHApOm0pKWJyZWFrIGU7ZD1mKHt9LGQscCk7YnJlYWsgZTtjYXNlIDI6b3g9ITB9fW51bGwhPT0ocD1sLmNhbGxiYWNrKSYmKGUuZmxhZ3N8PTY0LGgmJihlLmZsYWdzfD04MTkyKSxudWxsPT09KGg9by5jYWxsYmFja3MpP28uY2FsbGJhY2tzPVtwXTpoLnB1c2gocCkpfWVsc2UgaD17bGFuZTpwLHRhZzpsLnRhZyxwYXlsb2FkOmwucGF5bG9hZCxjYWxsYmFjazpsLmNhbGxiYWNrLG5leHQ6bnVsbH0sbnVsbD09PXU/KGM9dT1oLHM9ZCk6dT11Lm5leHQ9aCxpfD1wO2lmKG51bGw9PT0obD1sLm5leHQpKWlmKG51bGw9PT0obD1vLnNoYXJlZC5wZW5kaW5nKSlicmVhaztlbHNlIGw9KGg9bCkubmV4dCxoLm5leHQ9bnVsbCxvLmxhc3RCYXNlVXBkYXRlPWgsby5zaGFyZWQucGVuZGluZz1udWxsfW51bGw9PT11JiYocz1kKSxvLmJhc2VTdGF0ZT1zLG8uZmlyc3RCYXNlVXBkYXRlPWMsby5sYXN0QmFzZVVwZGF0ZT11LG51bGw9PT1hJiYoby5zaGFyZWQubGFuZXM9MCksbCR8PWksZS5sYW5lcz1pLGUubWVtb2l6ZWRTdGF0ZT1kfX1mdW5jdGlvbiBvUChlLHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgRXJyb3IobCgxOTEsZSkpO2UuY2FsbCh0KX1mdW5jdGlvbiBvSShlLHQpe3ZhciBuPWUuY2FsbGJhY2tzO2lmKG51bGwhPT1uKWZvcihlLmNhbGxiYWNrcz1udWxsLGU9MDtlPG4ubGVuZ3RoO2UrKylvUChuW2VdLHQpfXZhciBvej1OKG51bGwpLG9UPU4oMCk7ZnVuY3Rpb24gb0QoZSx0KXtNKG9ULGU9bEgpLE0ob3osdCksbEg9ZXx0LmJhc2VMYW5lc31mdW5jdGlvbiBvTCgpe00ob1QsbEgpLE0ob3osb3ouY3VycmVudCl9ZnVuY3Rpb24gb04oKXtsSD1vVC5jdXJyZW50LFIob3opLFIob1QpfXZhciBvUj1OKG51bGwpLG9NPW51bGw7ZnVuY3Rpb24gb1ooZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7TShvViwxJm9WLmN1cnJlbnQpLE0ob1IsZSksbnVsbD09PW9NJiYobnVsbD09PXR8fG51bGwhPT1vei5jdXJyZW50P29NPWU6bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSYmKG9NPWUpKX1mdW5jdGlvbiBvVShlKXtNKG9WLG9WLmN1cnJlbnQpLE0ob1IsZSksbnVsbD09PW9NJiYob009ZSl9ZnVuY3Rpb24gb0YoZSl7MjI9PT1lLnRhZz8oTShvVixvVi5jdXJyZW50KSxNKG9SLGUpLG51bGw9PT1vTSYmKG9NPWUpKTpvcShlKX1mdW5jdGlvbiBvcSgpe00ob1Ysb1YuY3VycmVudCksTShvUixvUi5jdXJyZW50KX1mdW5jdGlvbiBvSChlKXtSKG9SKSxvTT09PWUmJihvTT1udWxsKSxSKG9WKX12YXIgb1Y9TigwKTtmdW5jdGlvbiBvJChlKXtmb3IodmFyIHQ9ZTtudWxsIT09dDspe2lmKDEzPT09dC50YWcpe3ZhciBuPXQubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09biYmKG51bGw9PT0obj1uLmRlaHlkcmF0ZWQpfHxjUyhuKXx8Y08obikpKXJldHVybiB0fWVsc2UgaWYoMTk9PT10LnRhZyYmKFwiZm9yd2FyZHNcIj09PXQubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcnx8XCJiYWNrd2FyZHNcIj09PXQubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcnx8XCJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzXCI9PT10Lm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXJ8fFwidG9nZXRoZXJcIj09PXQubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcikpe2lmKDAhPSgxMjgmdC5mbGFncykpcmV0dXJuIHR9ZWxzZSBpZihudWxsIT09dC5jaGlsZCl7dC5jaGlsZC5yZXR1cm49dCx0PXQuY2hpbGQ7Y29udGludWV9aWYodD09PWUpYnJlYWs7Zm9yKDtudWxsPT09dC5zaWJsaW5nOyl7aWYobnVsbD09PXQucmV0dXJufHx0LnJldHVybj09PWUpcmV0dXJuIG51bGw7dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfXJldHVybiBudWxsfXZhciBvVz0wLG9ZPW51bGwsb0s9bnVsbCxvWD1udWxsLG9HPSExLG9RPSExLG9KPSExLG8wPTAsbzE9MCxvMj1udWxsLG80PTA7ZnVuY3Rpb24gbzUoKXt0aHJvdyBFcnJvcihsKDMyMSkpfWZ1bmN0aW9uIG8zKGUsdCl7aWYobnVsbD09PXQpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aCYmbjxlLmxlbmd0aDtuKyspaWYoIW5rKGVbbl0sdFtuXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gbzYoZSx0LG4scixvLGEpe3JldHVybiBvVz1hLG9ZPXQsdC5tZW1vaXplZFN0YXRlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsLHQubGFuZXM9MCxJLkg9bnVsbD09PWV8fG51bGw9PT1lLm1lbW9pemVkU3RhdGU/aXQ6aXIsb0o9ITEsYT1uKHIsbyksb0o9ITEsb1EmJihhPW84KHQsbixyLG8pKSxvOShlKSxhfWZ1bmN0aW9uIG85KGUpe0kuSD1pZTt2YXIgdD1udWxsIT09b0smJm51bGwhPT1vSy5uZXh0O2lmKG9XPTAsb1g9b0s9b1k9bnVsbCxvRz0hMSxvMT0wLG8yPW51bGwsdCl0aHJvdyBFcnJvcihsKDMwMCkpO251bGw9PT1lfHxpQXx8bnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmciQoZSkmJihpQT0hMCl9ZnVuY3Rpb24gbzgoZSx0LG4scil7b1k9ZTt2YXIgbz0wO2Rve2lmKG9RJiYobzI9bnVsbCksbzE9MCxvUT0hMSwyNTw9byl0aHJvdyBFcnJvcihsKDMwMSkpO2lmKG8rPTEsb1g9b0s9bnVsbCxudWxsIT1lLnVwZGF0ZVF1ZXVlKXt2YXIgYT1lLnVwZGF0ZVF1ZXVlO2EubGFzdEVmZmVjdD1udWxsLGEuZXZlbnRzPW51bGwsYS5zdG9yZXM9bnVsbCxudWxsIT1hLm1lbW9DYWNoZSYmKGEubWVtb0NhY2hlLmluZGV4PTApfUkuSD1pbyxhPXQobixyKX13aGlsZShvUSk7cmV0dXJuIGF9ZnVuY3Rpb24gbzcoKXt2YXIgZT1JLkgsdD1lLnVzZVN0YXRlKClbMF07cmV0dXJuIHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgdC50aGVuP2FpKHQpOnQsZT1lLnVzZVN0YXRlKClbMF0sKG51bGwhPT1vSz9vSy5tZW1vaXplZFN0YXRlOm51bGwpIT09ZSYmKG9ZLmZsYWdzfD0xMDI0KSx0fWZ1bmN0aW9uIGFlKCl7dmFyIGU9MCE9PW8wO3JldHVybiBvMD0wLGV9ZnVuY3Rpb24gYXQoZSx0LG4pe3QudXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSx0LmZsYWdzJj0tMjA1MyxlLmxhbmVzJj1+bn1mdW5jdGlvbiBhbihlKXtpZihvRyl7Zm9yKGU9ZS5tZW1vaXplZFN0YXRlO251bGwhPT1lOyl7dmFyIHQ9ZS5xdWV1ZTtudWxsIT09dCYmKHQucGVuZGluZz1udWxsKSxlPWUubmV4dH1vRz0hMX1vVz0wLG9YPW9LPW9ZPW51bGwsb1E9ITEsbzE9bzA9MCxvMj1udWxsfWZ1bmN0aW9uIGFyKCl7dmFyIGU9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07cmV0dXJuIG51bGw9PT1vWD9vWS5tZW1vaXplZFN0YXRlPW9YPWU6b1g9b1gubmV4dD1lLG9YfWZ1bmN0aW9uIGFvKCl7aWYobnVsbD09PW9LKXt2YXIgZT1vWS5hbHRlcm5hdGU7ZT1udWxsIT09ZT9lLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGU9b0submV4dDt2YXIgdD1udWxsPT09b1g/b1kubWVtb2l6ZWRTdGF0ZTpvWC5uZXh0O2lmKG51bGwhPT10KW9YPXQsb0s9ZTtlbHNle2lmKG51bGw9PT1lKXtpZihudWxsPT09b1kuYWx0ZXJuYXRlKXRocm93IEVycm9yKGwoNDY3KSk7dGhyb3cgRXJyb3IobCgzMTApKX1lPXttZW1vaXplZFN0YXRlOihvSz1lKS5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTpvSy5iYXNlU3RhdGUsYmFzZVF1ZXVlOm9LLmJhc2VRdWV1ZSxxdWV1ZTpvSy5xdWV1ZSxuZXh0Om51bGx9LG51bGw9PT1vWD9vWS5tZW1vaXplZFN0YXRlPW9YPWU6b1g9b1gubmV4dD1lfXJldHVybiBvWH1mdW5jdGlvbiBhYSgpe3JldHVybntsYXN0RWZmZWN0Om51bGwsZXZlbnRzOm51bGwsc3RvcmVzOm51bGwsbWVtb0NhY2hlOm51bGx9fWZ1bmN0aW9uIGFpKGUpe3ZhciB0PW8xO3JldHVybiBvMSs9MSxudWxsPT09bzImJihvMj1bXSksZT1vcyhvMixlLHQpLHQ9b1ksbnVsbD09PShudWxsPT09b1g/dC5tZW1vaXplZFN0YXRlOm9YLm5leHQpJiYoSS5IPW51bGw9PT0odD10LmFsdGVybmF0ZSl8fG51bGw9PT10Lm1lbW9pemVkU3RhdGU/aXQ6aXIpLGV9ZnVuY3Rpb24gYWwoZSl7aWYobnVsbCE9PWUmJlwib2JqZWN0XCI9PXR5cGVvZiBlKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnRoZW4pcmV0dXJuIGFpKGUpO2lmKGUuJCR0eXBlb2Y9PT1BKXJldHVybiByWShlKX10aHJvdyBFcnJvcihsKDQzOCxTdHJpbmcoZSkpKX1mdW5jdGlvbiBhcyhlKXt2YXIgdD1udWxsLG49b1kudXBkYXRlUXVldWU7aWYobnVsbCE9PW4mJih0PW4ubWVtb0NhY2hlKSxudWxsPT10KXt2YXIgcj1vWS5hbHRlcm5hdGU7bnVsbCE9PXImJm51bGwhPT0ocj1yLnVwZGF0ZVF1ZXVlKSYmbnVsbCE9KHI9ci5tZW1vQ2FjaGUpJiYodD17ZGF0YTpyLmRhdGEubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNsaWNlKCl9KSxpbmRleDowfSl9aWYobnVsbD09dCYmKHQ9e2RhdGE6W10saW5kZXg6MH0pLG51bGw9PT1uJiYobj1hYSgpLG9ZLnVwZGF0ZVF1ZXVlPW4pLG4ubWVtb0NhY2hlPXQsdm9pZCAwPT09KG49dC5kYXRhW3QuaW5kZXhdKSlmb3Iobj10LmRhdGFbdC5pbmRleF09QXJyYXkoZSkscj0wO3I8ZTtyKyspbltyXT1qO3JldHVybiB0LmluZGV4Kyssbn1mdW5jdGlvbiBhYyhlLHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dChlKTp0fWZ1bmN0aW9uIGF1KGUpe3JldHVybiBhZChhbygpLG9LLGUpfWZ1bmN0aW9uIGFkKGUsdCxuKXt2YXIgcj1lLnF1ZXVlO2lmKG51bGw9PT1yKXRocm93IEVycm9yKGwoMzExKSk7ci5sYXN0UmVuZGVyZWRSZWR1Y2VyPW47dmFyIG89ZS5iYXNlUXVldWUsYT1yLnBlbmRpbmc7aWYobnVsbCE9PWEpe2lmKG51bGwhPT1vKXt2YXIgaT1vLm5leHQ7by5uZXh0PWEubmV4dCxhLm5leHQ9aX10LmJhc2VRdWV1ZT1vPWEsci5wZW5kaW5nPW51bGx9aWYoYT1lLmJhc2VTdGF0ZSxudWxsPT09byllLm1lbW9pemVkU3RhdGU9YTtlbHNle3Q9by5uZXh0O3ZhciBzPWk9bnVsbCxjPW51bGwsdT10LGQ9ITE7ZG97dmFyIGY9LTB4MjAwMDAwMDEmdS5sYW5lO2lmKGYhPT11LmxhbmU/KGxSJmYpPT09Zjoob1cmZik9PT1mKXt2YXIgcD11LnJldmVydExhbmU7aWYoMD09PXApbnVsbCE9PWMmJihjPWMubmV4dD17bGFuZTowLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOnUuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6dS5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6dS5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLGY9PT1yMyYmKGQ9ITApO2Vsc2UgaWYoKG9XJnApPT09cCl7dT11Lm5leHQscD09PXIzJiYoZD0hMCk7Y29udGludWV9ZWxzZSBmPXtsYW5lOjAscmV2ZXJ0TGFuZTp1LnJldmVydExhbmUsZ2VzdHVyZTpudWxsLGFjdGlvbjp1LmFjdGlvbixoYXNFYWdlclN0YXRlOnUuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOnUuZWFnZXJTdGF0ZSxuZXh0Om51bGx9LG51bGw9PT1jPyhzPWM9ZixpPWEpOmM9Yy5uZXh0PWYsb1kubGFuZXN8PXAsbCR8PXA7Zj11LmFjdGlvbixvSiYmbihhLGYpLGE9dS5oYXNFYWdlclN0YXRlP3UuZWFnZXJTdGF0ZTpuKGEsZil9ZWxzZSBwPXtsYW5lOmYscmV2ZXJ0TGFuZTp1LnJldmVydExhbmUsZ2VzdHVyZTp1Lmdlc3R1cmUsYWN0aW9uOnUuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6dS5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6dS5lYWdlclN0YXRlLG5leHQ6bnVsbH0sbnVsbD09PWM/KHM9Yz1wLGk9YSk6Yz1jLm5leHQ9cCxvWS5sYW5lc3w9ZixsJHw9Zjt1PXUubmV4dH13aGlsZShudWxsIT09dSYmdSE9PXQpO2lmKG51bGw9PT1jP2k9YTpjLm5leHQ9cywhbmsoYSxlLm1lbW9pemVkU3RhdGUpJiYoaUE9ITAsZCYmbnVsbCE9PShuPXI2KSkpdGhyb3cgbjtlLm1lbW9pemVkU3RhdGU9YSxlLmJhc2VTdGF0ZT1pLGUuYmFzZVF1ZXVlPWMsci5sYXN0UmVuZGVyZWRTdGF0ZT1hfXJldHVybiBudWxsPT09byYmKHIubGFuZXM9MCksW2UubWVtb2l6ZWRTdGF0ZSxyLmRpc3BhdGNoXX1mdW5jdGlvbiBhZihlKXt2YXIgdD1hbygpLG49dC5xdWV1ZTtpZihudWxsPT09bil0aHJvdyBFcnJvcihsKDMxMSkpO24ubGFzdFJlbmRlcmVkUmVkdWNlcj1lO3ZhciByPW4uZGlzcGF0Y2gsbz1uLnBlbmRpbmcsYT10Lm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PW8pe24ucGVuZGluZz1udWxsO3ZhciBpPW89by5uZXh0O2RvIGE9ZShhLGkuYWN0aW9uKSxpPWkubmV4dDt3aGlsZShpIT09byk7bmsoYSx0Lm1lbW9pemVkU3RhdGUpfHwoaUE9ITApLHQubWVtb2l6ZWRTdGF0ZT1hLG51bGw9PT10LmJhc2VRdWV1ZSYmKHQuYmFzZVN0YXRlPWEpLG4ubGFzdFJlbmRlcmVkU3RhdGU9YX1yZXR1cm5bYSxyXX1mdW5jdGlvbiBhcChlLHQsbil7dmFyIHI9b1ksbz1hbygpLGE9cmo7aWYoYSl7aWYodm9pZCAwPT09bil0aHJvdyBFcnJvcihsKDQwNykpO249bigpfWVsc2Ugbj10KCk7dmFyIGk9IW5rKChvS3x8bykubWVtb2l6ZWRTdGF0ZSxuKTtpZihpJiYoby5tZW1vaXplZFN0YXRlPW4saUE9ITApLG89by5xdWV1ZSxhUihhZy5iaW5kKG51bGwscixvLGUpLFtlXSksby5nZXRTbmFwc2hvdCE9PXR8fGl8fG51bGwhPT1vWCYmMSZvWC5tZW1vaXplZFN0YXRlLnRhZyl7aWYoci5mbGFnc3w9MjA0OCxheig5LHtkZXN0cm95OnZvaWQgMH0sYW0uYmluZChudWxsLHIsbyxuLHQpLG51bGwpLG51bGw9PT1sTCl0aHJvdyBFcnJvcihsKDM0OSkpO2F8fDAhPSgxMjQmb1cpfHxhaChyLHQsbil9cmV0dXJuIG59ZnVuY3Rpb24gYWgoZSx0LG4pe2UuZmxhZ3N8PTE2Mzg0LGU9e2dldFNuYXBzaG90OnQsdmFsdWU6bn0sbnVsbD09PSh0PW9ZLnVwZGF0ZVF1ZXVlKT8odD1hYSgpLG9ZLnVwZGF0ZVF1ZXVlPXQsdC5zdG9yZXM9W2VdKTpudWxsPT09KG49dC5zdG9yZXMpP3Quc3RvcmVzPVtlXTpuLnB1c2goZSl9ZnVuY3Rpb24gYW0oZSx0LG4scil7dC52YWx1ZT1uLHQuZ2V0U25hcHNob3Q9cixheSh0KSYmYXYoZSl9ZnVuY3Rpb24gYWcoZSx0LG4pe3JldHVybiBuKGZ1bmN0aW9uKCl7YXkodCkmJmF2KGUpfSl9ZnVuY3Rpb24gYXkoZSl7dmFyIHQ9ZS5nZXRTbmFwc2hvdDtlPWUudmFsdWU7dHJ5e3ZhciBuPXQoKTtyZXR1cm4hbmsoZSxuKX1jYXRjaChlKXtyZXR1cm4hMH19ZnVuY3Rpb24gYXYoZSl7dmFyIHQ9bjMoZSwyKTtudWxsIT09dCYmc2EodCxlLDIpfWZ1bmN0aW9uIGFiKGUpe3ZhciB0PWFyKCk7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZSl7dmFyIG49ZTtpZihlPW4oKSxvSil7ZWgoITApO3RyeXtuKCl9ZmluYWxseXtlaCghMSl9fX1yZXR1cm4gdC5tZW1vaXplZFN0YXRlPXQuYmFzZVN0YXRlPWUsdC5xdWV1ZT17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmFjLGxhc3RSZW5kZXJlZFN0YXRlOmV9LHR9ZnVuY3Rpb24gYUEoZSx0LG4scil7cmV0dXJuIGUuYmFzZVN0YXRlPW4sYWQoZSxvSyxcImZ1bmN0aW9uXCI9PXR5cGVvZiByP3I6YWMpfWZ1bmN0aW9uIGF4KGUsdCxuLHIsbyl7aWYoYTkoZSkpdGhyb3cgRXJyb3IobCg0ODUpKTtpZihudWxsIT09KGU9dC5hY3Rpb24pKXt2YXIgYT17cGF5bG9hZDpvLGFjdGlvbjplLG5leHQ6bnVsbCxpc1RyYW5zaXRpb246ITAsc3RhdHVzOlwicGVuZGluZ1wiLHZhbHVlOm51bGwscmVhc29uOm51bGwsbGlzdGVuZXJzOltdLHRoZW46ZnVuY3Rpb24oZSl7YS5saXN0ZW5lcnMucHVzaChlKX19O251bGwhPT1JLlQ/bighMCk6YS5pc1RyYW5zaXRpb249ITEscihhKSxudWxsPT09KG49dC5wZW5kaW5nKT8oYS5uZXh0PXQucGVuZGluZz1hLGF3KHQsYSkpOihhLm5leHQ9bi5uZXh0LHQucGVuZGluZz1uLm5leHQ9YSl9fWZ1bmN0aW9uIGF3KGUsdCl7dmFyIG49dC5hY3Rpb24scj10LnBheWxvYWQsbz1lLnN0YXRlO2lmKHQuaXNUcmFuc2l0aW9uKXt2YXIgYT1JLlQsaT17fTtJLlQ9aTt0cnl7dmFyIGw9bihvLHIpLHM9SS5TO251bGwhPT1zJiZzKGksbCksYUMoZSx0LGwpfWNhdGNoKG4pe2FrKGUsdCxuKX1maW5hbGx5e251bGwhPT1hJiZudWxsIT09aS50eXBlcyYmKGEudHlwZXM9aS50eXBlcyksSS5UPWF9fWVsc2UgdHJ5e2E9bihvLHIpLGFDKGUsdCxhKX1jYXRjaChuKXthayhlLHQsbil9fWZ1bmN0aW9uIGFDKGUsdCxuKXtudWxsIT09biYmXCJvYmplY3RcIj09dHlwZW9mIG4mJlwiZnVuY3Rpb25cIj09dHlwZW9mIG4udGhlbj9uLnRoZW4oZnVuY3Rpb24obil7YV8oZSx0LG4pfSxmdW5jdGlvbihuKXtyZXR1cm4gYWsoZSx0LG4pfSk6YV8oZSx0LG4pfWZ1bmN0aW9uIGFfKGUsdCxuKXt0LnN0YXR1cz1cImZ1bGZpbGxlZFwiLHQudmFsdWU9bixhRSh0KSxlLnN0YXRlPW4sbnVsbCE9PSh0PWUucGVuZGluZykmJigobj10Lm5leHQpPT09dD9lLnBlbmRpbmc9bnVsbDoobj1uLm5leHQsdC5uZXh0PW4sYXcoZSxuKSkpfWZ1bmN0aW9uIGFrKGUsdCxuKXt2YXIgcj1lLnBlbmRpbmc7aWYoZS5wZW5kaW5nPW51bGwsbnVsbCE9PXIpe3I9ci5uZXh0O2RvIHQuc3RhdHVzPVwicmVqZWN0ZWRcIix0LnJlYXNvbj1uLGFFKHQpLHQ9dC5uZXh0O3doaWxlKHQhPT1yKX1lLmFjdGlvbj1udWxsfWZ1bmN0aW9uIGFFKGUpe2U9ZS5saXN0ZW5lcnM7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspKDAsZVt0XSkoKX1mdW5jdGlvbiBhaihlLHQpe3JldHVybiB0fWZ1bmN0aW9uIGFTKGUsdCl7aWYocmope3ZhciBuPWxMLmZvcm1TdGF0ZTtpZihudWxsIT09bil7ZTp7dmFyIHI9b1k7aWYocmope2lmKHJFKXt0Ontmb3IodmFyIG89ckUsYT1yTzs4IT09by5ub2RlVHlwZTspaWYoIWF8fG51bGw9PT0obz1jQihvLm5leHRTaWJsaW5nKSkpe289bnVsbDticmVhayB0fW89XCJGIVwiPT09KGE9by5kYXRhKXx8XCJGXCI9PT1hP286bnVsbH1pZihvKXtyRT1jQihvLm5leHRTaWJsaW5nKSxyPVwiRiFcIj09PW8uZGF0YTticmVhayBlfX1yUChyKX1yPSExfXImJih0PW5bMF0pfX1yZXR1cm4obj1hcigpKS5tZW1vaXplZFN0YXRlPW4uYmFzZVN0YXRlPXQscj17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmFqLGxhc3RSZW5kZXJlZFN0YXRlOnR9LG4ucXVldWU9cixuPWE1LmJpbmQobnVsbCxvWSxyKSxyLmRpc3BhdGNoPW4scj1hYighMSksYT1hNi5iaW5kKG51bGwsb1ksITEsci5xdWV1ZSkscj1hcigpLG89e3N0YXRlOnQsZGlzcGF0Y2g6bnVsbCxhY3Rpb246ZSxwZW5kaW5nOm51bGx9LHIucXVldWU9byxuPWF4LmJpbmQobnVsbCxvWSxvLGEsbiksby5kaXNwYXRjaD1uLHIubWVtb2l6ZWRTdGF0ZT1lLFt0LG4sITFdfWZ1bmN0aW9uIGFPKGUpe3JldHVybiBhQihhbygpLG9LLGUpfWZ1bmN0aW9uIGFCKGUsdCxuKXtpZih0PWFkKGUsdCxhailbMF0sZT1hdShhYylbMF0sXCJvYmplY3RcIj09dHlwZW9mIHQmJm51bGwhPT10JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnRoZW4pdHJ5e3ZhciByPWFpKHQpfWNhdGNoKGUpe2lmKGU9PT1vcil0aHJvdyBvYTt0aHJvdyBlfWVsc2Ugcj10O3ZhciBvPSh0PWFvKCkpLnF1ZXVlLGE9by5kaXNwYXRjaDtyZXR1cm4gbiE9PXQubWVtb2l6ZWRTdGF0ZSYmKG9ZLmZsYWdzfD0yMDQ4LGF6KDkse2Rlc3Ryb3k6dm9pZCAwfSxhUC5iaW5kKG51bGwsbyxuKSxudWxsKSksW3IsYSxlXX1mdW5jdGlvbiBhUChlLHQpe2UuYWN0aW9uPXR9ZnVuY3Rpb24gYUkoZSl7dmFyIHQ9YW8oKSxuPW9LO2lmKG51bGwhPT1uKXJldHVybiBhQih0LG4sZSk7YW8oKSx0PXQubWVtb2l6ZWRTdGF0ZTt2YXIgcj0obj1hbygpKS5xdWV1ZS5kaXNwYXRjaDtyZXR1cm4gbi5tZW1vaXplZFN0YXRlPWUsW3QsciwhMV19ZnVuY3Rpb24gYXooZSx0LG4scil7cmV0dXJuIGU9e3RhZzplLGNyZWF0ZTpuLGRlcHM6cixpbnN0OnQsbmV4dDpudWxsfSxudWxsPT09KHQ9b1kudXBkYXRlUXVldWUpJiYodD1hYSgpLG9ZLnVwZGF0ZVF1ZXVlPXQpLG51bGw9PT0obj10Lmxhc3RFZmZlY3QpP3QubGFzdEVmZmVjdD1lLm5leHQ9ZToocj1uLm5leHQsbi5uZXh0PWUsZS5uZXh0PXIsdC5sYXN0RWZmZWN0PWUpLGV9ZnVuY3Rpb24gYVQoKXtyZXR1cm4gYW8oKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGFEKGUsdCxuLHIpe3ZhciBvPWFyKCk7b1kuZmxhZ3N8PWUsby5tZW1vaXplZFN0YXRlPWF6KDF8dCx7ZGVzdHJveTp2b2lkIDB9LG4sdm9pZCAwPT09cj9udWxsOnIpfWZ1bmN0aW9uIGFMKGUsdCxuLHIpe3ZhciBvPWFvKCk7cj12b2lkIDA9PT1yP251bGw6cjt2YXIgYT1vLm1lbW9pemVkU3RhdGUuaW5zdDtudWxsIT09b0smJm51bGwhPT1yJiZvMyhyLG9LLm1lbW9pemVkU3RhdGUuZGVwcyk/by5tZW1vaXplZFN0YXRlPWF6KHQsYSxuLHIpOihvWS5mbGFnc3w9ZSxvLm1lbW9pemVkU3RhdGU9YXooMXx0LGEsbixyKSl9ZnVuY3Rpb24gYU4oZSx0KXthRCg4MzkwNjU2LDgsZSx0KX1mdW5jdGlvbiBhUihlLHQpe2FMKDIwNDgsOCxlLHQpfWZ1bmN0aW9uIGFNKGUsdCl7cmV0dXJuIGFMKDQsMixlLHQpfWZ1bmN0aW9uIGFaKGUsdCl7cmV0dXJuIGFMKDQsNCxlLHQpfWZ1bmN0aW9uIGFVKGUsdCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgdCl7dmFyIG49dChlPWUoKSk7cmV0dXJuIGZ1bmN0aW9uKCl7XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uKCk6dChudWxsKX19aWYobnVsbCE9dClyZXR1cm4gdC5jdXJyZW50PWU9ZSgpLGZ1bmN0aW9uKCl7dC5jdXJyZW50PW51bGx9fWZ1bmN0aW9uIGFGKGUsdCxuKXtuPW51bGwhPW4/bi5jb25jYXQoW2VdKTpudWxsLGFMKDQsNCxhVS5iaW5kKG51bGwsdCxlKSxuKX1mdW5jdGlvbiBhcSgpe31mdW5jdGlvbiBhSChlLHQpe3ZhciBuPWFvKCk7dD12b2lkIDA9PT10P251bGw6dDt2YXIgcj1uLm1lbW9pemVkU3RhdGU7cmV0dXJuIG51bGwhPT10JiZvMyh0LHJbMV0pP3JbMF06KG4ubWVtb2l6ZWRTdGF0ZT1bZSx0XSxlKX1mdW5jdGlvbiBhVihlLHQpe3ZhciBuPWFvKCk7dD12b2lkIDA9PT10P251bGw6dDt2YXIgcj1uLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXQmJm8zKHQsclsxXSkpcmV0dXJuIHJbMF07aWYocj1lKCksb0ope2VoKCEwKTt0cnl7ZSgpfWZpbmFsbHl7ZWgoITEpfX1yZXR1cm4gbi5tZW1vaXplZFN0YXRlPVtyLHRdLHJ9ZnVuY3Rpb24gYSQoZSx0LG4pe3JldHVybiB2b2lkIDA9PT1ufHwwIT0oMHg0MDAwMDAwMCZvVyk/ZS5tZW1vaXplZFN0YXRlPXQ6KGUubWVtb2l6ZWRTdGF0ZT1uLGU9c28oKSxvWS5sYW5lc3w9ZSxsJHw9ZSxuKX1mdW5jdGlvbiBhVyhlLHQsbixyKXtyZXR1cm4gbmsobix0KT9uOm51bGwhPT1vei5jdXJyZW50PyhuayhlPWEkKGUsbixyKSx0KXx8KGlBPSEwKSxlKTowPT0oNDImb1cpfHwwIT0oMHg0MDAwMDAwMCZvVyk/KGlBPSEwLGUubWVtb2l6ZWRTdGF0ZT1uKTooZT1zbygpLG9ZLmxhbmVzfD1lLGwkfD1lLHQpfWZ1bmN0aW9uIGFZKGUsdCxuLHIsbyl7dmFyIGE9ei5wO3oucD0wIT09YSYmOD5hP2E6ODt2YXIgaT1JLlQsbD17fTtJLlQ9bCxhNihlLCExLHQsbik7dHJ5e3ZhciBzPW8oKSxjPUkuUztpZihudWxsIT09YyYmYyhsLHMpLG51bGwhPT1zJiZcIm9iamVjdFwiPT10eXBlb2YgcyYmXCJmdW5jdGlvblwiPT10eXBlb2Ygcy50aGVuKXt2YXIgdSxkLGY9KHU9W10sZD17c3RhdHVzOlwicGVuZGluZ1wiLHZhbHVlOm51bGwscmVhc29uOm51bGwsdGhlbjpmdW5jdGlvbihlKXt1LnB1c2goZSl9fSxzLnRoZW4oZnVuY3Rpb24oKXtkLnN0YXR1cz1cImZ1bGZpbGxlZFwiLGQudmFsdWU9cjtmb3IodmFyIGU9MDtlPHUubGVuZ3RoO2UrKykoMCx1W2VdKShyKX0sZnVuY3Rpb24oZSl7Zm9yKGQuc3RhdHVzPVwicmVqZWN0ZWRcIixkLnJlYXNvbj1lLGU9MDtlPHUubGVuZ3RoO2UrKykoMCx1W2VdKSh2b2lkIDApfSksZCk7YTMoZSx0LGYsc3IoZSkpfWVsc2UgYTMoZSx0LHIsc3IoZSkpfWNhdGNoKG4pe2EzKGUsdCx7dGhlbjpmdW5jdGlvbigpe30sc3RhdHVzOlwicmVqZWN0ZWRcIixyZWFzb246bn0sc3IoKSl9ZmluYWxseXt6LnA9YSxudWxsIT09aSYmbnVsbCE9PWwudHlwZXMmJihpLnR5cGVzPWwudHlwZXMpLEkuVD1pfX1mdW5jdGlvbiBhSygpe31mdW5jdGlvbiBhWChlLHQsbixyKXtpZig1IT09ZS50YWcpdGhyb3cgRXJyb3IobCg0NzYpKTt2YXIgbz1hRyhlKS5xdWV1ZTthWShlLG8sdCxULG51bGw9PT1uP2FLOmZ1bmN0aW9uKCl7cmV0dXJuIGFRKGUpLG4ocil9KX1mdW5jdGlvbiBhRyhlKXt2YXIgdD1lLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXQpcmV0dXJuIHQ7dmFyIG49e307cmV0dXJuKHQ9e21lbW9pemVkU3RhdGU6VCxiYXNlU3RhdGU6VCxiYXNlUXVldWU6bnVsbCxxdWV1ZTp7cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmFjLGxhc3RSZW5kZXJlZFN0YXRlOlR9LG5leHQ6bnVsbH0pLm5leHQ9e21lbW9pemVkU3RhdGU6bixiYXNlU3RhdGU6bixiYXNlUXVldWU6bnVsbCxxdWV1ZTp7cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmFjLGxhc3RSZW5kZXJlZFN0YXRlOm59LG5leHQ6bnVsbH0sZS5tZW1vaXplZFN0YXRlPXQsbnVsbCE9PShlPWUuYWx0ZXJuYXRlKSYmKGUubWVtb2l6ZWRTdGF0ZT10KSx0fWZ1bmN0aW9uIGFRKGUpe3ZhciB0PWFHKGUpO251bGw9PT10Lm5leHQmJih0PWUuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUpLGEzKGUsdC5uZXh0LnF1ZXVlLHt9LHNyKCkpfWZ1bmN0aW9uIGFKKCl7cmV0dXJuIHJZKGM5KX1mdW5jdGlvbiBhMCgpe3JldHVybiBhbygpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gYTEoKXtyZXR1cm4gYW8oKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGEyKGUpe2Zvcih2YXIgdD1lLnJldHVybjtudWxsIT09dDspe3N3aXRjaCh0LnRhZyl7Y2FzZSAyNDpjYXNlIDM6dmFyIG49c3IoKSxyPW9rKHQsZT1vXyhuKSxuKTtudWxsIT09ciYmKHNhKHIsdCxuKSxvRShyLHQsbikpLHQ9e2NhY2hlOnIxKCl9LGUucGF5bG9hZD10O3JldHVybn10PXQucmV0dXJufX1mdW5jdGlvbiBhNChlLHQsbil7dmFyIHI9c3IoKTtuPXtsYW5lOnIscmV2ZXJ0TGFuZTowLGdlc3R1cmU6bnVsbCxhY3Rpb246bixoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9LGE5KGUpP2E4KHQsbik6bnVsbCE9PShuPW41KGUsdCxuLHIpKSYmKHNhKG4sZSxyKSxhNyhuLHQscikpfWZ1bmN0aW9uIGE1KGUsdCxuKXthMyhlLHQsbixzcigpKX1mdW5jdGlvbiBhMyhlLHQsbixyKXt2YXIgbz17bGFuZTpyLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOm4saGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfTtpZihhOShlKSlhOCh0LG8pO2Vsc2V7dmFyIGE9ZS5hbHRlcm5hdGU7aWYoMD09PWUubGFuZXMmJihudWxsPT09YXx8MD09PWEubGFuZXMpJiZudWxsIT09KGE9dC5sYXN0UmVuZGVyZWRSZWR1Y2VyKSl0cnl7dmFyIGk9dC5sYXN0UmVuZGVyZWRTdGF0ZSxsPWEoaSxuKTtpZihvLmhhc0VhZ2VyU3RhdGU9ITAsby5lYWdlclN0YXRlPWwsbmsobCxpKSlyZXR1cm4gbjQoZSx0LG8sMCksbnVsbD09PWxMJiZuMigpLCExfWNhdGNoKGUpe31maW5hbGx5e31pZihudWxsIT09KG49bjUoZSx0LG8scikpKXJldHVybiBzYShuLGUsciksYTcobix0LHIpLCEwfXJldHVybiExfWZ1bmN0aW9uIGE2KGUsdCxuLHIpe2lmKHI9e2xhbmU6MixyZXZlcnRMYW5lOnNYKCksZ2VzdHVyZTpudWxsLGFjdGlvbjpyLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH0sYTkoZSkpe2lmKHQpdGhyb3cgRXJyb3IobCg0NzkpKX1lbHNlIG51bGwhPT0odD1uNShlLG4sciwyKSkmJnNhKHQsZSwyKX1mdW5jdGlvbiBhOShlKXt2YXIgdD1lLmFsdGVybmF0ZTtyZXR1cm4gZT09PW9ZfHxudWxsIT09dCYmdD09PW9ZfWZ1bmN0aW9uIGE4KGUsdCl7b1E9b0c9ITA7dmFyIG49ZS5wZW5kaW5nO251bGw9PT1uP3QubmV4dD10Oih0Lm5leHQ9bi5uZXh0LG4ubmV4dD10KSxlLnBlbmRpbmc9dH1mdW5jdGlvbiBhNyhlLHQsbil7aWYoMCE9KDQxOTQwNDgmbikpe3ZhciByPXQubGFuZXM7ciY9ZS5wZW5kaW5nTGFuZXMsdC5sYW5lcz1ufD1yLGVTKGUsbil9fXZhciBpZT17cmVhZENvbnRleHQ6clksdXNlOmFsLHVzZUNhbGxiYWNrOm81LHVzZUNvbnRleHQ6bzUsdXNlRWZmZWN0Om81LHVzZUltcGVyYXRpdmVIYW5kbGU6bzUsdXNlTGF5b3V0RWZmZWN0Om81LHVzZUluc2VydGlvbkVmZmVjdDpvNSx1c2VNZW1vOm81LHVzZVJlZHVjZXI6bzUsdXNlUmVmOm81LHVzZVN0YXRlOm81LHVzZURlYnVnVmFsdWU6bzUsdXNlRGVmZXJyZWRWYWx1ZTpvNSx1c2VUcmFuc2l0aW9uOm81LHVzZVN5bmNFeHRlcm5hbFN0b3JlOm81LHVzZUlkOm81LHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOm81LHVzZUZvcm1TdGF0ZTpvNSx1c2VBY3Rpb25TdGF0ZTpvNSx1c2VPcHRpbWlzdGljOm81LHVzZU1lbW9DYWNoZTpvNSx1c2VDYWNoZVJlZnJlc2g6bzV9LGl0PXtyZWFkQ29udGV4dDpyWSx1c2U6YWwsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXIoKS5tZW1vaXplZFN0YXRlPVtlLHZvaWQgMD09PXQ/bnVsbDp0XSxlfSx1c2VDb250ZXh0OnJZLHVzZUVmZmVjdDphTix1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGUsdCxuKXtuPW51bGwhPW4/bi5jb25jYXQoW2VdKTpudWxsLGFEKDQxOTQzMDgsNCxhVS5iaW5kKG51bGwsdCxlKSxuKX0sdXNlTGF5b3V0RWZmZWN0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFEKDQxOTQzMDgsNCxlLHQpfSx1c2VJbnNlcnRpb25FZmZlY3Q6ZnVuY3Rpb24oZSx0KXthRCg0LDIsZSx0KX0sdXNlTWVtbzpmdW5jdGlvbihlLHQpe3ZhciBuPWFyKCk7dD12b2lkIDA9PT10P251bGw6dDt2YXIgcj1lKCk7aWYob0ope2VoKCEwKTt0cnl7ZSgpfWZpbmFsbHl7ZWgoITEpfX1yZXR1cm4gbi5tZW1vaXplZFN0YXRlPVtyLHRdLHJ9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWFyKCk7aWYodm9pZCAwIT09bil7dmFyIG89bih0KTtpZihvSil7ZWgoITApO3RyeXtuKHQpfWZpbmFsbHl7ZWgoITEpfX19ZWxzZSBvPXQ7cmV0dXJuIHIubWVtb2l6ZWRTdGF0ZT1yLmJhc2VTdGF0ZT1vLHIucXVldWU9ZT17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmUsbGFzdFJlbmRlcmVkU3RhdGU6b30sZT1lLmRpc3BhdGNoPWE0LmJpbmQobnVsbCxvWSxlKSxbci5tZW1vaXplZFN0YXRlLGVdfSx1c2VSZWY6ZnVuY3Rpb24oZSl7cmV0dXJuIGFyKCkubWVtb2l6ZWRTdGF0ZT1lPXtjdXJyZW50OmV9fSx1c2VTdGF0ZTpmdW5jdGlvbihlKXt2YXIgdD0oZT1hYihlKSkucXVldWUsbj1hNS5iaW5kKG51bGwsb1ksdCk7cmV0dXJuIHQuZGlzcGF0Y2g9bixbZS5tZW1vaXplZFN0YXRlLG5dfSx1c2VEZWJ1Z1ZhbHVlOmFxLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYSQoYXIoKSxlLHQpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9YWIoITEpO3JldHVybiBlPWFZLmJpbmQobnVsbCxvWSxlLnF1ZXVlLCEwLCExKSxhcigpLm1lbW9pemVkU3RhdGU9ZSxbITEsZV19LHVzZVN5bmNFeHRlcm5hbFN0b3JlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1vWSxvPWFyKCk7aWYocmope2lmKHZvaWQgMD09PW4pdGhyb3cgRXJyb3IobCg0MDcpKTtuPW4oKX1lbHNle2lmKG49dCgpLG51bGw9PT1sTCl0aHJvdyBFcnJvcihsKDM0OSkpOzAhPSgxMjQmbFIpfHxhaChyLHQsbil9by5tZW1vaXplZFN0YXRlPW47dmFyIGE9e3ZhbHVlOm4sZ2V0U25hcHNob3Q6dH07cmV0dXJuIG8ucXVldWU9YSxhTihhZy5iaW5kKG51bGwscixhLGUpLFtlXSksci5mbGFnc3w9MjA0OCxheig5LHtkZXN0cm95OnZvaWQgMH0sYW0uYmluZChudWxsLHIsYSxuLHQpLG51bGwpLG59LHVzZUlkOmZ1bmN0aW9uKCl7dmFyIGU9YXIoKSx0PWxMLmlkZW50aWZpZXJQcmVmaXg7aWYocmope3ZhciBuPXJiLHI9cnY7dD1cIl9cIit0K1wiUl9cIisobj0ociZ+KDE8PDMyLWVtKHIpLTEpKS50b1N0cmluZygzMikrbiksMDwobj1vMCsrKSYmKHQrPVwiSFwiK24udG9TdHJpbmcoMzIpKSx0Kz1cIl9cIn1lbHNlIHQ9XCJfXCIrdCtcInJfXCIrKG49bzQrKykudG9TdHJpbmcoMzIpK1wiX1wiO3JldHVybiBlLm1lbW9pemVkU3RhdGU9dH0sdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6YUosdXNlRm9ybVN0YXRlOmFTLHVzZUFjdGlvblN0YXRlOmFTLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSl7dmFyIHQ9YXIoKTt0Lm1lbW9pemVkU3RhdGU9dC5iYXNlU3RhdGU9ZTt2YXIgbj17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOm51bGwsbGFzdFJlbmRlcmVkU3RhdGU6bnVsbH07cmV0dXJuIHQucXVldWU9bix0PWE2LmJpbmQobnVsbCxvWSwhMCxuKSxuLmRpc3BhdGNoPXQsW2UsdF19LHVzZU1lbW9DYWNoZTphcyx1c2VDYWNoZVJlZnJlc2g6ZnVuY3Rpb24oKXtyZXR1cm4gYXIoKS5tZW1vaXplZFN0YXRlPWEyLmJpbmQobnVsbCxvWSl9fSxpcj17cmVhZENvbnRleHQ6clksdXNlOmFsLHVzZUNhbGxiYWNrOmFILHVzZUNvbnRleHQ6clksdXNlRWZmZWN0OmFSLHVzZUltcGVyYXRpdmVIYW5kbGU6YUYsdXNlSW5zZXJ0aW9uRWZmZWN0OmFNLHVzZUxheW91dEVmZmVjdDphWix1c2VNZW1vOmFWLHVzZVJlZHVjZXI6YXUsdXNlUmVmOmFULHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGF1KGFjKX0sdXNlRGVidWdWYWx1ZTphcSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFXKGFvKCksb0subWVtb2l6ZWRTdGF0ZSxlLHQpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9YXUoYWMpWzBdLHQ9YW8oKS5tZW1vaXplZFN0YXRlO3JldHVybltcImJvb2xlYW5cIj09dHlwZW9mIGU/ZTphaShlKSx0XX0sdXNlU3luY0V4dGVybmFsU3RvcmU6YXAsdXNlSWQ6YTAsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6YUosdXNlRm9ybVN0YXRlOmFPLHVzZUFjdGlvblN0YXRlOmFPLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYUEoYW8oKSxvSyxlLHQpfSx1c2VNZW1vQ2FjaGU6YXMsdXNlQ2FjaGVSZWZyZXNoOmExfSxpbz17cmVhZENvbnRleHQ6clksdXNlOmFsLHVzZUNhbGxiYWNrOmFILHVzZUNvbnRleHQ6clksdXNlRWZmZWN0OmFSLHVzZUltcGVyYXRpdmVIYW5kbGU6YUYsdXNlSW5zZXJ0aW9uRWZmZWN0OmFNLHVzZUxheW91dEVmZmVjdDphWix1c2VNZW1vOmFWLHVzZVJlZHVjZXI6YWYsdXNlUmVmOmFULHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGFmKGFjKX0sdXNlRGVidWdWYWx1ZTphcSx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49YW8oKTtyZXR1cm4gbnVsbD09PW9LP2EkKG4sZSx0KTphVyhuLG9LLm1lbW9pemVkU3RhdGUsZSx0KX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBlPWFmKGFjKVswXSx0PWFvKCkubWVtb2l6ZWRTdGF0ZTtyZXR1cm5bXCJib29sZWFuXCI9PXR5cGVvZiBlP2U6YWkoZSksdF19LHVzZVN5bmNFeHRlcm5hbFN0b3JlOmFwLHVzZUlkOmEwLHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOmFKLHVzZUZvcm1TdGF0ZTphSSx1c2VBY3Rpb25TdGF0ZTphSSx1c2VPcHRpbWlzdGljOmZ1bmN0aW9uKGUsdCl7dmFyIG49YW8oKTtyZXR1cm4gbnVsbCE9PW9LP2FBKG4sb0ssZSx0KToobi5iYXNlU3RhdGU9ZSxbZSxuLnF1ZXVlLmRpc3BhdGNoXSl9LHVzZU1lbW9DYWNoZTphcyx1c2VDYWNoZVJlZnJlc2g6YTF9O2Z1bmN0aW9uIGlhKGUsdCxuLHIpe249bnVsbD09KG49bihyLHQ9ZS5tZW1vaXplZFN0YXRlKSk/dDpmKHt9LHQsbiksZS5tZW1vaXplZFN0YXRlPW4sMD09PWUubGFuZXMmJihlLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1uKX12YXIgaWk9e2VucXVldWVTZXRTdGF0ZTpmdW5jdGlvbihlLHQsbil7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgcj1zcigpLG89b18ocik7by5wYXlsb2FkPXQsbnVsbCE9biYmKG8uY2FsbGJhY2s9biksbnVsbCE9PSh0PW9rKGUsbyxyKSkmJihzYSh0LGUsciksb0UodCxlLHIpKX0sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbihlLHQsbil7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgcj1zcigpLG89b18ocik7by50YWc9MSxvLnBheWxvYWQ9dCxudWxsIT1uJiYoby5jYWxsYmFjaz1uKSxudWxsIT09KHQ9b2soZSxvLHIpKSYmKHNhKHQsZSxyKSxvRSh0LGUscikpfSxlbnF1ZXVlRm9yY2VVcGRhdGU6ZnVuY3Rpb24oZSx0KXtlPWUuX3JlYWN0SW50ZXJuYWxzO3ZhciBuPXNyKCkscj1vXyhuKTtyLnRhZz0yLG51bGwhPXQmJihyLmNhbGxiYWNrPXQpLG51bGwhPT0odD1vayhlLHIsbikpJiYoc2EodCxlLG4pLG9FKHQsZSxuKSl9fTtmdW5jdGlvbiBpbChlLHQsbixyLG8sYSxpKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZihlPWUuc3RhdGVOb2RlKS5zaG91bGRDb21wb25lbnRVcGRhdGU/ZS5zaG91bGRDb21wb25lbnRVcGRhdGUocixhLGkpOiF0LnByb3RvdHlwZXx8IXQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50fHwhbkUobixyKXx8IW5FKG8sYSl9ZnVuY3Rpb24gaXMoZSx0LG4scil7ZT10LnN0YXRlLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG4sciksXCJmdW5jdGlvblwiPT10eXBlb2YgdC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmdC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuLHIpLHQuc3RhdGUhPT1lJiZpaS5lbnF1ZXVlUmVwbGFjZVN0YXRlKHQsdC5zdGF0ZSxudWxsKX1mdW5jdGlvbiBpYyhlLHQpe3ZhciBuPXQ7aWYoXCJyZWZcImluIHQpZm9yKHZhciByIGluIG49e30sdClcInJlZlwiIT09ciYmKG5bcl09dFtyXSk7aWYoZT1lLmRlZmF1bHRQcm9wcylmb3IodmFyIG8gaW4gbj09PXQmJihuPWYoe30sbikpLGUpdm9pZCAwPT09bltvXSYmKG5bb109ZVtvXSk7cmV0dXJuIG59ZnVuY3Rpb24gaXUoZSl7blEoZSl9ZnVuY3Rpb24gaWQoZSl7Y29uc29sZS5lcnJvcihlKX1mdW5jdGlvbiBpcChlKXtuUShlKX1mdW5jdGlvbiBpaChlLHQpe3RyeXsoMCxlLm9uVW5jYXVnaHRFcnJvcikodC52YWx1ZSx7Y29tcG9uZW50U3RhY2s6dC5zdGFja30pfWNhdGNoKGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9fWZ1bmN0aW9uIGltKGUsdCxuKXt0cnl7KDAsZS5vbkNhdWdodEVycm9yKShuLnZhbHVlLHtjb21wb25lbnRTdGFjazpuLnN0YWNrLGVycm9yQm91bmRhcnk6MT09PXQudGFnP3Quc3RhdGVOb2RlOm51bGx9KX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfX1mdW5jdGlvbiBpZyhlLHQsbil7cmV0dXJuKG49b18obikpLnRhZz0zLG4ucGF5bG9hZD17ZWxlbWVudDpudWxsfSxuLmNhbGxiYWNrPWZ1bmN0aW9uKCl7aWgoZSx0KX0sbn1mdW5jdGlvbiBpeShlKXtyZXR1cm4oZT1vXyhlKSkudGFnPTMsZX1mdW5jdGlvbiBpdihlLHQsbixyKXt2YXIgbz1uLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG8pe3ZhciBhPXIudmFsdWU7ZS5wYXlsb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIG8oYSl9LGUuY2FsbGJhY2s9ZnVuY3Rpb24oKXtpbSh0LG4scil9fXZhciBpPW4uc3RhdGVOb2RlO251bGwhPT1pJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBpLmNvbXBvbmVudERpZENhdGNoJiYoZS5jYWxsYmFjaz1mdW5jdGlvbigpe2ltKHQsbixyKSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBvJiYobnVsbD09PWw0P2w0PW5ldyBTZXQoW3RoaXNdKTpsNC5hZGQodGhpcykpO3ZhciBlPXIuc3RhY2s7dGhpcy5jb21wb25lbnREaWRDYXRjaChyLnZhbHVlLHtjb21wb25lbnRTdGFjazpudWxsIT09ZT9lOlwiXCJ9KX0pfXZhciBpYj1FcnJvcihsKDQ2MSkpLGlBPSExO2Z1bmN0aW9uIGl4KGUsdCxuLHIpe3QuY2hpbGQ9bnVsbD09PWU/b0EodCxudWxsLG4scik6b2IodCxlLmNoaWxkLG4scil9ZnVuY3Rpb24gaXcoZSx0LG4scixvKXtuPW4ucmVuZGVyO3ZhciBhPXQucmVmO2lmKFwicmVmXCJpbiByKXt2YXIgaT17fTtmb3IodmFyIGwgaW4gcilcInJlZlwiIT09bCYmKGlbbF09cltsXSl9ZWxzZSBpPXI7cmV0dXJuKHJXKHQpLHI9bzYoZSx0LG4saSxhLG8pLGw9YWUoKSxudWxsPT09ZXx8aUEpPyhyaiYmbCYmcncodCksdC5mbGFnc3w9MSxpeChlLHQscixvKSx0LmNoaWxkKTooYXQoZSx0LG8pLGlWKGUsdCxvKSl9ZnVuY3Rpb24gaUMoZSx0LG4scixvKXtpZihudWxsPT09ZSl7dmFyIGE9bi50eXBlO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIGF8fHJ0KGEpfHx2b2lkIDAhPT1hLmRlZmF1bHRQcm9wc3x8bnVsbCE9PW4uY29tcGFyZT8oKGU9cm8obi50eXBlLG51bGwscix0LHQubW9kZSxvKSkucmVmPXQucmVmLGUucmV0dXJuPXQsdC5jaGlsZD1lKToodC50YWc9MTUsdC50eXBlPWEsaV8oZSx0LGEscixvKSl9aWYoYT1lLmNoaWxkLCFpJChlLG8pKXt2YXIgaT1hLm1lbW9pemVkUHJvcHM7aWYoKG49bnVsbCE9PShuPW4uY29tcGFyZSk/bjpuRSkoaSxyKSYmZS5yZWY9PT10LnJlZilyZXR1cm4gaVYoZSx0LG8pfXJldHVybiB0LmZsYWdzfD0xLChlPXJuKGEscikpLnJlZj10LnJlZixlLnJldHVybj10LHQuY2hpbGQ9ZX1mdW5jdGlvbiBpXyhlLHQsbixyLG8pe2lmKG51bGwhPT1lKXt2YXIgYT1lLm1lbW9pemVkUHJvcHM7aWYobkUoYSxyKSYmZS5yZWY9PT10LnJlZilpZihpQT0hMSx0LnBlbmRpbmdQcm9wcz1yPWEsIWkkKGUsbykpcmV0dXJuIHQubGFuZXM9ZS5sYW5lcyxpVihlLHQsbyk7ZWxzZSAwIT0oMTMxMDcyJmUuZmxhZ3MpJiYoaUE9ITApfXJldHVybiBpUChlLHQsbixyLG8pfWZ1bmN0aW9uIGlrKGUsdCxuLHIpe3ZhciBvPXIuY2hpbGRyZW4sYT1udWxsIT09ZT9lLm1lbW9pemVkU3RhdGU6bnVsbDtpZihudWxsPT09ZSYmbnVsbD09PXQuc3RhdGVOb2RlJiYodC5zdGF0ZU5vZGU9e192aXNpYmlsaXR5OjEsX3BlbmRpbmdNYXJrZXJzOm51bGwsX3JldHJ5Q2FjaGU6bnVsbCxfdHJhbnNpdGlvbnM6bnVsbH0pLFwiaGlkZGVuXCI9PT1yLm1vZGUpe2lmKDAhPSgxMjgmdC5mbGFncykpe2lmKHI9bnVsbCE9PWE/YS5iYXNlTGFuZXN8bjpuLG51bGwhPT1lKXtmb3IoYT0wLG89dC5jaGlsZD1lLmNoaWxkO251bGwhPT1vOylhPWF8by5sYW5lc3xvLmNoaWxkTGFuZXMsbz1vLnNpYmxpbmc7dC5jaGlsZExhbmVzPWEmfnJ9ZWxzZSB0LmNoaWxkTGFuZXM9MCx0LmNoaWxkPW51bGw7cmV0dXJuIGlqKGUsdCxyLG4pfWlmKDA9PSgweDIwMDAwMDAwJm4pKXJldHVybiB0LmxhbmVzPXQuY2hpbGRMYW5lcz0weDIwMDAwMDAwLGlqKGUsdCxudWxsIT09YT9hLmJhc2VMYW5lc3xuOm4sbik7dC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6MCxjYWNoZVBvb2w6bnVsbH0sbnVsbCE9PWUmJm90KHQsbnVsbCE9PWE/YS5jYWNoZVBvb2w6bnVsbCksbnVsbCE9PWE/b0QodCxhKTpvTCgpLG9GKHQpfWVsc2UgbnVsbCE9PWE/KG90KHQsYS5jYWNoZVBvb2wpLG9EKHQsYSksb3EodCksdC5tZW1vaXplZFN0YXRlPW51bGwpOihudWxsIT09ZSYmb3QodCxudWxsKSxvTCgpLG9xKHQpKTtyZXR1cm4gaXgoZSx0LG8sbiksdC5jaGlsZH1mdW5jdGlvbiBpRShlLHQpe3JldHVybiBudWxsIT09ZSYmMjI9PT1lLnRhZ3x8bnVsbCE9PXQuc3RhdGVOb2RlfHwodC5zdGF0ZU5vZGU9e192aXNpYmlsaXR5OjEsX3BlbmRpbmdNYXJrZXJzOm51bGwsX3JldHJ5Q2FjaGU6bnVsbCxfdHJhbnNpdGlvbnM6bnVsbH0pLHQuc2libGluZ31mdW5jdGlvbiBpaihlLHQsbixyKXt2YXIgbz1vZSgpO3JldHVybiB0Lm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczpuLGNhY2hlUG9vbDpvPW51bGw9PT1vP251bGw6e3BhcmVudDpyMC5fY3VycmVudFZhbHVlLHBvb2w6b319LG51bGwhPT1lJiZvdCh0LG51bGwpLG9MKCksb0YodCksbnVsbCE9PWUmJnJWKGUsdCxyLCEwKSxudWxsfWZ1bmN0aW9uIGlTKGUsdCl7cmV0dXJuKHQ9aVooe21vZGU6dC5tb2RlLGNoaWxkcmVuOnQuY2hpbGRyZW59LGUubW9kZSkpLnJlZj1lLnJlZixlLmNoaWxkPXQsdC5yZXR1cm49ZSx0fWZ1bmN0aW9uIGlPKGUsdCxuKXtyZXR1cm4gb2IodCxlLmNoaWxkLG51bGwsbiksZT1pUyh0LHQucGVuZGluZ1Byb3BzKSxlLmZsYWdzfD0yLG9IKHQpLHQubWVtb2l6ZWRTdGF0ZT1udWxsLGV9ZnVuY3Rpb24gaUIoZSx0KXt2YXIgbj10LnJlZjtpZihudWxsPT09biludWxsIT09ZSYmbnVsbCE9PWUucmVmJiYodC5mbGFnc3w9NDE5NDgxNik7ZWxzZXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBuJiZcIm9iamVjdFwiIT10eXBlb2Ygbil0aHJvdyBFcnJvcihsKDI4NCkpOyhudWxsPT09ZXx8ZS5yZWYhPT1uKSYmKHQuZmxhZ3N8PTQxOTQ4MTYpfX1mdW5jdGlvbiBpUChlLHQsbixyLG8pe3JldHVybihyVyh0KSxuPW82KGUsdCxuLHIsdm9pZCAwLG8pLHI9YWUoKSxudWxsPT09ZXx8aUEpPyhyaiYmciYmcncodCksdC5mbGFnc3w9MSxpeChlLHQsbixvKSx0LmNoaWxkKTooYXQoZSx0LG8pLGlWKGUsdCxvKSl9ZnVuY3Rpb24gaUkoZSx0LG4scixvLGEpe3JldHVybihyVyh0KSx0LnVwZGF0ZVF1ZXVlPW51bGwsbj1vOCh0LHIsbixvKSxvOShlKSxyPWFlKCksbnVsbD09PWV8fGlBKT8ocmomJnImJnJ3KHQpLHQuZmxhZ3N8PTEsaXgoZSx0LG4sYSksdC5jaGlsZCk6KGF0KGUsdCxhKSxpVihlLHQsYSkpfWZ1bmN0aW9uIGl6KGUsdCxuLHIsbyl7aWYoclcodCksbnVsbD09PXQuc3RhdGVOb2RlKXt2YXIgYT1uOCxpPW4uY29udGV4dFR5cGU7XCJvYmplY3RcIj09dHlwZW9mIGkmJm51bGwhPT1pJiYoYT1yWShpKSksdC5tZW1vaXplZFN0YXRlPW51bGwhPT0oYT1uZXcgbihyLGEpKS5zdGF0ZSYmdm9pZCAwIT09YS5zdGF0ZT9hLnN0YXRlOm51bGwsYS51cGRhdGVyPWlpLHQuc3RhdGVOb2RlPWEsYS5fcmVhY3RJbnRlcm5hbHM9dCwoYT10LnN0YXRlTm9kZSkucHJvcHM9cixhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSxhLnJlZnM9e30sb3codCksaT1uLmNvbnRleHRUeXBlLGEuY29udGV4dD1cIm9iamVjdFwiPT10eXBlb2YgaSYmbnVsbCE9PWk/clkoaSk6bjgsYS5zdGF0ZT10Lm1lbW9pemVkU3RhdGUsXCJmdW5jdGlvblwiPT10eXBlb2YoaT1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcykmJihpYSh0LG4saSxyKSxhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksXCJmdW5jdGlvblwiPT10eXBlb2Ygbi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHN8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT10eXBlb2YgYS5jb21wb25lbnRXaWxsTW91bnR8fChpPWEuc3RhdGUsXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnRXaWxsTW91bnQmJmEuY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxpIT09YS5zdGF0ZSYmaWkuZW5xdWV1ZVJlcGxhY2VTdGF0ZShhLGEuc3RhdGUsbnVsbCksb0IodCxyLGEsbyksb08oKSxhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpLHI9ITB9ZWxzZSBpZihudWxsPT09ZSl7YT10LnN0YXRlTm9kZTt2YXIgbD10Lm1lbW9pemVkUHJvcHMscz1pYyhuLGwpO2EucHJvcHM9czt2YXIgYz1hLmNvbnRleHQsdT1uLmNvbnRleHRUeXBlO2k9bjgsXCJvYmplY3RcIj09dHlwZW9mIHUmJm51bGwhPT11JiYoaT1yWSh1KSk7dmFyIGQ9bi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7dT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBkfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlLGw9dC5wZW5kaW5nUHJvcHMhPT1sLHV8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGx8fGMhPT1pKSYmaXModCxhLHIsaSksb3g9ITE7dmFyIGY9dC5tZW1vaXplZFN0YXRlO2Euc3RhdGU9ZixvQih0LHIsYSxvKSxvTygpLGM9dC5tZW1vaXplZFN0YXRlLGx8fGYhPT1jfHxveD8oXCJmdW5jdGlvblwiPT10eXBlb2YgZCYmKGlhKHQsbixkLHIpLGM9dC5tZW1vaXplZFN0YXRlKSwocz1veHx8aWwodCxuLHMscixmLGMsaSkpPyh1fHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50fHwoXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnRXaWxsTW91bnQmJmEuY29tcG9uZW50V2lsbE1vdW50KCksXCJmdW5jdGlvblwiPT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSksXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpKTooXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpLHQubWVtb2l6ZWRQcm9wcz1yLHQubWVtb2l6ZWRTdGF0ZT1jKSxhLnByb3BzPXIsYS5zdGF0ZT1jLGEuY29udGV4dD1pLHI9cyk6KFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuY29tcG9uZW50RGlkTW91bnQmJih0LmZsYWdzfD00MTk0MzA4KSxyPSExKX1lbHNle2E9dC5zdGF0ZU5vZGUsb0MoZSx0KSx1PWljKG4saT10Lm1lbW9pemVkUHJvcHMpLGEucHJvcHM9dSxkPXQucGVuZGluZ1Byb3BzLGY9YS5jb250ZXh0LGM9bi5jb250ZXh0VHlwZSxzPW44LFwib2JqZWN0XCI9PXR5cGVvZiBjJiZudWxsIT09YyYmKHM9clkoYykpLChjPVwiZnVuY3Rpb25cIj09dHlwZW9mKGw9bi5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMpfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKXx8XCJmdW5jdGlvblwiIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXCJmdW5jdGlvblwiIT10eXBlb2YgYS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwoaSE9PWR8fGYhPT1zKSYmaXModCxhLHIscyksb3g9ITEsZj10Lm1lbW9pemVkU3RhdGUsYS5zdGF0ZT1mLG9CKHQscixhLG8pLG9PKCk7dmFyIHA9dC5tZW1vaXplZFN0YXRlO2khPT1kfHxmIT09cHx8b3h8fG51bGwhPT1lJiZudWxsIT09ZS5kZXBlbmRlbmNpZXMmJnIkKGUuZGVwZW5kZW5jaWVzKT8oXCJmdW5jdGlvblwiPT10eXBlb2YgbCYmKGlhKHQsbixsLHIpLHA9dC5tZW1vaXplZFN0YXRlKSwodT1veHx8aWwodCxuLHUscixmLHAscyl8fG51bGwhPT1lJiZudWxsIT09ZS5kZXBlbmRlbmNpZXMmJnIkKGUuZGVwZW5kZW5jaWVzKSk/KGN8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbFVwZGF0ZXx8KFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuY29tcG9uZW50V2lsbFVwZGF0ZSYmYS5jb21wb25lbnRXaWxsVXBkYXRlKHIscCxzKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKHIscCxzKSksXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnREaWRVcGRhdGUmJih0LmZsYWdzfD00KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlJiYodC5mbGFnc3w9MTAyNCkpOihcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZXx8aT09PWUubWVtb2l6ZWRQcm9wcyYmZj09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGk9PT1lLm1lbW9pemVkUHJvcHMmJmY9PT1lLm1lbW9pemVkU3RhdGV8fCh0LmZsYWdzfD0xMDI0KSx0Lm1lbW9pemVkUHJvcHM9cix0Lm1lbW9pemVkU3RhdGU9cCksYS5wcm9wcz1yLGEuc3RhdGU9cCxhLmNvbnRleHQ9cyxyPXUpOihcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZXx8aT09PWUubWVtb2l6ZWRQcm9wcyYmZj09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fGk9PT1lLm1lbW9pemVkUHJvcHMmJmY9PT1lLm1lbW9pemVkU3RhdGV8fCh0LmZsYWdzfD0xMDI0KSxyPSExKX1yZXR1cm4gYT1yLGlCKGUsdCkscj0wIT0oMTI4JnQuZmxhZ3MpLGF8fHI/KGE9dC5zdGF0ZU5vZGUsbj1yJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBuLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj9udWxsOmEucmVuZGVyKCksdC5mbGFnc3w9MSxudWxsIT09ZSYmcj8odC5jaGlsZD1vYih0LGUuY2hpbGQsbnVsbCxvKSx0LmNoaWxkPW9iKHQsbnVsbCxuLG8pKTppeChlLHQsbixvKSx0Lm1lbW9pemVkU3RhdGU9YS5zdGF0ZSxlPXQuY2hpbGQpOmU9aVYoZSx0LG8pLGV9ZnVuY3Rpb24gaVQoZSx0LG4scil7cmV0dXJuIHJEKCksdC5mbGFnc3w9MjU2LGl4KGUsdCxuLHIpLHQuY2hpbGR9dmFyIGlEPXtkZWh5ZHJhdGVkOm51bGwsdHJlZUNvbnRleHQ6bnVsbCxyZXRyeUxhbmU6MCxoeWRyYXRpb25FcnJvcnM6bnVsbH07ZnVuY3Rpb24gaUwoZSl7cmV0dXJue2Jhc2VMYW5lczplLGNhY2hlUG9vbDpvbigpfX1mdW5jdGlvbiBpTihlLHQsbil7cmV0dXJuIGU9bnVsbCE9PWU/ZS5jaGlsZExhbmVzJn5uOjAsdCYmKGV8PWxLKSxlfWZ1bmN0aW9uIGlSKGUsdCxuKXt2YXIgcixvPXQucGVuZGluZ1Byb3BzLGE9ITEsaT0wIT0oMTI4JnQuZmxhZ3MpO2lmKChyPWkpfHwocj0obnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUpJiYwIT0oMiZvVi5jdXJyZW50KSksciYmKGE9ITAsdC5mbGFncyY9LTEyOSkscj0wIT0oMzImdC5mbGFncyksdC5mbGFncyY9LTMzLG51bGw9PT1lKXtpZihyail7aWYoYT9vWih0KTpvcSh0KSwoZT1yRSk/bnVsbCE9PShlPW51bGwhPT0oZT1jaihlLHJPKSkmJlwiJlwiIT09ZS5kYXRhP2U6bnVsbCkmJih0Lm1lbW9pemVkU3RhdGU9e2RlaHlkcmF0ZWQ6ZSx0cmVlQ29udGV4dDpudWxsIT09cnk/e2lkOnJ2LG92ZXJmbG93OnJifTpudWxsLHJldHJ5TGFuZToweDIwMDAwMDAwLGh5ZHJhdGlvbkVycm9yczpudWxsfSwobj1ybChlKSkucmV0dXJuPXQsdC5jaGlsZD1uLHJrPXQsckU9bnVsbCk6ZT1udWxsLG51bGw9PT1lKXRocm93IHJQKHQpO3JldHVybiBjTyhlKT90LmxhbmVzPTMyOnQubGFuZXM9MHgyMDAwMDAwMCxudWxsfXZhciBzPW8uY2hpbGRyZW47cmV0dXJuKG89by5mYWxsYmFjayxhKT8ob3EodCkscz1pWih7bW9kZTpcImhpZGRlblwiLGNoaWxkcmVuOnN9LGE9dC5tb2RlKSxvPXJhKG8sYSxuLG51bGwpLHMucmV0dXJuPXQsby5yZXR1cm49dCxzLnNpYmxpbmc9byx0LmNoaWxkPXMsKG89dC5jaGlsZCkubWVtb2l6ZWRTdGF0ZT1pTChuKSxvLmNoaWxkTGFuZXM9aU4oZSxyLG4pLHQubWVtb2l6ZWRTdGF0ZT1pRCxpRShudWxsLG8pKToob1oodCksaU0odCxzKSl9dmFyIGM9ZS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1jJiZudWxsIT09KHM9Yy5kZWh5ZHJhdGVkKSl7aWYoaSkyNTYmdC5mbGFncz8ob1oodCksdC5mbGFncyY9LTI1Nyx0PWlVKGUsdCxuKSk6bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZT8ob3EodCksdC5jaGlsZD1lLmNoaWxkLHQuZmxhZ3N8PTEyOCx0PW51bGwpOihvcSh0KSxzPW8uZmFsbGJhY2ssYT10Lm1vZGUsbz1pWih7bW9kZTpcInZpc2libGVcIixjaGlsZHJlbjpvLmNoaWxkcmVufSxhKSxzPXJhKHMsYSxuLG51bGwpLHMuZmxhZ3N8PTIsby5yZXR1cm49dCxzLnJldHVybj10LG8uc2libGluZz1zLHQuY2hpbGQ9byxvYih0LGUuY2hpbGQsbnVsbCxuKSwobz10LmNoaWxkKS5tZW1vaXplZFN0YXRlPWlMKG4pLG8uY2hpbGRMYW5lcz1pTihlLHIsbiksdC5tZW1vaXplZFN0YXRlPWlELHQ9aUUobnVsbCxvKSk7ZWxzZSBpZihvWih0KSxjTyhzKSl7aWYocj1zLm5leHRTaWJsaW5nJiZzLm5leHRTaWJsaW5nLmRhdGFzZXQpdmFyIHU9ci5kZ3N0O3I9dSwobz1FcnJvcihsKDQxOSkpKS5zdGFjaz1cIlwiLG8uZGlnZXN0PXIsck4oe3ZhbHVlOm8sc291cmNlOm51bGwsc3RhY2s6bnVsbH0pLHQ9aVUoZSx0LG4pfWVsc2UgaWYoaUF8fHJWKGUsdCxuLCExKSxyPTAhPShuJmUuY2hpbGRMYW5lcyksaUF8fHIpe2lmKG51bGwhPT0ocj1sTCkmJjAhPT0obz1lTyhyLG4pKSYmbyE9PWMucmV0cnlMYW5lKXRocm93IGMucmV0cnlMYW5lPW8sbjMoZSxvKSxzYShyLGUsbyksaWI7Y1Mocyl8fHNnKCksdD1pVShlLHQsbil9ZWxzZSBjUyhzKT8odC5mbGFnc3w9MTkyLHQuY2hpbGQ9ZS5jaGlsZCx0PW51bGwpOihlPWMudHJlZUNvbnRleHQsckU9Y0Iocy5uZXh0U2libGluZykscms9dCxyaj0hMCxyUz1udWxsLHJPPSExLG51bGwhPT1lJiZyXyh0LGUpLHQ9aU0odCxvLmNoaWxkcmVuKSx0LmZsYWdzfD00MDk2KTtyZXR1cm4gdH1yZXR1cm4gYT8ob3EodCkscz1vLmZhbGxiYWNrLGE9dC5tb2RlLHU9KGM9ZS5jaGlsZCkuc2libGluZywobz1ybihjLHttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46by5jaGlsZHJlbn0pKS5zdWJ0cmVlRmxhZ3M9MHgzZTAwMDAwJmMuc3VidHJlZUZsYWdzLG51bGwhPT11P3M9cm4odSxzKToocz1yYShzLGEsbixudWxsKSxzLmZsYWdzfD0yKSxzLnJldHVybj10LG8ucmV0dXJuPXQsby5zaWJsaW5nPXMsdC5jaGlsZD1vLGlFKG51bGwsbyksbz10LmNoaWxkLG51bGw9PT0ocz1lLmNoaWxkLm1lbW9pemVkU3RhdGUpP3M9aUwobik6KG51bGwhPT0oYT1zLmNhY2hlUG9vbCk/KGM9cjAuX2N1cnJlbnRWYWx1ZSxhPWEucGFyZW50IT09Yz97cGFyZW50OmMscG9vbDpjfTphKTphPW9uKCkscz17YmFzZUxhbmVzOnMuYmFzZUxhbmVzfG4sY2FjaGVQb29sOmF9KSxvLm1lbW9pemVkU3RhdGU9cyxvLmNoaWxkTGFuZXM9aU4oZSxyLG4pLHQubWVtb2l6ZWRTdGF0ZT1pRCxpRShlLmNoaWxkLG8pKToob1oodCksZT0obj1lLmNoaWxkKS5zaWJsaW5nLChuPXJuKG4se21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46by5jaGlsZHJlbn0pKS5yZXR1cm49dCxuLnNpYmxpbmc9bnVsbCxudWxsIT09ZSYmKG51bGw9PT0ocj10LmRlbGV0aW9ucyk/KHQuZGVsZXRpb25zPVtlXSx0LmZsYWdzfD0xNik6ci5wdXNoKGUpKSx0LmNoaWxkPW4sdC5tZW1vaXplZFN0YXRlPW51bGwsbil9ZnVuY3Rpb24gaU0oZSx0KXtyZXR1cm4odD1pWih7bW9kZTpcInZpc2libGVcIixjaGlsZHJlbjp0fSxlLm1vZGUpKS5yZXR1cm49ZSxlLmNoaWxkPXR9ZnVuY3Rpb24gaVooZSx0KXtyZXR1cm4oZT1yZSgyMixlLG51bGwsdCkpLmxhbmVzPTAsZX1mdW5jdGlvbiBpVShlLHQsbil7cmV0dXJuIG9iKHQsZS5jaGlsZCxudWxsLG4pLGU9aU0odCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbiksZS5mbGFnc3w9Mix0Lm1lbW9pemVkU3RhdGU9bnVsbCxlfWZ1bmN0aW9uIGlGKGUsdCxuKXtlLmxhbmVzfD10O3ZhciByPWUuYWx0ZXJuYXRlO251bGwhPT1yJiYoci5sYW5lc3w9dCkscnEoZS5yZXR1cm4sdCxuKX1mdW5jdGlvbiBpcShlLHQsbixyLG8sYSl7dmFyIGk9ZS5tZW1vaXplZFN0YXRlO251bGw9PT1pP2UubWVtb2l6ZWRTdGF0ZT17aXNCYWNrd2FyZHM6dCxyZW5kZXJpbmc6bnVsbCxyZW5kZXJpbmdTdGFydFRpbWU6MCxsYXN0OnIsdGFpbDpuLHRhaWxNb2RlOm8sdHJlZUZvcmtDb3VudDphfTooaS5pc0JhY2t3YXJkcz10LGkucmVuZGVyaW5nPW51bGwsaS5yZW5kZXJpbmdTdGFydFRpbWU9MCxpLmxhc3Q9cixpLnRhaWw9bixpLnRhaWxNb2RlPW8saS50cmVlRm9ya0NvdW50PWEpfWZ1bmN0aW9uIGlIKGUsdCxuKXt2YXIgcj10LnBlbmRpbmdQcm9wcyxvPXIucmV2ZWFsT3JkZXIsYT1yLnRhaWw7cj1yLmNoaWxkcmVuO3ZhciBpPW9WLmN1cnJlbnQsbD0wIT0oMiZpKTtpZihsPyhpPTEmaXwyLHQuZmxhZ3N8PTEyOCk6aSY9MSxNKG9WLGkpLGl4KGUsdCxyLG4pLHI9cmo/cmg6MCwhbCYmbnVsbCE9PWUmJjAhPSgxMjgmZS5mbGFncykpZTpmb3IoZT10LmNoaWxkO251bGwhPT1lOyl7aWYoMTM9PT1lLnRhZyludWxsIT09ZS5tZW1vaXplZFN0YXRlJiZpRihlLG4sdCk7ZWxzZSBpZigxOT09PWUudGFnKWlGKGUsbix0KTtlbHNlIGlmKG51bGwhPT1lLmNoaWxkKXtlLmNoaWxkLnJldHVybj1lLGU9ZS5jaGlsZDtjb250aW51ZX1pZihlPT09dClicmVhaztmb3IoO251bGw9PT1lLnNpYmxpbmc7KXtpZihudWxsPT09ZS5yZXR1cm58fGUucmV0dXJuPT09dClicmVhayBlO2U9ZS5yZXR1cm59ZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZ31zd2l0Y2gobyl7Y2FzZVwiZm9yd2FyZHNcIjpmb3Iobz1udWxsLG49dC5jaGlsZDtudWxsIT09bjspbnVsbCE9PShlPW4uYWx0ZXJuYXRlKSYmbnVsbD09PW8kKGUpJiYobz1uKSxuPW4uc2libGluZztudWxsPT09KG49byk/KG89dC5jaGlsZCx0LmNoaWxkPW51bGwpOihvPW4uc2libGluZyxuLnNpYmxpbmc9bnVsbCksaXEodCwhMSxvLG4sYSxyKTticmVhaztjYXNlXCJiYWNrd2FyZHNcIjpjYXNlXCJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzXCI6Zm9yKG49bnVsbCxvPXQuY2hpbGQsdC5jaGlsZD1udWxsO251bGwhPT1vOyl7aWYobnVsbCE9PShlPW8uYWx0ZXJuYXRlKSYmbnVsbD09PW8kKGUpKXt0LmNoaWxkPW87YnJlYWt9ZT1vLnNpYmxpbmcsby5zaWJsaW5nPW4sbj1vLG89ZX1pcSh0LCEwLG4sbnVsbCxhLHIpO2JyZWFrO2Nhc2VcInRvZ2V0aGVyXCI6aXEodCwhMSxudWxsLG51bGwsdm9pZCAwLHIpO2JyZWFrO2RlZmF1bHQ6dC5tZW1vaXplZFN0YXRlPW51bGx9cmV0dXJuIHQuY2hpbGR9ZnVuY3Rpb24gaVYoZSx0LG4pe2lmKG51bGwhPT1lJiYodC5kZXBlbmRlbmNpZXM9ZS5kZXBlbmRlbmNpZXMpLGwkfD10LmxhbmVzLDA9PShuJnQuY2hpbGRMYW5lcykpe2lmKG51bGw9PT1lKXJldHVybiBudWxsO2Vsc2UgaWYoclYoZSx0LG4sITEpLDA9PShuJnQuY2hpbGRMYW5lcykpcmV0dXJuIG51bGx9aWYobnVsbCE9PWUmJnQuY2hpbGQhPT1lLmNoaWxkKXRocm93IEVycm9yKGwoMTUzKSk7aWYobnVsbCE9PXQuY2hpbGQpe2ZvcihuPXJuKGU9dC5jaGlsZCxlLnBlbmRpbmdQcm9wcyksdC5jaGlsZD1uLG4ucmV0dXJuPXQ7bnVsbCE9PWUuc2libGluZzspZT1lLnNpYmxpbmcsKG49bi5zaWJsaW5nPXJuKGUsZS5wZW5kaW5nUHJvcHMpKS5yZXR1cm49dDtuLnNpYmxpbmc9bnVsbH1yZXR1cm4gdC5jaGlsZH1mdW5jdGlvbiBpJChlLHQpe3JldHVybiAwIT0oZS5sYW5lcyZ0KXx8ISEobnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmciQoZSkpfWZ1bmN0aW9uIGlXKGUsdCxuKXtpZihudWxsIT09ZSlpZihlLm1lbW9pemVkUHJvcHMhPT10LnBlbmRpbmdQcm9wcylpQT0hMDtlbHNle2lmKCFpJChlLG4pJiYwPT0oMTI4JnQuZmxhZ3MpKXJldHVybiBpQT0hMSxmdW5jdGlvbihlLHQsbil7c3dpdGNoKHQudGFnKXtjYXNlIDM6SCh0LHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHJVKHQscjAsZS5tZW1vaXplZFN0YXRlLmNhY2hlKSxyRCgpO2JyZWFrO2Nhc2UgMjc6Y2FzZSA1OiQodCk7YnJlYWs7Y2FzZSA0OkgodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOnJVKHQsdC50eXBlLHQubWVtb2l6ZWRQcm9wcy52YWx1ZSk7YnJlYWs7Y2FzZSAzMTppZihudWxsIT09dC5tZW1vaXplZFN0YXRlKXJldHVybiB0LmZsYWdzfD0xMjgsb1UodCksbnVsbDticmVhaztjYXNlIDEzOnZhciByPXQubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09cil7aWYobnVsbCE9PXIuZGVoeWRyYXRlZClyZXR1cm4gb1oodCksdC5mbGFnc3w9MTI4LG51bGw7aWYoMCE9KG4mdC5jaGlsZC5jaGlsZExhbmVzKSlyZXR1cm4gaVIoZSx0LG4pO3JldHVybiBvWih0KSxudWxsIT09KGU9aVYoZSx0LG4pKT9lLnNpYmxpbmc6bnVsbH1vWih0KTticmVhaztjYXNlIDE5OnZhciBvPTAhPSgxMjgmZS5mbGFncyk7aWYoKHI9MCE9KG4mdC5jaGlsZExhbmVzKSl8fChyVihlLHQsbiwhMSkscj0wIT0obiZ0LmNoaWxkTGFuZXMpKSxvKXtpZihyKXJldHVybiBpSChlLHQsbik7dC5mbGFnc3w9MTI4fWlmKG51bGwhPT0obz10Lm1lbW9pemVkU3RhdGUpJiYoby5yZW5kZXJpbmc9bnVsbCxvLnRhaWw9bnVsbCxvLmxhc3RFZmZlY3Q9bnVsbCksTShvVixvVi5jdXJyZW50KSwhcilyZXR1cm4gbnVsbDticmVhaztjYXNlIDIyOnJldHVybiB0LmxhbmVzPTAsaWsoZSx0LG4sdC5wZW5kaW5nUHJvcHMpO2Nhc2UgMjQ6clUodCxyMCxlLm1lbW9pemVkU3RhdGUuY2FjaGUpfXJldHVybiBpVihlLHQsbil9KGUsdCxuKTtpQT0wIT0oMTMxMDcyJmUuZmxhZ3MpfWVsc2UgaUE9ITEscmomJjAhPSgxMDQ4NTc2JnQuZmxhZ3MpJiZyeCh0LHJoLHQuaW5kZXgpO3N3aXRjaCh0LmxhbmVzPTAsdC50YWcpe2Nhc2UgMTY6ZTp7dmFyIHI9dC5wZW5kaW5nUHJvcHM7aWYoZT1vYyh0LmVsZW1lbnRUeXBlKSx0LnR5cGU9ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlKXJ0KGUpPyhyPWljKGUsciksdC50YWc9MSx0PWl6KG51bGwsdCxlLHIsbikpOih0LnRhZz0wLHQ9aVAobnVsbCx0LGUscixuKSk7ZWxzZXtpZihudWxsIT1lKXt2YXIgbz1lLiQkdHlwZW9mO2lmKG89PT14KXt0LnRhZz0xMSx0PWl3KG51bGwsdCxlLHIsbik7YnJlYWsgZX1pZihvPT09Xyl7dC50YWc9MTQsdD1pQyhudWxsLHQsZSxyLG4pO2JyZWFrIGV9fXRocm93IEVycm9yKGwoMzA2LHQ9ZnVuY3Rpb24gZSh0KXtpZihudWxsPT10KXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQpcmV0dXJuIHQuJCR0eXBlb2Y9PT1CP251bGw6dC5kaXNwbGF5TmFtZXx8dC5uYW1lfHxudWxsO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXJldHVybiB0O3N3aXRjaCh0KXtjYXNlIGc6cmV0dXJuXCJGcmFnbWVudFwiO2Nhc2UgdjpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSB5OnJldHVyblwiU3RyaWN0TW9kZVwiO2Nhc2UgdzpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSBDOnJldHVyblwiU3VzcGVuc2VMaXN0XCI7Y2FzZSBFOnJldHVyblwiQWN0aXZpdHlcIn1pZihcIm9iamVjdFwiPT10eXBlb2YgdClzd2l0Y2godC4kJHR5cGVvZil7Y2FzZSBtOnJldHVyblwiUG9ydGFsXCI7Y2FzZSBBOnJldHVybiB0LmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIjtjYXNlIGI6cmV0dXJuKHQuX2NvbnRleHQuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Db25zdW1lclwiO2Nhc2UgeDp2YXIgbj10LnJlbmRlcjtyZXR1cm4odD10LmRpc3BsYXlOYW1lKXx8KHQ9XCJcIiE9PSh0PW4uZGlzcGxheU5hbWV8fG4ubmFtZXx8XCJcIik/XCJGb3J3YXJkUmVmKFwiK3QrXCIpXCI6XCJGb3J3YXJkUmVmXCIpLHQ7Y2FzZSBfOnJldHVybiBudWxsIT09KG49dC5kaXNwbGF5TmFtZXx8bnVsbCk/bjplKHQudHlwZSl8fFwiTWVtb1wiO2Nhc2UgazpuPXQuX3BheWxvYWQsdD10Ll9pbml0O3RyeXtyZXR1cm4gZSh0KG4pKX1jYXRjaChlKXt9fXJldHVybiBudWxsfShlKXx8ZSxcIlwiKSl9fXJldHVybiB0O2Nhc2UgMDpyZXR1cm4gaVAoZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxuKTtjYXNlIDE6cmV0dXJuIG89aWMocj10LnR5cGUsdC5wZW5kaW5nUHJvcHMpLGl6KGUsdCxyLG8sbik7Y2FzZSAzOmU6e2lmKEgodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxudWxsPT09ZSl0aHJvdyBFcnJvcihsKDM4NykpO3I9dC5wZW5kaW5nUHJvcHM7dmFyIGE9dC5tZW1vaXplZFN0YXRlO289YS5lbGVtZW50LG9DKGUsdCksb0IodCxyLG51bGwsbik7dmFyIGk9dC5tZW1vaXplZFN0YXRlO2lmKHJVKHQscjAscj1pLmNhY2hlKSxyIT09YS5jYWNoZSYmckgodCxbcjBdLG4sITApLG9PKCkscj1pLmVsZW1lbnQsYS5pc0RlaHlkcmF0ZWQpaWYoYT17ZWxlbWVudDpyLGlzRGVoeWRyYXRlZDohMSxjYWNoZTppLmNhY2hlfSx0LnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1hLHQubWVtb2l6ZWRTdGF0ZT1hLDI1NiZ0LmZsYWdzKXt0PWlUKGUsdCxyLG4pO2JyZWFrIGV9ZWxzZSBpZihyIT09byl7ck4obz1ydShFcnJvcihsKDQyNCkpLHQpKSx0PWlUKGUsdCxyLG4pO2JyZWFrIGV9ZWxzZSBmb3IockU9Y0IoKGU9OT09PShlPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLm5vZGVUeXBlP2UuYm9keTpcIkhUTUxcIj09PWUubm9kZU5hbWU/ZS5vd25lckRvY3VtZW50LmJvZHk6ZSkuZmlyc3RDaGlsZCkscms9dCxyaj0hMCxyUz1udWxsLHJPPSEwLG49b0EodCxudWxsLHIsbiksdC5jaGlsZD1uO247KW4uZmxhZ3M9LTMmbi5mbGFnc3w0MDk2LG49bi5zaWJsaW5nO2Vsc2V7aWYockQoKSxyPT09byl7dD1pVihlLHQsbik7YnJlYWsgZX1peChlLHQscixuKX10PXQuY2hpbGR9cmV0dXJuIHQ7Y2FzZSAyNjpyZXR1cm4gaUIoZSx0KSxudWxsPT09ZT8obj1jRih0LnR5cGUsbnVsbCx0LnBlbmRpbmdQcm9wcyxudWxsKSk/dC5tZW1vaXplZFN0YXRlPW46cmp8fChuPXQudHlwZSxlPXQucGVuZGluZ1Byb3BzLChyPWNwKEYuY3VycmVudCkuY3JlYXRlRWxlbWVudChuKSlbZURdPXQscltlTF09ZSxjdShyLG4sZSksZVkociksdC5zdGF0ZU5vZGU9cik6dC5tZW1vaXplZFN0YXRlPWNGKHQudHlwZSxlLm1lbW9pemVkUHJvcHMsdC5wZW5kaW5nUHJvcHMsZS5tZW1vaXplZFN0YXRlKSxudWxsO2Nhc2UgMjc6cmV0dXJuICQodCksbnVsbD09PWUmJnJqJiYocj10LnN0YXRlTm9kZT1jVCh0LnR5cGUsdC5wZW5kaW5nUHJvcHMsRi5jdXJyZW50KSxyaz10LHJPPSEwLG89ckUsY0ModC50eXBlKT8oY1A9byxyRT1jQihyLmZpcnN0Q2hpbGQpKTpyRT1vKSxpeChlLHQsdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sbiksaUIoZSx0KSxudWxsPT09ZSYmKHQuZmxhZ3N8PTQxOTQzMDQpLHQuY2hpbGQ7Y2FzZSA1OnJldHVybiBudWxsPT09ZSYmcmomJigobz1yPXJFKSYmKG51bGwhPT0ocj1mdW5jdGlvbihlLHQsbixyKXtmb3IoOzE9PT1lLm5vZGVUeXBlOyl7aWYoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09dC50b0xvd2VyQ2FzZSgpKXtpZighciYmKFwiSU5QVVRcIiE9PWUubm9kZU5hbWV8fFwiaGlkZGVuXCIhPT1lLnR5cGUpKWJyZWFrfWVsc2UgaWYocil7aWYoIWVbZUZdKXN3aXRjaCh0KXtjYXNlXCJtZXRhXCI6aWYoIWUuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpYnJlYWs7cmV0dXJuIGU7Y2FzZVwibGlua1wiOmlmKFwic3R5bGVzaGVldFwiPT09KG89ZS5nZXRBdHRyaWJ1dGUoXCJyZWxcIikpJiZlLmhhc0F0dHJpYnV0ZShcImRhdGEtcHJlY2VkZW5jZVwiKXx8byE9PW4ucmVsfHxlLmdldEF0dHJpYnV0ZShcImhyZWZcIikhPT0obnVsbD09bi5ocmVmfHxcIlwiPT09bi5ocmVmP251bGw6bi5ocmVmKXx8ZS5nZXRBdHRyaWJ1dGUoXCJjcm9zc29yaWdpblwiKSE9PShudWxsPT1uLmNyb3NzT3JpZ2luP251bGw6bi5jcm9zc09yaWdpbil8fGUuZ2V0QXR0cmlidXRlKFwidGl0bGVcIikhPT0obnVsbD09bi50aXRsZT9udWxsOm4udGl0bGUpKWJyZWFrO3JldHVybiBlO2Nhc2VcInN0eWxlXCI6aWYoZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLXByZWNlZGVuY2VcIikpYnJlYWs7cmV0dXJuIGU7Y2FzZVwic2NyaXB0XCI6aWYoKChvPWUuZ2V0QXR0cmlidXRlKFwic3JjXCIpKSE9PShudWxsPT1uLnNyYz9udWxsOm4uc3JjKXx8ZS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpIT09KG51bGw9PW4udHlwZT9udWxsOm4udHlwZSl8fGUuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIikhPT0obnVsbD09bi5jcm9zc09yaWdpbj9udWxsOm4uY3Jvc3NPcmlnaW4pKSYmbyYmZS5oYXNBdHRyaWJ1dGUoXCJhc3luY1wiKSYmIWUuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpYnJlYWs7cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4gZX19ZWxzZXtpZihcImlucHV0XCIhPT10fHxcImhpZGRlblwiIT09ZS50eXBlKXJldHVybiBlO3ZhciBvPW51bGw9PW4ubmFtZT9udWxsOlwiXCIrbi5uYW1lO2lmKFwiaGlkZGVuXCI9PT1uLnR5cGUmJmUuZ2V0QXR0cmlidXRlKFwibmFtZVwiKT09PW8pcmV0dXJuIGV9aWYobnVsbD09PShlPWNCKGUubmV4dFNpYmxpbmcpKSlicmVha31yZXR1cm4gbnVsbH0ocix0LnR5cGUsdC5wZW5kaW5nUHJvcHMsck8pKT8odC5zdGF0ZU5vZGU9cixyaz10LHJFPWNCKHIuZmlyc3RDaGlsZCksck89ITEsbz0hMCk6bz0hMSksb3x8clAodCkpLCQodCksbz10LnR5cGUsYT10LnBlbmRpbmdQcm9wcyxpPW51bGwhPT1lP2UubWVtb2l6ZWRQcm9wczpudWxsLHI9YS5jaGlsZHJlbixjZyhvLGEpP3I9bnVsbDpudWxsIT09aSYmY2cobyxpKSYmKHQuZmxhZ3N8PTMyKSxudWxsIT09dC5tZW1vaXplZFN0YXRlJiYoYzkuX2N1cnJlbnRWYWx1ZT1vPW82KGUsdCxvNyxudWxsLG51bGwsbikpLGlCKGUsdCksaXgoZSx0LHIsbiksdC5jaGlsZDtjYXNlIDY6cmV0dXJuIG51bGw9PT1lJiZyaiYmKChlPW49ckUpJiYobnVsbCE9PShuPWZ1bmN0aW9uKGUsdCxuKXtpZihcIlwiPT09dClyZXR1cm4gbnVsbDtmb3IoOzMhPT1lLm5vZGVUeXBlOylpZigoMSE9PWUubm9kZVR5cGV8fFwiSU5QVVRcIiE9PWUubm9kZU5hbWV8fFwiaGlkZGVuXCIhPT1lLnR5cGUpJiYhbnx8bnVsbD09PShlPWNCKGUubmV4dFNpYmxpbmcpKSlyZXR1cm4gbnVsbDtyZXR1cm4gZX0obix0LnBlbmRpbmdQcm9wcyxyTykpPyh0LnN0YXRlTm9kZT1uLHJrPXQsckU9bnVsbCxlPSEwKTplPSExKSxlfHxyUCh0KSksbnVsbDtjYXNlIDEzOnJldHVybiBpUihlLHQsbik7Y2FzZSA0OnJldHVybiBIKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykscj10LnBlbmRpbmdQcm9wcyxudWxsPT09ZT90LmNoaWxkPW9iKHQsbnVsbCxyLG4pOml4KGUsdCxyLG4pLHQuY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gaXcoZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxuKTtjYXNlIDc6cmV0dXJuIGl4KGUsdCx0LnBlbmRpbmdQcm9wcyxuKSx0LmNoaWxkO2Nhc2UgODpjYXNlIDEyOnJldHVybiBpeChlLHQsdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sbiksdC5jaGlsZDtjYXNlIDEwOnJldHVybiByPXQucGVuZGluZ1Byb3BzLHJVKHQsdC50eXBlLHIudmFsdWUpLGl4KGUsdCxyLmNoaWxkcmVuLG4pLHQuY2hpbGQ7Y2FzZSA5OnJldHVybiBvPXQudHlwZS5fY29udGV4dCxyPXQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLHJXKHQpLHI9cihvPXJZKG8pKSx0LmZsYWdzfD0xLGl4KGUsdCxyLG4pLHQuY2hpbGQ7Y2FzZSAxNDpyZXR1cm4gaUMoZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxuKTtjYXNlIDE1OnJldHVybiBpXyhlLHQsdC50eXBlLHQucGVuZGluZ1Byb3BzLG4pO2Nhc2UgMTk6cmV0dXJuIGlIKGUsdCxuKTtjYXNlIDMxOnZhciBzPWUsYz10LHU9bixkPWMucGVuZGluZ1Byb3BzLGY9MCE9KDEyOCZjLmZsYWdzKTtpZihjLmZsYWdzJj0tMTI5LG51bGw9PT1zKXtpZihyail7aWYoXCJoaWRkZW5cIj09PWQubW9kZSlyZXR1cm4gcz1pUyhjLGQpLGMubGFuZXM9MHgyMDAwMDAwMCxpRShudWxsLHMpO2lmKG9VKGMpLChzPXJFKT9udWxsIT09KHM9bnVsbCE9PShzPWNqKHMsck8pKSYmXCImXCI9PT1zLmRhdGE/czpudWxsKSYmKGMubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDpzLHRyZWVDb250ZXh0Om51bGwhPT1yeT97aWQ6cnYsb3ZlcmZsb3c6cmJ9Om51bGwscmV0cnlMYW5lOjB4MjAwMDAwMDAsaHlkcmF0aW9uRXJyb3JzOm51bGx9LCh1PXJsKHMpKS5yZXR1cm49YyxjLmNoaWxkPXUscms9YyxyRT1udWxsKTpzPW51bGwsbnVsbD09PXMpdGhyb3cgclAoYyk7cmV0dXJuIGMubGFuZXM9MHgyMDAwMDAwMCxudWxsfXJldHVybiBpUyhjLGQpfXZhciBwPXMubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09cCl7dmFyIGg9cC5kZWh5ZHJhdGVkO2lmKG9VKGMpLGYpaWYoMjU2JmMuZmxhZ3MpYy5mbGFncyY9LTI1NyxjPWlPKHMsYyx1KTtlbHNlIGlmKG51bGwhPT1jLm1lbW9pemVkU3RhdGUpYy5jaGlsZD1zLmNoaWxkLGMuZmxhZ3N8PTEyOCxjPW51bGw7ZWxzZSB0aHJvdyBFcnJvcihsKDU1OCkpO2Vsc2UgaWYoaUF8fHJWKHMsYyx1LCExKSxmPTAhPSh1JnMuY2hpbGRMYW5lcyksaUF8fGYpe2lmKG51bGwhPT0oZD1sTCkmJjAhPT0oaD1lTyhkLHUpKSYmaCE9PXAucmV0cnlMYW5lKXRocm93IHAucmV0cnlMYW5lPWgsbjMocyxoKSxzYShkLHMsaCksaWI7c2coKSxjPWlPKHMsYyx1KX1lbHNlIHM9cC50cmVlQ29udGV4dCxyRT1jQihoLm5leHRTaWJsaW5nKSxyaz1jLHJqPSEwLHJTPW51bGwsck89ITEsbnVsbCE9PXMmJnJfKGMscyksYz1pUyhjLGQpLGMuZmxhZ3N8PTQwOTY7cmV0dXJuIGN9cmV0dXJuKHM9cm4ocy5jaGlsZCx7bW9kZTpkLm1vZGUsY2hpbGRyZW46ZC5jaGlsZHJlbn0pKS5yZWY9Yy5yZWYsYy5jaGlsZD1zLHMucmV0dXJuPWMscztjYXNlIDIyOnJldHVybiBpayhlLHQsbix0LnBlbmRpbmdQcm9wcyk7Y2FzZSAyNDpyZXR1cm4gclcodCkscj1yWShyMCksbnVsbD09PWU/KG51bGw9PT0obz1vZSgpKSYmKG89bEwsYT1yMSgpLG8ucG9vbGVkQ2FjaGU9YSxhLnJlZkNvdW50KyssbnVsbCE9PWEmJihvLnBvb2xlZENhY2hlTGFuZXN8PW4pLG89YSksdC5tZW1vaXplZFN0YXRlPXtwYXJlbnQ6cixjYWNoZTpvfSxvdyh0KSxyVSh0LHIwLG8pKTooMCE9KGUubGFuZXMmbikmJihvQyhlLHQpLG9CKHQsbnVsbCxudWxsLG4pLG9PKCkpLG89ZS5tZW1vaXplZFN0YXRlLGE9dC5tZW1vaXplZFN0YXRlLG8ucGFyZW50IT09cj8obz17cGFyZW50OnIsY2FjaGU6cn0sdC5tZW1vaXplZFN0YXRlPW8sMD09PXQubGFuZXMmJih0Lm1lbW9pemVkU3RhdGU9dC51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9byksclUodCxyMCxyKSk6KHJVKHQscjAscj1hLmNhY2hlKSxyIT09by5jYWNoZSYmckgodCxbcjBdLG4sITApKSksaXgoZSx0LHQucGVuZGluZ1Byb3BzLmNoaWxkcmVuLG4pLHQuY2hpbGQ7Y2FzZSAyOTp0aHJvdyB0LnBlbmRpbmdQcm9wc310aHJvdyBFcnJvcihsKDE1Nix0LnRhZykpfWZ1bmN0aW9uIGlZKGUpe2UuZmxhZ3N8PTR9ZnVuY3Rpb24gaUsoZSx0LG4scixvKXtpZigodD0wIT0oMzImZS5tb2RlKSkmJih0PSExKSx0KXtpZihlLmZsYWdzfD0weDEwMDAwMDAsKDB4MTNmZmZmNDAmbyk9PT1vKWlmKGUuc3RhdGVOb2RlLmNvbXBsZXRlKWUuZmxhZ3N8PTgxOTI7ZWxzZSBpZihzcCgpKWUuZmxhZ3N8PTgxOTI7ZWxzZSB0aHJvdyBvdT1vaSxvb31lbHNlIGUuZmxhZ3MmPS0weDEwMDAwMDF9ZnVuY3Rpb24gaVgoZSx0KXtpZihcInN0eWxlc2hlZXRcIiE9PXQudHlwZXx8MCE9KDQmdC5zdGF0ZS5sb2FkaW5nKSllLmZsYWdzJj0tMHgxMDAwMDAxO2Vsc2UgaWYoZS5mbGFnc3w9MHgxMDAwMDAwLCFjMSh0KSlpZihzcCgpKWUuZmxhZ3N8PTgxOTI7ZWxzZSB0aHJvdyBvdT1vaSxvb31mdW5jdGlvbiBpRyhlLHQpe251bGwhPT10JiYoZS5mbGFnc3w9NCksMTYzODQmZS5mbGFncyYmKHQ9MjIhPT1lLnRhZz9lXygpOjB4MjAwMDAwMDAsZS5sYW5lc3w9dCxsWHw9dCl9ZnVuY3Rpb24gaVEoZSx0KXtpZighcmopc3dpdGNoKGUudGFpbE1vZGUpe2Nhc2VcImhpZGRlblwiOnQ9ZS50YWlsO2Zvcih2YXIgbj1udWxsO251bGwhPT10OyludWxsIT09dC5hbHRlcm5hdGUmJihuPXQpLHQ9dC5zaWJsaW5nO251bGw9PT1uP2UudGFpbD1udWxsOm4uc2libGluZz1udWxsO2JyZWFrO2Nhc2VcImNvbGxhcHNlZFwiOm49ZS50YWlsO2Zvcih2YXIgcj1udWxsO251bGwhPT1uOyludWxsIT09bi5hbHRlcm5hdGUmJihyPW4pLG49bi5zaWJsaW5nO251bGw9PT1yP3R8fG51bGw9PT1lLnRhaWw/ZS50YWlsPW51bGw6ZS50YWlsLnNpYmxpbmc9bnVsbDpyLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gaUooZSl7dmFyIHQ9bnVsbCE9PWUuYWx0ZXJuYXRlJiZlLmFsdGVybmF0ZS5jaGlsZD09PWUuY2hpbGQsbj0wLHI9MDtpZih0KWZvcih2YXIgbz1lLmNoaWxkO251bGwhPT1vOylufD1vLmxhbmVzfG8uY2hpbGRMYW5lcyxyfD0weDNlMDAwMDAmby5zdWJ0cmVlRmxhZ3Mscnw9MHgzZTAwMDAwJm8uZmxhZ3Msby5yZXR1cm49ZSxvPW8uc2libGluZztlbHNlIGZvcihvPWUuY2hpbGQ7bnVsbCE9PW87KW58PW8ubGFuZXN8by5jaGlsZExhbmVzLHJ8PW8uc3VidHJlZUZsYWdzLHJ8PW8uZmxhZ3Msby5yZXR1cm49ZSxvPW8uc2libGluZztyZXR1cm4gZS5zdWJ0cmVlRmxhZ3N8PXIsZS5jaGlsZExhbmVzPW4sdH1mdW5jdGlvbiBpMChlLHQpe3N3aXRjaChyQyh0KSx0LnRhZyl7Y2FzZSAzOnJGKHIwKSxWKCk7YnJlYWs7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpXKHQpO2JyZWFrO2Nhc2UgNDpWKCk7YnJlYWs7Y2FzZSAzMTpudWxsIT09dC5tZW1vaXplZFN0YXRlJiZvSCh0KTticmVhaztjYXNlIDEzOm9IKHQpO2JyZWFrO2Nhc2UgMTk6UihvVik7YnJlYWs7Y2FzZSAxMDpyRih0LnR5cGUpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpvSCh0KSxvTigpLG51bGwhPT1lJiZSKHI3KTticmVhaztjYXNlIDI0OnJGKHIwKX19ZnVuY3Rpb24gaTEoZSx0KXt0cnl7dmFyIG49dC51cGRhdGVRdWV1ZSxyPW51bGwhPT1uP24ubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1yKXt2YXIgbz1yLm5leHQ7bj1vO2Rve2lmKChuLnRhZyZlKT09PWUpe3I9dm9pZCAwO3ZhciBhPW4uY3JlYXRlO24uaW5zdC5kZXN0cm95PXI9YSgpfW49bi5uZXh0fXdoaWxlKG4hPT1vKX19Y2F0Y2goZSl7c1AodCx0LnJldHVybixlKX19ZnVuY3Rpb24gaTIoZSx0LG4pe3RyeXt2YXIgcj10LnVwZGF0ZVF1ZXVlLG89bnVsbCE9PXI/ci5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PW8pe3ZhciBhPW8ubmV4dDtyPWE7ZG97aWYoKHIudGFnJmUpPT09ZSl7dmFyIGk9ci5pbnN0LGw9aS5kZXN0cm95O2lmKHZvaWQgMCE9PWwpe2kuZGVzdHJveT12b2lkIDAsbz10O3RyeXtsKCl9Y2F0Y2goZSl7c1AobyxuLGUpfX19cj1yLm5leHR9d2hpbGUociE9PWEpfX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfX1mdW5jdGlvbiBpNChlKXt2YXIgdD1lLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT10KXt2YXIgbj1lLnN0YXRlTm9kZTt0cnl7b0kodCxuKX1jYXRjaCh0KXtzUChlLGUucmV0dXJuLHQpfX19ZnVuY3Rpb24gaTUoZSx0LG4pe24ucHJvcHM9aWMoZS50eXBlLGUubWVtb2l6ZWRQcm9wcyksbi5zdGF0ZT1lLm1lbW9pemVkU3RhdGU7dHJ5e24uY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChuKXtzUChlLHQsbil9fWZ1bmN0aW9uIGkzKGUsdCl7dHJ5e3ZhciBuPWUucmVmO2lmKG51bGwhPT1uKXtzd2l0Y2goZS50YWcpe2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6dmFyIHI9ZS5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDpyPWUuc3RhdGVOb2RlfVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZS5yZWZDbGVhbnVwPW4ocik6bi5jdXJyZW50PXJ9fWNhdGNoKG4pe3NQKGUsdCxuKX19ZnVuY3Rpb24gaTYoZSx0KXt2YXIgbj1lLnJlZixyPWUucmVmQ2xlYW51cDtpZihudWxsIT09bilpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiByKXRyeXtyKCl9Y2F0Y2gobil7c1AoZSx0LG4pfWZpbmFsbHl7ZS5yZWZDbGVhbnVwPW51bGwsbnVsbCE9KGU9ZS5hbHRlcm5hdGUpJiYoZS5yZWZDbGVhbnVwPW51bGwpfWVsc2UgaWYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbil0cnl7bihudWxsKX1jYXRjaChuKXtzUChlLHQsbil9ZWxzZSBuLmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBpOShlKXt2YXIgdD1lLnR5cGUsbj1lLm1lbW9pemVkUHJvcHMscj1lLnN0YXRlTm9kZTt0cnl7c3dpdGNoKHQpe2Nhc2VcImJ1dHRvblwiOmNhc2VcImlucHV0XCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwidGV4dGFyZWFcIjpuLmF1dG9Gb2N1cyYmci5mb2N1cygpO2JyZWFrO2Nhc2VcImltZ1wiOm4uc3JjP3Iuc3JjPW4uc3JjOm4uc3JjU2V0JiYoci5zcmNzZXQ9bi5zcmNTZXQpfX1jYXRjaCh0KXtzUChlLGUucmV0dXJuLHQpfX1mdW5jdGlvbiBpOChlLHQsbil7dHJ5e3ZhciByPWUuc3RhdGVOb2RlOyhmdW5jdGlvbihlLHQsbixyKXtzd2l0Y2godCl7Y2FzZVwiZGl2XCI6Y2FzZVwic3BhblwiOmNhc2VcInN2Z1wiOmNhc2VcInBhdGhcIjpjYXNlXCJhXCI6Y2FzZVwiZ1wiOmNhc2VcInBcIjpjYXNlXCJsaVwiOmJyZWFrO2Nhc2VcImlucHV0XCI6dmFyIG89bnVsbCxhPW51bGwsaT1udWxsLHM9bnVsbCxjPW51bGwsdT1udWxsLGQ9bnVsbDtmb3IoaCBpbiBuKXt2YXIgZj1uW2hdO2lmKG4uaGFzT3duUHJvcGVydHkoaCkmJm51bGwhPWYpc3dpdGNoKGgpe2Nhc2VcImNoZWNrZWRcIjpjYXNlXCJ2YWx1ZVwiOmJyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOmM9ZjtkZWZhdWx0OnIuaGFzT3duUHJvcGVydHkoaCl8fGNzKGUsdCxoLG51bGwscixmKX19Zm9yKHZhciBwIGluIHIpe3ZhciBoPXJbcF07aWYoZj1uW3BdLHIuaGFzT3duUHJvcGVydHkocCkmJihudWxsIT1ofHxudWxsIT1mKSlzd2l0Y2gocCl7Y2FzZVwidHlwZVwiOmE9aDticmVhaztjYXNlXCJuYW1lXCI6bz1oO2JyZWFrO2Nhc2VcImNoZWNrZWRcIjp1PWg7YnJlYWs7Y2FzZVwiZGVmYXVsdENoZWNrZWRcIjpkPWg7YnJlYWs7Y2FzZVwidmFsdWVcIjppPWg7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6cz1oO2JyZWFrO2Nhc2VcImNoaWxkcmVuXCI6Y2FzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjppZihudWxsIT1oKXRocm93IEVycm9yKGwoMTM3LHQpKTticmVhaztkZWZhdWx0OmghPT1mJiZjcyhlLHQscCxoLHIsZil9fXRuKGUsaSxzLGMsdSxkLGEsbyk7cmV0dXJuO2Nhc2VcInNlbGVjdFwiOmZvcihhIGluIGg9aT1zPXA9bnVsbCxuKWlmKGM9blthXSxuLmhhc093blByb3BlcnR5KGEpJiZudWxsIT1jKXN3aXRjaChhKXtjYXNlXCJ2YWx1ZVwiOmJyZWFrO2Nhc2VcIm11bHRpcGxlXCI6aD1jO2RlZmF1bHQ6ci5oYXNPd25Qcm9wZXJ0eShhKXx8Y3MoZSx0LGEsbnVsbCxyLGMpfWZvcihvIGluIHIpaWYoYT1yW29dLGM9bltvXSxyLmhhc093blByb3BlcnR5KG8pJiYobnVsbCE9YXx8bnVsbCE9Yykpc3dpdGNoKG8pe2Nhc2VcInZhbHVlXCI6cD1hO2JyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOnM9YTticmVhaztjYXNlXCJtdWx0aXBsZVwiOmk9YTtkZWZhdWx0OmEhPT1jJiZjcyhlLHQsbyxhLHIsYyl9dD1zLG49aSxyPWgsbnVsbCE9cD90YShlLCEhbixwLCExKTohIXIhPSEhbiYmKG51bGwhPXQ/dGEoZSwhIW4sdCwhMCk6dGEoZSwhIW4sbj9bXTpcIlwiLCExKSk7cmV0dXJuO2Nhc2VcInRleHRhcmVhXCI6Zm9yKHMgaW4gaD1wPW51bGwsbilpZihvPW5bc10sbi5oYXNPd25Qcm9wZXJ0eShzKSYmbnVsbCE9byYmIXIuaGFzT3duUHJvcGVydHkocykpc3dpdGNoKHMpe2Nhc2VcInZhbHVlXCI6Y2FzZVwiY2hpbGRyZW5cIjpicmVhaztkZWZhdWx0OmNzKGUsdCxzLG51bGwscixvKX1mb3IoaSBpbiByKWlmKG89cltpXSxhPW5baV0sci5oYXNPd25Qcm9wZXJ0eShpKSYmKG51bGwhPW98fG51bGwhPWEpKXN3aXRjaChpKXtjYXNlXCJ2YWx1ZVwiOnA9bzticmVhaztjYXNlXCJkZWZhdWx0VmFsdWVcIjpoPW87YnJlYWs7Y2FzZVwiY2hpbGRyZW5cIjpicmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPW8pdGhyb3cgRXJyb3IobCg5MSkpO2JyZWFrO2RlZmF1bHQ6byE9PWEmJmNzKGUsdCxpLG8scixhKX10aShlLHAsaCk7cmV0dXJuO2Nhc2VcIm9wdGlvblwiOmZvcih2YXIgbSBpbiBuKXA9blttXSxuLmhhc093blByb3BlcnR5KG0pJiZudWxsIT1wJiYhci5oYXNPd25Qcm9wZXJ0eShtKSYmKFwic2VsZWN0ZWRcIj09PW0/ZS5zZWxlY3RlZD0hMTpjcyhlLHQsbSxudWxsLHIscCkpO2ZvcihjIGluIHIpcD1yW2NdLGg9bltjXSxyLmhhc093blByb3BlcnR5KGMpJiZwIT09aCYmKG51bGwhPXB8fG51bGwhPWgpJiYoXCJzZWxlY3RlZFwiPT09Yz9lLnNlbGVjdGVkPXAmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHAmJlwic3ltYm9sXCIhPXR5cGVvZiBwOmNzKGUsdCxjLHAscixoKSk7cmV0dXJuO2Nhc2VcImltZ1wiOmNhc2VcImxpbmtcIjpjYXNlXCJhcmVhXCI6Y2FzZVwiYmFzZVwiOmNhc2VcImJyXCI6Y2FzZVwiY29sXCI6Y2FzZVwiZW1iZWRcIjpjYXNlXCJoclwiOmNhc2VcImtleWdlblwiOmNhc2VcIm1ldGFcIjpjYXNlXCJwYXJhbVwiOmNhc2VcInNvdXJjZVwiOmNhc2VcInRyYWNrXCI6Y2FzZVwid2JyXCI6Y2FzZVwibWVudWl0ZW1cIjpmb3IodmFyIGcgaW4gbilwPW5bZ10sbi5oYXNPd25Qcm9wZXJ0eShnKSYmbnVsbCE9cCYmIXIuaGFzT3duUHJvcGVydHkoZykmJmNzKGUsdCxnLG51bGwscixwKTtmb3IodSBpbiByKWlmKHA9clt1XSxoPW5bdV0sci5oYXNPd25Qcm9wZXJ0eSh1KSYmcCE9PWgmJihudWxsIT1wfHxudWxsIT1oKSlzd2l0Y2godSl7Y2FzZVwiY2hpbGRyZW5cIjpjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXApdGhyb3cgRXJyb3IobCgxMzcsdCkpO2JyZWFrO2RlZmF1bHQ6Y3MoZSx0LHUscCxyLGgpfXJldHVybjtkZWZhdWx0OmlmKHRmKHQpKXtmb3IodmFyIHkgaW4gbilwPW5beV0sbi5oYXNPd25Qcm9wZXJ0eSh5KSYmdm9pZCAwIT09cCYmIXIuaGFzT3duUHJvcGVydHkoeSkmJmNjKGUsdCx5LHZvaWQgMCxyLHApO2ZvcihkIGluIHIpcD1yW2RdLGg9bltkXSxyLmhhc093blByb3BlcnR5KGQpJiZwIT09aCYmKHZvaWQgMCE9PXB8fHZvaWQgMCE9PWgpJiZjYyhlLHQsZCxwLHIsaCk7cmV0dXJufX1mb3IodmFyIHYgaW4gbilwPW5bdl0sbi5oYXNPd25Qcm9wZXJ0eSh2KSYmbnVsbCE9cCYmIXIuaGFzT3duUHJvcGVydHkodikmJmNzKGUsdCx2LG51bGwscixwKTtmb3IoZiBpbiByKXA9cltmXSxoPW5bZl0sci5oYXNPd25Qcm9wZXJ0eShmKSYmcCE9PWgmJihudWxsIT1wfHxudWxsIT1oKSYmY3MoZSx0LGYscCxyLGgpfSkocixlLnR5cGUsbix0KSxyW2VMXT10fWNhdGNoKHQpe3NQKGUsZS5yZXR1cm4sdCl9fWZ1bmN0aW9uIGk3KGUpe3JldHVybiA1PT09ZS50YWd8fDM9PT1lLnRhZ3x8MjY9PT1lLnRhZ3x8Mjc9PT1lLnRhZyYmY0MoZS50eXBlKXx8ND09PWUudGFnfWZ1bmN0aW9uIGxlKGUpe2U6Zm9yKDs7KXtmb3IoO251bGw9PT1lLnNpYmxpbmc7KXtpZihudWxsPT09ZS5yZXR1cm58fGk3KGUucmV0dXJuKSlyZXR1cm4gbnVsbDtlPWUucmV0dXJufWZvcihlLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nOzUhPT1lLnRhZyYmNiE9PWUudGFnJiYxOCE9PWUudGFnOyl7aWYoMjc9PT1lLnRhZyYmY0MoZS50eXBlKXx8MiZlLmZsYWdzfHxudWxsPT09ZS5jaGlsZHx8ND09PWUudGFnKWNvbnRpbnVlIGU7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGR9aWYoISgyJmUuZmxhZ3MpKXJldHVybiBlLnN0YXRlTm9kZX19ZnVuY3Rpb24gbHQoZSx0LG4pe3ZhciByPWUudGFnO2lmKDU9PT1yfHw2PT09cillPWUuc3RhdGVOb2RlLHQ/bi5pbnNlcnRCZWZvcmUoZSx0KTpuLmFwcGVuZENoaWxkKGUpO2Vsc2UgaWYoNCE9PXImJigyNz09PXImJmNDKGUudHlwZSkmJihuPWUuc3RhdGVOb2RlKSxudWxsIT09KGU9ZS5jaGlsZCkpKWZvcihsdChlLHQsbiksZT1lLnNpYmxpbmc7bnVsbCE9PWU7KWx0KGUsdCxuKSxlPWUuc2libGluZ31mdW5jdGlvbiBsbihlKXt2YXIgdD1lLnN0YXRlTm9kZSxuPWUubWVtb2l6ZWRQcm9wczt0cnl7Zm9yKHZhciByPWUudHlwZSxvPXQuYXR0cmlidXRlcztvLmxlbmd0aDspdC5yZW1vdmVBdHRyaWJ1dGVOb2RlKG9bMF0pO2N1KHQscixuKSx0W2VEXT1lLHRbZUxdPW59Y2F0Y2godCl7c1AoZSxlLnJldHVybix0KX19dmFyIGxyPSExLGxvPSExLGxhPSExLGxpPVwiZnVuY3Rpb25cIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsbGw9bnVsbDtmdW5jdGlvbiBscyhlLHQsbil7dmFyIHI9bi5mbGFncztzd2l0Y2gobi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6bEEoZSxuKSw0JnImJmkxKDUsbik7YnJlYWs7Y2FzZSAxOmlmKGxBKGUsbiksNCZyKWlmKGU9bi5zdGF0ZU5vZGUsbnVsbD09PXQpdHJ5e2UuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfWVsc2V7dmFyIG89aWMobi50eXBlLHQubWVtb2l6ZWRQcm9wcyk7dD10Lm1lbW9pemVkU3RhdGU7dHJ5e2UuY29tcG9uZW50RGlkVXBkYXRlKG8sdCxlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfX02NCZyJiZpNChuKSw1MTImciYmaTMobixuLnJldHVybik7YnJlYWs7Y2FzZSAzOmlmKGxBKGUsbiksNjQmciYmbnVsbCE9PShlPW4udXBkYXRlUXVldWUpKXtpZih0PW51bGwsbnVsbCE9PW4uY2hpbGQpc3dpdGNoKG4uY2hpbGQudGFnKXtjYXNlIDI3OmNhc2UgNTpjYXNlIDE6dD1uLmNoaWxkLnN0YXRlTm9kZX10cnl7b0koZSx0KX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfX1icmVhaztjYXNlIDI3Om51bGw9PT10JiY0JnImJmxuKG4pO2Nhc2UgMjY6Y2FzZSA1OmxBKGUsbiksbnVsbD09PXQmJjQmciYmaTkobiksNTEyJnImJmkzKG4sbi5yZXR1cm4pO2JyZWFrO2Nhc2UgMTI6ZGVmYXVsdDpsQShlLG4pO2JyZWFrO2Nhc2UgMzE6bEEoZSxuKSw0JnImJmxwKGUsbik7YnJlYWs7Y2FzZSAxMzpsQShlLG4pLDQmciYmbGgoZSxuKSw2NCZyJiZudWxsIT09KGU9bi5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PShlPWUuZGVoeWRyYXRlZCkmJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5vd25lckRvY3VtZW50O2lmKFwiJH5cIj09PWUuZGF0YSllLl9yZWFjdFJldHJ5PXQ7ZWxzZSBpZihcIiQ/XCIhPT1lLmRhdGF8fFwibG9hZGluZ1wiIT09bi5yZWFkeVN0YXRlKXQoKTtlbHNle3ZhciByPWZ1bmN0aW9uKCl7dCgpLG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIkRPTUNvbnRlbnRMb2FkZWRcIixyKX07bi5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLHIpLGUuX3JlYWN0UmV0cnk9cn19KGUsbj1zRC5iaW5kKG51bGwsbikpO2JyZWFrO2Nhc2UgMjI6aWYoIShyPW51bGwhPT1uLm1lbW9pemVkU3RhdGV8fGxyKSl7dD1udWxsIT09dCYmbnVsbCE9PXQubWVtb2l6ZWRTdGF0ZXx8bG8sbz1scjt2YXIgYT1sbztscj1yLChsbz10KSYmIWE/ZnVuY3Rpb24gZSh0LG4scil7Zm9yKHI9ciYmMCE9KDg3NzImbi5zdWJ0cmVlRmxhZ3MpLG49bi5jaGlsZDtudWxsIT09bjspe3ZhciBvPW4uYWx0ZXJuYXRlLGE9dCxpPW4sbD1pLmZsYWdzO3N3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTplKGEsaSxyKSxpMSg0LGkpO2JyZWFrO2Nhc2UgMTppZihlKGEsaSxyKSxcImZ1bmN0aW9uXCI9PXR5cGVvZihhPShvPWkpLnN0YXRlTm9kZSkuY29tcG9uZW50RGlkTW91bnQpdHJ5e2EuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChlKXtzUChvLG8ucmV0dXJuLGUpfWlmKG51bGwhPT0oYT0obz1pKS51cGRhdGVRdWV1ZSkpe3ZhciBzPW8uc3RhdGVOb2RlO3RyeXt2YXIgYz1hLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M7aWYobnVsbCE9PWMpZm9yKGEuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1udWxsLGE9MDthPGMubGVuZ3RoO2ErKylvUChjW2FdLHMpfWNhdGNoKGUpe3NQKG8sby5yZXR1cm4sZSl9fXImJjY0JmwmJmk0KGkpLGkzKGksaS5yZXR1cm4pO2JyZWFrO2Nhc2UgMjc6bG4oaSk7Y2FzZSAyNjpjYXNlIDU6ZShhLGksciksciYmbnVsbD09PW8mJjQmbCYmaTkoaSksaTMoaSxpLnJldHVybik7YnJlYWs7Y2FzZSAxMjpkZWZhdWx0OmUoYSxpLHIpO2JyZWFrO2Nhc2UgMzE6ZShhLGksciksciYmNCZsJiZscChhLGkpO2JyZWFrO2Nhc2UgMTM6ZShhLGksciksciYmNCZsJiZsaChhLGkpO2JyZWFrO2Nhc2UgMjI6bnVsbD09PWkubWVtb2l6ZWRTdGF0ZSYmZShhLGksciksaTMoaSxpLnJldHVybik7Y2FzZSAzMDp9bj1uLnNpYmxpbmd9fShlLG4sMCE9KDg3NzImbi5zdWJ0cmVlRmxhZ3MpKTpsQShlLG4pLGxyPW8sbG89YX1jYXNlIDMwOn19dmFyIGxjPW51bGwsbHU9ITE7ZnVuY3Rpb24gbGQoZSx0LG4pe2ZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KWxmKGUsdCxuKSxuPW4uc2libGluZ31mdW5jdGlvbiBsZihlLHQsbil7aWYoZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtlcC5vbkNvbW1pdEZpYmVyVW5tb3VudChlZixuKX1jYXRjaChlKXt9c3dpdGNoKG4udGFnKXtjYXNlIDI2OmxvfHxpNihuLHQpLGxkKGUsdCxuKSxuLm1lbW9pemVkU3RhdGU/bi5tZW1vaXplZFN0YXRlLmNvdW50LS06bi5zdGF0ZU5vZGUmJihuPW4uc3RhdGVOb2RlKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pO2JyZWFrO2Nhc2UgMjc6bG98fGk2KG4sdCk7dmFyIHI9bGMsbz1sdTtjQyhuLnR5cGUpJiYobGM9bi5zdGF0ZU5vZGUsbHU9ITEpLGxkKGUsdCxuKSxjRChuLnN0YXRlTm9kZSksbGM9cixsdT1vO2JyZWFrO2Nhc2UgNTpsb3x8aTYobix0KTtjYXNlIDY6aWYocj1sYyxvPWx1LGxjPW51bGwsbGQoZSx0LG4pLGxjPXIsbHU9byxudWxsIT09bGMpaWYobHUpdHJ5eyg5PT09bGMubm9kZVR5cGU/bGMuYm9keTpcIkhUTUxcIj09PWxjLm5vZGVOYW1lP2xjLm93bmVyRG9jdW1lbnQuYm9keTpsYykucmVtb3ZlQ2hpbGQobi5zdGF0ZU5vZGUpfWNhdGNoKGUpe3NQKG4sdCxlKX1lbHNlIHRyeXtsYy5yZW1vdmVDaGlsZChuLnN0YXRlTm9kZSl9Y2F0Y2goZSl7c1Aobix0LGUpfWJyZWFrO2Nhc2UgMTg6bnVsbCE9PWxjJiYobHU/KGNfKDk9PT0oZT1sYykubm9kZVR5cGU/ZS5ib2R5OlwiSFRNTFwiPT09ZS5ub2RlTmFtZT9lLm93bmVyRG9jdW1lbnQuYm9keTplLG4uc3RhdGVOb2RlKSx1TyhlKSk6Y18obGMsbi5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDQ6cj1sYyxvPWx1LGxjPW4uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sbHU9ITAsbGQoZSx0LG4pLGxjPXIsbHU9bzticmVhaztjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6bG98fGkyKDIsbix0KSxsb3x8aTIoNCxuLHQpLGxkKGUsdCxuKTticmVhaztjYXNlIDE6bG98fChpNihuLHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mKHI9bi5zdGF0ZU5vZGUpLmNvbXBvbmVudFdpbGxVbm1vdW50JiZpNShuLHQscikpLGxkKGUsdCxuKTticmVhaztjYXNlIDIxOmRlZmF1bHQ6bGQoZSx0LG4pO2JyZWFrO2Nhc2UgMjI6bG89KHI9bG8pfHxudWxsIT09bi5tZW1vaXplZFN0YXRlLGxkKGUsdCxuKSxsbz1yfX1mdW5jdGlvbiBscChlLHQpe2lmKG51bGw9PT10Lm1lbW9pemVkU3RhdGUmJm51bGwhPT0oZT10LmFsdGVybmF0ZSkmJm51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpKXtlPWUuZGVoeWRyYXRlZDt0cnl7dU8oZSl9Y2F0Y2goZSl7c1AodCx0LnJldHVybixlKX19fWZ1bmN0aW9uIGxoKGUsdCl7aWYobnVsbD09PXQubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PShlPXQuYWx0ZXJuYXRlKSYmbnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT0oZT1lLmRlaHlkcmF0ZWQpKXRyeXt1TyhlKX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfX1mdW5jdGlvbiBsbShlLHQpe3ZhciBuPWZ1bmN0aW9uKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAzMTpjYXNlIDEzOmNhc2UgMTk6dmFyIHQ9ZS5zdGF0ZU5vZGU7cmV0dXJuIG51bGw9PT10JiYodD1lLnN0YXRlTm9kZT1uZXcgbGkpLHQ7Y2FzZSAyMjpyZXR1cm4gbnVsbD09PSh0PShlPWUuc3RhdGVOb2RlKS5fcmV0cnlDYWNoZSkmJih0PWUuX3JldHJ5Q2FjaGU9bmV3IGxpKSx0O2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0MzUsZS50YWcpKX19KGUpO3QuZm9yRWFjaChmdW5jdGlvbih0KXtpZighbi5oYXModCkpe24uYWRkKHQpO3ZhciByPXNMLmJpbmQobnVsbCxlLHQpO3QudGhlbihyLHIpfX0pfWZ1bmN0aW9uIGxnKGUsdCl7dmFyIG49dC5kZWxldGlvbnM7aWYobnVsbCE9PW4pZm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBvPW5bcl0sYT1lLGk9dCxzPWk7ZTpmb3IoO251bGwhPT1zOyl7c3dpdGNoKHMudGFnKXtjYXNlIDI3OmlmKGNDKHMudHlwZSkpe2xjPXMuc3RhdGVOb2RlLGx1PSExO2JyZWFrIGV9YnJlYWs7Y2FzZSA1OmxjPXMuc3RhdGVOb2RlLGx1PSExO2JyZWFrIGU7Y2FzZSAzOmNhc2UgNDpsYz1zLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGx1PSEwO2JyZWFrIGV9cz1zLnJldHVybn1pZihudWxsPT09bGMpdGhyb3cgRXJyb3IobCgxNjApKTtsZihhLGksbyksbGM9bnVsbCxsdT0hMSxudWxsIT09KGE9by5hbHRlcm5hdGUpJiYoYS5yZXR1cm49bnVsbCksby5yZXR1cm49bnVsbH1pZigxMzg3OCZ0LnN1YnRyZWVGbGFncylmb3IodD10LmNoaWxkO251bGwhPT10Oylsdih0LGUpLHQ9dC5zaWJsaW5nfXZhciBseT1udWxsO2Z1bmN0aW9uIGx2KGUsdCl7dmFyIG49ZS5hbHRlcm5hdGUscj1lLmZsYWdzO3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmxnKHQsZSksbGIoZSksNCZyJiYoaTIoMyxlLGUucmV0dXJuKSxpMSgzLGUpLGkyKDUsZSxlLnJldHVybikpO2JyZWFrO2Nhc2UgMTpsZyh0LGUpLGxiKGUpLDUxMiZyJiYobG98fG51bGw9PT1ufHxpNihuLG4ucmV0dXJuKSksNjQmciYmbHImJm51bGwhPT0oZT1lLnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PShyPWUuY2FsbGJhY2tzKSYmKG49ZS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzLGUuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1udWxsPT09bj9yOm4uY29uY2F0KHIpKTticmVhaztjYXNlIDI2OnZhciBvPWx5O2lmKGxnKHQsZSksbGIoZSksNTEyJnImJihsb3x8bnVsbD09PW58fGk2KG4sbi5yZXR1cm4pKSw0JnIpe3ZhciBhPW51bGwhPT1uP24ubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKHI9ZS5tZW1vaXplZFN0YXRlLG51bGw9PT1uKWlmKG51bGw9PT1yKWlmKG51bGw9PT1lLnN0YXRlTm9kZSl7ZTp7cj1lLnR5cGUsbj1lLm1lbW9pemVkUHJvcHMsbz1vLm93bmVyRG9jdW1lbnR8fG87dDpzd2l0Y2gocil7Y2FzZVwidGl0bGVcIjooIShhPW8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJ0aXRsZVwiKVswXSl8fGFbZUZdfHxhW2VEXXx8XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPT09YS5uYW1lc3BhY2VVUkl8fGEuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpJiYoYT1vLmNyZWF0ZUVsZW1lbnQociksby5oZWFkLmluc2VydEJlZm9yZShhLG8ucXVlcnlTZWxlY3RvcihcImhlYWQgPiB0aXRsZVwiKSkpLGN1KGEscixuKSxhW2VEXT1lLGVZKGEpLHI9YTticmVhayBlO2Nhc2VcImxpbmtcIjp2YXIgaT1jSihcImxpbmtcIixcImhyZWZcIixvKS5nZXQocisobi5ocmVmfHxcIlwiKSk7aWYoaSl7Zm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKyspaWYoKGE9aVtzXSkuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKT09PShudWxsPT1uLmhyZWZ8fFwiXCI9PT1uLmhyZWY/bnVsbDpuLmhyZWYpJiZhLmdldEF0dHJpYnV0ZShcInJlbFwiKT09PShudWxsPT1uLnJlbD9udWxsOm4ucmVsKSYmYS5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKT09PShudWxsPT1uLnRpdGxlP251bGw6bi50aXRsZSkmJmEuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIik9PT0obnVsbD09bi5jcm9zc09yaWdpbj9udWxsOm4uY3Jvc3NPcmlnaW4pKXtpLnNwbGljZShzLDEpO2JyZWFrIHR9fWN1KGE9by5jcmVhdGVFbGVtZW50KHIpLHIsbiksby5oZWFkLmFwcGVuZENoaWxkKGEpO2JyZWFrO2Nhc2VcIm1ldGFcIjppZihpPWNKKFwibWV0YVwiLFwiY29udGVudFwiLG8pLmdldChyKyhuLmNvbnRlbnR8fFwiXCIpKSl7Zm9yKHM9MDtzPGkubGVuZ3RoO3MrKylpZigoYT1pW3NdKS5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpPT09KG51bGw9PW4uY29udGVudD9udWxsOlwiXCIrbi5jb250ZW50KSYmYS5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpPT09KG51bGw9PW4ubmFtZT9udWxsOm4ubmFtZSkmJmEuZ2V0QXR0cmlidXRlKFwicHJvcGVydHlcIik9PT0obnVsbD09bi5wcm9wZXJ0eT9udWxsOm4ucHJvcGVydHkpJiZhLmdldEF0dHJpYnV0ZShcImh0dHAtZXF1aXZcIik9PT0obnVsbD09bi5odHRwRXF1aXY/bnVsbDpuLmh0dHBFcXVpdikmJmEuZ2V0QXR0cmlidXRlKFwiY2hhcnNldFwiKT09PShudWxsPT1uLmNoYXJTZXQ/bnVsbDpuLmNoYXJTZXQpKXtpLnNwbGljZShzLDEpO2JyZWFrIHR9fWN1KGE9by5jcmVhdGVFbGVtZW50KHIpLHIsbiksby5oZWFkLmFwcGVuZENoaWxkKGEpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0NjgscikpfWFbZURdPWUsZVkoYSkscj1hfWUuc3RhdGVOb2RlPXJ9ZWxzZSBjMChvLGUudHlwZSxlLnN0YXRlTm9kZSk7ZWxzZSBlLnN0YXRlTm9kZT1jWShvLHIsZS5tZW1vaXplZFByb3BzKTtlbHNlIGEhPT1yPyhudWxsPT09YT9udWxsIT09bi5zdGF0ZU5vZGUmJihuPW4uc3RhdGVOb2RlKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4pOmEuY291bnQtLSxudWxsPT09cj9jMChvLGUudHlwZSxlLnN0YXRlTm9kZSk6Y1kobyxyLGUubWVtb2l6ZWRQcm9wcykpOm51bGw9PT1yJiZudWxsIT09ZS5zdGF0ZU5vZGUmJmk4KGUsZS5tZW1vaXplZFByb3BzLG4ubWVtb2l6ZWRQcm9wcyl9YnJlYWs7Y2FzZSAyNzpsZyh0LGUpLGxiKGUpLDUxMiZyJiYobG98fG51bGw9PT1ufHxpNihuLG4ucmV0dXJuKSksbnVsbCE9PW4mJjQmciYmaTgoZSxlLm1lbW9pemVkUHJvcHMsbi5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6aWYobGcodCxlKSxsYihlKSw1MTImciYmKGxvfHxudWxsPT09bnx8aTYobixuLnJldHVybikpLDMyJmUuZmxhZ3Mpe289ZS5zdGF0ZU5vZGU7dHJ5e3RzKG8sXCJcIil9Y2F0Y2godCl7c1AoZSxlLnJldHVybix0KX19NCZyJiZudWxsIT1lLnN0YXRlTm9kZSYmKG89ZS5tZW1vaXplZFByb3BzLGk4KGUsbyxudWxsIT09bj9uLm1lbW9pemVkUHJvcHM6bykpLDEwMjQmciYmKGxhPSEwKTticmVhaztjYXNlIDY6aWYobGcodCxlKSxsYihlKSw0JnIpe2lmKG51bGw9PT1lLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihsKDE2MikpO3I9ZS5tZW1vaXplZFByb3BzLG49ZS5zdGF0ZU5vZGU7dHJ5e24ubm9kZVZhbHVlPXJ9Y2F0Y2godCl7c1AoZSxlLnJldHVybix0KX19YnJlYWs7Y2FzZSAzOmlmKGNRPW51bGwsbz1seSxseT1jUih0LmNvbnRhaW5lckluZm8pLGxnKHQsZSksbHk9byxsYihlKSw0JnImJm51bGwhPT1uJiZuLm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXRyeXt1Tyh0LmNvbnRhaW5lckluZm8pfWNhdGNoKHQpe3NQKGUsZS5yZXR1cm4sdCl9bGEmJihsYT0hMSxmdW5jdGlvbiBlKHQpe2lmKDEwMjQmdC5zdWJ0cmVlRmxhZ3MpZm9yKHQ9dC5jaGlsZDtudWxsIT09dDspe3ZhciBuPXQ7ZShuKSw1PT09bi50YWcmJjEwMjQmbi5mbGFncyYmbi5zdGF0ZU5vZGUucmVzZXQoKSx0PXQuc2libGluZ319KGUpKTticmVhaztjYXNlIDQ6cj1seSxseT1jUihlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxsZyh0LGUpLGxiKGUpLGx5PXI7YnJlYWs7Y2FzZSAxMjpkZWZhdWx0OmxnKHQsZSksbGIoZSk7YnJlYWs7Y2FzZSAzMTpjYXNlIDE5OmxnKHQsZSksbGIoZSksNCZyJiZudWxsIT09KHI9ZS51cGRhdGVRdWV1ZSkmJihlLnVwZGF0ZVF1ZXVlPW51bGwsbG0oZSxyKSk7YnJlYWs7Y2FzZSAxMzpsZyh0LGUpLGxiKGUpLDgxOTImZS5jaGlsZC5mbGFncyYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSE9KG51bGwhPT1uJiZudWxsIT09bi5tZW1vaXplZFN0YXRlKSYmKGwwPWVyKCkpLDQmciYmbnVsbCE9PShyPWUudXBkYXRlUXVldWUpJiYoZS51cGRhdGVRdWV1ZT1udWxsLGxtKGUscikpO2JyZWFrO2Nhc2UgMjI6bz1udWxsIT09ZS5tZW1vaXplZFN0YXRlO3ZhciBjPW51bGwhPT1uJiZudWxsIT09bi5tZW1vaXplZFN0YXRlLHU9bHIsZD1sbztpZihscj11fHxvLGxvPWR8fGMsbGcodCxlKSxsbz1kLGxyPXUsbGIoZSksODE5MiZyKWU6Zm9yKCh0PWUuc3RhdGVOb2RlKS5fdmlzaWJpbGl0eT1vPy0yJnQuX3Zpc2liaWxpdHk6MXx0Ll92aXNpYmlsaXR5LG8mJihudWxsPT09bnx8Y3x8bHJ8fGxvfHxmdW5jdGlvbiBlKHQpe2Zvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXt2YXIgbj10O3N3aXRjaChuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmkyKDQsbixuLnJldHVybiksZShuKTticmVhaztjYXNlIDE6aTYobixuLnJldHVybik7dmFyIHI9bi5zdGF0ZU5vZGU7XCJmdW5jdGlvblwiPT10eXBlb2Ygci5jb21wb25lbnRXaWxsVW5tb3VudCYmaTUobixuLnJldHVybixyKSxlKG4pO2JyZWFrO2Nhc2UgMjc6Y0Qobi5zdGF0ZU5vZGUpO2Nhc2UgMjY6Y2FzZSA1Omk2KG4sbi5yZXR1cm4pLGUobik7YnJlYWs7Y2FzZSAyMjpudWxsPT09bi5tZW1vaXplZFN0YXRlJiZlKG4pO2JyZWFrO2RlZmF1bHQ6ZShuKX10PXQuc2libGluZ319KGUpKSxuPW51bGwsdD1lOzspe2lmKDU9PT10LnRhZ3x8MjY9PT10LnRhZyl7aWYobnVsbD09PW4pe2M9bj10O3RyeXtpZihhPWMuc3RhdGVOb2RlLG8paT1hLnN0eWxlLFwiZnVuY3Rpb25cIj09dHlwZW9mIGkuc2V0UHJvcGVydHk/aS5zZXRQcm9wZXJ0eShcImRpc3BsYXlcIixcIm5vbmVcIixcImltcG9ydGFudFwiKTppLmRpc3BsYXk9XCJub25lXCI7ZWxzZXtzPWMuc3RhdGVOb2RlO3ZhciBmPWMubWVtb2l6ZWRQcm9wcy5zdHlsZSxwPW51bGwhPWYmJmYuaGFzT3duUHJvcGVydHkoXCJkaXNwbGF5XCIpP2YuZGlzcGxheTpudWxsO3Muc3R5bGUuZGlzcGxheT1udWxsPT1wfHxcImJvb2xlYW5cIj09dHlwZW9mIHA/XCJcIjooXCJcIitwKS50cmltKCl9fWNhdGNoKGUpe3NQKGMsYy5yZXR1cm4sZSl9fX1lbHNlIGlmKDY9PT10LnRhZyl7aWYobnVsbD09PW4pe2M9dDt0cnl7Yy5zdGF0ZU5vZGUubm9kZVZhbHVlPW8/XCJcIjpjLm1lbW9pemVkUHJvcHN9Y2F0Y2goZSl7c1AoYyxjLnJldHVybixlKX19fWVsc2UgaWYoMTg9PT10LnRhZyl7aWYobnVsbD09PW4pe2M9dDt0cnl7dmFyIGg9Yy5zdGF0ZU5vZGU7bz9jayhoLCEwKTpjayhjLnN0YXRlTm9kZSwhMSl9Y2F0Y2goZSl7c1AoYyxjLnJldHVybixlKX19fWVsc2UgaWYoKDIyIT09dC50YWcmJjIzIT09dC50YWd8fG51bGw9PT10Lm1lbW9pemVkU3RhdGV8fHQ9PT1lKSYmbnVsbCE9PXQuY2hpbGQpe3QuY2hpbGQucmV0dXJuPXQsdD10LmNoaWxkO2NvbnRpbnVlfWlmKHQ9PT1lKWJyZWFrO2Zvcig7bnVsbD09PXQuc2libGluZzspe2lmKG51bGw9PT10LnJldHVybnx8dC5yZXR1cm49PT1lKWJyZWFrIGU7bj09PXQmJihuPW51bGwpLHQ9dC5yZXR1cm59bj09PXQmJihuPW51bGwpLHQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9NCZyJiZudWxsIT09KHI9ZS51cGRhdGVRdWV1ZSkmJm51bGwhPT0obj1yLnJldHJ5UXVldWUpJiYoci5yZXRyeVF1ZXVlPW51bGwsbG0oZSxuKSk7Y2FzZSAzMDpjYXNlIDIxOn19ZnVuY3Rpb24gbGIoZSl7dmFyIHQ9ZS5mbGFncztpZigyJnQpe3RyeXtmb3IodmFyIG4scj1lLnJldHVybjtudWxsIT09cjspe2lmKGk3KHIpKXtuPXI7YnJlYWt9cj1yLnJldHVybn1pZihudWxsPT1uKXRocm93IEVycm9yKGwoMTYwKSk7c3dpdGNoKG4udGFnKXtjYXNlIDI3OnZhciBvPW4uc3RhdGVOb2RlLGE9bGUoZSk7bHQoZSxhLG8pO2JyZWFrO2Nhc2UgNTp2YXIgaT1uLnN0YXRlTm9kZTszMiZuLmZsYWdzJiYodHMoaSxcIlwiKSxuLmZsYWdzJj0tMzMpO3ZhciBzPWxlKGUpO2x0KGUscyxpKTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciBjPW4uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sdT1sZShlKTshZnVuY3Rpb24gZSh0LG4scil7dmFyIG89dC50YWc7aWYoNT09PW98fDY9PT1vKXQ9dC5zdGF0ZU5vZGUsbj8oOT09PXIubm9kZVR5cGU/ci5ib2R5OlwiSFRNTFwiPT09ci5ub2RlTmFtZT9yLm93bmVyRG9jdW1lbnQuYm9keTpyKS5pbnNlcnRCZWZvcmUodCxuKTooKG49OT09PXIubm9kZVR5cGU/ci5ib2R5OlwiSFRNTFwiPT09ci5ub2RlTmFtZT9yLm93bmVyRG9jdW1lbnQuYm9keTpyKS5hcHBlbmRDaGlsZCh0KSxudWxsIT0ocj1yLl9yZWFjdFJvb3RDb250YWluZXIpfHxudWxsIT09bi5vbmNsaWNrfHwobi5vbmNsaWNrPXRnKSk7ZWxzZSBpZig0IT09byYmKDI3PT09byYmY0ModC50eXBlKSYmKHI9dC5zdGF0ZU5vZGUsbj1udWxsKSxudWxsIT09KHQ9dC5jaGlsZCkpKWZvcihlKHQsbixyKSx0PXQuc2libGluZztudWxsIT09dDspZSh0LG4sciksdD10LnNpYmxpbmd9KGUsdSxjKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGwoMTYxKSl9fWNhdGNoKHQpe3NQKGUsZS5yZXR1cm4sdCl9ZS5mbGFncyY9LTN9NDA5NiZ0JiYoZS5mbGFncyY9LTQwOTcpfWZ1bmN0aW9uIGxBKGUsdCl7aWYoODc3MiZ0LnN1YnRyZWVGbGFncylmb3IodD10LmNoaWxkO251bGwhPT10OylscyhlLHQuYWx0ZXJuYXRlLHQpLHQ9dC5zaWJsaW5nfWZ1bmN0aW9uIGx4KGUsdCl7dmFyIG49bnVsbDtudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJihuPWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksZT1udWxsLG51bGwhPT10Lm1lbW9pemVkU3RhdGUmJm51bGwhPT10Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYoZT10Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGUhPT1uJiYobnVsbCE9ZSYmZS5yZWZDb3VudCsrLG51bGwhPW4mJnIyKG4pKX1mdW5jdGlvbiBsdyhlLHQpe2U9bnVsbCxudWxsIT09dC5hbHRlcm5hdGUmJihlPXQuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGUpLCh0PXQubWVtb2l6ZWRTdGF0ZS5jYWNoZSkhPT1lJiYodC5yZWZDb3VudCsrLG51bGwhPWUmJnIyKGUpKX1mdW5jdGlvbiBsQyhlLHQsbixyKXtpZigxMDI1NiZ0LnN1YnRyZWVGbGFncylmb3IodD10LmNoaWxkO251bGwhPT10OylsXyhlLHQsbixyKSx0PXQuc2libGluZ31mdW5jdGlvbiBsXyhlLHQsbixyKXt2YXIgbz10LmZsYWdzO3N3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpsQyhlLHQsbixyKSwyMDQ4Jm8mJmkxKDksdCk7YnJlYWs7Y2FzZSAxOmNhc2UgMzE6Y2FzZSAxMzpkZWZhdWx0OmxDKGUsdCxuLHIpO2JyZWFrO2Nhc2UgMzpsQyhlLHQsbixyKSwyMDQ4Jm8mJihlPW51bGwsbnVsbCE9PXQuYWx0ZXJuYXRlJiYoZT10LmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSwodD10Lm1lbW9pemVkU3RhdGUuY2FjaGUpIT09ZSYmKHQucmVmQ291bnQrKyxudWxsIT1lJiZyMihlKSkpO2JyZWFrO2Nhc2UgMTI6aWYoMjA0OCZvKXtsQyhlLHQsbixyKSxlPXQuc3RhdGVOb2RlO3RyeXt2YXIgYT10Lm1lbW9pemVkUHJvcHMsaT1hLmlkLGw9YS5vblBvc3RDb21taXQ7XCJmdW5jdGlvblwiPT10eXBlb2YgbCYmbChpLG51bGw9PT10LmFsdGVybmF0ZT9cIm1vdW50XCI6XCJ1cGRhdGVcIixlLnBhc3NpdmVFZmZlY3REdXJhdGlvbiwtMCl9Y2F0Y2goZSl7c1AodCx0LnJldHVybixlKX19ZWxzZSBsQyhlLHQsbixyKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6YT10LnN0YXRlTm9kZSxpPXQuYWx0ZXJuYXRlLG51bGwhPT10Lm1lbW9pemVkU3RhdGU/MiZhLl92aXNpYmlsaXR5P2xDKGUsdCxuLHIpOmxrKGUsdCk6MiZhLl92aXNpYmlsaXR5P2xDKGUsdCxuLHIpOihhLl92aXNpYmlsaXR5fD0yLGZ1bmN0aW9uIGUodCxuLHIsbyxhKXtmb3IoYT1hJiYwIT0oMTAyNTYmbi5zdWJ0cmVlRmxhZ3MpLG49bi5jaGlsZDtudWxsIT09bjspe3ZhciBpPW4sbD1pLmZsYWdzO3N3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTplKHQsaSxyLG8sYSksaTEoOCxpKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6dmFyIHM9aS5zdGF0ZU5vZGU7bnVsbCE9PWkubWVtb2l6ZWRTdGF0ZT8yJnMuX3Zpc2liaWxpdHk/ZSh0LGkscixvLGEpOmxrKHQsaSk6KHMuX3Zpc2liaWxpdHl8PTIsZSh0LGkscixvLGEpKSxhJiYyMDQ4JmwmJmx4KGkuYWx0ZXJuYXRlLGkpO2JyZWFrO2Nhc2UgMjQ6ZSh0LGkscixvLGEpLGEmJjIwNDgmbCYmbHcoaS5hbHRlcm5hdGUsaSk7YnJlYWs7ZGVmYXVsdDplKHQsaSxyLG8sYSl9bj1uLnNpYmxpbmd9fShlLHQsbixyLDAhPSgxMDI1NiZ0LnN1YnRyZWVGbGFncykpKSwyMDQ4Jm8mJmx4KGksdCk7YnJlYWs7Y2FzZSAyNDpsQyhlLHQsbixyKSwyMDQ4Jm8mJmx3KHQuYWx0ZXJuYXRlLHQpfX1mdW5jdGlvbiBsayhlLHQpe2lmKDEwMjU2JnQuc3VidHJlZUZsYWdzKWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXt2YXIgbj10LHI9bi5mbGFncztzd2l0Y2gobi50YWcpe2Nhc2UgMjI6bGsoZSxuKSwyMDQ4JnImJmx4KG4uYWx0ZXJuYXRlLG4pO2JyZWFrO2Nhc2UgMjQ6bGsoZSxuKSwyMDQ4JnImJmx3KG4uYWx0ZXJuYXRlLG4pO2JyZWFrO2RlZmF1bHQ6bGsoZSxuKX10PXQuc2libGluZ319dmFyIGxFPTgxOTI7ZnVuY3Rpb24gbGooZSl7aWYoZS5zdWJ0cmVlRmxhZ3MmbEUpZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspbFMoZSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gbFMoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDI2OmxqKGUpLGUuZmxhZ3MmbEUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJmZ1bmN0aW9uKGUsdCxuKXtpZihudWxsPT09YzIpdGhyb3cgRXJyb3IobCg0NzUpKTt2YXIgcj1jMjtpZihcInN0eWxlc2hlZXRcIj09PXQudHlwZSYmKFwic3RyaW5nXCIhPXR5cGVvZiBuLm1lZGlhfHwhMSE9PW1hdGNoTWVkaWEobi5tZWRpYSkubWF0Y2hlcykmJjA9PSg0JnQuc3RhdGUubG9hZGluZykpe2lmKG51bGw9PT10Lmluc3RhbmNlKXt2YXIgbz1jcShuLmhyZWYpLGE9ZS5xdWVyeVNlbGVjdG9yKGNIKG8pKTtpZihhKXtudWxsIT09KGU9YS5fcCkmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnRoZW4mJihyLmNvdW50Kysscj1jNC5iaW5kKHIpLGUudGhlbihyLHIpKSx0LnN0YXRlLmxvYWRpbmd8PTQsdC5pbnN0YW5jZT1hLGVZKGEpO3JldHVybn1hPWUub3duZXJEb2N1bWVudHx8ZSxuPWNWKG4pLChvPWNMLmdldChvKSkmJmNYKG4sbyksZVkoYT1hLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpKTt2YXIgaT1hO2kuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtpLm9ubG9hZD1lLGkub25lcnJvcj10fSksY3UoYSxcImxpbmtcIixuKSx0Lmluc3RhbmNlPWF9bnVsbD09PXIuc3R5bGVzaGVldHMmJihyLnN0eWxlc2hlZXRzPW5ldyBNYXApLHIuc3R5bGVzaGVldHMuc2V0KHQsZSksKGU9dC5zdGF0ZS5wcmVsb2FkKSYmMD09KDMmdC5zdGF0ZS5sb2FkaW5nKSYmKHIuY291bnQrKyx0PWM0LmJpbmQociksZS5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLHQpLGUuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsdCkpfX0obHksZS5tZW1vaXplZFN0YXRlLGUubWVtb2l6ZWRQcm9wcyk7YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6bGooZSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgdD1seTtseT1jUihlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxsaihlKSxseT10O2JyZWFrO2Nhc2UgMjI6bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT0odD1lLmFsdGVybmF0ZSkmJm51bGwhPT10Lm1lbW9pemVkU3RhdGU/KHQ9bEUsbEU9MHgxMDAwMDAwLGxqKGUpLGxFPXQpOmxqKGUpKX19ZnVuY3Rpb24gbE8oZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PXQmJm51bGwhPT0oZT10LmNoaWxkKSl7dC5jaGlsZD1udWxsO2RvIHQ9ZS5zaWJsaW5nLGUuc2libGluZz1udWxsLGU9dDt3aGlsZShudWxsIT09ZSl9fWZ1bmN0aW9uIGxCKGUpe3ZhciB0PWUuZGVsZXRpb25zO2lmKDAhPSgxNiZlLmZsYWdzKSl7aWYobnVsbCE9PXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07bGw9cixsSShyLGUpfWxPKGUpfWlmKDEwMjU2JmUuc3VidHJlZUZsYWdzKWZvcihlPWUuY2hpbGQ7bnVsbCE9PWU7KWxQKGUpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIGxQKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpsQihlKSwyMDQ4JmUuZmxhZ3MmJmkyKDksZSxlLnJldHVybik7YnJlYWs7Y2FzZSAzOmNhc2UgMTI6ZGVmYXVsdDpsQihlKTticmVhaztjYXNlIDIyOnZhciB0PWUuc3RhdGVOb2RlO251bGwhPT1lLm1lbW9pemVkU3RhdGUmJjImdC5fdmlzaWJpbGl0eSYmKG51bGw9PT1lLnJldHVybnx8MTMhPT1lLnJldHVybi50YWcpPyh0Ll92aXNpYmlsaXR5Jj0tMyxmdW5jdGlvbiBlKHQpe3ZhciBuPXQuZGVsZXRpb25zO2lmKDAhPSgxNiZ0LmZsYWdzKSl7aWYobnVsbCE9PW4pZm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspe3ZhciBvPW5bcl07bGw9byxsSShvLHQpfWxPKHQpfWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXtzd2l0Y2goKG49dCkudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmkyKDgsbixuLnJldHVybiksZShuKTticmVhaztjYXNlIDIyOjImKHI9bi5zdGF0ZU5vZGUpLl92aXNpYmlsaXR5JiYoci5fdmlzaWJpbGl0eSY9LTMsZShuKSk7YnJlYWs7ZGVmYXVsdDplKG4pfXQ9dC5zaWJsaW5nfX0oZSkpOmxCKGUpfX1mdW5jdGlvbiBsSShlLHQpe2Zvcig7bnVsbCE9PWxsOyl7dmFyIG49bGw7c3dpdGNoKG4udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmkyKDgsbix0KTticmVhaztjYXNlIDIzOmNhc2UgMjI6aWYobnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wpe3ZhciByPW4ubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbDtudWxsIT1yJiZyLnJlZkNvdW50Kyt9YnJlYWs7Y2FzZSAyNDpyMihuLm1lbW9pemVkU3RhdGUuY2FjaGUpfWlmKG51bGwhPT0ocj1uLmNoaWxkKSlyLnJldHVybj1uLGxsPXI7ZWxzZSBmb3Iobj1lO251bGwhPT1sbDspe3ZhciBvPShyPWxsKS5zaWJsaW5nLGE9ci5yZXR1cm47aWYoIWZ1bmN0aW9uIGUodCl7dmFyIG49dC5hbHRlcm5hdGU7bnVsbCE9PW4mJih0LmFsdGVybmF0ZT1udWxsLGUobikpLHQuY2hpbGQ9bnVsbCx0LmRlbGV0aW9ucz1udWxsLHQuc2libGluZz1udWxsLDU9PT10LnRhZyYmbnVsbCE9PShuPXQuc3RhdGVOb2RlKSYmZXEobiksdC5zdGF0ZU5vZGU9bnVsbCx0LnJldHVybj1udWxsLHQuZGVwZW5kZW5jaWVzPW51bGwsdC5tZW1vaXplZFByb3BzPW51bGwsdC5tZW1vaXplZFN0YXRlPW51bGwsdC5wZW5kaW5nUHJvcHM9bnVsbCx0LnN0YXRlTm9kZT1udWxsLHQudXBkYXRlUXVldWU9bnVsbH0ocikscj09PW4pe2xsPW51bGw7YnJlYWt9aWYobnVsbCE9PW8pe28ucmV0dXJuPWEsbGw9bzticmVha31sbD1hfX19dmFyIGx6PXtnZXRDYWNoZUZvclR5cGU6ZnVuY3Rpb24oZSl7dmFyIHQ9clkocjApLG49dC5kYXRhLmdldChlKTtyZXR1cm4gdm9pZCAwPT09biYmKG49ZSgpLHQuZGF0YS5zZXQoZSxuKSksbn0sY2FjaGVTaWduYWw6ZnVuY3Rpb24oKXtyZXR1cm4gclkocjApLmNvbnRyb2xsZXIuc2lnbmFsfX0sbFQ9XCJmdW5jdGlvblwiPT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcCxsRD0wLGxMPW51bGwsbE49bnVsbCxsUj0wLGxNPTAsbFo9bnVsbCxsVT0hMSxsRj0hMSxscT0hMSxsSD0wLGxWPTAsbCQ9MCxsVz0wLGxZPTAsbEs9MCxsWD0wLGxHPW51bGwsbFE9bnVsbCxsSj0hMSxsMD0wLGwxPTEvMCxsMj1udWxsLGw0PW51bGwsbDU9MCxsMz1udWxsLGw2PW51bGwsbDk9MCxsOD0wLGw3PW51bGwsc2U9bnVsbCxzdD0wLHNuPW51bGw7ZnVuY3Rpb24gc3IoKXtyZXR1cm4gMCE9KDImbEQpJiYwIT09bFI/bFImLWxSOm51bGwhPT1JLlQ/c1goKTplSSgpfWZ1bmN0aW9uIHNvKCl7MD09PWxLJiYobEs9MD09KDB4MjAwMDAwMDAmbFIpfHxyaj9lQygpOjB4MjAwMDAwMDApO3ZhciBlPW9SLmN1cnJlbnQ7cmV0dXJuIG51bGwhPT1lJiYoZS5mbGFnc3w9MzIpLGxLfWZ1bmN0aW9uIHNhKGUsdCxuKXsoZT09PWxMJiYoMj09PWxNfHw5PT09bE0pfHxudWxsIT09ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KSYmKHNkKGUsMCksc3MoZSxsUixsSywhMSkpLGVFKGUsbiksKDA9PSgyJmxEKXx8ZSE9PWxMKSYmKGU9PT1sTCYmKDA9PSgyJmxEKSYmKGxXfD1uKSw0PT09bFYmJnNzKGUsbFIsbEssITEpKSxzcShlKSl9ZnVuY3Rpb24gc2koZSx0LG4pe2lmKDAhPSg2JmxEKSl0aHJvdyBFcnJvcihsKDMyNykpO2Zvcih2YXIgcj0hbiYmMD09KDEyNCZ0KSYmMD09KHQmZS5leHBpcmVkTGFuZXMpfHxldyhlLHQpLG89cj9mdW5jdGlvbihlLHQpe3ZhciBuPWxEO2xEfD0yO3ZhciByPXNoKCksbz1zbSgpO2xMIT09ZXx8bFIhPT10PyhsMj1udWxsLGwxPWVyKCkrNTAwLHNkKGUsdCkpOmxGPWV3KGUsdCk7ZTpmb3IoOzspdHJ5e2lmKDAhPT1sTSYmbnVsbCE9PWxOKXt0PWxOO3ZhciBhPWxaO3Q6c3dpdGNoKGxNKXtjYXNlIDE6bE09MCxsWj1udWxsLHNBKGUsdCxhLDEpO2JyZWFrO2Nhc2UgMjpjYXNlIDk6aWYob2woYSkpe2xNPTAsbFo9bnVsbCxzYih0KTticmVha310PWZ1bmN0aW9uKCl7MiE9PWxNJiY5IT09bE18fGxMIT09ZXx8KGxNPTcpLHNxKGUpfSxhLnRoZW4odCx0KTticmVhayBlO2Nhc2UgMzpsTT03O2JyZWFrIGU7Y2FzZSA0OmxNPTU7YnJlYWsgZTtjYXNlIDc6b2woYSk/KGxNPTAsbFo9bnVsbCxzYih0KSk6KGxNPTAsbFo9bnVsbCxzQShlLHQsYSw3KSk7YnJlYWs7Y2FzZSA1OnZhciBpPW51bGw7c3dpdGNoKGxOLnRhZyl7Y2FzZSAyNjppPWxOLm1lbW9pemVkU3RhdGU7Y2FzZSA1OmNhc2UgMjc6dmFyIHM9bE47aWYoaT9jMShpKTpzLnN0YXRlTm9kZS5jb21wbGV0ZSl7bE09MCxsWj1udWxsO3ZhciBjPXMuc2libGluZztpZihudWxsIT09YylsTj1jO2Vsc2V7dmFyIHU9cy5yZXR1cm47bnVsbCE9PXU/KGxOPXUsc3godSkpOmxOPW51bGx9YnJlYWsgdH19bE09MCxsWj1udWxsLHNBKGUsdCxhLDUpO2JyZWFrO2Nhc2UgNjpsTT0wLGxaPW51bGwsc0EoZSx0LGEsNik7YnJlYWs7Y2FzZSA4OnN1KCksbFY9NjticmVhayBlO2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0NjIpKX19Zm9yKDtudWxsIT09bE4mJiFldCgpOylzdihsTik7YnJlYWt9Y2F0Y2godCl7c2YoZSx0KX1yZXR1cm4oclo9ck09bnVsbCxJLkg9cixJLkE9byxsRD1uLG51bGwhPT1sTik/MDoobEw9bnVsbCxsUj0wLG4yKCksbFYpfShlLHQpOnN5KGUsdCwhMCksYT1yOzspe2lmKDA9PT1vKWxGJiYhciYmc3MoZSx0LDAsITEpO2Vsc2V7aWYobj1lLmN1cnJlbnQuYWx0ZXJuYXRlLGEmJiFmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZTs7KXt2YXIgbj10LnRhZztpZigoMD09PW58fDExPT09bnx8MTU9PT1uKSYmMTYzODQmdC5mbGFncyYmbnVsbCE9PShuPXQudXBkYXRlUXVldWUpJiZudWxsIT09KG49bi5zdG9yZXMpKWZvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgbz1uW3JdLGE9by5nZXRTbmFwc2hvdDtvPW8udmFsdWU7dHJ5e2lmKCFuayhhKCksbykpcmV0dXJuITF9Y2F0Y2goZSl7cmV0dXJuITF9fWlmKG49dC5jaGlsZCwxNjM4NCZ0LnN1YnRyZWVGbGFncyYmbnVsbCE9PW4pbi5yZXR1cm49dCx0PW47ZWxzZXtpZih0PT09ZSlicmVhaztmb3IoO251bGw9PT10LnNpYmxpbmc7KXtpZihudWxsPT09dC5yZXR1cm58fHQucmV0dXJuPT09ZSlyZXR1cm4hMDt0PXQucmV0dXJufXQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9fXJldHVybiEwfShuKSl7bz1zeShlLHQsITEpLGE9ITE7Y29udGludWV9aWYoMj09PW8pe2lmKGE9dCxlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzJmEpdmFyIGk9MDtlbHNlIGk9MCE9KGk9LTB4MjAwMDAwMDEmZS5wZW5kaW5nTGFuZXMpP2k6MHgyMDAwMDAwMCZpPzB4MjAwMDAwMDA6MDtpZigwIT09aSl7dD1pO2U6e289bEc7dmFyIHM9ZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkO2lmKHMmJihzZChlLGkpLmZsYWdzfD0yNTYpLDIhPT0oaT1zeShlLGksITEpKSl7aWYobHEmJiFzKXtlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzfD1hLGxXfD1hLG89NDticmVhayBlfWE9bFEsbFE9byxudWxsIT09YSYmKG51bGw9PT1sUT9sUT1hOmxRLnB1c2guYXBwbHkobFEsYSkpfW89aX1pZihhPSExLDIhPT1vKWNvbnRpbnVlfX1pZigxPT09byl7c2QoZSwwKSxzcyhlLHQsMCwhMCk7YnJlYWt9ZTp7c3dpdGNoKHI9ZSxhPW8pe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IobCgzNDUpKTtjYXNlIDQ6aWYoKDQxOTQwNDgmdCkhPT10KWJyZWFrO2Nhc2UgNjpzcyhyLHQsbEssIWxVKTticmVhayBlO2Nhc2UgMjpsUT1udWxsO2JyZWFrO2Nhc2UgMzpjYXNlIDU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDMyOSkpfWlmKCgweDNjMDAwMDAmdCk9PT10JiYxMDwobz1sMCszMDAtZXIoKSkpe2lmKHNzKHIsdCxsSywhbFUpLDAhPT1leChyLDAsITApKWJyZWFrIGU7ci50aW1lb3V0SGFuZGxlPWN2KHNsLmJpbmQobnVsbCxyLG4sbFEsbDIsbEosdCxsSyxsVyxsWCxsVSxhLDIsLTAsMCksbyk7YnJlYWsgZX1zbChyLG4sbFEsbDIsbEosdCxsSyxsVyxsWCxsVSxhLDAsLTAsMCl9fWJyZWFrfXNxKGUpfWZ1bmN0aW9uIHNsKGUsdCxuLHIsbyxhLGkscyxjLHUsZCxmLHAsaCl7aWYoZS50aW1lb3V0SGFuZGxlPS0xLCg4MTkyJihmPXQuc3VidHJlZUZsYWdzKXx8MHgxMDAyMDAwPT0oMHgxMDAyMDAwJmYpKSYmKGMyPXtzdHlsZXNoZWV0czpudWxsLGNvdW50OjAsdW5zdXNwZW5kOnRnfSxsUyh0KSxudWxsIT09KGY9ZnVuY3Rpb24oKXtpZihudWxsPT09YzIpdGhyb3cgRXJyb3IobCg0NzUpKTt2YXIgZT1jMjtyZXR1cm4gZS5zdHlsZXNoZWV0cyYmMD09PWUuY291bnQmJmMzKGUsZS5zdHlsZXNoZWV0cyksMDxlLmNvdW50P2Z1bmN0aW9uKHQpe3ZhciBuPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihlLnN0eWxlc2hlZXRzJiZjMyhlLGUuc3R5bGVzaGVldHMpLGUudW5zdXNwZW5kKXt2YXIgdD1lLnVuc3VzcGVuZDtlLnVuc3VzcGVuZD1udWxsLHQoKX19LDZlNCk7cmV0dXJuIGUudW5zdXNwZW5kPXQsZnVuY3Rpb24oKXtlLnVuc3VzcGVuZD1udWxsLGNsZWFyVGltZW91dChuKX19Om51bGx9KCkpKSl7ZS5jYW5jZWxQZW5kaW5nQ29tbWl0PWYoc0MuYmluZChudWxsLGUsdCxhLG4scixvLGkscyxjLGQsMSxwLGgpKSxzcyhlLGEsaSwhdSk7cmV0dXJufXNDKGUsdCxhLG4scixvLGkscyxjKX1mdW5jdGlvbiBzcyhlLHQsbixyKXt0Jj1+bFksdCY9fmxXLGUuc3VzcGVuZGVkTGFuZXN8PXQsZS5waW5nZWRMYW5lcyY9fnQsciYmKGUud2FybUxhbmVzfD10KSxyPWUuZXhwaXJhdGlvblRpbWVzO2Zvcih2YXIgbz10OzA8bzspe3ZhciBhPTMxLWVtKG8pLGk9MTw8YTtyW2FdPS0xLG8mPX5pfTAhPT1uJiZlaihlLG4sdCl9ZnVuY3Rpb24gc2MoKXtyZXR1cm4gMCE9KDYmbEQpfHwoc0goMCwhMSksITEpfWZ1bmN0aW9uIHN1KCl7aWYobnVsbCE9PWxOKXtpZigwPT09bE0pdmFyIGU9bE4ucmV0dXJuO2Vsc2UgZT1sTixyWj1yTT1udWxsLGFuKGUpLG9wPW51bGwsb2g9MCxlPWxOO2Zvcig7bnVsbCE9PWU7KWkwKGUuYWx0ZXJuYXRlLGUpLGU9ZS5yZXR1cm47bE49bnVsbH19ZnVuY3Rpb24gc2QoZSx0KXt2YXIgbj1lLnRpbWVvdXRIYW5kbGU7LTEhPT1uJiYoZS50aW1lb3V0SGFuZGxlPS0xLGNiKG4pKSxudWxsIT09KG49ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KSYmKGUuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsLG4oKSksc3UoKSxsTD1lLGxOPW49cm4oZS5jdXJyZW50LG51bGwpLGxSPXQsbE09MCxsWj1udWxsLGxVPSExLGxGPWV3KGUsdCksbHE9ITEsbFg9bEs9bFk9bFc9bCQ9bFY9MCxsUT1sRz1udWxsLGxKPSExLDAhPSg4JnQpJiYodHw9MzImdCk7dmFyIHI9ZS5lbnRhbmdsZWRMYW5lcztpZigwIT09cilmb3IoZT1lLmVudGFuZ2xlbWVudHMsciY9dDswPHI7KXt2YXIgbz0zMS1lbShyKSxhPTE8PG87dHw9ZVtvXSxyJj1+YX1yZXR1cm4gbEg9dCxuMigpLG59ZnVuY3Rpb24gc2YoZSx0KXtvWT1udWxsLEkuSD1pZSx0PT09b3J8fHQ9PT1vYT8odD1vZCgpLGxNPTMpOnQ9PT1vbz8odD1vZCgpLGxNPTQpOmxNPXQ9PT1pYj84Om51bGwhPT10JiZcIm9iamVjdFwiPT10eXBlb2YgdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgdC50aGVuPzY6MSxsWj10LG51bGw9PT1sTiYmKGxWPTEsaWgoZSxydSh0LGUuY3VycmVudCkpKX1mdW5jdGlvbiBzcCgpe3ZhciBlPW9SLmN1cnJlbnQ7cmV0dXJuIG51bGw9PT1lfHwoKDQxOTQwNDgmbFIpPT09bFI/bnVsbD09PW9NOigoMHgzYzAwMDAwJmxSKT09PWxSfHwwIT0oMHgyMDAwMDAwMCZsUikpJiZlPT09b00pfWZ1bmN0aW9uIHNoKCl7dmFyIGU9SS5IO3JldHVybiBJLkg9aWUsbnVsbD09PWU/aWU6ZX1mdW5jdGlvbiBzbSgpe3ZhciBlPUkuQTtyZXR1cm4gSS5BPWx6LGV9ZnVuY3Rpb24gc2coKXtsVj00LGxVfHwoNDE5NDA0OCZsUikhPT1sUiYmbnVsbCE9PW9SLmN1cnJlbnR8fChsRj0hMCksMD09KDB4N2ZmZmZmZiZsJCkmJjA9PSgweDdmZmZmZmYmbFcpfHxudWxsPT09bEx8fHNzKGxMLGxSLGxLLCExKX1mdW5jdGlvbiBzeShlLHQsbil7dmFyIHI9bEQ7bER8PTI7dmFyIG89c2goKSxhPXNtKCk7KGxMIT09ZXx8bFIhPT10KSYmKGwyPW51bGwsc2QoZSx0KSksdD0hMTt2YXIgaT1sVjtlOmZvcig7Oyl0cnl7aWYoMCE9PWxNJiZudWxsIT09bE4pe3ZhciBsPWxOLHM9bFo7c3dpdGNoKGxNKXtjYXNlIDg6c3UoKSxpPTY7YnJlYWsgZTtjYXNlIDM6Y2FzZSAyOmNhc2UgOTpjYXNlIDY6bnVsbD09PW9SLmN1cnJlbnQmJih0PSEwKTt2YXIgYz1sTTtpZihsTT0wLGxaPW51bGwsc0EoZSxsLHMsYyksbiYmbEYpe2k9MDticmVhayBlfWJyZWFrO2RlZmF1bHQ6Yz1sTSxsTT0wLGxaPW51bGwsc0EoZSxsLHMsYyl9fShmdW5jdGlvbigpe2Zvcig7bnVsbCE9PWxOOylzdihsTil9KSgpLGk9bFY7YnJlYWt9Y2F0Y2godCl7c2YoZSx0KX1yZXR1cm4gdCYmZS5zaGVsbFN1c3BlbmRDb3VudGVyKyssclo9ck09bnVsbCxsRD1yLEkuSD1vLEkuQT1hLG51bGw9PT1sTiYmKGxMPW51bGwsbFI9MCxuMigpKSxpfWZ1bmN0aW9uIHN2KGUpe3ZhciB0PWlXKGUuYWx0ZXJuYXRlLGUsbEgpO2UubWVtb2l6ZWRQcm9wcz1lLnBlbmRpbmdQcm9wcyxudWxsPT09dD9zeChlKTpsTj10fWZ1bmN0aW9uIHNiKGUpe3ZhciB0PWUsbj10LmFsdGVybmF0ZTtzd2l0Y2godC50YWcpe2Nhc2UgMTU6Y2FzZSAwOnQ9aUkobix0LHQucGVuZGluZ1Byb3BzLHQudHlwZSx2b2lkIDAsbFIpO2JyZWFrO2Nhc2UgMTE6dD1pSShuLHQsdC5wZW5kaW5nUHJvcHMsdC50eXBlLnJlbmRlcix0LnJlZixsUik7YnJlYWs7Y2FzZSA1OmFuKHQpO2RlZmF1bHQ6aTAobix0KSx0PWlXKG4sdD1sTj1ycih0LGxIKSxsSCl9ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLG51bGw9PT10P3N4KGUpOmxOPXR9ZnVuY3Rpb24gc0EoZSx0LG4scil7clo9ck09bnVsbCxhbih0KSxvcD1udWxsLG9oPTA7dmFyIG89dC5yZXR1cm47dHJ5e2lmKGZ1bmN0aW9uKGUsdCxuLHIsbyl7aWYobi5mbGFnc3w9MzI3NjgsbnVsbCE9PXImJlwib2JqZWN0XCI9PXR5cGVvZiByJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiByLnRoZW4pe2lmKG51bGwhPT0odD1uLmFsdGVybmF0ZSkmJnJWKHQsbixvLCEwKSxudWxsIT09KG49b1IuY3VycmVudCkpe3N3aXRjaChuLnRhZyl7Y2FzZSAzMTpjYXNlIDEzOnJldHVybiBudWxsPT09b00/c2coKTpudWxsPT09bi5hbHRlcm5hdGUmJjA9PT1sViYmKGxWPTMpLG4uZmxhZ3MmPS0yNTcsbi5mbGFnc3w9NjU1MzYsbi5sYW5lcz1vLHI9PT1vaT9uLmZsYWdzfD0xNjM4NDoobnVsbD09PSh0PW4udXBkYXRlUXVldWUpP24udXBkYXRlUXVldWU9bmV3IFNldChbcl0pOnQuYWRkKHIpLHNJKGUscixvKSksITE7Y2FzZSAyMjpyZXR1cm4gbi5mbGFnc3w9NjU1MzYscj09PW9pP24uZmxhZ3N8PTE2Mzg0OihudWxsPT09KHQ9bi51cGRhdGVRdWV1ZSk/KHQ9e3RyYW5zaXRpb25zOm51bGwsbWFya2VySW5zdGFuY2VzOm51bGwscmV0cnlRdWV1ZTpuZXcgU2V0KFtyXSl9LG4udXBkYXRlUXVldWU9dCk6bnVsbD09PShuPXQucmV0cnlRdWV1ZSk/dC5yZXRyeVF1ZXVlPW5ldyBTZXQoW3JdKTpuLmFkZChyKSxzSShlLHIsbykpLCExfXRocm93IEVycm9yKGwoNDM1LG4udGFnKSl9cmV0dXJuIHNJKGUscixvKSxzZygpLCExfWlmKHJqKXJldHVybiBudWxsIT09KHQ9b1IuY3VycmVudCk/KDA9PSg2NTUzNiZ0LmZsYWdzKSYmKHQuZmxhZ3N8PTI1NiksdC5mbGFnc3w9NjU1MzYsdC5sYW5lcz1vLHIhPT1yQiYmck4ocnUoZT1FcnJvcihsKDQyMikse2NhdXNlOnJ9KSxuKSkpOihyIT09ckImJnJOKHJ1KHQ9RXJyb3IobCg0MjMpLHtjYXVzZTpyfSksbikpLGU9ZS5jdXJyZW50LmFsdGVybmF0ZSxlLmZsYWdzfD02NTUzNixvJj0tbyxlLmxhbmVzfD1vLHI9cnUocixuKSxvPWlnKGUuc3RhdGVOb2RlLHIsbyksb2ooZSxvKSw0IT09bFYmJihsVj0yKSksITE7dmFyIGE9RXJyb3IobCg1MjApLHtjYXVzZTpyfSk7aWYoYT1ydShhLG4pLG51bGw9PT1sRz9sRz1bYV06bEcucHVzaChhKSw0IT09bFYmJihsVj0yKSxudWxsPT09dClyZXR1cm4hMDtyPXJ1KHIsbiksbj10O2Rve3N3aXRjaChuLnRhZyl7Y2FzZSAzOnJldHVybiBuLmZsYWdzfD02NTUzNixlPW8mLW8sbi5sYW5lc3w9ZSxlPWlnKG4uc3RhdGVOb2RlLHIsZSksb2oobixlKSwhMTtjYXNlIDE6aWYodD1uLnR5cGUsYT1uLnN0YXRlTm9kZSwwPT0oMTI4Jm4uZmxhZ3MpJiYoXCJmdW5jdGlvblwiPT10eXBlb2YgdC5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fG51bGwhPT1hJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PWw0fHwhbDQuaGFzKGEpKSkpcmV0dXJuIG4uZmxhZ3N8PTY1NTM2LG8mPS1vLG4ubGFuZXN8PW8saXYobz1peShvKSxlLG4sciksb2oobixvKSwhMX1uPW4ucmV0dXJufXdoaWxlKG51bGwhPT1uKTtyZXR1cm4hMX0oZSxvLHQsbixsUikpe2xWPTEsaWgoZSxydShuLGUuY3VycmVudCkpLGxOPW51bGw7cmV0dXJufX1jYXRjaCh0KXtpZihudWxsIT09byl0aHJvdyBsTj1vLHQ7bFY9MSxpaChlLHJ1KG4sZS5jdXJyZW50KSksbE49bnVsbDtyZXR1cm59MzI3NjgmdC5mbGFncz8ocmp8fDE9PT1yP2U9ITA6bEZ8fDAhPSgweDIwMDAwMDAwJmxSKT9lPSExOihsVT1lPSEwLCgyPT09cnx8OT09PXJ8fDM9PT1yfHw2PT09cikmJm51bGwhPT0ocj1vUi5jdXJyZW50KSYmMTM9PT1yLnRhZyYmKHIuZmxhZ3N8PTE2Mzg0KSksc3codCxlKSk6c3godCl9ZnVuY3Rpb24gc3goZSl7dmFyIHQ9ZTtkb3tpZigwIT0oMzI3NjgmdC5mbGFncykpcmV0dXJuIHZvaWQgc3codCxsVSk7ZT10LnJldHVybjt2YXIgbj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dC5wZW5kaW5nUHJvcHM7c3dpdGNoKHJDKHQpLHQudGFnKXtjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OmNhc2UgMTpyZXR1cm4gaUoodCksbnVsbDtjYXNlIDM6cmV0dXJuIG49dC5zdGF0ZU5vZGUscj1udWxsLG51bGwhPT1lJiYocj1lLm1lbW9pemVkU3RhdGUuY2FjaGUpLHQubWVtb2l6ZWRTdGF0ZS5jYWNoZSE9PXImJih0LmZsYWdzfD0yMDQ4KSxyRihyMCksVigpLG4ucGVuZGluZ0NvbnRleHQmJihuLmNvbnRleHQ9bi5wZW5kaW5nQ29udGV4dCxuLnBlbmRpbmdDb250ZXh0PW51bGwpLChudWxsPT09ZXx8bnVsbD09PWUuY2hpbGQpJiYoclQodCk/aVkodCk6bnVsbD09PWV8fGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJjA9PSgyNTYmdC5mbGFncyl8fCh0LmZsYWdzfD0xMDI0LHJMKCkpKSxpSih0KSxudWxsO2Nhc2UgMjY6dmFyIG89dC50eXBlLGE9dC5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsPT09ZT8oaVkodCksbnVsbCE9PWE/KGlKKHQpLGlYKHQsYSkpOihpSih0KSxpSyh0LG8sbnVsbCxyLG4pKSk6YT9hIT09ZS5tZW1vaXplZFN0YXRlPyhpWSh0KSxpSih0KSxpWCh0LGEpKTooaUoodCksdC5mbGFncyY9LTB4MTAwMDAwMSk6KChlPWUubWVtb2l6ZWRQcm9wcykhPT1yJiZpWSh0KSxpSih0KSxpSyh0LG8sZSxyLG4pKSxudWxsO2Nhc2UgMjc6aWYoVyh0KSxuPUYuY3VycmVudCxvPXQudHlwZSxudWxsIT09ZSYmbnVsbCE9dC5zdGF0ZU5vZGUpZS5tZW1vaXplZFByb3BzIT09ciYmaVkodCk7ZWxzZXtpZighcil7aWYobnVsbD09PXQuc3RhdGVOb2RlKXRocm93IEVycm9yKGwoMTY2KSk7cmV0dXJuIGlKKHQpLG51bGx9ZT1aLmN1cnJlbnQsclQodCk/ckkodCxlKToodC5zdGF0ZU5vZGU9ZT1jVChvLHIsbiksaVkodCkpfXJldHVybiBpSih0KSxudWxsO2Nhc2UgNTppZihXKHQpLG89dC50eXBlLG51bGwhPT1lJiZudWxsIT10LnN0YXRlTm9kZSllLm1lbW9pemVkUHJvcHMhPT1yJiZpWSh0KTtlbHNle2lmKCFyKXtpZihudWxsPT09dC5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IobCgxNjYpKTtyZXR1cm4gaUoodCksbnVsbH1pZihhPVouY3VycmVudCxyVCh0KSlySSh0LGEpO2Vsc2V7dmFyIGk9Y3AoRi5jdXJyZW50KTtzd2l0Y2goYSl7Y2FzZSAxOmE9aS5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLG8pO2JyZWFrO2Nhc2UgMjphPWkuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLG8pO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKG8pe2Nhc2VcInN2Z1wiOmE9aS5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLG8pO2JyZWFrO2Nhc2VcIm1hdGhcIjphPWkuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLG8pO2JyZWFrO2Nhc2VcInNjcmlwdFwiOihhPWkuY3JlYXRlRWxlbWVudChcImRpdlwiKSkuaW5uZXJIVE1MPVwiPHNjcmlwdD48XFwvc2NyaXB0PlwiLGE9YS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2JyZWFrO2Nhc2VcInNlbGVjdFwiOmE9XCJzdHJpbmdcIj09dHlwZW9mIHIuaXM/aS5jcmVhdGVFbGVtZW50KFwic2VsZWN0XCIse2lzOnIuaXN9KTppLmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIiksci5tdWx0aXBsZT9hLm11bHRpcGxlPSEwOnIuc2l6ZSYmKGEuc2l6ZT1yLnNpemUpO2JyZWFrO2RlZmF1bHQ6YT1cInN0cmluZ1wiPT10eXBlb2Ygci5pcz9pLmNyZWF0ZUVsZW1lbnQobyx7aXM6ci5pc30pOmkuY3JlYXRlRWxlbWVudChvKX19YVtlRF09dCxhW2VMXT1yO2U6Zm9yKGk9dC5jaGlsZDtudWxsIT09aTspe2lmKDU9PT1pLnRhZ3x8Nj09PWkudGFnKWEuYXBwZW5kQ2hpbGQoaS5zdGF0ZU5vZGUpO2Vsc2UgaWYoNCE9PWkudGFnJiYyNyE9PWkudGFnJiZudWxsIT09aS5jaGlsZCl7aS5jaGlsZC5yZXR1cm49aSxpPWkuY2hpbGQ7Y29udGludWV9aWYoaT09PXQpYnJlYWs7Zm9yKDtudWxsPT09aS5zaWJsaW5nOyl7aWYobnVsbD09PWkucmV0dXJufHxpLnJldHVybj09PXQpYnJlYWsgZTtpPWkucmV0dXJufWkuc2libGluZy5yZXR1cm49aS5yZXR1cm4saT1pLnNpYmxpbmd9c3dpdGNoKHQuc3RhdGVOb2RlPWEsY3UoYSxvLHIpLG8pe2Nhc2VcImJ1dHRvblwiOmNhc2VcImlucHV0XCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwidGV4dGFyZWFcIjpyPSEhci5hdXRvRm9jdXM7YnJlYWs7Y2FzZVwiaW1nXCI6cj0hMDticmVhaztkZWZhdWx0OnI9ITF9ciYmaVkodCl9fXJldHVybiBpSih0KSxpSyh0LHQudHlwZSxudWxsPT09ZT9udWxsOmUubWVtb2l6ZWRQcm9wcyx0LnBlbmRpbmdQcm9wcyxuKSxudWxsO2Nhc2UgNjppZihlJiZudWxsIT10LnN0YXRlTm9kZSllLm1lbW9pemVkUHJvcHMhPT1yJiZpWSh0KTtlbHNle2lmKFwic3RyaW5nXCIhPXR5cGVvZiByJiZudWxsPT09dC5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IobCgxNjYpKTtpZihlPUYuY3VycmVudCxyVCh0KSl7aWYoZT10LnN0YXRlTm9kZSxuPXQubWVtb2l6ZWRQcm9wcyxyPW51bGwsbnVsbCE9PShvPXJrKSlzd2l0Y2goby50YWcpe2Nhc2UgMjc6Y2FzZSA1OnI9by5tZW1vaXplZFByb3BzfWVbZURdPXQsKGU9ISEoZS5ub2RlVmFsdWU9PT1ufHxudWxsIT09ciYmITA9PT1yLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x8Y2woZS5ub2RlVmFsdWUsbikpKXx8clAodCwhMCl9ZWxzZShlPWNwKGUpLmNyZWF0ZVRleHROb2RlKHIpKVtlRF09dCx0LnN0YXRlTm9kZT1lfXJldHVybiBpSih0KSxudWxsO2Nhc2UgMzE6aWYobj10Lm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUpe2lmKHI9clQodCksbnVsbCE9PW4pe2lmKG51bGw9PT1lKXtpZighcil0aHJvdyBFcnJvcihsKDMxOCkpO2lmKCEoZT1udWxsIT09KGU9dC5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IobCg1NTcpKTtlW2VEXT10fWVsc2UgckQoKSwwPT0oMTI4JnQuZmxhZ3MpJiYodC5tZW1vaXplZFN0YXRlPW51bGwpLHQuZmxhZ3N8PTQ7aUoodCksZT0hMX1lbHNlIG49ckwoKSxudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmKGUubWVtb2l6ZWRTdGF0ZS5oeWRyYXRpb25FcnJvcnM9biksZT0hMDtpZighZSl7aWYoMjU2JnQuZmxhZ3MpcmV0dXJuIG9IKHQpLHQ7cmV0dXJuIG9IKHQpLG51bGx9aWYoMCE9KDEyOCZ0LmZsYWdzKSl0aHJvdyBFcnJvcihsKDU1OCkpfXJldHVybiBpSih0KSxudWxsO2Nhc2UgMTM6aWYocj10Lm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYobz1yVCh0KSxudWxsIT09ciYmbnVsbCE9PXIuZGVoeWRyYXRlZCl7aWYobnVsbD09PWUpe2lmKCFvKXRocm93IEVycm9yKGwoMzE4KSk7aWYoIShvPW51bGwhPT0obz10Lm1lbW9pemVkU3RhdGUpP28uZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihsKDMxNykpO29bZURdPXR9ZWxzZSByRCgpLDA9PSgxMjgmdC5mbGFncykmJih0Lm1lbW9pemVkU3RhdGU9bnVsbCksdC5mbGFnc3w9NDtpSih0KSxvPSExfWVsc2Ugbz1yTCgpLG51bGwhPT1lJiZudWxsIT09ZS5tZW1vaXplZFN0YXRlJiYoZS5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycz1vKSxvPSEwO2lmKCFvKXtpZigyNTYmdC5mbGFncylyZXR1cm4gb0godCksdDtyZXR1cm4gb0godCksbnVsbH19aWYob0godCksMCE9KDEyOCZ0LmZsYWdzKSlyZXR1cm4gdC5sYW5lcz1uLHQ7cmV0dXJuIG49bnVsbCE9PXIsZT1udWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSxuJiYocj10LmNoaWxkLG89bnVsbCxudWxsIT09ci5hbHRlcm5hdGUmJm51bGwhPT1yLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJihvPXIuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGE9bnVsbCxudWxsIT09ci5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKGE9ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxhIT09byYmKHIuZmxhZ3N8PTIwNDgpKSxuIT09ZSYmbiYmKHQuY2hpbGQuZmxhZ3N8PTgxOTIpLGlHKHQsdC51cGRhdGVRdWV1ZSksaUoodCksbnVsbDtjYXNlIDQ6cmV0dXJuIFYoKSxudWxsPT09ZSYmczkodC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksaUoodCksbnVsbDtjYXNlIDEwOnJldHVybiByRih0LnR5cGUpLGlKKHQpLG51bGw7Y2FzZSAxOTppZihSKG9WKSxudWxsPT09KHI9dC5tZW1vaXplZFN0YXRlKSlyZXR1cm4gaUoodCksbnVsbDtpZihvPTAhPSgxMjgmdC5mbGFncyksbnVsbD09PShhPXIucmVuZGVyaW5nKSlpZihvKWlRKHIsITEpO2Vsc2V7aWYoMCE9PWxWfHxudWxsIT09ZSYmMCE9KDEyOCZlLmZsYWdzKSlmb3IoZT10LmNoaWxkO251bGwhPT1lOyl7aWYobnVsbCE9PShhPW8kKGUpKSl7Zm9yKHQuZmxhZ3N8PTEyOCxpUShyLCExKSx0LnVwZGF0ZVF1ZXVlPWU9YS51cGRhdGVRdWV1ZSxpRyh0LGUpLHQuc3VidHJlZUZsYWdzPTAsZT1uLG49dC5jaGlsZDtudWxsIT09bjspcnIobixlKSxuPW4uc2libGluZztyZXR1cm4gTShvViwxJm9WLmN1cnJlbnR8MikscmomJnJBKHQsci50cmVlRm9ya0NvdW50KSx0LmNoaWxkfWU9ZS5zaWJsaW5nfW51bGwhPT1yLnRhaWwmJmVyKCk+bDEmJih0LmZsYWdzfD0xMjgsbz0hMCxpUShyLCExKSx0LmxhbmVzPTQxOTQzMDQpfWVsc2V7aWYoIW8paWYobnVsbCE9PShlPW8kKGEpKSl7aWYodC5mbGFnc3w9MTI4LG89ITAsdC51cGRhdGVRdWV1ZT1lPWUudXBkYXRlUXVldWUsaUcodCxlKSxpUShyLCEwKSxudWxsPT09ci50YWlsJiZcImhpZGRlblwiPT09ci50YWlsTW9kZSYmIWEuYWx0ZXJuYXRlJiYhcmopcmV0dXJuIGlKKHQpLG51bGx9ZWxzZSAyKmVyKCktci5yZW5kZXJpbmdTdGFydFRpbWU+bDEmJjB4MjAwMDAwMDAhPT1uJiYodC5mbGFnc3w9MTI4LG89ITAsaVEociwhMSksdC5sYW5lcz00MTk0MzA0KTtyLmlzQmFja3dhcmRzPyhhLnNpYmxpbmc9dC5jaGlsZCx0LmNoaWxkPWEpOihudWxsIT09KGU9ci5sYXN0KT9lLnNpYmxpbmc9YTp0LmNoaWxkPWEsci5sYXN0PWEpfWlmKG51bGwhPT1yLnRhaWwpcmV0dXJuIGU9ci50YWlsLHIucmVuZGVyaW5nPWUsci50YWlsPWUuc2libGluZyxyLnJlbmRlcmluZ1N0YXJ0VGltZT1lcigpLGUuc2libGluZz1udWxsLG49b1YuY3VycmVudCxNKG9WLG8/MSZufDI6MSZuKSxyaiYmckEodCxyLnRyZWVGb3JrQ291bnQpLGU7cmV0dXJuIGlKKHQpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBvSCh0KSxvTigpLHI9bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSxudWxsIT09ZT9udWxsIT09ZS5tZW1vaXplZFN0YXRlIT09ciYmKHQuZmxhZ3N8PTgxOTIpOnImJih0LmZsYWdzfD04MTkyKSxyPzAhPSgweDIwMDAwMDAwJm4pJiYwPT0oMTI4JnQuZmxhZ3MpJiYoaUoodCksNiZ0LnN1YnRyZWVGbGFncyYmKHQuZmxhZ3N8PTgxOTIpKTppSih0KSxudWxsIT09KG49dC51cGRhdGVRdWV1ZSkmJmlHKHQsbi5yZXRyeVF1ZXVlKSxuPW51bGwsbnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYobj1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLHI9bnVsbCxudWxsIT09dC5tZW1vaXplZFN0YXRlJiZudWxsIT09dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKHI9dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxyIT09biYmKHQuZmxhZ3N8PTIwNDgpLG51bGwhPT1lJiZSKHI3KSxudWxsO2Nhc2UgMjQ6cmV0dXJuIG49bnVsbCxudWxsIT09ZSYmKG49ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0Lm1lbW9pemVkU3RhdGUuY2FjaGUhPT1uJiYodC5mbGFnc3w9MjA0OCksckYocjApLGlKKHQpLG51bGw7Y2FzZSAyNTpjYXNlIDMwOnJldHVybiBudWxsfXRocm93IEVycm9yKGwoMTU2LHQudGFnKSl9KHQuYWx0ZXJuYXRlLHQsbEgpO2lmKG51bGwhPT1uKXtsTj1uO3JldHVybn1pZihudWxsIT09KHQ9dC5zaWJsaW5nKSl7bE49dDtyZXR1cm59bE49dD1lfXdoaWxlKG51bGwhPT10KTswPT09bFYmJihsVj01KX1mdW5jdGlvbiBzdyhlLHQpe2Rve3ZhciBuPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHJDKHQpLHQudGFnKXtjYXNlIDE6cmV0dXJuIDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMzpyZXR1cm4gckYocjApLFYoKSwwIT0oNjU1MzYmKGU9dC5mbGFncykpJiYwPT0oMTI4JmUpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6cmV0dXJuIFcodCksbnVsbDtjYXNlIDMxOmlmKG51bGwhPT10Lm1lbW9pemVkU3RhdGUpe2lmKG9IKHQpLG51bGw9PT10LmFsdGVybmF0ZSl0aHJvdyBFcnJvcihsKDM0MCkpO3JEKCl9cmV0dXJuIDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMTM6aWYob0godCksbnVsbCE9PShlPXQubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT1lLmRlaHlkcmF0ZWQpe2lmKG51bGw9PT10LmFsdGVybmF0ZSl0aHJvdyBFcnJvcihsKDM0MCkpO3JEKCl9cmV0dXJuIDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMTk6cmV0dXJuIFIob1YpLG51bGw7Y2FzZSA0OnJldHVybiBWKCksbnVsbDtjYXNlIDEwOnJldHVybiByRih0LnR5cGUpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBvSCh0KSxvTigpLG51bGwhPT1lJiZSKHI3KSw2NTUzNiYoZT10LmZsYWdzKT8odC5mbGFncz0tNjU1MzcmZXwxMjgsdCk6bnVsbDtjYXNlIDI0OnJldHVybiByRihyMCksbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX0oZS5hbHRlcm5hdGUsZSk7aWYobnVsbCE9PW4pe24uZmxhZ3MmPTMyNzY3LGxOPW47cmV0dXJufWlmKG51bGwhPT0obj1lLnJldHVybikmJihuLmZsYWdzfD0zMjc2OCxuLnN1YnRyZWVGbGFncz0wLG4uZGVsZXRpb25zPW51bGwpLCF0JiZudWxsIT09KGU9ZS5zaWJsaW5nKSl7bE49ZTtyZXR1cm59bE49ZT1ufXdoaWxlKG51bGwhPT1lKTtsVj02LGxOPW51bGx9ZnVuY3Rpb24gc0MoZSx0LG4scixvLGEsaSxzLGMpe2UuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsO2RvIHNTKCk7d2hpbGUoMCE9PWw1KTtpZigwIT0oNiZsRCkpdGhyb3cgRXJyb3IobCgzMjcpKTtpZihudWxsIT09dCl7aWYodD09PWUuY3VycmVudCl0aHJvdyBFcnJvcihsKDE3NykpO2lmKCFmdW5jdGlvbihlLHQsbixyLG8sYSl7dmFyIGk9ZS5wZW5kaW5nTGFuZXM7ZS5wZW5kaW5nTGFuZXM9bixlLnN1c3BlbmRlZExhbmVzPTAsZS5waW5nZWRMYW5lcz0wLGUud2FybUxhbmVzPTAsZS5leHBpcmVkTGFuZXMmPW4sZS5lbnRhbmdsZWRMYW5lcyY9bixlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzJj1uLGUuc2hlbGxTdXNwZW5kQ291bnRlcj0wO3ZhciBsPWUuZW50YW5nbGVtZW50cyxzPWUuZXhwaXJhdGlvblRpbWVzLGM9ZS5oaWRkZW5VcGRhdGVzO2ZvcihuPWkmfm47MDxuOyl7dmFyIHU9MzEtZW0obiksZD0xPDx1O2xbdV09MCxzW3VdPS0xO3ZhciBmPWNbdV07aWYobnVsbCE9PWYpZm9yKGNbdV09bnVsbCx1PTA7dTxmLmxlbmd0aDt1Kyspe3ZhciBwPWZbdV07bnVsbCE9PXAmJihwLmxhbmUmPS0weDIwMDAwMDAxKX1uJj1+ZH0wIT09ciYmZWooZSxyLDApLDAhPT1hJiYwPT09byYmMCE9PWUudGFnJiYoZS5zdXNwZW5kZWRMYW5lc3w9YSZ+KGkmfnQpKX0oZSxuLGE9dC5sYW5lc3x0LmNoaWxkTGFuZXN8bjEsaSxzLGMpLGU9PT1sTCYmKGxOPWxMPW51bGwsbFI9MCksbDY9dCxsMz1lLGw5PW4sbDg9YSxsNz1vLHNlPXIsMCE9KDEwMjU2JnQuc3VidHJlZUZsYWdzKXx8MCE9KDEwMjU2JnQuZmxhZ3MpPyhlLmNhbGxiYWNrTm9kZT1udWxsLGUuY2FsbGJhY2tQcmlvcml0eT0wLEooZWwsZnVuY3Rpb24oKXtyZXR1cm4gc08oITApLG51bGx9KSk6KGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTApLHI9MCE9KDEzODc4JnQuZmxhZ3MpLDAhPSgxMzg3OCZ0LnN1YnRyZWVGbGFncyl8fHIpe3I9SS5ULEkuVD1udWxsLG89ei5wLHoucD0yLGk9bEQsbER8PTQ7dHJ5eyFmdW5jdGlvbihlLHQpe2lmKGU9ZS5jb250YWluZXJJbmZvLGNkPXVvLG5CKGU9bk8oZSkpKXtpZihcInNlbGVjdGlvblN0YXJ0XCJpbiBlKXZhciBuPXtzdGFydDplLnNlbGVjdGlvblN0YXJ0LGVuZDplLnNlbGVjdGlvbkVuZH07ZWxzZSBlOnt2YXIgcj0obj0obj1lLm93bmVyRG9jdW1lbnQpJiZuLmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmbi5nZXRTZWxlY3Rpb24oKTtpZihyJiYwIT09ci5yYW5nZUNvdW50KXtuPXIuYW5jaG9yTm9kZTt2YXIgbyxhPXIuYW5jaG9yT2Zmc2V0LGk9ci5mb2N1c05vZGU7cj1yLmZvY3VzT2Zmc2V0O3RyeXtuLm5vZGVUeXBlLGkubm9kZVR5cGV9Y2F0Y2goZSl7bj1udWxsO2JyZWFrIGV9dmFyIHM9MCxjPS0xLHU9LTEsZD0wLGY9MCxwPWUsaD1udWxsO3Q6Zm9yKDs7KXtmb3IoO3AhPT1ufHwwIT09YSYmMyE9PXAubm9kZVR5cGV8fChjPXMrYSkscCE9PWl8fDAhPT1yJiYzIT09cC5ub2RlVHlwZXx8KHU9cytyKSwzPT09cC5ub2RlVHlwZSYmKHMrPXAubm9kZVZhbHVlLmxlbmd0aCksbnVsbCE9PShvPXAuZmlyc3RDaGlsZCk7KWg9cCxwPW87Zm9yKDs7KXtpZihwPT09ZSlicmVhayB0O2lmKGg9PT1uJiYrK2Q9PT1hJiYoYz1zKSxoPT09aSYmKytmPT09ciYmKHU9cyksbnVsbCE9PShvPXAubmV4dFNpYmxpbmcpKWJyZWFrO2g9KHA9aCkucGFyZW50Tm9kZX1wPW99bj0tMT09PWN8fC0xPT09dT9udWxsOntzdGFydDpjLGVuZDp1fX1lbHNlIG49bnVsbH1uPW58fHtzdGFydDowLGVuZDowfX1lbHNlIG49bnVsbDtmb3IoY2Y9e2ZvY3VzZWRFbGVtOmUsc2VsZWN0aW9uUmFuZ2U6bn0sdW89ITEsbGw9dDtudWxsIT09bGw7KWlmKGU9KHQ9bGwpLmNoaWxkLDAhPSgxMDI0JnQuc3VidHJlZUZsYWdzKSYmbnVsbCE9PWUpZS5yZXR1cm49dCxsbD1lO2Vsc2UgZm9yKDtudWxsIT09bGw7KXtzd2l0Y2goaT0odD1sbCkuYWx0ZXJuYXRlLGU9dC5mbGFncyx0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDU6Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztjYXNlIDE6aWYoMCE9KDEwMjQmZSkmJm51bGwhPT1pKXtlPXZvaWQgMCxuPXQsYT1pLm1lbW9pemVkUHJvcHMsaT1pLm1lbW9pemVkU3RhdGUscj1uLnN0YXRlTm9kZTt0cnl7dmFyIG09aWMobi50eXBlLGEpO2U9ci5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShtLGkpLHIuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9ZX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfX1icmVhaztjYXNlIDM6aWYoMCE9KDEwMjQmZSkpe2lmKDk9PT0obj0oZT10LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKS5ub2RlVHlwZSkpY0UoZSk7ZWxzZSBpZigxPT09bilzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZVwiSEVBRFwiOmNhc2VcIkhUTUxcIjpjYXNlXCJCT0RZXCI6Y0UoZSk7YnJlYWs7ZGVmYXVsdDplLnRleHRDb250ZW50PVwiXCJ9fWJyZWFrO2RlZmF1bHQ6aWYoMCE9KDEwMjQmZSkpdGhyb3cgRXJyb3IobCgxNjMpKX1pZihudWxsIT09KGU9dC5zaWJsaW5nKSl7ZS5yZXR1cm49dC5yZXR1cm4sbGw9ZTticmVha31sbD10LnJldHVybn19KGUsdCxuKX1maW5hbGx5e2xEPWksei5wPW8sSS5UPXJ9fWw1PTEsc18oKSxzaygpLHNFKCl9fWZ1bmN0aW9uIHNfKCl7aWYoMT09PWw1KXtsNT0wO3ZhciBlPWwzLHQ9bDYsbj0wIT0oMTM4NzgmdC5mbGFncyk7aWYoMCE9KDEzODc4JnQuc3VidHJlZUZsYWdzKXx8bil7bj1JLlQsSS5UPW51bGw7dmFyIHI9ei5wO3oucD0yO3ZhciBvPWxEO2xEfD00O3RyeXtsdih0LGUpO3ZhciBhPWNmLGk9bk8oZS5jb250YWluZXJJbmZvKSxsPWEuZm9jdXNlZEVsZW0scz1hLnNlbGVjdGlvblJhbmdlO2lmKGkhPT1sJiZsJiZsLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUodCxuKXtyZXR1cm4hIXQmJiEhbiYmKHQ9PT1ufHwoIXR8fDMhPT10Lm5vZGVUeXBlKSYmKG4mJjM9PT1uLm5vZGVUeXBlP2UodCxuLnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIHQ/dC5jb250YWlucyhuKTohIXQuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJiEhKDE2JnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24obikpKSl9KGwub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbCkpe2lmKG51bGwhPT1zJiZuQihsKSl7dmFyIGM9cy5zdGFydCx1PXMuZW5kO2lmKHZvaWQgMD09PXUmJih1PWMpLFwic2VsZWN0aW9uU3RhcnRcImluIGwpbC5zZWxlY3Rpb25TdGFydD1jLGwuc2VsZWN0aW9uRW5kPU1hdGgubWluKHUsbC52YWx1ZS5sZW5ndGgpO2Vsc2V7dmFyIGQ9bC5vd25lckRvY3VtZW50fHxkb2N1bWVudCxmPWQmJmQuZGVmYXVsdFZpZXd8fHdpbmRvdztpZihmLmdldFNlbGVjdGlvbil7dmFyIHA9Zi5nZXRTZWxlY3Rpb24oKSxoPWwudGV4dENvbnRlbnQubGVuZ3RoLG09TWF0aC5taW4ocy5zdGFydCxoKSxnPXZvaWQgMD09PXMuZW5kP206TWF0aC5taW4ocy5lbmQsaCk7IXAuZXh0ZW5kJiZtPmcmJihpPWcsZz1tLG09aSk7dmFyIHk9blMobCxtKSx2PW5TKGwsZyk7aWYoeSYmdiYmKDEhPT1wLnJhbmdlQ291bnR8fHAuYW5jaG9yTm9kZSE9PXkubm9kZXx8cC5hbmNob3JPZmZzZXQhPT15Lm9mZnNldHx8cC5mb2N1c05vZGUhPT12Lm5vZGV8fHAuZm9jdXNPZmZzZXQhPT12Lm9mZnNldCkpe3ZhciBiPWQuY3JlYXRlUmFuZ2UoKTtiLnNldFN0YXJ0KHkubm9kZSx5Lm9mZnNldCkscC5yZW1vdmVBbGxSYW5nZXMoKSxtPmc/KHAuYWRkUmFuZ2UoYikscC5leHRlbmQodi5ub2RlLHYub2Zmc2V0KSk6KGIuc2V0RW5kKHYubm9kZSx2Lm9mZnNldCkscC5hZGRSYW5nZShiKSl9fX19Zm9yKGQ9W10scD1sO3A9cC5wYXJlbnROb2RlOykxPT09cC5ub2RlVHlwZSYmZC5wdXNoKHtlbGVtZW50OnAsbGVmdDpwLnNjcm9sbExlZnQsdG9wOnAuc2Nyb2xsVG9wfSk7Zm9yKFwiZnVuY3Rpb25cIj09dHlwZW9mIGwuZm9jdXMmJmwuZm9jdXMoKSxsPTA7bDxkLmxlbmd0aDtsKyspe3ZhciBBPWRbbF07QS5lbGVtZW50LnNjcm9sbExlZnQ9QS5sZWZ0LEEuZWxlbWVudC5zY3JvbGxUb3A9QS50b3B9fXVvPSEhY2QsY2Y9Y2Q9bnVsbH1maW5hbGx5e2xEPW8sei5wPXIsSS5UPW59fWUuY3VycmVudD10LGw1PTJ9fWZ1bmN0aW9uIHNrKCl7aWYoMj09PWw1KXtsNT0wO3ZhciBlPWwzLHQ9bDYsbj0wIT0oODc3MiZ0LmZsYWdzKTtpZigwIT0oODc3MiZ0LnN1YnRyZWVGbGFncyl8fG4pe249SS5ULEkuVD1udWxsO3ZhciByPXoucDt6LnA9Mjt2YXIgbz1sRDtsRHw9NDt0cnl7bHMoZSx0LmFsdGVybmF0ZSx0KX1maW5hbGx5e2xEPW8sei5wPXIsSS5UPW59fWw1PTN9fWZ1bmN0aW9uIHNFKCl7aWYoND09PWw1fHwzPT09bDUpe2w1PTAsZW4oKTt2YXIgZT1sMyx0PWw2LG49bDkscj1zZTswIT0oMTAyNTYmdC5zdWJ0cmVlRmxhZ3MpfHwwIT0oMTAyNTYmdC5mbGFncyk/bDU9NToobDU9MCxsNj1sMz1udWxsLHNqKGUsZS5wZW5kaW5nTGFuZXMpKTt2YXIgbz1lLnBlbmRpbmdMYW5lcztpZigwPT09byYmKGw0PW51bGwpLGVQKG4pLHQ9dC5zdGF0ZU5vZGUsZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uQ29tbWl0RmliZXJSb290KXRyeXtlcC5vbkNvbW1pdEZpYmVyUm9vdChlZix0LHZvaWQgMCwxMjg9PSgxMjgmdC5jdXJyZW50LmZsYWdzKSl9Y2F0Y2goZSl7fWlmKG51bGwhPT1yKXt0PUkuVCxvPXoucCx6LnA9MixJLlQ9bnVsbDt0cnl7Zm9yKHZhciBhPWUub25SZWNvdmVyYWJsZUVycm9yLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGw9cltpXTthKGwudmFsdWUse2NvbXBvbmVudFN0YWNrOmwuc3RhY2t9KX19ZmluYWxseXtJLlQ9dCx6LnA9b319MCE9KDMmbDkpJiZzUygpLHNxKGUpLG89ZS5wZW5kaW5nTGFuZXMsMCE9KDQxOTQwOTAmbikmJjAhPSg0MiZvKT9lPT09c24/c3QrKzooc3Q9MCxzbj1lKTpzdD0wLHNIKDAsITEpfX1mdW5jdGlvbiBzaihlLHQpezA9PShlLnBvb2xlZENhY2hlTGFuZXMmPXQpJiZudWxsIT0odD1lLnBvb2xlZENhY2hlKSYmKGUucG9vbGVkQ2FjaGU9bnVsbCxyMih0KSl9ZnVuY3Rpb24gc1MoZSl7cmV0dXJuIHNfKCksc2soKSxzRSgpLHNPKGUpfWZ1bmN0aW9uIHNPKCl7aWYoNSE9PWw1KXJldHVybiExO3ZhciBlPWwzLHQ9bDg7bDg9MDt2YXIgbj1lUChsOSkscj1JLlQsbz16LnA7dHJ5e3oucD0zMj5uPzMyOm4sSS5UPW51bGwsbj1sNyxsNz1udWxsO3ZhciBhPWwzLGk9bDk7aWYobDU9MCxsNj1sMz1udWxsLGw5PTAsMCE9KDYmbEQpKXRocm93IEVycm9yKGwoMzMxKSk7dmFyIHM9bEQ7aWYobER8PTQsbFAoYS5jdXJyZW50KSxsXyhhLGEuY3VycmVudCxpLG4pLGxEPXMsc0goMCwhMSksZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7ZXAub25Qb3N0Q29tbWl0RmliZXJSb290KGVmLGEpfWNhdGNoKGUpe31yZXR1cm4hMH1maW5hbGx5e3oucD1vLEkuVD1yLHNqKGUsdCl9fWZ1bmN0aW9uIHNCKGUsdCxuKXt0PXJ1KG4sdCksdD1pZyhlLnN0YXRlTm9kZSx0LDIpLG51bGwhPT0oZT1vayhlLHQsMikpJiYoZUUoZSwyKSxzcShlKSl9ZnVuY3Rpb24gc1AoZSx0LG4pe2lmKDM9PT1lLnRhZylzQihlLGUsbik7ZWxzZSBmb3IoO251bGwhPT10Oyl7aWYoMz09PXQudGFnKXtzQih0LGUsbik7YnJlYWt9aWYoMT09PXQudGFnKXt2YXIgcj10LnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PWw0fHwhbDQuaGFzKHIpKSl7ZT1ydShuLGUpLG51bGwhPT0ocj1vayh0LG49aXkoMiksMikpJiYoaXYobixyLHQsZSksZUUociwyKSxzcShyKSk7YnJlYWt9fXQ9dC5yZXR1cm59fWZ1bmN0aW9uIHNJKGUsdCxuKXt2YXIgcj1lLnBpbmdDYWNoZTtpZihudWxsPT09cil7cj1lLnBpbmdDYWNoZT1uZXcgbFQ7dmFyIG89bmV3IFNldDtyLnNldCh0LG8pfWVsc2Ugdm9pZCAwPT09KG89ci5nZXQodCkpJiYobz1uZXcgU2V0LHIuc2V0KHQsbykpO28uaGFzKG4pfHwobHE9ITAsby5hZGQobiksZT1zei5iaW5kKG51bGwsZSx0LG4pLHQudGhlbihlLGUpKX1mdW5jdGlvbiBzeihlLHQsbil7dmFyIHI9ZS5waW5nQ2FjaGU7bnVsbCE9PXImJnIuZGVsZXRlKHQpLGUucGluZ2VkTGFuZXN8PWUuc3VzcGVuZGVkTGFuZXMmbixlLndhcm1MYW5lcyY9fm4sbEw9PT1lJiYobFImbik9PT1uJiYoND09PWxWfHwzPT09bFYmJigweDNjMDAwMDAmbFIpPT09bFImJjMwMD5lcigpLWwwPzA9PSgyJmxEKSYmc2QoZSwwKTpsWXw9bixsWD09PWxSJiYobFg9MCkpLHNxKGUpfWZ1bmN0aW9uIHNUKGUsdCl7MD09PXQmJih0PWVfKCkpLG51bGwhPT0oZT1uMyhlLHQpKSYmKGVFKGUsdCksc3EoZSkpfWZ1bmN0aW9uIHNEKGUpe3ZhciB0PWUubWVtb2l6ZWRTdGF0ZSxuPTA7bnVsbCE9PXQmJihuPXQucmV0cnlMYW5lKSxzVChlLG4pfWZ1bmN0aW9uIHNMKGUsdCl7dmFyIG49MDtzd2l0Y2goZS50YWcpe2Nhc2UgMzE6Y2FzZSAxMzp2YXIgcj1lLnN0YXRlTm9kZSxvPWUubWVtb2l6ZWRTdGF0ZTtudWxsIT09byYmKG49by5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6cj1lLnN0YXRlTm9kZTticmVhaztjYXNlIDIyOnI9ZS5zdGF0ZU5vZGUuX3JldHJ5Q2FjaGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDMxNCkpfW51bGwhPT1yJiZyLmRlbGV0ZSh0KSxzVChlLG4pfXZhciBzTj1udWxsLHNSPW51bGwsc009ITEsc1o9ITEsc1U9ITEsc0Y9MDtmdW5jdGlvbiBzcShlKXtlIT09c1ImJm51bGw9PT1lLm5leHQmJihudWxsPT09c1I/c049c1I9ZTpzUj1zUi5uZXh0PWUpLHNaPSEwLHNNfHwoc009ITAsY3goZnVuY3Rpb24oKXswIT0oNiZsRCk/SihlYSxzVik6cyQoKX0pKX1mdW5jdGlvbiBzSChlLHQpe2lmKCFzVSYmc1ope3NVPSEwO2RvIGZvcih2YXIgbj0hMSxyPXNOO251bGwhPT1yOyl7aWYoIXQpaWYoMCE9PWUpe3ZhciBvPXIucGVuZGluZ0xhbmVzO2lmKDA9PT1vKXZhciBhPTA7ZWxzZXt2YXIgaT1yLnN1c3BlbmRlZExhbmVzLGw9ci5waW5nZWRMYW5lczthPTB4YzAwMDA5NSYoYT0oMTw8MzEtZW0oNDJ8ZSkrMSktMSYobyZ+KGkmfmwpKSk/MHhjMDAwMDk1JmF8MTphPzJ8YTowfTAhPT1hJiYobj0hMCxzSyhyLGEpKX1lbHNlIGE9bFIsMD09KDMmKGE9ZXgocixyPT09bEw/YTowLG51bGwhPT1yLmNhbmNlbFBlbmRpbmdDb21taXR8fC0xIT09ci50aW1lb3V0SGFuZGxlKSkpfHxldyhyLGEpfHwobj0hMCxzSyhyLGEpKTtyPXIubmV4dH13aGlsZShuKTtzVT0hMX19ZnVuY3Rpb24gc1YoKXtzJCgpfWZ1bmN0aW9uIHMkKCl7c1o9c009ITE7dmFyIGUsdD0wOzA9PT1zRnx8KChlPXdpbmRvdy5ldmVudCkmJlwicG9wc3RhdGVcIj09PWUudHlwZT9lPT09Y3l8fChjeT1lLDApOihjeT1udWxsLDEpKXx8KHQ9c0YpO2Zvcih2YXIgbj1lcigpLHI9bnVsbCxvPXNOO251bGwhPT1vOyl7dmFyIGE9by5uZXh0LGk9c1cobyxuKTswPT09aT8oby5uZXh0PW51bGwsbnVsbD09PXI/c049YTpyLm5leHQ9YSxudWxsPT09YSYmKHNSPXIpKToocj1vLCgwIT09dHx8MCE9KDMmaSkpJiYoc1o9ITApKSxvPWF9MCE9PWw1JiY1IT09bDV8fHNIKHQsITEpLDAhPT1zRiYmKHNGPTApfWZ1bmN0aW9uIHNXKGUsdCl7Zm9yKHZhciBuPWUuc3VzcGVuZGVkTGFuZXMscj1lLnBpbmdlZExhbmVzLG89ZS5leHBpcmF0aW9uVGltZXMsYT0tMHgzYzAwMDAxJmUucGVuZGluZ0xhbmVzOzA8YTspe3ZhciBpPTMxLWVtKGEpLGw9MTw8aSxzPW9baV07LTE9PT1zPygwPT0obCZuKXx8MCE9KGwmcikpJiYob1tpXT1mdW5jdGlvbihlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDg6Y2FzZSA2NDpyZXR1cm4gdCsyNTA7Y2FzZSAxNjpjYXNlIDMyOmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiB0KzVlMztkZWZhdWx0OnJldHVybiAtMX19KGwsdCkpOnM8PXQmJihlLmV4cGlyZWRMYW5lc3w9bCksYSY9fmx9aWYodD1sTCxuPWxSLG49ZXgoZSxlPT09dD9uOjAsbnVsbCE9PWUuY2FuY2VsUGVuZGluZ0NvbW1pdHx8LTEhPT1lLnRpbWVvdXRIYW5kbGUpLHI9ZS5jYWxsYmFja05vZGUsMD09PW58fGU9PT10JiYoMj09PWxNfHw5PT09bE0pfHxudWxsIT09ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KXJldHVybiBudWxsIT09ciYmbnVsbCE9PXImJmVlKHIpLGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTA7aWYoMD09KDMmbil8fGV3KGUsbikpe2lmKCh0PW4mLW4pPT09ZS5jYWxsYmFja1ByaW9yaXR5KXJldHVybiB0O3N3aXRjaChudWxsIT09ciYmZWUociksZVAobikpe2Nhc2UgMjpjYXNlIDg6bj1laTticmVhaztjYXNlIDMyOmRlZmF1bHQ6bj1lbDticmVhaztjYXNlIDB4MTAwMDAwMDA6bj1lY31yZXR1cm4gbj1KKG4scj1zWS5iaW5kKG51bGwsZSkpLGUuY2FsbGJhY2tQcmlvcml0eT10LGUuY2FsbGJhY2tOb2RlPW4sdH1yZXR1cm4gbnVsbCE9PXImJm51bGwhPT1yJiZlZShyKSxlLmNhbGxiYWNrUHJpb3JpdHk9MixlLmNhbGxiYWNrTm9kZT1udWxsLDJ9ZnVuY3Rpb24gc1koZSx0KXtpZigwIT09bDUmJjUhPT1sNSlyZXR1cm4gZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MCxudWxsO3ZhciBuPWUuY2FsbGJhY2tOb2RlO2lmKHNTKCEwKSYmZS5jYWxsYmFja05vZGUhPT1uKXJldHVybiBudWxsO3ZhciByPWxSO3JldHVybiAwPT09KHI9ZXgoZSxlPT09bEw/cjowLG51bGwhPT1lLmNhbmNlbFBlbmRpbmdDb21taXR8fC0xIT09ZS50aW1lb3V0SGFuZGxlKSk/bnVsbDooc2koZSxyLHQpLHNXKGUsZXIoKSksbnVsbCE9ZS5jYWxsYmFja05vZGUmJmUuY2FsbGJhY2tOb2RlPT09bj9zWS5iaW5kKG51bGwsZSk6bnVsbCl9ZnVuY3Rpb24gc0soZSx0KXtpZihzUygpKXJldHVybiBudWxsO3NpKGUsdCwhMCl9ZnVuY3Rpb24gc1goKXtpZigwPT09c0Ype3ZhciBlPXIzO3NGPTAhPT1lP2U6ZUMoKX1yZXR1cm4gc0Z9ZnVuY3Rpb24gc0coZSl7cmV0dXJuIG51bGw9PWV8fFwic3ltYm9sXCI9PXR5cGVvZiBlfHxcImJvb2xlYW5cIj09dHlwZW9mIGU/bnVsbDpcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6dG0oXCJcIitlKX1mdW5jdGlvbiBzUShlLHQpe3ZhciBuPXQub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7cmV0dXJuIG4ubmFtZT10Lm5hbWUsbi52YWx1ZT10LnZhbHVlLGUuaWQmJm4uc2V0QXR0cmlidXRlKFwiZm9ybVwiLGUuaWQpLHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobix0KSxlPW5ldyBGb3JtRGF0YShlKSxuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobiksZX1mb3IodmFyIHNKPTA7c0o8blgubGVuZ3RoO3NKKyspe3ZhciBzMD1uWFtzSl07bkcoczAudG9Mb3dlckNhc2UoKSxcIm9uXCIrKHMwWzBdLnRvVXBwZXJDYXNlKCkrczAuc2xpY2UoMSkpKX1uRyhuRixcIm9uQW5pbWF0aW9uRW5kXCIpLG5HKG5xLFwib25BbmltYXRpb25JdGVyYXRpb25cIiksbkcobkgsXCJvbkFuaW1hdGlvblN0YXJ0XCIpLG5HKFwiZGJsY2xpY2tcIixcIm9uRG91YmxlQ2xpY2tcIiksbkcoXCJmb2N1c2luXCIsXCJvbkZvY3VzXCIpLG5HKFwiZm9jdXNvdXRcIixcIm9uQmx1clwiKSxuRyhuVixcIm9uVHJhbnNpdGlvblJ1blwiKSxuRyhuJCxcIm9uVHJhbnNpdGlvblN0YXJ0XCIpLG5HKG5XLFwib25UcmFuc2l0aW9uQ2FuY2VsXCIpLG5HKG5ZLFwib25UcmFuc2l0aW9uRW5kXCIpLGVRKFwib25Nb3VzZUVudGVyXCIsW1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXSksZVEoXCJvbk1vdXNlTGVhdmVcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKSxlUShcIm9uUG9pbnRlckVudGVyXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pLGVRKFwib25Qb2ludGVyTGVhdmVcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSksZUcoXCJvbkNoYW5nZVwiLFwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpLGVHKFwib25TZWxlY3RcIixcImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKSksZUcoXCJvbkJlZm9yZUlucHV0XCIsW1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdKSxlRyhcIm9uQ29tcG9zaXRpb25FbmRcIixcImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKSxlRyhcIm9uQ29tcG9zaXRpb25TdGFydFwiLFwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSksZUcoXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7dmFyIHMxPVwiYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmdcIi5zcGxpdChcIiBcIiksczI9bmV3IFNldChcImJlZm9yZXRvZ2dsZSBjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCBzY3JvbGxlbmQgdG9nZ2xlXCIuc3BsaXQoXCIgXCIpLmNvbmNhdChzMSkpO2Z1bmN0aW9uIHM0KGUsdCl7dD0wIT0oNCZ0KTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXSxvPXIuZXZlbnQ7cj1yLmxpc3RlbmVycztlOnt2YXIgYT12b2lkIDA7aWYodClmb3IodmFyIGk9ci5sZW5ndGgtMTswPD1pO2ktLSl7dmFyIGw9cltpXSxzPWwuaW5zdGFuY2UsYz1sLmN1cnJlbnRUYXJnZXQ7aWYobD1sLmxpc3RlbmVyLHMhPT1hJiZvLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTthPWwsby5jdXJyZW50VGFyZ2V0PWM7dHJ5e2Eobyl9Y2F0Y2goZSl7blEoZSl9by5jdXJyZW50VGFyZ2V0PW51bGwsYT1zfWVsc2UgZm9yKGk9MDtpPHIubGVuZ3RoO2krKyl7aWYocz0obD1yW2ldKS5pbnN0YW5jZSxjPWwuY3VycmVudFRhcmdldCxsPWwubGlzdGVuZXIscyE9PWEmJm8uaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBlO2E9bCxvLmN1cnJlbnRUYXJnZXQ9Yzt0cnl7YShvKX1jYXRjaChlKXtuUShlKX1vLmN1cnJlbnRUYXJnZXQ9bnVsbCxhPXN9fX19ZnVuY3Rpb24gczUoZSx0KXt2YXIgbj10W2VSXTt2b2lkIDA9PT1uJiYobj10W2VSXT1uZXcgU2V0KTt2YXIgcj1lK1wiX19idWJibGVcIjtuLmhhcyhyKXx8KHM4KHQsZSwyLCExKSxuLmFkZChyKSl9ZnVuY3Rpb24gczMoZSx0LG4pe3ZhciByPTA7dCYmKHJ8PTQpLHM4KG4sZSxyLHQpfXZhciBzNj1cIl9yZWFjdExpc3RlbmluZ1wiK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIHM5KGUpe2lmKCFlW3M2XSl7ZVtzNl09ITAsZUsuZm9yRWFjaChmdW5jdGlvbih0KXtcInNlbGVjdGlvbmNoYW5nZVwiIT09dCYmKHMyLmhhcyh0KXx8czModCwhMSxlKSxzMyh0LCEwLGUpKX0pO3ZhciB0PTk9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50O251bGw9PT10fHx0W3M2XXx8KHRbczZdPSEwLHMzKFwic2VsZWN0aW9uY2hhbmdlXCIsITEsdCkpfX1mdW5jdGlvbiBzOChlLHQsbixyKXtzd2l0Y2godWQodCkpe2Nhc2UgMjp2YXIgbz11YTticmVhaztjYXNlIDg6bz11aTticmVhaztkZWZhdWx0Om89dWx9bj1vLmJpbmQobnVsbCx0LG4sZSksbz12b2lkIDAsdEUmJihcInRvdWNoc3RhcnRcIj09PXR8fFwidG91Y2htb3ZlXCI9PT10fHxcIndoZWVsXCI9PT10KSYmKG89ITApLHI/dm9pZCAwIT09bz9lLmFkZEV2ZW50TGlzdGVuZXIodCxuLHtjYXB0dXJlOiEwLHBhc3NpdmU6b30pOmUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sITApOnZvaWQgMCE9PW8/ZS5hZGRFdmVudExpc3RlbmVyKHQsbix7cGFzc2l2ZTpvfSk6ZS5hZGRFdmVudExpc3RlbmVyKHQsbiwhMSl9ZnVuY3Rpb24gczcoZSx0LG4scixvKXt2YXIgYT1yO2lmKDA9PSgxJnQpJiYwPT0oMiZ0KSYmbnVsbCE9PXIpZTpmb3IoOzspe2lmKG51bGw9PT1yKXJldHVybjt2YXIgaT1yLnRhZztpZigzPT09aXx8ND09PWkpe3ZhciBsPXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYobD09PW8pYnJlYWs7aWYoND09PWkpZm9yKGk9ci5yZXR1cm47bnVsbCE9PWk7KXt2YXIgYz1pLnRhZztpZigoMz09PWN8fDQ9PT1jKSYmaS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PW8pcmV0dXJuO2k9aS5yZXR1cm59Zm9yKDtudWxsIT09bDspe2lmKG51bGw9PT0oaT1lSChsKSkpcmV0dXJuO2lmKDU9PT0oYz1pLnRhZyl8fDY9PT1jfHwyNj09PWN8fDI3PT09Yyl7cj1hPWk7Y29udGludWUgZX1sPWwucGFyZW50Tm9kZX19cj1yLnJldHVybn10QyhmdW5jdGlvbigpe3ZhciByPWEsbz10dihuKSxpPVtdO2U6e3ZhciBsPW5LLmdldChlKTtpZih2b2lkIDAhPT1sKXt2YXIgYz10Rix1PWU7c3dpdGNoKGUpe2Nhc2VcImtleXByZXNzXCI6aWYoMD09PXRJKG4pKWJyZWFrIGU7Y2FzZVwia2V5ZG93blwiOmNhc2VcImtleXVwXCI6Yz10NDticmVhaztjYXNlXCJmb2N1c2luXCI6dT1cImZvY3VzXCIsYz10WTticmVhaztjYXNlXCJmb2N1c291dFwiOnU9XCJibHVyXCIsYz10WTticmVhaztjYXNlXCJiZWZvcmVibHVyXCI6Y2FzZVwiYWZ0ZXJibHVyXCI6Yz10WTticmVhaztjYXNlXCJjbGlja1wiOmlmKDI9PT1uLmJ1dHRvbilicmVhayBlO2Nhc2VcImF1eGNsaWNrXCI6Y2FzZVwiZGJsY2xpY2tcIjpjYXNlXCJtb3VzZWRvd25cIjpjYXNlXCJtb3VzZW1vdmVcIjpjYXNlXCJtb3VzZXVwXCI6Y2FzZVwibW91c2VvdXRcIjpjYXNlXCJtb3VzZW92ZXJcIjpjYXNlXCJjb250ZXh0bWVudVwiOmM9dCQ7YnJlYWs7Y2FzZVwiZHJhZ1wiOmNhc2VcImRyYWdlbmRcIjpjYXNlXCJkcmFnZW50ZXJcIjpjYXNlXCJkcmFnZXhpdFwiOmNhc2VcImRyYWdsZWF2ZVwiOmNhc2VcImRyYWdvdmVyXCI6Y2FzZVwiZHJhZ3N0YXJ0XCI6Y2FzZVwiZHJvcFwiOmM9dFc7YnJlYWs7Y2FzZVwidG91Y2hjYW5jZWxcIjpjYXNlXCJ0b3VjaGVuZFwiOmNhc2VcInRvdWNobW92ZVwiOmNhc2VcInRvdWNoc3RhcnRcIjpjPXQzO2JyZWFrO2Nhc2UgbkY6Y2FzZSBucTpjYXNlIG5IOmM9dEs7YnJlYWs7Y2FzZSBuWTpjPXQ2O2JyZWFrO2Nhc2VcInNjcm9sbFwiOmNhc2VcInNjcm9sbGVuZFwiOmM9dEg7YnJlYWs7Y2FzZVwid2hlZWxcIjpjPXQ5O2JyZWFrO2Nhc2VcImNvcHlcIjpjYXNlXCJjdXRcIjpjYXNlXCJwYXN0ZVwiOmM9dFg7YnJlYWs7Y2FzZVwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpjYXNlXCJwb2ludGVyY2FuY2VsXCI6Y2FzZVwicG9pbnRlcmRvd25cIjpjYXNlXCJwb2ludGVybW92ZVwiOmNhc2VcInBvaW50ZXJvdXRcIjpjYXNlXCJwb2ludGVyb3ZlclwiOmNhc2VcInBvaW50ZXJ1cFwiOmM9dDU7YnJlYWs7Y2FzZVwidG9nZ2xlXCI6Y2FzZVwiYmVmb3JldG9nZ2xlXCI6Yz10OH12YXIgZD0wIT0oNCZ0KSxmPSFkJiYoXCJzY3JvbGxcIj09PWV8fFwic2Nyb2xsZW5kXCI9PT1lKSxwPWQ/bnVsbCE9PWw/bCtcIkNhcHR1cmVcIjpudWxsOmw7ZD1bXTtmb3IodmFyIGgsbT1yO251bGwhPT1tOyl7dmFyIGc9bTtpZihoPWcuc3RhdGVOb2RlLDUhPT0oZz1nLnRhZykmJjI2IT09ZyYmMjchPT1nfHxudWxsPT09aHx8bnVsbD09PXB8fG51bGwhPShnPXRfKG0scCkpJiZkLnB1c2goY2UobSxnLGgpKSxmKWJyZWFrO209bS5yZXR1cm59MDxkLmxlbmd0aCYmKGw9bmV3IGMobCx1LG51bGwsbixvKSxpLnB1c2goe2V2ZW50OmwsbGlzdGVuZXJzOmR9KSl9fWlmKDA9PSg3JnQpKXtpZigobD1cIm1vdXNlb3ZlclwiPT09ZXx8XCJwb2ludGVyb3ZlclwiPT09ZSxjPVwibW91c2VvdXRcIj09PWV8fFwicG9pbnRlcm91dFwiPT09ZSwhKGwmJm4hPT10eSYmKHU9bi5yZWxhdGVkVGFyZ2V0fHxuLmZyb21FbGVtZW50KSYmKGVIKHUpfHx1W2VOXSkpKSYmKGN8fGwpJiYobD1vLndpbmRvdz09PW8/bzoobD1vLm93bmVyRG9jdW1lbnQpP2wuZGVmYXVsdFZpZXd8fGwucGFyZW50V2luZG93OndpbmRvdyxjPyh1PW4ucmVsYXRlZFRhcmdldHx8bi50b0VsZW1lbnQsYz1yLG51bGwhPT0odT11P2VIKHUpOm51bGwpJiYoZj1zKHUpLGQ9dS50YWcsdSE9PWZ8fDUhPT1kJiYyNyE9PWQmJjYhPT1kKSYmKHU9bnVsbCkpOihjPW51bGwsdT1yKSxjIT09dSkpe2lmKGQ9dCQsZz1cIm9uTW91c2VMZWF2ZVwiLHA9XCJvbk1vdXNlRW50ZXJcIixtPVwibW91c2VcIiwoXCJwb2ludGVyb3V0XCI9PT1lfHxcInBvaW50ZXJvdmVyXCI9PT1lKSYmKGQ9dDUsZz1cIm9uUG9pbnRlckxlYXZlXCIscD1cIm9uUG9pbnRlckVudGVyXCIsbT1cInBvaW50ZXJcIiksZj1udWxsPT1jP2w6ZSQoYyksaD1udWxsPT11P2w6ZSQodSksKGw9bmV3IGQoZyxtK1wibGVhdmVcIixjLG4sbykpLnRhcmdldD1mLGwucmVsYXRlZFRhcmdldD1oLGc9bnVsbCxlSChvKT09PXImJigoZD1uZXcgZChwLG0rXCJlbnRlclwiLHUsbixvKSkudGFyZ2V0PWgsZC5yZWxhdGVkVGFyZ2V0PWYsZz1kKSxmPWcsYyYmdSl0Ontmb3IoZD1jbixwPWMsbT11LGg9MCxnPXA7ZztnPWQoZykpaCsrO2c9MDtmb3IodmFyIHksdj1tO3Y7dj1kKHYpKWcrKztmb3IoOzA8aC1nOylwPWQocCksaC0tO2Zvcig7MDxnLWg7KW09ZChtKSxnLS07Zm9yKDtoLS07KXtpZihwPT09bXx8bnVsbCE9PW0mJnA9PT1tLmFsdGVybmF0ZSl7ZD1wO2JyZWFrIHR9cD1kKHApLG09ZChtKX1kPW51bGx9ZWxzZSBkPW51bGw7bnVsbCE9PWMmJmNyKGksbCxjLGQsITEpLG51bGwhPT11JiZudWxsIT09ZiYmY3IoaSxmLHUsZCwhMCl9ZTp7aWYoXCJzZWxlY3RcIj09PShjPShsPXI/ZSQocik6d2luZG93KS5ub2RlTmFtZSYmbC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXx8XCJpbnB1dFwiPT09YyYmXCJmaWxlXCI9PT1sLnR5cGUpdmFyIGI9bm07ZWxzZSBpZihuYyhsKSlpZihuZyliPW5fO2Vsc2V7Yj1udzt2YXIgQT1ueH1lbHNlKGM9bC5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWMudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWwudHlwZXx8XCJyYWRpb1wiPT09bC50eXBlKT9iPW5DOnImJnRmKHIuZWxlbWVudFR5cGUpJiYoYj1ubSk7aWYoYiYmKGI9YihlLHIpKSl7bnUoaSxiLG4sbyk7YnJlYWsgZX1BJiZBKGUsbCxyKSxcImZvY3Vzb3V0XCI9PT1lJiZyJiZcIm51bWJlclwiPT09bC50eXBlJiZudWxsIT1yLm1lbW9pemVkUHJvcHMudmFsdWUmJnRvKGwsXCJudW1iZXJcIixsLnZhbHVlKX1zd2l0Y2goQT1yP2UkKHIpOndpbmRvdyxlKXtjYXNlXCJmb2N1c2luXCI6KG5jKEEpfHxcInRydWVcIj09PUEuY29udGVudEVkaXRhYmxlKSYmKG5JPUEsbno9cixuVD1udWxsKTticmVhaztjYXNlXCJmb2N1c291dFwiOm5UPW56PW5JPW51bGw7YnJlYWs7Y2FzZVwibW91c2Vkb3duXCI6bkQ9ITA7YnJlYWs7Y2FzZVwiY29udGV4dG1lbnVcIjpjYXNlXCJtb3VzZXVwXCI6Y2FzZVwiZHJhZ2VuZFwiOm5EPSExLG5MKGksbixvKTticmVhaztjYXNlXCJzZWxlY3Rpb25jaGFuZ2VcIjppZihuUClicmVhaztjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5dXBcIjpuTChpLG4sbyl9aWYobmUpdDp7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uc3RhcnRcIjp2YXIgeD1cIm9uQ29tcG9zaXRpb25TdGFydFwiO2JyZWFrIHQ7Y2FzZVwiY29tcG9zaXRpb25lbmRcIjp4PVwib25Db21wb3NpdGlvbkVuZFwiO2JyZWFrIHQ7Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjp4PVwib25Db21wb3NpdGlvblVwZGF0ZVwiO2JyZWFrIHR9eD12b2lkIDB9ZWxzZSBubD9uYShlLG4pJiYoeD1cIm9uQ29tcG9zaXRpb25FbmRcIik6XCJrZXlkb3duXCI9PT1lJiYyMjk9PT1uLmtleUNvZGUmJih4PVwib25Db21wb3NpdGlvblN0YXJ0XCIpO3gmJihuciYmXCJrb1wiIT09bi5sb2NhbGUmJihubHx8XCJvbkNvbXBvc2l0aW9uU3RhcnRcIiE9PXg/XCJvbkNvbXBvc2l0aW9uRW5kXCI9PT14JiZubCYmKHk9dFAoKSk6KHRPPVwidmFsdWVcImluKHRTPW8pP3RTLnZhbHVlOnRTLnRleHRDb250ZW50LG5sPSEwKSksMDwoQT1jdChyLHgpKS5sZW5ndGgmJih4PW5ldyB0Ryh4LGUsbnVsbCxuLG8pLGkucHVzaCh7ZXZlbnQ6eCxsaXN0ZW5lcnM6QX0pLHk/eC5kYXRhPXk6bnVsbCE9PSh5PW5pKG4pKSYmKHguZGF0YT15KSkpLCh5PW5uP2Z1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIG5pKHQpO2Nhc2VcImtleXByZXNzXCI6aWYoMzIhPT10LndoaWNoKXJldHVybiBudWxsO3JldHVybiBubz0hMCxcIiBcIjtjYXNlXCJ0ZXh0SW5wdXRcIjpyZXR1cm5cIiBcIj09PShlPXQuZGF0YSkmJm5vP251bGw6ZTtkZWZhdWx0OnJldHVybiBudWxsfX0oZSxuKTpmdW5jdGlvbihlLHQpe2lmKG5sKXJldHVyblwiY29tcG9zaXRpb25lbmRcIj09PWV8fCFuZSYmbmEoZSx0KT8oZT10UCgpLHRCPXRPPXRTPW51bGwsbmw9ITEsZSk6bnVsbDtzd2l0Y2goZSl7Y2FzZVwicGFzdGVcIjpkZWZhdWx0OnJldHVybiBudWxsO2Nhc2VcImtleXByZXNzXCI6aWYoISh0LmN0cmxLZXl8fHQuYWx0S2V5fHx0Lm1ldGFLZXkpfHx0LmN0cmxLZXkmJnQuYWx0S2V5KXtpZih0LmNoYXImJjE8dC5jaGFyLmxlbmd0aClyZXR1cm4gdC5jaGFyO2lmKHQud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodC53aGljaCl9cmV0dXJuIG51bGw7Y2FzZVwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gbnImJlwia29cIiE9PXQubG9jYWxlP251bGw6dC5kYXRhfX0oZSxuKSkmJjA8KHg9Y3QocixcIm9uQmVmb3JlSW5wdXRcIikpLmxlbmd0aCYmKEE9bmV3IHRHKFwib25CZWZvcmVJbnB1dFwiLFwiYmVmb3JlaW5wdXRcIixudWxsLG4sbyksaS5wdXNoKHtldmVudDpBLGxpc3RlbmVyczp4fSksQS5kYXRhPXkpO3ZhciB3PWU7aWYoXCJzdWJtaXRcIj09PXcmJnImJnIuc3RhdGVOb2RlPT09byl7dmFyIEM9c0coKG9bZUxdfHxudWxsKS5hY3Rpb24pLF89bi5zdWJtaXR0ZXI7XyYmbnVsbCE9PSh3PSh3PV9bZUxdfHxudWxsKT9zRyh3LmZvcm1BY3Rpb24pOl8uZ2V0QXR0cmlidXRlKFwiZm9ybUFjdGlvblwiKSkmJihDPXcsXz1udWxsKTt2YXIgaz1uZXcgdEYoXCJhY3Rpb25cIixcImFjdGlvblwiLG51bGwsbixvKTtpLnB1c2goe2V2ZW50OmssbGlzdGVuZXJzOlt7aW5zdGFuY2U6bnVsbCxsaXN0ZW5lcjpmdW5jdGlvbigpe2lmKG4uZGVmYXVsdFByZXZlbnRlZCl7aWYoMCE9PXNGKXt2YXIgZT1fP3NRKG8sXyk6bmV3IEZvcm1EYXRhKG8pO2FYKHIse3BlbmRpbmc6ITAsZGF0YTplLG1ldGhvZDpvLm1ldGhvZCxhY3Rpb246Q30sbnVsbCxlKX19ZWxzZVwiZnVuY3Rpb25cIj09dHlwZW9mIEMmJihrLnByZXZlbnREZWZhdWx0KCksYVgocix7cGVuZGluZzohMCxkYXRhOmU9Xz9zUShvLF8pOm5ldyBGb3JtRGF0YShvKSxtZXRob2Q6by5tZXRob2QsYWN0aW9uOkN9LEMsZSkpfSxjdXJyZW50VGFyZ2V0Om99XX0pfX1zNChpLHQpfSl9ZnVuY3Rpb24gY2UoZSx0LG4pe3JldHVybntpbnN0YW5jZTplLGxpc3RlbmVyOnQsY3VycmVudFRhcmdldDpufX1mdW5jdGlvbiBjdChlLHQpe2Zvcih2YXIgbj10K1wiQ2FwdHVyZVwiLHI9W107bnVsbCE9PWU7KXt2YXIgbz1lLGE9by5zdGF0ZU5vZGU7aWYoNSE9PShvPW8udGFnKSYmMjYhPT1vJiYyNyE9PW98fG51bGw9PT1hfHwobnVsbCE9KG89dF8oZSxuKSkmJnIudW5zaGlmdChjZShlLG8sYSkpLG51bGwhPShvPXRfKGUsdCkpJiZyLnB1c2goY2UoZSxvLGEpKSksMz09PWUudGFnKXJldHVybiByO2U9ZS5yZXR1cm59cmV0dXJuW119ZnVuY3Rpb24gY24oZSl7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7ZG8gZT1lLnJldHVybjt3aGlsZShlJiY1IT09ZS50YWcmJjI3IT09ZS50YWcpO3JldHVybiBlfHxudWxsfWZ1bmN0aW9uIGNyKGUsdCxuLHIsbyl7Zm9yKHZhciBhPXQuX3JlYWN0TmFtZSxpPVtdO251bGwhPT1uJiZuIT09cjspe3ZhciBsPW4scz1sLmFsdGVybmF0ZSxjPWwuc3RhdGVOb2RlO2lmKGw9bC50YWcsbnVsbCE9PXMmJnM9PT1yKWJyZWFrOzUhPT1sJiYyNiE9PWwmJjI3IT09bHx8bnVsbD09PWN8fChzPWMsbz9udWxsIT0oYz10XyhuLGEpKSYmaS51bnNoaWZ0KGNlKG4sYyxzKSk6b3x8bnVsbCE9KGM9dF8obixhKSkmJmkucHVzaChjZShuLGMscykpKSxuPW4ucmV0dXJufTAhPT1pLmxlbmd0aCYmZS5wdXNoKHtldmVudDp0LGxpc3RlbmVyczppfSl9dmFyIGNvPS9cXHJcXG4/L2csY2E9L1xcdTAwMDB8XFx1RkZGRC9nO2Z1bmN0aW9uIGNpKGUpe3JldHVybihcInN0cmluZ1wiPT10eXBlb2YgZT9lOlwiXCIrZSkucmVwbGFjZShjbyxcIlxcblwiKS5yZXBsYWNlKGNhLFwiXCIpfWZ1bmN0aW9uIGNsKGUsdCl7cmV0dXJuIHQ9Y2kodCksY2koZSk9PT10fWZ1bmN0aW9uIGNzKGUsdCxuLHIsbyxhKXtzd2l0Y2gobil7Y2FzZVwiY2hpbGRyZW5cIjpcInN0cmluZ1wiPT10eXBlb2Ygcj9cImJvZHlcIj09PXR8fFwidGV4dGFyZWFcIj09PXQmJlwiXCI9PT1yfHx0cyhlLHIpOihcIm51bWJlclwiPT10eXBlb2Ygcnx8XCJiaWdpbnRcIj09dHlwZW9mIHIpJiZcImJvZHlcIiE9PXQmJnRzKGUsXCJcIityKTticmVhaztjYXNlXCJjbGFzc05hbWVcIjplNChlLFwiY2xhc3NcIixyKTticmVhaztjYXNlXCJ0YWJJbmRleFwiOmU0KGUsXCJ0YWJpbmRleFwiLHIpO2JyZWFrO2Nhc2VcImRpclwiOmNhc2VcInJvbGVcIjpjYXNlXCJ2aWV3Qm94XCI6Y2FzZVwid2lkdGhcIjpjYXNlXCJoZWlnaHRcIjplNChlLG4scik7YnJlYWs7Y2FzZVwic3R5bGVcIjp0ZChlLHIsYSk7YnJlYWs7Y2FzZVwiZGF0YVwiOmlmKFwib2JqZWN0XCIhPT10KXtlNChlLFwiZGF0YVwiLHIpO2JyZWFrfWNhc2VcInNyY1wiOmNhc2VcImhyZWZcIjppZihcIlwiPT09ciYmKFwiYVwiIT09dHx8XCJocmVmXCIhPT1uKXx8bnVsbD09cnx8XCJmdW5jdGlvblwiPT10eXBlb2Ygcnx8XCJzeW1ib2xcIj09dHlwZW9mIHJ8fFwiYm9vbGVhblwiPT10eXBlb2Ygcil7ZS5yZW1vdmVBdHRyaWJ1dGUobik7YnJlYWt9cj10bShcIlwiK3IpLGUuc2V0QXR0cmlidXRlKG4scik7YnJlYWs7Y2FzZVwiYWN0aW9uXCI6Y2FzZVwiZm9ybUFjdGlvblwiOmlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpe2Uuc2V0QXR0cmlidXRlKG4sXCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignQSBSZWFjdCBmb3JtIHdhcyB1bmV4cGVjdGVkbHkgc3VibWl0dGVkLiBJZiB5b3UgY2FsbGVkIGZvcm0uc3VibWl0KCkgbWFudWFsbHksIGNvbnNpZGVyIHVzaW5nIGZvcm0ucmVxdWVzdFN1Ym1pdCgpIGluc3RlYWQuIElmIHlvdVxcXFwncmUgdHJ5aW5nIHRvIHVzZSBldmVudC5zdG9wUHJvcGFnYXRpb24oKSBpbiBhIHN1Ym1pdCBldmVudCBoYW5kbGVyLCBjb25zaWRlciBhbHNvIGNhbGxpbmcgZXZlbnQucHJldmVudERlZmF1bHQoKS4nKVwiKTticmVha31pZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBhJiYoXCJmb3JtQWN0aW9uXCI9PT1uPyhcImlucHV0XCIhPT10JiZjcyhlLHQsXCJuYW1lXCIsby5uYW1lLG8sbnVsbCksY3MoZSx0LFwiZm9ybUVuY1R5cGVcIixvLmZvcm1FbmNUeXBlLG8sbnVsbCksY3MoZSx0LFwiZm9ybU1ldGhvZFwiLG8uZm9ybU1ldGhvZCxvLG51bGwpLGNzKGUsdCxcImZvcm1UYXJnZXRcIixvLmZvcm1UYXJnZXQsbyxudWxsKSk6KGNzKGUsdCxcImVuY1R5cGVcIixvLmVuY1R5cGUsbyxudWxsKSxjcyhlLHQsXCJtZXRob2RcIixvLm1ldGhvZCxvLG51bGwpLGNzKGUsdCxcInRhcmdldFwiLG8udGFyZ2V0LG8sbnVsbCkpKSxudWxsPT1yfHxcInN5bWJvbFwiPT10eXBlb2Ygcnx8XCJib29sZWFuXCI9PXR5cGVvZiByKXtlLnJlbW92ZUF0dHJpYnV0ZShuKTticmVha31yPXRtKFwiXCIrciksZS5zZXRBdHRyaWJ1dGUobixyKTticmVhaztjYXNlXCJvbkNsaWNrXCI6bnVsbCE9ciYmKGUub25jbGljaz10Zyk7YnJlYWs7Y2FzZVwib25TY3JvbGxcIjpudWxsIT1yJiZzNShcInNjcm9sbFwiLGUpO2JyZWFrO2Nhc2VcIm9uU2Nyb2xsRW5kXCI6bnVsbCE9ciYmczUoXCJzY3JvbGxlbmRcIixlKTticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXIpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiByfHwhKFwiX19odG1sXCJpbiByKSl0aHJvdyBFcnJvcihsKDYxKSk7aWYobnVsbCE9KG49ci5fX2h0bWwpKXtpZihudWxsIT1vLmNoaWxkcmVuKXRocm93IEVycm9yKGwoNjApKTtlLmlubmVySFRNTD1ufX1icmVhaztjYXNlXCJtdWx0aXBsZVwiOmUubXVsdGlwbGU9ciYmXCJmdW5jdGlvblwiIT10eXBlb2YgciYmXCJzeW1ib2xcIiE9dHlwZW9mIHI7YnJlYWs7Y2FzZVwibXV0ZWRcIjplLm11dGVkPXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByO2JyZWFrO2Nhc2VcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiOmNhc2VcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiOmNhc2VcImRlZmF1bHRWYWx1ZVwiOmNhc2VcImRlZmF1bHRDaGVja2VkXCI6Y2FzZVwiaW5uZXJIVE1MXCI6Y2FzZVwicmVmXCI6Y2FzZVwiYXV0b0ZvY3VzXCI6Y2FzZVwiaW5uZXJUZXh0XCI6Y2FzZVwidGV4dENvbnRlbnRcIjpicmVhaztjYXNlXCJ4bGlua0hyZWZcIjppZihudWxsPT1yfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByfHxcImJvb2xlYW5cIj09dHlwZW9mIHJ8fFwic3ltYm9sXCI9PXR5cGVvZiByKXtlLnJlbW92ZUF0dHJpYnV0ZShcInhsaW5rOmhyZWZcIik7YnJlYWt9bj10bShcIlwiK3IpLGUuc2V0QXR0cmlidXRlTlMoXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazpocmVmXCIsbik7YnJlYWs7Y2FzZVwiY29udGVudEVkaXRhYmxlXCI6Y2FzZVwic3BlbGxDaGVja1wiOmNhc2VcImRyYWdnYWJsZVwiOmNhc2VcInZhbHVlXCI6Y2FzZVwiYXV0b1JldmVyc2VcIjpjYXNlXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCI6Y2FzZVwiZm9jdXNhYmxlXCI6Y2FzZVwicHJlc2VydmVBbHBoYVwiOm51bGwhPXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByP2Uuc2V0QXR0cmlidXRlKG4sXCJcIityKTplLnJlbW92ZUF0dHJpYnV0ZShuKTticmVhaztjYXNlXCJpbmVydFwiOmNhc2VcImFsbG93RnVsbFNjcmVlblwiOmNhc2VcImFzeW5jXCI6Y2FzZVwiYXV0b1BsYXlcIjpjYXNlXCJjb250cm9sc1wiOmNhc2VcImRlZmF1bHRcIjpjYXNlXCJkZWZlclwiOmNhc2VcImRpc2FibGVkXCI6Y2FzZVwiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVcIjpjYXNlXCJkaXNhYmxlUmVtb3RlUGxheWJhY2tcIjpjYXNlXCJmb3JtTm9WYWxpZGF0ZVwiOmNhc2VcImhpZGRlblwiOmNhc2VcImxvb3BcIjpjYXNlXCJub01vZHVsZVwiOmNhc2VcIm5vVmFsaWRhdGVcIjpjYXNlXCJvcGVuXCI6Y2FzZVwicGxheXNJbmxpbmVcIjpjYXNlXCJyZWFkT25seVwiOmNhc2VcInJlcXVpcmVkXCI6Y2FzZVwicmV2ZXJzZWRcIjpjYXNlXCJzY29wZWRcIjpjYXNlXCJzZWFtbGVzc1wiOmNhc2VcIml0ZW1TY29wZVwiOnImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByP2Uuc2V0QXR0cmlidXRlKG4sXCJcIik6ZS5yZW1vdmVBdHRyaWJ1dGUobik7YnJlYWs7Y2FzZVwiY2FwdHVyZVwiOmNhc2VcImRvd25sb2FkXCI6ITA9PT1yP2Uuc2V0QXR0cmlidXRlKG4sXCJcIik6ITEhPT1yJiZudWxsIT1yJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiZcInN5bWJvbFwiIT10eXBlb2Ygcj9lLnNldEF0dHJpYnV0ZShuLHIpOmUucmVtb3ZlQXR0cmlidXRlKG4pO2JyZWFrO2Nhc2VcImNvbHNcIjpjYXNlXCJyb3dzXCI6Y2FzZVwic2l6ZVwiOmNhc2VcInNwYW5cIjpudWxsIT1yJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiZcInN5bWJvbFwiIT10eXBlb2YgciYmIWlzTmFOKHIpJiYxPD1yP2Uuc2V0QXR0cmlidXRlKG4scik6ZS5yZW1vdmVBdHRyaWJ1dGUobik7YnJlYWs7Y2FzZVwicm93U3BhblwiOmNhc2VcInN0YXJ0XCI6bnVsbD09cnx8XCJmdW5jdGlvblwiPT10eXBlb2Ygcnx8XCJzeW1ib2xcIj09dHlwZW9mIHJ8fGlzTmFOKHIpP2UucmVtb3ZlQXR0cmlidXRlKG4pOmUuc2V0QXR0cmlidXRlKG4scik7YnJlYWs7Y2FzZVwicG9wb3ZlclwiOnM1KFwiYmVmb3JldG9nZ2xlXCIsZSksczUoXCJ0b2dnbGVcIixlKSxlMihlLFwicG9wb3ZlclwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rQWN0dWF0ZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazphY3R1YXRlXCIscik7YnJlYWs7Y2FzZVwieGxpbmtBcmNyb2xlXCI6ZTUoZSxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcInhsaW5rOmFyY3JvbGVcIixyKTticmVhaztjYXNlXCJ4bGlua1JvbGVcIjplNShlLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFwieGxpbms6cm9sZVwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rU2hvd1wiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazpzaG93XCIscik7YnJlYWs7Y2FzZVwieGxpbmtUaXRsZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazp0aXRsZVwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rVHlwZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazp0eXBlXCIscik7YnJlYWs7Y2FzZVwieG1sQmFzZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcInhtbDpiYXNlXCIscik7YnJlYWs7Y2FzZVwieG1sTGFuZ1wiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcInhtbDpsYW5nXCIscik7YnJlYWs7Y2FzZVwieG1sU3BhY2VcIjplNShlLFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsXCJ4bWw6c3BhY2VcIixyKTticmVhaztjYXNlXCJpc1wiOmUyKGUsXCJpc1wiLHIpO2JyZWFrO2RlZmF1bHQ6MjxuLmxlbmd0aCYmKFwib1wiPT09blswXXx8XCJPXCI9PT1uWzBdKSYmKFwiblwiPT09blsxXXx8XCJOXCI9PT1uWzFdKXx8ZTIoZSxuPXRwLmdldChuKXx8bixyKX19ZnVuY3Rpb24gY2MoZSx0LG4scixvLGEpe3N3aXRjaChuKXtjYXNlXCJzdHlsZVwiOnRkKGUscixhKTticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXIpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiByfHwhKFwiX19odG1sXCJpbiByKSl0aHJvdyBFcnJvcihsKDYxKSk7aWYobnVsbCE9KG49ci5fX2h0bWwpKXtpZihudWxsIT1vLmNoaWxkcmVuKXRocm93IEVycm9yKGwoNjApKTtlLmlubmVySFRNTD1ufX1icmVhaztjYXNlXCJjaGlsZHJlblwiOlwic3RyaW5nXCI9PXR5cGVvZiByP3RzKGUscik6KFwibnVtYmVyXCI9PXR5cGVvZiByfHxcImJpZ2ludFwiPT10eXBlb2YgcikmJnRzKGUsXCJcIityKTticmVhaztjYXNlXCJvblNjcm9sbFwiOm51bGwhPXImJnM1KFwic2Nyb2xsXCIsZSk7YnJlYWs7Y2FzZVwib25TY3JvbGxFbmRcIjpudWxsIT1yJiZzNShcInNjcm9sbGVuZFwiLGUpO2JyZWFrO2Nhc2VcIm9uQ2xpY2tcIjpudWxsIT1yJiYoZS5vbmNsaWNrPXRnKTticmVhaztjYXNlXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIjpjYXNlXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIjpjYXNlXCJpbm5lckhUTUxcIjpjYXNlXCJyZWZcIjpjYXNlXCJpbm5lclRleHRcIjpjYXNlXCJ0ZXh0Q29udGVudFwiOmJyZWFrO2RlZmF1bHQ6aWYoIWVYLmhhc093blByb3BlcnR5KG4pKWU6e2lmKFwib1wiPT09blswXSYmXCJuXCI9PT1uWzFdJiYobz1uLmVuZHNXaXRoKFwiQ2FwdHVyZVwiKSx0PW4uc2xpY2UoMixvP24ubGVuZ3RoLTc6dm9pZCAwKSxcImZ1bmN0aW9uXCI9PXR5cGVvZihhPW51bGwhPShhPWVbZUxdfHxudWxsKT9hW25dOm51bGwpJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxhLG8pLFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpKXtcImZ1bmN0aW9uXCIhPXR5cGVvZiBhJiZudWxsIT09YSYmKG4gaW4gZT9lW25dPW51bGw6ZS5oYXNBdHRyaWJ1dGUobikmJmUucmVtb3ZlQXR0cmlidXRlKG4pKSxlLmFkZEV2ZW50TGlzdGVuZXIodCxyLG8pO2JyZWFrIGV9biBpbiBlP2Vbbl09cjohMD09PXI/ZS5zZXRBdHRyaWJ1dGUobixcIlwiKTplMihlLG4scil9fX1mdW5jdGlvbiBjdShlLHQsbil7c3dpdGNoKHQpe2Nhc2VcImRpdlwiOmNhc2VcInNwYW5cIjpjYXNlXCJzdmdcIjpjYXNlXCJwYXRoXCI6Y2FzZVwiYVwiOmNhc2VcImdcIjpjYXNlXCJwXCI6Y2FzZVwibGlcIjpicmVhaztjYXNlXCJpbWdcIjpzNShcImVycm9yXCIsZSksczUoXCJsb2FkXCIsZSk7dmFyIHIsbz0hMSxhPSExO2ZvcihyIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIGk9bltyXTtpZihudWxsIT1pKXN3aXRjaChyKXtjYXNlXCJzcmNcIjpvPSEwO2JyZWFrO2Nhc2VcInNyY1NldFwiOmE9ITA7YnJlYWs7Y2FzZVwiY2hpbGRyZW5cIjpjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOnRocm93IEVycm9yKGwoMTM3LHQpKTtkZWZhdWx0OmNzKGUsdCxyLGksbixudWxsKX19YSYmY3MoZSx0LFwic3JjU2V0XCIsbi5zcmNTZXQsbixudWxsKSxvJiZjcyhlLHQsXCJzcmNcIixuLnNyYyxuLG51bGwpO3JldHVybjtjYXNlXCJpbnB1dFwiOnM1KFwiaW52YWxpZFwiLGUpO3ZhciBzPXI9aT1hPW51bGwsYz1udWxsLHU9bnVsbDtmb3IobyBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkobykpe3ZhciBkPW5bb107aWYobnVsbCE9ZClzd2l0Y2gobyl7Y2FzZVwibmFtZVwiOmE9ZDticmVhaztjYXNlXCJ0eXBlXCI6aT1kO2JyZWFrO2Nhc2VcImNoZWNrZWRcIjpjPWQ7YnJlYWs7Y2FzZVwiZGVmYXVsdENoZWNrZWRcIjp1PWQ7YnJlYWs7Y2FzZVwidmFsdWVcIjpyPWQ7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6cz1kO2JyZWFrO2Nhc2VcImNoaWxkcmVuXCI6Y2FzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjppZihudWxsIT1kKXRocm93IEVycm9yKGwoMTM3LHQpKTticmVhaztkZWZhdWx0OmNzKGUsdCxvLGQsbixudWxsKX19dHIoZSxyLHMsYyx1LGksYSwhMSk7cmV0dXJuO2Nhc2VcInNlbGVjdFwiOmZvcihhIGluIHM1KFwiaW52YWxpZFwiLGUpLG89aT1yPW51bGwsbilpZihuLmhhc093blByb3BlcnR5KGEpJiZudWxsIT0ocz1uW2FdKSlzd2l0Y2goYSl7Y2FzZVwidmFsdWVcIjpyPXM7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6aT1zO2JyZWFrO2Nhc2VcIm11bHRpcGxlXCI6bz1zO2RlZmF1bHQ6Y3MoZSx0LGEscyxuLG51bGwpfXQ9cixuPWksZS5tdWx0aXBsZT0hIW8sbnVsbCE9dD90YShlLCEhbyx0LCExKTpudWxsIT1uJiZ0YShlLCEhbyxuLCEwKTtyZXR1cm47Y2FzZVwidGV4dGFyZWFcIjpmb3IoaSBpbiBzNShcImludmFsaWRcIixlKSxyPWE9bz1udWxsLG4paWYobi5oYXNPd25Qcm9wZXJ0eShpKSYmbnVsbCE9KHM9bltpXSkpc3dpdGNoKGkpe2Nhc2VcInZhbHVlXCI6bz1zO2JyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOmE9czticmVhaztjYXNlXCJjaGlsZHJlblwiOnI9czticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXMpdGhyb3cgRXJyb3IobCg5MSkpO2JyZWFrO2RlZmF1bHQ6Y3MoZSx0LGkscyxuLG51bGwpfXRsKGUsbyxhLHIpO3JldHVybjtjYXNlXCJvcHRpb25cIjpmb3IoYyBpbiBuKW4uaGFzT3duUHJvcGVydHkoYykmJm51bGwhPShvPW5bY10pJiYoXCJzZWxlY3RlZFwiPT09Yz9lLnNlbGVjdGVkPW8mJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG8mJlwic3ltYm9sXCIhPXR5cGVvZiBvOmNzKGUsdCxjLG8sbixudWxsKSk7cmV0dXJuO2Nhc2VcImRpYWxvZ1wiOnM1KFwiYmVmb3JldG9nZ2xlXCIsZSksczUoXCJ0b2dnbGVcIixlKSxzNShcImNhbmNlbFwiLGUpLHM1KFwiY2xvc2VcIixlKTticmVhaztjYXNlXCJpZnJhbWVcIjpjYXNlXCJvYmplY3RcIjpzNShcImxvYWRcIixlKTticmVhaztjYXNlXCJ2aWRlb1wiOmNhc2VcImF1ZGlvXCI6Zm9yKG89MDtvPHMxLmxlbmd0aDtvKyspczUoczFbb10sZSk7YnJlYWs7Y2FzZVwiaW1hZ2VcIjpzNShcImVycm9yXCIsZSksczUoXCJsb2FkXCIsZSk7YnJlYWs7Y2FzZVwiZGV0YWlsc1wiOnM1KFwidG9nZ2xlXCIsZSk7YnJlYWs7Y2FzZVwiZW1iZWRcIjpjYXNlXCJzb3VyY2VcIjpjYXNlXCJsaW5rXCI6czUoXCJlcnJvclwiLGUpLHM1KFwibG9hZFwiLGUpO2Nhc2VcImFyZWFcIjpjYXNlXCJiYXNlXCI6Y2FzZVwiYnJcIjpjYXNlXCJjb2xcIjpjYXNlXCJoclwiOmNhc2VcImtleWdlblwiOmNhc2VcIm1ldGFcIjpjYXNlXCJwYXJhbVwiOmNhc2VcInRyYWNrXCI6Y2FzZVwid2JyXCI6Y2FzZVwibWVudWl0ZW1cIjpmb3IodSBpbiBuKWlmKG4uaGFzT3duUHJvcGVydHkodSkmJm51bGwhPShvPW5bdV0pKXN3aXRjaCh1KXtjYXNlXCJjaGlsZHJlblwiOmNhc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6dGhyb3cgRXJyb3IobCgxMzcsdCkpO2RlZmF1bHQ6Y3MoZSx0LHUsbyxuLG51bGwpfXJldHVybjtkZWZhdWx0OmlmKHRmKHQpKXtmb3IoZCBpbiBuKW4uaGFzT3duUHJvcGVydHkoZCkmJnZvaWQgMCE9PShvPW5bZF0pJiZjYyhlLHQsZCxvLG4sdm9pZCAwKTtyZXR1cm59fWZvcihzIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShzKSYmbnVsbCE9KG89bltzXSkmJmNzKGUsdCxzLG8sbixudWxsKX12YXIgY2Q9bnVsbCxjZj1udWxsO2Z1bmN0aW9uIGNwKGUpe3JldHVybiA5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudH1mdW5jdGlvbiBjaChlKXtzd2l0Y2goZSl7Y2FzZVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjpyZXR1cm4gMTtjYXNlXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gY20oZSx0KXtpZigwPT09ZSlzd2l0Y2godCl7Y2FzZVwic3ZnXCI6cmV0dXJuIDE7Y2FzZVwibWF0aFwiOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9cmV0dXJuIDE9PT1lJiZcImZvcmVpZ25PYmplY3RcIj09PXQ/MDplfWZ1bmN0aW9uIGNnKGUsdCl7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09ZXx8XCJub3NjcmlwdFwiPT09ZXx8XCJzdHJpbmdcIj09dHlwZW9mIHQuY2hpbGRyZW58fFwibnVtYmVyXCI9PXR5cGVvZiB0LmNoaWxkcmVufHxcImJpZ2ludFwiPT10eXBlb2YgdC5jaGlsZHJlbnx8XCJvYmplY3RcIj09dHlwZW9mIHQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT10LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbH12YXIgY3k9bnVsbCxjdj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLGNiPVwiZnVuY3Rpb25cIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLGNBPVwiZnVuY3Rpb25cIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZTp2b2lkIDAsY3g9XCJmdW5jdGlvblwiPT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6dm9pZCAwIT09Y0E/ZnVuY3Rpb24oZSl7cmV0dXJuIGNBLnJlc29sdmUobnVsbCkudGhlbihlKS5jYXRjaChjdyl9OmN2O2Z1bmN0aW9uIGN3KGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9ZnVuY3Rpb24gY0MoZSl7cmV0dXJuXCJoZWFkXCI9PT1lfWZ1bmN0aW9uIGNfKGUsdCl7dmFyIG49dCxyPTA7ZG97dmFyIG89bi5uZXh0U2libGluZztpZihlLnJlbW92ZUNoaWxkKG4pLG8mJjg9PT1vLm5vZGVUeXBlKWlmKFwiLyRcIj09PShuPW8uZGF0YSl8fFwiLyZcIj09PW4pe2lmKDA9PT1yKXtlLnJlbW92ZUNoaWxkKG8pLHVPKHQpO3JldHVybn1yLS19ZWxzZSBpZihcIiRcIj09PW58fFwiJD9cIj09PW58fFwiJH5cIj09PW58fFwiJCFcIj09PW58fFwiJlwiPT09bilyKys7ZWxzZSBpZihcImh0bWxcIj09PW4pY0QoZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7ZWxzZSBpZihcImhlYWRcIj09PW4pe2NEKG49ZS5vd25lckRvY3VtZW50LmhlYWQpO2Zvcih2YXIgYT1uLmZpcnN0Q2hpbGQ7YTspe3ZhciBpPWEubmV4dFNpYmxpbmcsbD1hLm5vZGVOYW1lO2FbZUZdfHxcIlNDUklQVFwiPT09bHx8XCJTVFlMRVwiPT09bHx8XCJMSU5LXCI9PT1sJiZcInN0eWxlc2hlZXRcIj09PWEucmVsLnRvTG93ZXJDYXNlKCl8fG4ucmVtb3ZlQ2hpbGQoYSksYT1pfX1lbHNlXCJib2R5XCI9PT1uJiZjRChlLm93bmVyRG9jdW1lbnQuYm9keSk7bj1vfXdoaWxlKG4pO3VPKHQpfWZ1bmN0aW9uIGNrKGUsdCl7dmFyIG49ZTtlPTA7ZG97dmFyIHI9bi5uZXh0U2libGluZztpZigxPT09bi5ub2RlVHlwZT90PyhuLl9zdGFzaGVkRGlzcGxheT1uLnN0eWxlLmRpc3BsYXksbi5zdHlsZS5kaXNwbGF5PVwibm9uZVwiKToobi5zdHlsZS5kaXNwbGF5PW4uX3N0YXNoZWREaXNwbGF5fHxcIlwiLFwiXCI9PT1uLmdldEF0dHJpYnV0ZShcInN0eWxlXCIpJiZuLnJlbW92ZUF0dHJpYnV0ZShcInN0eWxlXCIpKTozPT09bi5ub2RlVHlwZSYmKHQ/KG4uX3N0YXNoZWRUZXh0PW4ubm9kZVZhbHVlLG4ubm9kZVZhbHVlPVwiXCIpOm4ubm9kZVZhbHVlPW4uX3N0YXNoZWRUZXh0fHxcIlwiKSxyJiY4PT09ci5ub2RlVHlwZSlpZihcIi8kXCI9PT0obj1yLmRhdGEpKWlmKDA9PT1lKWJyZWFrO2Vsc2UgZS0tO2Vsc2VcIiRcIiE9PW4mJlwiJD9cIiE9PW4mJlwiJH5cIiE9PW4mJlwiJCFcIiE9PW58fGUrKztuPXJ9d2hpbGUobil9ZnVuY3Rpb24gY0UoZSl7dmFyIHQ9ZS5maXJzdENoaWxkO2Zvcih0JiYxMD09PXQubm9kZVR5cGUmJih0PXQubmV4dFNpYmxpbmcpO3Q7KXt2YXIgbj10O3N3aXRjaCh0PXQubmV4dFNpYmxpbmcsbi5ub2RlTmFtZSl7Y2FzZVwiSFRNTFwiOmNhc2VcIkhFQURcIjpjYXNlXCJCT0RZXCI6Y0UobiksZXEobik7Y29udGludWU7Y2FzZVwiU0NSSVBUXCI6Y2FzZVwiU1RZTEVcIjpjb250aW51ZTtjYXNlXCJMSU5LXCI6aWYoXCJzdHlsZXNoZWV0XCI9PT1uLnJlbC50b0xvd2VyQ2FzZSgpKWNvbnRpbnVlfWUucmVtb3ZlQ2hpbGQobil9fWZ1bmN0aW9uIGNqKGUsdCl7Zm9yKDs4IT09ZS5ub2RlVHlwZTspaWYoIXR8fG51bGw9PT0oZT1jQihlLm5leHRTaWJsaW5nKSkpcmV0dXJuIG51bGw7cmV0dXJuIGV9ZnVuY3Rpb24gY1MoZSl7cmV0dXJuXCIkP1wiPT09ZS5kYXRhfHxcIiR+XCI9PT1lLmRhdGF9ZnVuY3Rpb24gY08oZSl7cmV0dXJuXCIkIVwiPT09ZS5kYXRhfHxcIiQ/XCI9PT1lLmRhdGEmJlwibG9hZGluZ1wiIT09ZS5vd25lckRvY3VtZW50LnJlYWR5U3RhdGV9ZnVuY3Rpb24gY0IoZSl7Zm9yKDtudWxsIT1lO2U9ZS5uZXh0U2libGluZyl7dmFyIHQ9ZS5ub2RlVHlwZTtpZigxPT09dHx8Mz09PXQpYnJlYWs7aWYoOD09PXQpe2lmKFwiJFwiPT09KHQ9ZS5kYXRhKXx8XCIkIVwiPT09dHx8XCIkP1wiPT09dHx8XCIkflwiPT09dHx8XCImXCI9PT10fHxcIkYhXCI9PT10fHxcIkZcIj09PXQpYnJlYWs7aWYoXCIvJFwiPT09dHx8XCIvJlwiPT09dClyZXR1cm4gbnVsbH19cmV0dXJuIGV9dmFyIGNQPW51bGw7ZnVuY3Rpb24gY0koZSl7ZT1lLm5leHRTaWJsaW5nO2Zvcih2YXIgdD0wO2U7KXtpZig4PT09ZS5ub2RlVHlwZSl7dmFyIG49ZS5kYXRhO2lmKFwiLyRcIj09PW58fFwiLyZcIj09PW4pe2lmKDA9PT10KXJldHVybiBjQihlLm5leHRTaWJsaW5nKTt0LS19ZWxzZVwiJFwiIT09biYmXCIkIVwiIT09biYmXCIkP1wiIT09biYmXCIkflwiIT09biYmXCImXCIhPT1ufHx0Kyt9ZT1lLm5leHRTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGN6KGUpe2U9ZS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciB0PTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgbj1lLmRhdGE7aWYoXCIkXCI9PT1ufHxcIiQhXCI9PT1ufHxcIiQ/XCI9PT1ufHxcIiR+XCI9PT1ufHxcIiZcIj09PW4pe2lmKDA9PT10KXJldHVybiBlO3QtLX1lbHNlXCIvJFwiIT09biYmXCIvJlwiIT09bnx8dCsrfWU9ZS5wcmV2aW91c1NpYmxpbmd9cmV0dXJuIG51bGx9ZnVuY3Rpb24gY1QoZSx0LG4pe3N3aXRjaCh0PWNwKG4pLGUpe2Nhc2VcImh0bWxcIjppZighKGU9dC5kb2N1bWVudEVsZW1lbnQpKXRocm93IEVycm9yKGwoNDUyKSk7cmV0dXJuIGU7Y2FzZVwiaGVhZFwiOmlmKCEoZT10LmhlYWQpKXRocm93IEVycm9yKGwoNDUzKSk7cmV0dXJuIGU7Y2FzZVwiYm9keVwiOmlmKCEoZT10LmJvZHkpKXRocm93IEVycm9yKGwoNDU0KSk7cmV0dXJuIGU7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ1MSkpfX1mdW5jdGlvbiBjRChlKXtmb3IodmFyIHQ9ZS5hdHRyaWJ1dGVzO3QubGVuZ3RoOyllLnJlbW92ZUF0dHJpYnV0ZU5vZGUodFswXSk7ZXEoZSl9dmFyIGNMPW5ldyBNYXAsY049bmV3IFNldDtmdW5jdGlvbiBjUihlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmdldFJvb3ROb2RlP2UuZ2V0Um9vdE5vZGUoKTo5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudH12YXIgY009ei5kO3ouZD17ZjpmdW5jdGlvbigpe3ZhciBlPWNNLmYoKSx0PXNjKCk7cmV0dXJuIGV8fHR9LHI6ZnVuY3Rpb24oZSl7dmFyIHQ9ZVYoZSk7bnVsbCE9PXQmJjU9PT10LnRhZyYmXCJmb3JtXCI9PT10LnR5cGU/YVEodCk6Y00ucihlKX0sRDpmdW5jdGlvbihlKXtjTS5EKGUpLGNVKFwiZG5zLXByZWZldGNoXCIsZSxudWxsKX0sQzpmdW5jdGlvbihlLHQpe2NNLkMoZSx0KSxjVShcInByZWNvbm5lY3RcIixlLHQpfSxMOmZ1bmN0aW9uKGUsdCxuKXtpZihjTS5MKGUsdCxuKSxjWiYmZSYmdCl7dmFyIHI9J2xpbmtbcmVsPVwicHJlbG9hZFwiXVthcz1cIicrdHQodCkrJ1wiXSc7XCJpbWFnZVwiPT09dCYmbiYmbi5pbWFnZVNyY1NldD8ocis9J1tpbWFnZXNyY3NldD1cIicrdHQobi5pbWFnZVNyY1NldCkrJ1wiXScsXCJzdHJpbmdcIj09dHlwZW9mIG4uaW1hZ2VTaXplcyYmKHIrPSdbaW1hZ2VzaXplcz1cIicrdHQobi5pbWFnZVNpemVzKSsnXCJdJykpOnIrPSdbaHJlZj1cIicrdHQoZSkrJ1wiXSc7dmFyIG89cjtzd2l0Y2godCl7Y2FzZVwic3R5bGVcIjpvPWNxKGUpO2JyZWFrO2Nhc2VcInNjcmlwdFwiOm89YyQoZSl9Y0wuaGFzKG8pfHwoZT1mKHtyZWw6XCJwcmVsb2FkXCIsaHJlZjpcImltYWdlXCI9PT10JiZuJiZuLmltYWdlU3JjU2V0P3ZvaWQgMDplLGFzOnR9LG4pLGNMLnNldChvLGUpLG51bGwhPT1jWi5xdWVyeVNlbGVjdG9yKHIpfHxcInN0eWxlXCI9PT10JiZjWi5xdWVyeVNlbGVjdG9yKGNIKG8pKXx8XCJzY3JpcHRcIj09PXQmJmNaLnF1ZXJ5U2VsZWN0b3IoY1cobykpfHwoY3UodD1jWi5jcmVhdGVFbGVtZW50KFwibGlua1wiKSxcImxpbmtcIixlKSxlWSh0KSxjWi5oZWFkLmFwcGVuZENoaWxkKHQpKSl9fSxtOmZ1bmN0aW9uKGUsdCl7aWYoY00ubShlLHQpLGNaJiZlKXt2YXIgbj10JiZcInN0cmluZ1wiPT10eXBlb2YgdC5hcz90LmFzOlwic2NyaXB0XCIscj0nbGlua1tyZWw9XCJtb2R1bGVwcmVsb2FkXCJdW2FzPVwiJyt0dChuKSsnXCJdW2hyZWY9XCInK3R0KGUpKydcIl0nLG89cjtzd2l0Y2gobil7Y2FzZVwiYXVkaW93b3JrbGV0XCI6Y2FzZVwicGFpbnR3b3JrbGV0XCI6Y2FzZVwic2VydmljZXdvcmtlclwiOmNhc2VcInNoYXJlZHdvcmtlclwiOmNhc2VcIndvcmtlclwiOmNhc2VcInNjcmlwdFwiOm89YyQoZSl9aWYoIWNMLmhhcyhvKSYmKGU9Zih7cmVsOlwibW9kdWxlcHJlbG9hZFwiLGhyZWY6ZX0sdCksY0wuc2V0KG8sZSksbnVsbD09PWNaLnF1ZXJ5U2VsZWN0b3IocikpKXtzd2l0Y2gobil7Y2FzZVwiYXVkaW93b3JrbGV0XCI6Y2FzZVwicGFpbnR3b3JrbGV0XCI6Y2FzZVwic2VydmljZXdvcmtlclwiOmNhc2VcInNoYXJlZHdvcmtlclwiOmNhc2VcIndvcmtlclwiOmNhc2VcInNjcmlwdFwiOmlmKGNaLnF1ZXJ5U2VsZWN0b3IoY1cobykpKXJldHVybn1jdShuPWNaLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpLFwibGlua1wiLGUpLGVZKG4pLGNaLmhlYWQuYXBwZW5kQ2hpbGQobil9fX0sWDpmdW5jdGlvbihlLHQpe2lmKGNNLlgoZSx0KSxjWiYmZSl7dmFyIG49ZVcoY1opLmhvaXN0YWJsZVNjcmlwdHMscj1jJChlKSxvPW4uZ2V0KHIpO298fCgobz1jWi5xdWVyeVNlbGVjdG9yKGNXKHIpKSl8fChlPWYoe3NyYzplLGFzeW5jOiEwfSx0KSwodD1jTC5nZXQocikpJiZjRyhlLHQpLGVZKG89Y1ouY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKSksY3UobyxcImxpbmtcIixlKSxjWi5oZWFkLmFwcGVuZENoaWxkKG8pKSxvPXt0eXBlOlwic2NyaXB0XCIsaW5zdGFuY2U6byxjb3VudDoxLHN0YXRlOm51bGx9LG4uc2V0KHIsbykpfX0sUzpmdW5jdGlvbihlLHQsbil7aWYoY00uUyhlLHQsbiksY1omJmUpe3ZhciByPWVXKGNaKS5ob2lzdGFibGVTdHlsZXMsbz1jcShlKTt0PXR8fFwiZGVmYXVsdFwiO3ZhciBhPXIuZ2V0KG8pO2lmKCFhKXt2YXIgaT17bG9hZGluZzowLHByZWxvYWQ6bnVsbH07aWYoYT1jWi5xdWVyeVNlbGVjdG9yKGNIKG8pKSlpLmxvYWRpbmc9NTtlbHNle2U9Zih7cmVsOlwic3R5bGVzaGVldFwiLGhyZWY6ZSxcImRhdGEtcHJlY2VkZW5jZVwiOnR9LG4pLChuPWNMLmdldChvKSkmJmNYKGUsbik7dmFyIGw9YT1jWi5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtlWShsKSxjdShsLFwibGlua1wiLGUpLGwuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtsLm9ubG9hZD1lLGwub25lcnJvcj10fSksbC5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLGZ1bmN0aW9uKCl7aS5sb2FkaW5nfD0xfSksbC5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIixmdW5jdGlvbigpe2kubG9hZGluZ3w9Mn0pLGkubG9hZGluZ3w9NCxjSyhhLHQsY1opfWE9e3R5cGU6XCJzdHlsZXNoZWV0XCIsaW5zdGFuY2U6YSxjb3VudDoxLHN0YXRlOml9LHIuc2V0KG8sYSl9fX0sTTpmdW5jdGlvbihlLHQpe2lmKGNNLk0oZSx0KSxjWiYmZSl7dmFyIG49ZVcoY1opLmhvaXN0YWJsZVNjcmlwdHMscj1jJChlKSxvPW4uZ2V0KHIpO298fCgobz1jWi5xdWVyeVNlbGVjdG9yKGNXKHIpKSl8fChlPWYoe3NyYzplLGFzeW5jOiEwLHR5cGU6XCJtb2R1bGVcIn0sdCksKHQ9Y0wuZ2V0KHIpKSYmY0coZSx0KSxlWShvPWNaLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpLGN1KG8sXCJsaW5rXCIsZSksY1ouaGVhZC5hcHBlbmRDaGlsZChvKSksbz17dHlwZTpcInNjcmlwdFwiLGluc3RhbmNlOm8sY291bnQ6MSxzdGF0ZTpudWxsfSxuLnNldChyLG8pKX19fTt2YXIgY1o9XCJ1bmRlZmluZWRcIj09dHlwZW9mIGRvY3VtZW50P251bGw6ZG9jdW1lbnQ7ZnVuY3Rpb24gY1UoZSx0LG4pe2lmKGNaJiZcInN0cmluZ1wiPT10eXBlb2YgdCYmdCl7dmFyIHI9dHQodCk7cj0nbGlua1tyZWw9XCInK2UrJ1wiXVtocmVmPVwiJytyKydcIl0nLFwic3RyaW5nXCI9PXR5cGVvZiBuJiYocis9J1tjcm9zc29yaWdpbj1cIicrbisnXCJdJyksY04uaGFzKHIpfHwoY04uYWRkKHIpLGU9e3JlbDplLGNyb3NzT3JpZ2luOm4saHJlZjp0fSxudWxsPT09Y1oucXVlcnlTZWxlY3RvcihyKSYmKGN1KHQ9Y1ouY3JlYXRlRWxlbWVudChcImxpbmtcIiksXCJsaW5rXCIsZSksZVkodCksY1ouaGVhZC5hcHBlbmRDaGlsZCh0KSkpfX1mdW5jdGlvbiBjRihlLHQsbixyKXt2YXIgbz0obz1GLmN1cnJlbnQpP2NSKG8pOm51bGw7aWYoIW8pdGhyb3cgRXJyb3IobCg0NDYpKTtzd2l0Y2goZSl7Y2FzZVwibWV0YVwiOmNhc2VcInRpdGxlXCI6cmV0dXJuIG51bGw7Y2FzZVwic3R5bGVcIjpyZXR1cm5cInN0cmluZ1wiPT10eXBlb2Ygbi5wcmVjZWRlbmNlJiZcInN0cmluZ1wiPT10eXBlb2Ygbi5ocmVmPyh0PWNxKG4uaHJlZiksKHI9KG49ZVcobykuaG9pc3RhYmxlU3R5bGVzKS5nZXQodCkpfHwocj17dHlwZTpcInN0eWxlXCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9LG4uc2V0KHQscikpLHIpOnt0eXBlOlwidm9pZFwiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfTtjYXNlXCJsaW5rXCI6aWYoXCJzdHlsZXNoZWV0XCI9PT1uLnJlbCYmXCJzdHJpbmdcIj09dHlwZW9mIG4uaHJlZiYmXCJzdHJpbmdcIj09dHlwZW9mIG4ucHJlY2VkZW5jZSl7ZT1jcShuLmhyZWYpO3ZhciBhLGkscyxjLHU9ZVcobykuaG9pc3RhYmxlU3R5bGVzLGQ9dS5nZXQoZSk7aWYoZHx8KG89by5vd25lckRvY3VtZW50fHxvLGQ9e3R5cGU6XCJzdHlsZXNoZWV0XCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOntsb2FkaW5nOjAscHJlbG9hZDpudWxsfX0sdS5zZXQoZSxkKSwodT1vLnF1ZXJ5U2VsZWN0b3IoY0goZSkpKSYmIXUuX3AmJihkLmluc3RhbmNlPXUsZC5zdGF0ZS5sb2FkaW5nPTUpLGNMLmhhcyhlKXx8KG49e3JlbDpcInByZWxvYWRcIixhczpcInN0eWxlXCIsaHJlZjpuLmhyZWYsY3Jvc3NPcmlnaW46bi5jcm9zc09yaWdpbixpbnRlZ3JpdHk6bi5pbnRlZ3JpdHksbWVkaWE6bi5tZWRpYSxocmVmTGFuZzpuLmhyZWZMYW5nLHJlZmVycmVyUG9saWN5Om4ucmVmZXJyZXJQb2xpY3l9LGNMLnNldChlLG4pLHV8fChhPW8saT1lLHM9bixjPWQuc3RhdGUsYS5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD1cInByZWxvYWRcIl1bYXM9XCJzdHlsZVwiXVsnK2krXCJdXCIpP2MubG9hZGluZz0xOihjLnByZWxvYWQ9aT1hLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpLGkuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixmdW5jdGlvbigpe3JldHVybiBjLmxvYWRpbmd8PTF9KSxpLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLGZ1bmN0aW9uKCl7cmV0dXJuIGMubG9hZGluZ3w9Mn0pLGN1KGksXCJsaW5rXCIscyksZVkoaSksYS5oZWFkLmFwcGVuZENoaWxkKGkpKSkpKSx0JiZudWxsPT09cil0aHJvdyBFcnJvcihsKDUyOCxcIlwiKSk7cmV0dXJuIGR9aWYodCYmbnVsbCE9PXIpdGhyb3cgRXJyb3IobCg1MjksXCJcIikpO3JldHVybiBudWxsO2Nhc2VcInNjcmlwdFwiOnJldHVybiB0PW4uYXN5bmMsXCJzdHJpbmdcIj09dHlwZW9mKG49bi5zcmMpJiZ0JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiZcInN5bWJvbFwiIT10eXBlb2YgdD8odD1jJChuKSwocj0obj1lVyhvKS5ob2lzdGFibGVTY3JpcHRzKS5nZXQodCkpfHwocj17dHlwZTpcInNjcmlwdFwiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfSxuLnNldCh0LHIpKSxyKTp7dHlwZTpcInZvaWRcIixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH07ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ0NCxlKSl9fWZ1bmN0aW9uIGNxKGUpe3JldHVybidocmVmPVwiJyt0dChlKSsnXCInfWZ1bmN0aW9uIGNIKGUpe3JldHVybidsaW5rW3JlbD1cInN0eWxlc2hlZXRcIl1bJytlK1wiXVwifWZ1bmN0aW9uIGNWKGUpe3JldHVybiBmKHt9LGUse1wiZGF0YS1wcmVjZWRlbmNlXCI6ZS5wcmVjZWRlbmNlLHByZWNlZGVuY2U6bnVsbH0pfWZ1bmN0aW9uIGMkKGUpe3JldHVybidbc3JjPVwiJyt0dChlKSsnXCJdJ31mdW5jdGlvbiBjVyhlKXtyZXR1cm5cInNjcmlwdFthc3luY11cIitlfWZ1bmN0aW9uIGNZKGUsdCxuKXtpZih0LmNvdW50KyssbnVsbD09PXQuaW5zdGFuY2Upc3dpdGNoKHQudHlwZSl7Y2FzZVwic3R5bGVcIjp2YXIgcj1lLnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW2RhdGEtaHJlZn49XCInK3R0KG4uaHJlZikrJ1wiXScpO2lmKHIpcmV0dXJuIHQuaW5zdGFuY2U9cixlWShyKSxyO3ZhciBvPWYoe30sbix7XCJkYXRhLWhyZWZcIjpuLmhyZWYsXCJkYXRhLXByZWNlZGVuY2VcIjpuLnByZWNlZGVuY2UsaHJlZjpudWxsLHByZWNlZGVuY2U6bnVsbH0pO3JldHVybiBlWShyPShlLm93bmVyRG9jdW1lbnR8fGUpLmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKSksY3UocixcInN0eWxlXCIsbyksY0socixuLnByZWNlZGVuY2UsZSksdC5pbnN0YW5jZT1yO2Nhc2VcInN0eWxlc2hlZXRcIjpvPWNxKG4uaHJlZik7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKGNIKG8pKTtpZihhKXJldHVybiB0LnN0YXRlLmxvYWRpbmd8PTQsdC5pbnN0YW5jZT1hLGVZKGEpLGE7cj1jVihuKSwobz1jTC5nZXQobykpJiZjWChyLG8pLGVZKGE9KGUub3duZXJEb2N1bWVudHx8ZSkuY3JlYXRlRWxlbWVudChcImxpbmtcIikpO3ZhciBpPWE7cmV0dXJuIGkuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtpLm9ubG9hZD1lLGkub25lcnJvcj10fSksY3UoYSxcImxpbmtcIixyKSx0LnN0YXRlLmxvYWRpbmd8PTQsY0soYSxuLnByZWNlZGVuY2UsZSksdC5pbnN0YW5jZT1hO2Nhc2VcInNjcmlwdFwiOmlmKGE9YyQobi5zcmMpLG89ZS5xdWVyeVNlbGVjdG9yKGNXKGEpKSlyZXR1cm4gdC5pbnN0YW5jZT1vLGVZKG8pLG87cmV0dXJuIHI9biwobz1jTC5nZXQoYSkpJiZjRyhyPWYoe30sbiksbyksZVkobz0oZT1lLm93bmVyRG9jdW1lbnR8fGUpLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpLGN1KG8sXCJsaW5rXCIsciksZS5oZWFkLmFwcGVuZENoaWxkKG8pLHQuaW5zdGFuY2U9bztjYXNlXCJ2b2lkXCI6cmV0dXJuIG51bGw7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ0Myx0LnR5cGUpKX1yZXR1cm5cInN0eWxlc2hlZXRcIj09PXQudHlwZSYmMD09KDQmdC5zdGF0ZS5sb2FkaW5nKSYmKHI9dC5pbnN0YW5jZSx0LnN0YXRlLmxvYWRpbmd8PTQsY0socixuLnByZWNlZGVuY2UsZSkpLHQuaW5zdGFuY2V9ZnVuY3Rpb24gY0soZSx0LG4pe2Zvcih2YXIgcj1uLnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPVwic3R5bGVzaGVldFwiXVtkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0nKSxvPXIubGVuZ3RoP3Jbci5sZW5ndGgtMV06bnVsbCxhPW8saT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbD1yW2ldO2lmKGwuZGF0YXNldC5wcmVjZWRlbmNlPT09dClhPWw7ZWxzZSBpZihhIT09bylicmVha31hP2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxhLm5leHRTaWJsaW5nKToodD05PT09bi5ub2RlVHlwZT9uLmhlYWQ6bikuaW5zZXJ0QmVmb3JlKGUsdC5maXJzdENoaWxkKX1mdW5jdGlvbiBjWChlLHQpe251bGw9PWUuY3Jvc3NPcmlnaW4mJihlLmNyb3NzT3JpZ2luPXQuY3Jvc3NPcmlnaW4pLG51bGw9PWUucmVmZXJyZXJQb2xpY3kmJihlLnJlZmVycmVyUG9saWN5PXQucmVmZXJyZXJQb2xpY3kpLG51bGw9PWUudGl0bGUmJihlLnRpdGxlPXQudGl0bGUpfWZ1bmN0aW9uIGNHKGUsdCl7bnVsbD09ZS5jcm9zc09yaWdpbiYmKGUuY3Jvc3NPcmlnaW49dC5jcm9zc09yaWdpbiksbnVsbD09ZS5yZWZlcnJlclBvbGljeSYmKGUucmVmZXJyZXJQb2xpY3k9dC5yZWZlcnJlclBvbGljeSksbnVsbD09ZS5pbnRlZ3JpdHkmJihlLmludGVncml0eT10LmludGVncml0eSl9dmFyIGNRPW51bGw7ZnVuY3Rpb24gY0ooZSx0LG4pe2lmKG51bGw9PT1jUSl7dmFyIHI9bmV3IE1hcCxvPWNRPW5ldyBNYXA7by5zZXQobixyKX1lbHNlKHI9KG89Y1EpLmdldChuKSl8fChyPW5ldyBNYXAsby5zZXQobixyKSk7aWYoci5oYXMoZSkpcmV0dXJuIHI7Zm9yKHIuc2V0KGUsbnVsbCksbj1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpLG89MDtvPG4ubGVuZ3RoO28rKyl7dmFyIGE9bltvXTtpZighKGFbZUZdfHxhW2VEXXx8XCJsaW5rXCI9PT1lJiZcInN0eWxlc2hlZXRcIj09PWEuZ2V0QXR0cmlidXRlKFwicmVsXCIpKSYmXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIT09YS5uYW1lc3BhY2VVUkkpe3ZhciBpPWEuZ2V0QXR0cmlidXRlKHQpfHxcIlwiO2k9ZStpO3ZhciBsPXIuZ2V0KGkpO2w/bC5wdXNoKGEpOnIuc2V0KGksW2FdKX19cmV0dXJuIHJ9ZnVuY3Rpb24gYzAoZSx0LG4peyhlPWUub3duZXJEb2N1bWVudHx8ZSkuaGVhZC5pbnNlcnRCZWZvcmUobixcInRpdGxlXCI9PT10P2UucXVlcnlTZWxlY3RvcihcImhlYWQgPiB0aXRsZVwiKTpudWxsKX1mdW5jdGlvbiBjMShlKXtyZXR1cm5cInN0eWxlc2hlZXRcIiE9PWUudHlwZXx8MCE9KDMmZS5zdGF0ZS5sb2FkaW5nKX12YXIgYzI9bnVsbDtmdW5jdGlvbiBjNCgpe2lmKHRoaXMuY291bnQtLSwwPT09dGhpcy5jb3VudCl7aWYodGhpcy5zdHlsZXNoZWV0cyljMyh0aGlzLHRoaXMuc3R5bGVzaGVldHMpO2Vsc2UgaWYodGhpcy51bnN1c3BlbmQpe3ZhciBlPXRoaXMudW5zdXNwZW5kO3RoaXMudW5zdXNwZW5kPW51bGwsZSgpfX19dmFyIGM1PW51bGw7ZnVuY3Rpb24gYzMoZSx0KXtlLnN0eWxlc2hlZXRzPW51bGwsbnVsbCE9PWUudW5zdXNwZW5kJiYoZS5jb3VudCsrLGM1PW5ldyBNYXAsdC5mb3JFYWNoKGM2LGUpLGM1PW51bGwsYzQuY2FsbChlKSl9ZnVuY3Rpb24gYzYoZSx0KXtpZighKDQmdC5zdGF0ZS5sb2FkaW5nKSl7dmFyIG49YzUuZ2V0KGUpO2lmKG4pdmFyIHI9bi5nZXQobnVsbCk7ZWxzZXtuPW5ldyBNYXAsYzUuc2V0KGUsbik7Zm9yKHZhciBvPWUucXVlcnlTZWxlY3RvckFsbChcImxpbmtbZGF0YS1wcmVjZWRlbmNlXSxzdHlsZVtkYXRhLXByZWNlZGVuY2VdXCIpLGE9MDthPG8ubGVuZ3RoO2ErKyl7dmFyIGk9b1thXTsoXCJMSU5LXCI9PT1pLm5vZGVOYW1lfHxcIm5vdCBhbGxcIiE9PWkuZ2V0QXR0cmlidXRlKFwibWVkaWFcIikpJiYobi5zZXQoaS5kYXRhc2V0LnByZWNlZGVuY2UsaSkscj1pKX1yJiZuLnNldChudWxsLHIpfWk9KG89dC5pbnN0YW5jZSkuZ2V0QXR0cmlidXRlKFwiZGF0YS1wcmVjZWRlbmNlXCIpLChhPW4uZ2V0KGkpfHxyKT09PXImJm4uc2V0KG51bGwsbyksbi5zZXQoaSxvKSx0aGlzLmNvdW50Kysscj1jNC5iaW5kKHRoaXMpLG8uYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixyKSxvLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLHIpLGE/YS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShvLGEubmV4dFNpYmxpbmcpOihlPTk9PT1lLm5vZGVUeXBlP2UuaGVhZDplKS5pbnNlcnRCZWZvcmUobyxlLmZpcnN0Q2hpbGQpLHQuc3RhdGUubG9hZGluZ3w9NH19dmFyIGM5PXskJHR5cGVvZjpBLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfY3VycmVudFZhbHVlOlQsX2N1cnJlbnRWYWx1ZTI6VCxfdGhyZWFkQ291bnQ6MH07ZnVuY3Rpb24gYzgoZSx0LG4scixvLGEsaSxsLHMpe3RoaXMudGFnPTEsdGhpcy5jb250YWluZXJJbmZvPWUsdGhpcy5waW5nQ2FjaGU9dGhpcy5jdXJyZW50PXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGwsdGhpcy50aW1lb3V0SGFuZGxlPS0xLHRoaXMuY2FsbGJhY2tOb2RlPXRoaXMubmV4dD10aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD10aGlzLmNhbmNlbFBlbmRpbmdDb21taXQ9bnVsbCx0aGlzLmNhbGxiYWNrUHJpb3JpdHk9MCx0aGlzLmV4cGlyYXRpb25UaW1lcz1laygtMSksdGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLnNoZWxsU3VzcGVuZENvdW50ZXI9dGhpcy5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcz10aGlzLmV4cGlyZWRMYW5lcz10aGlzLndhcm1MYW5lcz10aGlzLnBpbmdlZExhbmVzPXRoaXMuc3VzcGVuZGVkTGFuZXM9dGhpcy5wZW5kaW5nTGFuZXM9MCx0aGlzLmVudGFuZ2xlbWVudHM9ZWsoMCksdGhpcy5oaWRkZW5VcGRhdGVzPWVrKG51bGwpLHRoaXMuaWRlbnRpZmllclByZWZpeD1yLHRoaXMub25VbmNhdWdodEVycm9yPW8sdGhpcy5vbkNhdWdodEVycm9yPWEsdGhpcy5vblJlY292ZXJhYmxlRXJyb3I9aSx0aGlzLnBvb2xlZENhY2hlPW51bGwsdGhpcy5wb29sZWRDYWNoZUxhbmVzPTAsdGhpcy5mb3JtU3RhdGU9cyx0aGlzLmluY29tcGxldGVUcmFuc2l0aW9ucz1uZXcgTWFwfWZ1bmN0aW9uIGM3KGUsdCxuLHIsbyxhKXtvPW8/bjg6bjgsbnVsbD09PXIuY29udGV4dD9yLmNvbnRleHQ9bzpyLnBlbmRpbmdDb250ZXh0PW8sKHI9b18odCkpLnBheWxvYWQ9e2VsZW1lbnQ6bn0sbnVsbCE9PShhPXZvaWQgMD09PWE/bnVsbDphKSYmKHIuY2FsbGJhY2s9YSksbnVsbCE9PShuPW9rKGUscix0KSkmJihzYShuLGUsdCksb0UobixlLHQpKX1mdW5jdGlvbiB1ZShlLHQpe2lmKG51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpJiZudWxsIT09ZS5kZWh5ZHJhdGVkKXt2YXIgbj1lLnJldHJ5TGFuZTtlLnJldHJ5TGFuZT0wIT09biYmbjx0P246dH19ZnVuY3Rpb24gdXQoZSx0KXt1ZShlLHQpLChlPWUuYWx0ZXJuYXRlKSYmdWUoZSx0KX1mdW5jdGlvbiB1bihlKXtpZigxMz09PWUudGFnfHwzMT09PWUudGFnKXt2YXIgdD1uMyhlLDB4NDAwMDAwMCk7bnVsbCE9PXQmJnNhKHQsZSwweDQwMDAwMDApLHV0KGUsMHg0MDAwMDAwKX19ZnVuY3Rpb24gdXIoZSl7aWYoMTM9PT1lLnRhZ3x8MzE9PT1lLnRhZyl7dmFyIHQ9c3IoKSxuPW4zKGUsdD1lQih0KSk7bnVsbCE9PW4mJnNhKG4sZSx0KSx1dChlLHQpfX12YXIgdW89ITA7ZnVuY3Rpb24gdWEoZSx0LG4scil7dmFyIG89SS5UO0kuVD1udWxsO3ZhciBhPXoucDt0cnl7ei5wPTIsdWwoZSx0LG4scil9ZmluYWxseXt6LnA9YSxJLlQ9b319ZnVuY3Rpb24gdWkoZSx0LG4scil7dmFyIG89SS5UO0kuVD1udWxsO3ZhciBhPXoucDt0cnl7ei5wPTgsdWwoZSx0LG4scil9ZmluYWxseXt6LnA9YSxJLlQ9b319ZnVuY3Rpb24gdWwoZSx0LG4scil7aWYodW8pe3ZhciBvPXVzKHIpO2lmKG51bGw9PT1vKXM3KGUsdCxyLHVjLG4pLHVBKGUscik7ZWxzZSBpZihmdW5jdGlvbihlLHQsbixyLG8pe3N3aXRjaCh0KXtjYXNlXCJmb2N1c2luXCI6cmV0dXJuIHVwPXV4KHVwLGUsdCxuLHIsbyksITA7Y2FzZVwiZHJhZ2VudGVyXCI6cmV0dXJuIHVoPXV4KHVoLGUsdCxuLHIsbyksITA7Y2FzZVwibW91c2VvdmVyXCI6cmV0dXJuIHVtPXV4KHVtLGUsdCxuLHIsbyksITA7Y2FzZVwicG9pbnRlcm92ZXJcIjp2YXIgYT1vLnBvaW50ZXJJZDtyZXR1cm4gdWcuc2V0KGEsdXgodWcuZ2V0KGEpfHxudWxsLGUsdCxuLHIsbykpLCEwO2Nhc2VcImdvdHBvaW50ZXJjYXB0dXJlXCI6cmV0dXJuIGE9by5wb2ludGVySWQsdXkuc2V0KGEsdXgodXkuZ2V0KGEpfHxudWxsLGUsdCxuLHIsbykpLCEwfXJldHVybiExfShvLGUsdCxuLHIpKXIuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZih1QShlLHIpLDQmdCYmLTE8dWIuaW5kZXhPZihlKSl7Zm9yKDtudWxsIT09bzspe3ZhciBhPWVWKG8pO2lmKG51bGwhPT1hKXN3aXRjaChhLnRhZyl7Y2FzZSAzOmlmKChhPWEuc3RhdGVOb2RlKS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXt2YXIgaT1lQShhLnBlbmRpbmdMYW5lcyk7aWYoMCE9PWkpe3ZhciBsPWE7Zm9yKGwucGVuZGluZ0xhbmVzfD0yLGwuZW50YW5nbGVkTGFuZXN8PTI7aTspe3ZhciBzPTE8PDMxLWVtKGkpO2wuZW50YW5nbGVtZW50c1sxXXw9cyxpJj1+c31zcShhKSwwPT0oNiZsRCkmJihsMT1lcigpKzUwMCxzSCgwLCExKSl9fWJyZWFrO2Nhc2UgMzE6Y2FzZSAxMzpudWxsIT09KGw9bjMoYSwyKSkmJnNhKGwsYSwyKSxzYygpLHV0KGEsMil9aWYobnVsbD09PShhPXVzKHIpKSYmczcoZSx0LHIsdWMsbiksYT09PW8pYnJlYWs7bz1hfW51bGwhPT1vJiZyLnN0b3BQcm9wYWdhdGlvbigpfWVsc2UgczcoZSx0LHIsbnVsbCxuKX19ZnVuY3Rpb24gdXMoZSl7cmV0dXJuIHV1KGU9dHYoZSkpfXZhciB1Yz1udWxsO2Z1bmN0aW9uIHV1KGUpe2lmKHVjPW51bGwsbnVsbCE9PShlPWVIKGUpKSl7dmFyIHQ9cyhlKTtpZihudWxsPT09dCllPW51bGw7ZWxzZXt2YXIgbj10LnRhZztpZigxMz09PW4pe2lmKG51bGwhPT0oZT1jKHQpKSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzMT09PW4pe2lmKG51bGwhPT0oZT11KHQpKSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzPT09bil7aWYodC5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClyZXR1cm4gMz09PXQudGFnP3Quc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtlPW51bGx9ZWxzZSB0IT09ZSYmKGU9bnVsbCl9fXJldHVybiB1Yz1lLG51bGx9ZnVuY3Rpb24gdWQoZSl7c3dpdGNoKGUpe2Nhc2VcImJlZm9yZXRvZ2dsZVwiOmNhc2VcImNhbmNlbFwiOmNhc2VcImNsaWNrXCI6Y2FzZVwiY2xvc2VcIjpjYXNlXCJjb250ZXh0bWVudVwiOmNhc2VcImNvcHlcIjpjYXNlXCJjdXRcIjpjYXNlXCJhdXhjbGlja1wiOmNhc2VcImRibGNsaWNrXCI6Y2FzZVwiZHJhZ2VuZFwiOmNhc2VcImRyYWdzdGFydFwiOmNhc2VcImRyb3BcIjpjYXNlXCJmb2N1c2luXCI6Y2FzZVwiZm9jdXNvdXRcIjpjYXNlXCJpbnB1dFwiOmNhc2VcImludmFsaWRcIjpjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5cHJlc3NcIjpjYXNlXCJrZXl1cFwiOmNhc2VcIm1vdXNlZG93blwiOmNhc2VcIm1vdXNldXBcIjpjYXNlXCJwYXN0ZVwiOmNhc2VcInBhdXNlXCI6Y2FzZVwicGxheVwiOmNhc2VcInBvaW50ZXJjYW5jZWxcIjpjYXNlXCJwb2ludGVyZG93blwiOmNhc2VcInBvaW50ZXJ1cFwiOmNhc2VcInJhdGVjaGFuZ2VcIjpjYXNlXCJyZXNldFwiOmNhc2VcInJlc2l6ZVwiOmNhc2VcInNlZWtlZFwiOmNhc2VcInN1Ym1pdFwiOmNhc2VcInRvZ2dsZVwiOmNhc2VcInRvdWNoY2FuY2VsXCI6Y2FzZVwidG91Y2hlbmRcIjpjYXNlXCJ0b3VjaHN0YXJ0XCI6Y2FzZVwidm9sdW1lY2hhbmdlXCI6Y2FzZVwiY2hhbmdlXCI6Y2FzZVwic2VsZWN0aW9uY2hhbmdlXCI6Y2FzZVwidGV4dElucHV0XCI6Y2FzZVwiY29tcG9zaXRpb25zdGFydFwiOmNhc2VcImNvbXBvc2l0aW9uZW5kXCI6Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjpjYXNlXCJiZWZvcmVibHVyXCI6Y2FzZVwiYWZ0ZXJibHVyXCI6Y2FzZVwiYmVmb3JlaW5wdXRcIjpjYXNlXCJibHVyXCI6Y2FzZVwiZnVsbHNjcmVlbmNoYW5nZVwiOmNhc2VcImZvY3VzXCI6Y2FzZVwiaGFzaGNoYW5nZVwiOmNhc2VcInBvcHN0YXRlXCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwic2VsZWN0c3RhcnRcIjpyZXR1cm4gMjtjYXNlXCJkcmFnXCI6Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2V4aXRcIjpjYXNlXCJkcmFnbGVhdmVcIjpjYXNlXCJkcmFnb3ZlclwiOmNhc2VcIm1vdXNlbW92ZVwiOmNhc2VcIm1vdXNlb3V0XCI6Y2FzZVwibW91c2VvdmVyXCI6Y2FzZVwicG9pbnRlcm1vdmVcIjpjYXNlXCJwb2ludGVyb3V0XCI6Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJzY3JvbGxcIjpjYXNlXCJ0b3VjaG1vdmVcIjpjYXNlXCJ3aGVlbFwiOmNhc2VcIm1vdXNlZW50ZXJcIjpjYXNlXCJtb3VzZWxlYXZlXCI6Y2FzZVwicG9pbnRlcmVudGVyXCI6Y2FzZVwicG9pbnRlcmxlYXZlXCI6cmV0dXJuIDg7Y2FzZVwibWVzc2FnZVwiOnN3aXRjaChlbygpKXtjYXNlIGVhOnJldHVybiAyO2Nhc2UgZWk6cmV0dXJuIDg7Y2FzZSBlbDpjYXNlIGVzOnJldHVybiAzMjtjYXNlIGVjOnJldHVybiAweDEwMDAwMDAwO2RlZmF1bHQ6cmV0dXJuIDMyfWRlZmF1bHQ6cmV0dXJuIDMyfX12YXIgdWY9ITEsdXA9bnVsbCx1aD1udWxsLHVtPW51bGwsdWc9bmV3IE1hcCx1eT1uZXcgTWFwLHV2PVtdLHViPVwibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0XCIuc3BsaXQoXCIgXCIpO2Z1bmN0aW9uIHVBKGUsdCl7c3dpdGNoKGUpe2Nhc2VcImZvY3VzaW5cIjpjYXNlXCJmb2N1c291dFwiOnVwPW51bGw7YnJlYWs7Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2xlYXZlXCI6dWg9bnVsbDticmVhaztjYXNlXCJtb3VzZW92ZXJcIjpjYXNlXCJtb3VzZW91dFwiOnVtPW51bGw7YnJlYWs7Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJwb2ludGVyb3V0XCI6dWcuZGVsZXRlKHQucG9pbnRlcklkKTticmVhaztjYXNlXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2VcImxvc3Rwb2ludGVyY2FwdHVyZVwiOnV5LmRlbGV0ZSh0LnBvaW50ZXJJZCl9fWZ1bmN0aW9uIHV4KGUsdCxuLHIsbyxhKXtyZXR1cm4gbnVsbD09PWV8fGUubmF0aXZlRXZlbnQhPT1hPyhlPXtibG9ja2VkT246dCxkb21FdmVudE5hbWU6bixldmVudFN5c3RlbUZsYWdzOnIsbmF0aXZlRXZlbnQ6YSx0YXJnZXRDb250YWluZXJzOltvXX0sbnVsbCE9PXQmJm51bGwhPT0odD1lVih0KSkmJnVuKHQpKTooZS5ldmVudFN5c3RlbUZsYWdzfD1yLHQ9ZS50YXJnZXRDb250YWluZXJzLG51bGwhPT1vJiYtMT09PXQuaW5kZXhPZihvKSYmdC5wdXNoKG8pKSxlfWZ1bmN0aW9uIHV3KGUpe3ZhciB0PWVIKGUudGFyZ2V0KTtpZihudWxsIT09dCl7dmFyIG49cyh0KTtpZihudWxsIT09bil7aWYoMTM9PT0odD1uLnRhZykpe2lmKG51bGwhPT0odD1jKG4pKSl7ZS5ibG9ja2VkT249dCxleihlLnByaW9yaXR5LGZ1bmN0aW9uKCl7dXIobil9KTtyZXR1cm59fWVsc2UgaWYoMzE9PT10KXtpZihudWxsIT09KHQ9dShuKSkpe2UuYmxvY2tlZE9uPXQsZXooZS5wcmlvcml0eSxmdW5jdGlvbigpe3VyKG4pfSk7cmV0dXJufX1lbHNlIGlmKDM9PT10JiZuLnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXtlLmJsb2NrZWRPbj0zPT09bi50YWc/bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO3JldHVybn19fWUuYmxvY2tlZE9uPW51bGx9ZnVuY3Rpb24gdUMoZSl7aWYobnVsbCE9PWUuYmxvY2tlZE9uKXJldHVybiExO2Zvcih2YXIgdD1lLnRhcmdldENvbnRhaW5lcnM7MDx0Lmxlbmd0aDspe3ZhciBuPXVzKGUubmF0aXZlRXZlbnQpO2lmKG51bGwhPT1uKXJldHVybiBudWxsIT09KHQ9ZVYobikpJiZ1bih0KSxlLmJsb2NrZWRPbj1uLCExO3ZhciByPW5ldyhuPWUubmF0aXZlRXZlbnQpLmNvbnN0cnVjdG9yKG4udHlwZSxuKTt0eT1yLG4udGFyZ2V0LmRpc3BhdGNoRXZlbnQociksdHk9bnVsbCx0LnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gdV8oZSx0LG4pe3VDKGUpJiZuLmRlbGV0ZSh0KX1mdW5jdGlvbiB1aygpe3VmPSExLG51bGwhPT11cCYmdUModXApJiYodXA9bnVsbCksbnVsbCE9PXVoJiZ1Qyh1aCkmJih1aD1udWxsKSxudWxsIT09dW0mJnVDKHVtKSYmKHVtPW51bGwpLHVnLmZvckVhY2godV8pLHV5LmZvckVhY2godV8pfWZ1bmN0aW9uIHVFKGUsdCl7ZS5ibG9ja2VkT249PT10JiYoZS5ibG9ja2VkT249bnVsbCx1Znx8KHVmPSEwLG8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhvLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LHVrKSkpfXZhciB1aj1udWxsO2Z1bmN0aW9uIHVTKGUpe3VqIT09ZSYmKHVqPWUsby51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKG8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZnVuY3Rpb24oKXt1aj09PWUmJih1aj1udWxsKTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrPTMpe3ZhciBuPWVbdF0scj1lW3QrMV0sbz1lW3QrMl07aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgcilpZihudWxsPT09dXUocnx8bikpY29udGludWU7ZWxzZSBicmVhazt2YXIgYT1lVihuKTtudWxsIT09YSYmKGUuc3BsaWNlKHQsMyksdC09MyxhWChhLHtwZW5kaW5nOiEwLGRhdGE6byxtZXRob2Q6bi5tZXRob2QsYWN0aW9uOnJ9LHIsbykpfX0pKX1mdW5jdGlvbiB1TyhlKXtmdW5jdGlvbiB0KHQpe3JldHVybiB1RSh0LGUpfW51bGwhPT11cCYmdUUodXAsZSksbnVsbCE9PXVoJiZ1RSh1aCxlKSxudWxsIT09dW0mJnVFKHVtLGUpLHVnLmZvckVhY2godCksdXkuZm9yRWFjaCh0KTtmb3IodmFyIG49MDtuPHV2Lmxlbmd0aDtuKyspe3ZhciByPXV2W25dO3IuYmxvY2tlZE9uPT09ZSYmKHIuYmxvY2tlZE9uPW51bGwpfWZvcig7MDx1di5sZW5ndGgmJm51bGw9PT0obj11dlswXSkuYmxvY2tlZE9uOyl1dyhuKSxudWxsPT09bi5ibG9ja2VkT24mJnV2LnNoaWZ0KCk7aWYobnVsbCE9KG49KGUub3duZXJEb2N1bWVudHx8ZSkuJCRyZWFjdEZvcm1SZXBsYXkpKWZvcihyPTA7cjxuLmxlbmd0aDtyKz0zKXt2YXIgbz1uW3JdLGE9bltyKzFdLGk9b1tlTF18fG51bGw7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgYSlpfHx1UyhuKTtlbHNlIGlmKGkpe3ZhciBsPW51bGw7aWYoYSYmYS5oYXNBdHRyaWJ1dGUoXCJmb3JtQWN0aW9uXCIpKXtpZihvPWEsaT1hW2VMXXx8bnVsbClsPWkuZm9ybUFjdGlvbjtlbHNlIGlmKG51bGwhPT11dShvKSljb250aW51ZX1lbHNlIGw9aS5hY3Rpb247XCJmdW5jdGlvblwiPT10eXBlb2YgbD9uW3IrMV09bDoobi5zcGxpY2UociwzKSxyLT0zKSx1UyhuKX19fWZ1bmN0aW9uIHVCKCl7ZnVuY3Rpb24gZShlKXtlLmNhbkludGVyY2VwdCYmXCJyZWFjdC10cmFuc2l0aW9uXCI9PT1lLmluZm8mJmUuaW50ZXJjZXB0KHtoYW5kbGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3JldHVybiBvPWV9KX0sZm9jdXNSZXNldDpcIm1hbnVhbFwiLHNjcm9sbDpcIm1hbnVhbFwifSl9ZnVuY3Rpb24gdCgpe251bGwhPT1vJiYobygpLG89bnVsbCkscnx8c2V0VGltZW91dChuLDIwKX1mdW5jdGlvbiBuKCl7aWYoIXImJiFuYXZpZ2F0aW9uLnRyYW5zaXRpb24pe3ZhciBlPW5hdmlnYXRpb24uY3VycmVudEVudHJ5O2UmJm51bGwhPWUudXJsJiZuYXZpZ2F0aW9uLm5hdmlnYXRlKGUudXJsLHtzdGF0ZTplLmdldFN0YXRlKCksaW5mbzpcInJlYWN0LXRyYW5zaXRpb25cIixoaXN0b3J5OlwicmVwbGFjZVwifSl9fWlmKFwib2JqZWN0XCI9PXR5cGVvZiBuYXZpZ2F0aW9uKXt2YXIgcj0hMSxvPW51bGw7cmV0dXJuIG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlXCIsZSksbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKFwibmF2aWdhdGVzdWNjZXNzXCIsdCksbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKFwibmF2aWdhdGVlcnJvclwiLHQpLHNldFRpbWVvdXQobiwxMDApLGZ1bmN0aW9uKCl7cj0hMCxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJuYXZpZ2F0ZVwiLGUpLG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlc3VjY2Vzc1wiLHQpLG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlZXJyb3JcIix0KSxudWxsIT09byYmKG8oKSxvPW51bGwpfX19ZnVuY3Rpb24gdVAoZSl7dGhpcy5faW50ZXJuYWxSb290PWV9ZnVuY3Rpb24gdUkoZSl7dGhpcy5faW50ZXJuYWxSb290PWV9dUkucHJvdG90eXBlLnJlbmRlcj11UC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsPT09dCl0aHJvdyBFcnJvcihsKDQwOSkpO2M3KHQuY3VycmVudCxzcigpLGUsdCxudWxsLG51bGwpfSx1SS5wcm90b3R5cGUudW5tb3VudD11UC5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsIT09ZSl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIHQ9ZS5jb250YWluZXJJbmZvO2M3KGUuY3VycmVudCwyLG51bGwsZSxudWxsLG51bGwpLHNjKCksdFtlTl09bnVsbH19LHVJLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihlKXtpZihlKXt2YXIgdD1lSSgpO2U9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDplLHByaW9yaXR5OnR9O2Zvcih2YXIgbj0wO248dXYubGVuZ3RoJiYwIT09dCYmdDx1dltuXS5wcmlvcml0eTtuKyspO3V2LnNwbGljZShuLDAsZSksMD09PW4mJnV3KGUpfX07dmFyIHV6PWEudmVyc2lvbjtpZihcIjE5LjIuMC1jYW5hcnktMGJkYjkyMDYtMjAyNTA4MThcIiE9PXV6KXRocm93IEVycm9yKGwoNTI3LHV6LFwiMTkuMi4wLWNhbmFyeS0wYmRiOTIwNi0yMDI1MDgxOFwiKSk7aWYoei5maW5kRE9NTm9kZT1mdW5jdGlvbihlKXt2YXIgdD1lLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT10KXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnJlbmRlcil0aHJvdyBFcnJvcihsKDE4OCkpO3Rocm93IEVycm9yKGwoMjY4LGU9T2JqZWN0LmtleXMoZSkuam9pbihcIixcIikpKX1yZXR1cm4gZT1udWxsPT09KGU9bnVsbCE9PShlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO2lmKCF0KXtpZihudWxsPT09KHQ9cyhlKSkpdGhyb3cgRXJyb3IobCgxODgpKTtyZXR1cm4gdCE9PWU/bnVsbDplfWZvcih2YXIgbj1lLHI9dDs7KXt2YXIgbz1uLnJldHVybjtpZihudWxsPT09bylicmVhazt2YXIgYT1vLmFsdGVybmF0ZTtpZihudWxsPT09YSl7aWYobnVsbCE9PShyPW8ucmV0dXJuKSl7bj1yO2NvbnRpbnVlfWJyZWFrfWlmKG8uY2hpbGQ9PT1hLmNoaWxkKXtmb3IoYT1vLmNoaWxkO2E7KXtpZihhPT09bilyZXR1cm4gZChvKSxlO2lmKGE9PT1yKXJldHVybiBkKG8pLHQ7YT1hLnNpYmxpbmd9dGhyb3cgRXJyb3IobCgxODgpKX1pZihuLnJldHVybiE9PXIucmV0dXJuKW49byxyPWE7ZWxzZXtmb3IodmFyIGk9ITEsYz1vLmNoaWxkO2M7KXtpZihjPT09bil7aT0hMCxuPW8scj1hO2JyZWFrfWlmKGM9PT1yKXtpPSEwLHI9byxuPWE7YnJlYWt9Yz1jLnNpYmxpbmd9aWYoIWkpe2ZvcihjPWEuY2hpbGQ7Yzspe2lmKGM9PT1uKXtpPSEwLG49YSxyPW87YnJlYWt9aWYoYz09PXIpe2k9ITAscj1hLG49bzticmVha31jPWMuc2libGluZ31pZighaSl0aHJvdyBFcnJvcihsKDE4OSkpfX1pZihuLmFsdGVybmF0ZSE9PXIpdGhyb3cgRXJyb3IobCgxOTApKX1pZigzIT09bi50YWcpdGhyb3cgRXJyb3IobCgxODgpKTtyZXR1cm4gbi5zdGF0ZU5vZGUuY3VycmVudD09PW4/ZTp0fSh0KSk/ZnVuY3Rpb24gZSh0KXt2YXIgbj10LnRhZztpZig1PT09bnx8MjY9PT1ufHwyNz09PW58fDY9PT1uKXJldHVybiB0O2Zvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXtpZihudWxsIT09KG49ZSh0KSkpcmV0dXJuIG47dD10LnNpYmxpbmd9cmV0dXJuIG51bGx9KGUpOm51bGwpP251bGw6ZS5zdGF0ZU5vZGV9LFwidW5kZWZpbmVkXCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pe3ZhciB1VD1fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187aWYoIXVULmlzRGlzYWJsZWQmJnVULnN1cHBvcnRzRmliZXIpdHJ5e2VmPXVULmluamVjdCh7YnVuZGxlVHlwZTowLHZlcnNpb246XCIxOS4yLjAtY2FuYXJ5LTBiZGI5MjA2LTIwMjUwODE4XCIscmVuZGVyZXJQYWNrYWdlTmFtZTpcInJlYWN0LWRvbVwiLGN1cnJlbnREaXNwYXRjaGVyUmVmOkkscmVjb25jaWxlclZlcnNpb246XCIxOS4yLjAtY2FuYXJ5LTBiZGI5MjA2LTIwMjUwODE4XCJ9KSxlcD11VH1jYXRjaChlKXt9fXQuY3JlYXRlUm9vdD1mdW5jdGlvbihlLHQpe2lmKCEobj1lKXx8MSE9PW4ubm9kZVR5cGUmJjkhPT1uLm5vZGVUeXBlJiYxMSE9PW4ubm9kZVR5cGUpdGhyb3cgRXJyb3IobCgyOTkpKTt2YXIgbixyLG8sYSxpLHMsYyx1LGQ9ITEsZj1cIlwiLHA9aXUsaD1pZCxtPWlwO3JldHVybiBudWxsIT10JiYoITA9PT10LnVuc3RhYmxlX3N0cmljdE1vZGUmJihkPSEwKSx2b2lkIDAhPT10LmlkZW50aWZpZXJQcmVmaXgmJihmPXQuaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09dC5vblVuY2F1Z2h0RXJyb3ImJihwPXQub25VbmNhdWdodEVycm9yKSx2b2lkIDAhPT10Lm9uQ2F1Z2h0RXJyb3ImJihoPXQub25DYXVnaHRFcnJvciksdm9pZCAwIT09dC5vblJlY292ZXJhYmxlRXJyb3ImJihtPXQub25SZWNvdmVyYWJsZUVycm9yKSkscj1lLG89MSxhPSExLGk9bnVsbCxzPTAsYz1kLHU9bnVsbCxyPW5ldyBjOChyLG8sYSxmLHAsaCxtLHVCLG51bGwpLG89MSwhMD09PWMmJihvfD0yNCksYz1yZSgzLG51bGwsbnVsbCxvKSxyLmN1cnJlbnQ9YyxjLnN0YXRlTm9kZT1yLG89cjEoKSxvLnJlZkNvdW50Kyssci5wb29sZWRDYWNoZT1vLG8ucmVmQ291bnQrKyxjLm1lbW9pemVkU3RhdGU9e2VsZW1lbnQ6bnVsbCxpc0RlaHlkcmF0ZWQ6YSxjYWNoZTpvfSxvdyhjKSx0PXIsZVtlTl09dC5jdXJyZW50LHM5KGUpLG5ldyB1UCh0KX19LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bihcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiKTtmdW5jdGlvbiBvKGUpe3ZhciB0PVwiaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzL1wiK2U7aWYoMTxhcmd1bWVudHMubGVuZ3RoKXt0Kz1cIj9hcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBuPTI7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0Kz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tuXSl9cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrZStcIjsgdmlzaXQgXCIrdCtcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9ZnVuY3Rpb24gYSgpe312YXIgaT17ZDp7ZjphLHI6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihvKDUyMikpfSxEOmEsQzphLEw6YSxtOmEsWDphLFM6YSxNOmF9LHA6MCxmaW5kRE9NTm9kZTpudWxsfSxsPVN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIikscz1yLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERTtmdW5jdGlvbiBjKGUsdCl7cmV0dXJuXCJmb250XCI9PT1lP1wiXCI6XCJzdHJpbmdcIj09dHlwZW9mIHQ/XCJ1c2UtY3JlZGVudGlhbHNcIj09PXQ/dDpcIlwiOnZvaWQgMH10Ll9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERT1pLHQuY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGUsdCl7dmFyIG49Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIXR8fDEhPT10Lm5vZGVUeXBlJiY5IT09dC5ub2RlVHlwZSYmMTEhPT10Lm5vZGVUeXBlKXRocm93IEVycm9yKG8oMjk5KSk7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6bCxrZXk6bnVsbD09cj9udWxsOlwiXCIrcixjaGlsZHJlbjplLGNvbnRhaW5lckluZm86dCxpbXBsZW1lbnRhdGlvbjpufX0oZSx0LG51bGwsbil9LHQuZmx1c2hTeW5jPWZ1bmN0aW9uKGUpe3ZhciB0PXMuVCxuPWkucDt0cnl7aWYocy5UPW51bGwsaS5wPTIsZSlyZXR1cm4gZSgpfWZpbmFsbHl7cy5UPXQsaS5wPW4saS5kLmYoKX19LHQucHJlY29ubmVjdD1mdW5jdGlvbihlLHQpe1wic3RyaW5nXCI9PXR5cGVvZiBlJiYodD10P1wic3RyaW5nXCI9PXR5cGVvZih0PXQuY3Jvc3NPcmlnaW4pP1widXNlLWNyZWRlbnRpYWxzXCI9PT10P3Q6XCJcIjp2b2lkIDA6bnVsbCxpLmQuQyhlLHQpKX0sdC5wcmVmZXRjaEROUz1mdW5jdGlvbihlKXtcInN0cmluZ1wiPT10eXBlb2YgZSYmaS5kLkQoZSl9LHQucHJlaW5pdD1mdW5jdGlvbihlLHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiZ0JiZcInN0cmluZ1wiPT10eXBlb2YgdC5hcyl7dmFyIG49dC5hcyxyPWMobix0LmNyb3NzT3JpZ2luKSxvPVwic3RyaW5nXCI9PXR5cGVvZiB0LmludGVncml0eT90LmludGVncml0eTp2b2lkIDAsYT1cInN0cmluZ1wiPT10eXBlb2YgdC5mZXRjaFByaW9yaXR5P3QuZmV0Y2hQcmlvcml0eTp2b2lkIDA7XCJzdHlsZVwiPT09bj9pLmQuUyhlLFwic3RyaW5nXCI9PXR5cGVvZiB0LnByZWNlZGVuY2U/dC5wcmVjZWRlbmNlOnZvaWQgMCx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6byxmZXRjaFByaW9yaXR5OmF9KTpcInNjcmlwdFwiPT09biYmaS5kLlgoZSx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6byxmZXRjaFByaW9yaXR5OmEsbm9uY2U6XCJzdHJpbmdcIj09dHlwZW9mIHQubm9uY2U/dC5ub25jZTp2b2lkIDB9KX19LHQucHJlaW5pdE1vZHVsZT1mdW5jdGlvbihlLHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKWlmKFwib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT09dCl7aWYobnVsbD09dC5hc3x8XCJzY3JpcHRcIj09PXQuYXMpe3ZhciBuPWModC5hcyx0LmNyb3NzT3JpZ2luKTtpLmQuTShlLHtjcm9zc09yaWdpbjpuLGludGVncml0eTpcInN0cmluZ1wiPT10eXBlb2YgdC5pbnRlZ3JpdHk/dC5pbnRlZ3JpdHk6dm9pZCAwLG5vbmNlOlwic3RyaW5nXCI9PXR5cGVvZiB0Lm5vbmNlP3Qubm9uY2U6dm9pZCAwfSl9fWVsc2UgbnVsbD09dCYmaS5kLk0oZSl9LHQucHJlbG9hZD1mdW5jdGlvbihlLHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiZcIm9iamVjdFwiPT10eXBlb2YgdCYmbnVsbCE9PXQmJlwic3RyaW5nXCI9PXR5cGVvZiB0LmFzKXt2YXIgbj10LmFzLHI9YyhuLHQuY3Jvc3NPcmlnaW4pO2kuZC5MKGUsbix7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6XCJzdHJpbmdcIj09dHlwZW9mIHQuaW50ZWdyaXR5P3QuaW50ZWdyaXR5OnZvaWQgMCxub25jZTpcInN0cmluZ1wiPT10eXBlb2YgdC5ub25jZT90Lm5vbmNlOnZvaWQgMCx0eXBlOlwic3RyaW5nXCI9PXR5cGVvZiB0LnR5cGU/dC50eXBlOnZvaWQgMCxmZXRjaFByaW9yaXR5Olwic3RyaW5nXCI9PXR5cGVvZiB0LmZldGNoUHJpb3JpdHk/dC5mZXRjaFByaW9yaXR5OnZvaWQgMCxyZWZlcnJlclBvbGljeTpcInN0cmluZ1wiPT10eXBlb2YgdC5yZWZlcnJlclBvbGljeT90LnJlZmVycmVyUG9saWN5OnZvaWQgMCxpbWFnZVNyY1NldDpcInN0cmluZ1wiPT10eXBlb2YgdC5pbWFnZVNyY1NldD90LmltYWdlU3JjU2V0OnZvaWQgMCxpbWFnZVNpemVzOlwic3RyaW5nXCI9PXR5cGVvZiB0LmltYWdlU2l6ZXM/dC5pbWFnZVNpemVzOnZvaWQgMCxtZWRpYTpcInN0cmluZ1wiPT10eXBlb2YgdC5tZWRpYT90Lm1lZGlhOnZvaWQgMH0pfX0sdC5wcmVsb2FkTW9kdWxlPWZ1bmN0aW9uKGUsdCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpaWYodCl7dmFyIG49Yyh0LmFzLHQuY3Jvc3NPcmlnaW4pO2kuZC5tKGUse2FzOlwic3RyaW5nXCI9PXR5cGVvZiB0LmFzJiZcInNjcmlwdFwiIT09dC5hcz90LmFzOnZvaWQgMCxjcm9zc09yaWdpbjpuLGludGVncml0eTpcInN0cmluZ1wiPT10eXBlb2YgdC5pbnRlZ3JpdHk/dC5pbnRlZ3JpdHk6dm9pZCAwfSl9ZWxzZSBpLmQubShlKX0sdC5yZXF1ZXN0Rm9ybVJlc2V0PWZ1bmN0aW9uKGUpe2kuZC5yKGUpfSx0LnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUodCl9LHQudXNlRm9ybVN0YXRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gcy5ILnVzZUZvcm1TdGF0ZShlLHQsbil9LHQudXNlRm9ybVN0YXR1cz1mdW5jdGlvbigpe3JldHVybiBzLkgudXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKX0sdC52ZXJzaW9uPVwiMTkuMi4wLWNhbmFyeS0wYmRiOTIwNi0yMDI1MDgxOFwifSxcIi4vZGlzdC9jb21waWxlZC9yZWFjdC1kb20vY2xpZW50LmpzXCI6ZnVuY3Rpb24oZSx0LG4pe1widXNlIHN0cmljdFwiOyFmdW5jdGlvbiBlKCl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyYmXCJmdW5jdGlvblwiPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoZSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KCksZS5leHBvcnRzPW4oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tY2xpZW50LnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjshZnVuY3Rpb24gZSgpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJlwiZnVuY3Rpb25cIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSgpLGUuZXhwb3J0cz1uKFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC1jb21waWxlci1ydW50aW1lLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9bihcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiKS5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU7dC5jPWZ1bmN0aW9uKGUpe3JldHVybiByLkgudXNlTWVtb0NhY2hlKGUpfX0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO3ZhciBuPVN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKTtmdW5jdGlvbiByKGUsdCxyKXt2YXIgbz1udWxsO2lmKHZvaWQgMCE9PXImJihvPVwiXCIrciksdm9pZCAwIT09dC5rZXkmJihvPVwiXCIrdC5rZXkpLFwia2V5XCJpbiB0KWZvcih2YXIgYSBpbiByPXt9LHQpXCJrZXlcIiE9PWEmJihyW2FdPXRbYV0pO2Vsc2Ugcj10O3JldHVybnskJHR5cGVvZjpuLHR5cGU6ZSxrZXk6byxyZWY6dm9pZCAwIT09KHQ9ci5yZWYpP3Q6bnVsbCxwcm9wczpyfX10LkZyYWdtZW50PVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSx0LmpzeD1yLHQuanN4cz1yfSxcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QucHJvZHVjdGlvbi5qc1wiOmZ1bmN0aW9uKGUsdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49U3ltYm9sLmZvcihcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIpLHI9U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxvPVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSxhPVN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxpPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSxsPVN5bWJvbC5mb3IoXCJyZWFjdC5jb25zdW1lclwiKSxzPVN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLGM9U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLHU9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLGQ9U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIiksZj1TeW1ib2wuZm9yKFwicmVhY3QubGF6eVwiKSxwPVN5bWJvbC5pdGVyYXRvcixoPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxtPU9iamVjdC5hc3NpZ24sZz17fTtmdW5jdGlvbiB5KGUsdCxuKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQsdGhpcy5yZWZzPWcsdGhpcy51cGRhdGVyPW58fGh9ZnVuY3Rpb24gdigpe31mdW5jdGlvbiBiKGUsdCxuKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQsdGhpcy5yZWZzPWcsdGhpcy51cGRhdGVyPW58fGh9eS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fSx5LnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihlLHQpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiBlJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZudWxsIT1lKXRocm93IEVycm9yKFwidGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuXCIpO3RoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxlLHQsXCJzZXRTdGF0ZVwiKX0seS5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGUsXCJmb3JjZVVwZGF0ZVwiKX0sdi5wcm90b3R5cGU9eS5wcm90b3R5cGU7dmFyIEE9Yi5wcm90b3R5cGU9bmV3IHY7QS5jb25zdHJ1Y3Rvcj1iLG0oQSx5LnByb3RvdHlwZSksQS5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgeD1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIHcoKXt9dmFyIEM9e0g6bnVsbCxBOm51bGwsVDpudWxsLFM6bnVsbH0sXz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGsoZSx0LHIpe3ZhciBvPXIucmVmO3JldHVybnskJHR5cGVvZjpuLHR5cGU6ZSxrZXk6dCxyZWY6dm9pZCAwIT09bz9vOm51bGwscHJvcHM6cn19ZnVuY3Rpb24gRShlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1ufXZhciBqPS9cXC8rL2c7ZnVuY3Rpb24gUyhlLHQpe3ZhciBuLHI7cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT1lLmtleT8obj1cIlwiK2Uua2V5LHI9e1wiPVwiOlwiPTBcIixcIjpcIjpcIj0yXCJ9LFwiJFwiK24ucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKGUpe3JldHVybiByW2VdfSkpOnQudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIE8oZSx0LG8pe2lmKG51bGw9PWUpcmV0dXJuIGU7dmFyIGE9W10saT0wO3JldHVybiFmdW5jdGlvbiBlKHQsbyxhLGksbCl7dmFyIHMsYyx1LGQ9dHlwZW9mIHQ7KFwidW5kZWZpbmVkXCI9PT1kfHxcImJvb2xlYW5cIj09PWQpJiYodD1udWxsKTt2YXIgaD0hMTtpZihudWxsPT09dCloPSEwO2Vsc2Ugc3dpdGNoKGQpe2Nhc2VcImJpZ2ludFwiOmNhc2VcInN0cmluZ1wiOmNhc2VcIm51bWJlclwiOmg9ITA7YnJlYWs7Y2FzZVwib2JqZWN0XCI6c3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgbjpjYXNlIHI6aD0hMDticmVhaztjYXNlIGY6cmV0dXJuIGUoKGg9dC5faW5pdCkodC5fcGF5bG9hZCksbyxhLGksbCl9fWlmKGgpcmV0dXJuIGw9bCh0KSxoPVwiXCI9PT1pP1wiLlwiK1ModCwwKTppLHgobCk/KGE9XCJcIixudWxsIT1oJiYoYT1oLnJlcGxhY2UoaixcIiQmL1wiKStcIi9cIiksZShsLG8sYSxcIlwiLGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpOm51bGwhPWwmJihFKGwpJiYocz1sLGM9YSsobnVsbD09bC5rZXl8fHQmJnQua2V5PT09bC5rZXk/XCJcIjooXCJcIitsLmtleSkucmVwbGFjZShqLFwiJCYvXCIpK1wiL1wiKStoLGw9ayhzLnR5cGUsYyxzLnByb3BzKSksby5wdXNoKGwpKSwxO2g9MDt2YXIgbT1cIlwiPT09aT9cIi5cIjppK1wiOlwiO2lmKHgodCkpZm9yKHZhciBnPTA7Zzx0Lmxlbmd0aDtnKyspZD1tK1MoaT10W2ddLGcpLGgrPWUoaSxvLGEsZCxsKTtlbHNlIGlmKFwiZnVuY3Rpb25cIj09dHlwZW9mKGc9bnVsbD09PSh1PXQpfHxcIm9iamVjdFwiIT10eXBlb2YgdT9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mKHU9cCYmdVtwXXx8dVtcIkBAaXRlcmF0b3JcIl0pP3U6bnVsbCkpZm9yKHQ9Zy5jYWxsKHQpLGc9MDshKGk9dC5uZXh0KCkpLmRvbmU7KWQ9bStTKGk9aS52YWx1ZSxnKyspLGgrPWUoaSxvLGEsZCxsKTtlbHNlIGlmKFwib2JqZWN0XCI9PT1kKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnRoZW4pcmV0dXJuIGUoZnVuY3Rpb24oZSl7c3dpdGNoKGUuc3RhdHVzKXtjYXNlXCJmdWxmaWxsZWRcIjpyZXR1cm4gZS52YWx1ZTtjYXNlXCJyZWplY3RlZFwiOnRocm93IGUucmVhc29uO2RlZmF1bHQ6c3dpdGNoKFwic3RyaW5nXCI9PXR5cGVvZiBlLnN0YXR1cz9lLnRoZW4odyx3KTooZS5zdGF0dXM9XCJwZW5kaW5nXCIsZS50aGVuKGZ1bmN0aW9uKHQpe1wicGVuZGluZ1wiPT09ZS5zdGF0dXMmJihlLnN0YXR1cz1cImZ1bGZpbGxlZFwiLGUudmFsdWU9dCl9LGZ1bmN0aW9uKHQpe1wicGVuZGluZ1wiPT09ZS5zdGF0dXMmJihlLnN0YXR1cz1cInJlamVjdGVkXCIsZS5yZWFzb249dCl9KSksZS5zdGF0dXMpe2Nhc2VcImZ1bGZpbGxlZFwiOnJldHVybiBlLnZhbHVlO2Nhc2VcInJlamVjdGVkXCI6dGhyb3cgZS5yZWFzb259fXRocm93IGV9KHQpLG8sYSxpLGwpO3Rocm93IEVycm9yKFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIisoXCJbb2JqZWN0IE9iamVjdF1cIj09PShvPVN0cmluZyh0KSk/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyh0KS5qb2luKFwiLCBcIikrXCJ9XCI6bykrXCIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuXCIpfXJldHVybiBofShlLGEsXCJcIixcIlwiLGZ1bmN0aW9uKGUpe3JldHVybiB0LmNhbGwobyxlLGkrKyl9KSxhfWZ1bmN0aW9uIEIoZSl7aWYoLTE9PT1lLl9zdGF0dXMpe3ZhciB0PWUuX3Jlc3VsdDsodD10KCkpLnRoZW4oZnVuY3Rpb24odCl7KDA9PT1lLl9zdGF0dXN8fC0xPT09ZS5fc3RhdHVzKSYmKGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD10KX0sZnVuY3Rpb24odCl7KDA9PT1lLl9zdGF0dXN8fC0xPT09ZS5fc3RhdHVzKSYmKGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD10KX0pLC0xPT09ZS5fc3RhdHVzJiYoZS5fc3RhdHVzPTAsZS5fcmVzdWx0PXQpfWlmKDE9PT1lLl9zdGF0dXMpcmV0dXJuIGUuX3Jlc3VsdC5kZWZhdWx0O3Rocm93IGUuX3Jlc3VsdH12YXIgUD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtpZihcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudCl7dmFyIHQ9bmV3IHdpbmRvdy5FcnJvckV2ZW50KFwiZXJyb3JcIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6XCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lJiZcInN0cmluZ1wiPT10eXBlb2YgZS5tZXNzYWdlP1N0cmluZyhlLm1lc3NhZ2UpOlN0cmluZyhlKSxlcnJvcjplfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KHQpKXJldHVybn1lbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBwcm9jZXNzJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBwcm9jZXNzLmVtaXQpcmV0dXJuIHZvaWQgcHJvY2Vzcy5lbWl0KFwidW5jYXVnaHRFeGNlcHRpb25cIixlKTtjb25zb2xlLmVycm9yKGUpfTt0LkNoaWxkcmVuPXttYXA6Tyxmb3JFYWNoOmZ1bmN0aW9uKGUsdCxuKXtPKGUsZnVuY3Rpb24oKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbil9LGNvdW50OmZ1bmN0aW9uKGUpe3ZhciB0PTA7cmV0dXJuIE8oZSxmdW5jdGlvbigpe3QrK30pLHR9LHRvQXJyYXk6ZnVuY3Rpb24oZSl7cmV0dXJuIE8oZSxmdW5jdGlvbihlKXtyZXR1cm4gZX0pfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighRShlKSl0aHJvdyBFcnJvcihcIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLlwiKTtyZXR1cm4gZX19LHQuQ29tcG9uZW50PXksdC5GcmFnbWVudD1vLHQuUHJvZmlsZXI9aSx0LlB1cmVDb21wb25lbnQ9Yix0LlN0cmljdE1vZGU9YSx0LlN1c3BlbnNlPXUsdC5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU9Qyx0Ll9fQ09NUElMRVJfUlVOVElNRT17X19wcm90b19fOm51bGwsYzpmdW5jdGlvbihlKXtyZXR1cm4gQy5ILnVzZU1lbW9DYWNoZShlKX19LHQuY2FjaGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkobnVsbCxhcmd1bWVudHMpfX0sdC5jYWNoZVNpZ25hbD1mdW5jdGlvbigpe3JldHVybiBudWxsfSx0LmNsb25lRWxlbWVudD1mdW5jdGlvbihlLHQsbil7aWYobnVsbD09ZSl0aHJvdyBFcnJvcihcIlRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgXCIrZStcIi5cIik7dmFyIHI9bSh7fSxlLnByb3BzKSxvPWUua2V5O2lmKG51bGwhPXQpZm9yKGEgaW4gdm9pZCAwIT09dC5rZXkmJihvPVwiXCIrdC5rZXkpLHQpXy5jYWxsKHQsYSkmJlwia2V5XCIhPT1hJiZcIl9fc2VsZlwiIT09YSYmXCJfX3NvdXJjZVwiIT09YSYmKFwicmVmXCIhPT1hfHx2b2lkIDAhPT10LnJlZikmJihyW2FdPXRbYV0pO3ZhciBhPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09YSlyLmNoaWxkcmVuPW47ZWxzZSBpZigxPGEpe2Zvcih2YXIgaT1BcnJheShhKSxsPTA7bDxhO2wrKylpW2xdPWFyZ3VtZW50c1tsKzJdO3IuY2hpbGRyZW49aX1yZXR1cm4gayhlLnR5cGUsbyxyKX0sdC5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybihlPXskJHR5cGVvZjpzLF9jdXJyZW50VmFsdWU6ZSxfY3VycmVudFZhbHVlMjplLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH0pLlByb3ZpZGVyPWUsZS5Db25zdW1lcj17JCR0eXBlb2Y6bCxfY29udGV4dDplfSxlfSx0LmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG89e30sYT1udWxsO2lmKG51bGwhPXQpZm9yKHIgaW4gdm9pZCAwIT09dC5rZXkmJihhPVwiXCIrdC5rZXkpLHQpXy5jYWxsKHQscikmJlwia2V5XCIhPT1yJiZcIl9fc2VsZlwiIT09ciYmXCJfX3NvdXJjZVwiIT09ciYmKG9bcl09dFtyXSk7dmFyIGk9YXJndW1lbnRzLmxlbmd0aC0yO2lmKDE9PT1pKW8uY2hpbGRyZW49bjtlbHNlIGlmKDE8aSl7Zm9yKHZhciBsPUFycmF5KGkpLHM9MDtzPGk7cysrKWxbc109YXJndW1lbnRzW3MrMl07by5jaGlsZHJlbj1sfWlmKGUmJmUuZGVmYXVsdFByb3BzKWZvcihyIGluIGk9ZS5kZWZhdWx0UHJvcHMpdm9pZCAwPT09b1tyXSYmKG9bcl09aVtyXSk7cmV0dXJuIGsoZSxhLG8pfSx0LmNyZWF0ZVJlZj1mdW5jdGlvbigpe3JldHVybntjdXJyZW50Om51bGx9fSx0LmZvcndhcmRSZWY9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOmMscmVuZGVyOmV9fSx0LmlzVmFsaWRFbGVtZW50PUUsdC5sYXp5PWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpmLF9wYXlsb2FkOntfc3RhdHVzOi0xLF9yZXN1bHQ6ZX0sX2luaXQ6Qn19LHQubWVtbz1mdW5jdGlvbihlLHQpe3JldHVybnskJHR5cGVvZjpkLHR5cGU6ZSxjb21wYXJlOnZvaWQgMD09PXQ/bnVsbDp0fX0sdC5zdGFydFRyYW5zaXRpb249ZnVuY3Rpb24oZSl7dmFyIHQ9Qy5ULG49e307Qy5UPW47dHJ5e3ZhciByPWUoKSxvPUMuUztudWxsIT09byYmbyhuLHIpLFwib2JqZWN0XCI9PXR5cGVvZiByJiZudWxsIT09ciYmXCJmdW5jdGlvblwiPT10eXBlb2Ygci50aGVuJiZyLnRoZW4odyxQKX1jYXRjaChlKXtQKGUpfWZpbmFsbHl7bnVsbCE9PXQmJm51bGwhPT1uLnR5cGVzJiYodC50eXBlcz1uLnR5cGVzKSxDLlQ9dH19LHQudW5zdGFibGVfdXNlQ2FjaGVSZWZyZXNoPWZ1bmN0aW9uKCl7cmV0dXJuIEMuSC51c2VDYWNoZVJlZnJlc2goKX0sdC51c2U9ZnVuY3Rpb24oZSl7cmV0dXJuIEMuSC51c2UoZSl9LHQudXNlQWN0aW9uU3RhdGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBDLkgudXNlQWN0aW9uU3RhdGUoZSx0LG4pfSx0LnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIEMuSC51c2VDYWxsYmFjayhlLHQpfSx0LnVzZUNvbnRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIEMuSC51c2VDb250ZXh0KGUpfSx0LnVzZURlYnVnVmFsdWU9ZnVuY3Rpb24oKXt9LHQudXNlRGVmZXJyZWRWYWx1ZT1mdW5jdGlvbihlLHQpe3JldHVybiBDLkgudXNlRGVmZXJyZWRWYWx1ZShlLHQpfSx0LnVzZUVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBDLkgudXNlRWZmZWN0KGUsdCl9LHQudXNlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gQy5ILnVzZUlkKCl9LHQudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIEMuSC51c2VJbXBlcmF0aXZlSGFuZGxlKGUsdCxuKX0sdC51c2VJbnNlcnRpb25FZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gQy5ILnVzZUluc2VydGlvbkVmZmVjdChlLHQpfSx0LnVzZUxheW91dEVmZmVjdD1mdW5jdGlvbihlLHQpe3JldHVybiBDLkgudXNlTGF5b3V0RWZmZWN0KGUsdCl9LHQudXNlTWVtbz1mdW5jdGlvbihlLHQpe3JldHVybiBDLkgudXNlTWVtbyhlLHQpfSx0LnVzZU9wdGltaXN0aWM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gQy5ILnVzZU9wdGltaXN0aWMoZSx0KX0sdC51c2VSZWR1Y2VyPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gQy5ILnVzZVJlZHVjZXIoZSx0LG4pfSx0LnVzZVJlZj1mdW5jdGlvbihlKXtyZXR1cm4gQy5ILnVzZVJlZihlKX0sdC51c2VTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gQy5ILnVzZVN0YXRlKGUpfSx0LnVzZVN5bmNFeHRlcm5hbFN0b3JlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gQy5ILnVzZVN5bmNFeHRlcm5hbFN0b3JlKGUsdCxuKX0sdC51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIEMuSC51c2VUcmFuc2l0aW9uKCl9LHQudmVyc2lvbj1cIjE5LjIuMC1jYW5hcnktMGJkYjkyMDYtMjAyNTA4MThcIn0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY29tcGlsZXItcnVudGltZS5qc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9bihcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QtY29tcGlsZXItcnVudGltZS5wcm9kdWN0aW9uLmpzXCIpfSxcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9bihcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QucHJvZHVjdGlvbi5qc1wiKX0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanNcIjpmdW5jdGlvbihlLHQsbil7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPW4oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLHQpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oZSx0KXt2YXIgbj1lLmxlbmd0aDtmb3IoZS5wdXNoKHQpOzA8bjspe3ZhciByPW4tMT4+PjEsbz1lW3JdO2lmKDA8YShvLHQpKWVbcl09dCxlW25dPW8sbj1yO2Vsc2UgYnJlYWt9fWZ1bmN0aW9uIHIoZSl7cmV0dXJuIDA9PT1lLmxlbmd0aD9udWxsOmVbMF19ZnVuY3Rpb24gbyhlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHQ9ZVswXSxuPWUucG9wKCk7aWYobiE9PXQpe2VbMF09bjtmb3IodmFyIHI9MCxvPWUubGVuZ3RoLGk9bz4+PjE7cjxpOyl7dmFyIGw9MioocisxKS0xLHM9ZVtsXSxjPWwrMSx1PWVbY107aWYoMD5hKHMsbikpYzxvJiYwPmEodSxzKT8oZVtyXT11LGVbY109bixyPWMpOihlW3JdPXMsZVtsXT1uLHI9bCk7ZWxzZSBpZihjPG8mJjA+YSh1LG4pKWVbcl09dSxlW2NdPW4scj1jO2Vsc2UgYnJlYWt9fXJldHVybiB0fWZ1bmN0aW9uIGEoZSx0KXt2YXIgbj1lLnNvcnRJbmRleC10LnNvcnRJbmRleDtyZXR1cm4gMCE9PW4/bjplLmlkLXQuaWR9aWYodC51bnN0YWJsZV9ub3c9dm9pZCAwLFwib2JqZWN0XCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgaSxsPXBlcmZvcm1hbmNlO3QudW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGwubm93KCl9fWVsc2V7dmFyIHM9RGF0ZSxjPXMubm93KCk7dC51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gcy5ub3coKS1jfX12YXIgdT1bXSxkPVtdLGY9MSxwPW51bGwsaD0zLG09ITEsZz0hMSx5PSExLHY9ITEsYj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6bnVsbCxBPVwiZnVuY3Rpb25cIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6bnVsbCx4PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7ZnVuY3Rpb24gdyhlKXtmb3IodmFyIHQ9cihkKTtudWxsIT09dDspe2lmKG51bGw9PT10LmNhbGxiYWNrKW8oZCk7ZWxzZSBpZih0LnN0YXJ0VGltZTw9ZSlvKGQpLHQuc29ydEluZGV4PXQuZXhwaXJhdGlvblRpbWUsbih1LHQpO2Vsc2UgYnJlYWs7dD1yKGQpfX1mdW5jdGlvbiBDKGUpe2lmKHk9ITEsdyhlKSwhZylpZihudWxsIT09cih1KSlnPSEwLF98fChfPSEwLGkoKSk7ZWxzZXt2YXIgdD1yKGQpO251bGwhPT10JiZJKEMsdC5zdGFydFRpbWUtZSl9fXZhciBfPSExLGs9LTEsRT01LGo9LTE7ZnVuY3Rpb24gUygpe3JldHVybiEhdnx8ISh0LnVuc3RhYmxlX25vdygpLWo8RSl9ZnVuY3Rpb24gTygpe2lmKHY9ITEsXyl7dmFyIGU9dC51bnN0YWJsZV9ub3coKTtqPWU7dmFyIG49ITA7dHJ5e2U6e2c9ITEseSYmKHk9ITEsQShrKSxrPS0xKSxtPSEwO3ZhciBhPWg7dHJ5e3Q6e2Zvcih3KGUpLHA9cih1KTtudWxsIT09cCYmIShwLmV4cGlyYXRpb25UaW1lPmUmJlMoKSk7KXt2YXIgbD1wLmNhbGxiYWNrO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGwpe3AuY2FsbGJhY2s9bnVsbCxoPXAucHJpb3JpdHlMZXZlbDt2YXIgcz1sKHAuZXhwaXJhdGlvblRpbWU8PWUpO2lmKGU9dC51bnN0YWJsZV9ub3coKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBzKXtwLmNhbGxiYWNrPXMsdyhlKSxuPSEwO2JyZWFrIHR9cD09PXIodSkmJm8odSksdyhlKX1lbHNlIG8odSk7cD1yKHUpfWlmKG51bGwhPT1wKW49ITA7ZWxzZXt2YXIgYz1yKGQpO251bGwhPT1jJiZJKEMsYy5zdGFydFRpbWUtZSksbj0hMX19YnJlYWsgZX1maW5hbGx5e3A9bnVsbCxoPWEsbT0hMX19fWZpbmFsbHl7bj9pKCk6Xz0hMX19fWlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHgpaT1mdW5jdGlvbigpe3goTyl9O2Vsc2UgaWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIE1lc3NhZ2VDaGFubmVsKXt2YXIgQj1uZXcgTWVzc2FnZUNoYW5uZWwsUD1CLnBvcnQyO0IucG9ydDEub25tZXNzYWdlPU8saT1mdW5jdGlvbigpe1AucG9zdE1lc3NhZ2UobnVsbCl9fWVsc2UgaT1mdW5jdGlvbigpe2IoTywwKX07ZnVuY3Rpb24gSShlLG4pe2s9YihmdW5jdGlvbigpe2UodC51bnN0YWJsZV9ub3coKSl9LG4pfXQudW5zdGFibGVfSWRsZVByaW9yaXR5PTUsdC51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xLHQudW5zdGFibGVfTG93UHJpb3JpdHk9NCx0LnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTMsdC51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbCx0LnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTIsdC51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihlKXtlLmNhbGxiYWNrPW51bGx9LHQudW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oZSl7MD5lfHwxMjU8ZT9jb25zb2xlLmVycm9yKFwiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkXCIpOkU9MDxlP01hdGguZmxvb3IoMWUzL2UpOjV9LHQudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gaH0sdC51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGUpe3N3aXRjaChoKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgdD0zO2JyZWFrO2RlZmF1bHQ6dD1ofXZhciBuPWg7aD10O3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7aD1ufX0sdC51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9ZnVuY3Rpb24oKXt2PSEwfSx0LnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6ZT0zfXZhciBuPWg7aD1lO3RyeXtyZXR1cm4gdCgpfWZpbmFsbHl7aD1ufX0sdC51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGUsbyxhKXt2YXIgbD10LnVuc3RhYmxlX25vdygpO3N3aXRjaChhPVwib2JqZWN0XCI9PXR5cGVvZiBhJiZudWxsIT09YSYmXCJudW1iZXJcIj09dHlwZW9mKGE9YS5kZWxheSkmJjA8YT9sK2E6bCxlKXtjYXNlIDE6dmFyIHM9LTE7YnJlYWs7Y2FzZSAyOnM9MjUwO2JyZWFrO2Nhc2UgNTpzPTB4M2ZmZmZmZmY7YnJlYWs7Y2FzZSA0OnM9MWU0O2JyZWFrO2RlZmF1bHQ6cz01ZTN9cmV0dXJuIHM9YStzLGU9e2lkOmYrKyxjYWxsYmFjazpvLHByaW9yaXR5TGV2ZWw6ZSxzdGFydFRpbWU6YSxleHBpcmF0aW9uVGltZTpzLHNvcnRJbmRleDotMX0sYT5sPyhlLnNvcnRJbmRleD1hLG4oZCxlKSxudWxsPT09cih1KSYmZT09PXIoZCkmJih5PyhBKGspLGs9LTEpOnk9ITAsSShDLGEtbCkpKTooZS5zb3J0SW5kZXg9cyxuKHUsZSksZ3x8bXx8KGc9ITAsX3x8KF89ITAsaSgpKSkpLGV9LHQudW5zdGFibGVfc2hvdWxkWWllbGQ9Uyx0LnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihlKXt2YXIgdD1oO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPWg7aD10O3RyeXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtoPW59fX19LFwiLi9kaXN0L2NvbXBpbGVkL3NjaGVkdWxlci9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsdCxuKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9bihcIi4vZGlzdC9jb21waWxlZC9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLmpzXCIpfSxcIi4vZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlci9zdGFjay10cmFjZS1wYXJzZXIuY2pzLmpzXCI6ZnVuY3Rpb24oZSl7KCgpPT57XCJ1c2Ugc3RyaWN0XCI7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18mJihfX25jY3dwY2tfcmVxdWlyZV9fLmFiPVwiLy9cIik7dmFyIHQsbixyLG8sYSxpLGwscyxjPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQ9XCI8dW5rbm93bj5cIixuPS9eXFxzKmF0ICguKj8pID9cXCgoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWUtZXh0ZW5zaW9ufG5hdGl2ZXxldmFsfHdlYnBhY2t8d2VicGFjay1pbnRlcm5hbHxyc2N8YWJvdXR8dHVyYm9wYWNrfDxhbm9ueW1vdXM+fFxcL3xbYS16XTpcXFxcfFxcXFxcXFxcKS4qPykoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXCk/XFxzKiQvaSxyPS9cXCgoXFxTKikoPzo6KFxcZCspKSg/OjooXFxkKykpXFwpLyxvPS9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT8uKykgKT9cXCg/KCg/OmZpbGV8bXMtYXBweHxodHRwcz98d2VicGFja3x3ZWJwYWNrLWludGVybmFsfHJzY3xhYm91dHx0dXJib3BhY2t8YmxvYik6Lio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaSxhPS9eXFxzKiguKj8pKD86XFwoKC4qPylcXCkpPyg/Ol58QCkoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWV8d2VicGFja3x3ZWJwYWNrLWludGVybmFsfHJzY3xhYm91dHx0dXJib3BhY2t8cmVzb3VyY2V8XFxbbmF0aXZlKS4qP3xbXkBdKmJ1bmRsZSkoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXHMqJC9pLGk9LyhcXFMrKSBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsL2ksbD0vXlxccyooPzooW15AXSopKD86XFwoKC4qPylcXCkpP0ApPyhcXFMuKj8pOihcXGQrKSg/OjooXFxkKykpP1xccyokL2kscz0vXlxccyphdCAoPzooKD86XFxbb2JqZWN0IG9iamVjdFxcXSk/W15cXFxcL10rKD86IFxcW2FzIFxcUytcXF0pPykgKT9cXCg/KC4qPyk6KFxcZCspKD86OihcXGQrKSk/XFwpP1xccyokL2ksYy5wYXJzZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdChcIlxcblwiKS5yZWR1Y2UoZnVuY3Rpb24oZSxjKXt2YXIgdSxkLGYscCxoLG0sZz1mdW5jdGlvbihlKXt2YXIgbz1uLmV4ZWMoZSk7aWYoIW8pcmV0dXJuIG51bGw7dmFyIGE9b1syXSYmMD09PW9bMl0uaW5kZXhPZihcIm5hdGl2ZVwiKSxpPW9bMl0mJjA9PT1vWzJdLmluZGV4T2YoXCJldmFsXCIpLGw9ci5leGVjKG9bMl0pO3JldHVybiBpJiZudWxsIT1sJiYob1syXT1sWzFdLG9bM109bFsyXSxvWzRdPWxbM10pLHtmaWxlOmE/bnVsbDpvWzJdLG1ldGhvZE5hbWU6b1sxXXx8dCxhcmd1bWVudHM6YT9bb1syXV06W10sbGluZU51bWJlcjpvWzNdPytvWzNdOm51bGwsY29sdW1uOm9bNF0/K29bNF06bnVsbH19KGMpfHwodT1jLChkPW8uZXhlYyh1KSk/e2ZpbGU6ZFsyXSxtZXRob2ROYW1lOmRbMV18fHQsYXJndW1lbnRzOltdLGxpbmVOdW1iZXI6K2RbM10sY29sdW1uOmRbNF0/K2RbNF06bnVsbH06bnVsbCl8fGZ1bmN0aW9uKGUpe3ZhciBuPWEuZXhlYyhlKTtpZighbilyZXR1cm4gbnVsbDt2YXIgcj1uWzNdJiZuWzNdLmluZGV4T2YoXCIgPiBldmFsXCIpPi0xLG89aS5leGVjKG5bM10pO3JldHVybiByJiZudWxsIT1vJiYoblszXT1vWzFdLG5bNF09b1syXSxuWzVdPW51bGwpLHtmaWxlOm5bM10sbWV0aG9kTmFtZTpuWzFdfHx0LGFyZ3VtZW50czpuWzJdP25bMl0uc3BsaXQoXCIsXCIpOltdLGxpbmVOdW1iZXI6bls0XT8rbls0XTpudWxsLGNvbHVtbjpuWzVdPytuWzVdOm51bGx9fShjKXx8KGY9YywocD1zLmV4ZWMoZikpP3tmaWxlOnBbMl0sbWV0aG9kTmFtZTpwWzFdfHx0LGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOitwWzNdLGNvbHVtbjpwWzRdPytwWzRdOm51bGx9Om51bGwpfHwoaD1jLChtPWwuZXhlYyhoKSk/e2ZpbGU6bVszXSxtZXRob2ROYW1lOm1bMV18fHQsYXJndW1lbnRzOltdLGxpbmVOdW1iZXI6K21bNF0sY29sdW1uOm1bNV0/K21bNV06bnVsbH06bnVsbCk7cmV0dXJuIGcmJmUucHVzaChnKSxlfSxbXSl9LGUuZXhwb3J0cz1jfSkoKX0sXCIuL2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaS9pbmRleC5qc1wiOmZ1bmN0aW9uKGUpeygoKT0+e1widXNlIHN0cmljdFwiO3ZhciB0PXs1MTE6ZT0+e2UuZXhwb3J0cz0oe29ubHlGaXJzdDplPSExfT17fSk9PlJlZ0V4cChcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyl8KD86KD86XFxcXGR7MSw0fSg/OjtcXFxcZHswLDR9KSopP1tcXFxcZEEtUFItVFpjZi1udHFyeT0+PH5dKSlcIixlP3ZvaWQgMDpcImdcIil9LDUzMjooZSx0LG4pPT57bGV0IHI9big1MTEpO2UuZXhwb3J0cz1lPT5cInN0cmluZ1wiPT10eXBlb2YgZT9lLnJlcGxhY2UocigpLFwiXCIpOmV9fSxuPXt9O2Z1bmN0aW9uIHIoZSl7dmFyIG89bltlXTtpZih2b2lkIDAhPT1vKXJldHVybiBvLmV4cG9ydHM7dmFyIGE9bltlXT17ZXhwb3J0czp7fX0saT0hMDt0cnl7dFtlXShhLGEuZXhwb3J0cyxyKSxpPSExfWZpbmFsbHl7aSYmZGVsZXRlIG5bZV19cmV0dXJuIGEuZXhwb3J0c31yLmFiPVwiLy9cIixlLmV4cG9ydHM9cig1MzIpfSkoKX0sXCIuL3NyYy9idWlsZC93ZWJwYWNrL2xvYWRlcnMvZGV2dG9vbC9kZXZ0b29sLXN0eWxlLWluamVjdC5qc1wiOmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoKXtsZXQgZT13aW5kb3cuX25leHRqc0RldnRvb2xzU3R5bGVDYWNoZTtpZihlLmNhY2hlZFNoYWRvd1Jvb3QpcmV0dXJuIGUuY2FjaGVkU2hhZG93Um9vdDtsZXQgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwibmV4dGpzLXBvcnRhbFwiKSxuPXQ/LnNoYWRvd1Jvb3R8fG51bGw7cmV0dXJuIG4mJihlLmNhY2hlZFNoYWRvd1Jvb3Q9biksbn1mdW5jdGlvbiBuKGUsdCl7bGV0IG49d2luZG93Ll9uZXh0anNEZXZ0b29sc1N0eWxlQ2FjaGU7bi5sYXN0SW5zZXJ0ZWRFbGVtZW50P24ubGFzdEluc2VydGVkRWxlbWVudC5uZXh0U2libGluZz90Lmluc2VydEJlZm9yZShlLG4ubGFzdEluc2VydGVkRWxlbWVudC5uZXh0U2libGluZyk6dC5hcHBlbmRDaGlsZChlKTp0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCksbi5sYXN0SW5zZXJ0ZWRFbGVtZW50PWV9ZnVuY3Rpb24gcigpe2xldCBlPXdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlLHI9dCgpO3ImJihlLnBlbmRpbmdFbGVtZW50cy5mb3JFYWNoKGU9PntuKGUscil9KSxlLnBlbmRpbmdFbGVtZW50cz1bXSl9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlPXdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlfHx7cGVuZGluZ0VsZW1lbnRzOltdLGlzT2JzZXJ2aW5nOiExLGxhc3RJbnNlcnRlZEVsZW1lbnQ6bnVsbCxjYWNoZWRTaGFkb3dSb290Om51bGx9KSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7ZS5zZXRBdHRyaWJ1dGUoXCJkYXRhLW5leHRqcy1kZXYtdG9vbC1zdHlsZVwiLFwidHJ1ZVwiKTtsZXQgbz10KCk7bz9uKGUsbyk6KHdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlLnBlbmRpbmdFbGVtZW50cy5wdXNoKGUpLGZ1bmN0aW9uKCl7bGV0IGU9d2luZG93Ll9uZXh0anNEZXZ0b29sc1N0eWxlQ2FjaGU7aWYoZS5pc09ic2VydmluZylyZXR1cm47aWYoZS5pc09ic2VydmluZz0hMCx0KCkpcmV0dXJuIHIoKTtsZXQgbj1uZXcgTXV0YXRpb25PYnNlcnZlcihvPT57aWYoMD09PW8ubGVuZ3RofHwwPT09b1swXS5hZGRlZE5vZGVzLmxlbmd0aClyZXR1cm47bGV0IGE9b1swXS5hZGRlZE5vZGVzWzBdLGk9bnVsbDtpZihcIlNDUklQVFwiPT09YS50YWdOYW1lJiZhLmdldEF0dHJpYnV0ZShcImRhdGEtbmV4dGpzLWRldi1vdmVybGF5XCIpP2k9YS5maXJzdENoaWxkOlwiTkVYVEpTLVBPUlRBTFwiPT09YS50YWdOYW1lJiYoaT1hKSwhaSlyZXR1cm47bGV0IGw9KCk9Pnt0KCk/KHIoKSxuLmRpc2Nvbm5lY3QoKSxlLmlzT2JzZXJ2aW5nPSExKTpzZXRUaW1lb3V0KGwsMjApfTtsKCl9KTtuLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX0oKSl9fSxcIi4vZGlzdC9jb21waWxlZC96b2QvaW5kZXguY2pzXCI6ZnVuY3Rpb24oZSl7KCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIHQ9ezYyOTpmdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pO3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTsoIW98fChcImdldFwiaW4gbz8hdC5fX2VzTW9kdWxlOm8ud3JpdGFibGV8fG8uY29uZmlndXJhYmxlKSkmJihvPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsbyl9OmZ1bmN0aW9uKGUsdCxuLHIpe3ZvaWQgMD09PXImJihyPW4pLGVbcl09dFtuXX0pLG89dGhpcyYmdGhpcy5fX3NldE1vZHVsZURlZmF1bHR8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkZWZhdWx0XCIse2VudW1lcmFibGU6ITAsdmFsdWU6dH0pfTpmdW5jdGlvbihlLHQpe2UuZGVmYXVsdD10fSksYT10aGlzJiZ0aGlzLl9faW1wb3J0U3Rhcnx8ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpXCJkZWZhdWx0XCIhPT1uJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmcih0LGUsbik7cmV0dXJuIG8odCxlKSx0fSxpPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiBlKVwiZGVmYXVsdFwiPT09bnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbil8fHIodCxlLG4pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0Lno9dm9pZCAwO2xldCBsPWEobig5MjMpKTt0Lno9bCxpKG4oOTIzKSx0KSx0LmRlZmF1bHQ9bH0sMzQ4OihlLHQsbik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LlpvZEVycm9yPXQucXVvdGVsZXNzSnNvbj10LlpvZElzc3VlQ29kZT12b2lkIDA7bGV0IHI9big3MDkpO3QuWm9kSXNzdWVDb2RlPXIudXRpbC5hcnJheVRvRW51bShbXCJpbnZhbGlkX3R5cGVcIixcImludmFsaWRfbGl0ZXJhbFwiLFwiY3VzdG9tXCIsXCJpbnZhbGlkX3VuaW9uXCIsXCJpbnZhbGlkX3VuaW9uX2Rpc2NyaW1pbmF0b3JcIixcImludmFsaWRfZW51bV92YWx1ZVwiLFwidW5yZWNvZ25pemVkX2tleXNcIixcImludmFsaWRfYXJndW1lbnRzXCIsXCJpbnZhbGlkX3JldHVybl90eXBlXCIsXCJpbnZhbGlkX2RhdGVcIixcImludmFsaWRfc3RyaW5nXCIsXCJ0b29fc21hbGxcIixcInRvb19iaWdcIixcImludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzXCIsXCJub3RfbXVsdGlwbGVfb2ZcIixcIm5vdF9maW5pdGVcIl0pLHQucXVvdGVsZXNzSnNvbj1lPT5KU09OLnN0cmluZ2lmeShlLG51bGwsMikucmVwbGFjZSgvXCIoW15cIl0rKVwiOi9nLFwiJDE6XCIpO2NsYXNzIG8gZXh0ZW5kcyBFcnJvcntnZXQgZXJyb3JzKCl7cmV0dXJuIHRoaXMuaXNzdWVzfWNvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5pc3N1ZXM9W10sdGhpcy5hZGRJc3N1ZT1lPT57dGhpcy5pc3N1ZXM9Wy4uLnRoaXMuaXNzdWVzLGVdfSx0aGlzLmFkZElzc3Vlcz0oZT1bXSk9Pnt0aGlzLmlzc3Vlcz1bLi4udGhpcy5pc3N1ZXMsLi4uZV19O2xldCB0PW5ldy50YXJnZXQucHJvdG90eXBlO09iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyx0KTp0aGlzLl9fcHJvdG9fXz10LHRoaXMubmFtZT1cIlpvZEVycm9yXCIsdGhpcy5pc3N1ZXM9ZX1mb3JtYXQoZSl7bGV0IHQ9ZXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWVzc2FnZX0sbj17X2Vycm9yczpbXX0scj1lPT57Zm9yKGxldCBvIG9mIGUuaXNzdWVzKWlmKFwiaW52YWxpZF91bmlvblwiPT09by5jb2RlKW8udW5pb25FcnJvcnMubWFwKHIpO2Vsc2UgaWYoXCJpbnZhbGlkX3JldHVybl90eXBlXCI9PT1vLmNvZGUpcihvLnJldHVyblR5cGVFcnJvcik7ZWxzZSBpZihcImludmFsaWRfYXJndW1lbnRzXCI9PT1vLmNvZGUpcihvLmFyZ3VtZW50c0Vycm9yKTtlbHNlIGlmKDA9PT1vLnBhdGgubGVuZ3RoKW4uX2Vycm9ycy5wdXNoKHQobykpO2Vsc2V7bGV0IGU9bixyPTA7Zm9yKDtyPG8ucGF0aC5sZW5ndGg7KXtsZXQgbj1vLnBhdGhbcl07cj09PW8ucGF0aC5sZW5ndGgtMT8oZVtuXT1lW25dfHx7X2Vycm9yczpbXX0sZVtuXS5fZXJyb3JzLnB1c2godChvKSkpOmVbbl09ZVtuXXx8e19lcnJvcnM6W119LGU9ZVtuXSxyKyt9fX07cmV0dXJuIHIodGhpcyksbn1zdGF0aWMgYXNzZXJ0KGUpe2lmKCEoZSBpbnN0YW5jZW9mIG8pKXRocm93IEVycm9yKGBOb3QgYSBab2RFcnJvcjogJHtlfWApfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMubWVzc2FnZX1nZXQgbWVzc2FnZSgpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmlzc3VlcyxyLnV0aWwuanNvblN0cmluZ2lmeVJlcGxhY2VyLDIpfWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLmlzc3Vlcy5sZW5ndGh9ZmxhdHRlbihlPWU9PmUubWVzc2FnZSl7bGV0IHQ9e30sbj1bXTtmb3IobGV0IHIgb2YgdGhpcy5pc3N1ZXMpaWYoci5wYXRoLmxlbmd0aD4wKXtsZXQgbj1yLnBhdGhbMF07dFtuXT10W25dfHxbXSx0W25dLnB1c2goZShyKSl9ZWxzZSBuLnB1c2goZShyKSk7cmV0dXJue2Zvcm1FcnJvcnM6bixmaWVsZEVycm9yczp0fX1nZXQgZm9ybUVycm9ycygpe3JldHVybiB0aGlzLmZsYXR0ZW4oKX19dC5ab2RFcnJvcj1vLG8uY3JlYXRlPWU9Pm5ldyBvKGUpfSw2MTpmdW5jdGlvbihlLHQsbil7dmFyIHI9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kZWZhdWx0RXJyb3JNYXA9dm9pZCAwLHQuc2V0RXJyb3JNYXA9ZnVuY3Rpb24oZSl7YT1lfSx0LmdldEVycm9yTWFwPWZ1bmN0aW9uKCl7cmV0dXJuIGF9O2xldCBvPXIobig4NzEpKTt0LmRlZmF1bHRFcnJvck1hcD1vLmRlZmF1bHQ7bGV0IGE9by5kZWZhdWx0fSw5MjM6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKTt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7KCFvfHwoXCJnZXRcImluIG8/IXQuX19lc01vZHVsZTpvLndyaXRhYmxlfHxvLmNvbmZpZ3VyYWJsZSkpJiYobz17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLG8pfTpmdW5jdGlvbihlLHQsbixyKXt2b2lkIDA9PT1yJiYocj1uKSxlW3JdPXRbbl19KSxvPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiBlKVwiZGVmYXVsdFwiPT09bnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbil8fHIodCxlLG4pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSxvKG4oNjEpLHQpLG8obig4MTgpLHQpLG8obig1MTUpLHQpLG8obig3MDkpLHQpLG8obigxNTUpLHQpLG8obigzNDgpLHQpfSw1Mzg6KGUsdCk9Pnt2YXIgbixyO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZXJyb3JVdGlsPXZvaWQgMCwocj1ufHwodC5lcnJvclV0aWw9bj17fSkpLmVyclRvT2JqPWU9Plwic3RyaW5nXCI9PXR5cGVvZiBlP3ttZXNzYWdlOmV9OmV8fHt9LHIudG9TdHJpbmc9ZT0+XCJzdHJpbmdcIj09dHlwZW9mIGU/ZTplPy5tZXNzYWdlfSw4MTg6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuaXNBc3luYz10LmlzVmFsaWQ9dC5pc0RpcnR5PXQuaXNBYm9ydGVkPXQuT0s9dC5ESVJUWT10LklOVkFMSUQ9dC5QYXJzZVN0YXR1cz10LkVNUFRZX1BBVEg9dC5tYWtlSXNzdWU9dm9pZCAwLHQuYWRkSXNzdWVUb0NvbnRleHQ9ZnVuY3Rpb24oZSxuKXtsZXQgcj0oMCxvLmdldEVycm9yTWFwKSgpLGk9KDAsdC5tYWtlSXNzdWUpKHtpc3N1ZURhdGE6bixkYXRhOmUuZGF0YSxwYXRoOmUucGF0aCxlcnJvck1hcHM6W2UuY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCxlLnNjaGVtYUVycm9yTWFwLHIscj09PWEuZGVmYXVsdD92b2lkIDA6YS5kZWZhdWx0XS5maWx0ZXIoZT0+ISFlKX0pO2UuY29tbW9uLmlzc3Vlcy5wdXNoKGkpfTtsZXQgbz1uKDYxKSxhPXIobig4NzEpKTt0Lm1ha2VJc3N1ZT1lPT57bGV0e2RhdGE6dCxwYXRoOm4sZXJyb3JNYXBzOnIsaXNzdWVEYXRhOm99PWUsYT1bLi4ubiwuLi5vLnBhdGh8fFtdXSxpPXsuLi5vLHBhdGg6YX07aWYodm9pZCAwIT09by5tZXNzYWdlKXJldHVybnsuLi5vLHBhdGg6YSxtZXNzYWdlOm8ubWVzc2FnZX07bGV0IGw9XCJcIjtmb3IobGV0IGUgb2Ygci5maWx0ZXIoZT0+ISFlKS5zbGljZSgpLnJldmVyc2UoKSlsPWUoaSx7ZGF0YTp0LGRlZmF1bHRFcnJvcjpsfSkubWVzc2FnZTtyZXR1cm57Li4ubyxwYXRoOmEsbWVzc2FnZTpsfX0sdC5FTVBUWV9QQVRIPVtdO2NsYXNzIGl7Y29uc3RydWN0b3IoKXt0aGlzLnZhbHVlPVwidmFsaWRcIn1kaXJ0eSgpe1widmFsaWRcIj09PXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPVwiZGlydHlcIil9YWJvcnQoKXtcImFib3J0ZWRcIiE9PXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPVwiYWJvcnRlZFwiKX1zdGF0aWMgbWVyZ2VBcnJheShlLG4pe2xldCByPVtdO2ZvcihsZXQgbyBvZiBuKXtpZihcImFib3J0ZWRcIj09PW8uc3RhdHVzKXJldHVybiB0LklOVkFMSUQ7XCJkaXJ0eVwiPT09by5zdGF0dXMmJmUuZGlydHkoKSxyLnB1c2goby52YWx1ZSl9cmV0dXJue3N0YXR1czplLnZhbHVlLHZhbHVlOnJ9fXN0YXRpYyBhc3luYyBtZXJnZU9iamVjdEFzeW5jKGUsdCl7bGV0IG49W107Zm9yKGxldCBlIG9mIHQpe2xldCB0PWF3YWl0IGUua2V5LHI9YXdhaXQgZS52YWx1ZTtuLnB1c2goe2tleTp0LHZhbHVlOnJ9KX1yZXR1cm4gaS5tZXJnZU9iamVjdFN5bmMoZSxuKX1zdGF0aWMgbWVyZ2VPYmplY3RTeW5jKGUsbil7bGV0IHI9e307Zm9yKGxldCBvIG9mIG4pe2xldHtrZXk6bix2YWx1ZTphfT1vO2lmKFwiYWJvcnRlZFwiPT09bi5zdGF0dXN8fFwiYWJvcnRlZFwiPT09YS5zdGF0dXMpcmV0dXJuIHQuSU5WQUxJRDtcImRpcnR5XCI9PT1uLnN0YXR1cyYmZS5kaXJ0eSgpLFwiZGlydHlcIj09PWEuc3RhdHVzJiZlLmRpcnR5KCksXCJfX3Byb3RvX19cIiE9PW4udmFsdWUmJih2b2lkIDAhPT1hLnZhbHVlfHxvLmFsd2F5c1NldCkmJihyW24udmFsdWVdPWEudmFsdWUpfXJldHVybntzdGF0dXM6ZS52YWx1ZSx2YWx1ZTpyfX19dC5QYXJzZVN0YXR1cz1pLHQuSU5WQUxJRD1PYmplY3QuZnJlZXplKHtzdGF0dXM6XCJhYm9ydGVkXCJ9KSx0LkRJUlRZPWU9Pih7c3RhdHVzOlwiZGlydHlcIix2YWx1ZTplfSksdC5PSz1lPT4oe3N0YXR1czpcInZhbGlkXCIsdmFsdWU6ZX0pLHQuaXNBYm9ydGVkPWU9PlwiYWJvcnRlZFwiPT09ZS5zdGF0dXMsdC5pc0RpcnR5PWU9PlwiZGlydHlcIj09PWUuc3RhdHVzLHQuaXNWYWxpZD1lPT5cInZhbGlkXCI9PT1lLnN0YXR1cyx0LmlzQXN5bmM9ZT0+XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFByb21pc2UmJmUgaW5zdGFuY2VvZiBQcm9taXNlfSw1MTU6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sNzA5OihlLHQpPT57dmFyIG4scixvO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuZ2V0UGFyc2VkVHlwZT10LlpvZFBhcnNlZFR5cGU9dC5vYmplY3RVdGlsPXQudXRpbD12b2lkIDAsKG89bnx8KHQudXRpbD1uPXt9KSkuYXNzZXJ0RXF1YWw9ZT0+e30sby5hc3NlcnRJcz1mdW5jdGlvbihlKXt9LG8uYXNzZXJ0TmV2ZXI9ZnVuY3Rpb24oZSl7dGhyb3cgRXJyb3IoKX0sby5hcnJheVRvRW51bT1lPT57bGV0IHQ9e307Zm9yKGxldCBuIG9mIGUpdFtuXT1uO3JldHVybiB0fSxvLmdldFZhbGlkRW51bVZhbHVlcz1lPT57bGV0IHQ9by5vYmplY3RLZXlzKGUpLmZpbHRlcih0PT5cIm51bWJlclwiIT10eXBlb2YgZVtlW3RdXSksbj17fTtmb3IobGV0IHIgb2YgdCluW3JdPWVbcl07cmV0dXJuIG8ub2JqZWN0VmFsdWVzKG4pfSxvLm9iamVjdFZhbHVlcz1lPT5vLm9iamVjdEtleXMoZSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSksby5vYmplY3RLZXlzPVwiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5rZXlzP2U9Pk9iamVjdC5rZXlzKGUpOmU9PntsZXQgdD1bXTtmb3IobGV0IG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmdC5wdXNoKG4pO3JldHVybiB0fSxvLmZpbmQ9KGUsdCk9Pntmb3IobGV0IG4gb2YgZSlpZih0KG4pKXJldHVybiBufSxvLmlzSW50ZWdlcj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBOdW1iZXIuaXNJbnRlZ2VyP2U9Pk51bWJlci5pc0ludGVnZXIoZSk6ZT0+XCJudW1iZXJcIj09dHlwZW9mIGUmJk51bWJlci5pc0Zpbml0ZShlKSYmTWF0aC5mbG9vcihlKT09PWUsby5qb2luVmFsdWVzPWZ1bmN0aW9uKGUsdD1cIiB8IFwiKXtyZXR1cm4gZS5tYXAoZT0+XCJzdHJpbmdcIj09dHlwZW9mIGU/YCcke2V9J2A6ZSkuam9pbih0KX0sby5qc29uU3RyaW5naWZ5UmVwbGFjZXI9KGUsdCk9PlwiYmlnaW50XCI9PXR5cGVvZiB0P3QudG9TdHJpbmcoKTp0LChyfHwodC5vYmplY3RVdGlsPXI9e30pKS5tZXJnZVNoYXBlcz0oZSx0KT0+KHsuLi5lLC4uLnR9KSx0LlpvZFBhcnNlZFR5cGU9bi5hcnJheVRvRW51bShbXCJzdHJpbmdcIixcIm5hblwiLFwibnVtYmVyXCIsXCJpbnRlZ2VyXCIsXCJmbG9hdFwiLFwiYm9vbGVhblwiLFwiZGF0ZVwiLFwiYmlnaW50XCIsXCJzeW1ib2xcIixcImZ1bmN0aW9uXCIsXCJ1bmRlZmluZWRcIixcIm51bGxcIixcImFycmF5XCIsXCJvYmplY3RcIixcInVua25vd25cIixcInByb21pc2VcIixcInZvaWRcIixcIm5ldmVyXCIsXCJtYXBcIixcInNldFwiXSksdC5nZXRQYXJzZWRUeXBlPWU9Pntzd2l0Y2godHlwZW9mIGUpe2Nhc2VcInVuZGVmaW5lZFwiOnJldHVybiB0LlpvZFBhcnNlZFR5cGUudW5kZWZpbmVkO2Nhc2VcInN0cmluZ1wiOnJldHVybiB0LlpvZFBhcnNlZFR5cGUuc3RyaW5nO2Nhc2VcIm51bWJlclwiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/dC5ab2RQYXJzZWRUeXBlLm5hbjp0LlpvZFBhcnNlZFR5cGUubnVtYmVyO2Nhc2VcImJvb2xlYW5cIjpyZXR1cm4gdC5ab2RQYXJzZWRUeXBlLmJvb2xlYW47Y2FzZVwiZnVuY3Rpb25cIjpyZXR1cm4gdC5ab2RQYXJzZWRUeXBlLmZ1bmN0aW9uO2Nhc2VcImJpZ2ludFwiOnJldHVybiB0LlpvZFBhcnNlZFR5cGUuYmlnaW50O2Nhc2VcInN5bWJvbFwiOnJldHVybiB0LlpvZFBhcnNlZFR5cGUuc3ltYm9sO2Nhc2VcIm9iamVjdFwiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQuWm9kUGFyc2VkVHlwZS5hcnJheTtpZihudWxsPT09ZSlyZXR1cm4gdC5ab2RQYXJzZWRUeXBlLm51bGw7aWYoZS50aGVuJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnRoZW4mJmUuY2F0Y2gmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGUuY2F0Y2gpcmV0dXJuIHQuWm9kUGFyc2VkVHlwZS5wcm9taXNlO2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBNYXAmJmUgaW5zdGFuY2VvZiBNYXApcmV0dXJuIHQuWm9kUGFyc2VkVHlwZS5tYXA7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFNldCYmZSBpbnN0YW5jZW9mIFNldClyZXR1cm4gdC5ab2RQYXJzZWRUeXBlLnNldDtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgRGF0ZSYmZSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIHQuWm9kUGFyc2VkVHlwZS5kYXRlO3JldHVybiB0LlpvZFBhcnNlZFR5cGUub2JqZWN0O2RlZmF1bHQ6cmV0dXJuIHQuWm9kUGFyc2VkVHlwZS51bmtub3dufX19LDg3MTooZSx0LG4pPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7bGV0IHI9bigzNDgpLG89big3MDkpO3QuZGVmYXVsdD0oZSx0KT0+e2xldCBuO3N3aXRjaChlLmNvZGUpe2Nhc2Ugci5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlOm49ZS5yZWNlaXZlZD09PW8uWm9kUGFyc2VkVHlwZS51bmRlZmluZWQ/XCJSZXF1aXJlZFwiOmBFeHBlY3RlZCAke2UuZXhwZWN0ZWR9LCByZWNlaXZlZCAke2UucmVjZWl2ZWR9YDticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLmludmFsaWRfbGl0ZXJhbDpuPWBJbnZhbGlkIGxpdGVyYWwgdmFsdWUsIGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoZS5leHBlY3RlZCxvLnV0aWwuanNvblN0cmluZ2lmeVJlcGxhY2VyKX1gO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUudW5yZWNvZ25pemVkX2tleXM6bj1gVW5yZWNvZ25pemVkIGtleShzKSBpbiBvYmplY3Q6ICR7by51dGlsLmpvaW5WYWx1ZXMoZS5rZXlzLFwiLCBcIil9YDticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb246bj1cIkludmFsaWQgaW5wdXRcIjticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb25fZGlzY3JpbWluYXRvcjpuPWBJbnZhbGlkIGRpc2NyaW1pbmF0b3IgdmFsdWUuIEV4cGVjdGVkICR7by51dGlsLmpvaW5WYWx1ZXMoZS5vcHRpb25zKX1gO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUuaW52YWxpZF9lbnVtX3ZhbHVlOm49YEludmFsaWQgZW51bSB2YWx1ZS4gRXhwZWN0ZWQgJHtvLnV0aWwuam9pblZhbHVlcyhlLm9wdGlvbnMpfSwgcmVjZWl2ZWQgJyR7ZS5yZWNlaXZlZH0nYDticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLmludmFsaWRfYXJndW1lbnRzOm49XCJJbnZhbGlkIGZ1bmN0aW9uIGFyZ3VtZW50c1wiO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUuaW52YWxpZF9yZXR1cm5fdHlwZTpuPVwiSW52YWxpZCBmdW5jdGlvbiByZXR1cm4gdHlwZVwiO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUuaW52YWxpZF9kYXRlOm49XCJJbnZhbGlkIGRhdGVcIjticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nOlwib2JqZWN0XCI9PXR5cGVvZiBlLnZhbGlkYXRpb24/XCJpbmNsdWRlc1wiaW4gZS52YWxpZGF0aW9uPyhuPWBJbnZhbGlkIGlucHV0OiBtdXN0IGluY2x1ZGUgXCIke2UudmFsaWRhdGlvbi5pbmNsdWRlc31cImAsXCJudW1iZXJcIj09dHlwZW9mIGUudmFsaWRhdGlvbi5wb3NpdGlvbiYmKG49YCR7bn0gYXQgb25lIG9yIG1vcmUgcG9zaXRpb25zIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAke2UudmFsaWRhdGlvbi5wb3NpdGlvbn1gKSk6XCJzdGFydHNXaXRoXCJpbiBlLnZhbGlkYXRpb24/bj1gSW52YWxpZCBpbnB1dDogbXVzdCBzdGFydCB3aXRoIFwiJHtlLnZhbGlkYXRpb24uc3RhcnRzV2l0aH1cImA6XCJlbmRzV2l0aFwiaW4gZS52YWxpZGF0aW9uP249YEludmFsaWQgaW5wdXQ6IG11c3QgZW5kIHdpdGggXCIke2UudmFsaWRhdGlvbi5lbmRzV2l0aH1cImA6by51dGlsLmFzc2VydE5ldmVyKGUudmFsaWRhdGlvbik6bj1cInJlZ2V4XCIhPT1lLnZhbGlkYXRpb24/YEludmFsaWQgJHtlLnZhbGlkYXRpb259YDpcIkludmFsaWRcIjticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLnRvb19zbWFsbDpuPVwiYXJyYXlcIj09PWUudHlwZT9gQXJyYXkgbXVzdCBjb250YWluICR7ZS5leGFjdD9cImV4YWN0bHlcIjplLmluY2x1c2l2ZT9cImF0IGxlYXN0XCI6XCJtb3JlIHRoYW5cIn0gJHtlLm1pbmltdW19IGVsZW1lbnQocylgOlwic3RyaW5nXCI9PT1lLnR5cGU/YFN0cmluZyBtdXN0IGNvbnRhaW4gJHtlLmV4YWN0P1wiZXhhY3RseVwiOmUuaW5jbHVzaXZlP1wiYXQgbGVhc3RcIjpcIm92ZXJcIn0gJHtlLm1pbmltdW19IGNoYXJhY3RlcihzKWA6XCJudW1iZXJcIj09PWUudHlwZXx8XCJiaWdpbnRcIj09PWUudHlwZT9gTnVtYmVyIG11c3QgYmUgJHtlLmV4YWN0P1wiZXhhY3RseSBlcXVhbCB0byBcIjplLmluY2x1c2l2ZT9cImdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBcIjpcImdyZWF0ZXIgdGhhbiBcIn0ke2UubWluaW11bX1gOlwiZGF0ZVwiPT09ZS50eXBlP2BEYXRlIG11c3QgYmUgJHtlLmV4YWN0P1wiZXhhY3RseSBlcXVhbCB0byBcIjplLmluY2x1c2l2ZT9cImdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBcIjpcImdyZWF0ZXIgdGhhbiBcIn0ke25ldyBEYXRlKE51bWJlcihlLm1pbmltdW0pKX1gOlwiSW52YWxpZCBpbnB1dFwiO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUudG9vX2JpZzpuPVwiYXJyYXlcIj09PWUudHlwZT9gQXJyYXkgbXVzdCBjb250YWluICR7ZS5leGFjdD9cImV4YWN0bHlcIjplLmluY2x1c2l2ZT9cImF0IG1vc3RcIjpcImxlc3MgdGhhblwifSAke2UubWF4aW11bX0gZWxlbWVudChzKWA6XCJzdHJpbmdcIj09PWUudHlwZT9gU3RyaW5nIG11c3QgY29udGFpbiAke2UuZXhhY3Q/XCJleGFjdGx5XCI6ZS5pbmNsdXNpdmU/XCJhdCBtb3N0XCI6XCJ1bmRlclwifSAke2UubWF4aW11bX0gY2hhcmFjdGVyKHMpYDpcIm51bWJlclwiPT09ZS50eXBlP2BOdW1iZXIgbXVzdCBiZSAke2UuZXhhY3Q/XCJleGFjdGx5XCI6ZS5pbmNsdXNpdmU/XCJsZXNzIHRoYW4gb3IgZXF1YWwgdG9cIjpcImxlc3MgdGhhblwifSAke2UubWF4aW11bX1gOlwiYmlnaW50XCI9PT1lLnR5cGU/YEJpZ0ludCBtdXN0IGJlICR7ZS5leGFjdD9cImV4YWN0bHlcIjplLmluY2x1c2l2ZT9cImxlc3MgdGhhbiBvciBlcXVhbCB0b1wiOlwibGVzcyB0aGFuXCJ9ICR7ZS5tYXhpbXVtfWA6XCJkYXRlXCI9PT1lLnR5cGU/YERhdGUgbXVzdCBiZSAke2UuZXhhY3Q/XCJleGFjdGx5XCI6ZS5pbmNsdXNpdmU/XCJzbWFsbGVyIHRoYW4gb3IgZXF1YWwgdG9cIjpcInNtYWxsZXIgdGhhblwifSAke25ldyBEYXRlKE51bWJlcihlLm1heGltdW0pKX1gOlwiSW52YWxpZCBpbnB1dFwiO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUuY3VzdG9tOm49XCJJbnZhbGlkIGlucHV0XCI7YnJlYWs7Y2FzZSByLlpvZElzc3VlQ29kZS5pbnZhbGlkX2ludGVyc2VjdGlvbl90eXBlczpuPVwiSW50ZXJzZWN0aW9uIHJlc3VsdHMgY291bGQgbm90IGJlIG1lcmdlZFwiO2JyZWFrO2Nhc2Ugci5ab2RJc3N1ZUNvZGUubm90X211bHRpcGxlX29mOm49YE51bWJlciBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgJHtlLm11bHRpcGxlT2Z9YDticmVhaztjYXNlIHIuWm9kSXNzdWVDb2RlLm5vdF9maW5pdGU6bj1cIk51bWJlciBtdXN0IGJlIGZpbml0ZVwiO2JyZWFrO2RlZmF1bHQ6bj10LmRlZmF1bHRFcnJvcixvLnV0aWwuYXNzZXJ0TmV2ZXIoZSl9cmV0dXJue21lc3NhZ2U6bn19fSwxNTU6KGUsdCxuKT0+e3ZhciByLG87bGV0IGE7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5kaXNjcmltaW5hdGVkVW5pb249dC5kYXRlPXQuYm9vbGVhbj10LmJpZ2ludD10LmFycmF5PXQuYW55PXQuY29lcmNlPXQuWm9kRmlyc3RQYXJ0eVR5cGVLaW5kPXQubGF0ZT10LlpvZFNjaGVtYT10LlNjaGVtYT10LlpvZFJlYWRvbmx5PXQuWm9kUGlwZWxpbmU9dC5ab2RCcmFuZGVkPXQuQlJBTkQ9dC5ab2ROYU49dC5ab2RDYXRjaD10LlpvZERlZmF1bHQ9dC5ab2ROdWxsYWJsZT10LlpvZE9wdGlvbmFsPXQuWm9kVHJhbnNmb3JtZXI9dC5ab2RFZmZlY3RzPXQuWm9kUHJvbWlzZT10LlpvZE5hdGl2ZUVudW09dC5ab2RFbnVtPXQuWm9kTGl0ZXJhbD10LlpvZExhenk9dC5ab2RGdW5jdGlvbj10LlpvZFNldD10LlpvZE1hcD10LlpvZFJlY29yZD10LlpvZFR1cGxlPXQuWm9kSW50ZXJzZWN0aW9uPXQuWm9kRGlzY3JpbWluYXRlZFVuaW9uPXQuWm9kVW5pb249dC5ab2RPYmplY3Q9dC5ab2RBcnJheT10LlpvZFZvaWQ9dC5ab2ROZXZlcj10LlpvZFVua25vd249dC5ab2RBbnk9dC5ab2ROdWxsPXQuWm9kVW5kZWZpbmVkPXQuWm9kU3ltYm9sPXQuWm9kRGF0ZT10LlpvZEJvb2xlYW49dC5ab2RCaWdJbnQ9dC5ab2ROdW1iZXI9dC5ab2RTdHJpbmc9dC5ab2RUeXBlPXZvaWQgMCx0Lk5FVkVSPXQudm9pZD10LnVua25vd249dC51bmlvbj10LnVuZGVmaW5lZD10LnR1cGxlPXQudHJhbnNmb3JtZXI9dC5zeW1ib2w9dC5zdHJpbmc9dC5zdHJpY3RPYmplY3Q9dC5zZXQ9dC5yZWNvcmQ9dC5wcm9taXNlPXQucHJlcHJvY2Vzcz10LnBpcGVsaW5lPXQub3N0cmluZz10Lm9wdGlvbmFsPXQub251bWJlcj10Lm9ib29sZWFuPXQub2JqZWN0PXQubnVtYmVyPXQubnVsbGFibGU9dC5udWxsPXQubmV2ZXI9dC5uYXRpdmVFbnVtPXQubmFuPXQubWFwPXQubGl0ZXJhbD10Lmxhenk9dC5pbnRlcnNlY3Rpb249dC5pbnN0YW5jZW9mPXQuZnVuY3Rpb249dC5lbnVtPXQuZWZmZWN0PXZvaWQgMCx0LmRhdGV0aW1lUmVnZXg9SSx0LmN1c3RvbT1ldjtsZXQgaT1uKDM0OCksbD1uKDYxKSxzPW4oNTM4KSxjPW4oODE4KSx1PW4oNzA5KTtjbGFzcyBke2NvbnN0cnVjdG9yKGUsdCxuLHIpe3RoaXMuX2NhY2hlZFBhdGg9W10sdGhpcy5wYXJlbnQ9ZSx0aGlzLmRhdGE9dCx0aGlzLl9wYXRoPW4sdGhpcy5fa2V5PXJ9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5fY2FjaGVkUGF0aC5sZW5ndGh8fChBcnJheS5pc0FycmF5KHRoaXMuX2tleSk/dGhpcy5fY2FjaGVkUGF0aC5wdXNoKC4uLnRoaXMuX3BhdGgsLi4udGhpcy5fa2V5KTp0aGlzLl9jYWNoZWRQYXRoLnB1c2goLi4udGhpcy5fcGF0aCx0aGlzLl9rZXkpKSx0aGlzLl9jYWNoZWRQYXRofX1sZXQgZj0oZSx0KT0+e2lmKCgwLGMuaXNWYWxpZCkodCkpcmV0dXJue3N1Y2Nlc3M6ITAsZGF0YTp0LnZhbHVlfTtpZighZS5jb21tb24uaXNzdWVzLmxlbmd0aCl0aHJvdyBFcnJvcihcIlZhbGlkYXRpb24gZmFpbGVkIGJ1dCBubyBpc3N1ZXMgZGV0ZWN0ZWQuXCIpO3JldHVybntzdWNjZXNzOiExLGdldCBlcnJvcigpe2lmKHRoaXMuX2Vycm9yKXJldHVybiB0aGlzLl9lcnJvcjtsZXQgdD1uZXcgaS5ab2RFcnJvcihlLmNvbW1vbi5pc3N1ZXMpO3JldHVybiB0aGlzLl9lcnJvcj10LHRoaXMuX2Vycm9yfX19O2Z1bmN0aW9uIHAoZSl7aWYoIWUpcmV0dXJue307bGV0e2Vycm9yTWFwOnQsaW52YWxpZF90eXBlX2Vycm9yOm4scmVxdWlyZWRfZXJyb3I6cixkZXNjcmlwdGlvbjpvfT1lO2lmKHQmJihufHxyKSl0aHJvdyBFcnJvcignQ2FuXFwndCB1c2UgXCJpbnZhbGlkX3R5cGVfZXJyb3JcIiBvciBcInJlcXVpcmVkX2Vycm9yXCIgaW4gY29uanVuY3Rpb24gd2l0aCBjdXN0b20gZXJyb3IgbWFwLicpO3JldHVybiB0P3tlcnJvck1hcDp0LGRlc2NyaXB0aW9uOm99OntlcnJvck1hcDoodCxvKT0+e2xldHttZXNzYWdlOmF9PWU7cmV0dXJuXCJpbnZhbGlkX2VudW1fdmFsdWVcIj09PXQuY29kZT97bWVzc2FnZTphPz9vLmRlZmF1bHRFcnJvcn06dm9pZCAwPT09by5kYXRhP3ttZXNzYWdlOmE/P3I/P28uZGVmYXVsdEVycm9yfTpcImludmFsaWRfdHlwZVwiIT09dC5jb2RlP3ttZXNzYWdlOm8uZGVmYXVsdEVycm9yfTp7bWVzc2FnZTphPz9uPz9vLmRlZmF1bHRFcnJvcn19LGRlc2NyaXB0aW9uOm99fWNsYXNzIGh7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZi5kZXNjcmlwdGlvbn1fZ2V0VHlwZShlKXtyZXR1cm4oMCx1LmdldFBhcnNlZFR5cGUpKGUuZGF0YSl9X2dldE9yUmV0dXJuQ3R4KGUsdCl7cmV0dXJuIHR8fHtjb21tb246ZS5wYXJlbnQuY29tbW9uLGRhdGE6ZS5kYXRhLHBhcnNlZFR5cGU6KDAsdS5nZXRQYXJzZWRUeXBlKShlLmRhdGEpLHNjaGVtYUVycm9yTWFwOnRoaXMuX2RlZi5lcnJvck1hcCxwYXRoOmUucGF0aCxwYXJlbnQ6ZS5wYXJlbnR9fV9wcm9jZXNzSW5wdXRQYXJhbXMoZSl7cmV0dXJue3N0YXR1czpuZXcgYy5QYXJzZVN0YXR1cyxjdHg6e2NvbW1vbjplLnBhcmVudC5jb21tb24sZGF0YTplLmRhdGEscGFyc2VkVHlwZTooMCx1LmdldFBhcnNlZFR5cGUpKGUuZGF0YSksc2NoZW1hRXJyb3JNYXA6dGhpcy5fZGVmLmVycm9yTWFwLHBhdGg6ZS5wYXRoLHBhcmVudDplLnBhcmVudH19fV9wYXJzZVN5bmMoZSl7bGV0IHQ9dGhpcy5fcGFyc2UoZSk7aWYoKDAsYy5pc0FzeW5jKSh0KSl0aHJvdyBFcnJvcihcIlN5bmNocm9ub3VzIHBhcnNlIGVuY291bnRlcmVkIHByb21pc2UuXCIpO3JldHVybiB0fV9wYXJzZUFzeW5jKGUpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fcGFyc2UoZSkpfXBhcnNlKGUsdCl7bGV0IG49dGhpcy5zYWZlUGFyc2UoZSx0KTtpZihuLnN1Y2Nlc3MpcmV0dXJuIG4uZGF0YTt0aHJvdyBuLmVycm9yfXNhZmVQYXJzZShlLHQpe2xldCBuPXtjb21tb246e2lzc3VlczpbXSxhc3luYzp0Py5hc3luYz8/ITEsY29udGV4dHVhbEVycm9yTWFwOnQ/LmVycm9yTWFwfSxwYXRoOnQ/LnBhdGh8fFtdLHNjaGVtYUVycm9yTWFwOnRoaXMuX2RlZi5lcnJvck1hcCxwYXJlbnQ6bnVsbCxkYXRhOmUscGFyc2VkVHlwZTooMCx1LmdldFBhcnNlZFR5cGUpKGUpfSxyPXRoaXMuX3BhcnNlU3luYyh7ZGF0YTplLHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuIGYobixyKX1cIn52YWxpZGF0ZVwiKGUpe2xldCB0PXtjb21tb246e2lzc3VlczpbXSxhc3luYzohIXRoaXNbXCJ+c3RhbmRhcmRcIl0uYXN5bmN9LHBhdGg6W10sc2NoZW1hRXJyb3JNYXA6dGhpcy5fZGVmLmVycm9yTWFwLHBhcmVudDpudWxsLGRhdGE6ZSxwYXJzZWRUeXBlOigwLHUuZ2V0UGFyc2VkVHlwZSkoZSl9O2lmKCF0aGlzW1wifnN0YW5kYXJkXCJdLmFzeW5jKXRyeXtsZXQgbj10aGlzLl9wYXJzZVN5bmMoe2RhdGE6ZSxwYXRoOltdLHBhcmVudDp0fSk7cmV0dXJuKDAsYy5pc1ZhbGlkKShuKT97dmFsdWU6bi52YWx1ZX06e2lzc3Vlczp0LmNvbW1vbi5pc3N1ZXN9fWNhdGNoKGUpe2U/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKFwiZW5jb3VudGVyZWRcIikmJih0aGlzW1wifnN0YW5kYXJkXCJdLmFzeW5jPSEwKSx0LmNvbW1vbj17aXNzdWVzOltdLGFzeW5jOiEwfX1yZXR1cm4gdGhpcy5fcGFyc2VBc3luYyh7ZGF0YTplLHBhdGg6W10scGFyZW50OnR9KS50aGVuKGU9PigwLGMuaXNWYWxpZCkoZSk/e3ZhbHVlOmUudmFsdWV9Ontpc3N1ZXM6dC5jb21tb24uaXNzdWVzfSl9YXN5bmMgcGFyc2VBc3luYyhlLHQpe2xldCBuPWF3YWl0IHRoaXMuc2FmZVBhcnNlQXN5bmMoZSx0KTtpZihuLnN1Y2Nlc3MpcmV0dXJuIG4uZGF0YTt0aHJvdyBuLmVycm9yfWFzeW5jIHNhZmVQYXJzZUFzeW5jKGUsdCl7bGV0IG49e2NvbW1vbjp7aXNzdWVzOltdLGNvbnRleHR1YWxFcnJvck1hcDp0Py5lcnJvck1hcCxhc3luYzohMH0scGF0aDp0Py5wYXRofHxbXSxzY2hlbWFFcnJvck1hcDp0aGlzLl9kZWYuZXJyb3JNYXAscGFyZW50Om51bGwsZGF0YTplLHBhcnNlZFR5cGU6KDAsdS5nZXRQYXJzZWRUeXBlKShlKX0scj10aGlzLl9wYXJzZSh7ZGF0YTplLHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuIGYobixhd2FpdCAoKDAsYy5pc0FzeW5jKShyKT9yOlByb21pc2UucmVzb2x2ZShyKSkpfXJlZmluZShlLHQpe3JldHVybiB0aGlzLl9yZWZpbmVtZW50KChuLHIpPT57bGV0IG89ZShuKSxhPSgpPT5yLmFkZElzc3VlKHtjb2RlOmkuWm9kSXNzdWVDb2RlLmN1c3RvbSwuLi5cInN0cmluZ1wiPT10eXBlb2YgdHx8dm9pZCAwPT09dD97bWVzc2FnZTp0fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Qobik6dH0pO3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBQcm9taXNlJiZvIGluc3RhbmNlb2YgUHJvbWlzZT9vLnRoZW4oZT0+ISFlfHwoYSgpLCExKSk6ISFvfHwoYSgpLCExKX0pfXJlZmluZW1lbnQoZSx0KXtyZXR1cm4gdGhpcy5fcmVmaW5lbWVudCgobixyKT0+ISFlKG4pfHwoci5hZGRJc3N1ZShcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QobixyKTp0KSwhMSkpfV9yZWZpbmVtZW50KGUpe3JldHVybiBuZXcgZXMoe3NjaGVtYTp0aGlzLHR5cGVOYW1lOnIuWm9kRWZmZWN0cyxlZmZlY3Q6e3R5cGU6XCJyZWZpbmVtZW50XCIscmVmaW5lbWVudDplfX0pfXN1cGVyUmVmaW5lKGUpe3JldHVybiB0aGlzLl9yZWZpbmVtZW50KGUpfWNvbnN0cnVjdG9yKGUpe3RoaXMuc3BhPXRoaXMuc2FmZVBhcnNlQXN5bmMsdGhpcy5fZGVmPWUsdGhpcy5wYXJzZT10aGlzLnBhcnNlLmJpbmQodGhpcyksdGhpcy5zYWZlUGFyc2U9dGhpcy5zYWZlUGFyc2UuYmluZCh0aGlzKSx0aGlzLnBhcnNlQXN5bmM9dGhpcy5wYXJzZUFzeW5jLmJpbmQodGhpcyksdGhpcy5zYWZlUGFyc2VBc3luYz10aGlzLnNhZmVQYXJzZUFzeW5jLmJpbmQodGhpcyksdGhpcy5zcGE9dGhpcy5zcGEuYmluZCh0aGlzKSx0aGlzLnJlZmluZT10aGlzLnJlZmluZS5iaW5kKHRoaXMpLHRoaXMucmVmaW5lbWVudD10aGlzLnJlZmluZW1lbnQuYmluZCh0aGlzKSx0aGlzLnN1cGVyUmVmaW5lPXRoaXMuc3VwZXJSZWZpbmUuYmluZCh0aGlzKSx0aGlzLm9wdGlvbmFsPXRoaXMub3B0aW9uYWwuYmluZCh0aGlzKSx0aGlzLm51bGxhYmxlPXRoaXMubnVsbGFibGUuYmluZCh0aGlzKSx0aGlzLm51bGxpc2g9dGhpcy5udWxsaXNoLmJpbmQodGhpcyksdGhpcy5hcnJheT10aGlzLmFycmF5LmJpbmQodGhpcyksdGhpcy5wcm9taXNlPXRoaXMucHJvbWlzZS5iaW5kKHRoaXMpLHRoaXMub3I9dGhpcy5vci5iaW5kKHRoaXMpLHRoaXMuYW5kPXRoaXMuYW5kLmJpbmQodGhpcyksdGhpcy50cmFuc2Zvcm09dGhpcy50cmFuc2Zvcm0uYmluZCh0aGlzKSx0aGlzLmJyYW5kPXRoaXMuYnJhbmQuYmluZCh0aGlzKSx0aGlzLmRlZmF1bHQ9dGhpcy5kZWZhdWx0LmJpbmQodGhpcyksdGhpcy5jYXRjaD10aGlzLmNhdGNoLmJpbmQodGhpcyksdGhpcy5kZXNjcmliZT10aGlzLmRlc2NyaWJlLmJpbmQodGhpcyksdGhpcy5waXBlPXRoaXMucGlwZS5iaW5kKHRoaXMpLHRoaXMucmVhZG9ubHk9dGhpcy5yZWFkb25seS5iaW5kKHRoaXMpLHRoaXMuaXNOdWxsYWJsZT10aGlzLmlzTnVsbGFibGUuYmluZCh0aGlzKSx0aGlzLmlzT3B0aW9uYWw9dGhpcy5pc09wdGlvbmFsLmJpbmQodGhpcyksdGhpc1tcIn5zdGFuZGFyZFwiXT17dmVyc2lvbjoxLHZlbmRvcjpcInpvZFwiLHZhbGlkYXRlOmU9PnRoaXNbXCJ+dmFsaWRhdGVcIl0oZSl9fW9wdGlvbmFsKCl7cmV0dXJuIGVjLmNyZWF0ZSh0aGlzLHRoaXMuX2RlZil9bnVsbGFibGUoKXtyZXR1cm4gZXUuY3JlYXRlKHRoaXMsdGhpcy5fZGVmKX1udWxsaXNoKCl7cmV0dXJuIHRoaXMubnVsbGFibGUoKS5vcHRpb25hbCgpfWFycmF5KCl7cmV0dXJuIFYuY3JlYXRlKHRoaXMpfXByb21pc2UoKXtyZXR1cm4gZWwuY3JlYXRlKHRoaXMsdGhpcy5fZGVmKX1vcihlKXtyZXR1cm4gVy5jcmVhdGUoW3RoaXMsZV0sdGhpcy5fZGVmKX1hbmQoZSl7cmV0dXJuIFguY3JlYXRlKHRoaXMsZSx0aGlzLl9kZWYpfXRyYW5zZm9ybShlKXtyZXR1cm4gbmV3IGVzKHsuLi5wKHRoaXMuX2RlZiksc2NoZW1hOnRoaXMsdHlwZU5hbWU6ci5ab2RFZmZlY3RzLGVmZmVjdDp7dHlwZTpcInRyYW5zZm9ybVwiLHRyYW5zZm9ybTplfX0pfWRlZmF1bHQoZSl7cmV0dXJuIG5ldyBlZCh7Li4ucCh0aGlzLl9kZWYpLGlubmVyVHlwZTp0aGlzLGRlZmF1bHRWYWx1ZTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6KCk9PmUsdHlwZU5hbWU6ci5ab2REZWZhdWx0fSl9YnJhbmQoKXtyZXR1cm4gbmV3IGVoKHt0eXBlTmFtZTpyLlpvZEJyYW5kZWQsdHlwZTp0aGlzLC4uLnAodGhpcy5fZGVmKX0pfWNhdGNoKGUpe3JldHVybiBuZXcgZWYoey4uLnAodGhpcy5fZGVmKSxpbm5lclR5cGU6dGhpcyxjYXRjaFZhbHVlOlwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTooKT0+ZSx0eXBlTmFtZTpyLlpvZENhdGNofSl9ZGVzY3JpYmUoZSl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHsuLi50aGlzLl9kZWYsZGVzY3JpcHRpb246ZX0pfXBpcGUoZSl7cmV0dXJuIGVtLmNyZWF0ZSh0aGlzLGUpfXJlYWRvbmx5KCl7cmV0dXJuIGVnLmNyZWF0ZSh0aGlzKX1pc09wdGlvbmFsKCl7cmV0dXJuIHRoaXMuc2FmZVBhcnNlKHZvaWQgMCkuc3VjY2Vzc31pc051bGxhYmxlKCl7cmV0dXJuIHRoaXMuc2FmZVBhcnNlKG51bGwpLnN1Y2Nlc3N9fXQuWm9kVHlwZT1oLHQuU2NoZW1hPWgsdC5ab2RTY2hlbWE9aDtsZXQgbT0vXmNbXlxccy1dezgsfSQvaSxnPS9eWzAtOWEtel0rJC8seT0vXlswLTlBLUhKS01OUC1UVi1aXXsyNn0kL2ksdj0vXlswLTlhLWZBLUZdezh9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezR9XFxiLVswLTlhLWZBLUZdezEyfSQvaSxiPS9eW2EtejAtOV8tXXsyMX0kL2ksQT0vXltBLVphLXowLTktX10rXFwuW0EtWmEtejAtOS1fXStcXC5bQS1aYS16MC05LV9dKiQvLHg9L15bLStdP1AoPyEkKSg/Oig/OlstK10/XFxkK1kpfCg/OlstK10/XFxkK1suLF1cXGQrWSQpKT8oPzooPzpbLStdP1xcZCtNKXwoPzpbLStdP1xcZCtbLixdXFxkK00kKSk/KD86KD86Wy0rXT9cXGQrVyl8KD86Wy0rXT9cXGQrWy4sXVxcZCtXJCkpPyg/Oig/OlstK10/XFxkK0QpfCg/OlstK10/XFxkK1suLF1cXGQrRCQpKT8oPzpUKD89W1xcZCstXSkoPzooPzpbLStdP1xcZCtIKXwoPzpbLStdP1xcZCtbLixdXFxkK0gkKSk/KD86KD86Wy0rXT9cXGQrTSl8KD86Wy0rXT9cXGQrWy4sXVxcZCtNJCkpPyg/OlstK10/XFxkKyg/OlsuLF1cXGQrKT9TKT8pPz8kLyx3PS9eKD8hXFwuKSg/IS4qXFwuXFwuKShbQS1aMC05XycrXFwtXFwuXSopW0EtWjAtOV8rLV1AKFtBLVowLTldW0EtWjAtOVxcLV0qXFwuKStbQS1aXXsyLH0kL2ksQz0vXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKSQvLF89L14oPzooPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcXC8oM1swLTJdfFsxMl0/WzAtOV0pJC8saz0vXigoWzAtOWEtZkEtRl17MSw0fTopezcsN31bMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw3fTp8KFswLTlhLWZBLUZdezEsNH06KXsxLDZ9OlswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDV9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDJ9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwzfXwoWzAtOWEtZkEtRl17MSw0fTopezEsM30oOlswLTlhLWZBLUZdezEsNH0pezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDJ9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDV9fFswLTlhLWZBLUZdezEsNH06KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw2fSl8OigoOlswLTlhLWZBLUZdezEsNH0pezEsN318Oil8ZmU4MDooOlswLTlhLWZBLUZdezAsNH0pezAsNH0lWzAtOWEtekEtWl17MSx9fDo6KGZmZmYoOjB7MSw0fSl7MCwxfTopezAsMX0oKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSl8KFswLTlhLWZBLUZdezEsNH06KXsxLDR9OigoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKSkkLyxFPS9eKChbMC05YS1mQS1GXXsxLDR9Oil7Nyw3fVswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDd9OnwoWzAtOWEtZkEtRl17MSw0fTopezEsNn06WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsNX0oOlswLTlhLWZBLUZdezEsNH0pezEsMn18KFswLTlhLWZBLUZdezEsNH06KXsxLDR9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDN9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwzfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsMn0oOlswLTlhLWZBLUZdezEsNH0pezEsNX18WzAtOWEtZkEtRl17MSw0fTooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDZ9KXw6KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw3fXw6KXxmZTgwOig6WzAtOWEtZkEtRl17MCw0fSl7MCw0fSVbMC05YS16QS1aXXsxLH18OjooZmZmZig6MHsxLDR9KXswLDF9Oil7MCwxfSgoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH06KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pKVxcLygxMlswLThdfDFbMDFdWzAtOV18WzEtOV0/WzAtOV0pJC8saj0vXihbMC05YS16QS1aKy9dezR9KSooKFswLTlhLXpBLVorL117Mn09PSl8KFswLTlhLXpBLVorL117M309KSk/JC8sUz0vXihbMC05YS16QS1aLV9dezR9KSooKFswLTlhLXpBLVotX117Mn0oPT0pPyl8KFswLTlhLXpBLVotX117M30oPSk/KSk/JC8sTz1cIigoXFxcXGRcXFxcZFsyNDY4XVswNDhdfFxcXFxkXFxcXGRbMTM1NzldWzI2XXxcXFxcZFxcXFxkMFs0OF18WzAyNDY4XVswNDhdMDB8WzEzNTc5XVsyNl0wMCktMDItMjl8XFxcXGR7NH0tKCgwWzEzNTc4XXwxWzAyXSktKDBbMS05XXxbMTJdXFxcXGR8M1swMV0pfCgwWzQ2OV18MTEpLSgwWzEtOV18WzEyXVxcXFxkfDMwKXwoMDIpLSgwWzEtOV18MVxcXFxkfDJbMC04XSkpKVwiLEI9UmVnRXhwKGBeJHtPfSRgKTtmdW5jdGlvbiBQKGUpe2xldCB0PVwiWzAtNV1cXFxcZFwiO2UucHJlY2lzaW9uP3Q9YCR7dH1cXFxcLlxcXFxkeyR7ZS5wcmVjaXNpb259fWA6bnVsbD09ZS5wcmVjaXNpb24mJih0PWAke3R9KFxcXFwuXFxcXGQrKT9gKTtsZXQgbj1lLnByZWNpc2lvbj9cIitcIjpcIj9cIjtyZXR1cm5gKFswMV1cXFxcZHwyWzAtM10pOlswLTVdXFxcXGQoOiR7dH0pJHtufWB9ZnVuY3Rpb24gSShlKXtsZXQgdD1gJHtPfVQke1AoZSl9YCxuPVtdO3JldHVybiBuLnB1c2goZS5sb2NhbD9cIlo/XCI6XCJaXCIpLGUub2Zmc2V0JiZuLnB1c2goXCIoWystXVxcXFxkezJ9Oj9cXFxcZHsyfSlcIiksdD1gJHt0fSgke24uam9pbihcInxcIil9KWAsUmVnRXhwKGBeJHt0fSRgKX1jbGFzcyB6IGV4dGVuZHMgaHtfcGFyc2UoZSl7dmFyIHQsbixyLG87bGV0IGw7aWYodGhpcy5fZGVmLmNvZXJjZSYmKGUuZGF0YT1TdHJpbmcoZS5kYXRhKSksdGhpcy5fZ2V0VHlwZShlKSE9PXUuWm9kUGFyc2VkVHlwZS5zdHJpbmcpe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLGV4cGVjdGVkOnUuWm9kUGFyc2VkVHlwZS5zdHJpbmcscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEfWxldCBzPW5ldyBjLlBhcnNlU3RhdHVzO2ZvcihsZXQgZCBvZiB0aGlzLl9kZWYuY2hlY2tzKWlmKFwibWluXCI9PT1kLmtpbmQpZS5kYXRhLmxlbmd0aDxkLnZhbHVlJiYobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX3NtYWxsLG1pbmltdW06ZC52YWx1ZSx0eXBlOlwic3RyaW5nXCIsaW5jbHVzaXZlOiEwLGV4YWN0OiExLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTtlbHNlIGlmKFwibWF4XCI9PT1kLmtpbmQpZS5kYXRhLmxlbmd0aD5kLnZhbHVlJiYobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX2JpZyxtYXhpbXVtOmQudmFsdWUsdHlwZTpcInN0cmluZ1wiLGluY2x1c2l2ZTohMCxleGFjdDohMSxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk7ZWxzZSBpZihcImxlbmd0aFwiPT09ZC5raW5kKXtsZXQgdD1lLmRhdGEubGVuZ3RoPmQudmFsdWUsbj1lLmRhdGEubGVuZ3RoPGQudmFsdWU7KHR8fG4pJiYobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLHQ/KDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7Y29kZTppLlpvZElzc3VlQ29kZS50b29fYmlnLG1heGltdW06ZC52YWx1ZSx0eXBlOlwic3RyaW5nXCIsaW5jbHVzaXZlOiEwLGV4YWN0OiEwLG1lc3NhZ2U6ZC5tZXNzYWdlfSk6biYmKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7Y29kZTppLlpvZElzc3VlQ29kZS50b29fc21hbGwsbWluaW11bTpkLnZhbHVlLHR5cGU6XCJzdHJpbmdcIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITAsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpfWVsc2UgaWYoXCJlbWFpbFwiPT09ZC5raW5kKXcudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJlbWFpbFwiLGNvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpO2Vsc2UgaWYoXCJlbW9qaVwiPT09ZC5raW5kKWF8fChhPVJlZ0V4cChcIl4oXFxcXHB7RXh0ZW5kZWRfUGljdG9ncmFwaGljfXxcXFxccHtFbW9qaV9Db21wb25lbnR9KSskXCIsXCJ1XCIpKSxhLnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHt2YWxpZGF0aW9uOlwiZW1vamlcIixjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTtlbHNlIGlmKFwidXVpZFwiPT09ZC5raW5kKXYudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJ1dWlkXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk7ZWxzZSBpZihcIm5hbm9pZFwiPT09ZC5raW5kKWIudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJuYW5vaWRcIixjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTtlbHNlIGlmKFwiY3VpZFwiPT09ZC5raW5kKW0udGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJjdWlkXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk7ZWxzZSBpZihcImN1aWQyXCI9PT1kLmtpbmQpZy50ZXN0KGUuZGF0YSl8fChsPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7dmFsaWRhdGlvbjpcImN1aWQyXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk7ZWxzZSBpZihcInVsaWRcIj09PWQua2luZCl5LnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHt2YWxpZGF0aW9uOlwidWxpZFwiLGNvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpO2Vsc2UgaWYoXCJ1cmxcIj09PWQua2luZCl0cnl7bmV3IFVSTChlLmRhdGEpfWNhdGNoe2w9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHt2YWxpZGF0aW9uOlwidXJsXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKX1lbHNlXCJyZWdleFwiPT09ZC5raW5kPyhkLnJlZ2V4Lmxhc3RJbmRleD0wLGQucmVnZXgudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJyZWdleFwiLGNvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpKTpcInRyaW1cIj09PWQua2luZD9lLmRhdGE9ZS5kYXRhLnRyaW0oKTpcImluY2x1ZGVzXCI9PT1kLmtpbmQ/ZS5kYXRhLmluY2x1ZGVzKGQudmFsdWUsZC5wb3NpdGlvbil8fChsPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOntpbmNsdWRlczpkLnZhbHVlLHBvc2l0aW9uOmQucG9zaXRpb259LG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTpcInRvTG93ZXJDYXNlXCI9PT1kLmtpbmQ/ZS5kYXRhPWUuZGF0YS50b0xvd2VyQ2FzZSgpOlwidG9VcHBlckNhc2VcIj09PWQua2luZD9lLmRhdGE9ZS5kYXRhLnRvVXBwZXJDYXNlKCk6XCJzdGFydHNXaXRoXCI9PT1kLmtpbmQ/ZS5kYXRhLnN0YXJ0c1dpdGgoZC52YWx1ZSl8fChsPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOntzdGFydHNXaXRoOmQudmFsdWV9LG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTpcImVuZHNXaXRoXCI9PT1kLmtpbmQ/ZS5kYXRhLmVuZHNXaXRoKGQudmFsdWUpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsdmFsaWRhdGlvbjp7ZW5kc1dpdGg6ZC52YWx1ZX0sbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpOlwiZGF0ZXRpbWVcIj09PWQua2luZD9JKGQpLnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLHZhbGlkYXRpb246XCJkYXRldGltZVwiLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTpcImRhdGVcIj09PWQua2luZD9CLnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLHZhbGlkYXRpb246XCJkYXRlXCIsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpOlwidGltZVwiPT09ZC5raW5kP1JlZ0V4cChgXiR7UChkKX0kYCkudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsdmFsaWRhdGlvbjpcInRpbWVcIixtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk6XCJkdXJhdGlvblwiPT09ZC5raW5kP3gudGVzdChlLmRhdGEpfHwobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJkdXJhdGlvblwiLGNvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTpkLm1lc3NhZ2V9KSxzLmRpcnR5KCkpOlwiaXBcIj09PWQua2luZD8odD1lLmRhdGEsISgoXCJ2NFwiPT09KG49ZC52ZXJzaW9uKXx8IW4pJiZDLnRlc3QodCl8fChcInY2XCI9PT1ufHwhbikmJmsudGVzdCh0KSkmJjEmJihsPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7dmFsaWRhdGlvbjpcImlwXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSkpOlwiand0XCI9PT1kLmtpbmQ/IWZ1bmN0aW9uKGUsdCl7aWYoIUEudGVzdChlKSlyZXR1cm4hMTt0cnl7bGV0W25dPWUuc3BsaXQoXCIuXCIpO2lmKCFuKXJldHVybiExO2xldCByPW4ucmVwbGFjZSgvLS9nLFwiK1wiKS5yZXBsYWNlKC9fL2csXCIvXCIpLnBhZEVuZChuLmxlbmd0aCsoNC1uLmxlbmd0aCU0KSU0LFwiPVwiKSxvPUpTT04ucGFyc2UoYXRvYihyKSk7aWYoXCJvYmplY3RcIiE9dHlwZW9mIG98fG51bGw9PT1vfHxcInR5cFwiaW4gbyYmbz8udHlwIT09XCJKV1RcInx8IW8uYWxnfHx0JiZvLmFsZyE9PXQpcmV0dXJuITE7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fShlLmRhdGEsZC5hbGcpJiYobD10aGlzLl9nZXRPclJldHVybkN0eChlLGwpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKGwse3ZhbGlkYXRpb246XCJqd3RcIixjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKTpcImNpZHJcIj09PWQua2luZD8ocj1lLmRhdGEsISgoXCJ2NFwiPT09KG89ZC52ZXJzaW9uKXx8IW8pJiZfLnRlc3Qocil8fChcInY2XCI9PT1vfHwhbykmJkUudGVzdChyKSkmJjEmJihsPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobCx7dmFsaWRhdGlvbjpcImNpZHJcIixjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6ZC5tZXNzYWdlfSkscy5kaXJ0eSgpKSk6XCJiYXNlNjRcIj09PWQua2luZD9qLnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHt2YWxpZGF0aW9uOlwiYmFzZTY0XCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk6XCJiYXNlNjR1cmxcIj09PWQua2luZD9TLnRlc3QoZS5kYXRhKXx8KGw9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxsKSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KShsLHt2YWxpZGF0aW9uOlwiYmFzZTY0dXJsXCIsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOmQubWVzc2FnZX0pLHMuZGlydHkoKSk6dS51dGlsLmFzc2VydE5ldmVyKGQpO3JldHVybntzdGF0dXM6cy52YWx1ZSx2YWx1ZTplLmRhdGF9fV9yZWdleChlLHQsbil7cmV0dXJuIHRoaXMucmVmaW5lbWVudCh0PT5lLnRlc3QodCkse3ZhbGlkYXRpb246dCxjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfc3RyaW5nLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKG4pfSl9X2FkZENoZWNrKGUpe3JldHVybiBuZXcgeih7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyxlXX0pfWVtYWlsKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImVtYWlsXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX11cmwoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwidXJsXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX1lbW9qaShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJlbW9qaVwiLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKGUpfSl9dXVpZChlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJ1dWlkXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX1uYW5vaWQoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwibmFub2lkXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX1jdWlkKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImN1aWRcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWN1aWQyKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImN1aWQyXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX11bGlkKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcInVsaWRcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWJhc2U2NChlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJiYXNlNjRcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWJhc2U2NHVybChlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJiYXNlNjR1cmxcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWp3dChlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJqd3RcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWlwKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImlwXCIsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmooZSl9KX1jaWRyKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImNpZHJcIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfWRhdGV0aW1lKGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBlP3RoaXMuX2FkZENoZWNrKHtraW5kOlwiZGF0ZXRpbWVcIixwcmVjaXNpb246bnVsbCxvZmZzZXQ6ITEsbG9jYWw6ITEsbWVzc2FnZTplfSk6dGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJkYXRldGltZVwiLHByZWNpc2lvbjp2b2lkIDA9PT1lPy5wcmVjaXNpb24/bnVsbDplPy5wcmVjaXNpb24sb2Zmc2V0OmU/Lm9mZnNldD8/ITEsbG9jYWw6ZT8ubG9jYWw/PyExLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKGU/Lm1lc3NhZ2UpfSl9ZGF0ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJkYXRlXCIsbWVzc2FnZTplfSl9dGltZShlKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT90aGlzLl9hZGRDaGVjayh7a2luZDpcInRpbWVcIixwcmVjaXNpb246bnVsbCxtZXNzYWdlOmV9KTp0aGlzLl9hZGRDaGVjayh7a2luZDpcInRpbWVcIixwcmVjaXNpb246dm9pZCAwPT09ZT8ucHJlY2lzaW9uP251bGw6ZT8ucHJlY2lzaW9uLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKGU/Lm1lc3NhZ2UpfSl9ZHVyYXRpb24oZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwiZHVyYXRpb25cIiwuLi5zLmVycm9yVXRpbC5lcnJUb09iaihlKX0pfXJlZ2V4KGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwicmVnZXhcIixyZWdleDplLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKHQpfSl9aW5jbHVkZXMoZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJpbmNsdWRlc1wiLHZhbHVlOmUscG9zaXRpb246dD8ucG9zaXRpb24sLi4ucy5lcnJvclV0aWwuZXJyVG9PYmoodD8ubWVzc2FnZSl9KX1zdGFydHNXaXRoKGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwic3RhcnRzV2l0aFwiLHZhbHVlOmUsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmoodCl9KX1lbmRzV2l0aChlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImVuZHNXaXRoXCIsdmFsdWU6ZSwuLi5zLmVycm9yVXRpbC5lcnJUb09iaih0KX0pfW1pbihlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1pblwiLHZhbHVlOmUsLi4ucy5lcnJvclV0aWwuZXJyVG9PYmoodCl9KX1tYXgoZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJtYXhcIix2YWx1ZTplLC4uLnMuZXJyb3JVdGlsLmVyclRvT2JqKHQpfSl9bGVuZ3RoKGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwibGVuZ3RoXCIsdmFsdWU6ZSwuLi5zLmVycm9yVXRpbC5lcnJUb09iaih0KX0pfW5vbmVtcHR5KGUpe3JldHVybiB0aGlzLm1pbigxLHMuZXJyb3JVdGlsLmVyclRvT2JqKGUpKX10cmltKCl7cmV0dXJuIG5ldyB6KHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLHtraW5kOlwidHJpbVwifV19KX10b0xvd2VyQ2FzZSgpe3JldHVybiBuZXcgeih7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx7a2luZDpcInRvTG93ZXJDYXNlXCJ9XX0pfXRvVXBwZXJDYXNlKCl7cmV0dXJuIG5ldyB6KHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLHtraW5kOlwidG9VcHBlckNhc2VcIn1dfSl9Z2V0IGlzRGF0ZXRpbWUoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImRhdGV0aW1lXCI9PT1lLmtpbmQpfWdldCBpc0RhdGUoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImRhdGVcIj09PWUua2luZCl9Z2V0IGlzVGltZSgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PlwidGltZVwiPT09ZS5raW5kKX1nZXQgaXNEdXJhdGlvbigpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PlwiZHVyYXRpb25cIj09PWUua2luZCl9Z2V0IGlzRW1haWwoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImVtYWlsXCI9PT1lLmtpbmQpfWdldCBpc1VSTCgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PlwidXJsXCI9PT1lLmtpbmQpfWdldCBpc0Vtb2ppKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+XCJlbW9qaVwiPT09ZS5raW5kKX1nZXQgaXNVVUlEKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+XCJ1dWlkXCI9PT1lLmtpbmQpfWdldCBpc05BTk9JRCgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PlwibmFub2lkXCI9PT1lLmtpbmQpfWdldCBpc0NVSUQoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImN1aWRcIj09PWUua2luZCl9Z2V0IGlzQ1VJRDIoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImN1aWQyXCI9PT1lLmtpbmQpfWdldCBpc1VMSUQoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cInVsaWRcIj09PWUua2luZCl9Z2V0IGlzSVAoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImlwXCI9PT1lLmtpbmQpfWdldCBpc0NJRFIoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT5cImNpZHJcIj09PWUua2luZCl9Z2V0IGlzQmFzZTY0KCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+XCJiYXNlNjRcIj09PWUua2luZCl9Z2V0IGlzQmFzZTY0dXJsKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+XCJiYXNlNjR1cmxcIj09PWUua2luZCl9Z2V0IG1pbkxlbmd0aCgpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi5jaGVja3MpXCJtaW5cIj09PXQua2luZCYmKG51bGw9PT1lfHx0LnZhbHVlPmUpJiYoZT10LnZhbHVlKTtyZXR1cm4gZX1nZXQgbWF4TGVuZ3RoKCl7bGV0IGU9bnVsbDtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLmNoZWNrcylcIm1heFwiPT09dC5raW5kJiYobnVsbD09PWV8fHQudmFsdWU8ZSkmJihlPXQudmFsdWUpO3JldHVybiBlfX10LlpvZFN0cmluZz16LHouY3JlYXRlPWU9Pm5ldyB6KHtjaGVja3M6W10sdHlwZU5hbWU6ci5ab2RTdHJpbmcsY29lcmNlOmU/LmNvZXJjZT8/ITEsLi4ucChlKX0pO2NsYXNzIFQgZXh0ZW5kcyBoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm1pbj10aGlzLmd0ZSx0aGlzLm1heD10aGlzLmx0ZSx0aGlzLnN0ZXA9dGhpcy5tdWx0aXBsZU9mfV9wYXJzZShlKXtsZXQgdDtpZih0aGlzLl9kZWYuY29lcmNlJiYoZS5kYXRhPU51bWJlcihlLmRhdGEpKSx0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLm51bWJlcil7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLm51bWJlcixyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9bGV0IG49bmV3IGMuUGFyc2VTdGF0dXM7Zm9yKGxldCByIG9mIHRoaXMuX2RlZi5jaGVja3MpXCJpbnRcIj09PXIua2luZD91LnV0aWwuaXNJbnRlZ2VyKGUuZGF0YSl8fCh0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6XCJpbnRlZ2VyXCIscmVjZWl2ZWQ6XCJmbG9hdFwiLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKTpcIm1pblwiPT09ci5raW5kPyhyLmluY2x1c2l2ZT9lLmRhdGE8ci52YWx1ZTplLmRhdGE8PXIudmFsdWUpJiYodD10aGlzLl9nZXRPclJldHVybkN0eChlLHQpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX3NtYWxsLG1pbmltdW06ci52YWx1ZSx0eXBlOlwibnVtYmVyXCIsaW5jbHVzaXZlOnIuaW5jbHVzaXZlLGV4YWN0OiExLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKTpcIm1heFwiPT09ci5raW5kPyhyLmluY2x1c2l2ZT9lLmRhdGE+ci52YWx1ZTplLmRhdGE+PXIudmFsdWUpJiYodD10aGlzLl9nZXRPclJldHVybkN0eChlLHQpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX2JpZyxtYXhpbXVtOnIudmFsdWUsdHlwZTpcIm51bWJlclwiLGluY2x1c2l2ZTpyLmluY2x1c2l2ZSxleGFjdDohMSxtZXNzYWdlOnIubWVzc2FnZX0pLG4uZGlydHkoKSk6XCJtdWx0aXBsZU9mXCI9PT1yLmtpbmQ/MCE9PWZ1bmN0aW9uKGUsdCl7bGV0IG49KGUudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMV18fFwiXCIpLmxlbmd0aCxyPSh0LnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpWzFdfHxcIlwiKS5sZW5ndGgsbz1uPnI/bjpyO3JldHVybiBOdW1iZXIucGFyc2VJbnQoZS50b0ZpeGVkKG8pLnJlcGxhY2UoXCIuXCIsXCJcIikpJU51bWJlci5wYXJzZUludCh0LnRvRml4ZWQobykucmVwbGFjZShcIi5cIixcIlwiKSkvMTAqKm99KGUuZGF0YSxyLnZhbHVlKSYmKHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSx0KSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLm5vdF9tdWx0aXBsZV9vZixtdWx0aXBsZU9mOnIudmFsdWUsbWVzc2FnZTpyLm1lc3NhZ2V9KSxuLmRpcnR5KCkpOlwiZmluaXRlXCI9PT1yLmtpbmQ/TnVtYmVyLmlzRmluaXRlKGUuZGF0YSl8fCh0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5ub3RfZmluaXRlLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKTp1LnV0aWwuYXNzZXJ0TmV2ZXIocik7cmV0dXJue3N0YXR1czpuLnZhbHVlLHZhbHVlOmUuZGF0YX19Z3RlKGUsdCl7cmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtaW5cIixlLCEwLHMuZXJyb3JVdGlsLnRvU3RyaW5nKHQpKX1ndChlLHQpe3JldHVybiB0aGlzLnNldExpbWl0KFwibWluXCIsZSwhMSxzLmVycm9yVXRpbC50b1N0cmluZyh0KSl9bHRlKGUsdCl7cmV0dXJuIHRoaXMuc2V0TGltaXQoXCJtYXhcIixlLCEwLHMuZXJyb3JVdGlsLnRvU3RyaW5nKHQpKX1sdChlLHQpe3JldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsZSwhMSxzLmVycm9yVXRpbC50b1N0cmluZyh0KSl9c2V0TGltaXQoZSx0LG4scil7cmV0dXJuIG5ldyBUKHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLHtraW5kOmUsdmFsdWU6dCxpbmNsdXNpdmU6bixtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKHIpfV19KX1fYWRkQ2hlY2soZSl7cmV0dXJuIG5ldyBUKHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLGVdfSl9aW50KGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcImludFwiLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcoZSl9KX1wb3NpdGl2ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJtaW5cIix2YWx1ZTowLGluY2x1c2l2ZTohMSxtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKGUpfSl9bmVnYXRpdmUoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwibWF4XCIsdmFsdWU6MCxpbmNsdXNpdmU6ITEsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfW5vbnBvc2l0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1heFwiLHZhbHVlOjAsaW5jbHVzaXZlOiEwLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcoZSl9KX1ub25uZWdhdGl2ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJtaW5cIix2YWx1ZTowLGluY2x1c2l2ZTohMCxtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKGUpfSl9bXVsdGlwbGVPZihlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm11bHRpcGxlT2ZcIix2YWx1ZTplLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcodCl9KX1maW5pdGUoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwiZmluaXRlXCIsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfXNhZmUoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwibWluXCIsaW5jbHVzaXZlOiEwLHZhbHVlOk51bWJlci5NSU5fU0FGRV9JTlRFR0VSLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcoZSl9KS5fYWRkQ2hlY2soe2tpbmQ6XCJtYXhcIixpbmNsdXNpdmU6ITAsdmFsdWU6TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfWdldCBtaW5WYWx1ZSgpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi5jaGVja3MpXCJtaW5cIj09PXQua2luZCYmKG51bGw9PT1lfHx0LnZhbHVlPmUpJiYoZT10LnZhbHVlKTtyZXR1cm4gZX1nZXQgbWF4VmFsdWUoKXtsZXQgZT1udWxsO2ZvcihsZXQgdCBvZiB0aGlzLl9kZWYuY2hlY2tzKVwibWF4XCI9PT10LmtpbmQmJihudWxsPT09ZXx8dC52YWx1ZTxlKSYmKGU9dC52YWx1ZSk7cmV0dXJuIGV9Z2V0IGlzSW50KCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+XCJpbnRcIj09PWUua2luZHx8XCJtdWx0aXBsZU9mXCI9PT1lLmtpbmQmJnUudXRpbC5pc0ludGVnZXIoZS52YWx1ZSkpfWdldCBpc0Zpbml0ZSgpe2xldCBlPW51bGwsdD1udWxsO2ZvcihsZXQgbiBvZiB0aGlzLl9kZWYuY2hlY2tzKWlmKFwiZmluaXRlXCI9PT1uLmtpbmR8fFwiaW50XCI9PT1uLmtpbmR8fFwibXVsdGlwbGVPZlwiPT09bi5raW5kKXJldHVybiEwO2Vsc2VcIm1pblwiPT09bi5raW5kPyhudWxsPT09dHx8bi52YWx1ZT50KSYmKHQ9bi52YWx1ZSk6XCJtYXhcIj09PW4ua2luZCYmKG51bGw9PT1lfHxuLnZhbHVlPGUpJiYoZT1uLnZhbHVlKTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpJiZOdW1iZXIuaXNGaW5pdGUoZSl9fXQuWm9kTnVtYmVyPVQsVC5jcmVhdGU9ZT0+bmV3IFQoe2NoZWNrczpbXSx0eXBlTmFtZTpyLlpvZE51bWJlcixjb2VyY2U6ZT8uY29lcmNlfHwhMSwuLi5wKGUpfSk7Y2xhc3MgRCBleHRlbmRzIGh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMubWluPXRoaXMuZ3RlLHRoaXMubWF4PXRoaXMubHRlfV9wYXJzZShlKXtsZXQgdDtpZih0aGlzLl9kZWYuY29lcmNlKXRyeXtlLmRhdGE9QmlnSW50KGUuZGF0YSl9Y2F0Y2h7cmV0dXJuIHRoaXMuX2dldEludmFsaWRJbnB1dChlKX1pZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLmJpZ2ludClyZXR1cm4gdGhpcy5fZ2V0SW52YWxpZElucHV0KGUpO2xldCBuPW5ldyBjLlBhcnNlU3RhdHVzO2ZvcihsZXQgciBvZiB0aGlzLl9kZWYuY2hlY2tzKVwibWluXCI9PT1yLmtpbmQ/KHIuaW5jbHVzaXZlP2UuZGF0YTxyLnZhbHVlOmUuZGF0YTw9ci52YWx1ZSkmJih0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS50b29fc21hbGwsdHlwZTpcImJpZ2ludFwiLG1pbmltdW06ci52YWx1ZSxpbmNsdXNpdmU6ci5pbmNsdXNpdmUsbWVzc2FnZTpyLm1lc3NhZ2V9KSxuLmRpcnR5KCkpOlwibWF4XCI9PT1yLmtpbmQ/KHIuaW5jbHVzaXZlP2UuZGF0YT5yLnZhbHVlOmUuZGF0YT49ci52YWx1ZSkmJih0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCksKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS50b29fYmlnLHR5cGU6XCJiaWdpbnRcIixtYXhpbXVtOnIudmFsdWUsaW5jbHVzaXZlOnIuaW5jbHVzaXZlLG1lc3NhZ2U6ci5tZXNzYWdlfSksbi5kaXJ0eSgpKTpcIm11bHRpcGxlT2ZcIj09PXIua2luZD9lLmRhdGElci52YWx1ZSE9PUJpZ0ludCgwKSYmKHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSx0KSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLm5vdF9tdWx0aXBsZV9vZixtdWx0aXBsZU9mOnIudmFsdWUsbWVzc2FnZTpyLm1lc3NhZ2V9KSxuLmRpcnR5KCkpOnUudXRpbC5hc3NlcnROZXZlcihyKTtyZXR1cm57c3RhdHVzOm4udmFsdWUsdmFsdWU6ZS5kYXRhfX1fZ2V0SW52YWxpZElucHV0KGUpe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLGV4cGVjdGVkOnUuWm9kUGFyc2VkVHlwZS5iaWdpbnQscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEfWd0ZShlLHQpe3JldHVybiB0aGlzLnNldExpbWl0KFwibWluXCIsZSwhMCxzLmVycm9yVXRpbC50b1N0cmluZyh0KSl9Z3QoZSx0KXtyZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1pblwiLGUsITEscy5lcnJvclV0aWwudG9TdHJpbmcodCkpfWx0ZShlLHQpe3JldHVybiB0aGlzLnNldExpbWl0KFwibWF4XCIsZSwhMCxzLmVycm9yVXRpbC50b1N0cmluZyh0KSl9bHQoZSx0KXtyZXR1cm4gdGhpcy5zZXRMaW1pdChcIm1heFwiLGUsITEscy5lcnJvclV0aWwudG9TdHJpbmcodCkpfXNldExpbWl0KGUsdCxuLHIpe3JldHVybiBuZXcgRCh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx7a2luZDplLHZhbHVlOnQsaW5jbHVzaXZlOm4sbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhyKX1dfSl9X2FkZENoZWNrKGUpe3JldHVybiBuZXcgRCh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyxlXX0pfXBvc2l0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1pblwiLHZhbHVlOkJpZ0ludCgwKSxpbmNsdXNpdmU6ITEsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfW5lZ2F0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1heFwiLHZhbHVlOkJpZ0ludCgwKSxpbmNsdXNpdmU6ITEsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfW5vbnBvc2l0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1heFwiLHZhbHVlOkJpZ0ludCgwKSxpbmNsdXNpdmU6ITAsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfW5vbm5lZ2F0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDpcIm1pblwiLHZhbHVlOkJpZ0ludCgwKSxpbmNsdXNpdmU6ITAsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyhlKX0pfW11bHRpcGxlT2YoZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJtdWx0aXBsZU9mXCIsdmFsdWU6ZSxtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKHQpfSl9Z2V0IG1pblZhbHVlKCl7bGV0IGU9bnVsbDtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLmNoZWNrcylcIm1pblwiPT09dC5raW5kJiYobnVsbD09PWV8fHQudmFsdWU+ZSkmJihlPXQudmFsdWUpO3JldHVybiBlfWdldCBtYXhWYWx1ZSgpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi5jaGVja3MpXCJtYXhcIj09PXQua2luZCYmKG51bGw9PT1lfHx0LnZhbHVlPGUpJiYoZT10LnZhbHVlKTtyZXR1cm4gZX19dC5ab2RCaWdJbnQ9RCxELmNyZWF0ZT1lPT5uZXcgRCh7Y2hlY2tzOltdLHR5cGVOYW1lOnIuWm9kQmlnSW50LGNvZXJjZTplPy5jb2VyY2U/PyExLC4uLnAoZSl9KTtjbGFzcyBMIGV4dGVuZHMgaHtfcGFyc2UoZSl7aWYodGhpcy5fZGVmLmNvZXJjZSYmKGUuZGF0YT0hIWUuZGF0YSksdGhpcy5fZ2V0VHlwZShlKSE9PXUuWm9kUGFyc2VkVHlwZS5ib29sZWFuKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxleHBlY3RlZDp1LlpvZFBhcnNlZFR5cGUuYm9vbGVhbixyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9cmV0dXJuKDAsYy5PSykoZS5kYXRhKX19dC5ab2RCb29sZWFuPUwsTC5jcmVhdGU9ZT0+bmV3IEwoe3R5cGVOYW1lOnIuWm9kQm9vbGVhbixjb2VyY2U6ZT8uY29lcmNlfHwhMSwuLi5wKGUpfSk7Y2xhc3MgTiBleHRlbmRzIGh7X3BhcnNlKGUpe2xldCB0O2lmKHRoaXMuX2RlZi5jb2VyY2UmJihlLmRhdGE9bmV3IERhdGUoZS5kYXRhKSksdGhpcy5fZ2V0VHlwZShlKSE9PXUuWm9kUGFyc2VkVHlwZS5kYXRlKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxleHBlY3RlZDp1LlpvZFBhcnNlZFR5cGUuZGF0ZSxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9aWYoTnVtYmVyLmlzTmFOKGUuZGF0YS5nZXRUaW1lKCkpKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfZGF0ZX0pLGMuSU5WQUxJRH1sZXQgbj1uZXcgYy5QYXJzZVN0YXR1cztmb3IobGV0IHIgb2YgdGhpcy5fZGVmLmNoZWNrcylcIm1pblwiPT09ci5raW5kP2UuZGF0YS5nZXRUaW1lKCk8ci52YWx1ZSYmKHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSx0KSwoMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxtZXNzYWdlOnIubWVzc2FnZSxpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWluaW11bTpyLnZhbHVlLHR5cGU6XCJkYXRlXCJ9KSxuLmRpcnR5KCkpOlwibWF4XCI9PT1yLmtpbmQ/ZS5kYXRhLmdldFRpbWUoKT5yLnZhbHVlJiYodD10aGlzLl9nZXRPclJldHVybkN0eChlLHQpLCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX2JpZyxtZXNzYWdlOnIubWVzc2FnZSxpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWF4aW11bTpyLnZhbHVlLHR5cGU6XCJkYXRlXCJ9KSxuLmRpcnR5KCkpOnUudXRpbC5hc3NlcnROZXZlcihyKTtyZXR1cm57c3RhdHVzOm4udmFsdWUsdmFsdWU6bmV3IERhdGUoZS5kYXRhLmdldFRpbWUoKSl9fV9hZGRDaGVjayhlKXtyZXR1cm4gbmV3IE4oey4uLnRoaXMuX2RlZixjaGVja3M6Wy4uLnRoaXMuX2RlZi5jaGVja3MsZV19KX1taW4oZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6XCJtaW5cIix2YWx1ZTplLmdldFRpbWUoKSxtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKHQpfSl9bWF4KGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOlwibWF4XCIsdmFsdWU6ZS5nZXRUaW1lKCksbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyh0KX0pfWdldCBtaW5EYXRlKCl7bGV0IGU9bnVsbDtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLmNoZWNrcylcIm1pblwiPT09dC5raW5kJiYobnVsbD09PWV8fHQudmFsdWU+ZSkmJihlPXQudmFsdWUpO3JldHVybiBudWxsIT1lP25ldyBEYXRlKGUpOm51bGx9Z2V0IG1heERhdGUoKXtsZXQgZT1udWxsO2ZvcihsZXQgdCBvZiB0aGlzLl9kZWYuY2hlY2tzKVwibWF4XCI9PT10LmtpbmQmJihudWxsPT09ZXx8dC52YWx1ZTxlKSYmKGU9dC52YWx1ZSk7cmV0dXJuIG51bGwhPWU/bmV3IERhdGUoZSk6bnVsbH19dC5ab2REYXRlPU4sTi5jcmVhdGU9ZT0+bmV3IE4oe2NoZWNrczpbXSxjb2VyY2U6ZT8uY29lcmNlfHwhMSx0eXBlTmFtZTpyLlpvZERhdGUsLi4ucChlKX0pO2NsYXNzIFIgZXh0ZW5kcyBoe19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLnN5bWJvbCl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLnN5bWJvbCxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9cmV0dXJuKDAsYy5PSykoZS5kYXRhKX19dC5ab2RTeW1ib2w9UixSLmNyZWF0ZT1lPT5uZXcgUih7dHlwZU5hbWU6ci5ab2RTeW1ib2wsLi4ucChlKX0pO2NsYXNzIE0gZXh0ZW5kcyBoe19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9cmV0dXJuKDAsYy5PSykoZS5kYXRhKX19dC5ab2RVbmRlZmluZWQ9TSxNLmNyZWF0ZT1lPT5uZXcgTSh7dHlwZU5hbWU6ci5ab2RVbmRlZmluZWQsLi4ucChlKX0pO2NsYXNzIFogZXh0ZW5kcyBoe19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLm51bGwpe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLGV4cGVjdGVkOnUuWm9kUGFyc2VkVHlwZS5udWxsLHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLGMuSU5WQUxJRH1yZXR1cm4oMCxjLk9LKShlLmRhdGEpfX10LlpvZE51bGw9WixaLmNyZWF0ZT1lPT5uZXcgWih7dHlwZU5hbWU6ci5ab2ROdWxsLC4uLnAoZSl9KTtjbGFzcyBVIGV4dGVuZHMgaHtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fYW55PSEwfV9wYXJzZShlKXtyZXR1cm4oMCxjLk9LKShlLmRhdGEpfX10LlpvZEFueT1VLFUuY3JlYXRlPWU9Pm5ldyBVKHt0eXBlTmFtZTpyLlpvZEFueSwuLi5wKGUpfSk7Y2xhc3MgRiBleHRlbmRzIGh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3Vua25vd249ITB9X3BhcnNlKGUpe3JldHVybigwLGMuT0spKGUuZGF0YSl9fXQuWm9kVW5rbm93bj1GLEYuY3JlYXRlPWU9Pm5ldyBGKHt0eXBlTmFtZTpyLlpvZFVua25vd24sLi4ucChlKX0pO2NsYXNzIHEgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxleHBlY3RlZDp1LlpvZFBhcnNlZFR5cGUubmV2ZXIscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEfX10LlpvZE5ldmVyPXEscS5jcmVhdGU9ZT0+bmV3IHEoe3R5cGVOYW1lOnIuWm9kTmV2ZXIsLi4ucChlKX0pO2NsYXNzIEggZXh0ZW5kcyBoe19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLnZvaWQscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEfXJldHVybigwLGMuT0spKGUuZGF0YSl9fXQuWm9kVm9pZD1ILEguY3JlYXRlPWU9Pm5ldyBIKHt0eXBlTmFtZTpyLlpvZFZvaWQsLi4ucChlKX0pO2NsYXNzIFYgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXR7Y3R4OnQsc3RhdHVzOm59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKSxyPXRoaXMuX2RlZjtpZih0LnBhcnNlZFR5cGUhPT11LlpvZFBhcnNlZFR5cGUuYXJyYXkpcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLmFycmF5LHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLGMuSU5WQUxJRDtpZihudWxsIT09ci5leGFjdExlbmd0aCl7bGV0IGU9dC5kYXRhLmxlbmd0aD5yLmV4YWN0TGVuZ3RoLnZhbHVlLG89dC5kYXRhLmxlbmd0aDxyLmV4YWN0TGVuZ3RoLnZhbHVlOyhlfHxvKSYmKCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6ZT9pLlpvZElzc3VlQ29kZS50b29fYmlnOmkuWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxtaW5pbXVtOm8/ci5leGFjdExlbmd0aC52YWx1ZTp2b2lkIDAsbWF4aW11bTplP3IuZXhhY3RMZW5ndGgudmFsdWU6dm9pZCAwLHR5cGU6XCJhcnJheVwiLGluY2x1c2l2ZTohMCxleGFjdDohMCxtZXNzYWdlOnIuZXhhY3RMZW5ndGgubWVzc2FnZX0pLG4uZGlydHkoKSl9aWYobnVsbCE9PXIubWluTGVuZ3RoJiZ0LmRhdGEubGVuZ3RoPHIubWluTGVuZ3RoLnZhbHVlJiYoKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS50b29fc21hbGwsbWluaW11bTpyLm1pbkxlbmd0aC52YWx1ZSx0eXBlOlwiYXJyYXlcIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWVzc2FnZTpyLm1pbkxlbmd0aC5tZXNzYWdlfSksbi5kaXJ0eSgpKSxudWxsIT09ci5tYXhMZW5ndGgmJnQuZGF0YS5sZW5ndGg+ci5tYXhMZW5ndGgudmFsdWUmJigoMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLnRvb19iaWcsbWF4aW11bTpyLm1heExlbmd0aC52YWx1ZSx0eXBlOlwiYXJyYXlcIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWVzc2FnZTpyLm1heExlbmd0aC5tZXNzYWdlfSksbi5kaXJ0eSgpKSx0LmNvbW1vbi5hc3luYylyZXR1cm4gUHJvbWlzZS5hbGwoWy4uLnQuZGF0YV0ubWFwKChlLG4pPT5yLnR5cGUuX3BhcnNlQXN5bmMobmV3IGQodCxlLHQucGF0aCxuKSkpKS50aGVuKGU9PmMuUGFyc2VTdGF0dXMubWVyZ2VBcnJheShuLGUpKTtsZXQgbz1bLi4udC5kYXRhXS5tYXAoKGUsbik9PnIudHlwZS5fcGFyc2VTeW5jKG5ldyBkKHQsZSx0LnBhdGgsbikpKTtyZXR1cm4gYy5QYXJzZVN0YXR1cy5tZXJnZUFycmF5KG4sbyl9Z2V0IGVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZGVmLnR5cGV9bWluKGUsdCl7cmV0dXJuIG5ldyBWKHsuLi50aGlzLl9kZWYsbWluTGVuZ3RoOnt2YWx1ZTplLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcodCl9fSl9bWF4KGUsdCl7cmV0dXJuIG5ldyBWKHsuLi50aGlzLl9kZWYsbWF4TGVuZ3RoOnt2YWx1ZTplLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcodCl9fSl9bGVuZ3RoKGUsdCl7cmV0dXJuIG5ldyBWKHsuLi50aGlzLl9kZWYsZXhhY3RMZW5ndGg6e3ZhbHVlOmUsbWVzc2FnZTpzLmVycm9yVXRpbC50b1N0cmluZyh0KX19KX1ub25lbXB0eShlKXtyZXR1cm4gdGhpcy5taW4oMSxlKX19dC5ab2RBcnJheT1WLFYuY3JlYXRlPShlLHQpPT5uZXcgVih7dHlwZTplLG1pbkxlbmd0aDpudWxsLG1heExlbmd0aDpudWxsLGV4YWN0TGVuZ3RoOm51bGwsdHlwZU5hbWU6ci5ab2RBcnJheSwuLi5wKHQpfSk7Y2xhc3MgJCBleHRlbmRzIGh7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX2NhY2hlZD1udWxsLHRoaXMubm9uc3RyaWN0PXRoaXMucGFzc3Rocm91Z2gsdGhpcy5hdWdtZW50PXRoaXMuZXh0ZW5kfV9nZXRDYWNoZWQoKXtpZihudWxsIT09dGhpcy5fY2FjaGVkKXJldHVybiB0aGlzLl9jYWNoZWQ7bGV0IGU9dGhpcy5fZGVmLnNoYXBlKCksdD11LnV0aWwub2JqZWN0S2V5cyhlKTtyZXR1cm4gdGhpcy5fY2FjaGVkPXtzaGFwZTplLGtleXM6dH0sdGhpcy5fY2FjaGVkfV9wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dS5ab2RQYXJzZWRUeXBlLm9iamVjdCl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLm9iamVjdCxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxjLklOVkFMSUR9bGV0e3N0YXR1czp0LGN0eDpufT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSkse3NoYXBlOnIsa2V5czpvfT10aGlzLl9nZXRDYWNoZWQoKSxhPVtdO2lmKCEodGhpcy5fZGVmLmNhdGNoYWxsIGluc3RhbmNlb2YgcSYmXCJzdHJpcFwiPT09dGhpcy5fZGVmLnVua25vd25LZXlzKSlmb3IobGV0IGUgaW4gbi5kYXRhKW8uaW5jbHVkZXMoZSl8fGEucHVzaChlKTtsZXQgbD1bXTtmb3IobGV0IGUgb2Ygbyl7bGV0IHQ9cltlXSxvPW4uZGF0YVtlXTtsLnB1c2goe2tleTp7c3RhdHVzOlwidmFsaWRcIix2YWx1ZTplfSx2YWx1ZTp0Ll9wYXJzZShuZXcgZChuLG8sbi5wYXRoLGUpKSxhbHdheXNTZXQ6ZSBpbiBuLmRhdGF9KX1pZih0aGlzLl9kZWYuY2F0Y2hhbGwgaW5zdGFuY2VvZiBxKXtsZXQgZT10aGlzLl9kZWYudW5rbm93bktleXM7aWYoXCJwYXNzdGhyb3VnaFwiPT09ZSlmb3IobGV0IGUgb2YgYSlsLnB1c2goe2tleTp7c3RhdHVzOlwidmFsaWRcIix2YWx1ZTplfSx2YWx1ZTp7c3RhdHVzOlwidmFsaWRcIix2YWx1ZTpuLmRhdGFbZV19fSk7ZWxzZSBpZihcInN0cmljdFwiPT09ZSlhLmxlbmd0aD4wJiYoKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobix7Y29kZTppLlpvZElzc3VlQ29kZS51bnJlY29nbml6ZWRfa2V5cyxrZXlzOmF9KSx0LmRpcnR5KCkpO2Vsc2UgaWYoXCJzdHJpcFwiPT09ZSk7ZWxzZSB0aHJvdyBFcnJvcihcIkludGVybmFsIFpvZE9iamVjdCBlcnJvcjogaW52YWxpZCB1bmtub3duS2V5cyB2YWx1ZS5cIil9ZWxzZXtsZXQgZT10aGlzLl9kZWYuY2F0Y2hhbGw7Zm9yKGxldCB0IG9mIGEpe2xldCByPW4uZGF0YVt0XTtsLnB1c2goe2tleTp7c3RhdHVzOlwidmFsaWRcIix2YWx1ZTp0fSx2YWx1ZTplLl9wYXJzZShuZXcgZChuLHIsbi5wYXRoLHQpKSxhbHdheXNTZXQ6dCBpbiBuLmRhdGF9KX19cmV0dXJuIG4uY29tbW9uLmFzeW5jP1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMoKT0+e2xldCBlPVtdO2ZvcihsZXQgdCBvZiBsKXtsZXQgbj1hd2FpdCB0LmtleSxyPWF3YWl0IHQudmFsdWU7ZS5wdXNoKHtrZXk6bix2YWx1ZTpyLGFsd2F5c1NldDp0LmFsd2F5c1NldH0pfXJldHVybiBlfSkudGhlbihlPT5jLlBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyh0LGUpKTpjLlBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyh0LGwpfWdldCBzaGFwZSgpe3JldHVybiB0aGlzLl9kZWYuc2hhcGUoKX1zdHJpY3QoZSl7cmV0dXJuIHMuZXJyb3JVdGlsLmVyclRvT2JqLG5ldyAkKHsuLi50aGlzLl9kZWYsdW5rbm93bktleXM6XCJzdHJpY3RcIiwuLi52b2lkIDAhPT1lP3tlcnJvck1hcDoodCxuKT0+e2xldCByPXRoaXMuX2RlZi5lcnJvck1hcD8uKHQsbikubWVzc2FnZT8/bi5kZWZhdWx0RXJyb3I7cmV0dXJuXCJ1bnJlY29nbml6ZWRfa2V5c1wiPT09dC5jb2RlP3ttZXNzYWdlOnMuZXJyb3JVdGlsLmVyclRvT2JqKGUpLm1lc3NhZ2U/P3J9OnttZXNzYWdlOnJ9fX06e319KX1zdHJpcCgpe3JldHVybiBuZXcgJCh7Li4udGhpcy5fZGVmLHVua25vd25LZXlzOlwic3RyaXBcIn0pfXBhc3N0aHJvdWdoKCl7cmV0dXJuIG5ldyAkKHsuLi50aGlzLl9kZWYsdW5rbm93bktleXM6XCJwYXNzdGhyb3VnaFwifSl9ZXh0ZW5kKGUpe3JldHVybiBuZXcgJCh7Li4udGhpcy5fZGVmLHNoYXBlOigpPT4oey4uLnRoaXMuX2RlZi5zaGFwZSgpLC4uLmV9KX0pfW1lcmdlKGUpe3JldHVybiBuZXcgJCh7dW5rbm93bktleXM6ZS5fZGVmLnVua25vd25LZXlzLGNhdGNoYWxsOmUuX2RlZi5jYXRjaGFsbCxzaGFwZTooKT0+KHsuLi50aGlzLl9kZWYuc2hhcGUoKSwuLi5lLl9kZWYuc2hhcGUoKX0pLHR5cGVOYW1lOnIuWm9kT2JqZWN0fSl9c2V0S2V5KGUsdCl7cmV0dXJuIHRoaXMuYXVnbWVudCh7W2VdOnR9KX1jYXRjaGFsbChlKXtyZXR1cm4gbmV3ICQoey4uLnRoaXMuX2RlZixjYXRjaGFsbDplfSl9cGljayhlKXtsZXQgdD17fTtmb3IobGV0IG4gb2YgdS51dGlsLm9iamVjdEtleXMoZSkpZVtuXSYmdGhpcy5zaGFwZVtuXSYmKHRbbl09dGhpcy5zaGFwZVtuXSk7cmV0dXJuIG5ldyAkKHsuLi50aGlzLl9kZWYsc2hhcGU6KCk9PnR9KX1vbWl0KGUpe2xldCB0PXt9O2ZvcihsZXQgbiBvZiB1LnV0aWwub2JqZWN0S2V5cyh0aGlzLnNoYXBlKSllW25dfHwodFtuXT10aGlzLnNoYXBlW25dKTtyZXR1cm4gbmV3ICQoey4uLnRoaXMuX2RlZixzaGFwZTooKT0+dH0pfWRlZXBQYXJ0aWFsKCl7cmV0dXJuIGZ1bmN0aW9uIGUodCl7aWYodCBpbnN0YW5jZW9mICQpe2xldCBuPXt9O2ZvcihsZXQgciBpbiB0LnNoYXBlKXtsZXQgbz10LnNoYXBlW3JdO25bcl09ZWMuY3JlYXRlKGUobykpfXJldHVybiBuZXcgJCh7Li4udC5fZGVmLHNoYXBlOigpPT5ufSl9aWYodCBpbnN0YW5jZW9mIFYpcmV0dXJuIG5ldyBWKHsuLi50Ll9kZWYsdHlwZTplKHQuZWxlbWVudCl9KTtpZih0IGluc3RhbmNlb2YgZWMpcmV0dXJuIGVjLmNyZWF0ZShlKHQudW53cmFwKCkpKTtpZih0IGluc3RhbmNlb2YgZXUpcmV0dXJuIGV1LmNyZWF0ZShlKHQudW53cmFwKCkpKTtpZih0IGluc3RhbmNlb2YgRylyZXR1cm4gRy5jcmVhdGUodC5pdGVtcy5tYXAodD0+ZSh0KSkpO2Vsc2UgcmV0dXJuIHR9KHRoaXMpfXBhcnRpYWwoZSl7bGV0IHQ9e307Zm9yKGxldCBuIG9mIHUudXRpbC5vYmplY3RLZXlzKHRoaXMuc2hhcGUpKXtsZXQgcj10aGlzLnNoYXBlW25dO2UmJiFlW25dP3Rbbl09cjp0W25dPXIub3B0aW9uYWwoKX1yZXR1cm4gbmV3ICQoey4uLnRoaXMuX2RlZixzaGFwZTooKT0+dH0pfXJlcXVpcmVkKGUpe2xldCB0PXt9O2ZvcihsZXQgbiBvZiB1LnV0aWwub2JqZWN0S2V5cyh0aGlzLnNoYXBlKSlpZihlJiYhZVtuXSl0W25dPXRoaXMuc2hhcGVbbl07ZWxzZXtsZXQgZT10aGlzLnNoYXBlW25dO2Zvcig7ZSBpbnN0YW5jZW9mIGVjOyllPWUuX2RlZi5pbm5lclR5cGU7dFtuXT1lfXJldHVybiBuZXcgJCh7Li4udGhpcy5fZGVmLHNoYXBlOigpPT50fSl9a2V5b2YoKXtyZXR1cm4gZW8odS51dGlsLm9iamVjdEtleXModGhpcy5zaGFwZSkpfX10LlpvZE9iamVjdD0kLCQuY3JlYXRlPShlLHQpPT5uZXcgJCh7c2hhcGU6KCk9PmUsdW5rbm93bktleXM6XCJzdHJpcFwiLGNhdGNoYWxsOnEuY3JlYXRlKCksdHlwZU5hbWU6ci5ab2RPYmplY3QsLi4ucCh0KX0pLCQuc3RyaWN0Q3JlYXRlPShlLHQpPT5uZXcgJCh7c2hhcGU6KCk9PmUsdW5rbm93bktleXM6XCJzdHJpY3RcIixjYXRjaGFsbDpxLmNyZWF0ZSgpLHR5cGVOYW1lOnIuWm9kT2JqZWN0LC4uLnAodCl9KSwkLmxhenljcmVhdGU9KGUsdCk9Pm5ldyAkKHtzaGFwZTplLHVua25vd25LZXlzOlwic3RyaXBcIixjYXRjaGFsbDpxLmNyZWF0ZSgpLHR5cGVOYW1lOnIuWm9kT2JqZWN0LC4uLnAodCl9KTtjbGFzcyBXIGV4dGVuZHMgaHtfcGFyc2UoZSl7bGV0e2N0eDp0fT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSksbj10aGlzLl9kZWYub3B0aW9ucztpZih0LmNvbW1vbi5hc3luYylyZXR1cm4gUHJvbWlzZS5hbGwobi5tYXAoYXN5bmMgZT0+e2xldCBuPXsuLi50LGNvbW1vbjp7Li4udC5jb21tb24saXNzdWVzOltdfSxwYXJlbnQ6bnVsbH07cmV0dXJue3Jlc3VsdDphd2FpdCBlLl9wYXJzZUFzeW5jKHtkYXRhOnQuZGF0YSxwYXRoOnQucGF0aCxwYXJlbnQ6bn0pLGN0eDpufX0pKS50aGVuKGZ1bmN0aW9uKGUpe2ZvcihsZXQgdCBvZiBlKWlmKFwidmFsaWRcIj09PXQucmVzdWx0LnN0YXR1cylyZXR1cm4gdC5yZXN1bHQ7Zm9yKGxldCBuIG9mIGUpaWYoXCJkaXJ0eVwiPT09bi5yZXN1bHQuc3RhdHVzKXJldHVybiB0LmNvbW1vbi5pc3N1ZXMucHVzaCguLi5uLmN0eC5jb21tb24uaXNzdWVzKSxuLnJlc3VsdDtsZXQgbj1lLm1hcChlPT5uZXcgaS5ab2RFcnJvcihlLmN0eC5jb21tb24uaXNzdWVzKSk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3VuaW9uLHVuaW9uRXJyb3JzOm59KSxjLklOVkFMSUR9KTt7bGV0IGUscj1bXTtmb3IobGV0IG8gb2Ygbil7bGV0IG49ey4uLnQsY29tbW9uOnsuLi50LmNvbW1vbixpc3N1ZXM6W119LHBhcmVudDpudWxsfSxhPW8uX3BhcnNlU3luYyh7ZGF0YTp0LmRhdGEscGF0aDp0LnBhdGgscGFyZW50Om59KTtpZihcInZhbGlkXCI9PT1hLnN0YXR1cylyZXR1cm4gYTtcImRpcnR5XCIhPT1hLnN0YXR1c3x8ZXx8KGU9e3Jlc3VsdDphLGN0eDpufSksbi5jb21tb24uaXNzdWVzLmxlbmd0aCYmci5wdXNoKG4uY29tbW9uLmlzc3Vlcyl9aWYoZSlyZXR1cm4gdC5jb21tb24uaXNzdWVzLnB1c2goLi4uZS5jdHguY29tbW9uLmlzc3VlcyksZS5yZXN1bHQ7bGV0IG89ci5tYXAoZT0+bmV3IGkuWm9kRXJyb3IoZSkpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF91bmlvbix1bmlvbkVycm9yczpvfSksYy5JTlZBTElEfX1nZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLl9kZWYub3B0aW9uc319dC5ab2RVbmlvbj1XLFcuY3JlYXRlPShlLHQpPT5uZXcgVyh7b3B0aW9uczplLHR5cGVOYW1lOnIuWm9kVW5pb24sLi4ucCh0KX0pO2xldCBZPWU9PntpZihlIGluc3RhbmNlb2YgZW4pcmV0dXJuIFkoZS5zY2hlbWEpO2lmKGUgaW5zdGFuY2VvZiBlcylyZXR1cm4gWShlLmlubmVyVHlwZSgpKTtpZihlIGluc3RhbmNlb2YgZXIpcmV0dXJuW2UudmFsdWVdO2lmKGUgaW5zdGFuY2VvZiBlYSlyZXR1cm4gZS5vcHRpb25zO2lmKGUgaW5zdGFuY2VvZiBlaSlyZXR1cm4gdS51dGlsLm9iamVjdFZhbHVlcyhlLmVudW0pO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIGVkKXJldHVybiBZKGUuX2RlZi5pbm5lclR5cGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIE0pcmV0dXJuW3ZvaWQgMF07ZWxzZSBpZihlIGluc3RhbmNlb2YgWilyZXR1cm5bbnVsbF07ZWxzZSBpZihlIGluc3RhbmNlb2YgZWMpcmV0dXJuW3ZvaWQgMCwuLi5ZKGUudW53cmFwKCkpXTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBldSlyZXR1cm5bbnVsbCwuLi5ZKGUudW53cmFwKCkpXTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBlaClyZXR1cm4gWShlLnVud3JhcCgpKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBlZylyZXR1cm4gWShlLnVud3JhcCgpKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBlZilyZXR1cm4gWShlLl9kZWYuaW5uZXJUeXBlKTtlbHNlIHJldHVybltdfTtjbGFzcyBLIGV4dGVuZHMgaHtfcGFyc2UoZSl7bGV0e2N0eDp0fT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYodC5wYXJzZWRUeXBlIT09dS5ab2RQYXJzZWRUeXBlLm9iamVjdClyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxleHBlY3RlZDp1LlpvZFBhcnNlZFR5cGUub2JqZWN0LHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLGMuSU5WQUxJRDtsZXQgbj10aGlzLmRpc2NyaW1pbmF0b3Iscj10LmRhdGFbbl0sbz10aGlzLm9wdGlvbnNNYXAuZ2V0KHIpO3JldHVybiBvP3QuY29tbW9uLmFzeW5jP28uX3BhcnNlQXN5bmMoe2RhdGE6dC5kYXRhLHBhdGg6dC5wYXRoLHBhcmVudDp0fSk6by5fcGFyc2VTeW5jKHtkYXRhOnQuZGF0YSxwYXRoOnQucGF0aCxwYXJlbnQ6dH0pOigoMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdW5pb25fZGlzY3JpbWluYXRvcixvcHRpb25zOkFycmF5LmZyb20odGhpcy5vcHRpb25zTWFwLmtleXMoKSkscGF0aDpbbl19KSxjLklOVkFMSUQpfWdldCBkaXNjcmltaW5hdG9yKCl7cmV0dXJuIHRoaXMuX2RlZi5kaXNjcmltaW5hdG9yfWdldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zfWdldCBvcHRpb25zTWFwKCl7cmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zTWFwfXN0YXRpYyBjcmVhdGUoZSx0LG4pe2xldCBvPW5ldyBNYXA7Zm9yKGxldCBuIG9mIHQpe2xldCB0PVkobi5zaGFwZVtlXSk7aWYoIXQubGVuZ3RoKXRocm93IEVycm9yKGBBIGRpc2NyaW1pbmF0b3IgdmFsdWUgZm9yIGtleSBcXGAke2V9XFxgIGNvdWxkIG5vdCBiZSBleHRyYWN0ZWQgZnJvbSBhbGwgc2NoZW1hIG9wdGlvbnNgKTtmb3IobGV0IHIgb2YgdCl7aWYoby5oYXMocikpdGhyb3cgRXJyb3IoYERpc2NyaW1pbmF0b3IgcHJvcGVydHkgJHtTdHJpbmcoZSl9IGhhcyBkdXBsaWNhdGUgdmFsdWUgJHtTdHJpbmcocil9YCk7by5zZXQocixuKX19cmV0dXJuIG5ldyBLKHt0eXBlTmFtZTpyLlpvZERpc2NyaW1pbmF0ZWRVbmlvbixkaXNjcmltaW5hdG9yOmUsb3B0aW9uczp0LG9wdGlvbnNNYXA6bywuLi5wKG4pfSl9fXQuWm9kRGlzY3JpbWluYXRlZFVuaW9uPUs7Y2xhc3MgWCBleHRlbmRzIGh7X3BhcnNlKGUpe2xldHtzdGF0dXM6dCxjdHg6bn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpLHI9KGUscik9PntpZigoMCxjLmlzQWJvcnRlZCkoZSl8fCgwLGMuaXNBYm9ydGVkKShyKSlyZXR1cm4gYy5JTlZBTElEO2xldCBvPWZ1bmN0aW9uIGUodCxuKXtsZXQgcj0oMCx1LmdldFBhcnNlZFR5cGUpKHQpLG89KDAsdS5nZXRQYXJzZWRUeXBlKShuKTtpZih0PT09bilyZXR1cm57dmFsaWQ6ITAsZGF0YTp0fTtpZihyPT09dS5ab2RQYXJzZWRUeXBlLm9iamVjdCYmbz09PXUuWm9kUGFyc2VkVHlwZS5vYmplY3Qpe2xldCByPXUudXRpbC5vYmplY3RLZXlzKG4pLG89dS51dGlsLm9iamVjdEtleXModCkuZmlsdGVyKGU9Pi0xIT09ci5pbmRleE9mKGUpKSxhPXsuLi50LC4uLm59O2ZvcihsZXQgciBvZiBvKXtsZXQgbz1lKHRbcl0sbltyXSk7aWYoIW8udmFsaWQpcmV0dXJue3ZhbGlkOiExfTthW3JdPW8uZGF0YX1yZXR1cm57dmFsaWQ6ITAsZGF0YTphfX1pZihyPT09dS5ab2RQYXJzZWRUeXBlLmFycmF5JiZvPT09dS5ab2RQYXJzZWRUeXBlLmFycmF5KXtpZih0Lmxlbmd0aCE9PW4ubGVuZ3RoKXJldHVybnt2YWxpZDohMX07bGV0IHI9W107Zm9yKGxldCBvPTA7bzx0Lmxlbmd0aDtvKyspe2xldCBhPWUodFtvXSxuW29dKTtpZighYS52YWxpZClyZXR1cm57dmFsaWQ6ITF9O3IucHVzaChhLmRhdGEpfXJldHVybnt2YWxpZDohMCxkYXRhOnJ9fWlmKHI9PT11LlpvZFBhcnNlZFR5cGUuZGF0ZSYmbz09PXUuWm9kUGFyc2VkVHlwZS5kYXRlJiYrdD09K24pcmV0dXJue3ZhbGlkOiEwLGRhdGE6dH07cmV0dXJue3ZhbGlkOiExfX0oZS52YWx1ZSxyLnZhbHVlKTtyZXR1cm4gby52YWxpZD8oKCgwLGMuaXNEaXJ0eSkoZSl8fCgwLGMuaXNEaXJ0eSkocikpJiZ0LmRpcnR5KCkse3N0YXR1czp0LnZhbHVlLHZhbHVlOm8uZGF0YX0pOigoMCxjLmFkZElzc3VlVG9Db250ZXh0KShuLHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfaW50ZXJzZWN0aW9uX3R5cGVzfSksYy5JTlZBTElEKX07cmV0dXJuIG4uY29tbW9uLmFzeW5jP1Byb21pc2UuYWxsKFt0aGlzLl9kZWYubGVmdC5fcGFyc2VBc3luYyh7ZGF0YTpuLmRhdGEscGF0aDpuLnBhdGgscGFyZW50Om59KSx0aGlzLl9kZWYucmlnaHQuX3BhcnNlQXN5bmMoe2RhdGE6bi5kYXRhLHBhdGg6bi5wYXRoLHBhcmVudDpufSldKS50aGVuKChbZSx0XSk9PnIoZSx0KSk6cih0aGlzLl9kZWYubGVmdC5fcGFyc2VTeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pLHRoaXMuX2RlZi5yaWdodC5fcGFyc2VTeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pKX19dC5ab2RJbnRlcnNlY3Rpb249WCxYLmNyZWF0ZT0oZSx0LG4pPT5uZXcgWCh7bGVmdDplLHJpZ2h0OnQsdHlwZU5hbWU6ci5ab2RJbnRlcnNlY3Rpb24sLi4ucChuKX0pO2NsYXNzIEcgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXR7c3RhdHVzOnQsY3R4Om59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKTtpZihuLnBhcnNlZFR5cGUhPT11LlpvZFBhcnNlZFR5cGUuYXJyYXkpcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobix7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLmFycmF5LHJlY2VpdmVkOm4ucGFyc2VkVHlwZX0pLGMuSU5WQUxJRDtpZihuLmRhdGEubGVuZ3RoPHRoaXMuX2RlZi5pdGVtcy5sZW5ndGgpcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobix7Y29kZTppLlpvZElzc3VlQ29kZS50b29fc21hbGwsbWluaW11bTp0aGlzLl9kZWYuaXRlbXMubGVuZ3RoLGluY2x1c2l2ZTohMCxleGFjdDohMSx0eXBlOlwiYXJyYXlcIn0pLGMuSU5WQUxJRDshdGhpcy5fZGVmLnJlc3QmJm4uZGF0YS5sZW5ndGg+dGhpcy5fZGVmLml0ZW1zLmxlbmd0aCYmKCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKG4se2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX2JpZyxtYXhpbXVtOnRoaXMuX2RlZi5pdGVtcy5sZW5ndGgsaW5jbHVzaXZlOiEwLGV4YWN0OiExLHR5cGU6XCJhcnJheVwifSksdC5kaXJ0eSgpKTtsZXQgcj1bLi4ubi5kYXRhXS5tYXAoKGUsdCk9PntsZXQgcj10aGlzLl9kZWYuaXRlbXNbdF18fHRoaXMuX2RlZi5yZXN0O3JldHVybiByP3IuX3BhcnNlKG5ldyBkKG4sZSxuLnBhdGgsdCkpOm51bGx9KS5maWx0ZXIoZT0+ISFlKTtyZXR1cm4gbi5jb21tb24uYXN5bmM/UHJvbWlzZS5hbGwocikudGhlbihlPT5jLlBhcnNlU3RhdHVzLm1lcmdlQXJyYXkodCxlKSk6Yy5QYXJzZVN0YXR1cy5tZXJnZUFycmF5KHQscil9Z2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuX2RlZi5pdGVtc31yZXN0KGUpe3JldHVybiBuZXcgRyh7Li4udGhpcy5fZGVmLHJlc3Q6ZX0pfX10LlpvZFR1cGxlPUcsRy5jcmVhdGU9KGUsdCk9PntpZighQXJyYXkuaXNBcnJheShlKSl0aHJvdyBFcnJvcihcIllvdSBtdXN0IHBhc3MgYW4gYXJyYXkgb2Ygc2NoZW1hcyB0byB6LnR1cGxlKFsgLi4uIF0pXCIpO3JldHVybiBuZXcgRyh7aXRlbXM6ZSx0eXBlTmFtZTpyLlpvZFR1cGxlLHJlc3Q6bnVsbCwuLi5wKHQpfSl9O2NsYXNzIFEgZXh0ZW5kcyBoe2dldCBrZXlTY2hlbWEoKXtyZXR1cm4gdGhpcy5fZGVmLmtleVR5cGV9Z2V0IHZhbHVlU2NoZW1hKCl7cmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGV9X3BhcnNlKGUpe2xldHtzdGF0dXM6dCxjdHg6bn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpO2lmKG4ucGFyc2VkVHlwZSE9PXUuWm9kUGFyc2VkVHlwZS5vYmplY3QpcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobix7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLm9iamVjdCxyZWNlaXZlZDpuLnBhcnNlZFR5cGV9KSxjLklOVkFMSUQ7bGV0IHI9W10sbz10aGlzLl9kZWYua2V5VHlwZSxhPXRoaXMuX2RlZi52YWx1ZVR5cGU7Zm9yKGxldCBlIGluIG4uZGF0YSlyLnB1c2goe2tleTpvLl9wYXJzZShuZXcgZChuLGUsbi5wYXRoLGUpKSx2YWx1ZTphLl9wYXJzZShuZXcgZChuLG4uZGF0YVtlXSxuLnBhdGgsZSkpLGFsd2F5c1NldDplIGluIG4uZGF0YX0pO3JldHVybiBuLmNvbW1vbi5hc3luYz9jLlBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0QXN5bmModCxyKTpjLlBhcnNlU3RhdHVzLm1lcmdlT2JqZWN0U3luYyh0LHIpfWdldCBlbGVtZW50KCl7cmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGV9c3RhdGljIGNyZWF0ZShlLHQsbil7cmV0dXJuIG5ldyBRKHQgaW5zdGFuY2VvZiBoP3trZXlUeXBlOmUsdmFsdWVUeXBlOnQsdHlwZU5hbWU6ci5ab2RSZWNvcmQsLi4ucChuKX06e2tleVR5cGU6ei5jcmVhdGUoKSx2YWx1ZVR5cGU6ZSx0eXBlTmFtZTpyLlpvZFJlY29yZCwuLi5wKHQpfSl9fXQuWm9kUmVjb3JkPVE7Y2xhc3MgSiBleHRlbmRzIGh7Z2V0IGtleVNjaGVtYSgpe3JldHVybiB0aGlzLl9kZWYua2V5VHlwZX1nZXQgdmFsdWVTY2hlbWEoKXtyZXR1cm4gdGhpcy5fZGVmLnZhbHVlVHlwZX1fcGFyc2UoZSl7bGV0e3N0YXR1czp0LGN0eDpufT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYobi5wYXJzZWRUeXBlIT09dS5ab2RQYXJzZWRUeXBlLm1hcClyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KShuLHtjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZSxleHBlY3RlZDp1LlpvZFBhcnNlZFR5cGUubWFwLHJlY2VpdmVkOm4ucGFyc2VkVHlwZX0pLGMuSU5WQUxJRDtsZXQgcj10aGlzLl9kZWYua2V5VHlwZSxvPXRoaXMuX2RlZi52YWx1ZVR5cGUsYT1bLi4ubi5kYXRhLmVudHJpZXMoKV0ubWFwKChbZSx0XSxhKT0+KHtrZXk6ci5fcGFyc2UobmV3IGQobixlLG4ucGF0aCxbYSxcImtleVwiXSkpLHZhbHVlOm8uX3BhcnNlKG5ldyBkKG4sdCxuLnBhdGgsW2EsXCJ2YWx1ZVwiXSkpfSkpO2lmKG4uY29tbW9uLmFzeW5jKXtsZXQgZT1uZXcgTWFwO3JldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGFzeW5jKCk9Pntmb3IobGV0IG4gb2YgYSl7bGV0IHI9YXdhaXQgbi5rZXksbz1hd2FpdCBuLnZhbHVlO2lmKFwiYWJvcnRlZFwiPT09ci5zdGF0dXN8fFwiYWJvcnRlZFwiPT09by5zdGF0dXMpcmV0dXJuIGMuSU5WQUxJRDsoXCJkaXJ0eVwiPT09ci5zdGF0dXN8fFwiZGlydHlcIj09PW8uc3RhdHVzKSYmdC5kaXJ0eSgpLGUuc2V0KHIudmFsdWUsby52YWx1ZSl9cmV0dXJue3N0YXR1czp0LnZhbHVlLHZhbHVlOmV9fSl9e2xldCBlPW5ldyBNYXA7Zm9yKGxldCBuIG9mIGEpe2xldCByPW4ua2V5LG89bi52YWx1ZTtpZihcImFib3J0ZWRcIj09PXIuc3RhdHVzfHxcImFib3J0ZWRcIj09PW8uc3RhdHVzKXJldHVybiBjLklOVkFMSUQ7KFwiZGlydHlcIj09PXIuc3RhdHVzfHxcImRpcnR5XCI9PT1vLnN0YXR1cykmJnQuZGlydHkoKSxlLnNldChyLnZhbHVlLG8udmFsdWUpfXJldHVybntzdGF0dXM6dC52YWx1ZSx2YWx1ZTplfX19fXQuWm9kTWFwPUosSi5jcmVhdGU9KGUsdCxuKT0+bmV3IEooe3ZhbHVlVHlwZTp0LGtleVR5cGU6ZSx0eXBlTmFtZTpyLlpvZE1hcCwuLi5wKG4pfSk7Y2xhc3MgZWUgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXR7c3RhdHVzOnQsY3R4Om59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKTtpZihuLnBhcnNlZFR5cGUhPT11LlpvZFBhcnNlZFR5cGUuc2V0KXJldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKG4se2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLGV4cGVjdGVkOnUuWm9kUGFyc2VkVHlwZS5zZXQscmVjZWl2ZWQ6bi5wYXJzZWRUeXBlfSksYy5JTlZBTElEO2xldCByPXRoaXMuX2RlZjtudWxsIT09ci5taW5TaXplJiZuLmRhdGEuc2l6ZTxyLm1pblNpemUudmFsdWUmJigoMCxjLmFkZElzc3VlVG9Db250ZXh0KShuLHtjb2RlOmkuWm9kSXNzdWVDb2RlLnRvb19zbWFsbCxtaW5pbXVtOnIubWluU2l6ZS52YWx1ZSx0eXBlOlwic2V0XCIsaW5jbHVzaXZlOiEwLGV4YWN0OiExLG1lc3NhZ2U6ci5taW5TaXplLm1lc3NhZ2V9KSx0LmRpcnR5KCkpLG51bGwhPT1yLm1heFNpemUmJm4uZGF0YS5zaXplPnIubWF4U2l6ZS52YWx1ZSYmKCgwLGMuYWRkSXNzdWVUb0NvbnRleHQpKG4se2NvZGU6aS5ab2RJc3N1ZUNvZGUudG9vX2JpZyxtYXhpbXVtOnIubWF4U2l6ZS52YWx1ZSx0eXBlOlwic2V0XCIsaW5jbHVzaXZlOiEwLGV4YWN0OiExLG1lc3NhZ2U6ci5tYXhTaXplLm1lc3NhZ2V9KSx0LmRpcnR5KCkpO2xldCBvPXRoaXMuX2RlZi52YWx1ZVR5cGU7ZnVuY3Rpb24gYShlKXtsZXQgbj1uZXcgU2V0O2ZvcihsZXQgciBvZiBlKXtpZihcImFib3J0ZWRcIj09PXIuc3RhdHVzKXJldHVybiBjLklOVkFMSUQ7XCJkaXJ0eVwiPT09ci5zdGF0dXMmJnQuZGlydHkoKSxuLmFkZChyLnZhbHVlKX1yZXR1cm57c3RhdHVzOnQudmFsdWUsdmFsdWU6bn19bGV0IGw9Wy4uLm4uZGF0YS52YWx1ZXMoKV0ubWFwKChlLHQpPT5vLl9wYXJzZShuZXcgZChuLGUsbi5wYXRoLHQpKSk7cmV0dXJuIG4uY29tbW9uLmFzeW5jP1Byb21pc2UuYWxsKGwpLnRoZW4oZT0+YShlKSk6YShsKX1taW4oZSx0KXtyZXR1cm4gbmV3IGVlKHsuLi50aGlzLl9kZWYsbWluU2l6ZTp7dmFsdWU6ZSxtZXNzYWdlOnMuZXJyb3JVdGlsLnRvU3RyaW5nKHQpfX0pfW1heChlLHQpe3JldHVybiBuZXcgZWUoey4uLnRoaXMuX2RlZixtYXhTaXplOnt2YWx1ZTplLG1lc3NhZ2U6cy5lcnJvclV0aWwudG9TdHJpbmcodCl9fSl9c2l6ZShlLHQpe3JldHVybiB0aGlzLm1pbihlLHQpLm1heChlLHQpfW5vbmVtcHR5KGUpe3JldHVybiB0aGlzLm1pbigxLGUpfX10LlpvZFNldD1lZSxlZS5jcmVhdGU9KGUsdCk9Pm5ldyBlZSh7dmFsdWVUeXBlOmUsbWluU2l6ZTpudWxsLG1heFNpemU6bnVsbCx0eXBlTmFtZTpyLlpvZFNldCwuLi5wKHQpfSk7Y2xhc3MgZXQgZXh0ZW5kcyBoe2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnZhbGlkYXRlPXRoaXMuaW1wbGVtZW50fV9wYXJzZShlKXtsZXR7Y3R4OnR9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKTtpZih0LnBhcnNlZFR5cGUhPT11LlpvZFBhcnNlZFR5cGUuZnVuY3Rpb24pcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLmZ1bmN0aW9uLHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLGMuSU5WQUxJRDtmdW5jdGlvbiBuKGUsbil7cmV0dXJuKDAsYy5tYWtlSXNzdWUpKHtkYXRhOmUscGF0aDp0LnBhdGgsZXJyb3JNYXBzOlt0LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsdC5zY2hlbWFFcnJvck1hcCwoMCxsLmdldEVycm9yTWFwKSgpLGwuZGVmYXVsdEVycm9yTWFwXS5maWx0ZXIoZT0+ISFlKSxpc3N1ZURhdGE6e2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9hcmd1bWVudHMsYXJndW1lbnRzRXJyb3I6bn19KX1mdW5jdGlvbiByKGUsbil7cmV0dXJuKDAsYy5tYWtlSXNzdWUpKHtkYXRhOmUscGF0aDp0LnBhdGgsZXJyb3JNYXBzOlt0LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsdC5zY2hlbWFFcnJvck1hcCwoMCxsLmdldEVycm9yTWFwKSgpLGwuZGVmYXVsdEVycm9yTWFwXS5maWx0ZXIoZT0+ISFlKSxpc3N1ZURhdGE6e2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF9yZXR1cm5fdHlwZSxyZXR1cm5UeXBlRXJyb3I6bn19KX1sZXQgbz17ZXJyb3JNYXA6dC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwfSxhPXQuZGF0YTtpZih0aGlzLl9kZWYucmV0dXJucyBpbnN0YW5jZW9mIGVsKXtsZXQgZT10aGlzO3JldHVybigwLGMuT0spKGFzeW5jIGZ1bmN0aW9uKC4uLnQpe2xldCBsPW5ldyBpLlpvZEVycm9yKFtdKSxzPWF3YWl0IGUuX2RlZi5hcmdzLnBhcnNlQXN5bmModCxvKS5jYXRjaChlPT57dGhyb3cgbC5hZGRJc3N1ZShuKHQsZSkpLGx9KSxjPWF3YWl0IFJlZmxlY3QuYXBwbHkoYSx0aGlzLHMpO3JldHVybiBhd2FpdCBlLl9kZWYucmV0dXJucy5fZGVmLnR5cGUucGFyc2VBc3luYyhjLG8pLmNhdGNoKGU9Pnt0aHJvdyBsLmFkZElzc3VlKHIoYyxlKSksbH0pfSl9e2xldCBlPXRoaXM7cmV0dXJuKDAsYy5PSykoZnVuY3Rpb24oLi4udCl7bGV0IGw9ZS5fZGVmLmFyZ3Muc2FmZVBhcnNlKHQsbyk7aWYoIWwuc3VjY2Vzcyl0aHJvdyBuZXcgaS5ab2RFcnJvcihbbih0LGwuZXJyb3IpXSk7bGV0IHM9UmVmbGVjdC5hcHBseShhLHRoaXMsbC5kYXRhKSxjPWUuX2RlZi5yZXR1cm5zLnNhZmVQYXJzZShzLG8pO2lmKCFjLnN1Y2Nlc3MpdGhyb3cgbmV3IGkuWm9kRXJyb3IoW3IocyxjLmVycm9yKV0pO3JldHVybiBjLmRhdGF9KX19cGFyYW1ldGVycygpe3JldHVybiB0aGlzLl9kZWYuYXJnc31yZXR1cm5UeXBlKCl7cmV0dXJuIHRoaXMuX2RlZi5yZXR1cm5zfWFyZ3MoLi4uZSl7cmV0dXJuIG5ldyBldCh7Li4udGhpcy5fZGVmLGFyZ3M6Ry5jcmVhdGUoZSkucmVzdChGLmNyZWF0ZSgpKX0pfXJldHVybnMoZSl7cmV0dXJuIG5ldyBldCh7Li4udGhpcy5fZGVmLHJldHVybnM6ZX0pfWltcGxlbWVudChlKXtyZXR1cm4gdGhpcy5wYXJzZShlKX1zdHJpY3RJbXBsZW1lbnQoZSl7cmV0dXJuIHRoaXMucGFyc2UoZSl9c3RhdGljIGNyZWF0ZShlLHQsbil7cmV0dXJuIG5ldyBldCh7YXJnczplfHxHLmNyZWF0ZShbXSkucmVzdChGLmNyZWF0ZSgpKSxyZXR1cm5zOnR8fEYuY3JlYXRlKCksdHlwZU5hbWU6ci5ab2RGdW5jdGlvbiwuLi5wKG4pfSl9fXQuWm9kRnVuY3Rpb249ZXQ7Y2xhc3MgZW4gZXh0ZW5kcyBoe2dldCBzY2hlbWEoKXtyZXR1cm4gdGhpcy5fZGVmLmdldHRlcigpfV9wYXJzZShlKXtsZXR7Y3R4OnR9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKTtyZXR1cm4gdGhpcy5fZGVmLmdldHRlcigpLl9wYXJzZSh7ZGF0YTp0LmRhdGEscGF0aDp0LnBhdGgscGFyZW50OnR9KX19dC5ab2RMYXp5PWVuLGVuLmNyZWF0ZT0oZSx0KT0+bmV3IGVuKHtnZXR0ZXI6ZSx0eXBlTmFtZTpyLlpvZExhenksLi4ucCh0KX0pO2NsYXNzIGVyIGV4dGVuZHMgaHtfcGFyc2UoZSl7aWYoZS5kYXRhIT09dGhpcy5fZGVmLnZhbHVlKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4oMCxjLmFkZElzc3VlVG9Db250ZXh0KSh0LHtyZWNlaXZlZDp0LmRhdGEsY29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX2xpdGVyYWwsZXhwZWN0ZWQ6dGhpcy5fZGVmLnZhbHVlfSksYy5JTlZBTElEfXJldHVybntzdGF0dXM6XCJ2YWxpZFwiLHZhbHVlOmUuZGF0YX19Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuX2RlZi52YWx1ZX19ZnVuY3Rpb24gZW8oZSx0KXtyZXR1cm4gbmV3IGVhKHt2YWx1ZXM6ZSx0eXBlTmFtZTpyLlpvZEVudW0sLi4ucCh0KX0pfXQuWm9kTGl0ZXJhbD1lcixlci5jcmVhdGU9KGUsdCk9Pm5ldyBlcih7dmFsdWU6ZSx0eXBlTmFtZTpyLlpvZExpdGVyYWwsLi4ucCh0KX0pO2NsYXNzIGVhIGV4dGVuZHMgaHtfcGFyc2UoZSl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGUuZGF0YSl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSksbj10aGlzLl9kZWYudmFsdWVzO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2V4cGVjdGVkOnUudXRpbC5qb2luVmFsdWVzKG4pLHJlY2VpdmVkOnQucGFyc2VkVHlwZSxjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfdHlwZX0pLGMuSU5WQUxJRH1pZih0aGlzLl9jYWNoZXx8KHRoaXMuX2NhY2hlPW5ldyBTZXQodGhpcy5fZGVmLnZhbHVlcykpLCF0aGlzLl9jYWNoZS5oYXMoZS5kYXRhKSl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSksbj10aGlzLl9kZWYudmFsdWVzO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse3JlY2VpdmVkOnQuZGF0YSxjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfZW51bV92YWx1ZSxvcHRpb25zOm59KSxjLklOVkFMSUR9cmV0dXJuKDAsYy5PSykoZS5kYXRhKX1nZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLl9kZWYudmFsdWVzfWdldCBlbnVtKCl7bGV0IGU9e307Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi52YWx1ZXMpZVt0XT10O3JldHVybiBlfWdldCBWYWx1ZXMoKXtsZXQgZT17fTtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLnZhbHVlcyllW3RdPXQ7cmV0dXJuIGV9Z2V0IEVudW0oKXtsZXQgZT17fTtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLnZhbHVlcyllW3RdPXQ7cmV0dXJuIGV9ZXh0cmFjdChlLHQ9dGhpcy5fZGVmKXtyZXR1cm4gZWEuY3JlYXRlKGUsey4uLnRoaXMuX2RlZiwuLi50fSl9ZXhjbHVkZShlLHQ9dGhpcy5fZGVmKXtyZXR1cm4gZWEuY3JlYXRlKHRoaXMub3B0aW9ucy5maWx0ZXIodD0+IWUuaW5jbHVkZXModCkpLHsuLi50aGlzLl9kZWYsLi4udH0pfX10LlpvZEVudW09ZWEsZWEuY3JlYXRlPWVvO2NsYXNzIGVpIGV4dGVuZHMgaHtfcGFyc2UoZSl7bGV0IHQ9dS51dGlsLmdldFZhbGlkRW51bVZhbHVlcyh0aGlzLl9kZWYudmFsdWVzKSxuPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO2lmKG4ucGFyc2VkVHlwZSE9PXUuWm9kUGFyc2VkVHlwZS5zdHJpbmcmJm4ucGFyc2VkVHlwZSE9PXUuWm9kUGFyc2VkVHlwZS5udW1iZXIpe2xldCBlPXUudXRpbC5vYmplY3RWYWx1ZXModCk7cmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkobix7ZXhwZWN0ZWQ6dS51dGlsLmpvaW5WYWx1ZXMoZSkscmVjZWl2ZWQ6bi5wYXJzZWRUeXBlLGNvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlfSksYy5JTlZBTElEfWlmKHRoaXMuX2NhY2hlfHwodGhpcy5fY2FjaGU9bmV3IFNldCh1LnV0aWwuZ2V0VmFsaWRFbnVtVmFsdWVzKHRoaXMuX2RlZi52YWx1ZXMpKSksIXRoaXMuX2NhY2hlLmhhcyhlLmRhdGEpKXtsZXQgZT11LnV0aWwub2JqZWN0VmFsdWVzKHQpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKG4se3JlY2VpdmVkOm4uZGF0YSxjb2RlOmkuWm9kSXNzdWVDb2RlLmludmFsaWRfZW51bV92YWx1ZSxvcHRpb25zOmV9KSxjLklOVkFMSUR9cmV0dXJuKDAsYy5PSykoZS5kYXRhKX1nZXQgZW51bSgpe3JldHVybiB0aGlzLl9kZWYudmFsdWVzfX10LlpvZE5hdGl2ZUVudW09ZWksZWkuY3JlYXRlPShlLHQpPT5uZXcgZWkoe3ZhbHVlczplLHR5cGVOYW1lOnIuWm9kTmF0aXZlRW51bSwuLi5wKHQpfSk7Y2xhc3MgZWwgZXh0ZW5kcyBoe3Vud3JhcCgpe3JldHVybiB0aGlzLl9kZWYudHlwZX1fcGFyc2UoZSl7bGV0e2N0eDp0fT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYodC5wYXJzZWRUeXBlIT09dS5ab2RQYXJzZWRUeXBlLnByb21pc2UmJiExPT09dC5jb21tb24uYXN5bmMpcmV0dXJuKDAsYy5hZGRJc3N1ZVRvQ29udGV4dCkodCx7Y29kZTppLlpvZElzc3VlQ29kZS5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dS5ab2RQYXJzZWRUeXBlLnByb21pc2UscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEO2xldCBuPXQucGFyc2VkVHlwZT09PXUuWm9kUGFyc2VkVHlwZS5wcm9taXNlP3QuZGF0YTpQcm9taXNlLnJlc29sdmUodC5kYXRhKTtyZXR1cm4oMCxjLk9LKShuLnRoZW4oZT0+dGhpcy5fZGVmLnR5cGUucGFyc2VBc3luYyhlLHtwYXRoOnQucGF0aCxlcnJvck1hcDp0LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXB9KSkpfX10LlpvZFByb21pc2U9ZWwsZWwuY3JlYXRlPShlLHQpPT5uZXcgZWwoe3R5cGU6ZSx0eXBlTmFtZTpyLlpvZFByb21pc2UsLi4ucCh0KX0pO2NsYXNzIGVzIGV4dGVuZHMgaHtpbm5lclR5cGUoKXtyZXR1cm4gdGhpcy5fZGVmLnNjaGVtYX1zb3VyY2VUeXBlKCl7cmV0dXJuIHRoaXMuX2RlZi5zY2hlbWEuX2RlZi50eXBlTmFtZT09PXIuWm9kRWZmZWN0cz90aGlzLl9kZWYuc2NoZW1hLnNvdXJjZVR5cGUoKTp0aGlzLl9kZWYuc2NoZW1hfV9wYXJzZShlKXtsZXR7c3RhdHVzOnQsY3R4Om59PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKSxyPXRoaXMuX2RlZi5lZmZlY3R8fG51bGwsbz17YWRkSXNzdWU6ZT0+eygwLGMuYWRkSXNzdWVUb0NvbnRleHQpKG4sZSksZS5mYXRhbD90LmFib3J0KCk6dC5kaXJ0eSgpfSxnZXQgcGF0aCgpe3JldHVybiBuLnBhdGh9fTtpZihvLmFkZElzc3VlPW8uYWRkSXNzdWUuYmluZChvKSxcInByZXByb2Nlc3NcIj09PXIudHlwZSl7bGV0IGU9ci50cmFuc2Zvcm0obi5kYXRhLG8pO2lmKG4uY29tbW9uLmFzeW5jKXJldHVybiBQcm9taXNlLnJlc29sdmUoZSkudGhlbihhc3luYyBlPT57aWYoXCJhYm9ydGVkXCI9PT10LnZhbHVlKXJldHVybiBjLklOVkFMSUQ7bGV0IHI9YXdhaXQgdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VBc3luYyh7ZGF0YTplLHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuXCJhYm9ydGVkXCI9PT1yLnN0YXR1cz9jLklOVkFMSUQ6XCJkaXJ0eVwiPT09ci5zdGF0dXN8fFwiZGlydHlcIj09PXQudmFsdWU/KDAsYy5ESVJUWSkoci52YWx1ZSk6cn0pO3tpZihcImFib3J0ZWRcIj09PXQudmFsdWUpcmV0dXJuIGMuSU5WQUxJRDtsZXQgcj10aGlzLl9kZWYuc2NoZW1hLl9wYXJzZVN5bmMoe2RhdGE6ZSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pO3JldHVyblwiYWJvcnRlZFwiPT09ci5zdGF0dXM/Yy5JTlZBTElEOlwiZGlydHlcIj09PXIuc3RhdHVzfHxcImRpcnR5XCI9PT10LnZhbHVlPygwLGMuRElSVFkpKHIudmFsdWUpOnJ9fWlmKFwicmVmaW5lbWVudFwiPT09ci50eXBlKXtsZXQgZT1lPT57bGV0IHQ9ci5yZWZpbmVtZW50KGUsbyk7aWYobi5jb21tb24uYXN5bmMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0KTtpZih0IGluc3RhbmNlb2YgUHJvbWlzZSl0aHJvdyBFcnJvcihcIkFzeW5jIHJlZmluZW1lbnQgZW5jb3VudGVyZWQgZHVyaW5nIHN5bmNocm9ub3VzIHBhcnNlIG9wZXJhdGlvbi4gVXNlIC5wYXJzZUFzeW5jIGluc3RlYWQuXCIpO3JldHVybiBlfTtpZighMSE9PW4uY29tbW9uLmFzeW5jKXJldHVybiB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZUFzeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pLnRoZW4obj0+XCJhYm9ydGVkXCI9PT1uLnN0YXR1cz9jLklOVkFMSUQ6KFwiZGlydHlcIj09PW4uc3RhdHVzJiZ0LmRpcnR5KCksZShuLnZhbHVlKS50aGVuKCgpPT4oe3N0YXR1czp0LnZhbHVlLHZhbHVlOm4udmFsdWV9KSkpKTt7bGV0IHI9dGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VTeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pO3JldHVyblwiYWJvcnRlZFwiPT09ci5zdGF0dXM/Yy5JTlZBTElEOihcImRpcnR5XCI9PT1yLnN0YXR1cyYmdC5kaXJ0eSgpLGUoci52YWx1ZSkse3N0YXR1czp0LnZhbHVlLHZhbHVlOnIudmFsdWV9KX19aWYoXCJ0cmFuc2Zvcm1cIj09PXIudHlwZSlpZighMSE9PW4uY29tbW9uLmFzeW5jKXJldHVybiB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZUFzeW5jKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pLnRoZW4oZT0+KDAsYy5pc1ZhbGlkKShlKT9Qcm9taXNlLnJlc29sdmUoci50cmFuc2Zvcm0oZS52YWx1ZSxvKSkudGhlbihlPT4oe3N0YXR1czp0LnZhbHVlLHZhbHVlOmV9KSk6Yy5JTlZBTElEKTtlbHNle2xldCBlPXRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlU3luYyh7ZGF0YTpuLmRhdGEscGF0aDpuLnBhdGgscGFyZW50Om59KTtpZighKDAsYy5pc1ZhbGlkKShlKSlyZXR1cm4gYy5JTlZBTElEO2xldCBhPXIudHJhbnNmb3JtKGUudmFsdWUsbyk7aWYoYSBpbnN0YW5jZW9mIFByb21pc2UpdGhyb3cgRXJyb3IoXCJBc3luY2hyb25vdXMgdHJhbnNmb3JtIGVuY291bnRlcmVkIGR1cmluZyBzeW5jaHJvbm91cyBwYXJzZSBvcGVyYXRpb24uIFVzZSAucGFyc2VBc3luYyBpbnN0ZWFkLlwiKTtyZXR1cm57c3RhdHVzOnQudmFsdWUsdmFsdWU6YX19dS51dGlsLmFzc2VydE5ldmVyKHIpfX10LlpvZEVmZmVjdHM9ZXMsdC5ab2RUcmFuc2Zvcm1lcj1lcyxlcy5jcmVhdGU9KGUsdCxuKT0+bmV3IGVzKHtzY2hlbWE6ZSx0eXBlTmFtZTpyLlpvZEVmZmVjdHMsZWZmZWN0OnQsLi4ucChuKX0pLGVzLmNyZWF0ZVdpdGhQcmVwcm9jZXNzPShlLHQsbik9Pm5ldyBlcyh7c2NoZW1hOnQsZWZmZWN0Ont0eXBlOlwicHJlcHJvY2Vzc1wiLHRyYW5zZm9ybTplfSx0eXBlTmFtZTpyLlpvZEVmZmVjdHMsLi4ucChuKX0pO2NsYXNzIGVjIGV4dGVuZHMgaHtfcGFyc2UoZSl7cmV0dXJuIHRoaXMuX2dldFR5cGUoZSk9PT11LlpvZFBhcnNlZFR5cGUudW5kZWZpbmVkPygwLGMuT0spKHZvaWQgMCk6dGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UoZSl9dW53cmFwKCl7cmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGV9fXQuWm9kT3B0aW9uYWw9ZWMsZWMuY3JlYXRlPShlLHQpPT5uZXcgZWMoe2lubmVyVHlwZTplLHR5cGVOYW1lOnIuWm9kT3B0aW9uYWwsLi4ucCh0KX0pO2NsYXNzIGV1IGV4dGVuZHMgaHtfcGFyc2UoZSl7cmV0dXJuIHRoaXMuX2dldFR5cGUoZSk9PT11LlpvZFBhcnNlZFR5cGUubnVsbD8oMCxjLk9LKShudWxsKTp0aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZShlKX11bndyYXAoKXtyZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZX19dC5ab2ROdWxsYWJsZT1ldSxldS5jcmVhdGU9KGUsdCk9Pm5ldyBldSh7aW5uZXJUeXBlOmUsdHlwZU5hbWU6ci5ab2ROdWxsYWJsZSwuLi5wKHQpfSk7Y2xhc3MgZWQgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXR7Y3R4OnR9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKSxuPXQuZGF0YTtyZXR1cm4gdC5wYXJzZWRUeXBlPT09dS5ab2RQYXJzZWRUeXBlLnVuZGVmaW5lZCYmKG49dGhpcy5fZGVmLmRlZmF1bHRWYWx1ZSgpKSx0aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZSh7ZGF0YTpuLHBhdGg6dC5wYXRoLHBhcmVudDp0fSl9cmVtb3ZlRGVmYXVsdCgpe3JldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlfX10LlpvZERlZmF1bHQ9ZWQsZWQuY3JlYXRlPShlLHQpPT5uZXcgZWQoe2lubmVyVHlwZTplLHR5cGVOYW1lOnIuWm9kRGVmYXVsdCxkZWZhdWx0VmFsdWU6XCJmdW5jdGlvblwiPT10eXBlb2YgdC5kZWZhdWx0P3QuZGVmYXVsdDooKT0+dC5kZWZhdWx0LC4uLnAodCl9KTtjbGFzcyBlZiBleHRlbmRzIGh7X3BhcnNlKGUpe2xldHtjdHg6dH09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpLG49ey4uLnQsY29tbW9uOnsuLi50LmNvbW1vbixpc3N1ZXM6W119fSxyPXRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKHtkYXRhOm4uZGF0YSxwYXRoOm4ucGF0aCxwYXJlbnQ6ey4uLm59fSk7cmV0dXJuKDAsYy5pc0FzeW5jKShyKT9yLnRoZW4oZT0+KHtzdGF0dXM6XCJ2YWxpZFwiLHZhbHVlOlwidmFsaWRcIj09PWUuc3RhdHVzP2UudmFsdWU6dGhpcy5fZGVmLmNhdGNoVmFsdWUoe2dldCBlcnJvcigpe3JldHVybiBuZXcgaS5ab2RFcnJvcihuLmNvbW1vbi5pc3N1ZXMpfSxpbnB1dDpuLmRhdGF9KX0pKTp7c3RhdHVzOlwidmFsaWRcIix2YWx1ZTpcInZhbGlkXCI9PT1yLnN0YXR1cz9yLnZhbHVlOnRoaXMuX2RlZi5jYXRjaFZhbHVlKHtnZXQgZXJyb3IoKXtyZXR1cm4gbmV3IGkuWm9kRXJyb3Iobi5jb21tb24uaXNzdWVzKX0saW5wdXQ6bi5kYXRhfSl9fXJlbW92ZUNhdGNoKCl7cmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGV9fXQuWm9kQ2F0Y2g9ZWYsZWYuY3JlYXRlPShlLHQpPT5uZXcgZWYoe2lubmVyVHlwZTplLHR5cGVOYW1lOnIuWm9kQ2F0Y2gsY2F0Y2hWYWx1ZTpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmNhdGNoP3QuY2F0Y2g6KCk9PnQuY2F0Y2gsLi4ucCh0KX0pO2NsYXNzIGVwIGV4dGVuZHMgaHtfcGFyc2UoZSl7aWYodGhpcy5fZ2V0VHlwZShlKSE9PXUuWm9kUGFyc2VkVHlwZS5uYW4pe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybigwLGMuYWRkSXNzdWVUb0NvbnRleHQpKHQse2NvZGU6aS5ab2RJc3N1ZUNvZGUuaW52YWxpZF90eXBlLGV4cGVjdGVkOnUuWm9kUGFyc2VkVHlwZS5uYW4scmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSksYy5JTlZBTElEfXJldHVybntzdGF0dXM6XCJ2YWxpZFwiLHZhbHVlOmUuZGF0YX19fXQuWm9kTmFOPWVwLGVwLmNyZWF0ZT1lPT5uZXcgZXAoe3R5cGVOYW1lOnIuWm9kTmFOLC4uLnAoZSl9KSx0LkJSQU5EPVN5bWJvbChcInpvZF9icmFuZFwiKTtjbGFzcyBlaCBleHRlbmRzIGh7X3BhcnNlKGUpe2xldHtjdHg6dH09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpLG49dC5kYXRhO3JldHVybiB0aGlzLl9kZWYudHlwZS5fcGFyc2Uoe2RhdGE6bixwYXRoOnQucGF0aCxwYXJlbnQ6dH0pfXVud3JhcCgpe3JldHVybiB0aGlzLl9kZWYudHlwZX19dC5ab2RCcmFuZGVkPWVoO2NsYXNzIGVtIGV4dGVuZHMgaHtfcGFyc2UoZSl7bGV0e3N0YXR1czp0LGN0eDpufT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYobi5jb21tb24uYXN5bmMpcmV0dXJuKGFzeW5jKCk9PntsZXQgZT1hd2FpdCB0aGlzLl9kZWYuaW4uX3BhcnNlQXN5bmMoe2RhdGE6bi5kYXRhLHBhdGg6bi5wYXRoLHBhcmVudDpufSk7cmV0dXJuXCJhYm9ydGVkXCI9PT1lLnN0YXR1cz9jLklOVkFMSUQ6XCJkaXJ0eVwiPT09ZS5zdGF0dXM/KHQuZGlydHkoKSwoMCxjLkRJUlRZKShlLnZhbHVlKSk6dGhpcy5fZGVmLm91dC5fcGFyc2VBc3luYyh7ZGF0YTplLnZhbHVlLHBhdGg6bi5wYXRoLHBhcmVudDpufSl9KSgpO3tsZXQgZT10aGlzLl9kZWYuaW4uX3BhcnNlU3luYyh7ZGF0YTpuLmRhdGEscGF0aDpuLnBhdGgscGFyZW50Om59KTtyZXR1cm5cImFib3J0ZWRcIj09PWUuc3RhdHVzP2MuSU5WQUxJRDpcImRpcnR5XCI9PT1lLnN0YXR1cz8odC5kaXJ0eSgpLHtzdGF0dXM6XCJkaXJ0eVwiLHZhbHVlOmUudmFsdWV9KTp0aGlzLl9kZWYub3V0Ll9wYXJzZVN5bmMoe2RhdGE6ZS52YWx1ZSxwYXRoOm4ucGF0aCxwYXJlbnQ6bn0pfX1zdGF0aWMgY3JlYXRlKGUsdCl7cmV0dXJuIG5ldyBlbSh7aW46ZSxvdXQ6dCx0eXBlTmFtZTpyLlpvZFBpcGVsaW5lfSl9fXQuWm9kUGlwZWxpbmU9ZW07Y2xhc3MgZWcgZXh0ZW5kcyBoe19wYXJzZShlKXtsZXQgdD10aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZShlKSxuPWU9PigoMCxjLmlzVmFsaWQpKGUpJiYoZS52YWx1ZT1PYmplY3QuZnJlZXplKGUudmFsdWUpKSxlKTtyZXR1cm4oMCxjLmlzQXN5bmMpKHQpP3QudGhlbihlPT5uKGUpKTpuKHQpfXVud3JhcCgpe3JldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlfX1mdW5jdGlvbiBleShlLHQpe2xldCBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZSh0KTpcInN0cmluZ1wiPT10eXBlb2YgZT97bWVzc2FnZTplfTplO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBuP3ttZXNzYWdlOm59Om59ZnVuY3Rpb24gZXYoZSx0PXt9LG4pe3JldHVybiBlP1UuY3JlYXRlKCkuc3VwZXJSZWZpbmUoKHIsbyk9PntsZXQgYT1lKHIpO2lmKGEgaW5zdGFuY2VvZiBQcm9taXNlKXJldHVybiBhLnRoZW4oZT0+e2lmKCFlKXtsZXQgZT1leSh0LHIpLGE9ZS5mYXRhbD8/bj8/ITA7by5hZGRJc3N1ZSh7Y29kZTpcImN1c3RvbVwiLC4uLmUsZmF0YWw6YX0pfX0pO2lmKCFhKXtsZXQgZT1leSh0LHIpLGE9ZS5mYXRhbD8/bj8/ITA7by5hZGRJc3N1ZSh7Y29kZTpcImN1c3RvbVwiLC4uLmUsZmF0YWw6YX0pfX0pOlUuY3JlYXRlKCl9dC5ab2RSZWFkb25seT1lZyxlZy5jcmVhdGU9KGUsdCk9Pm5ldyBlZyh7aW5uZXJUeXBlOmUsdHlwZU5hbWU6ci5ab2RSZWFkb25seSwuLi5wKHQpfSksdC5sYXRlPXtvYmplY3Q6JC5sYXp5Y3JlYXRlfSwobz1yfHwodC5ab2RGaXJzdFBhcnR5VHlwZUtpbmQ9cj17fSkpLlpvZFN0cmluZz1cIlpvZFN0cmluZ1wiLG8uWm9kTnVtYmVyPVwiWm9kTnVtYmVyXCIsby5ab2ROYU49XCJab2ROYU5cIixvLlpvZEJpZ0ludD1cIlpvZEJpZ0ludFwiLG8uWm9kQm9vbGVhbj1cIlpvZEJvb2xlYW5cIixvLlpvZERhdGU9XCJab2REYXRlXCIsby5ab2RTeW1ib2w9XCJab2RTeW1ib2xcIixvLlpvZFVuZGVmaW5lZD1cIlpvZFVuZGVmaW5lZFwiLG8uWm9kTnVsbD1cIlpvZE51bGxcIixvLlpvZEFueT1cIlpvZEFueVwiLG8uWm9kVW5rbm93bj1cIlpvZFVua25vd25cIixvLlpvZE5ldmVyPVwiWm9kTmV2ZXJcIixvLlpvZFZvaWQ9XCJab2RWb2lkXCIsby5ab2RBcnJheT1cIlpvZEFycmF5XCIsby5ab2RPYmplY3Q9XCJab2RPYmplY3RcIixvLlpvZFVuaW9uPVwiWm9kVW5pb25cIixvLlpvZERpc2NyaW1pbmF0ZWRVbmlvbj1cIlpvZERpc2NyaW1pbmF0ZWRVbmlvblwiLG8uWm9kSW50ZXJzZWN0aW9uPVwiWm9kSW50ZXJzZWN0aW9uXCIsby5ab2RUdXBsZT1cIlpvZFR1cGxlXCIsby5ab2RSZWNvcmQ9XCJab2RSZWNvcmRcIixvLlpvZE1hcD1cIlpvZE1hcFwiLG8uWm9kU2V0PVwiWm9kU2V0XCIsby5ab2RGdW5jdGlvbj1cIlpvZEZ1bmN0aW9uXCIsby5ab2RMYXp5PVwiWm9kTGF6eVwiLG8uWm9kTGl0ZXJhbD1cIlpvZExpdGVyYWxcIixvLlpvZEVudW09XCJab2RFbnVtXCIsby5ab2RFZmZlY3RzPVwiWm9kRWZmZWN0c1wiLG8uWm9kTmF0aXZlRW51bT1cIlpvZE5hdGl2ZUVudW1cIixvLlpvZE9wdGlvbmFsPVwiWm9kT3B0aW9uYWxcIixvLlpvZE51bGxhYmxlPVwiWm9kTnVsbGFibGVcIixvLlpvZERlZmF1bHQ9XCJab2REZWZhdWx0XCIsby5ab2RDYXRjaD1cIlpvZENhdGNoXCIsby5ab2RQcm9taXNlPVwiWm9kUHJvbWlzZVwiLG8uWm9kQnJhbmRlZD1cIlpvZEJyYW5kZWRcIixvLlpvZFBpcGVsaW5lPVwiWm9kUGlwZWxpbmVcIixvLlpvZFJlYWRvbmx5PVwiWm9kUmVhZG9ubHlcIix0Lmluc3RhbmNlb2Y9KGUsdD17bWVzc2FnZTpgSW5wdXQgbm90IGluc3RhbmNlIG9mICR7ZS5uYW1lfWB9KT0+ZXYodD0+dCBpbnN0YW5jZW9mIGUsdCk7bGV0IGViPXouY3JlYXRlO3Quc3RyaW5nPWViO2xldCBlQT1ULmNyZWF0ZTt0Lm51bWJlcj1lQSx0Lm5hbj1lcC5jcmVhdGUsdC5iaWdpbnQ9RC5jcmVhdGU7bGV0IGV4PUwuY3JlYXRlO3QuYm9vbGVhbj1leCx0LmRhdGU9Ti5jcmVhdGUsdC5zeW1ib2w9Ui5jcmVhdGUsdC51bmRlZmluZWQ9TS5jcmVhdGUsdC5udWxsPVouY3JlYXRlLHQuYW55PVUuY3JlYXRlLHQudW5rbm93bj1GLmNyZWF0ZSx0Lm5ldmVyPXEuY3JlYXRlLHQudm9pZD1ILmNyZWF0ZSx0LmFycmF5PVYuY3JlYXRlLHQub2JqZWN0PSQuY3JlYXRlLHQuc3RyaWN0T2JqZWN0PSQuc3RyaWN0Q3JlYXRlLHQudW5pb249Vy5jcmVhdGUsdC5kaXNjcmltaW5hdGVkVW5pb249Sy5jcmVhdGUsdC5pbnRlcnNlY3Rpb249WC5jcmVhdGUsdC50dXBsZT1HLmNyZWF0ZSx0LnJlY29yZD1RLmNyZWF0ZSx0Lm1hcD1KLmNyZWF0ZSx0LnNldD1lZS5jcmVhdGUsdC5mdW5jdGlvbj1ldC5jcmVhdGUsdC5sYXp5PWVuLmNyZWF0ZSx0LmxpdGVyYWw9ZXIuY3JlYXRlLHQuZW51bT1lYS5jcmVhdGUsdC5uYXRpdmVFbnVtPWVpLmNyZWF0ZSx0LnByb21pc2U9ZWwuY3JlYXRlO2xldCBldz1lcy5jcmVhdGU7dC5lZmZlY3Q9ZXcsdC50cmFuc2Zvcm1lcj1ldyx0Lm9wdGlvbmFsPWVjLmNyZWF0ZSx0Lm51bGxhYmxlPWV1LmNyZWF0ZSx0LnByZXByb2Nlc3M9ZXMuY3JlYXRlV2l0aFByZXByb2Nlc3MsdC5waXBlbGluZT1lbS5jcmVhdGUsdC5vc3RyaW5nPSgpPT5lYigpLm9wdGlvbmFsKCksdC5vbnVtYmVyPSgpPT5lQSgpLm9wdGlvbmFsKCksdC5vYm9vbGVhbj0oKT0+ZXgoKS5vcHRpb25hbCgpLHQuY29lcmNlPXtzdHJpbmc6ZT0+ei5jcmVhdGUoey4uLmUsY29lcmNlOiEwfSksbnVtYmVyOmU9PlQuY3JlYXRlKHsuLi5lLGNvZXJjZTohMH0pLGJvb2xlYW46ZT0+TC5jcmVhdGUoey4uLmUsY29lcmNlOiEwfSksYmlnaW50OmU9PkQuY3JlYXRlKHsuLi5lLGNvZXJjZTohMH0pLGRhdGU6ZT0+Ti5jcmVhdGUoey4uLmUsY29lcmNlOiEwfSl9LHQuTkVWRVI9Yy5JTlZBTElEfX0sbj17fTtmdW5jdGlvbiByKGUpe3ZhciBvPW5bZV07aWYodm9pZCAwIT09bylyZXR1cm4gby5leHBvcnRzO3ZhciBhPW5bZV09e2V4cG9ydHM6e319LGk9ITA7dHJ5e3RbZV0uY2FsbChhLmV4cG9ydHMsYSxhLmV4cG9ydHMsciksaT0hMX1maW5hbGx5e2kmJmRlbGV0ZSBuW2VdfXJldHVybiBhLmV4cG9ydHN9ci5hYj1cIi8vXCIsZS5leHBvcnRzPXIoNjI5KX0pKCl9fSxfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX189e307ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhlKXt2YXIgdD1fX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bZV07aWYodm9pZCAwIT09dClyZXR1cm4gdC5leHBvcnRzO3ZhciBuPV9fd2VicGFja19tb2R1bGVfY2FjaGVfX1tlXT17aWQ6ZSxleHBvcnRzOnt9fTtyZXR1cm4gX193ZWJwYWNrX21vZHVsZXNfX1tlXShuLG4uZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKSxuLmV4cG9ydHN9X193ZWJwYWNrX3JlcXVpcmVfXy5uPWU9Pnt2YXIgdD1lJiZlLl9fZXNNb2R1bGU/KCk9PmUuZGVmYXVsdDooKT0+ZTtyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5kKHQse2E6dH0pLHR9LCgoKT0+e3ZhciBlLHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mP2U9Pk9iamVjdC5nZXRQcm90b3R5cGVPZihlKTplPT5lLl9fcHJvdG9fXztfX3dlYnBhY2tfcmVxdWlyZV9fLnQ9ZnVuY3Rpb24obixyKXtpZigxJnImJihuPXRoaXMobikpLDgmcnx8XCJvYmplY3RcIj09dHlwZW9mIG4mJm4mJig0JnImJm4uX19lc01vZHVsZXx8MTYmciYmXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50aGVuKSlyZXR1cm4gbjt2YXIgbz1PYmplY3QuY3JlYXRlKG51bGwpO19fd2VicGFja19yZXF1aXJlX18ucihvKTt2YXIgYT17fTtlPWV8fFtudWxsLHQoe30pLHQoW10pLHQodCldO2Zvcih2YXIgaT0yJnImJm47XCJvYmplY3RcIj09dHlwZW9mIGkmJiF+ZS5pbmRleE9mKGkpO2k9dChpKSlPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpKS5mb3JFYWNoKGU9PnthW2VdPSgpPT5uW2VdfSk7cmV0dXJuIGEuZGVmYXVsdD0oKT0+bixfX3dlYnBhY2tfcmVxdWlyZV9fLmQobyxhKSxvfX0pKCksX193ZWJwYWNrX3JlcXVpcmVfXy5kPShlLHQpPT57Zm9yKHZhciBuIGluIHQpX193ZWJwYWNrX3JlcXVpcmVfXy5vKHQsbikmJiFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZSxuKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7ZW51bWVyYWJsZTohMCxnZXQ6dFtuXX0pfSxfX3dlYnBhY2tfcmVxdWlyZV9fLm89KGUsdCk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpLF9fd2VicGFja19yZXF1aXJlX18ucj1lPT57XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOlwiTW9kdWxlXCJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sX193ZWJwYWNrX3JlcXVpcmVfXy5uYz12b2lkIDA7dmFyIF9fd2VicGFja19leHBvcnRzX189e307Zm9yKHZhciBfX3dlYnBhY2tfaV9fIGluKCgpPT57XCJ1c2Ugc3RyaWN0XCI7X193ZWJwYWNrX3JlcXVpcmVfXy5yKF9fd2VicGFja19leHBvcnRzX18pLF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLHtkaXNwYXRjaGVyOigpPT5kdCxyZW5kZXJBcHBEZXZPdmVybGF5OigpPT5kYyxEZXZPdmVybGF5Q29udGV4dDooKT0+ZHIscmVuZGVyUGFnZXNEZXZPdmVybGF5OigpPT5kdSx1c2VEZXZPdmVybGF5Q29udGV4dDooKT0+ZGF9KTt2YXIgZSx0LG4scj1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpLG89X193ZWJwYWNrX3JlcXVpcmVfXy5uKHIpLGE9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCIpLGk9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGEpLGw9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vc3JjL2J1aWxkL3dlYnBhY2svbG9hZGVycy9kZXZ0b29sL2RldnRvb2wtc3R5bGUtaW5qZWN0LmpzXCIpLHM9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGwpLGM9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiKSx1PV9fd2VicGFja19yZXF1aXJlX18ubihjKSxkPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIiksZj1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oZCkscD1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIiksaD1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ocCksbT1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2dsb2JhbC5jc3NcIiksZz17fTtnLnN0eWxlVGFnVHJhbnNmb3JtPWgoKSxnLnNldEF0dHJpYnV0ZXM9dSgpLGcuaW5zZXJ0PXMoKSxnLmRvbUFQST1pKCksZy5pbnNlcnRTdHlsZUVsZW1lbnQ9ZigpLG8oKShtLlosZyksbS5aJiZtLloubG9jYWxzJiZtLloubG9jYWxzO3ZhciB5PV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy90b2FzdC9zdHlsZS5jc3NcIiksdj17fTt2LnN0eWxlVGFnVHJhbnNmb3JtPWgoKSx2LnNldEF0dHJpYnV0ZXM9dSgpLHYuaW5zZXJ0PXMoKSx2LmRvbUFQST1pKCksdi5pbnNlcnRTdHlsZUVsZW1lbnQ9ZigpLG8oKSh5LlosdikseS5aJiZ5LloubG9jYWxzJiZ5LloubG9jYWxzO3ZhciBiPV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanNcIiksQT1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0L2NvbXBpbGVyLXJ1bnRpbWUuanNcIikseD1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0L2luZGV4LmpzXCIpLHc9X193ZWJwYWNrX3JlcXVpcmVfXy50KHgsMiksQz1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9kaXN0L2NvbXBpbGVkL3N0YWNrdHJhY2UtcGFyc2VyL3N0YWNrLXRyYWNlLXBhcnNlci5janMuanNcIiksXz0vXFwvX25leHQoXFwvc3RhdGljXFwvLispLyxrPVN5bWJvbC5mb3IoXCJuZXh0LmNvbnNvbGUuZXJyb3IuZGlnZXN0XCIpO2Z1bmN0aW9uIEUoZSx0LG4pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIGooZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe0UoZSx0LG5bdF0pfSl9cmV0dXJuIGV9ZnVuY3Rpb24gUyhlLHQpe3JldHVybiB0PW51bGwhPXQ/dDp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pKX0pLGV9dmFyIE89e1NtYWxsOjE2LzE0LE1lZGl1bToxLExhcmdlOjE2LzE4fSxCPVwic3RhdGljLWluZGljYXRvclwiLFA9XCJidWlsZC1va1wiLEk9XCJidWlsZC1lcnJvclwiLHo9XCJiZWZvcmUtZmFzdC1yZWZyZXNoXCIsVD1cImZhc3QtcmVmcmVzaFwiLEQ9XCJ2ZXJzaW9uLWluZm9cIixMPVwidW5oYW5kbGVkLWVycm9yXCIsTj1cInVuaGFuZGxlZC1yZWplY3Rpb25cIixSPVwiZGVidWctaW5mb1wiLE09XCJkZXYtaW5kaWNhdG9yXCIsWj1cImRldi1pbmRpY2F0b3ItZGlzYWJsZVwiLFU9XCJlcnJvci1vdmVybGF5LW9wZW5cIixGPVwiZXJyb3Itb3ZlcmxheS1jbG9zZVwiLHE9XCJlcnJvci1vdmVybGF5LXRvZ2dsZVwiLEg9XCJidWlsZGluZy1pbmRpY2F0b3Itc2hvd1wiLFY9XCJidWlsZGluZy1pbmRpY2F0b3ItaGlkZVwiLCQ9XCJyZW5kZXJpbmctaW5kaWNhdG9yLXNob3dcIixXPVwicmVuZGVyaW5nLWluZGljYXRvci1oaWRlXCIsWT1cImRldnRvb2xzLXBvc2l0aW9uXCIsSz1cImRldnRvb2xzLXBhbmVsLXBvc2l0aW9uXCIsWD1cImRldnRvb2xzLXNjYWxlXCIsRz1cImRldnRvb2xzLWNvbmZpZ1wiLFE9XCJfX25leHRqcy1kZXYtdG9vbHMtcGFuZWwtcG9zaXRpb25cIixKPVwiX19uZXh0anMtZGV2LXRvb2xzLXBhbmVsLXNpemVcIixlZT1cIl9fbmV4dGpzLWRldi10b29scy1zaGFyZWQtcGFuZWwtc2l6ZVwiLGV0PVwiX19uZXh0anMtZGV2LXRvb2xzLXNoYXJlZC1wYW5lbC1sb2NhdGlvblwiLGVuPVwic2VnbWVudC1leHBsb3Jlci11cGRhdGUtcm91dGUtc3RhdGVcIixlcj0vXFxzKyhhdCBPYmplY3RcXC5yZWFjdF9zdGFja19ib3R0b21fZnJhbWUuKil8KHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZUAuKil8KGF0IHJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZS4qKXwocmVhY3Qtc3RhY2stYm90dG9tLWZyYW1lQC4qKS87ZnVuY3Rpb24gZW8oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmUuc3BsaXQoZXIpWzBdfXZhciBlYT0obnVsbD09KGU9cHJvY2Vzcy5lbnYuX19ORVhUX0RFVl9JTkRJQ0FUT1IpP3ZvaWQgMDplLnRvU3RyaW5nKCkpPT09XCJmYWxzZVwiLGVpPXtuZXh0SWQ6MSxidWlsZEVycm9yOm51bGwsZXJyb3JzOltdLG5vdEZvdW5kOiExLHJlbmRlcmluZ0luZGljYXRvcjohMSxzdGF0aWNJbmRpY2F0b3I6ITEsc2hvd0luZGljYXRvcjohMSxkaXNhYmxlRGV2SW5kaWNhdG9yOiExLGJ1aWxkaW5nSW5kaWNhdG9yOiExLHJlZnJlc2hTdGF0ZTp7dHlwZTpcImlkbGVcIn0sdmVyc2lvbkluZm86e2luc3RhbGxlZDpcIjAuMC4wXCIsc3RhbGVuZXNzOlwidW5rbm93blwifSxkZWJ1Z0luZm86e2RldnRvb2xzRnJvbnRlbmRVcmw6dm9pZCAwfSxkZXZUb29sc1Bvc2l0aW9uOlwiYm90dG9tLWxlZnRcIixkZXZUb29sc1BhbmVsUG9zaXRpb246RSh7fSxldCxcImJvdHRvbS1sZWZ0XCIpLGRldlRvb2xzUGFuZWxTaXplOnt9LHNjYWxlOk8uTWVkaXVtLHBhZ2U6XCJcIix0aGVtZTpcInN5c3RlbVwiLGhpZGVTaG9ydGN1dDpudWxsfSxlbD1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9jbGllbnQuanNcIik7ZnVuY3Rpb24gZXMoZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsbj1BcnJheSh0PjE/dC0xOjApLHI9MTtyPHQ7cisrKW5bci0xXT1hcmd1bWVudHNbcl07dmFyIG89ZS5sZW5ndGgtMTtyZXR1cm4oZS5zbGljZSgwLG8pLnJlZHVjZShmdW5jdGlvbihlLHQscil7cmV0dXJuIGUrdCtuW3JdfSxcIlwiKStlW29dKS5yZXBsYWNlKC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2csXCJcIikucmVwbGFjZSgvXFxzKy9nLFwiIFwiKS5yZXBsYWNlKC9cXHMqKFs6Oyx7fV0pXFxzKi9nLFwiJDFcIikucmVwbGFjZSgvOyt9L2csXCJ9XCIpLnRyaW0oKX1mdW5jdGlvbiBlYygpe3ZhciBlLHQsbj0oZT1bXCJcXG4gICAgICAvKiBsYXRpbi1leHQgKi9cXG4gICAgICBAZm9udC1mYWNlIHtcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnX19uZXh0anMtR2Vpc3QnO1xcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMCA2MDA7XFxuICAgICAgICBmb250LWRpc3BsYXk6IHN3YXA7XFxuICAgICAgICBzcmM6IHVybCgvX19uZXh0anNfZm9udC9nZWlzdC1sYXRpbi1leHQud29mZjIpIGZvcm1hdCgnd29mZjInKTtcXG4gICAgICAgIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LFxcbiAgICAgICAgICBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLFxcbiAgICAgICAgICBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsXFxuICAgICAgICAgIFUrQTcyMC1BN0ZGO1xcbiAgICAgIH1cXG4gICAgICAvKiBsYXRpbi1leHQgKi9cXG4gICAgICBAZm9udC1mYWNlIHtcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnX19uZXh0anMtR2Vpc3QgTW9ubyc7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogNDAwIDYwMDtcXG4gICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gICAgICAgIHNyYzogdXJsKC9fX25leHRqc19mb250L2dlaXN0LW1vbm8tbGF0aW4tZXh0LndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgICAgICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENyxcXG4gICAgICAgICAgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RixcXG4gICAgICAgICAgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLFxcbiAgICAgICAgICBVK0E3MjAtQTdGRjtcXG4gICAgICB9XFxuICAgICAgLyogbGF0aW4gKi9cXG4gICAgICBAZm9udC1mYWNlIHtcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnX19uZXh0anMtR2Vpc3QnO1xcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMCA2MDA7XFxuICAgICAgICBmb250LWRpc3BsYXk6IHN3YXA7XFxuICAgICAgICBzcmM6IHVybCgvX19uZXh0anNfZm9udC9nZWlzdC1sYXRpbi53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xcbiAgICAgICAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsXFxuICAgICAgICAgIFUrMDJEQSwgVSswMkRDLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzIwMDAtMjA2RiwgVSsyMEFDLCBVKzIxMjIsXFxuICAgICAgICAgIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7XFxuICAgICAgfVxcbiAgICAgIC8qIGxhdGluICovXFxuICAgICAgQGZvbnQtZmFjZSB7XFxuICAgICAgICBmb250LWZhbWlseTogJ19fbmV4dGpzLUdlaXN0IE1vbm8nO1xcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMCA2MDA7XFxuICAgICAgICBmb250LWRpc3BsYXk6IHN3YXA7XFxuICAgICAgICBzcmM6IHVybCgvX19uZXh0anNfZm9udC9nZWlzdC1tb25vLWxhdGluLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgICAgICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNixcXG4gICAgICAgICAgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMixcXG4gICAgICAgICAgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDtcXG4gICAgICB9XFxuICAgIFwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiBlYz1mdW5jdGlvbigpe3JldHVybiBufSxufXZhciBldT1mdW5jdGlvbigpe3ZhciBlLHQ9KDAsQS5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPVtdLHRbMF09ZSk6ZT10WzBdLCgwLHgudXNlSW5zZXJ0aW9uRWZmZWN0KShlZCxlKSxudWxsfTtmdW5jdGlvbiBlZCgpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtyZXR1cm4gZS50ZXh0Q29udGVudD1lcyhlYygpKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGUpLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChlKX19dmFyIGVmPV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2luZGV4LmpzXCIpO2Z1bmN0aW9uIGVwKGUpe3ZhciB0LG49KDAsQS5jKSgzKSxyPWUuY2hpbGRyZW4sbz1kYSgpLnNoYWRvd1Jvb3Q7cmV0dXJuIG5bMF0hPT1yfHxuWzFdIT09bz8odD0oMCxlZi5jcmVhdGVQb3J0YWwpKHIsbyksblswXT1yLG5bMV09byxuWzJdPXQpOnQ9blsyXSx0fWZ1bmN0aW9uIGVoKGUpe2lmKFwiXCI9PT1lLnRyaW0oKSl0aHJvdyBFcnJvcihcImNhbid0IGRlY29kZSBlbXB0eSBoZXhcIik7dmFyIHQ9cGFyc2VJbnQoZSwxNik7aWYoaXNOYU4odCkpdGhyb3cgRXJyb3IoXCJpbnZhbGlkIGhleDogYFwiLmNvbmNhdChlLFwiYFwiKSk7cmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHQpfXZhciBlbT0vXl9fVFVSQk9QQUNLX18oW2EtekEtWjAtOV8kXSspX18kLyxlZz0vaHR0cHM/OlxcL1xcL1teXFxzLyQuPyNdLlteXFxzKSdcIl0qL2ksZXk9bmV3IFJlZ0V4cChcIihcIi5jb25jYXQoL19fVFVSQk9QQUNLX19bYS16QS1aMC05XyRdK19fL2cuc291cmNlLFwifFxcXFxzKylcIikpLGV2PWZ1bmN0aW9uKGUpe3ZhciB0LG49KDAsQS5jKSg3KSxyPWUudGV4dCxvPWUubWF0Y2hlcjtpZihuWzBdIT09b3x8blsxXSE9PXIpe3ZhciBhLGksbD1yLnNwbGl0KGV5KTtuWzNdIT09bz8oaT1mdW5jdGlvbihlLHQpe2lmKGVnLnRlc3QoZSkpe3ZhciBuPWVnLmV4ZWMoZSlbMF07cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2Ygb3x8byhuKT8oMCxiLmpzeCkoeC5GcmFnbWVudCx7Y2hpbGRyZW46KDAsYi5qc3gpKFwiYVwiLHtocmVmOm4sdGFyZ2V0OlwiX2JsYW5rXCIscmVsOlwibm9yZWZlcnJlciBub29wZW5lclwiLGNoaWxkcmVuOmV9KX0sXCJsaW5rLVwiLmNvbmNhdCh0KSk6ZX10cnl7dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaChlbSk7aWYoIXQpcmV0dXJuIGU7Zm9yKHZhciBuPXRbMV0scj1cIlwiLG89MCxhPVwiXCIsaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbD1uW2ldO2lmKDA9PT1vKVwiX1wiPT09bD9vPTE6XCIkXCI9PT1sP289MjpyKz1sO2Vsc2UgaWYoMT09PW8pXCJfXCI9PT1sPyhyKz1cIiBcIixvPTApOlwiJFwiPT09bD8ocis9XCJfXCIsbz0yKToocis9bCxvPTApO2Vsc2UgaWYoMj09PW8paWYoMj09PWEubGVuZ3RoJiYocis9ZWgoYSksYT1cIlwiKSxcIl9cIj09PWwpe2lmKFwiXCIhPT1hKXRocm93IEVycm9yKFwiaW52YWxpZCBoZXg6IGBcIi5jb25jYXQoYSxcImBcIikpO289M31lbHNlIGlmKFwiJFwiPT09bCl7aWYoXCJcIiE9PWEpdGhyb3cgRXJyb3IoXCJpbnZhbGlkIGhleDogYFwiLmNvbmNhdChhLFwiYFwiKSk7bz0wfWVsc2UgYSs9bDtlbHNlIGlmKDM9PT1vKWlmKFwiX1wiPT09bCl0aHJvdyBFcnJvcihcImludmFsaWQgaGV4OiBgXCIuY29uY2F0KGErbCxcImBcIikpO2Vsc2VcIiRcIj09PWw/KHIrPWVoKGEpLGE9XCJcIixvPTApOmErPWx9cmV0dXJuIHJ9KGUpO2lmKHIhPT1lKXJldHVybigwLGIuanN4cykoXCJpXCIse2NoaWxkcmVuOltcIntcIixyLFwifVwiXX0sXCJpZGVudC1cIi5jb25jYXQodCkpfWNhdGNoKG4pe3JldHVybigwLGIuanN4cykoXCJpXCIse2NoaWxkcmVuOltcIntcIixlLFwiIChkZWNvZGluZyBmYWlsZWQ6IFwiLFwiXCIrbixcIilcIixcIn1cIl19LFwiaWRlbnQtXCIuY29uY2F0KHQpKX1yZXR1cm4oMCxiLmpzeCkoeC5GcmFnbWVudCx7Y2hpbGRyZW46ZX0sXCJ0ZXh0LVwiLmNvbmNhdCh0KSl9LG5bM109byxuWzRdPWkpOmk9bls0XSxhPWwubWFwKGkpLG5bMF09byxuWzFdPXIsblsyXT1hfWVsc2UgYT1uWzJdO3JldHVybiBuWzVdIT09YT8odD0oMCxiLmpzeCkoYi5GcmFnbWVudCx7Y2hpbGRyZW46YX0pLG5bNV09YSxuWzZdPXQpOnQ9bls2XSx0fSxlYj1bL153ZWJwYWNrLWludGVybmFsOlxcL1xcL1xcLyhcXChbXFx3LV0rXFwpXFwvKT8vLC9eKHdlYnBhY2s6XFwvXFwvXFwvfHdlYnBhY2s6XFwvXFwvKF9OX0VcXC8pPykoXFwoW1xcdy1dK1xcKVxcLyk/L107ZnVuY3Rpb24gZUEoZSl7dmFyIHQ9ITAsbj0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBvLGE9ZWJbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0obz1hLm5leHQoKSkuZG9uZSk7dD0hMCl7dmFyIGk9by52YWx1ZTtpZihpLnRlc3QoZSkpcmV0dXJuITA7ZT1lLnJlcGxhY2UoaSxcIlwiKX19Y2F0Y2goZSl7bj0hMCxyPWV9ZmluYWxseXt0cnl7dHx8bnVsbD09YS5yZXR1cm58fGEucmV0dXJuKCl9ZmluYWxseXtpZihuKXRocm93IHJ9fXJldHVybiExfWZ1bmN0aW9uIGV4KGUpe3ZhciB0PSEwLG49ITEscj12b2lkIDA7dHJ5e2Zvcih2YXIgbyxhPWViW1N5bWJvbC5pdGVyYXRvcl0oKTshKHQ9KG89YS5uZXh0KCkpLmRvbmUpO3Q9ITApe3ZhciBpPW8udmFsdWU7ZT1lLnJlcGxhY2UoaSxcIlwiKX19Y2F0Y2goZSl7bj0hMCxyPWV9ZmluYWxseXt0cnl7dHx8bnVsbD09YS5yZXR1cm58fGEucmV0dXJuKCl9ZmluYWxseXtpZihuKXRocm93IHJ9fXJldHVybiBlfWZ1bmN0aW9uIGV3KGUsdCxuLHIsbyxhLGkpe3RyeXt2YXIgbD1lW2FdKGkpLHM9bC52YWx1ZX1jYXRjaChlKXtuKGUpO3JldHVybn1sLmRvbmU/dChzKTpQcm9taXNlLnJlc29sdmUocykudGhlbihyLG8pfWZ1bmN0aW9uIGVDKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbyl7dmFyIGE9ZS5hcHBseSh0LG4pO2Z1bmN0aW9uIGkoZSl7ZXcoYSxyLG8saSxsLFwibmV4dFwiLGUpfWZ1bmN0aW9uIGwoZSl7ZXcoYSxyLG8saSxsLFwidGhyb3dcIixlKX1pKHZvaWQgMCl9KX19ZnVuY3Rpb24gZV8oZSx0KXt2YXIgbixyLG8sYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvWzBdKXRocm93IG9bMV07cmV0dXJuIG9bMV19LHRyeXM6W10sb3BzOltdfSxpPU9iamVjdC5jcmVhdGUoKFwiZnVuY3Rpb25cIj09dHlwZW9mIEl0ZXJhdG9yP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gaS5uZXh0PWwoMCksaS50aHJvdz1sKDEpLGkucmV0dXJuPWwoMiksXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiYoaVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxpO2Z1bmN0aW9uIGwobCl7cmV0dXJuIGZ1bmN0aW9uKHMpe3ZhciBjPVtsLHNdO2lmKG4pdGhyb3cgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtmb3IoO2kmJihpPTAsY1swXSYmKGE9MCkpLGE7KXRyeXtpZihuPTEsciYmKG89MiZjWzBdP3IucmV0dXJuOmNbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixjWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihjPVsyJmNbMF0sby52YWx1ZV0pLGNbMF0pe2Nhc2UgMDpjYXNlIDE6bz1jO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTpjWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKysscj1jWzFdLGM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpjPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEobz0obz1hLnRyeXMpLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdKSYmKDY9PT1jWzBdfHwyPT09Y1swXSkpe2E9MDtjb250aW51ZX1pZigzPT09Y1swXSYmKCFvfHxjWzFdPm9bMF0mJmNbMV08b1szXSkpe2EubGFiZWw9Y1sxXTticmVha31pZig2PT09Y1swXSYmYS5sYWJlbDxvWzFdKXthLmxhYmVsPW9bMV0sbz1jO2JyZWFrfWlmKG8mJmEubGFiZWw8b1syXSl7YS5sYWJlbD1vWzJdLGEub3BzLnB1c2goYyk7YnJlYWt9b1syXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfWM9dC5jYWxsKGUsYSl9Y2F0Y2goZSl7Yz1bNixlXSxyPTB9ZmluYWxseXtuPW89MH1pZig1JmNbMF0pdGhyb3cgY1sxXTtyZXR1cm57dmFsdWU6Y1swXT9jWzFdOnZvaWQgMCxkb25lOiEwfX19fWZ1bmN0aW9uIGVrKGUsdCl7dmFyIG47cmV0dXJuXCJmaWxlOi8vXCI9PT1lLmZpbGV8fChudWxsPT0obj1lLmZpbGUpP3ZvaWQgMDpuLm1hdGNoKC9odHRwcz86XFwvXFwvLykpP1Byb21pc2UucmVzb2x2ZSh7ZXJyb3I6ITEscmVhc29uOm51bGwsZXh0ZXJuYWw6ITAsc291cmNlU3RhY2tGcmFtZTplLG9yaWdpbmFsU3RhY2tGcmFtZTpudWxsLG9yaWdpbmFsQ29kZUZyYW1lOm51bGwsaWdub3JlZDohMH0pOmVDKGZ1bmN0aW9uKCl7dmFyIG4scjtyZXR1cm4gZV8odGhpcyxmdW5jdGlvbihvKXtpZihcInJlamVjdGVkXCI9PT10LnN0YXR1cyl0aHJvdyBFcnJvcih0LnJlYXNvbik7cmV0dXJuWzIse2Vycm9yOiExLHJlYXNvbjpudWxsLGV4dGVybmFsOiExLHNvdXJjZVN0YWNrRnJhbWU6ZSxvcmlnaW5hbFN0YWNrRnJhbWU6KHI9dC52YWx1ZSkub3JpZ2luYWxTdGFja0ZyYW1lLG9yaWdpbmFsQ29kZUZyYW1lOnIub3JpZ2luYWxDb2RlRnJhbWV8fG51bGwsaWdub3JlZDoobnVsbD09KG49ci5vcmlnaW5hbFN0YWNrRnJhbWUpP3ZvaWQgMDpuLmlnbm9yZWQpfHwhMX1dfSl9KSgpLmNhdGNoKGZ1bmN0aW9uKHQpe3ZhciBuLHI7cmV0dXJue2Vycm9yOiEwLHJlYXNvbjpudWxsIT0ocj1udWxsIT0obj1udWxsPT10P3ZvaWQgMDp0Lm1lc3NhZ2UpP246bnVsbD09dD92b2lkIDA6dC50b1N0cmluZygpKT9yOlwiVW5rbm93biBFcnJvclwiLGV4dGVybmFsOiExLHNvdXJjZVN0YWNrRnJhbWU6ZSxvcmlnaW5hbFN0YWNrRnJhbWU6bnVsbCxvcmlnaW5hbENvZGVGcmFtZTpudWxsLGlnbm9yZWQ6ITF9fSl9ZnVuY3Rpb24gZUUoZSx0LG4pe3JldHVybiBlQyhmdW5jdGlvbigpe3ZhciByLG8sYSxpO3JldHVybiBlXyh0aGlzLGZ1bmN0aW9uKGwpe3N3aXRjaChsLmxhYmVsKXtjYXNlIDA6cj17ZnJhbWVzOmUsaXNTZXJ2ZXI6XCJzZXJ2ZXJcIj09PXQsaXNFZGdlU2VydmVyOlwiZWRnZS1zZXJ2ZXJcIj09PXQsaXNBcHBEaXJlY3Rvcnk6bn0sbz12b2lkIDAsYT12b2lkIDAsbC5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gbC50cnlzLnB1c2goWzEsMywsNF0pLFs0LGZldGNoKFwiL19fbmV4dGpzX29yaWdpbmFsLXN0YWNrLWZyYW1lc1wiLHttZXRob2Q6XCJQT1NUXCIsYm9keTpKU09OLnN0cmluZ2lmeShyKX0pXTtjYXNlIDI6cmV0dXJuIG89bC5zZW50KCksWzMsNF07Y2FzZSAzOnJldHVybiBhPWwuc2VudCgpK1wiXCIsWzMsNF07Y2FzZSA0OmlmKCEobyYmby5vayYmMjA0IT09by5zdGF0dXMpKXJldHVyblszLDZdO3JldHVybls0LG8uanNvbigpXTtjYXNlIDU6cmV0dXJuIGk9bC5zZW50KCksWzIsUHJvbWlzZS5hbGwoZS5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZWsoZSxpW3RdKX0pKV07Y2FzZSA2OmlmKCFvKXJldHVyblszLDhdO3JldHVybls0LG8udGV4dCgpXTtjYXNlIDc6YT1sLnNlbnQoKSxsLmxhYmVsPTg7Y2FzZSA4OnJldHVyblsyLFByb21pc2UuYWxsKGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlayhlLHtzdGF0dXM6XCJyZWplY3RlZFwiLHJlYXNvbjpcIkZhaWxlZCB0byBmZXRjaCB0aGUgb3JpZ2luYWwgc3RhY2sgZnJhbWVzIFwiLmNvbmNhdChhP1wiOiBcIi5jb25jYXQoYSk6XCJcIil9KX0pKV19fSl9KSgpfWZ1bmN0aW9uIGVqKGUpe2lmKCFlLmZpbGUpcmV0dXJuXCJcIjt2YXIgdD1lQShlLmZpbGUpLG49XCJcIjtpZih0KW49ZXgoZS5maWxlKTtlbHNlIHRyeXt2YXIgcixvPW5ldyBVUkwoZS5maWxlKSxhPVwiXCI7KG51bGw9PShyPWdsb2JhbFRoaXMubG9jYXRpb24pP3ZvaWQgMDpyLm9yaWdpbikhPT1vLm9yaWdpbiYmKFwibnVsbFwiPT09by5vcmlnaW4/YSs9by5wcm90b2NvbDphKz1vLm9yaWdpbiksYSs9by5wYXRobmFtZSxuPWV4KGEpfWNhdGNoKHQpe249ZXgoZS5maWxlKX1yZXR1cm4hZUEoZS5maWxlKSYmbnVsbCE9ZS5saW5lMSYmbiYmXCI8YW5vbnltb3VzPlwiIT09ZS5maWxlJiYobnVsbCE9ZS5jb2x1bW4xP24rPVwiIChcIi5jb25jYXQoZS5saW5lMSxcIjpcIikuY29uY2F0KGUuY29sdW1uMSxcIilcIik6bis9XCIgKFwiLmNvbmNhdChlLmxpbmUxLFwiKVwiKSksbn1mdW5jdGlvbiBlUyhlKXt2YXIgdCxuLHI9KDAsQS5jKSg2KTtyWzBdIT09ZT8odD12b2lkIDA9PT1lP3t9OmUsclswXT1lLHJbMV09dCk6dD1yWzFdO3ZhciBvPXQuZmlsZSxhPXQubGluZTEsaT10LmNvbHVtbjE7cmV0dXJuIHJbMl0hPT1pfHxyWzNdIT09b3x8cls0XSE9PWE/KG49ZnVuY3Rpb24oKXtpZihudWxsIT1vJiZudWxsIT1hJiZudWxsIT1pKXt2YXIgZT1uZXcgVVJMU2VhcmNoUGFyYW1zO2UuYXBwZW5kKFwiZmlsZVwiLG8pLGUuYXBwZW5kKFwibGluZTFcIixTdHJpbmcoYSkpLGUuYXBwZW5kKFwiY29sdW1uMVwiLFN0cmluZyhpKSksc2VsZi5mZXRjaChcIlwiLmNvbmNhdChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIfHxcIlwiLFwiL19fbmV4dGpzX2xhdW5jaC1lZGl0b3I/XCIpLmNvbmNhdChlLnRvU3RyaW5nKCkpKS50aGVuKGVPLGZ1bmN0aW9uKGUpe2NvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBvcGVuIGZpbGUgXCInLmNvbmNhdChvLFwiIChcIikuY29uY2F0KGEsXCI6XCIpLmNvbmNhdChpLCcpXCIgaW4geW91ciBlZGl0b3IuIENhdXNlOicpLGUpfSl9fSxyWzJdPWksclszXT1vLHJbNF09YSxyWzVdPW4pOm49cls1XSxufWZ1bmN0aW9uIGVPKCl7fWZ1bmN0aW9uIGVCKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiBlUChlLHQpe3JldHVybiB0PW51bGwhPXQ/dDp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pKX0pLGV9ZnVuY3Rpb24gZUkoZSl7dmFyIHQsbixyPSgwLEEuYykoMyk7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxiLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixkOlwiTTExLjUgOS43NVYxMS4yNUMxMS41IDExLjM4ODEgMTEuMzg4MSAxMS41IDExLjI1IDExLjVINC43NUM0LjYxMTkzIDExLjUgNC41IDExLjM4ODEgNC41IDExLjI1TDQuNSA0Ljc1QzQuNSA0LjYxMTkzIDQuNjExOTMgNC41IDQuNzUgNC41SDYuMjVIN1YzSDYuMjVINC43NUMzLjc4MzUgMyAzIDMuNzgzNSAzIDQuNzVWMTEuMjVDMyAxMi4yMTY1IDMuNzgzNSAxMyA0Ljc1IDEzSDExLjI1QzEyLjIxNjUgMTMgMTMgMTIuMjE2NSAxMyAxMS4yNVY5Ljc1VjlIMTEuNVY5Ljc1Wk04LjUgM0g5LjI1SDEyLjI0OTVDMTIuNjYzNyAzIDEyLjk5OTUgMy4zMzU3OSAxMi45OTk1IDMuNzVWNi43NVY3LjVIMTEuNDk5NVY2Ljc1VjUuNTYwNjZMOC41MzAzMyA4LjUyOTc4TDggOS4wNjAxMUw2LjkzOTM0IDcuOTk5NDVMNy40Njk2NyA3LjQ2OTEyTDEwLjQzODggNC41SDkuMjVIOC41VjNaXCJ9KSxyWzBdPXQpOnQ9clswXSxyWzFdIT09ZT8obj0oMCxiLmpzeCkoXCJzdmdcIixlUChlQih7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwifSxlKSx7Y2hpbGRyZW46dH0pKSxyWzFdPWUsclsyXT1uKTpuPXJbMl0sbn1mdW5jdGlvbiBleihlKXt2YXIgdCxuLHI9KDAsQS5jKSgzKTtyZXR1cm4gclswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk04LjU1ODQ2IDJINy40NDE0OEwxLjg4OTc1IDEzLjVIMTQuMTEwMkw4LjU1ODQ2IDJaTTkuOTA5MjkgMS4zNDc4OEM5LjY1OTAyIDAuODI5NDU2IDkuMTM0MTMgMC41IDguNTU4NDYgMC41SDcuNDQxNDhDNi44NjU4MSAwLjUgNi4zNDA5MiAwLjgyOTQ1NCA2LjA5MDY1IDEuMzQ3ODdMMC4xOTI2MDggMTMuNTY1M0MtMC4xMjc5NDMgMTQuMjI5MyAwLjM1NTgzNSAxNSAxLjA5MzE2IDE1SDE0LjkwNjhDMTUuNjQ0MSAxNSAxNi4xMjc5IDE0LjIyOTMgMTUuODA3MyAxMy41NjUzTDkuOTA5MjkgMS4zNDc4OFpNOC43NDk5NyA0Ljc1VjUuNVY4VjguNzVINy4yNDk5N1Y4VjUuNVY0Ljc1SDguNzQ5OTdaTTcuOTk5OTcgMTJDOC41NTIyNiAxMiA4Ljk5OTk3IDExLjU1MjMgOC45OTk5NyAxMUM4Ljk5OTk3IDEwLjQ0NzcgOC41NTIyNiAxMCA3Ljk5OTk3IDEwQzcuNDQ3NjkgMTAgNi45OTk5NyAxMC40NDc3IDYuOTk5OTcgMTFDNi45OTk5NyAxMS41NTIzIDcuNDQ3NjkgMTIgNy45OTk5NyAxMlpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KSxyWzBdPXQpOnQ9clswXSxyWzFdIT09ZT8obj0oMCxiLmpzeCkoXCJzdmdcIixlUChlQih7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGhlaWdodDpcIjE2XCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLHZpZXdCb3g6XCItNCAtNCAyNCAyNFwiLHdpZHRoOlwiMTZcIn0sZSkse2NoaWxkcmVuOnR9KSksclsxXT1lLHJbMl09bik6bj1yWzJdLG59ZnVuY3Rpb24gZVQoZSl7dmFyIHQsbixyLG8sYSxpLGw9KDAsQS5jKSg2KSxzPWUubGFuZztpZighcylyZXR1cm4gbFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4KShlUix7fSksbFswXT10KTp0PWxbMF0sdDtzd2l0Y2gocy50b0xvd2VyQ2FzZSgpKXtjYXNlXCJqc3hcIjpjYXNlXCJ0c3hcIjpyZXR1cm4gbFsxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhuPSgwLGIuanN4KShlTSx7fSksbFsxXT1uKTpuPWxbMV0sbjtjYXNlXCJ0c1wiOmNhc2VcInR5cGVzY3JpcHRcIjpyZXR1cm4gbFsyXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLGIuanN4KShlTix7fSksbFsyXT1yKTpyPWxbMl0scjtjYXNlXCJqYXZhc2NyaXB0XCI6Y2FzZVwianNcIjpjYXNlXCJtanNcIjpyZXR1cm4gbFszXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhvPSgwLGIuanN4KShlTCx7fSksbFszXT1vKTpvPWxbM10sbztjYXNlXCJqc29uXCI6cmV0dXJuIGxbNF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oYT0oMCxiLmpzeCkoZUQse30pLGxbNF09YSk6YT1sWzRdLGE7ZGVmYXVsdDpyZXR1cm4gbFs1XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhpPSgwLGIuanN4KShlUix7fSksbFs1XT1pKTppPWxbNV0saX19ZnVuY3Rpb24gZUQoKXt2YXIgZSx0PSgwLEEuYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxiLmpzeCkoXCJzdmdcIix7Y2xpcFJ1bGU6XCJldmVub2RkXCIsZmlsbFJ1bGU6XCJldmVub2RkXCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDEzMjEuNDUgMTMzMy4zM1wiLHdpZHRoOlwiMTZcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJwYXRoXCIse2Q6XCJNMjIxLjM3IDYxOC40NGg3NTcuOTRWNDA1LjE1SDc1NS4xNGMtMjMuNSAwLTU2LjMyLTEyLjc0LTcxLjgyLTI4LjI0LTE1LjUtMTUuNS0yNS00My40Ny0yNS02Ni45N1Y4Mi44OUg4OC4zOWMtMS45OSAwLTMuNDkgMS00LjQ5IDItMS41IDEtMiAyLjUtMiA0LjV2MTE1NS4wNGMwIDEuNSAxIDMuNSAyIDQuNSAxIDEuNDkgMyAxLjk5IDQuNDkgMS45OUg5NzIuOGMyIDAgMS44OS0uOTkgMi44OS0xLjk5IDEuNS0xIDMuNjEtMyAzLjYxLTQuNXYtMTIxLjA5SDIyMS4zNmMtNDQuOTYgMC04Mi0zNi45LTgyLTgxLjk5VjcwMC40NGMwLTQ1LjEgMzYuOS04MiA4Mi04MnptMTI2LjUxIDExNy40N2g3NS4yNHYxNDYuNjFjMCAzMC43OS0yLjQ0IDU0LjIzLTcuMzMgNzAuMzEtNC45MiAxNi4wMy0xNC44IDI5LjY3LTI5LjY1IDQwLjg1LTE0Ljg2IDExLjEyLTMzLjkxIDE2LjcyLTU3LjA1IDE2LjcyLTI0LjUzIDAtNDMuNTEtMy43MS01Ni45NC0xMS4wNi0xMy41LTcuMzYtMjMuODktMTguMS0zMS4yMy0zMi4zLTcuMzUtMTQuMTQtMTEuNjktMzEuNjctMTIuOTktNTIuNTNsNzEuNS0xMC44MWMuMTEgMTEuODEgMS4wNyAyMC42MSAyLjgxIDI2LjMzIDEuNzYgNS43OCA0Ljc1IDEwLjM3IDkgMTMuOTUgMi44NyAyLjMzIDYuOTQgMy40NiAxMi4yNSAzLjQ2IDguNCAwIDE0LjU4LTMuNDYgMTguNTMtMTAuMzcgMy45LTYuOTIgNS44Ny0xOC42IDUuODctMzVWNzM1Ljkyem0xMTIuNzcgMTgwLjY3bDcxLjE3LTQuOTdjMS41NCAxMi44MSA0LjY5IDIyLjYyIDkuNDQgMjkuMjggNy43NCAxMC44OCAxOC43NCAxNi4zNCAzMy4wOSAxNi4zNCAxMC42OCAwIDE4LjkzLTIuNzYgMjQuNjgtOC4zNiA1LjgxLTUuNTggOC43LTEyLjA3IDguNy0xOS40MSAwLTYuOTctMi43MS0xMy4yNi04LjItMTguNzktNS40Ny01LjUzLTE4LjIzLTEwLjY4LTM4LjI4LTE1LjY1LTMyLjg5LTguMTctNTYuMjctMTkuMS03MC4yNi0zMi43NC0xNC4xMi0xMy41Ny0yMS4xOC0zMC45Mi0yMS4xOC01Mi4wMyAwLTEzLjgzIDMuNjEtMjYuODkgMTAuODUtMzkuMjEgNy4yMi0xMi4zOCAxOC4wNy0yMi4wNiAzMi41OS0yOS4wOSAxNC41Mi03LjA0IDM0LjQtMTAuNTYgNTkuNjUtMTAuNTYgMzEgMCA1NC42MiA2LjQxIDcwLjg4IDE5LjI5IDE2LjI4IDEyLjgxIDI1LjkyIDMzLjI0IDI5LjA0IDYxLjI3bC03MC41IDQuNjVjLTEuODctMTIuMjUtNS44MS0yMS4xNy0xMS44MS0yNi43LTYuMDUtNS42LTE0LjM1LTguMzYtMjQuOS04LjM2LTguNzEgMC0xNS4zMSAyLjA3LTE5LjczIDYuMTYtNC40IDQuMDktNi41OSA5LjEyLTYuNTkgMTUuMDIgMCA0LjI3IDEuODEgOC4xMSA1LjM3IDExLjU3IDMuNDUgMy41OSAxMS44IDYuODUgMjUuMDIgOS45MyAzMi43NSA3Ljg2IDU2LjIgMTUuODQgNzAuMzEgMjMuODcgMTQuMTggOC4wNSAyNC41MiAxNy45OCAzMC45NiAyOS45MiA2LjQ0IDExLjg4IDkuNjYgMjUuMiA5LjY2IDM5Ljk2IDAgMTcuMjktNC4zIDMzLjI0LTEyLjg4IDQ3Ljg5LTguNjMgMTQuNTgtMjAuNjEgMjUuNy0zNi4wOCAzMy4yNC0xNS40MSA3LjU0LTM0Ljg1IDExLjMxLTU4LjMzIDExLjMxLTQxLjI0IDAtNjkuODEtOC44Ni04NS42OC0yNi41Mi0xNS44OC0xNy42NS0yNC44NS00MC4wOS0yNi45Ni02Ny4zem0yNDguNzQtNDUuNWMwLTQ0LjA1IDExLjAyLTc4LjM2IDMzLjA5LTEwMi44NyAyMi4wOS0yNC41NyA1Mi44Mi0zNi44MiA5Mi4yNC0zNi44MiA0MC4zOCAwIDcxLjUgMTIuMDcgOTMuMzQgMzYuMTMgMjEuODYgMjQuMTMgMzIuNzcgNTcuOTQgMzIuNzcgMTAxLjM3IDAgMzEuNTQtNC43NSA1Ny4zNi0xNC4zIDc3LjU0LTkuNTQgMjAuMTgtMjMuMzcgMzUuODktNDEuNCA0Ny4xMy0xOC4wNyAxMS4yNC00MC41NSAxNi44NC02Ny40OCAxNi44NC0yNy4zMyAwLTQ5Ljk5LTQuODMtNjcuOTQtMTQuNTItMTcuOTItOS43NC0zMi40OS0yNS4wNy00My42Mi00Ni4wNi0xMS4xMy0yMC45Mi0xNi43Mi00Ny4xOS0xNi43Mi03OC43NHptNzQuODkuMTljMCAyNy4yMSA0LjU3IDQ2LjgxIDEzLjY4IDU4LjY4IDkuMTMgMTEuODggMjEuNTcgMTcuODUgMzcuMjYgMTcuODUgMTYuMSAwIDI4LjY1LTUuODQgMzcuNDUtMTcuNDcgOC44Ny0xMS42OCAxMy4yOC0zMi41NCAxMy4yOC02Mi43NyAwLTI1LjM5LTQuNjMtNDMuOTItMTMuODQtNTUuNjEtOS4yNi0xMS43Ni0yMS43NS0xNy42LTM3LjU2LTE3LjYtMTUuMTMgMC0yNy4zNCA1Ljk3LTM2LjQ5IDE3Ljg1LTkuMjEgMTEuODgtMTMuNzggMzEuNjEtMTMuNzggNTkuMDd6bTIwOS4wOC0xMzUuMzZoNjkuOTlsOTAuOTggMTQ5LjA1VjczNS45MWg3MC44M3YyNjkuOTZoLTcwLjgzbC05MC40OC0xNDguMjR2MTQ4LjI0aC03MC40OVY3MzUuOTF6bTY3LjcxLTExNy40N2gxNzguMzdjNDUuMSAwIDgyIDM3LjA0IDgyIDgydjM0MC45MWMwIDQ0Ljk2LTM3LjAzIDgxLjk5LTgyIDgxLjk5aC0xNzguMzd2MTQ3YzAgMTcuNS02Ljk5IDMyLjk5LTE4LjUgNDQuNS0xMS41IDExLjQ5LTI3IDE4LjUtNDQuNSAxOC41SDYyLjk3Yy0xNy41IDAtMzIuOTktNy00NC41LTE4LjUtMTEuNDktMTEuNS0xOC41LTI3LTE4LjUtNDQuNVY2My40OWMwLTE3LjUgNy0zMyAxOC41LTQ0LjVTNDUuOTcuNDkgNjIuOTcuNDlINzAwLjFjMS41LS41IDMtLjUgNC41LS41IDcgMCAxNCAzIDE5IDcuNDloMWMxIC41IDEuNSAxIDIuNSAybDMyNS40NiAzMjkuNDdjNS41IDUuNSA5LjUgMTMgOS41IDIxLjUgMCAyLjUtLjUgNC41LTEgN3YyNTAuOTh6TTczMi42MSAzMDMuNDdWOTYuOTlsMjMyLjQ4IDIzNS40N0g3NjEuNmMtNy45OSAwLTE0Ljk5LTMuNS0yMC41LTguNDktNC45OS01LTguNDktMTIuNS04LjQ5LTIwLjV6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSx0WzBdPWUpOmU9dFswXSxlfWZ1bmN0aW9uIGVMKCl7dmFyIGUsdD0oMCxBLmMpKDEpO3JldHVybiB0WzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGU9KDAsYi5qc3gpKFwic3ZnXCIse2hlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCA1MCA1MFwiLHdpZHRoOlwiMTZcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46KDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTSA0My4zMzU5MzggNCBMIDYuNjY3OTY5IDQgQyA1LjE5NTMxMyA0IDQgNS4xOTUzMTMgNCA2LjY2Nzk2OSBMIDQgNDMuMzMyMDMxIEMgNCA0NC44MDQ2ODggNS4xOTUzMTMgNDYgNi42Njc5NjkgNDYgTCA0My4zMzIwMzEgNDYgQyA0NC44MDQ2ODggNDYgNDYgNDQuODA0Njg4IDQ2IDQzLjMzNTkzOCBMIDQ2IDYuNjY3OTY5IEMgNDYgNS4xOTUzMTMgNDQuODA0Njg4IDQgNDMuMzM1OTM4IDQgWiBNIDI3IDM2LjE4MzU5NCBDIDI3IDQwLjE3OTY4OCAyNC42NTYyNSA0MiAyMS4yMzQzNzUgNDIgQyAxOC4xNDA2MjUgNDIgMTUuOTEwMTU2IDM5LjkyNTc4MSAxNSAzOCBMIDE4LjE0NDUzMSAzNi4wOTc2NTYgQyAxOC43NSAzNy4xNzE4NzUgMTkuNjcxODc1IDM4IDIxIDM4IEMgMjIuMjY5NTMxIDM4IDIzIDM3LjUwMzkwNiAyMyAzNS41NzQyMTkgTCAyMyAyMyBMIDI3IDIzIFogTSAzNS42NzU3ODEgNDIgQyAzMi4xMzI4MTMgNDIgMzAuMTIxMDk0IDQwLjIxNDg0NCAyOSAzOCBMIDMyIDM2IEMgMzIuODE2NDA2IDM3LjMzNTkzOCAzMy43MDcwMzEgMzguNjEzMjgxIDM1LjU4OTg0NCAzOC42MTMyODEgQyAzNy4xNzE4NzUgMzguNjEzMjgxIDM4IDM3LjgyNDIxOSAzOCAzNi43MzA0NjkgQyAzOCAzNS40MjU3ODEgMzcuMTQwNjI1IDM0Ljk2MDkzOCAzNS40MDIzNDQgMzQuMTk5MjE5IEwgMzQuNDQ5MjE5IDMzLjc4OTA2MyBDIDMxLjY5NTMxMyAzMi42MTcxODggMjkuODYzMjgxIDMxLjE0ODQzOCAyOS44NjMyODEgMjguMDM5MDYzIEMgMjkuODYzMjgxIDI1LjE3OTY4OCAzMi4wNDY4NzUgMjMgMzUuNDUzMTI1IDIzIEMgMzcuODc4OTA2IDIzIDM5LjYyMTA5NCAyMy44NDM3NSA0MC44Nzg5MDYgMjYuMDU0Njg4IEwgMzcuOTEwMTU2IDI3Ljk2NDg0NCBDIDM3LjI1MzkwNiAyNi43ODkwNjMgMzYuNTUwNzgxIDI2LjMyODEyNSAzNS40NTMxMjUgMjYuMzI4MTI1IEMgMzQuMzM1OTM4IDI2LjMyODEyNSAzMy42Mjg5MDYgMjcuMDM5MDYzIDMzLjYyODkwNiAyNy45NjQ4NDQgQyAzMy42Mjg5MDYgMjkuMTA5Mzc1IDM0LjMzNTkzOCAyOS41NzAzMTMgMzUuOTcyNjU2IDMwLjI4MTI1IEwgMzYuOTI1NzgxIDMwLjY5MTQwNiBDIDQwLjE3MTg3NSAzMi4wNzgxMjUgNDIgMzMuNDk2MDk0IDQyIDM2LjY4MzU5NCBDIDQyIDQwLjExNzE4OCAzOS4zMDA3ODEgNDIgMzUuNjc1NzgxIDQyIFpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gZU4oKXt2YXIgZSx0PSgwLEEuYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxiLmpzeHMpKFwic3ZnXCIse2ZpbGw6XCJub25lXCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDUxMiA1MTJcIix3aWR0aDpcIjE0XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOlsoMCxiLmpzeCkoXCJyZWN0XCIse2ZpbGw6XCJjdXJyZW50Q29sb3JcIixoZWlnaHQ6XCI1MTJcIixyeDpcIjUwXCIsd2lkdGg6XCI1MTJcIn0pLCgwLGIuanN4KShcInJlY3RcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGhlaWdodDpcIjUxMlwiLHJ4OlwiNTBcIix3aWR0aDpcIjUxMlwifSksKDAsYi5qc3gpKFwicGF0aFwiLHtjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwibTMxNi45MzkgNDA3LjQyNHY1MC4wNjFjOC4xMzggNC4xNzIgMTcuNzYzIDcuMyAyOC44NzUgOS4zODZzMjIuODIzIDMuMTI5IDM1LjEzNSAzLjEyOWMxMS45OTkgMCAyMy4zOTctMS4xNDcgMzQuMTk2LTMuNDQyIDEwLjc5OS0yLjI5NCAyMC4yNjgtNi4wNzUgMjguNDA2LTExLjM0MiA4LjEzOC01LjI2NiAxNC41ODEtMTIuMTUgMTkuMzI4LTIwLjY1czcuMTIxLTE5LjAwNyA3LjEyMS0zMS41MjJjMC05LjA3NC0xLjM1Ni0xNy4wMjYtNC4wNjktMjMuODU3cy02LjYyNS0xMi45MDYtMTEuNzM4LTE4LjIyNWMtNS4xMTItNS4zMTktMTEuMjQyLTEwLjA5MS0xOC4zODktMTQuMzE1cy0xNS4yMDctOC4yMTMtMjQuMTgtMTEuOTY3Yy02LjU3My0yLjcxMi0xMi40NjgtNS4zNDUtMTcuNjg1LTcuOS01LjIxNy0yLjU1Ni05LjY1MS01LjE2My0xMy4zMDMtNy44MjItMy42NTItMi42Ni02LjQ2OS01LjQ3Ni04LjQ1MS04LjQ0OC0xLjk4Mi0yLjk3My0yLjk3NC02LjMzNi0yLjk3NC0xMC4wOTEgMC0zLjQ0MS44ODctNi41NDQgMi42NjEtOS4zMDhzNC4yNzgtNS4xMzYgNy41MTItNy4xMThjMy4yMzUtMS45ODEgNy4xOTktMy41MiAxMS44OTQtNC42MTUgNC42OTYtMS4wOTUgOS45MTItMS42NDIgMTUuNjUxLTEuNjQyIDQuMTczIDAgOC41ODEuMzEzIDEzLjIyNC45MzggNC42NDMuNjI2IDkuMzEyIDEuNTkxIDE0LjAwOCAyLjg5NCA0LjY5NSAxLjMwNCA5LjI1OSAyLjk0NyAxMy42OTQgNC45MjggNC40MzQgMS45ODIgOC41MjkgNC4yNzYgMTIuMjg1IDYuODg0di00Ni43NzZjLTcuNjE2LTIuOTItMTUuOTM3LTUuMDg0LTI0Ljk2Mi02LjQ5MnMtMTkuMzgxLTIuMTEyLTMxLjA2Ni0yLjExMmMtMTEuODk1IDAtMjMuMTYzIDEuMjc4LTMzLjgwNSAzLjgzM3MtMjAuMDA2IDYuNTQ0LTI4LjA5MyAxMS45NjdjLTguMDg2IDUuNDI0LTE0LjQ3NiAxMi4zMzMtMTkuMTcxIDIwLjcyOS00LjY5NSA4LjM5NS03LjA0MyAxOC40MzMtNy4wNDMgMzAuMTE0IDAgMTQuOTE0IDQuMzA0IDI3LjYzOCAxMi45MTIgMzguMTcyIDguNjA3IDEwLjUzMyAyMS42NzUgMTkuNDUgMzkuMjA0IDI2Ljc1MSA2Ljg4NiAyLjgxNiAxMy4zMDMgNS41NzkgMTkuMjUgOC4yOTFzMTEuMDg2IDUuNTI4IDE1LjQxNSA4LjQ0OGM0LjMzIDIuOTIgNy43NDcgNi4xMDEgMTAuMjUyIDkuNTQzIDIuNTA0IDMuNDQxIDMuNzU2IDcuMzUyIDMuNzU2IDExLjczMyAwIDMuMjMzLS43ODMgNi4yMzEtMi4zNDggOC45OTVzLTMuOTM5IDUuMTYyLTcuMTIxIDcuMTk2LTcuMTQ3IDMuNjI0LTExLjg5NCA0Ljc3MWMtNC43NDggMS4xNDgtMTAuMzAzIDEuNzIxLTE2LjY2OCAxLjcyMS0xMC44NTEgMC0yMS41OTctMS45MDMtMzIuMjQtNS43MS0xMC42NDItMy44MDYtMjAuNTAyLTkuNTE2LTI5LjU3OS0xNy4xM3ptLTg0LjE1OS0xMjMuMzQyaDY0LjIydi00MS4wODJoLTE3OXY0MS4wODJoNjMuOTA2djE4Mi45MThoNTAuODc0elwiLGZpbGw6XCJ2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMClcIixmaWxsUnVsZTpcImV2ZW5vZGRcIn0pXX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gZVIoKXt2YXIgZSx0PSgwLEEuYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxiLmpzeCkoXCJzdmdcIix7d2lkdGg6XCIxNlwiLGhlaWdodDpcIjE3XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46KDAsYi5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTE0LjUgN3Y3YTIuNSAyLjUgMCAwIDEtMi41IDIuNUg0QTIuNSAyLjUgMCAwIDEgMS41IDE0Vi41aDcuNTg2YTEgMSAwIDAgMSAuNzA3LjI5M2w0LjQxNCA0LjQxNGExIDEgMCAwIDEgLjI5My43MDdWN3pNMTMgN3Y3YTEgMSAwIDAgMS0xIDFINGExIDEgMCAwIDEtMS0xVjJoNXY1aDV6TTkuNSAyLjYyMVY1LjVoMi44NzlMOS41IDIuNjIxelwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiBlTSgpe3ZhciBlLHQsbj0oMCxBLmMpKDIpO3JldHVybiBuWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGU9KDAsYi5qc3gpKFwiZ1wiLHtjbGlwUGF0aDpcInVybCgjZmlsZV9yZWFjdF9jbGlwMF84NzJfMzE4MylcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNC41IDEuOTM3ODJDNC43MDEyOSAxLjgyMTYxIDQuOTk0NzIgMS43ODU4IDUuNDEzMTUgMS45MTA1M0M1LjgzMjk4IDIuMDM1NjcgNi4zMzEzOSAyLjMxMDczIDYuODc2MjcgMi43Mzk0OEM3LjAxMTM2IDIuODQ1NzggNy4xNDgwMyAyLjk2MDUyIDcuMjg1NzMgMy4wODMzMUM2Ljg2MjE3IDMuNTM0NDYgNi40NDIzOSA0LjA0MzU4IDYuMDM3NTIgNC42MDA5MkM1LjM1MjQzIDQuNjcyODggNC43MDE2NCA0Ljc4MTg2IDQuMDk5MTYgNC45MjMwOUM0LjA2MTY3IDQuNzQyNDQgNC4wMzA2NCA0LjU2NjcxIDQuMDA2MTIgNC4zOTY1NkMzLjkwNzI1IDMuNzEwMzEgMy45MTgyNSAzLjE0MTE0IDQuMDE5NzkgMi43MTQ5OUM0LjEyMDk5IDIuMjkwMjUgNC4yOTg3MSAyLjA1NDA0IDQuNSAxLjkzNzgyWk03LjQ5NDY2IDEuOTUzNjFDNy42NjIyNSAyLjA4NTQ4IDcuODMwOTIgMi4yMjgwNCA3Ljk5OTk5IDIuMzgwNjdDOC4xNjkwNiAyLjIyODA0IDguMzM3NzMgMi4wODU0OCA4LjUwNTMyIDEuOTUzNjFDOS4xMDkyMSAxLjQ3ODQyIDkuNzE5ODIgMS4xMjU0OSAxMC4zMDEyIDAuOTUyMjAyQzEwLjg4MzkgMC43Nzg0OTYgMTEuNDgzOCAwLjc3MzggMTIgMS4wNzE4QzEyLjUxNjEgMS4zNjk4IDEyLjgxMiAxLjg5MTY5IDEyLjk1MyAyLjQ4MzIyQzEzLjA5MzYgMy4wNzMzMyAxMy4wOTMyIDMuNzc4NTggMTIuOTgzNiA0LjUzOTE3QzEyLjk1MzIgNC43NTAyNCAxMi45MTQxIDQuOTY3NiAxMi44NjY1IDUuMTkwMzRDMTMuMDgzMiA1LjI2MDQ0IDEzLjI5MSA1LjMzNTI0IDEzLjQ4OSA1LjQxNDQ0QzE0LjIwMjUgNS42OTk4MyAxNC44MTM0IDYuMDUyMTcgMTUuMjU0MiA2LjQ2ODk5QzE1LjY5NiA2Ljg4NjggMTYgNy40MDQgMTYgOEMxNiA4LjU5NiAxNS42OTYgOS4xMTMxOSAxNS4yNTQyIDkuNTMxMDFDMTQuODEzNCA5Ljk0NzgzIDE0LjIwMjUgMTAuMzAwMiAxMy40ODkgMTAuNTg1NkMxMy4yOTEgMTAuNjY0OCAxMy4wODMyIDEwLjczOTYgMTIuODY2NSAxMC44MDk3QzEyLjkxNDEgMTEuMDMyNCAxMi45NTMyIDExLjI0OTggMTIuOTgzNyAxMS40NjA4QzEzLjA5MzIgMTIuMjIxNCAxMy4wOTM2IDEyLjkyNjcgMTIuOTUzIDEzLjUxNjhDMTIuODEyIDE0LjEwODMgMTIuNTE2MSAxNC42MzAyIDEyIDE0LjkyODJDMTEuNDgzOSAxNS4yMjYyIDEwLjg4MzkgMTUuMjIxNSAxMC4zMDEyIDE1LjA0NzhDOS43MTk4NCAxNC44NzQ1IDkuMTA5MjMgMTQuNTIxNiA4LjUwNTM0IDE0LjA0NjRDOC4zMzc3NSAxMy45MTQ1IDguMTY5MDYgMTMuNzcxOSA3Ljk5OTk5IDEzLjYxOTNDNy44MzA5MSAxMy43NzE5IDcuNjYyMjMgMTMuOTE0NSA3LjQ5NDY0IDE0LjA0NjRDNi44OTA3NSAxNC41MjE2IDYuMjgwMTQgMTQuODc0NSA1LjY5ODc5IDE1LjA0NzhDNS4xMTYwNSAxNS4yMjE1IDQuNTE2MTMgMTUuMjI2MiAzLjk5OTk4IDE0LjkyODJDMy40ODM4MyAxNC42MzAyIDMuMTg3OTQgMTQuMTA4MyAzLjA0NyAxMy41MTY4QzIuOTA2NCAxMi45MjY3IDIuOTA2NzQgMTIuMjIxNCAzLjAxNjMyIDExLjQ2MDhDMy4wNDY3MyAxMS4yNDk4IDMuMDg1ODYgMTEuMDMyNCAzLjEzMzUxIDEwLjgwOTdDMi45MTY3OSAxMC43Mzk1IDIuNzA5IDEwLjY2NDggMi41MTEgMTAuNTg1NkMxLjc5NzUyIDEwLjMwMDIgMS4xODY1OCA5Ljk0NzgzIDAuNzQ1ODMzIDkuNTMxMDFDMC4zMDQwMjggOS4xMTMxOSAwIDguNTk2IDAgOEMwIDcuNDA0IDAuMzA0MDI4IDYuODg2OCAwLjc0NTgzMyA2LjQ2ODk5QzEuMTg2NTggNi4wNTIxNyAxLjc5NzUyIDUuNjk5ODMgMi41MTEgNS40MTQ0NEMyLjcwOSA1LjMzNTI0IDIuOTE2OCA1LjI2MDQ0IDMuMTMzNTIgNS4xOTAzNEMzLjA4NTg3IDQuOTY3NiAzLjA0Njc1IDQuNzUwMjQgMy4wMTYzNCA0LjUzOTE3QzIuOTA2NzYgMy43Nzg1OCAyLjkwNjQyIDMuMDczMzIgMy4wNDcwMiAyLjQ4MzIxQzMuMTg3OTYgMS44OTE2OSAzLjQ4Mzg1IDEuMzY5OCA0IDEuMDcxOEM0LjUxNjE1IDAuNzczNzk4IDUuMTE2MDcgMC43Nzg0OTUgNS42OTg4MSAwLjk1MjIwMUM2LjI4MDE2IDEuMTI1NDkgNi44OTA3NyAxLjQ3ODQxIDcuNDk0NjYgMS45NTM2MVpNNy4zNjc0NyA0LjUxMDI1QzcuNTc3MzUgNC4yNTE5NCA3Ljc4ODgxIDQuMDA5MjcgNy45OTk5OSAzLjc4MzU2QzguMjExMTcgNC4wMDkyNyA4LjQyMjYzIDQuMjUxOTQgOC42MzI1MSA0LjUxMDI1QzguNDIzNjkgNC41MDM0NiA4LjIxMjc0IDQuNSA4IDQuNUM3Ljc4NzI1IDQuNSA3LjU3NjMgNC41MDM0NSA3LjM2NzQ3IDQuNTEwMjVaTTguNzE0MjUgMy4wODMzMUM5LjEzNzgxIDMuNTM0NDcgOS41NTc1OSA0LjA0MzU4IDkuOTYyNDYgNC42MDA5MkMxMC42NDc1IDQuNjcyODggMTEuMjk4MyA0Ljc4MTg2IDExLjkwMDggNC45MjMwOUMxMS45MzgzIDQuNzQyNDQgMTEuOTY5MyA0LjU2NjcxIDExLjk5MzkgNC4zOTY1N0MxMi4wOTI3IDMuNzEwMzEgMTIuMDgxNyAzLjE0MTE0IDExLjk4MDIgMi43MTQ5OUMxMS44NzkgMi4yOTAyNSAxMS43MDEzIDIuMDU0MDQgMTEuNSAxLjkzNzgyQzExLjI5ODcgMS44MjE2MSAxMS4wMDUzIDEuNzg1OCAxMC41ODY4IDEuOTEwNTNDMTAuMTY3IDIuMDM1NjggOS42Njg1OSAyLjMxMDczIDkuMTIzNzEgMi43Mzk0OEM4Ljk4ODYyIDIuODQ1NzggOC44NTE5NiAyLjk2MDUyIDguNzE0MjUgMy4wODMzMVpNOCA1LjVDOC40ODQzMyA1LjUgOC45NTYzOCA1LjUxODg1IDkuNDExODggNS41NTQ1NkM5LjY3MDU2IDUuOTMxMTggOS45MjI5IDYuMzMwNTYgMTAuMTY1MSA2Ljc1QzEwLjQwNzIgNy4xNjk0NCAxMC42MjY5IDcuNTg3NjYgMTAuODIzNyA3Ljk5OTk4QzEwLjYyNjkgOC40MTIzMiAxMC40MDcyIDguODMwNTUgMTAuMTY1IDkuMjVDOS45MjI4OCA5LjY2OTQ0IDkuNjcwNTMgMTAuMDY4OCA5LjQxMTg1IDEwLjQ0NTRDOC45NTYzNiAxMC40ODEyIDguNDg0MzIgMTAuNSA4IDEwLjVDNy41MTU2NyAxMC41IDcuMDQzNjMgMTAuNDgxMiA2LjU4ODEzIDEwLjQ0NTRDNi4zMjk0NSAxMC4wNjg4IDYuMDc3MSA5LjY2OTQ0IDUuODM0OTQgOS4yNUM1LjU5Mjc3IDguODMwNTUgNS4zNzMwNiA4LjQxMjMyIDUuMTc2MjQgNy45OTk5OEM1LjM3MzA2IDcuNTg3NjUgNS41OTI3NSA3LjE2OTQ0IDUuODM0OTIgNi43NUM2LjA3NzA4IDYuMzMwNTYgNi4zMjk0MiA1LjkzMTE4IDYuNTg4MSA1LjU1NDU2QzcuMDQzNjEgNS41MTg4NCA3LjUxNTY2IDUuNSA4IDUuNVpNMTEuMDMxMSA2LjI1QzExLjEzNzUgNi40MzQyMyAxMS4yMzk5IDYuNjE4NjQgMTEuMzM4NSA2LjgwMjg3QzExLjQ1NzIgNi40OTE5NyAxMS41NjE2IDYuMTg3NTIgMTEuNjUxNSA1Ljg5MTc4QzExLjM1MDUgNS44MjE3NSAxMS4wMzQ2IDUuNzU5OTYgMTAuNzA2IDUuNzA3MzZDMTAuODE2MyA1Ljg4NDggMTAuOTI0NyA2LjA2NTc2IDExLjAzMTEgNi4yNVpNMTEuMDMxMSA5Ljc1QzExLjEzNzQgOS41NjU3NiAxMS4yMzk5IDkuMzgxMzMgMTEuMzM4NSA5LjE5NzA5QzExLjQ1NzIgOS41MDgwMSAxMS41NjE3IDkuODEyNDYgMTEuNjUxNSAxMC4xMDgyQzExLjM1MDUgMTAuMTc4MiAxMS4wMzQ2IDEwLjI0IDEwLjcwNTkgMTAuMjkyNkMxMC44MTYyIDEwLjExNTIgMTAuOTI0NyA5LjkzNDI0IDExLjAzMTEgOS43NVpNMTEuOTI0OSA3Ljk5OTk4QzEyLjIwNTEgOC42MjkyNyAxMi40MzYyIDkuMjQ3MzggMTIuNjE1MSA5LjgzOTc3QzEyLjc5MDMgOS43ODE5MSAxMi45NTggOS43MjA5MiAxMy4xMTc2IDkuNjU3MDhDMTMuNzYxNCA5LjM5OTU4IDE0LjI0ODggOS4xMDU0NyAxNC41NjcxIDguODA0NDZDMTQuODg0MyA4LjUwNDQ1IDE1IDguMjMyNDMgMTUgOEMxNSA3Ljc2NzU3IDE0Ljg4NDMgNy40OTU1NSAxNC41NjcxIDcuMTk1NTRDMTQuMjQ4OCA2Ljg5NDUzIDEzLjc2MTQgNi42MDA0MiAxMy4xMTc2IDYuMzQyOTJDMTIuOTU4IDYuMjc5MDcgMTIuNzkwMyA2LjIxODA4IDEyLjYxNTEgNi4xNjAyMkMxMi40MzYyIDYuNzUyNiAxMi4yMDUxIDcuMzcwNjkgMTEuOTI0OSA3Ljk5OTk4Wk05Ljk2MjQ0IDExLjM5OTFDMTAuNjQ3NSAxMS4zMjcxIDExLjI5ODMgMTEuMjE4MSAxMS45MDA4IDExLjA3NjlDMTEuOTM4MyAxMS4yNTc2IDExLjk2OTQgMTEuNDMzMyAxMS45OTM5IDExLjYwMzRDMTIuMDkyOCAxMi4yODk3IDEyLjA4MTcgMTIuODU4OSAxMS45ODAyIDEzLjI4NUMxMS44NzkgMTMuNzA5OCAxMS43MDEzIDEzLjk0NiAxMS41IDE0LjA2MjJDMTEuMjk4NyAxNC4xNzg0IDExLjAwNTMgMTQuMjE0MiAxMC41ODY4IDE0LjA4OTVDMTAuMTY3IDEzLjk2NDMgOS42Njg2MSAxMy42ODkzIDkuMTIzNzMgMTMuMjYwNUM4Ljk4ODYzIDEzLjE1NDIgOC44NTE5NiAxMy4wMzk1IDguNzE0MjQgMTIuOTE2N0M5LjEzNzggMTIuNDY1NSA5LjU1NzU4IDExLjk1NjQgOS45NjI0NCAxMS4zOTkxWk04LjYzMjQ5IDExLjQ4OThDOC40MjI2MiAxMS43NDgxIDguMjExMTYgMTEuOTkwNyA3Ljk5OTk5IDEyLjIxNjRDNy43ODg4MSAxMS45OTA3IDcuNTc3MzcgMTEuNzQ4MSA3LjM2NzQ5IDExLjQ4OTdDNy41NzYzMSAxMS40OTY1IDcuNzg3MjYgMTEuNSA4IDExLjVDOC4yMTI3MyAxMS41IDguNDIzNjcgMTEuNDk2NSA4LjYzMjQ5IDExLjQ4OThaTTQuOTY4OTEgOS43NUM1LjA3NTI4IDkuOTM0MjQgNS4xODM3NSAxMC4xMTUyIDUuMjk0MDQgMTAuMjkyNkM0Ljk2NTQgMTAuMjQgNC42NDk1MSAxMC4xNzgyIDQuMzQ4NDQgMTAuMTA4MkM0LjQzODMzIDkuODEyNDYgNC41NDI3NiA5LjUwOCA0LjY2MTUyIDkuMTk3MDhDNC43NjAwNSA5LjM4MTMzIDQuODYyNTQgOS41NjU3NSA0Ljk2ODkxIDkuNzVaTTYuMDM3NTQgMTEuMzk5MUM1LjM1MjQ0IDExLjMyNzEgNC43MDE2MyAxMS4yMTgxIDQuMDk5MTQgMTEuMDc2OUM0LjA2MTY1IDExLjI1NzYgNC4wMzA2MiAxMS40MzMzIDQuMDA2MSAxMS42MDM0QzMuOTA3MjMgMTIuMjg5NyAzLjkxODIzIDEyLjg1ODkgNC4wMTk3NyAxMy4yODVDNC4xMjA5NyAxMy43MDk4IDQuMjk4NjkgMTMuOTQ2IDQuNDk5OTggMTQuMDYyMkM0LjcwMTI3IDE0LjE3ODQgNC45OTQ3IDE0LjIxNDIgNS40MTMxMyAxNC4wODk1QzUuODMyOTYgMTMuOTY0MyA2LjMzMTM3IDEzLjY4OTMgNi44NzYyNSAxMy4yNjA1QzcuMDExMzUgMTMuMTU0MiA3LjE0ODAyIDEzLjAzOTUgNy4yODU3MyAxMi45MTY3QzYuODYyMTcgMTIuNDY1NSA2LjQ0MjQgMTEuOTU2NCA2LjAzNzU0IDExLjM5OTFaTTQuMDc1MDcgNy45OTk5OEMzLjc5NDg0IDguNjI5MjcgMy41NjM4MSA5LjI0NzM3IDMuMzg0ODkgOS44Mzk3N0MzLjIwOTY5IDkuNzgxOTEgMy4wNDIgOS43MjA5MiAyLjg4MjM5IDkuNjU3MDhDMi4yMzg2NCA5LjM5OTU4IDEuNzUxMjMgOS4xMDU0NyAxLjQzMjk0IDguODA0NDZDMS4xMTU3MSA4LjUwNDQ1IDEgOC4yMzI0MyAxIDhDMSA3Ljc2NzU3IDEuMTE1NzEgNy40OTU1NSAxLjQzMjk0IDcuMTk1NTRDMS43NTEyMyA2Ljg5NDUzIDIuMjM4NjQgNi42MDA0MiAyLjg4MjM5IDYuMzQyOTJDMy4wNDIgNi4yNzkwNyAzLjIwOTcgNi4yMTgwOCAzLjM4NDkgNi4xNjAyMkMzLjU2MzgzIDYuNzUyNjEgMy43OTQ4NCA3LjM3MDY5IDQuMDc1MDcgNy45OTk5OFpNNC42NjE1MiA2LjgwMjg3QzQuNTQyNzcgNi40OTE5NyA0LjQzODM1IDYuMTg3NTIgNC4zNDg0NiA1Ljg5MTc4QzQuNjQ5NTIgNS44MjE3NSA0Ljk2NTM5IDUuNzU5OTYgNS4yOTQwMiA1LjcwNzM2QzUuMTgzNzMgNS44ODQ4IDUuMDc1MjYgNi4wNjU3NiA0Ljk2ODg5IDYuMjVDNC44NjI1MyA2LjQzNDIzIDQuNzYwMDUgNi42MTg2NCA0LjY2MTUyIDYuODAyODdaTTkuMjUgOEM5LjI1IDguNjkwMzYgOC42OTAzNiA5LjI1IDggOS4yNUM3LjMwOTY0IDkuMjUgNi43NSA4LjY5MDM2IDYuNzUgOEM2Ljc1IDcuMzA5NjUgNy4zMDk2NCA2Ljc1IDggNi43NUM4LjY5MDM2IDYuNzUgOS4yNSA3LjMwOTY1IDkuMjUgOFpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pLG5bMF09ZSk6ZT1uWzBdLG5bMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxiLmpzeHMpKFwic3ZnXCIse2hlaWdodDpcIjE2XCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIix3aWR0aDpcIjE2XCIsY2hpbGRyZW46W2UsKDAsYi5qc3gpKFwiZGVmc1wiLHtjaGlsZHJlbjooMCxiLmpzeCkoXCJjbGlwUGF0aFwiLHtpZDpcImZpbGVfcmVhY3RfY2xpcDBfODcyXzMxODNcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJyZWN0XCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJ3aGl0ZVwifSl9KX0pXX0pLG5bMV09dCk6dD1uWzFdLHR9dmFyIGVaPV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvYW5zZXIvaW5kZXguanNcIiksZVU9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGVaKSxlRj1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2kvaW5kZXguanNcIiksZXE9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGVGKTtmdW5jdGlvbiBlSChlKXt2YXIgdD1lLnNwbGl0KC9cXHI/XFxuL2cpLG49dC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PT0vXj4/ICtcXGQrICtcXHwgWyBdKy8uZXhlYyhlcSgpKGUpKT9udWxsOi9ePj8gK1xcZCsgK1xcfCAoICopLy5leGVjKGVxKCkoZSkpfSkuZmlsdGVyKEJvb2xlYW4pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5wb3AoKX0pLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBpc05hTihlKT90Lmxlbmd0aDpNYXRoLm1pbihlLHQubGVuZ3RoKX0sTmFOKTtyZXR1cm4gbj4xP3QubWFwKGZ1bmN0aW9uKGUsdCl7cmV0dXJufih0PWUuaW5kZXhPZihcInxcIikpP2Uuc3Vic3RyaW5nKDAsdCkrZS5zdWJzdHJpbmcodCkucmVwbGFjZShcIl5cXFxcIHtcIi5jb25jYXQobixcIn1cIiksXCJcIik6ZX0pLmpvaW4oXCJcXG5cIik6dC5qb2luKFwiXFxuXCIpfWZ1bmN0aW9uIGVWKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiBlJChlKXt2YXIgdCxuLHIsbz1lLnN0YWNrRnJhbWUsYT1lLmNvZGVGcmFtZSxpPSgwLHgudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4oZnVuY3Rpb24oZSl7dmFyIHQ9ZVUoKS5hbnNpVG9Kc29uKGUse2pzb246ITAsdXNlX2NsYXNzZXM6ITAscmVtb3ZlX2VtcHR5OiEwfSksbj1bXSxyPVtdLG89ITAsYT0hMSxpPXZvaWQgMDt0cnl7Zm9yKHZhciBsLHM9dFtTeW1ib2wuaXRlcmF0b3JdKCk7IShvPShsPXMubmV4dCgpKS5kb25lKTtvPSEwKXt2YXIgYz1sLnZhbHVlO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBjLmNvbnRlbnQmJmMuY29udGVudC5pbmNsdWRlcyhcIlxcblwiKSlmb3IodmFyIHU9Yy5jb250ZW50LnNwbGl0KFwiXFxuXCIpLGQ9MDtkPHUubGVuZ3RoO2QrKyl7dmFyIGY9dVtkXTtmJiZyLnB1c2goZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfShmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGMpLHtjb250ZW50OmZ9KSksZDx1Lmxlbmd0aC0xJiYobi5wdXNoKHIpLHI9W10pfWVsc2Ugci5wdXNoKGMpfX1jYXRjaChlKXthPSEwLGk9ZX1maW5hbGx5e3RyeXtvfHxudWxsPT1zLnJldHVybnx8cy5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgaX19cmV0dXJuIHIubGVuZ3RoPjAmJm4ucHVzaChyKSxufSkoZUgoYSkpLm1hcChmdW5jdGlvbihlKXt2YXIgdCxuLHIsYSxpLGwscyxjLHU7cmV0dXJue2xpbmU6ZSxwYXJzZWRMaW5lOih0PWUsbj1vLCgobnVsbD09KHI9dFswXSk/dm9pZCAwOnIuY29udGVudCk9PT1cIj5cInx8KG51bGw9PShhPXRbMF0pP3ZvaWQgMDphLmNvbnRlbnQpPT09XCIgXCIpJiYocz1udWxsPT0obD10WzFdKXx8bnVsbD09KHU9bC5jb250ZW50KXx8bnVsbD09KGM9dS5yZXBsYWNlKFwifFwiLFwiXCIpKT92b2lkIDA6Yy50cmltKCkpLHtsaW5lTnVtYmVyOnMsaXNFcnJvcmVkTGluZTpzPT09KG51bGw9PShpPW4ubGluZTEpP3ZvaWQgMDppLnRvU3RyaW5nKCkpfSl9fSl9LFthLG9dKSxsPWVTKHtmaWxlOm8uZmlsZSxsaW5lMTpudWxsIT0obj1vLmxpbmUxKT9uOjEsY29sdW1uMTpudWxsIT0ocj1vLmNvbHVtbjEpP3I6MX0pLHM9bnVsbD09b3x8bnVsbD09KHQ9by5maWxlKT92b2lkIDA6dC5zcGxpdChcIi5cIikucG9wKCk7cmV0dXJuKDAsYi5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNvZGVmcmFtZVwiOiEwLGNoaWxkcmVuOlsoMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1oZWFkZXJcIixjaGlsZHJlbjooMCxiLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWxpbmtcIixjaGlsZHJlbjpbKDAsYi5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWljb25cIixjaGlsZHJlbjooMCxiLmpzeCkoZVQse2xhbmc6c30pfSksKDAsYi5qc3hzKShcInNwYW5cIix7XCJkYXRhLXRleHRcIjohMCxjaGlsZHJlbjpbZWoobyksXCIgQFwiLFwiIFwiLCgwLGIuanN4KShldix7dGV4dDpvLm1ldGhvZE5hbWV9KV19KSwoMCxiLmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWxhYmVsXCI6XCJPcGVuIGluIGVkaXRvclwiLFwiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstc291cmNlLWZpbGVcIjohMCxvbkNsaWNrOmwsY2hpbGRyZW46KDAsYi5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWljb25cIixcImRhdGEtaWNvblwiOlwicmlnaHRcIixjaGlsZHJlbjooMCxiLmpzeCkoZUkse3dpZHRoOjE2LGhlaWdodDoxNn0pfSl9KV19KX0pLCgwLGIuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLXByZVwiLGNoaWxkcmVuOigwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWxpbmVzXCIsY2hpbGRyZW46aS5tYXAoZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89ZS5saW5lLGE9ZS5wYXJzZWRMaW5lLGk9YS5saW5lTnVtYmVyLGw9YS5pc0Vycm9yZWRMaW5lLHM9e307cmV0dXJuIGkmJihzW1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLWxpbmVcIl09aSksbCYmKHNbXCJkYXRhLW5leHRqcy1jb2RlZnJhbWUtbGluZS0tZXJyb3JlZFwiXT0hMCksKDAsYi5qc3gpKFwiZGl2XCIsKG49ZVYoe30scykscj1yPXtjaGlsZHJlbjpvLm1hcChmdW5jdGlvbihlLHQpe3JldHVybigwLGIuanN4KShcInNwYW5cIix7c3R5bGU6ZVYoe2NvbG9yOmUuZmc/XCJ2YXIoLS1jb2xvci1cIi5jb25jYXQoZS5mZyxcIilcIik6dm9pZCAwfSxcImJvbGRcIj09PWUuZGVjb3JhdGlvbj97Zm9udFdlaWdodDo1MDB9OlwiaXRhbGljXCI9PT1lLmRlY29yYXRpb24/e2ZvbnRTdHlsZTpcIml0YWxpY1wifTp2b2lkIDApLGNoaWxkcmVuOmUuY29udGVudH0sXCJmcmFtZS1cIi5jb25jYXQodCkpfSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMocikpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QocikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsZSkpfSksbiksXCJsaW5lLVwiLmNvbmNhdCh0KSl9KX0pfSldfSl9dmFyIGVXPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaSxsPSgwLEEuYykoOCk7cmV0dXJuKGxbMF0hPT1lPyhhPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdKSxyPWUuY2hpbGRyZW4sbz1lLmNsYXNzTmFtZSxsWzBdPWUsbFsxXT1yLGxbMl09byxsWzNdPWEpOihyPWxbMV0sbz1sWzJdLGE9bFszXSksbFs0XSE9PXJ8fGxbNV0hPT1vfHxsWzZdIT09YSk/KGk9KDAsYi5qc3gpKFwiZGl2XCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1kaWFsb2ctYm9keVwiOiEwLGNsYXNzTmFtZTpvfSxhKSxuPW49e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSksdCkpLGxbNF09cixsWzVdPW8sbFs2XT1hLGxbN109aSk6aT1sWzddLGl9LGVZPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaSxsPSgwLEEuYykoOCk7cmV0dXJuKGxbMF0hPT1lPyhhPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdKSxyPWUuY2hpbGRyZW4sbz1lLmNsYXNzTmFtZSxsWzBdPWUsbFsxXT1yLGxbMl09byxsWzNdPWEpOihyPWxbMV0sbz1sWzJdLGE9bFszXSksbFs0XSE9PXJ8fGxbNV0hPT1vfHxsWzZdIT09YSk/KGk9KDAsYi5qc3gpKFwiZGl2XCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudFwiOiEwLGNsYXNzTmFtZTpvfSxhKSxuPW49e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSksdCkpLGxbNF09cixsWzVdPW8sbFs2XT1hLGxbN109aSk6aT1sWzddLGl9O2Z1bmN0aW9uIGVLKCl7dmFyIGUsdCxuPShlPVtcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1yb290XSB7XFxuICAgIC0tbmV4dC1kaWFsb2ctcmFkaXVzOiB2YXIoLS1yb3VuZGVkLXhsKTtcXG4gICAgLS1uZXh0LWRpYWxvZy1tYXgtd2lkdGg6IDk2MHB4O1xcbiAgICAtLW5leHQtZGlhbG9nLXJvdy1wYWRkaW5nOiAxNnB4O1xcbiAgICAtLW5leHQtZGlhbG9nLXBhZGRpbmc6IDEycHg7XFxuICAgIC0tbmV4dC1kaWFsb2ctbm90Y2gtaGVpZ2h0OiA0MnB4O1xcbiAgICAtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aDogMXB4O1xcblxcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gNTZweCk7XFxuICAgIG1heC13aWR0aDogdmFyKC0tbmV4dC1kaWFsb2ctbWF4LXdpZHRoKTtcXG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgc2NhbGU6IDAuOTc7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHNjYWxlLCBvcGFjaXR5O1xcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKTtcXG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLXRpbWluZy1vdmVybGF5KTtcXG5cXG4gICAgJltkYXRhLXJlbmRlcmVkPSd0cnVlJ10ge1xcbiAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgc2NhbGU6IDE7XFxuICAgIH1cXG5cXG4gICAgW2RhdGEtbmV4dGpzLXNjcm9sbC1mYWRlcl1bZGF0YS1zaWRlPSd0b3AnXSB7XFxuICAgICAgbGVmdDogMXB4O1xcbiAgICAgIHRvcDogY2FsYyhcXG4gICAgICAgIHZhcigtLW5leHQtZGlhbG9nLW5vdGNoLWhlaWdodCkgKyB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpXFxuICAgICAgKTtcXG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tbmV4dC1kaWFsb2ctcGFkZGluZykpO1xcbiAgICAgIG9wYWNpdHk6IDA7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcXG4gICAgb3V0bGluZTogMDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3BdIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS10aW1pbmctb3ZlcmxheSk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcXG4gICAgbWFyZ2luOiA4cHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldW2RhdGEtcmVuZGVyZWQ9J3RydWUnXVxcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdIHtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgcGFkZGluZzogdmFyKC0tbmV4dC1kaWFsb2ctcGFkZGluZyk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdID4gW2RhdGEtbmV4dGpzLWRpYWxvZy1oZWFkZXJdIHtcXG4gICAgZmxleC1zaHJpbms6IDA7XFxuICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudF0gPiBbZGF0YS1uZXh0anMtZGlhbG9nLWJvZHldIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gIH1cXG5cXG4gIEBtZWRpYSAobWF4LWhlaWdodDogODEycHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMTVweCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLXJvb3RdIHtcXG4gICAgICAtLW5leHQtZGlhbG9nLW1heC13aWR0aDogNTQwcHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLXJvb3RdIHtcXG4gICAgICAtLW5leHQtZGlhbG9nLW1heC13aWR0aDogNzIwcHg7XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLXJvb3RdIHtcXG4gICAgICAtLW5leHQtZGlhbG9nLW1heC13aWR0aDogOTYwcHg7XFxuICAgIH1cXG4gIH1cXG5cIl0sdHx8KHQ9ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9fSkpKTtyZXR1cm4gZUs9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sbn12YXIgZVg9ZXMoZUsoKSk7ZnVuY3Rpb24gZUcoKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PUFycmF5KGUpLG49MDtuPGU7bisrKXRbbl09YXJndW1lbnRzW25dO3JldHVybiB0LmZpbHRlcihCb29sZWFuKS5qb2luKFwiIFwiKX1mdW5jdGlvbiBlUShlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gZUooZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfWZ1bmN0aW9uIGUwKGUsdCl7cmV0dXJuIHQ9bnVsbCE9dD90Ont9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbikpfSksZX1mdW5jdGlvbiBlMShlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSwhdHx8YS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gZVEoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gZVEoZSx0KX19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gZTIoZSx0KXtyZXR1cm5cInJlc2V0XCI9PT10LnR5cGU/e3N0YXRlOlwiaW5pdGlhbFwifTpcImNvcGllZFwiPT09dC50eXBlP3tzdGF0ZTpcInN1Y2Nlc3NcIn06XCJjb3B5aW5nXCI9PT10LnR5cGU/e3N0YXRlOlwicGVuZGluZ1wifTpcImVycm9yXCI9PT10LnR5cGU/e3N0YXRlOlwiZXJyb3JcIixlcnJvcjp0LmVycm9yfTplfWZ1bmN0aW9uIGU0KGUpe3JldHVybntzdGF0ZTpcImVycm9yXCIsZXJyb3I6ZX19ZnVuY3Rpb24gZTUoKXtyZXR1cm57c3RhdGU6XCJzdWNjZXNzXCJ9fXZhciBlMz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB4LnVzZUFjdGlvblN0YXRlP2Z1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaT0oMCxBLmMpKDgpO2lbMF0hPT1lPyh0PWZ1bmN0aW9uKHQsbil7cmV0dXJuXCJyZXNldFwiPT09bj97c3RhdGU6XCJpbml0aWFsXCJ9OlwiY29weVwiPT09bj9uYXZpZ2F0b3IuY2xpcGJvYXJkP25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oZTUsZTQpOntzdGF0ZTpcImVycm9yXCIsZXJyb3I6XCJDb3B5IHRvIGNsaXBib2FyZCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwifTp0fSxpWzBdPWUsaVsxXT10KTp0PWlbMV0saVsyXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhuPXtzdGF0ZTpcImluaXRpYWxcIn0saVsyXT1uKTpuPWlbMl07dmFyIGw9ZTEoeC51c2VBY3Rpb25TdGF0ZSh0LG4pLDMpLHM9bFswXSxjPWxbMV0sdT1sWzJdO2lbM109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj1mdW5jdGlvbigpe3guc3RhcnRUcmFuc2l0aW9uKGZ1bmN0aW9uKCl7YyhcImNvcHlcIil9KX0saVszXT1yKTpyPWlbM107dmFyIGQ9cjtpWzRdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG89ZnVuY3Rpb24oKXtjKFwicmVzZXRcIil9LGlbNF09byk6bz1pWzRdO3ZhciBmPW87cmV0dXJuIGlbNV0hPT1zfHxpWzZdIT09dT8oYT1bcyxkLGYsdV0saVs1XT1zLGlbNl09dSxpWzddPWEpOmE9aVs3XSxhfTpmdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxhLGksbD0oMCxBLmMpKDEyKTtsWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9e3N0YXRlOlwiaW5pdGlhbFwifSxsWzBdPXQpOnQ9bFswXTt2YXIgcz1lMSh4LnVzZVJlZHVjZXIoZTIsdCksMiksYz1zWzBdLHU9c1sxXTtyZXR1cm4gbFsxXSE9PWV8fGxbMl0hPT1jLnN0YXRlPyhuPWZ1bmN0aW9uKCl7cnx8KG5hdmlnYXRvci5jbGlwYm9hcmQ/KHUoe3R5cGU6XCJjb3B5aW5nXCJ9KSxuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlKS50aGVuKGZ1bmN0aW9uKCl7dSh7dHlwZTpcImNvcGllZFwifSl9LGZ1bmN0aW9uKGUpe3Uoe3R5cGU6XCJlcnJvclwiLGVycm9yOmV9KX0pKTp1KHt0eXBlOlwiZXJyb3JcIixlcnJvcjpcIkNvcHkgdG8gY2xpcGJvYXJkIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCJ9KSl9LGxbNl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oYT1mdW5jdGlvbigpe3Uoe3R5cGU6XCJyZXNldFwifSl9LGxbNl09YSk6YT1sWzZdLG89YSxyPVwicGVuZGluZ1wiPT09Yy5zdGF0ZSxsWzFdPWUsbFsyXT1jLnN0YXRlLGxbM109bixsWzRdPXIsbFs1XT1vKToobj1sWzNdLHI9bFs0XSxvPWxbNV0pLGxbN10hPT1ufHxsWzhdIT09Y3x8bFs5XSE9PXJ8fGxbMTBdIT09bz8oaT1bYyxuLG8scl0sbFs3XT1uLGxbOF09YyxsWzldPXIsbFsxMF09byxsWzExXT1pKTppPWxbMTFdLGl9O2Z1bmN0aW9uIGU2KGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYyx1LGQsZixwLGgsbSxnLHksdj0oMCxBLmMpKDQwKTt2WzBdIT09ZT8oaT1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wiY29udGVudFwiLFwiZ2V0Q29udGVudFwiLFwiYWN0aW9uTGFiZWxcIixcInN1Y2Nlc3NMYWJlbFwiLFwiaWNvblwiLFwiZGlzYWJsZWRcIl0pLG49ZS5jb250ZW50LG89ZS5nZXRDb250ZW50LHQ9ZS5hY3Rpb25MYWJlbCxsPWUuc3VjY2Vzc0xhYmVsLGE9ZS5pY29uLHI9ZS5kaXNhYmxlZCx2WzBdPWUsdlsxXT10LHZbMl09bix2WzNdPXIsdls0XT1vLHZbNV09YSx2WzZdPWksdls3XT1sKToodD12WzFdLG49dlsyXSxyPXZbM10sbz12WzRdLGE9dls1XSxpPXZbNl0sbD12WzddKSx2WzhdIT09bnx8dls5XSE9PW8/KHM9ZnVuY3Rpb24oKXtyZXR1cm4gbnx8KG8/bygpOlwiXCIpfSx2WzhdPW4sdls5XT1vLHZbMTBdPXMpOnM9dlsxMF07dmFyIHc9czt2WzExXSE9PXc/KGM9dygpLHZbMTFdPXcsdlsxMl09Yyk6Yz12WzEyXTt2YXIgQz1lMShlMyhjKSw0KSxfPUNbMF0saz1DWzFdLEU9Q1syXSxqPUNbM10sUz1cImVycm9yXCI9PT1fLnN0YXRlP18uZXJyb3I6bnVsbDt2WzEzXSE9PVM/KHU9ZnVuY3Rpb24oKXtudWxsIT09UyYmY29uc29sZS53YXJuKFMpfSxkPVtTXSx2WzEzXT1TLHZbMTRdPXUsdlsxNV09ZCk6KHU9dlsxNF0sZD12WzE1XSkseC51c2VFZmZlY3QodSxkKSx2WzE2XSE9PV8uc3RhdGV8fHZbMTddIT09RT8oZj1mdW5jdGlvbigpe2lmKFwic3VjY2Vzc1wiPT09Xy5zdGF0ZSl7dmFyIGU9c2V0VGltZW91dChmdW5jdGlvbigpe0UoKX0sMmUzKTtyZXR1cm4gZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZSl9fX0sdlsxNl09Xy5zdGF0ZSx2WzE3XT1FLHZbMThdPWYpOmY9dlsxOF0sdlsxOV0hPT1fLnN0YXRlfHx2WzIwXSE9PWp8fHZbMjFdIT09RT8ocD1baixfLnN0YXRlLEVdLHZbMTldPV8uc3RhdGUsdlsyMF09aix2WzIxXT1FLHZbMjJdPXApOnA9dlsyMl0seC51c2VFZmZlY3QoZixwKTt2YXIgTz0hbmF2aWdhdG9yLmNsaXBib2FyZHx8anx8cnx8ISFTLEI9XCJzdWNjZXNzXCI9PT1fLnN0YXRlP2w6dDt2WzIzXSE9PV8uc3RhdGV8fHZbMjRdIT09YT8oaD1cInN1Y2Nlc3NcIj09PV8uc3RhdGU/KDAsYi5qc3gpKGU4LHt9KTphfHwoMCxiLmpzeCkoZTkse3dpZHRoOjE0LGhlaWdodDoxNCxjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXRvb2xiYXItYnV0dG9uLWljb25cIn0pLHZbMjNdPV8uc3RhdGUsdlsyNF09YSx2WzI1XT1oKTpoPXZbMjVdO3ZhciBQPWgsST1cIm5leHRqcy1kYXRhLWNvcHktYnV0dG9uLS1cIi5jb25jYXQoXy5zdGF0ZSk7dlsyNl0hPT1lLmNsYXNzTmFtZXx8dlsyN10hPT1JPyhtPWVHKGUuY2xhc3NOYW1lLFwibmV4dGpzLWRhdGEtY29weS1idXR0b25cIixJKSx2WzI2XT1lLmNsYXNzTmFtZSx2WzI3XT1JLHZbMjhdPW0pOm09dlsyOF0sdlsyOV0hPT1rfHx2WzMwXSE9PU8/KGc9ZnVuY3Rpb24oKXtPfHxrKCl9LHZbMjldPWssdlszMF09Tyx2WzMxXT1nKTpnPXZbMzFdO3ZhciB6PVwiZXJyb3JcIj09PV8uc3RhdGU/XCIgXCIuY29uY2F0KF8uZXJyb3IpOm51bGw7cmV0dXJuIHZbMzJdIT09T3x8dlszM10hPT1CfHx2WzM0XSE9PVB8fHZbMzVdIT09aXx8dlszNl0hPT16fHx2WzM3XSE9PW18fHZbMzhdIT09Zz8oeT0oMCxiLmpzeHMpKFwiYnV0dG9uXCIsZTAoZUooe30saSkse3R5cGU6XCJidXR0b25cIix0aXRsZTpCLFwiYXJpYS1sYWJlbFwiOkIsXCJhcmlhLWRpc2FibGVkXCI6TyxkaXNhYmxlZDpPLFwiZGF0YS1uZXh0anMtY29weS1idXR0b25cIjohMCxjbGFzc05hbWU6bSxvbkNsaWNrOmcsY2hpbGRyZW46W1Asel19KSksdlszMl09Tyx2WzMzXT1CLHZbMzRdPVAsdlszNV09aSx2WzM2XT16LHZbMzddPW0sdlszOF09Zyx2WzM5XT15KTp5PXZbMzldLHl9ZnVuY3Rpb24gZTkoZSl7dmFyIHQsbixyPSgwLEEuYykoMyk7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxiLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMi40MDYuNDM4Yy0uODQ1IDAtMS41MzEuNjg1LTEuNTMxIDEuNTN2Ni41NjNjMCAuODQ2LjY4NiAxLjUzMSAxLjUzMSAxLjUzMUgzLjkzN1Y4Ljc1SDIuNDA2YS4yMTkuMjE5IDAgMCAxLS4yMTktLjIxOVYxLjk3YzAtLjEyMS4wOTgtLjIxOS4yMi0uMjE5aDQuODEyYy4xMiAwIC4yMTguMDk4LjIxOC4yMTl2LjY1Nkg4Ljc1di0uNjU2YzAtLjg0Ni0uNjg2LTEuNTMyLTEuNTMxLTEuNTMySDIuNDA2em00LjM3NSAzLjVjLS44NDUgMC0xLjUzMS42ODUtMS41MzEgMS41M3Y2LjU2M2MwIC44NDYuNjg2IDEuNTMxIDEuNTMxIDEuNTMxaDQuODEzYy44NDUgMCAxLjUzMS0uNjg1IDEuNTMxLTEuNTNWNS40NjhjMC0uODQ2LS42ODYtMS41MzItMS41MzEtMS41MzJINi43OHptLS4yMTggMS41M2MwLS4xMi4wOTctLjIxOC4yMTgtLjIxOGg0LjgxM2MuMTIgMCAuMjE5LjA5OC4yMTkuMjE5djYuNTYyYzAgLjEyMS0uMDk4LjIxOS0uMjIuMjE5SDYuNzgyYS4yMTkuMjE5IDAgMCAxLS4yMTgtLjIxOVY1LjQ3elwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pLHJbMF09dCk6dD1yWzBdLHJbMV0hPT1lPyhuPSgwLGIuanN4KShcInN2Z1wiLGUwKGVKKHt3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDE0IDE0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjp0fSkpLHJbMV09ZSxyWzJdPW4pOm49clsyXSxufWZ1bmN0aW9uIGU4KCl7dmFyIGUsdD0oMCxBLmMpKDEpO3JldHVybiB0WzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGU9KDAsYi5qc3gpKFwic3ZnXCIse2hlaWdodDpcIjE2XCIseGxpbmtUaXRsZTpcImNvcGllZFwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIix3aWR0aDpcIjE2XCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZDpcIk0xMy43OCA0LjIyYS43NS43NSAwIDAgMSAwIDEuMDZsLTcuMjUgNy4yNWEuNzUuNzUgMCAwIDEtMS4wNiAwTDIuMjIgOS4yOGEuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOEw2IDEwLjk0bDYuNzItNi43MmEuNzUuNzUgMCAwIDEgMS4wNiAwWlwifSl9KSx0WzBdPWUpOmU9dFswXSxlfWZ1bmN0aW9uIGU3KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiB0ZShlLHQpe3JldHVybiB0PW51bGwhPXQ/dDp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pKX0pLGV9dmFyIHR0PWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdylyZXR1cm4hMTt2YXIgZT1cImNocm9tZVwiaW4gd2luZG93JiZ3aW5kb3cuY2hyb21lLHQ9d2luZG93Lm5hdmlnYXRvci52ZW5kb3I7cmV0dXJuIG51bGwhPWUmJlwiR29vZ2xlIEluYy5cIj09PXR9KCk7ZnVuY3Rpb24gdG4oZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaD0oMCxBLmMpKDE0KTtyZXR1cm4gaFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PXttYXNrVHlwZTpcImx1bWluYW5jZVwifSxoWzBdPXQpOnQ9aFswXSxoWzFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG49KDAsYi5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfYVwiLHN0eWxlOnQsbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMFwiLHk6XCIwXCIsd2lkdGg6XCIxNFwiLGhlaWdodDpcIjE0XCIsY2hpbGRyZW46KDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTTYuNjcuMDg5IDEuMjA1IDMuMjU2YS42NjMuNjYzIDAgMCAwLS4zMy41NzN2Ni4zMzljMCAuMjM3LjEyNi40NTUuMzMuNTc0bDUuNDY2IDMuMTdhLjY2LjY2IDAgMCAwIC42NiAwbDUuNDY1LTMuMTdhLjY2NC42NjQgMCAwIDAgLjMyOS0uNTc0VjMuODI5YS42NjMuNjYzIDAgMCAwLS4zMy0uNTczTDcuMzMuMDg5YS42NjMuNjYzIDAgMCAwLS42NjEgMFwiLGZpbGw6XCIjZmZmXCJ9KX0pLGhbMV09bik6bj1oWzFdLGhbMl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj0oMCxiLmpzeCkoXCJnXCIse21hc2s6XCJ1cmwoI25vZGVqc19pY29uX21hc2tfYSlcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJwYXRoXCIse2Q6XCJNMTguNjQ4IDIuNzE3IDMuMjQ4LTQuODYtNC42NDggMTEuMzFsMTUuNCA3LjU4IDcuODk2LTE2LjE3NHpcIixmaWxsOlwidXJsKCNub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfYilcIn0pfSksaFsyXT1yKTpyPWhbMl0saFszXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhvPXttYXNrVHlwZTpcImx1bWluYW5jZVwifSxoWzNdPW8pOm89aFszXSxoWzRdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGE9KDAsYi5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfY1wiLHN0eWxlOm8sbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMVwiLHk6XCIwXCIsd2lkdGg6XCIxMlwiLGhlaWdodDpcIjE0XCIsY2hpbGRyZW46KDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTTEuMDEgMTAuNTdhLjY2My42NjMgMCAwIDAgLjE5NS4xN2w0LjY4OCAyLjcyLjc4MS40NWEuNjYuNjYgMCAwIDAgLjUxLjA2M2w1Ljc2NC0xMC41OTdhLjY1My42NTMgMCAwIDAtLjE1My0uMTIyTDkuMjE2IDEuMTggNy4zMjUuMDg3YS42ODguNjg4IDAgMCAwLS4xNzEtLjA3TDEuMDEgMTAuNTd6XCIsZmlsbDpcIiNmZmZcIn0pfSksaFs0XT1hKTphPWhbNF0saFs1XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhpPSgwLGIuanN4KShcImdcIix7bWFzazpcInVybCgjbm9kZWpzX2ljb25fbWFza19jKVwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZDpcIk0tNS42NDcgNC45NTggNS4yMjYgMTkuNzM0bDE0LjM4LTEwLjY2N0w4LjczNC01LjcxLTUuNjQ3IDQuOTU4elwiLGZpbGw6XCJ1cmwoI25vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9kKVwifSl9KSxoWzVdPWkpOmk9aFs1XSxoWzZdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGw9e21hc2tUeXBlOlwibHVtaW5hbmNlXCJ9LGhbNl09bCk6bD1oWzZdLGhbN109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocz0oMCxiLmpzeCkoXCJtYXNrXCIse2lkOlwibm9kZWpzX2ljb25fbWFza19lXCIsc3R5bGU6bCxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIxXCIseTpcIjBcIix3aWR0aDpcIjEzXCIsaGVpZ2h0OlwiMTRcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJwYXRoXCIse2Q6XCJNNi45MzQuMDA0QS42NjUuNjY1IDAgMCAwIDYuNjcuMDlMMS4yMiAzLjI0N2w1Ljg3NyAxMC43NDZhLjY1NS42NTUgMCAwIDAgLjIzNS0uMDhsNS40NjUtMy4xN2EuNjY1LjY2NSAwIDAgMCAuMzE5LS40NTNMNy4xMjYuMDE1YS42ODQuNjg0IDAgMCAwLS4xODktLjAxXCIsZmlsbDpcIiNmZmZcIn0pfSksaFs3XT1zKTpzPWhbN10saFs4XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhjPSgwLGIuanN4cykoXCJnXCIse2NoaWxkcmVuOltzLCgwLGIuanN4KShcImdcIix7bWFzazpcInVybCgjbm9kZWpzX2ljb25fbWFza19lKVwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZDpcIk0xLjIyLjAwMnYxMy45OTJoMTEuODk0Vi4wMDJIMS4yMnpcIixmaWxsOlwidXJsKCNub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfZilcIn0pfSldfSksaFs4XT1jKTpjPWhbOF0saFs5XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh1PSgwLGIuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9iXCIseDE6XCIxMC45NDNcIix5MTpcIi0xLjA4NFwiLHgyOlwiMi45OTdcIix5MjpcIjE1LjA2MlwiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCxiLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi4zXCIsc3RvcENvbG9yOlwiIzNFODYzRFwifSksKDAsYi5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNVwiLHN0b3BDb2xvcjpcIiM1NTkzNEZcIn0pLCgwLGIuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjhcIixzdG9wQ29sb3I6XCIjNUFBRDQ1XCJ9KV19KSxoWzldPXUpOnU9aFs5XSxoWzEwXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhkPSgwLGIuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9kXCIseDE6XCItLjE0NVwiLHkxOlwiMTIuNDMxXCIseDI6XCIxNC4yNzdcIix5MjpcIjEuODE4XCIsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCIsY2hpbGRyZW46WygwLGIuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjU3XCIsc3RvcENvbG9yOlwiIzNFODYzRFwifSksKDAsYi5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNzJcIixzdG9wQ29sb3I6XCIjNjE5ODU3XCJ9KSwoMCxiLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIjFcIixzdG9wQ29sb3I6XCIjNzZBQzY0XCJ9KV19KSxoWzEwXT1kKTpkPWhbMTBdLGhbMTFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGY9KDAsYi5qc3hzKShcImRlZnNcIix7Y2hpbGRyZW46W3UsZCwoMCxiLmpzeHMpKFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfZlwiLHgxOlwiMS4yMjVcIix5MTpcIjYuOTk4XCIseDI6XCIxMy4xMTZcIix5MjpcIjYuOTk4XCIsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCIsY2hpbGRyZW46WygwLGIuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjE2XCIsc3RvcENvbG9yOlwiIzZCQkY0N1wifSksKDAsYi5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuMzhcIixzdG9wQ29sb3I6XCIjNzlCNDYxXCJ9KSwoMCxiLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi40N1wiLHN0b3BDb2xvcjpcIiM3NUFDNjRcIn0pLCgwLGIuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjdcIixzdG9wQ29sb3I6XCIjNjU5RTVBXCJ9KSwoMCxiLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi45XCIsc3RvcENvbG9yOlwiIzNFODYzRFwifSldfSldfSksaFsxMV09Zik6Zj1oWzExXSxoWzEyXSE9PWU/KHA9KDAsYi5qc3hzKShcInN2Z1wiLHRlKGU3KHt3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDE0IDE0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjpbbixyLGEsaSxjLGZdfSkpLGhbMTJdPWUsaFsxM109cCk6cD1oWzEzXSxwfWZ1bmN0aW9uIHRyKGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYyx1LGQsZixwLGg9KDAsQS5jKSgxNCk7cmV0dXJuIGhbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD17bWFza1R5cGU6XCJsdW1pbmFuY2VcIn0saFswXT10KTp0PWhbMF0saFsxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhuPSgwLGIuanN4KShcIm1hc2tcIix7aWQ6XCJub2RlanNfaWNvbl9tYXNrX2FcIixzdHlsZTp0LG1hc2tVbml0czpcInVzZXJTcGFjZU9uVXNlXCIseDpcIjBcIix5OlwiMFwiLHdpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZDpcIk02LjY3LjA4OSAxLjIwNSAzLjI1NmEuNjYzLjY2MyAwIDAgMC0uMzMuNTczdjYuMzM5YzAgLjIzNy4xMjYuNDU1LjMzLjU3NGw1LjQ2NiAzLjE3YS42Ni42NiAwIDAgMCAuNjYgMGw1LjQ2NS0zLjE3YS42NjQuNjY0IDAgMCAwIC4zMjktLjU3NFYzLjgyOWEuNjYzLjY2MyAwIDAgMC0uMzMtLjU3M0w3LjMzLjA4OWEuNjYzLjY2MyAwIDAgMC0uNjYxIDBcIixmaWxsOlwiI2ZmZlwifSl9KSxoWzFdPW4pOm49aFsxXSxoWzJdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHI9KDAsYi5qc3gpKFwiZ1wiLHttYXNrOlwidXJsKCNub2RlanNfaWNvbl9tYXNrX2EpXCIsY2hpbGRyZW46KDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTTE4LjY0OCAyLjcxNyAzLjI0OC00Ljg2LTQuNjQ2IDExLjMxbDE1LjM5OSA3LjU4IDcuODk2LTE2LjE3NHpcIixmaWxsOlwidXJsKCNub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfYilcIn0pfSksaFsyXT1yKTpyPWhbMl0saFszXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhvPXttYXNrVHlwZTpcImx1bWluYW5jZVwifSxoWzNdPW8pOm89aFszXSxoWzRdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGE9KDAsYi5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfY1wiLHN0eWxlOm8sbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMVwiLHk6XCIwXCIsd2lkdGg6XCIxMlwiLGhlaWdodDpcIjE1XCIsY2hpbGRyZW46KDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTTEuMDEgMTAuNTcxYS42Ni42NiAwIDAgMCAuMTk1LjE3Mmw0LjY4OCAyLjcxOC43ODEuNDUxYS42Ni42NiAwIDAgMCAuNTEuMDYzbDUuNzY0LTEwLjU5N2EuNjUzLjY1MyAwIDAgMC0uMTUzLS4xMjJMOS4yMTYgMS4xODEgNy4zMjUuMDlhLjY4OC42ODggMCAwIDAtLjE3MS0uMDdMMS4wMSAxMC41NzJ6XCIsZmlsbDpcIiNmZmZcIn0pfSksaFs0XT1hKTphPWhbNF0saFs1XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhpPSgwLGIuanN4KShcImdcIix7bWFzazpcInVybCgjbm9kZWpzX2ljb25fbWFza19jKVwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZDpcIk0tNS42NDcgNC45NiA1LjIyNiAxOS43MzYgMTkuNjA2IDkuMDcgOC43MzQtNS43MDctNS42NDcgNC45NnpcIixmaWxsOlwidXJsKCNub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfZClcIn0pfSksaFs1XT1pKTppPWhbNV0saFs2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhsPXttYXNrVHlwZTpcImx1bWluYW5jZVwifSxoWzZdPWwpOmw9aFs2XSxoWzddPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHM9KDAsYi5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfZVwiLHN0eWxlOmwsbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMVwiLHk6XCIwXCIsd2lkdGg6XCIxM1wiLGhlaWdodDpcIjE0XCIsY2hpbGRyZW46KDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTTYuOTM1LjAwM2EuNjY1LjY2NSAwIDAgMC0uMjY0LjA4NWwtNS40NSAzLjE1OCA1Ljg3NyAxMC43NDdhLjY1My42NTMgMCAwIDAgLjIzNS0uMDgybDUuNDY1LTMuMTdhLjY2NS42NjUgMCAwIDAgLjMxOS0uNDUyTDcuMTI3LjAxNGEuNjg0LjY4NCAwIDAgMC0uMTg5LS4wMVwiLGZpbGw6XCIjZmZmXCJ9KX0pLGhbN109cyk6cz1oWzddLGhbOF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oYz0oMCxiLmpzeHMpKFwiZ1wiLHtjaGlsZHJlbjpbcywoMCxiLmpzeCkoXCJnXCIse21hc2s6XCJ1cmwoI25vZGVqc19pY29uX21hc2tfZSlcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJwYXRoXCIse2Q6XCJNMS4yMjIuMDAxdjEzLjk5MmgxMS44OTNWMEgxLjIyMnpcIixmaWxsOlwidXJsKCNub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfZilcIn0pfSldfSksaFs4XT1jKTpjPWhbOF0saFs5XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh1PSgwLGIuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9iXCIseDE6XCIxMC45NDRcIix5MTpcIi0xLjA4NFwiLHgyOlwiMi45OTdcIix5MjpcIjE1LjA2MlwiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCxiLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi4zXCIsc3RvcENvbG9yOlwiIzY3Njc2N1wifSksKDAsYi5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNVwiLHN0b3BDb2xvcjpcIiM4NTg1ODVcIn0pLCgwLGIuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjhcIixzdG9wQ29sb3I6XCIjOTg5QTk4XCJ9KV19KSxoWzldPXUpOnU9aFs5XSxoWzEwXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhkPSgwLGIuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9kXCIseDE6XCItLjE0NVwiLHkxOlwiMTIuNDMzXCIseDI6XCIxNC4yNzdcIix5MjpcIjEuODE5XCIsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCIsY2hpbGRyZW46WygwLGIuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjU3XCIsc3RvcENvbG9yOlwiIzc0NzQ3NFwifSksKDAsYi5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNzJcIixzdG9wQ29sb3I6XCIjNzA3MDcwXCJ9KSwoMCxiLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIjFcIixzdG9wQ29sb3I6XCIjOTI5MjkyXCJ9KV19KSxoWzEwXT1kKTpkPWhbMTBdLGhbMTFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGY9KDAsYi5qc3hzKShcImRlZnNcIix7Y2hpbGRyZW46W3UsZCwoMCxiLmpzeHMpKFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfZlwiLHgxOlwiMS4yMjZcIix5MTpcIjYuOTk3XCIseDI6XCIxMy4xMTdcIix5MjpcIjYuOTk3XCIsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCIsY2hpbGRyZW46WygwLGIuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjE2XCIsc3RvcENvbG9yOlwiIzg3ODc4N1wifSksKDAsYi5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuMzhcIixzdG9wQ29sb3I6XCIjQTlBOUE5XCJ9KSwoMCxiLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi40N1wiLHN0b3BDb2xvcjpcIiNBNUE1QTVcIn0pLCgwLGIuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjdcIixzdG9wQ29sb3I6XCIjOEY4RjhGXCJ9KSwoMCxiLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi45XCIsc3RvcENvbG9yOlwiIzYyNjI2MlwifSldfSldfSksaFsxMV09Zik6Zj1oWzExXSxoWzEyXSE9PWU/KHA9KDAsYi5qc3hzKShcInN2Z1wiLHRlKGU3KHt3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDE0IDE0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjpbbixyLGEsaSxjLGZdfSkpLGhbMTJdPWUsaFsxM109cCk6cD1oWzEzXSxwfXZhciB0bz1cIkxlYXJuIG1vcmUgYWJvdXQgZW5hYmxpbmcgTm9kZS5qcyBpbnNwZWN0b3IgZm9yIHNlcnZlciBjb2RlIHdpdGggQ2hyb21lIERldlRvb2xzXCI7ZnVuY3Rpb24gdGEoZSl7dmFyIHQsbixyLG89KDAsQS5jKSg0KSxhPWUuZGV2dG9vbHNGcm9udGVuZFVybHx8XCJcIjtyZXR1cm4gYSYmdHQ/KG9bMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obj0oMCxiLmpzeCkodG4se2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvblwiLHdpZHRoOjE0LGhlaWdodDoxNH0pLG9bMV09bik6bj1vWzFdLG9bMl0hPT1hPyhyPSgwLGIuanN4KShlNix7XCJkYXRhLW5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1kZXZ0b29scy11cmxcIjohMCxjbGFzc05hbWU6XCJub2RlanMtaW5zcGVjdG9yLWJ1dHRvblwiLGFjdGlvbkxhYmVsOlwiQ29weSBDaHJvbWUgRGV2VG9vbHMgVVJMXCIsc3VjY2Vzc0xhYmVsOlwiQ29waWVkXCIsY29udGVudDphLGljb246bn0pLG9bMl09YSxvWzNdPXIpOnI9b1szXSxyKToob1swXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4KShcImFcIix7dGl0bGU6dG8sXCJhcmlhLWxhYmVsXCI6dG8sY2xhc3NOYW1lOlwibm9kZWpzLWluc3BlY3Rvci1idXR0b25cIixocmVmOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vY29uZmlndXJpbmcvZGVidWdnaW5nI3NlcnZlci1zaWRlLWNvZGVcIix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsY2hpbGRyZW46KDAsYi5qc3gpKHRyLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXRvb2xiYXItYnV0dG9uLWljb25cIix3aWR0aDoxNCxoZWlnaHQ6MTR9KX0pLG9bMF09dCk6dD1vWzBdLHQpfWZ1bmN0aW9uIHRpKGUpe3ZhciB0LG49KDAsQS5jKSgzKSxyPWUuZXJyb3Isbz1lLmdlbmVyYXRlRXJyb3JJbmZvLGE9IXI7cmV0dXJuIG5bMF0hPT1vfHxuWzFdIT09YT8odD0oMCxiLmpzeCkoZTYse1wiZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktc3RhY2tcIjohMCxjbGFzc05hbWU6XCJjb3B5LWVycm9yLWJ1dHRvblwiLGFjdGlvbkxhYmVsOlwiQ29weSBFcnJvciBJbmZvXCIsc3VjY2Vzc0xhYmVsOlwiRXJyb3IgSW5mbyBDb3BpZWRcIixnZXRDb250ZW50Om8sZGlzYWJsZWQ6YX0pLG5bMF09byxuWzFdPWEsblsyXT10KTp0PW5bMl0sdH1mdW5jdGlvbiB0bChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdHMoZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX1mdW5jdGlvbiB0Yygpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfWZ1bmN0aW9uIHR1KGUsdCl7cmV0dXJuIHRzKGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHx0ZihlLHQpfHx0YygpfWZ1bmN0aW9uIHRkKGUpe3JldHVybiB0cyhlKXx8ZnVuY3Rpb24oZSl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1lW1wiQEBpdGVyYXRvclwiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fHRmKGUpfHx0YygpfWZ1bmN0aW9uIHRmKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRsKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHRsKGUsdCl9fXZhciB0cD1cImh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaHlkcmF0aW9uLW1pc21hdGNoXCIsdGg9XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9yZWFjdC1oeWRyYXRpb24tZXJyb3JcIix0bT1bL15JbiBIVE1MLCAoLis/KSBjYW5ub3QgYmUgYSBjaGlsZCBvZiA8KC4rPyk+XFwuKC4qKVxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvclxcLiguKikvLC9eSW4gSFRNTCwgKC4rPykgY2Fubm90IGJlIGEgZGVzY2VuZGFudCBvZiA8KC4rPyk+XFwuXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yXFwuKC4qKS8sL15JbiBIVE1MLCB0ZXh0IG5vZGVzIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwoLis/KT5cXC5cXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3JcXC4vLC9eSW4gSFRNTCwgd2hpdGVzcGFjZSB0ZXh0IG5vZGVzIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwoLis/KT5cXC4gTWFrZSBzdXJlIHlvdSBkb24ndCBoYXZlIGFueSBleHRyYSB3aGl0ZXNwYWNlIGJldHdlZW4gdGFncyBvbiBlYWNoIGxpbmUgb2YgeW91ciBzb3VyY2UgY29kZVxcLlxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvclxcLi9dO2Z1bmN0aW9uIHRnKGUpe3JldHVybiB0bS5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRlc3QoZSl9KX12YXIgdHk9W1wiaHR0cHM6Ly9uZXh0anMub3JnXCIsXCJodHRwczovL3JlYWN0LmRldlwiXTtmdW5jdGlvbiB0dihlKXtyZXR1cm4gdHkuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gZS5zdGFydHNXaXRoKHQpfSl9ZnVuY3Rpb24gdGIoZSl7dmFyIHQsbixyLG8sYT0oMCxBLmMpKDYpLGk9ZS5lcnJvck1lc3NhZ2U7YVswXSE9PWk/KHQ9ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG89KHQ9ZSxuPXR2LHI9QXJyYXkuZnJvbSh0Lm1hdGNoQWxsKC9odHRwcz86XFwvXFwvW15cXHMvJC4/I10uW15cXHMpJ1wiXSovZ2kpLGZ1bmN0aW9uKGUpe3JldHVybiBlWzBdfSksbj9yLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gbihlKX0pOnIpO2lmKDA9PT1vLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgYT1vWzBdO3JldHVybiBhPT09dHA/dGg6YX0oaSksYVswXT1pLGFbMV09dCk6dD1hWzFdO3ZhciBsPXQ7cmV0dXJuIGw/KGFbM109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj0oMCxiLmpzeCkodEEse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvblwiLHdpZHRoOjE0LGhlaWdodDoxNH0pLGFbM109cik6cj1hWzNdLGFbNF0hPT1sPyhvPSgwLGIuanN4KShcImFcIix7dGl0bGU6XCJHbyB0byByZWxhdGVkIGRvY3VtZW50YXRpb25cIixcImFyaWEtbGFiZWxcIjpcIkdvIHRvIHJlbGF0ZWQgZG9jdW1lbnRhdGlvblwiLGNsYXNzTmFtZTpcImRvY3MtbGluay1idXR0b25cIixocmVmOmwsdGFyZ2V0OlwiX2JsYW5rXCIscmVsOlwibm9vcGVuZXIgbm9yZWZlcnJlclwiLGNoaWxkcmVuOnJ9KSxhWzRdPWwsYVs1XT1vKTpvPWFbNV0sbyk6KGFbMl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obj0oMCxiLmpzeCkoXCJidXR0b25cIix7dGl0bGU6XCJObyByZWxhdGVkIGRvY3VtZW50YXRpb24gZm91bmRcIixcImFyaWEtbGFiZWxcIjpcIk5vIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBmb3VuZFwiLGNsYXNzTmFtZTpcImRvY3MtbGluay1idXR0b25cIixkaXNhYmxlZDohMCxjaGlsZHJlbjooMCxiLmpzeCkodEEse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvblwiLHdpZHRoOjE0LGhlaWdodDoxNH0pfSksYVsyXT1uKTpuPWFbMl0sbil9ZnVuY3Rpb24gdEEoZSl7dmFyIHQsbixyLG8sYT0oMCxBLmMpKDMpO3JldHVybihhWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHI9KDAsYi5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTAgLjg3NWg0LjM3NUM1LjQ0OC44NzUgNi40MDEgMS4zOSA3IDIuMTg3QTMuMjc2IDMuMjc2IDAgMCAxIDkuNjI1Ljg3NUgxNHYxMS4xNTZIOS40Yy0uNTIyIDAtMS4wMjMuMjA4LTEuMzkyLjU3N2wtLjU0NC41NDNoLS45MjhsLS41NDQtLjU0M2MtLjM2OS0uMzctLjg3LS41NzctMS4zOTItLjU3N0gwVi44NzV6bTYuMzQ0IDMuMjgxYTEuOTY5IDEuOTY5IDAgMCAwLTEuOTY5LTEuOTY4SDEuMzEydjguNTNINC42Yy42MjIgMCAxLjIyNS4xNzcgMS43NDQuNTAyVjQuMTU2em0xLjMxMiA3LjA2NFY0LjE1NmMwLTEuMDg3Ljg4Mi0xLjk2OCAxLjk2OS0xLjk2OGgzLjA2M3Y4LjUzSDkuNGMtLjYyMiAwLTEuMjI1LjE3Ny0xLjc0NC41MDJ6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSksYVswXT1yKTpyPWFbMF0sYVsxXSE9PWUpPyhvPSgwLGIuanN4KShcInN2Z1wiLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSksbj1uPXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxhWzFdPWUsYVsyXT1vKTpvPWFbMl0sb31mdW5jdGlvbiB0eChlKXt2YXIgdCxuLHIsbyxhPSgwLEEuYykoMTIpLGk9ZS5lcnJvcixsPWUuZGVidWdJbmZvLHM9ZS5mZWVkYmFja0J1dHRvbixjPWUuZ2VuZXJhdGVFcnJvckluZm87YVswXSE9PWl8fGFbMV0hPT1jPyh0PSgwLGIuanN4KSh0aSx7ZXJyb3I6aSxnZW5lcmF0ZUVycm9ySW5mbzpjfSksYVswXT1pLGFbMV09YyxhWzJdPXQpOnQ9YVsyXSxhWzNdIT09aS5tZXNzYWdlPyhuPSgwLGIuanN4KSh0Yix7ZXJyb3JNZXNzYWdlOmkubWVzc2FnZX0pLGFbM109aS5tZXNzYWdlLGFbNF09bik6bj1hWzRdO3ZhciB1PW51bGw9PWw/dm9pZCAwOmwuZGV2dG9vbHNGcm9udGVuZFVybDtyZXR1cm4gYVs1XSE9PXU/KHI9KDAsYi5qc3gpKHRhLHtkZXZ0b29sc0Zyb250ZW5kVXJsOnV9KSxhWzVdPXUsYVs2XT1yKTpyPWFbNl0sYVs3XSE9PXN8fGFbOF0hPT10fHxhWzldIT09bnx8YVsxMF0hPT1yPyhvPSgwLGIuanN4cykoXCJzcGFuXCIse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktdG9vbGJhclwiLGNoaWxkcmVuOltzLHQsbixyXX0pLGFbN109cyxhWzhdPXQsYVs5XT1uLGFbMTBdPXIsYVsxMV09byk6bz1hWzExXSxvfWZ1bmN0aW9uIHR3KGUpe3ZhciB0LG4scixvLGE9KDAsQS5jKSgzKTtyZXR1cm4oYVswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLGIuanN4KShcImdcIix7aWQ6XCJ0aHVtYi11cC0xNlwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7aWQ6XCJVbmlvblwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNi44OTUzMSAyLjIzOTU5QzYuNzI5ODQgMi4xMjE0IDYuNSAyLjIzOTY4IDYuNSAyLjQ0MzAzVjUuMjQ5ODlDNi41IDYuMjE2MzkgNS43MTY1IDYuOTk5ODkgNC43NSA2Ljk5OTg5SDIuNVYxMy40OTk5SDEyLjE4ODRDMTIuNzYyIDEzLjQ5OTkgMTMuMjYyIDEzLjEwOTUgMTMuNDAxMSAxMi41NTMxTDE0LjQwMTEgOC41NTMwNkMxNC41OTg0IDcuNzY0MTIgMTQuMDAxNyA2Ljk5OTg5IDEzLjE4ODQgNi45OTk4OUg5LjI1SDguNVY2LjI0OTg5VjMuNTE0NDZDOC41IDMuNDMzNzIgOC40NjEwMSAzLjM1Nzk1IDguMzk1MzEgMy4zMTEwMkw2Ljg5NTMxIDIuMjM5NTlaTTUgMi40NDMwM0M1IDEuMDE5NjMgNi42MDg5IDAuMTkxNjU2IDcuNzY3MTcgMS4wMTg5OUw5LjI2NzE3IDIuMDkwNDJDOS43MjcwNiAyLjQxODkyIDEwIDIuOTQ5MjkgMTAgMy41MTQ0NlY1LjQ5OTg5SDEzLjE4ODRDMTQuOTc3NSA1LjQ5OTg5IDE2LjI5MDMgNy4xODEyMSAxNS44NTYzIDguOTE2ODZMMTQuODU2MyAxMi45MTY5QzE0LjU1MDMgMTQuMTQxMSAxMy40NTAzIDE0Ljk5OTkgMTIuMTg4NCAxNC45OTk5SDEuNzVIMVYxNC4yNDk5VjYuMjQ5ODlWNS40OTk4OUgxLjc1SDQuNzVDNC44ODgwNyA1LjQ5OTg5IDUgNS4zODc5NiA1IDUuMjQ5ODlWMi40NDMwM1pcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pLGFbMF09cik6cj1hWzBdLGFbMV0hPT1lKT8obz0oMCxiLmpzeCkoXCJzdmdcIiwodD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2xhc3NOYW1lOlwidGh1bWJzLXVwLWljb25cIn0sZSksbj1uPXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxhWzFdPWUsYVsyXT1vKTpvPWFbMl0sb31mdW5jdGlvbiB0QyhlKXt2YXIgdCxuLHIsbyxhPSgwLEEuYykoMyk7cmV0dXJuKGFbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj0oMCxiLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNS44OTUzMSAxMi43NjAzQzUuNzI5ODQgMTIuODc4NSA1LjUgMTIuNzYwMiA1LjUgMTIuNTU2OVY5Ljc1QzUuNSA4Ljc4MzUgNC43MTY1IDggMy43NSA4SDEuNVYxLjVIMTEuMTg4NEMxMS43NjIgMS41IDEyLjI2MiAxLjg5MDM3IDEyLjQwMTEgMi40NDY4M0wxMy40MDExIDYuNDQ2ODNDMTMuNTk4NCA3LjIzNTc2IDEzLjAwMTcgOCAxMi4xODg0IDhIOC4yNUg3LjVWOC43NVYxMS40ODU0QzcuNSAxMS41NjYyIDcuNDYxMDEgMTEuNjQxOSA3LjM5NTMxIDExLjY4ODlMNS44OTUzMSAxMi43NjAzWk00IDEyLjU1NjlDNCAxMy45ODAzIDUuNjA4OSAxNC44MDgyIDYuNzY3MTcgMTMuOTgwOUw4LjI2NzE3IDEyLjkwOTVDOC43MjcwNiAxMi41ODEgOSAxMi4wNTA2IDkgMTEuNDg1NFY5LjVIMTIuMTg4NEMxMy45Nzc1IDkuNSAxNS4yOTAzIDcuODE4NjggMTQuODU2MyA2LjA4MzAzTDEzLjg1NjMgMi4wODMwM0MxMy41NTAzIDAuODU4ODE2IDEyLjQ1MDMgMCAxMS4xODg0IDBIMC43NUgwVjAuNzVWOC43NVY5LjVIMC43NUgzLjc1QzMuODg4MDcgOS41IDQgOS42MTE5MyA0IDkuNzVWMTIuNTU2OVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KSxhWzBdPXIpOnI9YVswXSxhWzFdIT09ZSk/KG89KDAsYi5qc3gpKFwic3ZnXCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7d2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNsYXNzTmFtZTpcInRodW1icy1kb3duLWljb25cIn0sZSksbj1uPXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxhWzFdPWUsYVsyXT1vKTpvPWFbMl0sb31mdW5jdGlvbiB0XyhlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdGsoZSx0LG4scixvLGEsaSl7dHJ5e3ZhciBsPWVbYV0oaSkscz1sLnZhbHVlfWNhdGNoKGUpe24oZSk7cmV0dXJufWwuZG9uZT90KHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gdEUoZSx0LG4pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfWZ1bmN0aW9uIHRqKGUpe3ZhciB0LG4scj1lLmVycm9yQ29kZSxvPWUuY2xhc3NOYW1lLGE9KHQ9KDAseC51c2VTdGF0ZSkoe30pLG49MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfSh0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fSh0LDIpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiB0XyhlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiB0XyhlLHQpfX0odCxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksaT1hWzBdLGw9YVsxXSxzPWlbcl0sYz1wcm9jZXNzLmVudi5fX05FWFRfVEVMRU1FVFJZX0RJU0FCTEVELHU9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuKHQ9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbixyLG8sYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvWzBdKXRocm93IG9bMV07cmV0dXJuIG9bMV19LHRyeXM6W10sb3BzOltdfSxpPU9iamVjdC5jcmVhdGUoKFwiZnVuY3Rpb25cIj09dHlwZW9mIEl0ZXJhdG9yP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gaS5uZXh0PWwoMCksaS50aHJvdz1sKDEpLGkucmV0dXJuPWwoMiksXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiYoaVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxpO2Z1bmN0aW9uIGwobCl7cmV0dXJuIGZ1bmN0aW9uKHMpe3ZhciBjPVtsLHNdO2lmKG4pdGhyb3cgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtmb3IoO2kmJihpPTAsY1swXSYmKGE9MCkpLGE7KXRyeXtpZihuPTEsciYmKG89MiZjWzBdP3IucmV0dXJuOmNbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixjWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihjPVsyJmNbMF0sby52YWx1ZV0pLGNbMF0pe2Nhc2UgMDpjYXNlIDE6bz1jO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTpjWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKysscj1jWzFdLGM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpjPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEobz0obz1hLnRyeXMpLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdKSYmKDY9PT1jWzBdfHwyPT09Y1swXSkpe2E9MDtjb250aW51ZX1pZigzPT09Y1swXSYmKCFvfHxjWzFdPm9bMF0mJmNbMV08b1szXSkpe2EubGFiZWw9Y1sxXTticmVha31pZig2PT09Y1swXSYmYS5sYWJlbDxvWzFdKXthLmxhYmVsPW9bMV0sbz1jO2JyZWFrfWlmKG8mJmEubGFiZWw8b1syXSl7YS5sYWJlbD1vWzJdLGEub3BzLnB1c2goYyk7YnJlYWt9b1syXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfWM9dC5jYWxsKGUsYSl9Y2F0Y2goZSl7Yz1bNixlXSxyPTB9ZmluYWxseXtuPW89MH1pZig1JmNbMF0pdGhyb3cgY1sxXTtyZXR1cm57dmFsdWU6Y1swXT9jWzFdOnZvaWQgMCxkb25lOiEwfX19fSh0aGlzLGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmxhYmVsKXtjYXNlIDA6bChmdW5jdGlvbih0KXt2YXIgbixvO3JldHVybiBuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt0RShlLHQsblt0XSl9KX1yZXR1cm4gZX0oe30sdCksbz1udWxsIT0obz10RSh7fSxyLGUpKT9vOnt9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobykpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobykpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sZSkpfSksbn0pLHQubGFiZWw9MTtjYXNlIDE6cmV0dXJuIHQudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCxmZXRjaChcIlwiLmNvbmNhdChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIfHxcIlwiLFwiL19fbmV4dGpzX2Vycm9yX2ZlZWRiYWNrP1wiKS5jb25jYXQobmV3IFVSTFNlYXJjaFBhcmFtcyh7ZXJyb3JDb2RlOnIsd2FzSGVscGZ1bDplLnRvU3RyaW5nKCl9KSkpXTtjYXNlIDI6cmV0dXJuIHQuc2VudCgpLm9rfHxjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIHJlY29yZCBmZWVkYmFjayBvbiB0aGUgc2VydmVyLlwiKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gcmVjb3JkIGZlZWRiYWNrOlwiLHQuc2VudCgpKSxbMyw0XTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSxmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbyl7dmFyIGE9dC5hcHBseShlLG4pO2Z1bmN0aW9uIGkoZSl7dGsoYSxyLG8saSxsLFwibmV4dFwiLGUpfWZ1bmN0aW9uIGwoZSl7dGsoYSxyLG8saSxsLFwidGhyb3dcIixlKX1pKHZvaWQgMCl9KX0pKCl9LFtyXSk7cmV0dXJuKDAsYi5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTplRyhcImVycm9yLWZlZWRiYWNrXCIsbykscm9sZTpcInJlZ2lvblwiLFwiYXJpYS1sYWJlbFwiOlwiRXJyb3IgZmVlZGJhY2tcIixjaGlsZHJlbjp2b2lkIDAhPT1zPygwLGIuanN4KShcInBcIix7Y2xhc3NOYW1lOlwiZXJyb3ItZmVlZGJhY2stdGhhbmtzXCIscm9sZTpcInN0YXR1c1wiLFwiYXJpYS1saXZlXCI6XCJwb2xpdGVcIixjaGlsZHJlbjpcIlRoYW5rcyBmb3IgeW91ciBmZWVkYmFjayFcIn0pOigwLGIuanN4cykoYi5GcmFnbWVudCx7Y2hpbGRyZW46WygwLGIuanN4KShcInBcIix7Y2hpbGRyZW46KDAsYi5qc3gpKFwiYVwiLHtocmVmOlwiaHR0cHM6Ly9uZXh0anMub3JnL3RlbGVtZXRyeSNlcnJvci1mZWVkYmFja1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIix0YXJnZXQ6XCJfYmxhbmtcIixjaGlsZHJlbjpcIldhcyB0aGlzIGhlbHBmdWw/XCJ9KX0pLCgwLGIuanN4KShcImJ1dHRvblwiLHtcImFyaWEtZGlzYWJsZWRcIjpjP1widHJ1ZVwiOnZvaWQgMCxcImFyaWEtbGFiZWxcIjpcIk1hcmsgYXMgaGVscGZ1bFwiLG9uQ2xpY2s6Yz92b2lkIDA6ZnVuY3Rpb24oKXtyZXR1cm4gdSghMCl9LGNsYXNzTmFtZTplRyhcImZlZWRiYWNrLWJ1dHRvblwiLCEwPT09cyYmXCJ2b3RlZFwiKSx0aXRsZTpjP1wiRmVlZGJhY2sgZGlzYWJsZWQgZHVlIHRvIHNldHRpbmcgTkVYVF9URUxFTUVUUllfRElTQUJMRURcIjp2b2lkIDAsdHlwZTpcImJ1dHRvblwiLGNoaWxkcmVuOigwLGIuanN4KSh0dyx7XCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifSl9KSwoMCxiLmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWRpc2FibGVkXCI6Yz9cInRydWVcIjp2b2lkIDAsXCJhcmlhLWxhYmVsXCI6XCJNYXJrIGFzIG5vdCBoZWxwZnVsXCIsb25DbGljazpjP3ZvaWQgMDpmdW5jdGlvbigpe3JldHVybiB1KCExKX0sY2xhc3NOYW1lOmVHKFwiZmVlZGJhY2stYnV0dG9uXCIsITE9PT1zJiZcInZvdGVkXCIpLHRpdGxlOmM/XCJGZWVkYmFjayBkaXNhYmxlZCBkdWUgdG8gc2V0dGluZyBORVhUX1RFTEVNRVRSWV9ESVNBQkxFRFwiOnZvaWQgMCx0eXBlOlwiYnV0dG9uXCIsY2hpbGRyZW46KDAsYi5qc3gpKHRDLHtcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCIsc3R5bGU6e3RyYW5zbGF0ZTpcIjFweCAxcHhcIn19KX0pXX0pfSl9ZnVuY3Rpb24gdFMoZSl7dmFyIHQsbixyPSgwLEEuYykoNCksbz1lLmVycm9yQ29kZTtyZXR1cm4gclswXSE9PW8/KHQ9bz8oMCxiLmpzeCkodGose2NsYXNzTmFtZTpcImVycm9yLWZlZWRiYWNrXCIsZXJyb3JDb2RlOm99KTpudWxsLHJbMF09byxyWzFdPXQpOnQ9clsxXSxyWzJdIT09dD8obj0oMCxiLmpzeCkoXCJmb290ZXJcIix7XCJkYXRhLW5leHRqcy1lcnJvci1vdmVybGF5LWZvb3RlclwiOiEwLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktZm9vdGVyXCIsY2hpbGRyZW46dH0pLHJbMl09dCxyWzNdPW4pOm49clszXSxufXZhciB0Tz1cIlxcbiAgLmVycm9yLW92ZXJsYXktZm9vdGVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcblxcbiAgICBnYXA6IDhweDtcXG4gICAgcGFkZGluZzogMTJweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgfVxcblxcbiAgLmVycm9yLWZlZWRiYWNrIHtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuXFxuICAgIHAge1xcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgICBtYXJnaW46IDA7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFwiLmNvbmNhdChcIlxcbiAgLmVycm9yLWZlZWRiYWNrIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICB9XFxuXFxuICAuZXJyb3ItZmVlZGJhY2stdGhhbmtzIHtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZy1yaWdodDogNHB4OyAvKiBUbyBtYXRjaCB0aGUgNHB4IGlubmVyIHBhZGRpbmcgb2YgdGhlIHRodW1icyB1cCBhbmQgZG93biBpY29ucyAqL1xcbiAgfVxcblxcbiAgLmZlZWRiYWNrLWJ1dHRvbiB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZCk7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0xMDApO1xcbiAgICB9XFxuXFxuICAgICY6YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTIwMCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5mZWVkYmFjay1idXR0b25bYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcXG4gICAgb3BhY2l0eTogMC43O1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgfVxcblxcbiAgLmZlZWRiYWNrLWJ1dHRvbi52b3RlZCB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMjAwKTtcXG4gIH1cXG5cXG4gIC50aHVtYnMtdXAtaWNvbixcXG4gIC50aHVtYnMtZG93bi1pY29uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMTYpO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgfVxcblwiLFwiXFxuXCIpO2Z1bmN0aW9uIHRCKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiB0UChlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSwhdHx8YS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdEIoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gdEIoZSx0KX19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gdEkoZSl7dmFyIHQsbixyLG8sYSxpPSgwLEEuYykoMTIpLGw9ZS5lcnJvck1lc3NhZ2Uscz10UCgoMCx4LnVzZVN0YXRlKSghMSksMiksYz1zWzBdLHU9c1sxXSxkPXRQKCgwLHgudXNlU3RhdGUpKCExKSwyKSxmPWRbMF0scD1kWzFdLGg9KDAseC51c2VSZWYpKG51bGwpO2lbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD1mdW5jdGlvbigpe2guY3VycmVudCYmcChoLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0PjIwMCl9LGlbMF09dCk6dD1pWzBdLGlbMV0hPT1sPyhuPVtsXSxpWzFdPWwsaVsyXT1uKTpuPWlbMl0sKDAseC51c2VMYXlvdXRFZmZlY3QpKHQsbik7dmFyIG09XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzYyBcIi5jb25jYXQoZiYmIWM/XCJ0cnVuY2F0ZWRcIjpcIlwiKTtyZXR1cm4gaVszXSE9PWx8fGlbNF0hPT1tPyhyPSgwLGIuanN4KShcInBcIix7cmVmOmgsaWQ6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiLGNsYXNzTmFtZTptLGNoaWxkcmVuOmx9KSxpWzNdPWwsaVs0XT1tLGlbNV09cik6cj1pWzVdLGlbNl0hPT1jfHxpWzddIT09Zj8obz1mJiYhYyYmKDAsYi5qc3hzKShiLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsYi5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19ncmFkaWVudF9vdmVybGF5XCJ9KSwoMCxiLmpzeCkoXCJidXR0b25cIix7b25DbGljazpmdW5jdGlvbigpe3JldHVybiB1KCEwKX0sY2xhc3NOYW1lOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2V4cGFuZF9idXR0b25cIixcImFyaWEtZXhwYW5kZWRcIjpjLFwiYXJpYS1jb250cm9sc1wiOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2NcIixjaGlsZHJlbjpcIlNob3cgTW9yZVwifSldfSksaVs2XT1jLGlbN109ZixpWzhdPW8pOm89aVs4XSxpWzldIT09cnx8aVsxMF0hPT1vPyhhPSgwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX3dyYXBwZXJcIixjaGlsZHJlbjpbcixvXX0pLGlbOV09cixpWzEwXT1vLGlbMTFdPWEpOmE9aVsxMV0sYX1mdW5jdGlvbiB0eihlKXt2YXIgdCxuPSgwLEEuYykoMikscj1lLmVycm9yVHlwZTtyZXR1cm4gblswXSE9PXI/KHQ9KDAsYi5qc3gpKFwic3BhblwiLHtpZDpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiLGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiLGNoaWxkcmVuOnJ9KSxuWzBdPXIsblsxXT10KTp0PW5bMV0sdH1mdW5jdGlvbiB0VChlKXt2YXIgdCxuLHI9KDAsQS5jKSg0KSxvPWUudGl0bGUsYT1lLmNsYXNzTmFtZTtyZXR1cm4gclswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk05LjI0OTk2IDEyLjA2MDhMOC43MTk2MyAxMS41MzA0TDUuODk2NDEgOC43MDcyMkM1LjUwNTg4IDguMzE2NyA1LjUwNTg4IDcuNjgzNTMgNS44OTY0MSA3LjI5MzAxTDguNzE5NjMgNC40Njk3OEw5LjI0OTk2IDMuOTM5NDVMMTAuMzEwNiA1LjAwMDExTDkuNzgwMjkgNS41MzA0NEw3LjMxMDYyIDguMDAwMTFMOS43ODAyOSAxMC40Njk4TDEwLjMxMDYgMTEuMDAwMUw5LjI0OTk2IDEyLjA2MDhaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSksclswXT10KTp0PXJbMF0sclsxXSE9PWF8fHJbMl0hPT1vPyhuPSgwLGIuanN4KShcInN2Z1wiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJhcmlhLWxhYmVsXCI6byxjbGFzc05hbWU6YSxjaGlsZHJlbjp0fSksclsxXT1hLHJbMl09byxyWzNdPW4pOm49clszXSxufWZ1bmN0aW9uIHREKGUpe3ZhciB0LG4scj0oMCxBLmMpKDQpLG89ZS50aXRsZSxhPWUuY2xhc3NOYW1lO3JldHVybiByWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9KDAsYi5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTYuNzUwMTEgMy45Mzk0NUw3LjI4MDQ0IDQuNDY5NzhMMTAuMTAzNyA3LjI5MzAxQzEwLjQ5NDIgNy42ODM1MyAxMC40OTQyIDguMzE2NyAxMC4xMDM3IDguNzA3MjJMNy4yODA0NCAxMS41MzA0TDYuNzUwMTEgMTIuMDYwOEw1LjY4OTQ1IDExLjAwMDFMNi4yMTk3OCAxMC40Njk4TDguNjg5NDUgOC4wMDAxMUw2LjIxOTc4IDUuNTMwNDRMNS42ODk0NSA1LjAwMDExTDYuNzUwMTEgMy45Mzk0NVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KSxyWzBdPXQpOnQ9clswXSxyWzFdIT09YXx8clsyXSE9PW8/KG49KDAsYi5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjbGFzc05hbWU6YSxcImFyaWEtbGFiZWxcIjpvLGNoaWxkcmVuOnR9KSxyWzFdPWEsclsyXT1vLHJbM109bik6bj1yWzNdLG59ZnVuY3Rpb24gdEwoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHROKGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYyx1LGQsZixwLGgsbSxnLHksdj0oMCxBLmMpKDQwKSx3PWUucnVudGltZUVycm9ycyxDPWUuYWN0aXZlSWR4LF89ZS5vbkFjdGl2ZUluZGV4Q2hhbmdlO3ZbMF0hPT1DfHx2WzFdIT09Xz8ocj1mdW5jdGlvbigpe3JldHVybigwLHguc3RhcnRUcmFuc2l0aW9uKShmdW5jdGlvbigpe0M+MCYmXyhNYXRoLm1heCgwLEMtMSkpfSl9LHZbMF09Qyx2WzFdPV8sdlsyXT1yKTpyPXZbMl07dmFyIGs9cjt2WzNdIT09Q3x8dls0XSE9PV98fHZbNV0hPT13Lmxlbmd0aD8obz1mdW5jdGlvbigpe3JldHVybigwLHguc3RhcnRUcmFuc2l0aW9uKShmdW5jdGlvbigpe0M8dy5sZW5ndGgtMSYmXyhNYXRoLm1heCgwLE1hdGgubWluKHcubGVuZ3RoLTEsQysxKSkpfSl9LHZbM109Qyx2WzRdPV8sdls1XT13Lmxlbmd0aCx2WzZdPW8pOm89dls2XTt2YXIgRT1vLGo9KDAseC51c2VSZWYpKG51bGwpLFM9KDAseC51c2VSZWYpKG51bGwpLE89KHQ9KDAseC51c2VTdGF0ZSkobnVsbCksbj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRMKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHRMKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxCPU9bMF0sUD1PWzFdO3ZbN109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oYT1mdW5jdGlvbihlKXtQKGUpfSx2WzddPWEpOmE9dls3XTt2YXIgST1hO3ZbOF0hPT1FfHx2WzldIT09a3x8dlsxMF0hPT1CPyhpPWZ1bmN0aW9uKCl7aWYobnVsbCE9Qil7dmFyIGU9Qi5nZXRSb290Tm9kZSgpLHQ9c2VsZi5kb2N1bWVudCxuPWZ1bmN0aW9uKGUpe1wiQXJyb3dMZWZ0XCI9PT1lLmtleT8oZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksayYmaygpKTpcIkFycm93UmlnaHRcIj09PWUua2V5JiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksRSYmRSgpKX07cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixuKSxlIT09dCYmdC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLG4pLGZ1bmN0aW9uKCl7ZS5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLG4pLGUhPT10JiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsbil9fX0sbD1bQixFLGtdLHZbOF09RSx2WzldPWssdlsxMF09Qix2WzExXT1pLHZbMTJdPWwpOihpPXZbMTFdLGw9dlsxMl0pLCgwLHgudXNlRWZmZWN0KShpLGwpLHZbMTNdIT09Q3x8dlsxNF0hPT1CfHx2WzE1XSE9PXcubGVuZ3RoPyhzPWZ1bmN0aW9uKCl7aWYobnVsbCE9Qil7dmFyIGUsdCxuPUIuZ2V0Um9vdE5vZGUoKTtpZihlPW4sbnVsbCE9KHQ9U2hhZG93Um9vdCkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLmhhc0luc3RhbmNlXT8hIXRbU3ltYm9sLmhhc0luc3RhbmNlXShlKTplIGluc3RhbmNlb2YgdCl7dmFyIHI9bi5hY3RpdmVFbGVtZW50OzA9PT1DP2ouY3VycmVudCYmcj09PWouY3VycmVudCYmai5jdXJyZW50LmJsdXIoKTpDPT09dy5sZW5ndGgtMSYmUy5jdXJyZW50JiZyPT09Uy5jdXJyZW50JiZTLmN1cnJlbnQuYmx1cigpfX19LGM9W0IsQyx3Lmxlbmd0aF0sdlsxM109Qyx2WzE0XT1CLHZbMTVdPXcubGVuZ3RoLHZbMTZdPXMsdlsxN109Yyk6KHM9dlsxNl0sYz12WzE3XSksKDAseC51c2VFZmZlY3QpKHMsYyk7dmFyIHo9MD09PUMsVD0wPT09Qzt2WzE4XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh1PSgwLGIuanN4KSh0VCx7dGl0bGU6XCJwcmV2aW91c1wiLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b24taWNvblwifSksdlsxOF09dSk6dT12WzE4XSx2WzE5XSE9PWt8fHZbMjBdIT09enx8dlsyMV0hPT1UPyhkPSgwLGIuanN4KShcImJ1dHRvblwiLHtyZWY6aix0eXBlOlwiYnV0dG9uXCIsZGlzYWJsZWQ6eixcImFyaWEtZGlzYWJsZWRcIjpULG9uQ2xpY2s6ayxcImRhdGEtbmV4dGpzLWRpYWxvZy1lcnJvci1wcmV2aW91c1wiOiEwLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b25cIixjaGlsZHJlbjp1fSksdlsxOV09ayx2WzIwXT16LHZbMjFdPVQsdlsyMl09ZCk6ZD12WzIyXTt2YXIgRD1DKzE7dlsyM10hPT1DfHx2WzI0XSE9PUQ/KGY9KDAsYi5qc3hzKShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1kaWFsb2ctZXJyb3ItaW5kZXhcIjpDLGNoaWxkcmVuOltELFwiL1wiXX0pLHZbMjNdPUMsdlsyNF09RCx2WzI1XT1mKTpmPXZbMjVdO3ZhciBMPXcubGVuZ3RofHwxO3ZbMjZdIT09TD8ocD0oMCxiLmpzeCkoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlci10b3RhbC1jb3VudFwiOiEwLGNoaWxkcmVuOkx9KSx2WzI2XT1MLHZbMjddPXApOnA9dlsyN10sdlsyOF0hPT1mfHx2WzI5XSE9PXA/KGg9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXBhZ2luYXRpb24tY291bnRcIixjaGlsZHJlbjpbZixwXX0pLHZbMjhdPWYsdlsyOV09cCx2WzMwXT1oKTpoPXZbMzBdO3ZhciBOPUM+PXcubGVuZ3RoLTEsUj1DPj13Lmxlbmd0aC0xO3JldHVybiB2WzMxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhtPSgwLGIuanN4KSh0RCx7dGl0bGU6XCJuZXh0XCIsY2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1wYWdpbmF0aW9uLWJ1dHRvbi1pY29uXCJ9KSx2WzMxXT1tKTptPXZbMzFdLHZbMzJdIT09RXx8dlszM10hPT1OfHx2WzM0XSE9PVI/KGc9KDAsYi5qc3gpKFwiYnV0dG9uXCIse3JlZjpTLHR5cGU6XCJidXR0b25cIixkaXNhYmxlZDpOLFwiYXJpYS1kaXNhYmxlZFwiOlIsb25DbGljazpFLFwiZGF0YS1uZXh0anMtZGlhbG9nLWVycm9yLW5leHRcIjohMCxjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXBhZ2luYXRpb24tYnV0dG9uXCIsY2hpbGRyZW46bX0pLHZbMzJdPUUsdlszM109Tix2WzM0XT1SLHZbMzVdPWcpOmc9dlszNV0sdlszNl0hPT1kfHx2WzM3XSE9PWh8fHZbMzhdIT09Zz8oeT0oMCxiLmpzeHMpKFwibmF2XCIse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktcGFnaW5hdGlvbiBkaWFsb2ctZXhjbHVkZS1jbG9zaW5nLWZyb20tb3V0c2lkZS1jbGlja1wiLHJlZjpJLGNoaWxkcmVuOltkLGgsZ119KSx2WzM2XT1kLHZbMzddPWgsdlszOF09Zyx2WzM5XT15KTp5PXZbMzldLHl9ZnVuY3Rpb24gdFIoZSl7dmFyIHQsbixyLG8sYT0oMCxBLmMpKDMpO3JldHVybihhWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHI9KDAsYi5qc3gpKFwiY2lyY2xlXCIse2N4OlwiN1wiLGN5OlwiN1wiLHI6XCI1LjVcIixzdHJva2VXaWR0aDpcIjNcIn0pLGFbMF09cik6cj1hWzBdLGFbMV0hPT1lKT8obz0oMCxiLmpzeCkoXCJzdmdcIiwodD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDE0IDE0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLG49bj17Y2hpbGRyZW46cn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksYVsxXT1lLGFbMl09byk6bz1hWzJdLG99ZnVuY3Rpb24gdE0oZSl7dmFyIHQsbixyLG8sYSxpPSgwLEEuYykoMzEpLGw9ZS52ZXJzaW9uSW5mbyxzPWUuYnVuZGxlck5hbWUsYz1sLnN0YWxlbmVzcztpZihpWzBdIT09c3x8aVsxXSE9PWN8fGlbMl0hPT1sKXt2PVN5bWJvbC5mb3IoXCJyZWFjdC5lYXJseV9yZXR1cm5fc2VudGluZWxcIik7bjp7dmFyIHU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pbnN0YWxsZWQsbj1lLnN0YWxlbmVzcyxyPWUuZXhwZWN0ZWQsbz1cIlwiLGE9XCJcIixpPVwiXCIsbD1cIk5leHQuanMgXCIuY29uY2F0KHQpO3N3aXRjaChuKXtjYXNlXCJuZXdlci10aGFuLW5wbVwiOmNhc2VcImZyZXNoXCI6bz1sLGE9XCJMYXRlc3QgYXZhaWxhYmxlIHZlcnNpb24gaXMgZGV0ZWN0ZWQgKFwiLmNvbmNhdCh0LFwiKS5cIiksaT1cImZyZXNoXCI7YnJlYWs7Y2FzZVwic3RhbGUtcGF0Y2hcIjpjYXNlXCJzdGFsZS1taW5vclwiOm89XCJcIi5jb25jYXQobCxcIiAoc3RhbGUpXCIpLGE9XCJUaGVyZSBpcyBhIG5ld2VyIHZlcnNpb24gKFwiLmNvbmNhdChyLFwiKSBhdmFpbGFibGUsIHVwZ3JhZGUgcmVjb21tZW5kZWQhIFwiKSxpPVwic3RhbGVcIjticmVhaztjYXNlXCJzdGFsZS1tYWpvclwiOm89XCJcIi5jb25jYXQobCxcIiAob3V0ZGF0ZWQpXCIpLGE9XCJBbiBvdXRkYXRlZCB2ZXJzaW9uIGRldGVjdGVkIChsYXRlc3QgaXMgXCIuY29uY2F0KHIsXCIpLCB1cGdyYWRlIGlzIGhpZ2hseSByZWNvbW1lbmRlZCFcIiksaT1cIm91dGRhdGVkXCI7YnJlYWs7Y2FzZVwic3RhbGUtcHJlcmVsZWFzZVwiOm89XCJcIi5jb25jYXQobCxcIiAoc3RhbGUpXCIpLGE9XCJUaGVyZSBpcyBhIG5ld2VyIGNhbmFyeSB2ZXJzaW9uIChcIi5jb25jYXQocixcIikgYXZhaWxhYmxlLCBwbGVhc2UgdXBncmFkZSEgXCIpLGk9XCJzdGFsZVwiO2JyZWFrO2Nhc2VcInVua25vd25cIjpvPVwiXCIuY29uY2F0KGwsXCIgKHVua25vd24pXCIpLGE9XCJObyBOZXh0LmpzIHZlcnNpb24gZGF0YSB3YXMgZm91bmQuXCIsaT1cInVua25vd25cIn1yZXR1cm57dGV4dDpvLGluZGljYXRvckNsYXNzOmksdGl0bGU6YX19KGwpLGQ9dS50ZXh0LGY9dS5pbmRpY2F0b3JDbGFzcyxwPXUudGl0bGU7aWYoeD1kLHc9cCxtPVwiVHVyYm9wYWNrXCI9PT1zLGMuc3RhcnRzV2l0aChcInN0YWxlXCIpKXt2YXIgaCxtLGcseSx2LHgsdyxDLF8saz1tJiZcInR1cmJvcGFjay10ZXh0XCI7aVsxMF0hPT1rPyhDPWVHKGspLGlbMTBdPWssaVsxMV09Qyk6Qz1pWzExXSxpWzEyXSE9PXN8fGlbMTNdIT09Qz8oXz0oMCxiLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpDLGNoaWxkcmVuOnN9KSxpWzEyXT1zLGlbMTNdPUMsaVsxNF09Xyk6Xz1pWzE0XSx2PSgwLGIuanN4cykoXCJhXCIse2NsYXNzTmFtZTpcIm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMgZGlhbG9nLWV4Y2x1ZGUtY2xvc2luZy1mcm9tLW91dHNpZGUtY2xpY2tcIix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ZlcnNpb24tc3RhbGVuZXNzXCIsY2hpbGRyZW46WygwLGIuanN4KSh0Uix7Y2xhc3NOYW1lOmVHKFwidmVyc2lvbi1zdGFsZW5lc3MtaW5kaWNhdG9yXCIsZil9KSwoMCxiLmpzeCkoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtdmVyc2lvbi1jaGVja2VyXCI6ITAsdGl0bGU6dyxjaGlsZHJlbjp4fSksX119KTticmVhayBufXk9XCJuZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIGRpYWxvZy1leGNsdWRlLWNsb3NpbmctZnJvbS1vdXRzaWRlLWNsaWNrXCIsaD10UixnPWVHKFwidmVyc2lvbi1zdGFsZW5lc3MtaW5kaWNhdG9yXCIsZil9aVswXT1zLGlbMV09YyxpWzJdPWwsaVszXT1oLGlbNF09bSxpWzVdPWcsaVs2XT15LGlbN109dixpWzhdPXgsaVs5XT13fWVsc2UgaD1pWzNdLG09aVs0XSxnPWlbNV0seT1pWzZdLHY9aVs3XSx4PWlbOF0sdz1pWzldO2lmKHYhPT1TeW1ib2wuZm9yKFwicmVhY3QuZWFybHlfcmV0dXJuX3NlbnRpbmVsXCIpKXJldHVybiB2O2lbMTVdIT09aHx8aVsxNl0hPT1nPyh0PSgwLGIuanN4KShoLHtjbGFzc05hbWU6Z30pLGlbMTVdPWgsaVsxNl09ZyxpWzE3XT10KTp0PWlbMTddLGlbMThdIT09eHx8aVsxOV0hPT13PyhuPSgwLGIuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy12ZXJzaW9uLWNoZWNrZXJcIjohMCx0aXRsZTp3LGNoaWxkcmVuOnh9KSxpWzE4XT14LGlbMTldPXcsaVsyMF09bik6bj1pWzIwXTt2YXIgRT1tJiZcInR1cmJvcGFjay10ZXh0XCI7cmV0dXJuIGlbMjFdIT09RT8ocj1lRyhFKSxpWzIxXT1FLGlbMjJdPXIpOnI9aVsyMl0saVsyM10hPT1zfHxpWzI0XSE9PXI/KG89KDAsYi5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6cixjaGlsZHJlbjpzfSksaVsyM109cyxpWzI0XT1yLGlbMjVdPW8pOm89aVsyNV0saVsyNl0hPT15fHxpWzI3XSE9PXR8fGlbMjhdIT09bnx8aVsyOV0hPT1vPyhhPSgwLGIuanN4cykoXCJzcGFuXCIse2NsYXNzTmFtZTp5LGNoaWxkcmVuOlt0LG4sb119KSxpWzI2XT15LGlbMjddPXQsaVsyOF09bixpWzI5XT1vLGlbMzBdPWEpOmE9aVszMF0sYX1mdW5jdGlvbiB0WihlKXt2YXIgdCxuLHIsbyxhPSgwLEEuYykoMTEpLGk9ZS5ydW50aW1lRXJyb3JzLGw9ZS5hY3RpdmVJZHgscz1lLnNldEFjdGl2ZUluZGV4LGM9ZS52ZXJzaW9uSW5mbyx1PXByb2Nlc3MuZW52Ll9fTkVYVF9CVU5ETEVSfHxcIldlYnBhY2tcIjthWzBdIT09aT8odD1udWxsIT1pP2k6W10sYVswXT1pLGFbMV09dCk6dD1hWzFdO3ZhciBkPW51bGwhPWw/bDowLGY9bnVsbCE9cz9zOnRVO3JldHVybiBhWzJdIT09dHx8YVszXSE9PWR8fGFbNF0hPT1mPyhuPSgwLGIuanN4KSh0Rix7c2lkZTpcImxlZnRcIixjaGlsZHJlbjooMCxiLmpzeCkodE4se3J1bnRpbWVFcnJvcnM6dCxhY3RpdmVJZHg6ZCxvbkFjdGl2ZUluZGV4Q2hhbmdlOmZ9KX0pLGFbMl09dCxhWzNdPWQsYVs0XT1mLGFbNV09bik6bj1hWzVdLGFbNl0hPT1jPyhyPWMmJigwLGIuanN4KSh0Rix7c2lkZTpcInJpZ2h0XCIsY2hpbGRyZW46KDAsYi5qc3gpKHRNLHt2ZXJzaW9uSW5mbzpjLGJ1bmRsZXJOYW1lOnV9KX0pLGFbNl09YyxhWzddPXIpOnI9YVs3XSxhWzhdIT09bnx8YVs5XSE9PXI/KG89KDAsYi5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWVycm9yLW92ZXJsYXktbmF2XCI6ITAsY2hpbGRyZW46W24scl19KSxhWzhdPW4sYVs5XT1yLGFbMTBdPW8pOm89YVsxMF0sb31mdW5jdGlvbiB0VSgpe31mdW5jdGlvbiB0RihlKXt2YXIgdCxuLHI9KDAsQS5jKSg0KSxvPWUuY2hpbGRyZW4sYT1lLnNpZGUsaT12b2lkIDA9PT1hP1wibGVmdFwiOmE7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxiLmpzeCkodHEse30pLHJbMF09dCk6dD1yWzBdLHJbMV0hPT1vfHxyWzJdIT09aT8obj0oMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktbm90Y2hcIixcImRhdGEtc2lkZVwiOmksY2hpbGRyZW46W28sdF19KSxyWzFdPW8sclsyXT1pLHJbM109bik6bj1yWzNdLG59ZnVuY3Rpb24gdHEoKXt2YXIgZSx0LG4scj0oMCxBLmMpKDMpO3JldHVybiByWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGU9e21hc2tUeXBlOlwiYWxwaGFcIn0sclswXT1lKTplPXJbMF0sclsxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4cykoXCJtYXNrXCIse2lkOlwiZXJyb3Jfb3ZlcmxheV9uYXZfbWFzazBfMjY2N18xNDY4N1wiLHN0eWxlOmUsbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMFwiLHk6XCItMVwiLHdpZHRoOlwiNjBcIixoZWlnaHQ6XCI0M1wiLGNoaWxkcmVuOlsoMCxiLmpzeHMpKFwibWFza1wiLHtpZDpcImVycm9yX292ZXJsYXlfbmF2X3BhdGhfMV9vdXRzaWRlXzFfMjY2N18xNDY4N1wiLG1hc2tVbml0czpcInVzZXJTcGFjZU9uVXNlXCIseDpcIjBcIix5OlwiLTFcIix3aWR0aDpcIjYwXCIsaGVpZ2h0OlwiNDNcIixmaWxsOlwiYmxhY2tcIixjaGlsZHJlbjpbKDAsYi5qc3gpKFwicmVjdFwiLHtmaWxsOlwid2hpdGVcIix5OlwiLTFcIix3aWR0aDpcIjYwXCIsaGVpZ2h0OlwiNDNcIn0pLCgwLGIuanN4KShcInBhdGhcIix7ZDpcIk0xIDBMOC4wNzgzIDBDMTUuNzcyIDAgMjIuNzgzNiA0LjQxMzI0IDI2LjExMSAxMS4zNTAxTDM0Ljg4ODkgMjkuNjQ5OEMzOC4yMTY0IDM2LjU4NjggNDUuMjI4IDQxIDUyLjkyMTcgNDFINjBIMUwxIDBaXCJ9KV19KSwoMCxiLmpzeCkoXCJwYXRoXCIse2Q6XCJNMSAwTDguMDc4MyAwQzE1Ljc3MiAwIDIyLjc4MzYgNC40MTMyNCAyNi4xMTEgMTEuMzUwMUwzNC44ODg5IDI5LjY0OThDMzguMjE2NCAzNi41ODY4IDQ1LjIyOCA0MSA1Mi45MjE3IDQxSDYwSDFMMSAwWlwiLGZpbGw6XCJ3aGl0ZVwifSksKDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTTEgMFYtMUgwVjBMMSAwWk0xIDQxSDBWNDJIMVY0MVpNMzQuODg4OSAyOS42NDk4TDMzLjk4NzMgMzAuMDgyM0wzNC44ODg5IDI5LjY0OThaTTI2LjExMSAxMS4zNTAxTDI3LjAxMjcgMTAuOTE3N0wyNi4xMTEgMTEuMzUwMVpNMSAxSDguMDc4M1YtMUgxVjFaTTYwIDQwSDFWNDJINjBWNDBaTTIgNDFWMEwwIDBMMCA0MUgyWk0yNS4yMDk0IDExLjc4MjZMMzMuOTg3MyAzMC4wODIzTDM1Ljc5MDYgMjkuMjE3NEwyNy4wMTI3IDEwLjkxNzdMMjUuMjA5NCAxMS43ODI2Wk01Mi45MjE3IDQySDYwVjQwSDUyLjkyMTdWNDJaTTMzLjk4NzMgMzAuMDgyM0MzNy40ODExIDM3LjM2NjEgNDQuODQzMyA0MiA1Mi45MjE3IDQyVjQwQzQ1LjYxMjcgNDAgMzguOTUxNyAzNS44MDc0IDM1Ljc5MDYgMjkuMjE3NEwzMy45ODczIDMwLjA4MjNaTTguMDc4MyAxQzE1LjM4NzMgMSAyMi4wNDgzIDUuMTkyNTcgMjUuMjA5NCAxMS43ODI2TDI3LjAxMjcgMTAuOTE3N0MyMy41MTg4IDMuNjMzOSAxNi4xNTY3IC0xIDguMDc4MyAtMVYxWlwiLGZpbGw6XCJibGFja1wiLG1hc2s6XCJ1cmwoI2Vycm9yX292ZXJsYXlfbmF2X3BhdGhfMV9vdXRzaWRlXzFfMjY2N18xNDY4NylcIn0pXX0pLHJbMV09dCk6dD1yWzFdLHJbMl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obj0oMCxiLmpzeHMpKFwic3ZnXCIse3dpZHRoOlwiNjBcIixoZWlnaHQ6XCI0MlwiLHZpZXdCb3g6XCIwIDAgNjAgNDJcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LW5vdGNoLXRhaWxcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwibm9uZVwiLGNoaWxkcmVuOlt0LCgwLGIuanN4cykoXCJnXCIse21hc2s6XCJ1cmwoI2Vycm9yX292ZXJsYXlfbmF2X21hc2swXzI2NjdfMTQ2ODcpXCIsY2hpbGRyZW46WygwLGIuanN4cykoXCJtYXNrXCIse2lkOlwiZXJyb3Jfb3ZlcmxheV9uYXZfcGF0aF8zX291dHNpZGVfMl8yNjY3XzE0Njg3XCIsbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiLTFcIix5OlwiMC4wMjQ0MTQxXCIsd2lkdGg6XCI2MFwiLGhlaWdodDpcIjQzXCIsZmlsbDpcImJsYWNrXCIsY2hpbGRyZW46WygwLGIuanN4KShcInJlY3RcIix7ZmlsbDpcIndoaXRlXCIseDpcIi0xXCIseTpcIjAuMDI0NDE0MVwiLHdpZHRoOlwiNjBcIixoZWlnaHQ6XCI0M1wifSksKDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTTAgMS4wMjQ0MUg3LjA3ODNDMTQuNzcyIDEuMDI0NDEgMjEuNzgzNiA1LjQzNzY1IDI1LjExMSAxMi4zNzQ2TDMzLjg4ODkgMzAuNjc0M0MzNy4yMTY0IDM3LjYxMTIgNDQuMjI4IDQyLjAyNDQgNTEuOTIxNyA0Mi4wMjQ0SDU5SDBMMCAxLjAyNDQxWlwifSldfSksKDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTTAgMS4wMjQ0MUg3LjA3ODNDMTQuNzcyIDEuMDI0NDEgMjEuNzgzNiA1LjQzNzY1IDI1LjExMSAxMi4zNzQ2TDMzLjg4ODkgMzAuNjc0M0MzNy4yMTY0IDM3LjYxMTIgNDQuMjI4IDQyLjAyNDQgNTEuOTIxNyA0Mi4wMjQ0SDU5SDBMMCAxLjAyNDQxWlwiLGZpbGw6XCJ2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKVwifSksKDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTTAgMS4wMjQ0MUwwIDAuMDI0NDE0MUgtMVYxLjAyNDQxSDBaTTAgNDIuMDI0NEgtMVY0My4wMjQ0SDBMMCA0Mi4wMjQ0Wk0zMy44ODg5IDMwLjY3NDNMMzIuOTg3MyAzMS4xMDY4TDMzLjg4ODkgMzAuNjc0M1pNMjUuMTExIDEyLjM3NDZMMjYuMDEyNyAxMS45NDIxTDI1LjExMSAxMi4zNzQ2Wk0wIDIuMDI0NDFINy4wNzgzVjAuMDI0NDE0MUgwTDAgMi4wMjQ0MVpNNTkgNDEuMDI0NEgwTDAgNDMuMDI0NEg1OVY0MS4wMjQ0Wk0xIDQyLjAyNDRMMSAxLjAyNDQxSC0xTC0xIDQyLjAyNDRIMVpNMjQuMjA5NCAxMi44MDcxTDMyLjk4NzMgMzEuMTA2OEwzNC43OTA2IDMwLjI0MThMMjYuMDEyNyAxMS45NDIxTDI0LjIwOTQgMTIuODA3MVpNNTEuOTIxNyA0My4wMjQ0SDU5VjQxLjAyNDRINTEuOTIxN1Y0My4wMjQ0Wk0zMi45ODczIDMxLjEwNjhDMzYuNDgxMSAzOC4zOTA1IDQzLjg0MzMgNDMuMDI0NCA1MS45MjE3IDQzLjAyNDRWNDEuMDI0NEM0NC42MTI3IDQxLjAyNDQgMzcuOTUxNyAzNi44MzE4IDM0Ljc5MDYgMzAuMjQxOEwzMi45ODczIDMxLjEwNjhaTTcuMDc4MyAyLjAyNDQxQzE0LjM4NzMgMi4wMjQ0MSAyMS4wNDgzIDYuMjE2OTkgMjQuMjA5NCAxMi44MDcxTDI2LjAxMjcgMTEuOTQyMUMyMi41MTg4IDQuNjU4MzEgMTUuMTU2NyAwLjAyNDQxNDEgNy4wNzgzIDAuMDI0NDE0MVYyLjAyNDQxWlwiLGZpbGw6XCJ2YXIoLS1zdHJva2UtY29sb3IpXCIsbWFzazpcInVybCgjZXJyb3Jfb3ZlcmxheV9uYXZfcGF0aF8zX291dHNpZGVfMl8yNjY3XzE0Njg3KVwifSldfSldfSksclsyXT1uKTpuPXJbMl0sbn1mdW5jdGlvbiB0SChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9dmFyIHRWPVtcIltkYXRhLW5leHQtbWFya11cIixcIltkYXRhLWlzc3Vlcy1vcGVuXVwiLFwiI25leHRqcy1kZXYtdG9vbHMtbWVudVwiLFwiW2RhdGEtbmV4dGpzLWVycm9yLW92ZXJsYXktbmF2XVwiLFwiW2RhdGEtaW5mby1wb3BvdmVyXVwiLFwiW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLW92ZXJsYXldXCIsXCJbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZm9vdGVyXVwiLFwiW2RhdGEtbmV4dGpzLWVycm9yLW92ZXJsYXktZm9vdGVyXVwiXSx0JD1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkPWUuY2hpbGRyZW4sZj1lLmNsYXNzTmFtZSxwPWUub25DbG9zZSxoPWVbXCJhcmlhLWxhYmVsbGVkYnlcIl0sbT1lW1wiYXJpYS1kZXNjcmliZWRieVwiXSxnPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCIsXCJvbkNsb3NlXCIsXCJhcmlhLWxhYmVsbGVkYnlcIixcImFyaWEtZGVzY3JpYmVkYnlcIl0pLHk9eC51c2VSZWYobnVsbCksdj0odD14LnVzZVN0YXRlKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuaGFzRm9jdXMoKT9cImRpYWxvZ1wiOnZvaWQgMCksbj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRIKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHRIKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSx3PXZbMF0sQz12WzFdO3JldHVybiByPXkuY3VycmVudCxvPXRWLGE9ZnVuY3Rpb24oZSl7cmV0dXJuIGUucHJldmVudERlZmF1bHQoKSxudWxsPT1wP3ZvaWQgMDpwKCl9LChzPSgwLEEuYykoNSkpWzBdIT09b3x8c1sxXSE9PXJ8fHNbMl0hPT1hPyhpPWZ1bmN0aW9uKCl7aWYobnVsbCE9ciYmbnVsbCE9YSl7dmFyIGU9ZnVuY3Rpb24oZSl7ISghcnx8ci5jb250YWlucyhlLnRhcmdldCkpJiYoby5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiBlLnRhcmdldC5jbG9zZXN0KHQpfSl8fGEoZSkpfSx0PXIuZ2V0Um9vdE5vZGUoKTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLGUpLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsZSx7cGFzc2l2ZTohMX0pLGZ1bmN0aW9uKCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLGUpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsZSl9fX0sbD1bYSxyLG9dLHNbMF09byxzWzFdPXIsc1syXT1hLHNbM109aSxzWzRdPWwpOihpPXNbM10sbD1zWzRdKSx4LnVzZUVmZmVjdChpLGwpLHgudXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXtDKGRvY3VtZW50Lmhhc0ZvY3VzKCk/XCJkaWFsb2dcIjp2b2lkIDApfTtpZihudWxsIT15LmN1cnJlbnQpcmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIixlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIixlKSxmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNcIixlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIixlKX19LFtdKSx4LnVzZUVmZmVjdChmdW5jdGlvbigpe3ZhciBlLHQsbj15LmN1cnJlbnQscj1udWxsPT1uP3ZvaWQgMDpuLmdldFJvb3ROb2RlKCksbz0oZT1yLG51bGwhPSh0PVNoYWRvd1Jvb3QpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5oYXNJbnN0YW5jZV0/ISF0W1N5bWJvbC5oYXNJbnN0YW5jZV0oZSk6ZSBpbnN0YW5jZW9mIHQpP251bGw9PXI/dm9pZCAwOnIuYWN0aXZlRWxlbWVudDpudWxsO3JldHVybiBudWxsPT1ufHxuLmZvY3VzKCksZnVuY3Rpb24oKXtudWxsPT1ufHxuLmJsdXIoKSxudWxsPT1vfHxvLmZvY3VzKCl9fSxbXSksKDAsYi5qc3gpKFwiZGl2XCIsKGM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7cmVmOnksdGFiSW5kZXg6LTEsXCJkYXRhLW5leHRqcy1kaWFsb2dcIjohMCxcImRhdGEtbmV4dGpzLXNjcm9sbGFibGUtY29udGVudFwiOiEwLHJvbGU6dyxcImFyaWEtbGFiZWxsZWRieVwiOmgsXCJhcmlhLWRlc2NyaWJlZGJ5XCI6bSxcImFyaWEtbW9kYWxcIjpcInRydWVcIixjbGFzc05hbWU6ZixvbktleURvd246ZnVuY3Rpb24oZSl7XCJFc2NhcGVcIj09PWUua2V5JiYobnVsbD09cHx8cCgpKX19LGcpLHU9dT17Y2hpbGRyZW46ZH0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoYyxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh1KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh1KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSxlKSl9KSxjKSl9O2Z1bmN0aW9uIHRXKGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYz0oMCxBLmMpKDEyKTtyZXR1cm4oY1swXSE9PWU/KGk9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb30oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLCEodC5pbmRleE9mKG4pPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLFtcImNoaWxkcmVuXCIsXCJvbkNsb3NlXCIsXCJmb290ZXJcIl0pLHI9ZS5jaGlsZHJlbixhPWUub25DbG9zZSxvPWUuZm9vdGVyLGNbMF09ZSxjWzFdPXIsY1syXT1vLGNbM109YSxjWzRdPWkpOihyPWNbMV0sbz1jWzJdLGE9Y1szXSxpPWNbNF0pLGNbNV0hPT1yfHxjWzZdIT09YXx8Y1s3XSE9PWkpPyhsPSgwLGIuanN4KSh0JCwodD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtcImFyaWEtbGFiZWxsZWRieVwiOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCIsXCJhcmlhLWRlc2NyaWJlZGJ5XCI6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktZGlhbG9nLXNjcm9sbFwiLG9uQ2xvc2U6YX0saSksbj1uPXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxjWzVdPXIsY1s2XT1hLGNbN109aSxjWzhdPWwpOmw9Y1s4XSxjWzldIT09b3x8Y1sxMF0hPT1sPyhzPSgwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1kaWFsb2ctY29udGFpbmVyXCIsY2hpbGRyZW46W2wsb119KSxjWzldPW8sY1sxMF09bCxjWzExXT1zKTpzPWNbMTFdLHN9ZnVuY3Rpb24gdFkoZSl7dmFyIHQsbixyLG89KDAsQS5jKSgyKTtyZXR1cm4gb1swXSE9PWU/KHI9KDAsYi5qc3gpKFwiZGl2XCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXCI6ITB9LGUpLG49bj17Y2hpbGRyZW46ZS5jaGlsZHJlbn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksb1swXT1lLG9bMV09cik6cj1vWzFdLHJ9ZnVuY3Rpb24gdEsoZSl7dmFyIHQsbj0oMCxBLmMpKDIpLHI9ZS5jaGlsZHJlbjtyZXR1cm4gblswXSE9PXI/KHQ9KDAsYi5qc3gpKHRZLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcIixjaGlsZHJlbjpyfSksblswXT1yLG5bMV09dCk6dD1uWzFdLHR9ZnVuY3Rpb24gdFgoZSl7dmFyIHQsbj0oMCxBLmMpKDIpLHI9ZS5jaGlsZHJlbjtyZXR1cm4gblswXSE9PXI/KHQ9KDAsYi5qc3gpKGVXLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5XCIsY2hpbGRyZW46cn0pLG5bMF09cixuWzFdPXQpOnQ9blsxXSx0fXZhciB0Rz0wLHRRPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaSxsLHM9KDAsQS5jKSg5KTtyZXR1cm4oc1swXSE9PWU/KGE9ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb30oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLCEodC5pbmRleE9mKG4pPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLFtcImNsYXNzTmFtZVwiLFwiY2hpbGRyZW5cIl0pLG89ZS5jbGFzc05hbWUscj1lLmNoaWxkcmVuLHNbMF09ZSxzWzFdPXIsc1syXT1vLHNbM109YSk6KHI9c1sxXSxvPXNbMl0sYT1zWzNdKSxzWzRdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGk9W10sc1s0XT1pKTppPXNbNF0seC51c2VFZmZlY3QodDAsaSksc1s1XSE9PXJ8fHNbNl0hPT1vfHxzWzddIT09YSk/KGw9KDAsYi5qc3gpKFwiZGl2XCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheVwiOiEwLGNsYXNzTmFtZTpvfSxhKSxuPW49e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSksdCkpLHNbNV09cixzWzZdPW8sc1s3XT1hLHNbOF09bCk6bD1zWzhdLGx9O2Z1bmN0aW9uIHRKKCl7c2V0VGltZW91dChmdW5jdGlvbigpezAhPT10RyYmMD09LS10RyYmKHZvaWQgMCE9PXQmJihkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD10LHQ9dm9pZCAwKSx2b2lkIDAhPT1uJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz1uLG49dm9pZCAwKSl9KX1mdW5jdGlvbiB0MCgpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoISh0RysrPjApKXt2YXIgZT13aW5kb3cuaW5uZXJXaWR0aC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7ZT4wJiYodD1kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCxkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD1cIlwiLmNvbmNhdChlLFwicHhcIikpLG49ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyxkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PVwiaGlkZGVuXCJ9fSksdEp9ZnVuY3Rpb24gdDEoKXt2YXIgZSx0LG49KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcXG4gICAgcGFkZGluZzogaW5pdGlhbDtcXG4gICAgdG9wOiAxMHZoO1xcbiAgfVxcblwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiB0MT1mdW5jdGlvbigpe3JldHVybiBufSxufWZ1bmN0aW9uIHQyKGUpe3ZhciB0LG4scixvLGEsaT0oMCxBLmMpKDYpO3JldHVybihpWzBdIT09ZT8obz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wiY2hpbGRyZW5cIl0pLHI9ZS5jaGlsZHJlbixpWzBdPWUsaVsxXT1yLGlbMl09byk6KHI9aVsxXSxvPWlbMl0pLGlbM10hPT1yfHxpWzRdIT09byk/KGE9KDAsYi5qc3gpKHRRLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sbyksbj1uPXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxpWzNdPXIsaVs0XT1vLGlbNV09YSk6YT1pWzVdLGF9dmFyIHQ0PWVzKHQxKCkpO2Z1bmN0aW9uIHQ1KGUpe3ZhciB0LG4scixvPSgwLEEuYykoNCksYT1NYXRoLm1pbihlLmVycm9yQ291bnQtZS5hY3RpdmVJZHgtMSwyKTtyZXR1cm4gb1swXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllciBlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllci0xXCIsY2hpbGRyZW46XCIxXCJ9KSxuPSgwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllciBlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllci0yXCIsY2hpbGRyZW46XCIyXCJ9KSxvWzBdPXQsb1sxXT1uKToodD1vWzBdLG49b1sxXSksb1syXSE9PWE/KHI9KDAsYi5qc3gpKFwiZGl2XCIse1wiYXJpYS1oaWRkZW5cIjohMCxjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFja1wiLGNoaWxkcmVuOigwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stc3RhY2tcIixcImRhdGEtc3RhY2stY291bnRcIjphLGNoaWxkcmVuOlt0LG5dfSl9KSxvWzJdPWEsb1szXT1yKTpyPW9bM10scn1mdW5jdGlvbiB0MyhlKXt2YXIgdCxuPSgwLEEuYykoMikscj1lLmVudmlyb25tZW50TmFtZTtyZXR1cm4gblswXSE9PXI/KHQ9KDAsYi5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWVudmlyb25tZW50LW5hbWUtbGFiZWxcIjohMCxjaGlsZHJlbjpyfSksblswXT1yLG5bMV09dCk6dD1uWzFdLHR9ZnVuY3Rpb24gdDYoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHQ5KGUpe3ZhciB0LG4scj1udWxsPT1lP3ZvaWQgMDplLmdldFJvb3ROb2RlKCk7cmV0dXJuKHQ9cixudWxsIT0obj1TaGFkb3dSb290KSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmbltTeW1ib2wuaGFzSW5zdGFuY2VdPyEhbltTeW1ib2wuaGFzSW5zdGFuY2VdKHQpOnQgaW5zdGFuY2VvZiBuKT9udWxsPT1yP3ZvaWQgMDpyLmFjdGl2ZUVsZW1lbnQ6bnVsbH1mdW5jdGlvbiB0OChlLHQsbixyLG8pe3ZhciBhLGksbD0oMCxBLmMpKDcpO2xbMF0hPT1ufHxsWzFdIT09cnx8bFsyXSE9PW98fGxbM10hPT1lfHxsWzRdIT09dD8oYT1mdW5jdGlvbigpe2lmKG4pe3ZhciBhLGk9b3x8KG51bGw9PShhPWUuY3VycmVudCk/dm9pZCAwOmEub3duZXJEb2N1bWVudCksbD1mdW5jdGlvbihuKXt2YXIgbyxhLGk9bi50YXJnZXQ7IShlLmN1cnJlbnQmJmUuY3VycmVudC5jb250YWlucyhpKSkmJihudWxsIT0obz1lLmN1cnJlbnQpJiZvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpJiZuLmNsaWVudFg+PWUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LTEwJiZuLmNsaWVudFg8PWUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCsxMCYmbi5jbGllbnRZPj1lLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLTEwJiZuLmNsaWVudFk8PWUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20rMTB8fG51bGwhPShhPXQuY3VycmVudCkmJmEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkmJm4uY2xpZW50WD49dC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtMTAmJm4uY2xpZW50WDw9dC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0KzEwJiZuLmNsaWVudFk+PXQuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtMTAmJm4uY2xpZW50WTw9dC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSsxMHx8cihcIm91dHNpZGVcIikpfSxzPWZ1bmN0aW9uKGUpe1wiRXNjYXBlXCI9PT1lLmtleSYmcihcImVzY2FwZVwiKX07cmV0dXJuIG51bGw9PWl8fGkuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGwpLG51bGw9PWl8fGkuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixzKSxmdW5jdGlvbigpe251bGw9PWl8fGkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGwpLG51bGw9PWl8fGkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixzKX19fSxpPVtuLHIsbyxlLHRdLGxbMF09bixsWzFdPXIsbFsyXT1vLGxbM109ZSxsWzRdPXQsbFs1XT1hLGxbNl09aSk6KGE9bFs1XSxpPWxbNl0pLCgwLHgudXNlRWZmZWN0KShhLGkpfXZhciB0Nz1cImN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMSlcIixuZT0oMCx4LmZvcndhcmRSZWYpKGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPSgwLEEuYykoOSksYT1lLnN0b3AsaT1lLmJsdXIsbD1lLnNpZGUscz1lLnN0eWxlLGM9ZS5oZWlnaHQsdT1cIlwiLmNvbmNhdChjLFwicHhcIik7b1swXSE9PWl8fG9bMV0hPT1hfHxvWzJdIT09c3x8b1szXSE9PXU/KG49ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCItLXN0b3BcIjphLFwiLS1ibHVyXCI6aSxcIi0taGVpZ2h0XCI6dX0scyksb1swXT1pLG9bMV09YSxvWzJdPXMsb1szXT11LG9bNF09bik6bj1vWzRdO3ZhciBkPW47cmV0dXJuIG9bNV0hPT10fHxvWzZdIT09bHx8b1s3XSE9PWQ/KHI9KDAsYi5qc3gpKFwiZGl2XCIse3JlZjp0LFwiYXJpYS1oaWRkZW5cIjohMCxcImRhdGEtbmV4dGpzLXNjcm9sbC1mYWRlclwiOiEwLGNsYXNzTmFtZTpcIm5leHRqcy1zY3JvbGwtZmFkZXJcIixcImRhdGEtc2lkZVwiOmwsc3R5bGU6ZH0pLG9bNV09dCxvWzZdPWwsb1s3XT1kLG9bOF09cik6cj1vWzhdLHJ9KTtmdW5jdGlvbiBudChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbm4oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG50KGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG50KGUsdCl9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciBucj0oMCx4LmZvcndhcmRSZWYpKGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvLGEsaSxsLHMsYyx1LGQsZixwLGgsbSxnLHksdix3LEMsXyxrPSgwLEEuYykoMTMpO2tbMF0hPT1lPyh2PWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwibWVhc3VyZVwiXSksZz1lLmNoaWxkcmVuLHk9ZS5tZWFzdXJlLGtbMF09ZSxrWzFdPWcsa1syXT15LGtbM109dik6KGc9a1sxXSx5PWtbMl0sdj1rWzNdKTt2YXIgRT1ubigoMCx4LnVzZVN0YXRlKShudWxsKSwyKSxqPUVbMF0sUz1FWzFdLE89bm4oKG49aixyPXksbD0oMCxBLmMpKDcpLGM9KHM9bm4oKDAseC51c2VTdGF0ZSkoMCksMikpWzBdLHU9c1sxXSxmPShkPW5uKCgwLHgudXNlU3RhdGUpKCEwKSwyKSlbMF0scD1kWzFdLGxbMF0hPT1ufHxsWzFdIT09cj8obz1mdW5jdGlvbigpe2lmKHImJm4pe3ZhciBlLHQ9bmV3IFJlc2l6ZU9ic2VydmVyKGZ1bmN0aW9uKHQpe3ZhciBuPW5uKHQsMSlbMF0uY29udGVudFJlY3Q7Y2xlYXJUaW1lb3V0KGUpLGU9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtwKCExKX0sMTAwKSx1KG4uaGVpZ2h0KX0pO3JldHVybiB0Lm9ic2VydmUobiksZnVuY3Rpb24oKXtyZXR1cm4gdC5kaXNjb25uZWN0KCl9fX0sYT1bcixuXSxsWzBdPW4sbFsxXT1yLGxbMl09byxsWzNdPWEpOihvPWxbMl0sYT1sWzNdKSwoMCx4LnVzZUVmZmVjdCkobyxhKSxsWzRdIT09Y3x8bFs1XSE9PWY/KGk9W2MsZl0sbFs0XT1jLGxbNV09ZixsWzZdPWkpOmk9bFs2XSxpKSwyKSxCPU9bMF0sUD1PWzFdP1wiYXV0b1wiOkI7cmV0dXJuKGtbNF0hPT1QPyh3PXtoZWlnaHQ6UCx0cmFuc2l0aW9uOlwiaGVpZ2h0IDI1MG1zIHZhcigtLXRpbWluZy1zd2lmdClcIn0sa1s0XT1QLGtbNV09dyk6dz1rWzVdLGtbNl0hPT1nPyhDPSgwLGIuanN4KShcImRpdlwiLHtyZWY6UyxjaGlsZHJlbjpnfSksa1s2XT1nLGtbN109Qyk6Qz1rWzddLGtbOF0hPT12fHxrWzldIT09dHx8a1sxMF0hPT13fHxrWzExXSE9PUMpPyhfPSgwLGIuanN4KShcImRpdlwiLChoPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sdiksbT1tPXtyZWY6dCxzdHlsZTp3LGNoaWxkcmVuOkN9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGgsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobSkpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobSkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGgsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sZSkpfSksaCkpLGtbOF09dixrWzldPXQsa1sxMF09dyxrWzExXT1DLGtbMTJdPV8pOl89a1sxMl0sX30pO2Z1bmN0aW9uIG5vKGUpe3ZhciB0LG4scixvPSgwLEEuYykoNik7b1swXSE9PWU/KG49ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sdC5pbmRleE9mKG4pPj0wfHwob1tuXT1lW25dKTtyZXR1cm4gb30oZSx0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLCEodC5pbmRleE9mKG4pPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsbikmJihvW25dPWVbbl0pfXJldHVybiBvfShlLFtcImZpeGVkXCJdKSx0PWUuZml4ZWQsb1swXT1lLG9bMV09dCxvWzJdPW4pOih0PW9bMV0sbj1vWzJdKTt2YXIgYT0hIXR8fHZvaWQgMDtyZXR1cm4gb1szXSE9PW58fG9bNF0hPT1hPyhyPSgwLGIuanN4KShcImRpdlwiLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe1wiZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXCI6ITAsXCJkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3AtZml4ZWRcIjphfSxuKSksb1szXT1uLG9bNF09YSxvWzVdPXIpOnI9b1s1XSxyfWZ1bmN0aW9uIG5hKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBuaShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbmwoZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIG5zKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuYShlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBuYShlLHQpfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiBuYyhlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoLG0sZyx5LHYsdyxDLF8sayxFLGosUz0oMCxBLmMpKDY1KSxPPWUuZXJyb3JNZXNzYWdlLEI9ZS5lcnJvclR5cGUsUD1lLmNoaWxkcmVuLEk9ZS5lcnJvckNvZGUsej1lLmVycm9yQ291bnQsVD1lLmVycm9yLEQ9ZS5kZWJ1Z0luZm8sTD1lLmlzQnVpbGRFcnJvcixOPWUub25DbG9zZSxSPWUudmVyc2lvbkluZm8sTT1lLnJ1bnRpbWVFcnJvcnMsWj1lLmFjdGl2ZUlkeCxVPWUuc2V0QWN0aXZlSW5kZXgsRj1lLmlzVHVyYm9wYWNrLHE9ZS5kaWFsb2dSZXNpemVyUmVmLEg9ZS5nZW5lcmF0ZUVycm9ySW5mbyxWPWUucmVuZGVyZWQsJD1lLnRyYW5zaXRpb25EdXJhdGlvbk1zLFc9dm9pZCAwPT09Vnx8VixZPVwiXCIuY29uY2F0KCQsXCJtc1wiKTtTWzBdIT09WT8ocj17XCItLXRyYW5zaXRpb24tZHVyYXRpb25cIjpZfSxTWzBdPVksU1sxXT1yKTpyPVNbMV07dmFyIEs9cjtTWzJdIT09V3x8U1szXSE9PUs/KG89e1wiZGF0YS1yZW5kZXJlZFwiOlcsc3R5bGU6S30sU1syXT1XLFNbM109SyxTWzRdPW8pOm89U1s0XTt2YXIgWD1vLEc9bnMoeC51c2VTdGF0ZSghISQpLDIpLFE9R1swXSxKPUdbMV0sZWU9eC51c2VSZWYobnVsbCksZXQ9ISFJLGVuPXgudXNlUmVmKG51bGwpO3Q9ZW4sbj1XLCgwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKGUpe2lmKFwiVGFiXCI9PT1lLmtleSYmbnVsbCE9PXIpe3ZhciB0LG4sbyxhPShuPSh0PXIucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLCBbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknKSk/W3RbMF0sdFt0Lmxlbmd0aC0xXV06W10sbz0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHQ2KGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHQ2KGUsdCl9fShuLG8pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxpPWFbMF0sbD1hWzFdLHM9dDkocik7ZS5zaGlmdEtleT9zPT09aSYmKG51bGw9PWx8fGwuZm9jdXMoKSxlLnByZXZlbnREZWZhdWx0KCkpOnM9PT1sJiYobnVsbD09aXx8aS5mb2N1cygpLGUucHJldmVudERlZmF1bHQoKSl9fSxyPW51bGwsbz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYocj10LmN1cnJlbnQsbiludWxsPT1yfHxyLmZvY3VzKCksbnVsbD09cnx8ci5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpO2Vsc2UgdDkocil9KTtyZXR1cm4gZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQobyksbnVsbD09cnx8ci5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpfX0sW25dKSxTWzVdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGE9ZnVuY3Rpb24oZSl7aWYoZWUuY3VycmVudCl7dmFyIHQsbixyPSh0PWUuY3VycmVudFRhcmdldC5zY3JvbGxUb3AvMTcsTWF0aC5taW4oTWF0aC5tYXgodCwobj1ucyhbMCwxXSwyKSlbMF0pLG5bMV0pKTtlZS5jdXJyZW50LnN0eWxlLm9wYWNpdHk9U3RyaW5nKHIpfX0sU1s1XT1hKTphPVNbNV07dmFyIGVyPWE7U1s2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhpPWZ1bmN0aW9uKGUpe3ZhciB0PWUucHJvcGVydHlOYW1lLG49ZS50YXJnZXQ7XCJzY2FsZVwiPT09dCYmbj09PWVuLmN1cnJlbnQmJkooITEpfSxTWzZdPWkpOmk9U1s2XTt2YXIgZW89aTtTWzddIT09TD8obD0oMCxiLmpzeCkobm8se2ZpeGVkOkx9KSxTWzddPUwsU1s4XT1sKTpsPVNbOF0sU1s5XSE9PVp8fFNbMTBdIT09Rnx8U1sxMV0hPT1NfHxTWzEyXSE9PVV8fFNbMTNdIT09Uj8ocz0oMCxiLmpzeCkodFose3J1bnRpbWVFcnJvcnM6TSxhY3RpdmVJZHg6WixzZXRBY3RpdmVJbmRleDpVLHZlcnNpb25JbmZvOlIsaXNUdXJib3BhY2s6Rn0pLFNbOV09WixTWzEwXT1GLFNbMTFdPU0sU1sxMl09VSxTWzEzXT1SLFNbMTRdPXMpOnM9U1sxNF0sU1sxNV0hPT1JfHxTWzE2XSE9PWV0PyhjPWV0JiYoMCxiLmpzeCkodFMse2Vycm9yQ29kZTpJfSksU1sxNV09SSxTWzE2XT1ldCxTWzE3XT1jKTpjPVNbMTddO3ZhciBlYT0hUTtTWzE4XSE9PUI/KHU9KDAsYi5qc3gpKHR6LHtlcnJvclR5cGU6Qn0pLFNbMThdPUIsU1sxOV09dSk6dT1TWzE5XSxTWzIwXSE9PVQuZW52aXJvbm1lbnROYW1lPyhkPVQuZW52aXJvbm1lbnROYW1lJiYoMCxiLmpzeCkodDMse2Vudmlyb25tZW50TmFtZTpULmVudmlyb25tZW50TmFtZX0pLFNbMjBdPVQuZW52aXJvbm1lbnROYW1lLFNbMjFdPWQpOmQ9U1syMV0sU1syMl0hPT11fHxTWzIzXSE9PWQ/KGY9KDAsYi5qc3hzKShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1lcnJvci1sYWJlbC1ncm91cFwiOiEwLGNoaWxkcmVuOlt1LGRdfSksU1syMl09dSxTWzIzXT1kLFNbMjRdPWYpOmY9U1syNF0sU1syNV0hPT1EfHxTWzI2XSE9PVR8fFNbMjddIT09SD8ocD0oMCxiLmpzeCkodHgse2Vycm9yOlQsZGVidWdJbmZvOkQsZ2VuZXJhdGVFcnJvckluZm86SH0pLFNbMjVdPUQsU1syNl09VCxTWzI3XT1ILFNbMjhdPXApOnA9U1syOF0sU1syOV0hPT1JfHxTWzMwXSE9PWZ8fFNbMzFdIT09cD8oaD0oMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fZXJyb3JfdGl0bGVcIixcImRhdGEtbmV4dGpzLWVycm9yLWNvZGVcIjpJLGNoaWxkcmVuOltmLHBdfSksU1syOV09SSxTWzMwXT1mLFNbMzFdPXAsU1szMl09aCk6aD1TWzMyXSxTWzMzXSE9PU8/KG09KDAsYi5qc3gpKHRJLHtlcnJvck1lc3NhZ2U6T30pLFNbMzNdPU8sU1szNF09bSk6bT1TWzM0XSxTWzM1XSE9PWh8fFNbMzZdIT09bT8oZz0oMCxiLmpzeHMpKHRLLHtjaGlsZHJlbjpbaCxtXX0pLFNbMzVdPWgsU1szNl09bSxTWzM3XT1nKTpnPVNbMzddLFNbMzhdIT09UD8oeT0oMCxiLmpzeCkodFgse2NoaWxkcmVuOlB9KSxTWzM4XT1QLFNbMzldPXkpOnk9U1szOV0sU1s0MF0hPT1nfHxTWzQxXSE9PXk/KHY9KDAsYi5qc3hzKShlWSx7Y2hpbGRyZW46W2cseV19KSxTWzQwXT1nLFNbNDFdPXksU1s0Ml09dik6dj1TWzQyXSxTWzQzXSE9PXF8fFNbNDRdIT09ZWF8fFNbNDVdIT09dj8odz0oMCxiLmpzeCkobnIse3JlZjpxLG1lYXN1cmU6ZWEsXCJkYXRhLW5leHRqcy1kaWFsb2ctc2l6ZXJcIjohMCxjaGlsZHJlbjp2fSksU1s0M109cSxTWzQ0XT1lYSxTWzQ1XT12LFNbNDZdPXcpOnc9U1s0Nl07dmFyIGVpPW51bGwhPVo/WjowO3JldHVybiBTWzQ3XSE9PXp8fFNbNDhdIT09ZWk/KEM9KDAsYi5qc3gpKHQ1LHtlcnJvckNvdW50OnosYWN0aXZlSWR4OmVpfSksU1s0N109eixTWzQ4XT1laSxTWzQ5XT1DKTpDPVNbNDldLFNbNTBdIT09ZXR8fFNbNTFdIT09Tnx8U1s1Ml0hPT1jfHxTWzUzXSE9PXd8fFNbNTRdIT09Qz8oXz0oMCxiLmpzeHMpKHRXLHtvbkNsb3NlOk4sXCJkYXRhLWhhcy1mb290ZXJcIjpldCxvblNjcm9sbDplcixmb290ZXI6YyxjaGlsZHJlbjpbdyxDXX0pLFNbNTBdPWV0LFNbNTFdPU4sU1s1Ml09YyxTWzUzXT13LFNbNTRdPUMsU1s1NV09Xyk6Xz1TWzU1XSxTWzU2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhrPSgwLGIuanN4KShuZSx7cmVmOmVlLHNpZGU6XCJ0b3BcIixzdG9wOlwiNTAlXCIsYmx1cjpcIjRweFwiLGhlaWdodDo0OH0pLFNbNTZdPWspOms9U1s1Nl0sU1s1N10hPT1YfHxTWzU4XSE9PV98fFNbNTldIT09cz8oRT0oMCxiLmpzeHMpKFwiZGl2XCIsbmwobmkoe1wiZGF0YS1uZXh0anMtZGlhbG9nLXJvb3RcIjohMCxvblRyYW5zaXRpb25FbmQ6ZW8scmVmOmVufSxYKSx7Y2hpbGRyZW46W3MsXyxrXX0pKSxTWzU3XT1YLFNbNThdPV8sU1s1OV09cyxTWzYwXT1FKTpFPVNbNjBdLFNbNjFdIT09WHx8U1s2Ml0hPT1FfHxTWzYzXSE9PWw/KGo9KDAsYi5qc3hzKSh0MixubChuaSh7fSxYKSx7Y2hpbGRyZW46W2wsRV19KSksU1s2MV09WCxTWzYyXT1FLFNbNjNdPWwsU1s2NF09aik6aj1TWzY0XSxqfXZhciBudT1cIlxcbiAgXCIuY29uY2F0KHQ0LFwiXFxuICBcIikuY29uY2F0KFwiXFxuICAuZXJyb3Itb3ZlcmxheS1kaWFsb2ctY29udGFpbmVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgICBib3JkZXI6IHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tbmV4dC1kaWFsb2ctcmFkaXVzKSB2YXIoLS1uZXh0LWRpYWxvZy1yYWRpdXMpO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbWVudSk7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIC5lcnJvci1vdmVybGF5LWRpYWxvZy1zY3JvbGwge1xcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICB9XFxuXCIsXCJcXG4gIFwiKS5jb25jYXQoXCJcXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gaDEge1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMjApO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgICBtYXJnaW46IGNhbGMoMTZweCAqIDEuNSkgMDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRpdGxlLWgxKTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgc21hbGwge1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50cy0xKTtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHNtYWxsID4gc3BhbiB7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gZGl2ID4gc21hbGwge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG1hcmdpbi10b3A6IDRweDtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBwID4gYSB7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcXG4gICAgPiAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAxNnB4O1xcbiAgICByaWdodDogMTZweDtcXG4gIH1cXG5cIixcIlxcbiAgXCIpLmNvbmNhdChcIlwiLFwiXFxuXFxuICBcIikuY29uY2F0KFwiXFxuICBbZGF0YS1uZXh0anMtZXJyb3Itb3ZlcmxheS1uYXZdIHtcXG4gICAgLS1zdHJva2UtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXG4gICAgd2lkdGg6IDEwMCU7XFxuXFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgei1pbmRleDogMjtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgdHJhbnNsYXRlOiB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpIHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aCk7XFxuICAgIG1heC13aWR0aDogdmFyKC0tbmV4dC1kaWFsb2ctbWF4LXdpZHRoKTtcXG5cXG4gICAgLmVycm9yLW92ZXJsYXktbm90Y2gge1xcbiAgICAgIHRyYW5zbGF0ZTogY2FsYyh2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpICogLTEpO1xcbiAgICAgIHdpZHRoOiBhdXRvO1xcbiAgICAgIGhlaWdodDogdmFyKC0tbmV4dC1kaWFsb2ctbm90Y2gtaGVpZ2h0KTtcXG4gICAgICBwYWRkaW5nOiAxMnB4O1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3IpO1xcbiAgICAgIGJvcmRlcjogdmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1zdHJva2UtY29sb3IpO1xcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcblxcbiAgICAgICZbZGF0YS1zaWRlPSdsZWZ0J10ge1xcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW5leHQtZGlhbG9nLXJhZGl1cykgMCAwIDA7XFxuXFxuICAgICAgICAuZXJyb3Itb3ZlcmxheS1ub3RjaC10YWlsIHtcXG4gICAgICAgICAgcmlnaHQ6IC01NHB4O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgPiAqOm5vdCguZXJyb3Itb3ZlcmxheS1ub3RjaC10YWlsKSB7XFxuICAgICAgICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XFxuICAgICAgICB9XFxuICAgICAgfVxcblxcbiAgICAgICZbZGF0YS1zaWRlPSdyaWdodCddIHtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tbmV4dC1kaWFsb2ctcmFkaXVzKSAwIDA7XFxuXFxuICAgICAgICAuZXJyb3Itb3ZlcmxheS1ub3RjaC10YWlsIHtcXG4gICAgICAgICAgbGVmdDogLTU0cHg7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgPiAqOm5vdCguZXJyb3Itb3ZlcmxheS1ub3RjaC10YWlsKSB7XFxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTJweDtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuXFxuICAgICAgLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IGNhbGModmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKSAqIC0xKTtcXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICAgICAgei1pbmRleDogLTE7XFxuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aCkpO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1lcnJvci1vdmVybGF5LW5hdl0ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3IpO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLW5leHQtZGlhbG9nLXJhZGl1cykgdmFyKC0tbmV4dC1kaWFsb2ctcmFkaXVzKSAwIDA7XFxuICAgICAgYm9yZGVyOiB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXN0cm9rZS1jb2xvcik7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgIHRyYW5zbGF0ZTogMCB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpO1xcbiAgICAgIFxcbiAgICAgIC5lcnJvci1vdmVybGF5LW5vdGNoIHtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICAgICAgICBib3JkZXI6IDA7XFxuXFxuICAgICAgICAmW2RhdGEtc2lkZT1cXFwibGVmdFxcXCJdLCAmW2RhdGEtc2lkZT1cXFwicmlnaHRcXFwiXSB7XFxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICAuZXJyb3Itb3ZlcmxheS1ub3RjaC10YWlsIHtcXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cIixcIlxcbiAgXCIpLmNvbmNhdChcIlxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbCB7XFxuICAgIHBhZGRpbmc6IDJweCA2cHg7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcmVkLTEwMCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1yZWQtOTAwKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgfVxcblwiLFwiXFxuICBcIikuY29uY2F0KFwiXFxuICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX3dyYXBwZXIge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB9XFxuXFxuICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2Mge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1yZWQtOTAwKTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjMycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbiAgfVxcblxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjLnRydW5jYXRlZCB7XFxuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcblxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19ncmFkaWVudF9vdmVybGF5IHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBoZWlnaHQ6IDg1cHg7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICAxODBkZWcsXFxuICAgICAgcmdiYSgyNTAsIDI1MCwgMjUwLCAwKSAwJSxcXG4gICAgICB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCkgMTAwJVxcbiAgICApO1xcbiAgfVxcblxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19leHBhbmRfYnV0dG9uIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IDEwcHg7XFxuICAgIGxlZnQ6IDUwJTtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XFxuICAgIGJveC1zaGFkb3c6XFxuICAgICAgMHB4IDJweCAycHggdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0xMDApLFxcbiAgICAgIDBweCA4cHggOHB4IC04cHggdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0xMDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTMpO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xcbiAgfVxcblxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19leHBhbmRfYnV0dG9uOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgfVxcblwiLFwiXFxuICBcIikuY29uY2F0KFwiXFxuICAuZXJyb3Itb3ZlcmxheS10b29sYmFyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZ2FwOiA2cHg7XFxuICB9XFxuXFxuICAubm9kZWpzLWluc3BlY3Rvci1idXR0b24sXFxuICAuY29weS1lcnJvci1idXR0b24sXFxuICAuZG9jcy1saW5rLWJ1dHRvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcblxcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS0yOCk7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yOCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc21hbGwpO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTQpO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICB9XFxuXFxuICAgICY6bm90KDpkaXNhYmxlZCk6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMTAwKTtcXG4gICAgfVxcblxcbiAgICAmOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0yMDApO1xcbiAgICB9XFxuXFxuICAgICY6ZGlzYWJsZWQge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS10b29sYmFyLWJ1dHRvbi1pY29uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gIH1cXG5cIixcIlxcblxcbiAgW2RhdGEtbmV4dGpzLWVycm9yLWxhYmVsLWdyb3VwXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogOHB4O1xcbiAgfVxcblwiKTtmdW5jdGlvbiBuZCgpe3ZhciBlLHQsbj0oZT1bXCJcXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgLyogc2Vjb25kYXJ5IHotaW5kZXgsIC0xIHRoYW4gdG9hc3Qgei1pbmRleCAqL1xcbiAgICB6LWluZGV4OiAyMTQ3NDgzNjQ2O1xcblxcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIHBhZGRpbmc6IDEwdmggMTVweCAwO1xcbiAgfVxcblxcbiAgQG1lZGlhIChtYXgtaGVpZ2h0OiA4MTJweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcXG4gICAgICBwYWRkaW5nOiAxNXB4IDE1cHggMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcF0ge1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2Ryb3ApO1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZF0ge1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcXG4gIH1cXG5cIl0sdHx8KHQ9ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9fSkpKTtyZXR1cm4gbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sbn12YXIgbmY9ZXMobmQoKSk7ZnVuY3Rpb24gbnAoZSl7dmFyIHQsbixyLG8sYSxpPSgwLEEuYykoOSksbD1lLmZpbGUscz1lLmxvY2F0aW9uLGM9bnVsbCE9KHQ9bnVsbD09cz92b2lkIDA6cy5saW5lKT90OjEsdT1udWxsIT0obj1udWxsPT1zP3ZvaWQgMDpzLmNvbHVtbik/bjoxO2lbMF0hPT1sfHxpWzFdIT09Y3x8aVsyXSE9PXU/KHI9e2ZpbGU6bCxsaW5lMTpjLGNvbHVtbjE6dX0saVswXT1sLGlbMV09YyxpWzJdPXUsaVszXT1yKTpyPWlbM107dmFyIGQ9ZVMociksZj1zP1wiOlwiLmNvbmNhdChzLmxpbmUsXCI6XCIpLmNvbmNhdChzLmNvbHVtbik6bnVsbDtyZXR1cm4gaVs0XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhvPSgwLGIuanN4cykoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHZpZXdCb3g6XCIwIDAgMjQgMjRcIixmaWxsOlwibm9uZVwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLHN0cm9rZVdpZHRoOlwiMlwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIixjaGlsZHJlbjpbKDAsYi5qc3gpKFwicGF0aFwiLHtkOlwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIn0pLCgwLGIuanN4KShcInBvbHlsaW5lXCIse3BvaW50czpcIjE1IDMgMjEgMyAyMSA5XCJ9KSwoMCxiLmpzeCkoXCJsaW5lXCIse3gxOlwiMTBcIix5MTpcIjE0XCIseDI6XCIyMVwiLHkyOlwiM1wifSldfSksaVs0XT1vKTpvPWlbNF0saVs1XSE9PWx8fGlbNl0hPT1kfHxpWzddIT09Zj8oYT0oMCxiLmpzeHMpKFwiZGl2XCIse1wiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtcIjohMCxcImRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLWltcG9ydC10cmFjZVwiOiEwLHJvbGU6XCJsaW5rXCIsb25DbGljazpkLHRpdGxlOlwiQ2xpY2sgdG8gb3BlbiBpbiB5b3VyIGVkaXRvclwiLGNoaWxkcmVuOltsLGYsb119KSxpWzVdPWwsaVs2XT1kLGlbN109ZixpWzhdPWEpOmE9aVs4XSxhfWZ1bmN0aW9uIG5oKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgbm09ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZD1lLmNvbnRlbnQsZj14LnVzZU1lbW8oZnVuY3Rpb24oKXt2YXIgZSx0LG47cmV0dXJuIHQ9ZnVuY3Rpb24oZSl7dmFyIHQsbixyPWUuc2hpZnQoKTtpZighcilyZXR1cm4gbnVsbDt2YXIgbz0odD1yLnNwbGl0KFwiOlwiLDMpLG49MyxmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfSh0KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fSh0LDMpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuaChlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBuaChlLHQpfX0odCxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksYT1vWzBdLGk9b1sxXSxsPW9bMl0scz1OdW1iZXIoaSksYz1OdW1iZXIobCksdT0hTnVtYmVyLmlzTmFOKHMpJiYhTnVtYmVyLmlzTmFOKGMpO3JldHVybntmaWxlTmFtZTp1P2E6cixsb2NhdGlvbjp1P3tsaW5lMTpzLGNvbHVtbjE6Y306dm9pZCAwfX0oZT1kLnNwbGl0KFwiXFxuXCIpKSxuPWZ1bmN0aW9uKGUpe2lmKGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4vUmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3I6Ly50ZXN0KGUpfSl8fGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4vSW1wb3J0IHRyYWNlIGZvciByZXF1ZXN0ZWQgbW9kdWxlOi8udGVzdChlKX0pKXtmb3IodmFyIHQ9W107Ly4rXFwuLisvLnRlc3QoZVtlLmxlbmd0aC0xXSkmJiFlW2UubGVuZ3RoLTFdLmluY2x1ZGVzKFwiOlwiKTspe3ZhciBuPWUucG9wKCkudHJpbSgpO3QudW5zaGlmdChuKX1yZXR1cm4gdH1yZXR1cm5bXX0oZSkse2ZpbGU6dCxzb3VyY2U6ZS5qb2luKFwiXFxuXCIpLGltcG9ydFRyYWNlRmlsZXM6bn19LFtkXSkscD1mLmZpbGUsaD1mLnNvdXJjZSxtPWYuaW1wb3J0VHJhY2VGaWxlcyxnPXgudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBlVSgpLmFuc2lUb0pzb24oaCx7anNvbjohMCx1c2VfY2xhc3NlczohMCxyZW1vdmVfZW1wdHk6ITB9KX0sW2hdKTtjb25zb2xlLmxvZyh7ZmlsZTpwfSk7dmFyIHk9ZVMoe2ZpbGU6bnVsbD09cD92b2lkIDA6cC5maWxlTmFtZSxsaW5lMTpudWxsIT0oaT1udWxsPT1wfHxudWxsPT0odD1wLmxvY2F0aW9uKT92b2lkIDA6dC5saW5lMSk/aToxLGNvbHVtbjE6bnVsbCE9KGw9bnVsbD09cHx8bnVsbD09KG49cC5sb2NhdGlvbik/dm9pZCAwOm4uY29sdW1uMSk/bDoxfSksdj17ZmlsZTpudWxsIT0ocz1udWxsPT1wP3ZvaWQgMDpwLmZpbGVOYW1lKT9zOm51bGwsbWV0aG9kTmFtZTpcIlwiLGFyZ3VtZW50czpbXSxsaW5lMTpudWxsIT0oYz1udWxsPT1wfHxudWxsPT0ocj1wLmxvY2F0aW9uKT92b2lkIDA6ci5saW5lMSk/YzpudWxsLGNvbHVtbjE6bnVsbCE9KHU9bnVsbD09cHx8bnVsbD09KG89cC5sb2NhdGlvbik/dm9pZCAwOm8uY29sdW1uMSk/dTpudWxsfSxBPW51bGw9PXZ8fG51bGw9PShhPXYuZmlsZSk/dm9pZCAwOmEuc3BsaXQoXCIuXCIpLnBvcCgpO3JldHVybigwLGIuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jb2RlZnJhbWVcIjohMCxjaGlsZHJlbjpbKDAsYi5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtaGVhZGVyXCIsY2hpbGRyZW46KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWxpbmtcIixjaGlsZHJlbjpbKDAsYi5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWljb25cIixjaGlsZHJlbjooMCxiLmpzeCkoZVQse2xhbmc6QX0pfSksKDAsYi5qc3gpKFwic3BhblwiLHtcImRhdGEtdGV4dFwiOiEwLGNoaWxkcmVuOmVqKHYpfSksKDAsYi5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1sYWJlbFwiOlwiT3BlbiBpbiBlZGl0b3JcIixcImRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLXNvdXJjZS1maWxlXCI6ITAsb25DbGljazp5LGNoaWxkcmVuOigwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1pY29uXCIsXCJkYXRhLWljb25cIjpcInJpZ2h0XCIsY2hpbGRyZW46KDAsYi5qc3gpKGVJLHt3aWR0aDoxNixoZWlnaHQ6MTZ9KX0pfSldfSl9KSwoMCxiLmpzeCkoXCJwcmVcIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1wcmVcIixjaGlsZHJlbjooMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtbGluZXNcIixjaGlsZHJlbjpbZy5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxiLmpzeCkoXCJzcGFuXCIse3N0eWxlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe2NvbG9yOmUuZmc/XCJ2YXIoLS1jb2xvci1cIi5jb25jYXQoZS5mZyxcIilcIik6dm9pZCAwfSxcImJvbGRcIj09PWUuZGVjb3JhdGlvbj97Zm9udFdlaWdodDo1MDB9OlwiaXRhbGljXCI9PT1lLmRlY29yYXRpb24/e2ZvbnRTdHlsZTpcIml0YWxpY1wifTp2b2lkIDApLGNoaWxkcmVuOigwLGIuanN4KShldix7dGV4dDplLmNvbnRlbnR9KX0sXCJ0ZXJtaW5hbC1lbnRyeS1cIi5jb25jYXQodCkpfSksbS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuKDAsYi5qc3gpKG5wLHtpc1NvdXJjZUZpbGU6ITEsZmlsZTplfSxlKX0pXX0pfSldfSl9LG5nPWZ1bmN0aW9uKGUpe3ZhciB0PWUuc3BsaXQoXCJcXG5cIik7cmV0dXJuIGVxKCkodFsxXXx8XCJcIikucmVwbGFjZSgvXkVycm9yOiAvLFwiXCIpfSxueT1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkPSgwLEEuYykoMTkpO2RbMF0hPT1lPyhvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxbXCJtZXNzYWdlXCJdKSxyPWUubWVzc2FnZSxkWzBdPWUsZFsxXT1yLGRbMl09byk6KHI9ZFsxXSxvPWRbMl0pLGRbM10hPT1yPyhhPUVycm9yKHIpLGRbM109cixkWzRdPWEpOmE9ZFs0XTt2YXIgZj1hO2RbNV0hPT1yPyhsPW5nKHIpfHxcIkZhaWxlZCB0byBjb21waWxlXCIsZFs1XT1yLGRbNl09bCk6bD1kWzZdLGk9bCxkWzddIT09aXx8ZFs4XSE9PXJ8fGRbOV0hPT1vLnZlcnNpb25JbmZvLmluc3RhbGxlZD8ocz1mdW5jdGlvbigpe3ZhciBlPVtdO2lmKGUucHVzaChcIiMjIEVycm9yIFR5cGVcXG5CdWlsZCBFcnJvclwiKSxpJiZlLnB1c2goXCIjIyBFcnJvciBNZXNzYWdlXFxuXCIuY29uY2F0KGkpKSxyKXt2YXIgdD1lcSgpKHIpO2UucHVzaChcIiMjIEJ1aWxkIE91dHB1dFxcblwiLmNvbmNhdCh0KSl9cmV0dXJuXCJcIi5jb25jYXQoZS5qb2luKFwiXFxuXFxuXCIpLFwiXFxuXFxuTmV4dC5qcyB2ZXJzaW9uOiBcIikuY29uY2F0KG8udmVyc2lvbkluZm8uaW5zdGFsbGVkLFwiIChcIikuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9CVU5ETEVSLFwiKVxcblwiKX0sZFs3XT1pLGRbOF09cixkWzldPW8udmVyc2lvbkluZm8uaW5zdGFsbGVkLGRbMTBdPXMpOnM9ZFsxMF07dmFyIHA9cztyZXR1cm4oZFsxMV0hPT1yPyhjPSgwLGIuanN4KShubSx7Y29udGVudDpyfSksZFsxMV09cixkWzEyXT1jKTpjPWRbMTJdLGRbMTNdIT09Znx8ZFsxNF0hPT1pfHxkWzE1XSE9PXB8fGRbMTZdIT09b3x8ZFsxN10hPT1jKT8odT0oMCxiLmpzeCkobmMsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7ZXJyb3JUeXBlOlwiQnVpbGQgRXJyb3JcIixlcnJvck1lc3NhZ2U6aSxvbkNsb3NlOm52LGVycm9yOmYsZ2VuZXJhdGVFcnJvckluZm86cH0sbyksbj1uPXtjaGlsZHJlbjpjfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxkWzEzXT1mLGRbMTRdPWksZFsxNV09cCxkWzE2XT1vLGRbMTddPWMsZFsxOF09dSk6dT1kWzE4XSx1fTtmdW5jdGlvbiBudigpe312YXIgbmI9ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmPSgwLEEuYykoMjYpLHA9ZS5mcmFtZSxoPW51bGwhPSh0PXAub3JpZ2luYWxTdGFja0ZyYW1lKT90OnAuc291cmNlU3RhY2tGcmFtZSxtPSEhcC5vcmlnaW5hbENvZGVGcmFtZTtmWzBdIT09aHx8ZlsxXSE9PW0/KG49bT97ZmlsZTpoLmZpbGUsbGluZTE6bnVsbCE9KHI9aC5saW5lMSk/cjoxLGNvbHVtbjE6bnVsbCE9KG89aC5jb2x1bW4xKT9vOjF9OnZvaWQgMCxmWzBdPWgsZlsxXT1tLGZbMl09bik6bj1mWzJdO3ZhciBnPWVTKG4pO2ZbM10hPT1oPyhhPWVqKGgpLGZbM109aCxmWzRdPWEpOmE9Zls0XTt2YXIgeT1hO2lmKCF5KXJldHVybiBudWxsO3ZhciB2PSFtO3JldHVybiBmWzVdIT09aC5tZXRob2ROYW1lPyhpPSgwLGIuanN4KShldix7dGV4dDpoLm1ldGhvZE5hbWV9KSxmWzVdPWgubWV0aG9kTmFtZSxmWzZdPWkpOmk9Zls2XSxmWzddIT09aC5tZXRob2ROYW1lfHxmWzhdIT09bXx8Zls5XSE9PWc/KGw9bSYmKDAsYi5qc3gpKFwiYnV0dG9uXCIse29uQ2xpY2s6ZyxjbGFzc05hbWU6XCJvcGVuLWluLWVkaXRvci1idXR0b25cIixcImFyaWEtbGFiZWxcIjpcIk9wZW4gXCIuY29uY2F0KGgubWV0aG9kTmFtZSxcIiBpbiBlZGl0b3JcIiksY2hpbGRyZW46KDAsYi5qc3gpKGVJLHt3aWR0aDoxNixoZWlnaHQ6MTZ9KX0pLGZbN109aC5tZXRob2ROYW1lLGZbOF09bSxmWzldPWcsZlsxMF09bCk6bD1mWzEwXSxmWzExXSE9PXAuZXJyb3J8fGZbMTJdIT09cC5yZWFzb24/KHM9cC5lcnJvcj8oMCxiLmpzeCkoXCJidXR0b25cIix7Y2xhc3NOYW1lOlwic291cmNlLW1hcHBpbmctZXJyb3ItYnV0dG9uXCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBjb25zb2xlLmVycm9yKHAucmVhc29uKX0sdGl0bGU6XCJTb3VyY2VtYXBwaW5nIGZhaWxlZC4gQ2xpY2sgdG8gbG9nIGNhdXNlIG9mIGVycm9yLlwiLGNoaWxkcmVuOigwLGIuanN4KShleix7d2lkdGg6MTYsaGVpZ2h0OjE2fSl9KTpudWxsLGZbMTFdPXAuZXJyb3IsZlsxMl09cC5yZWFzb24sZlsxM109cyk6cz1mWzEzXSxmWzE0XSE9PWl8fGZbMTVdIT09bHx8ZlsxNl0hPT1zPyhjPSgwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY2FsbC1zdGFjay1mcmFtZS1tZXRob2QtbmFtZVwiLGNoaWxkcmVuOltpLGwsc119KSxmWzE0XT1pLGZbMTVdPWwsZlsxNl09cyxmWzE3XT1jKTpjPWZbMTddLGZbMThdIT09eXx8ZlsxOV0hPT1tPyh1PSgwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiY2FsbC1zdGFjay1mcmFtZS1maWxlLXNvdXJjZVwiLFwiZGF0YS1oYXMtc291cmNlXCI6bSxjaGlsZHJlbjp5fSksZlsxOF09eSxmWzE5XT1tLGZbMjBdPXUpOnU9ZlsyMF0sZlsyMV0hPT1wLmlnbm9yZWR8fGZbMjJdIT09dnx8ZlsyM10hPT1jfHxmWzI0XSE9PXU/KGQ9KDAsYi5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVcIjohMCxcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWUtbm8tc291cmNlXCI6dixcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWUtaWdub3JlZFwiOnAuaWdub3JlZCxjaGlsZHJlbjpbYyx1XX0pLGZbMjFdPXAuaWdub3JlZCxmWzIyXT12LGZbMjNdPWMsZlsyNF09dSxmWzI1XT1kKTpkPWZbMjVdLGR9O2Z1bmN0aW9uIG5BKCl7dmFyIGUsdD0oMCxBLmMpKDEpO3JldHVybiB0WzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGU9KDAsYi5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOC43MDcyMiAyLjM5NjQxQzguMzE2NyAyLjAwNTg4IDcuNjgzNTMgMi4wMDU4OCA3LjI5MzAxIDIuMzk2NDFMNC40Njk3OCA1LjIxOTYzTDMuOTM5NDUgNS43NDk5Nkw1LjAwMDExIDYuODEwNjJMNS41MzA0NCA2LjI4MDI5TDguMDAwMTEgMy44MTA2MkwxMC40Njk4IDYuMjgwMjlMMTEuMDAwMSA2LjgxMDYyTDEyLjA2MDggNS43NDk5NkwxMS41MzA0IDUuMjE5NjNMOC43MDcyMiAyLjM5NjQxWk01LjUzMDQ0IDkuNzE5NjNMNS4wMDAxMSA5LjE4OTNMMy45Mzk0NSAxMC4yNUw0LjQ2OTc4IDEwLjc4MDNMNy4yOTMwMSAxMy42MDM1QzcuNjgzNTMgMTMuOTk0IDguMzE2NyAxMy45OTQgOC43MDcyMiAxMy42MDM1TDExLjUzMDQgMTAuNzgwM0wxMi4wNjA4IDEwLjI1TDExLjAwMDEgOS4xODkzTDEwLjQ2OTggOS43MTk2M0w4LjAwMDExIDEyLjE4OTNMNS41MzA0NCA5LjcxOTYzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiBueCgpe3ZhciBlLHQsbj0oZT1bXCJcXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvbnRhaW5lcl0ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIG1hcmdpbi10b3A6IDhweDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWhlYWRlcl0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIG1pbi1oZWlnaHQ6IHZhcigtLXNpemUtMjgpO1xcbiAgICBwYWRkaW5nOiA4cHggOHB4IDEycHggNHB4O1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLXRpdGxlXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuXFxuICAgIG1hcmdpbjogMDtcXG5cXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb3VudF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMjApO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBnYXA6IDRweDtcXG5cXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTExKTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcblxcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1pZ25vcmVkLWxpc3QtdG9nZ2xlLWJ1dHRvbl0ge1xcbiAgICBhbGw6IHVuc2V0O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDZweDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICAgIHBhZGRpbmc6IDRweCA2cHg7XFxuICAgIG1hcmdpbi1yaWdodDogLTZweDtcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBlYXNlO1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIH1cXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG5cXG4gICAgc3ZnIHtcXG4gICAgICB3aWR0aDogdmFyKC0tc2l6ZS0xNik7XFxuICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgfVxcbiAgfVxcblwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiBueD1mdW5jdGlvbigpe3JldHVybiBufSxufWZ1bmN0aW9uIG53KGUpe3ZhciB0LG4scixvLGEsaSxsPSgwLEEuYykoMTcpLHM9ZS5mcmFtZXMsYz1lLmlzSWdub3JlTGlzdE9wZW4sdT1lLmlnbm9yZWRGcmFtZXNUYWxseSxkPWUub25Ub2dnbGVJZ25vcmVMaXN0O3JldHVybiBsWzBdIT09cy5sZW5ndGg/KHQ9KDAsYi5qc3hzKShcInBcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLXRpdGxlXCI6ITAsY2hpbGRyZW46W1wiQ2FsbCBTdGFjayBcIiwoMCxiLmpzeCkoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb3VudFwiOiEwLGNoaWxkcmVuOnMubGVuZ3RofSldfSksbFswXT1zLmxlbmd0aCxsWzFdPXQpOnQ9bFsxXSxsWzJdIT09dXx8bFszXSE9PWN8fGxbNF0hPT1kPyhuPXU+MCYmKDAsYi5qc3hzKShcImJ1dHRvblwiLHtcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2staWdub3JlZC1saXN0LXRvZ2dsZS1idXR0b25cIjpjLG9uQ2xpY2s6ZCxjaGlsZHJlbjpbXCJcIi5jb25jYXQoYz9cIkhpZGVcIjpcIlNob3dcIixcIiBcIikuY29uY2F0KHUsXCIgaWdub3JlLWxpc3RlZCBmcmFtZShzKVwiKSwoMCxiLmpzeCkobkEse30pXX0pLGxbMl09dSxsWzNdPWMsbFs0XT1kLGxbNV09bik6bj1sWzVdLGxbNl0hPT10fHxsWzddIT09bj8ocj0oMCxiLmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1oZWFkZXJcIjohMCxjaGlsZHJlbjpbdCxuXX0pLGxbNl09dCxsWzddPW4sbFs4XT1yKTpyPWxbOF0sbFs5XSE9PXN8fGxbMTBdIT09Yz8obFsxMl0hPT1jPyhhPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIWUuaWdub3JlZHx8Yz8oMCxiLmpzeCkobmIse2ZyYW1lOmV9LHQpOm51bGx9LGxbMTJdPWMsbFsxM109YSk6YT1sWzEzXSxvPXMubWFwKGEpLGxbOV09cyxsWzEwXT1jLGxbMTFdPW8pOm89bFsxMV0sbFsxNF0hPT1yfHxsWzE1XSE9PW8/KGk9KDAsYi5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stY29udGFpbmVyXCI6ITAsY2hpbGRyZW46W3Isb119KSxsWzE0XT1yLGxbMTVdPW8sbFsxNl09aSk6aT1sWzE2XSxpfXZhciBuQz1lcyhueCgpKTtmdW5jdGlvbiBuXyhlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbmsoZSl7dmFyIHQsbixyPWUuZnJhbWVzLG89ZS5kaWFsb2dSZXNpemVyUmVmLGE9KDAseC51c2VSZWYpKE5hTiksaT0odD0oMCx4LnVzZVN0YXRlKSghMSksbj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG5fKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG5fKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxsPWlbMF0scz1pWzFdLGM9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiByLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlKyArISF0Lmlnbm9yZWR9LDApfSxbcl0pO3JldHVybigwLGIuanN4KShudyx7ZnJhbWVzOnIsaXNJZ25vcmVMaXN0T3BlbjpsLG9uVG9nZ2xlSWdub3JlTGlzdDpmdW5jdGlvbigpe3ZhciBlPW51bGw9PW8/dm9pZCAwOm8uY3VycmVudDtpZihlKXt2YXIgdD0obnVsbD09ZT92b2lkIDA6ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkuaGVpZ2h0O2EuY3VycmVudHx8KGEuY3VycmVudD10KSxsPyhlLnN0eWxlLmhlaWdodD1cIlwiLmNvbmNhdChhLmN1cnJlbnQsXCJweFwiKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsZnVuY3Rpb24gdCgpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIix0KSxzKCExKX0pKTpzKCEwKX19LGlnbm9yZWRGcmFtZXNUYWxseTpjfSl9ZnVuY3Rpb24gbkUoZSl7dmFyIHQsbixyLG8sYSxpLGw9KDAsQS5jKSg4KTtsWzBdIT09ZT8ocj12b2lkIDA9PT1lP3t9OmUsbFswXT1lLGxbMV09cik6cj1sWzFdO3ZhciBzPXIuY29sbGFwc2VkO3JldHVybihsWzJdIT09cz8obz1cImJvb2xlYW5cIj09dHlwZW9mIHM/e3N0eWxlOnt0cmFuc2Zvcm06cz92b2lkIDA6XCJyb3RhdGUoOTBkZWcpXCJ9fTp7fSxsWzJdPXMsbFszXT1vKTpvPWxbM10sbFs0XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhhPSgwLGIuanN4KShcInBhdGhcIix7c3R5bGU6e2ZpbGw6XCJ2YXIoLS1jb2xvci1mb250KVwifSxmaWxsUnVsZTpcImV2ZW5vZGRcIixkOlwibTYuNzUgMy45NC41My41MyAyLjgyNCAyLjgyM2ExIDEgMCAwIDEgMCAxLjQxNEw3LjI4IDExLjUzbC0uNTMuNTNMNS42OSAxMWwuNTMtLjUzTDguNjkgOCA2LjIyIDUuNTMgNS42OSA1bDEuMDYtMS4wNlpcIixjbGlwUnVsZTpcImV2ZW5vZGRcIn0pLGxbNF09YSk6YT1sWzRdLGxbNV0hPT1zfHxsWzZdIT09byk/KGk9KDAsYi5qc3gpKFwic3ZnXCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNoZXZyb24taWNvblwiOiEwLFwiZGF0YS1jb2xsYXBzZWRcIjpzLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJub25lXCJ9LG8pLG49bj17Y2hpbGRyZW46YX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksbFs1XT1zLGxbNl09byxsWzddPWkpOmk9bFs3XSxpfWZ1bmN0aW9uIG5qKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBuUyhlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSwhdHx8YS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbmooZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gbmooZSx0KX19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbk8oZSl7dmFyIHQsbixyLG8sYSxpLGwscz0oMCxBLmMpKDE1KSxjPWUucmVhY3RPdXRwdXRDb21wb25lbnREaWZmLHU9blMoKDAseC51c2VTdGF0ZSkoITApLDIpLGQ9dVswXSxmPXVbMV07c1swXSE9PWM/KG49W10sYy5zcGxpdChcIlxcblwiKS5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7dmFyIHIsbyxhPVwiK1wiPT09ZVswXXx8XCItXCI9PT1lWzBdLGk9XCI+XCI9PT1lWzBdLGw9YXx8aSxzPWw/ZVswXTpcIlwiLGM9bD9lLmluZGV4T2Yocyk6LTEsdT1uUyhsP1tlLnNsaWNlKDAsYyksZS5zbGljZShjKzEpXTpbZSxcIlwiXSwyKSxkPXVbMF0sZj11WzFdO2E/bi5wdXNoKCgwLGIuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmVcIjohMCxcImRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmZcIjpcIitcIj09PXM/XCJhZGRcIjpcInJlbW92ZVwiLGNoaWxkcmVuOigwLGIuanN4cykoXCJzcGFuXCIse2NoaWxkcmVuOltkLCgwLGIuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmUtc2lnblwiOiEwLGNoaWxkcmVuOnN9KSxmLFwiXFxuXCJdfSl9LFwiY29tcC1kaWZmXCIrdCkpOm4ucHVzaCgoMCxiLmpzeHMpKFwic3BhblwiLChyPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe1wiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1saW5lXCI6ITB9LGk/e1wiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZlwiOlwiZXJyb3JcIn06dm9pZCAwKSxvPW89e2NoaWxkcmVuOltkLCgwLGIuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmUtc2lnblwiOiEwLGNoaWxkcmVuOnN9KSxmLFwiXFxuXCJdfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG8pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG8pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLGUpKX0pLHIpLFwiY29tcC1kaWZmXCIrdCkpfSksc1swXT1jLHNbMV09bik6bj1zWzFdLHQ9bjt2YXIgcD0hZDtyZXR1cm4gc1syXSE9PWQ/KHI9ZnVuY3Rpb24oKXtyZXR1cm4gZighZCl9LG89KDAsYi5qc3gpKG5FLHtjb2xsYXBzZWQ6ZH0pLHNbMl09ZCxzWzNdPXIsc1s0XT1vKToocj1zWzNdLG89c1s0XSksc1s1XSE9PXB8fHNbNl0hPT1yfHxzWzddIT09bz8oYT0oMCxiLmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWV4cGFuZGVkXCI6cCxcImFyaWEtbGFiZWxcIjpcImNvbXBsZXRlIENvbXBvbmVudCBTdGFja1wiLFwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1jb2xsYXBzZS1idXR0b25cIjohMCxvbkNsaWNrOnIsY2hpbGRyZW46b30pLHNbNV09cCxzWzZdPXIsc1s3XT1vLHNbOF09YSk6YT1zWzhdLHNbOV0hPT10PyhpPSgwLGIuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2NvbXBvbmVudC1zdGFja1wiLGNoaWxkcmVuOigwLGIuanN4KShcImNvZGVcIix7Y2hpbGRyZW46dH0pfSksc1s5XT10LHNbMTBdPWkpOmk9c1sxMF0sc1sxMV0hPT1kfHxzWzEyXSE9PWF8fHNbMTNdIT09aT8obD0oMCxiLmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbFwiOiEwLFwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1jb2xsYXBzZVwiOmQsY2hpbGRyZW46W2EsaV19KSxzWzExXT1kLHNbMTJdPWEsc1sxM109aSxzWzE0XT1sKTpsPXNbMTRdLGx9dmFyIG5CPVN5bWJvbC5mb3IoXCJOZXh0anNFcnJvclwiKTtmdW5jdGlvbiBuUChlKXtyZXR1cm4gZVtuQl18fG51bGx9ZnVuY3Rpb24gbkkoZSx0LG4scixvLGEsaSl7dHJ5e3ZhciBsPWVbYV0oaSkscz1sLnZhbHVlfWNhdGNoKGUpe24oZSk7cmV0dXJufWwuZG9uZT90KHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gbnooZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT1lLmFwcGx5KHQsbik7ZnVuY3Rpb24gaShlKXtuSShhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXtuSShhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfX1mdW5jdGlvbiBuVChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbkQoZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIG5MKGUsdCl7dmFyIG4scixvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX0saT1PYmplY3QuY3JlYXRlKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBJdGVyYXRvcj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIGkubmV4dD1sKDApLGkudGhyb3c9bCgxKSxpLnJldHVybj1sKDIpLFwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBsKGwpe3JldHVybiBmdW5jdGlvbihzKXt2YXIgYz1bbCxzXTtpZihuKXRocm93IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtpJiYoaT0wLGNbMF0mJihhPTApKSxhOyl0cnl7aWYobj0xLHImJihvPTImY1swXT9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYz1bMiZjWzBdLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKG89KG89YS50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSkmJig2PT09Y1swXXx8Mj09PWNbMF0pKXthPTA7Y29udGludWV9aWYoMz09PWNbMF0mJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXthLmxhYmVsPWNbMV07YnJlYWt9aWYoNj09PWNbMF0mJmEubGFiZWw8b1sxXSl7YS5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZhLmxhYmVsPG9bMl0pe2EubGFiZWw9b1syXSxhLm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1jPXQuY2FsbChlLGEpfWNhdGNoKGUpe2M9WzYsZV0scj0wfWZpbmFsbHl7bj1vPTB9aWYoNSZjWzBdKXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fX12YXIgbk49ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuW107aWYoXCJ1c2VcImluIHgpe3ZhciB0PWUuZnJhbWVzO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgRXJyb3IoXCJJbnZhcmlhbnQ6IGZyYW1lcyBtdXN0IGJlIGEgZnVuY3Rpb24gd2hlbiB0aGUgUmVhY3QgdmVyc2lvbiBoYXMgUmVhY3QudXNlLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuXCIpO3JldHVybiB4LnVzZSh0KCkpfWlmKCFBcnJheS5pc0FycmF5KGUuZnJhbWVzKSl0aHJvdyBFcnJvcihcIkludmFyaWFudDogZnJhbWVzIG11c3QgYmUgYW4gYXJyYXkgd2hlbiB0aGUgUmVhY3QgdmVyc2lvbiBkb2VzIG5vdCBoYXZlIFJlYWN0LnVzZS4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzLlwiKTtyZXR1cm4gZS5mcmFtZXN9O2Z1bmN0aW9uIG5SKGUpe3ZhciB0LG4scixvLGEsaT0oMCxBLmMpKDgpLGw9ZS5lcnJvcixzPWUuZGlhbG9nUmVzaXplclJlZixjPW5OKGwpLHU9Yy5maW5kSW5kZXgobk0pO3JldHVybiB0PW51bGwhPShuPWNbdV0pP246bnVsbCxpWzBdIT09dD8ocj10JiYoMCxiLmpzeCkoZSQse3N0YWNrRnJhbWU6dC5vcmlnaW5hbFN0YWNrRnJhbWUsY29kZUZyYW1lOnQub3JpZ2luYWxDb2RlRnJhbWV9KSxpWzBdPXQsaVsxXT1yKTpyPWlbMV0saVsyXSE9PXN8fGlbM10hPT1jPyhvPWMubGVuZ3RoPjAmJigwLGIuanN4KShuayx7ZGlhbG9nUmVzaXplclJlZjpzLGZyYW1lczpjfSksaVsyXT1zLGlbM109YyxpWzRdPW8pOm89aVs0XSxpWzVdIT09cnx8aVs2XSE9PW8/KGE9KDAsYi5qc3hzKShiLkZyYWdtZW50LHtjaGlsZHJlbjpbcixvXX0pLGlbNV09cixpWzZdPW8saVs3XT1hKTphPWlbN10sYX1mdW5jdGlvbiBuTShlKXtyZXR1cm4hZS5pZ25vcmVkJiYhIWUub3JpZ2luYWxDb2RlRnJhbWUmJiEhZS5vcmlnaW5hbFN0YWNrRnJhbWV9dmFyIG5aPVwiXFxuICBcIi5jb25jYXQoXCJcXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sXSB7XFxuICAgIHBhZGRpbmc6IDhweCAwO1xcbiAgICBtYXJnaW46IDhweCAwO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN5bnRheC1jb25zdGFudCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjMzZW07IC8qIDE2cHggaW4gMTJweCBmb250IHNpemUgKi9cXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmVdIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xcbiAgICBsaW5lLWhlaWdodDogY2FsYyg1IC8gMyk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0nZXJyb3InXSB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFtYmVyLTEwMCk7XFxuICAgIGJveC1zaGFkb3c6IDJweCAwIDAgMCB2YXIoLS1jb2xvci1hbWJlci05MDApIGluc2V0O1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWNvbGxhcHNlLWJ1dHRvbl0ge1xcbiAgICBhbGw6IHVuc2V0O1xcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogbm9uZTtcXG4gICAgfVxcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmY9J2FkZCddIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JlZW4tMzAwKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmUtc2lnbl0ge1xcbiAgICBtYXJnaW4tbGVmdDogY2FsYygyNHB4ICogLTEpO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0nYWRkJ11cXG4gICAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmVlbi05MDApO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmY9J3JlbW92ZSddIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcmVkLTMwMCk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0ncmVtb3ZlJ11cXG4gICAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1yZWQtOTAwKTtcXG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMjRweCAqIC0xKTtcXG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmY9J2Vycm9yJ11cXG4gICAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci05MDApO1xcbiAgfVxcbiAgXFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0taGludF0ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIGZvbnQtc2l6ZTogMDtcXG4gICAgaGVpZ2h0OiAwO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLXRhZy1hZGphY2VudD0nZmFsc2UnXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnRzLTEpO1xcbiAgfVxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fY29tcG9uZW50LXN0YWNrIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtY29sbGFwc2U9J3RydWUnXVxcbiAgICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19jb21wb25lbnQtc3RhY2tcXG4gICAgY29kZSB7XFxuICAgIG1heC1oZWlnaHQ6IDEyMHB4O1xcbiAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHJnYmEoMCwwLDAsMCkgMCUsYmxhY2sgMTAlKTtcXG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XFxuICB9XFxuICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19jb21wb25lbnQtc3RhY2sgY29kZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbiAgICBzY3JvbGwtc25hcC10eXBlOiB5IG1hbmRhdG9yeTtcXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmZdIHtcXG4gICAgc2Nyb2xsLXNuYXAtYWxpZ246IGNlbnRlcjtcXG4gIH1cXG4gIC5lcnJvci1vdmVybGF5LWh5ZHJhdGlvbi1lcnJvci1kaWZmLXBsdXMtaWNvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmVlbi05MDApO1xcbiAgfVxcbiAgLmVycm9yLW92ZXJsYXktaHlkcmF0aW9uLWVycm9yLWRpZmYtbWludXMtaWNvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1yZWQtOTAwKTtcXG4gIH1cXG5cIixcIlxcblwiKTtmdW5jdGlvbiBuVShlKXtyZXR1cm4gZSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbD9cInN5bWJvbFwiOnR5cGVvZiBlfWZ1bmN0aW9uIG5GKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBucShlKXtyZXR1cm4gZS5zdGFydHNXaXRoKFwiaHR0cHM6Ly9uZXh0anMub3JnXCIpfWZ1bmN0aW9uIG5IKGUpe3ZhciB0LG49KDAsQS5jKSgyKSxyPWUubWVzc2FnZTtyZXR1cm4gblswXSE9PXI/KHQ9KDAsYi5qc3gpKGV2LHt0ZXh0OnIsbWF0Y2hlcjpucX0pLG5bMF09cixuWzFdPXQpOnQ9blsxXSx0fWZ1bmN0aW9uIG5WKGUpe3ZhciB0LG4scj0oMCxBLmMpKDUpLG89ZS5lcnJvcixhPVwiZW52aXJvbm1lbnROYW1lXCJpbiBvP28uZW52aXJvbm1lbnROYW1lOlwiXCIsaT1hP1wiWyBcIi5jb25jYXQoYSxcIiBdIFwiKTpcIlwiLGw9by5tZXNzYWdlO3JldHVybiBsLnN0YXJ0c1dpdGgoaSkmJihyWzBdIT09aS5sZW5ndGh8fHJbMV0hPT1sPyh0PWwuc2xpY2UoaS5sZW5ndGgpLHJbMF09aS5sZW5ndGgsclsxXT1sLHJbMl09dCk6dD1yWzJdLGw9dCksclszXSE9PWw/KG49KDAsYi5qc3gpKGIuRnJhZ21lbnQse2NoaWxkcmVuOigwLGIuanN4KShldix7dGV4dDpsLG1hdGNoZXI6bnF9KX0pLHJbM109bCxyWzRdPW4pOm49cls0XSxufXZhciBuJD17aHlkcmF0aW9uV2FybmluZzpudWxsLG5vdGVzOm51bGwscmVhY3RPdXRwdXRDb21wb25lbnREaWZmOm51bGx9O2Z1bmN0aW9uIG5XKGUpe3ZhciB0LG4scj1lLmdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzLG89ZS5ydW50aW1lRXJyb3JzLGE9ZS5kZWJ1Z0luZm8saT1lLm9uQ2xvc2UsbD1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wiZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHNcIixcInJ1bnRpbWVFcnJvcnNcIixcImRlYnVnSW5mb1wiLFwib25DbG9zZVwiXSkscz0oMCx4LnVzZVJlZikobnVsbCksYz1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoLG09KDAsQS5jKSgxNyksZz1lLnJ1bnRpbWVFcnJvcnMseT1lLmdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzLHY9KGE9KDAseC51c2VTdGF0ZSkoMCksaT0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGEpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGEsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG5GKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG5GKGUsdCl9fShhLGkpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxiPXZbMF0sdz12WzFdO3M9MD09PWcubGVuZ3RoO3ZhciBDPSh0PW51bGw9PShjPW51bGwhPSh1PWdbYl0pP3U6bnVsbCk/dm9pZCAwOmMuZXJyb3Isbj15LCgwLHgudXNlTWVtbykoZnVuY3Rpb24oKXtpZih2b2lkIDA9PT10KXJldHVybiBuJDt2YXIgZSxyLG8sYT1uKHQpO2lmKG51bGwhPT1hKXJldHVybntoeWRyYXRpb25XYXJuaW5nOm51bGwhPShyPWEud2FybmluZyk/cjpudWxsLG5vdGVzOm51bGwscmVhY3RPdXRwdXRDb21wb25lbnREaWZmOm51bGwhPShvPWEucmVhY3RPdXRwdXRDb21wb25lbnREaWZmKT9vOm51bGx9O2lmKCEodGcoKGU9dCkubWVzc2FnZSl8fC9IeWRyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlIHNlcnZlciByZW5kZXJlZCAodGV4dHxIVE1MKSBkaWRuJ3QgbWF0Y2ggdGhlIGNsaWVudFxcLi8udGVzdChlLm1lc3NhZ2UpfHwvQSB0cmVlIGh5ZHJhdGVkIGJ1dCBzb21lIGF0dHJpYnV0ZXMgb2YgdGhlIHNlcnZlciByZW5kZXJlZCBIVE1MIGRpZG4ndCBtYXRjaCB0aGUgY2xpZW50IHByb3BlcnRpZXMuLy50ZXN0KGUubWVzc2FnZSkpKXJldHVybiBuJDt2YXIgaT1mdW5jdGlvbihlKXt2YXIgdD1lLm1lc3NhZ2U7aWYodGcodCkpe3ZhciBuPXR1KHQuc3BsaXQoXCJcXG5cXG5cIiksMikscj1uWzBdLG89blsxXSxhPSh2b2lkIDA9PT1vP1wiXCI6bykudHJpbSgpO3JldHVybnttZXNzYWdlOlwiXCI9PT1hP3QudHJpbSgpOnIudHJpbSgpLGRpZmY6YSxub3RlczpudWxsfX12YXIgaT10dSh0LnNwbGl0KFwiXCIuY29uY2F0KHRwKSksMiksbD1pWzBdLHM9aVsxXSxjPWwudHJpbSgpO2lmKHZvaWQgMCE9PXMmJnMubGVuZ3RoPjEpe3ZhciB1PVtdO3Muc3BsaXQoXCJcXG5cIikuZm9yRWFjaChmdW5jdGlvbihlKXtcIlwiIT09ZS50cmltKCkmJihlLnRyaW0oKS5zdGFydHNXaXRoKFwiYXQgXCIpfHx1LnB1c2goZSkpfSk7dmFyIGQ9dGQoYy5zcGxpdChcIlxcblxcblwiKSksZj1kWzBdLHA9ZC5zbGljZSgxKTtyZXR1cm57bWVzc2FnZTpmLGRpZmY6dS5qb2luKFwiXFxuXCIpLG5vdGVzOnAuam9pbihcIlxcblxcblwiKXx8bnVsbH19dmFyIGg9dGQoYy5zcGxpdChcIlxcblxcblwiKSk7cmV0dXJue21lc3NhZ2U6aFswXSxkaWZmOm51bGwsbm90ZXM6aC5zbGljZSgxKS5qb2luKFwiXFxuXFxuXCIpfX0odCksbD1pLm1lc3NhZ2Uscz1pLm5vdGVzLGM9aS5kaWZmO3JldHVybiBudWxsPT09bD9uJDp7aHlkcmF0aW9uV2FybmluZzpsLG5vdGVzOnMscmVhY3RPdXRwdXRDb21wb25lbnREaWZmOmN9fSxbdCxuXSkpO2lmKHN8fCFjKXJldHVybiBtWzBdIT09Ynx8bVsxXSE9PXM/KGQ9e2lzTG9hZGluZzpzLGFjdGl2ZUlkeDpiLHNldEFjdGl2ZUluZGV4OncsYWN0aXZlRXJyb3I6bnVsbCxlcnJvckRldGFpbHM6bnVsbCxlcnJvckNvZGU6bnVsbCxlcnJvclR5cGU6bnVsbCxub3RlczpudWxsLGh5ZHJhdGlvbldhcm5pbmc6bnVsbH0sbVswXT1iLG1bMV09cyxtWzJdPWQpOmQ9bVsyXSxkO3ZhciBfPWMuZXJyb3I7bVszXSE9PV8/KGY9KHZvaWQgMD09PShsPV8pP1widW5kZWZpbmVkXCI6blUobCkpPT09XCJvYmplY3RcIiYmbnVsbCE9PWwmJlwiX19ORVhUX0VSUk9SX0NPREVcImluIGwmJlwic3RyaW5nXCI9PXR5cGVvZiBsLl9fTkVYVF9FUlJPUl9DT0RFP2wuX19ORVhUX0VSUk9SX0NPREU6KHZvaWQgMD09PWw/XCJ1bmRlZmluZWRcIjpuVShsKSk9PT1cIm9iamVjdFwiJiZudWxsIT09bCYmXCJkaWdlc3RcImluIGwmJlwic3RyaW5nXCI9PXR5cGVvZiBsLmRpZ2VzdD9sLmRpZ2VzdC5zcGxpdChcIkBcIikuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKFwiRVwiKX0pOnZvaWQgMCxtWzNdPV8sbVs0XT1mKTpmPW1bNF07dmFyIGs9ZjttWzVdIT09Yy50eXBlfHxtWzZdIT09Xz8ocj1fLHA9XCJyZWNvdmVyYWJsZVwiPT09KG89Yy50eXBlKT9cIlJlY292ZXJhYmxlIFwiLmNvbmNhdChyLm5hbWUpOlwiY29uc29sZVwiPT09bz9cIkNvbnNvbGUgXCIuY29uY2F0KHIubmFtZSk6XCJSdW50aW1lIFwiLmNvbmNhdChyLm5hbWUpLG1bNV09Yy50eXBlLG1bNl09XyxtWzddPXApOnA9bVs3XTt2YXIgRT1wLGo9Qy5ub3RlcyxTPUMuaHlkcmF0aW9uV2FybmluZztyZXR1cm4gbVs4XSE9PWN8fG1bOV0hPT1ifHxtWzEwXSE9PWt8fG1bMTFdIT09Q3x8bVsxMl0hPT1FfHxtWzEzXSE9PVN8fG1bMTRdIT09c3x8bVsxNV0hPT1qPyhoPXtpc0xvYWRpbmc6cyxhY3RpdmVJZHg6YixzZXRBY3RpdmVJbmRleDp3LGFjdGl2ZUVycm9yOmMsZXJyb3JEZXRhaWxzOkMsZXJyb3JDb2RlOmssZXJyb3JUeXBlOkUsbm90ZXM6aixoeWRyYXRpb25XYXJuaW5nOlN9LG1bOF09YyxtWzldPWIsbVsxMF09ayxtWzExXT1DLG1bMTJdPUUsbVsxM109UyxtWzE0XT1zLG1bMTVdPWosbVsxNl09aCk6aD1tWzE2XSxofSh7cnVudGltZUVycm9yczpvLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOnJ9KSx1PWMuaXNMb2FkaW5nLGQ9Yy5lcnJvckNvZGUsZj1jLmVycm9yVHlwZSxwPWMubm90ZXMsaD1jLmh5ZHJhdGlvbldhcm5pbmcsbT1jLmFjdGl2ZUlkeCxnPWMuZXJyb3JEZXRhaWxzLHk9Yy5hY3RpdmVFcnJvcix2PWMuc2V0QWN0aXZlSW5kZXgsdz1uTih5KSxDPSgwLHgudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgZSx0PXcuZmluZEluZGV4KGZ1bmN0aW9uKGUpe3JldHVybiFlLmlnbm9yZWQmJiEhZS5vcmlnaW5hbENvZGVGcmFtZSYmISFlLm9yaWdpbmFsU3RhY2tGcmFtZX0pO3JldHVybiBudWxsIT0oZT13W3RdKT9lOm51bGx9LFt3XSksXz0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe2lmKCF5KXJldHVyblwiXCI7dmFyIGU9W107ZiYmZS5wdXNoKFwiIyMgRXJyb3IgVHlwZVxcblwiLmNvbmNhdChmKSk7dmFyIHQ9eS5lcnJvcixuPXQubWVzc2FnZTtpZihcImVudmlyb25tZW50TmFtZVwiaW4gdCYmdC5lbnZpcm9ubWVudE5hbWUpe3ZhciByPVwiWyBcIi5jb25jYXQodC5lbnZpcm9ubWVudE5hbWUsXCIgXSBcIik7bi5zdGFydHNXaXRoKHIpJiYobj1uLnNsaWNlKHIubGVuZ3RoKSl9aWYobiYmZS5wdXNoKFwiIyMgRXJyb3IgTWVzc2FnZVxcblwiLmNvbmNhdChuKSksdy5sZW5ndGg+MCl7dmFyIG89dy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWUuaWdub3JlZH0pO2lmKG8ubGVuZ3RoPjApe3ZhciBhPW8ubWFwKGZ1bmN0aW9uKGUpe2lmKGUub3JpZ2luYWxTdGFja0ZyYW1lKXt2YXIgdD1lLm9yaWdpbmFsU3RhY2tGcmFtZSxuPXQubWV0aG9kTmFtZSxyPXQuZmlsZSxvPXQubGluZTEsYT10LmNvbHVtbjE7cmV0dXJuXCIgICAgYXQgXCIuY29uY2F0KG4sXCIgKFwiKS5jb25jYXQocixcIjpcIikuY29uY2F0KG8sXCI6XCIpLmNvbmNhdChhLFwiKVwiKX1pZihlLnNvdXJjZVN0YWNrRnJhbWUpe3ZhciBpPWUuc291cmNlU3RhY2tGcmFtZSxsPWkubWV0aG9kTmFtZSxzPWkuZmlsZSxjPWkubGluZTEsdT1pLmNvbHVtbjE7cmV0dXJuXCIgICAgYXQgXCIuY29uY2F0KGwsXCIgKFwiKS5jb25jYXQocyxcIjpcIikuY29uY2F0KGMsXCI6XCIpLmNvbmNhdCh1LFwiKVwiKX1yZXR1cm5cIlwifSkuZmlsdGVyKEJvb2xlYW4pO2EubGVuZ3RoPjAmJmUucHVzaChcIlxcblwiLmNvbmNhdChhLmpvaW4oXCJcXG5cIikpKX19aWYobnVsbD09Qz92b2lkIDA6Qy5vcmlnaW5hbENvZGVGcmFtZSl7dmFyIGk9ZXEoKShlSChDLm9yaWdpbmFsQ29kZUZyYW1lKSk7ZS5wdXNoKFwiIyMgQ29kZSBGcmFtZVxcblwiLmNvbmNhdChpKSl9cmV0dXJuXCJcIi5jb25jYXQoZS5qb2luKFwiXFxuXFxuXCIpLFwiXFxuXFxuTmV4dC5qcyB2ZXJzaW9uOiBcIikuY29uY2F0KGwudmVyc2lvbkluZm8uaW5zdGFsbGVkLFwiIChcIikuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9CVU5ETEVSLFwiKVxcblwiKX0sW3ksZixDLHcsbC52ZXJzaW9uSW5mb10pO2lmKHUpcmV0dXJuKDAsYi5qc3gpKHRRLHtjaGlsZHJlbjooMCxiLmpzeCkobm8se30pfSk7aWYoIXkpcmV0dXJuIG51bGw7dmFyIGs9eS5lcnJvcixFPVtcInNlcnZlclwiLFwiZWRnZS1zZXJ2ZXJcIl0uaW5jbHVkZXMoblAoayl8fFwiXCIpO3JldHVybigwLGIuanN4cykobmMsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7ZXJyb3JDb2RlOmQsZXJyb3JUeXBlOmYsZXJyb3JNZXNzYWdlOmg/KDAsYi5qc3gpKG5ILHttZXNzYWdlOmh9KTooMCxiLmpzeCkoblYse2Vycm9yOmt9KSxvbkNsb3NlOkU/dm9pZCAwOmksZGVidWdJbmZvOmEsZXJyb3I6ayxydW50aW1lRXJyb3JzOm8sYWN0aXZlSWR4Om0sc2V0QWN0aXZlSW5kZXg6dixkaWFsb2dSZXNpemVyUmVmOnMsZ2VuZXJhdGVFcnJvckluZm86X30sbCksbj1uPXtjaGlsZHJlbjpbKDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LW5vdGVzLWNvbnRhaW5lclwiLGNoaWxkcmVuOltwPygwLGIuanN4KShiLkZyYWdtZW50LHtjaGlsZHJlbjooMCxiLmpzeCkoXCJwXCIse2lkOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19ub3Rlc1wiLGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbm90ZXNcIixjaGlsZHJlbjpwfSl9KTpudWxsLGg/KDAsYi5qc3gpKFwicFwiLHtpZDpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbGlua1wiLGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbGlua1wiLGNoaWxkcmVuOigwLGIuanN4KShldix7dGV4dDpcIlNlZSBtb3JlIGluZm8gaGVyZTogXCIuY29uY2F0KHRoKX0pfSk6bnVsbF19KSxnLnJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZj8oMCxiLmpzeCkobk8se3JlYWN0T3V0cHV0Q29tcG9uZW50RGlmZjpnLnJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZnx8XCJcIn0pOm51bGwsKDAsYi5qc3gpKHguU3VzcGVuc2Use2ZhbGxiYWNrOigwLGIuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWVycm9yLXN1c3BlbmRlZFwiOiEwfSksY2hpbGRyZW46KDAsYi5qc3gpKG5SLHtlcnJvcjp5LGRpYWxvZ1Jlc2l6ZXJSZWY6c30seS5pZC50b1N0cmluZygpKX0pXX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSl9ZnVuY3Rpb24gblkoZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaCxtLGcseSx2LHgsdz0oMCxBLmMpKDE5KTtyZXR1cm4od1swXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLGIuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwicGFnZXNcIn0pLHdbMF09cik6cj13WzBdLHdbMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obz0oMCxiLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJUdXJib3BhY2sgaXMgYW4gaW5jcmVtZW50YWwgYnVuZGxlciBvcHRpbWl6ZWQgZm9yIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQsIHdyaXR0ZW4gaW4gUnVzdCwgYW5kIGJ1aWx0IGludG8gTmV4dC5qcy4gVHVyYm9wYWNrIGNhbiBiZSB1c2VkIGluIE5leHQuanMgaW4gYm90aCB0aGVcIixcIiBcIixyLFwiIGFuZFwiLFwiIFwiLCgwLGIuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwiYXBwXCJ9KSxcIiBkaXJlY3RvcmllcyBmb3IgZmFzdGVyIGxvY2FsIGRldmVsb3BtZW50LlwiXX0pLHdbMV09byk6bz13WzFdLHdbMl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oYT0oMCxiLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJUbyBlbmFibGUgVHVyYm9wYWNrLCB1c2UgdGhlXCIsXCIgXCIsKDAsYi5qc3gpKFwiY29kZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlXCIsY2hpbGRyZW46XCItLXR1cmJvcGFja1wifSksXCIgZmxhZyB3aGVuIHJ1bm5pbmcgdGhlIE5leHQuanMgZGV2ZWxvcG1lbnQgc2VydmVyLlwiXX0pLHdbMl09YSk6YT13WzJdLHdbM10hPT1lKT8oaT0oMCxiLmpzeHMpKFwiYXJ0aWNsZVwiLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWFydGljbGVcIn0sZSksbj1uPXtjaGlsZHJlbjpbbyxhXX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksd1szXT1lLHdbNF09aSk6aT13WzRdLHdbNV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obD0oMCxiLmpzeCkoZTYse2FjdGlvbkxhYmVsOlwiQ29weSBOZXh0LmpzIFR1cmJvcGFjayBDb21tYW5kXCIsc3VjY2Vzc0xhYmVsOlwiTmV4dC5qcyBUdXJib3BhY2sgQ29tbWFuZCBDb3BpZWRcIixjb250ZW50OlwiLS10dXJib3BhY2tcIixjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb3B5LWJ1dHRvblwifSksd1s1XT1sKTpsPXdbNV0sd1s2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhzPSgwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpcIiAgXCJ9KSxjPSgwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpcIntcIn0pLHdbNl09cyx3WzddPWMpOihzPXdbNl0sYz13WzddKSx3WzhdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHU9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpbXCIgIFwiLCgwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLWtleVwiLGNoaWxkcmVuOidcInNjcmlwdHNcIid9KSxcIjogXCIsXCJ7XCJdfSksd1s4XT11KTp1PXdbOF0sd1s5XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhkPSgwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLWtleVwiLGNoaWxkcmVuOidcImRldlwiJ30pLHdbOV09ZCk6ZD13WzldLHdbMTBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGY9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmUgZGV2LXRvb2xzLWluZm8taGlnaGxpZ2h0XCIsY2hpbGRyZW46W1wiICAgIFwiLGQsXCI6XCIsXCIgXCIsKDAsYi5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24tdmFsdWVcIixjaGlsZHJlbjonXCJuZXh0IGRldiAtLXR1cmJvcGFja1wiJ30pLFwiLFwiXX0pLHdbMTBdPWYpOmY9d1sxMF0sd1sxMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocD0oMCxiLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi1rZXlcIixjaGlsZHJlbjonXCJidWlsZFwiJ30pLHdbMTFdPXApOnA9d1sxMV0sd1sxMl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oaD0oMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOltcIiAgICBcIixwLFwiOlwiLFwiIFwiLCgwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLXZhbHVlXCIsY2hpbGRyZW46J1wibmV4dCBidWlsZFwiJ30pLFwiLFwiXX0pLHdbMTJdPWgpOmg9d1sxMl0sd1sxM109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obT0oMCxiLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi1rZXlcIixjaGlsZHJlbjonXCJzdGFydFwiJ30pLHdbMTNdPW0pOm09d1sxM10sd1sxNF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZz0oMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOltcIiAgICBcIixtLFwiOlwiLFwiIFwiLCgwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLXZhbHVlXCIsY2hpbGRyZW46J1wibmV4dCBzdGFydFwiJ30pLFwiLFwiXX0pLHdbMTRdPWcpOmc9d1sxNF0sd1sxNV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oeT0oMCxiLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi1rZXlcIixjaGlsZHJlbjonXCJsaW50XCInfSksd1sxNV09eSk6eT13WzE1XSx3WzE2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh2PSgwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWNvbnRhaW5lclwiLGNoaWxkcmVuOigwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9ja1wiLGNoaWxkcmVuOltsLCgwLGIuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLXByZVwiLGNoaWxkcmVuOigwLGIuanN4cykoXCJjb2RlXCIse2NoaWxkcmVuOltzLGMsdSxmLGgsZywoMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOltcIiAgICBcIix5LFwiOlwiLFwiIFwiLCgwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLXZhbHVlXCIsY2hpbGRyZW46J1wibmV4dCBsaW50XCInfSldfSksKDAsYi5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOlwiICB9XCJ9KSwoMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lXCIsY2hpbGRyZW46XCJ9XCJ9KSwoMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lXCIsY2hpbGRyZW46XCIgIFwifSldfSl9KV19KX0pLHdbMTZdPXYpOnY9d1sxNl0sd1sxN10hPT1pPyh4PSgwLGIuanN4cykoYi5GcmFnbWVudCx7Y2hpbGRyZW46W2ksdl19KSx3WzE3XT1pLHdbMThdPXgpOng9d1sxOF0seH1mdW5jdGlvbiBuSyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gblgoZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIG5HKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb31mdW5jdGlvbiBuUShlKXt2YXIgdCxuLHIsbyxhLGksbD0oMCxBLmMpKDEwKTtsWzBdIT09ZT8odD1uRyhlLFtcInJvdXRlclR5cGVcIl0pLG49ZS5yb3V0ZXJUeXBlLGxbMF09ZSxsWzFdPXQsbFsyXT1uKToodD1sWzFdLG49bFsyXSksbFszXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLGIuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXBhcmFncmFwaFwiLGNoaWxkcmVuOltcIlRoZSBwYXRoXCIsXCIgXCIsKDAsYi5qc3gpKFwiY29kZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlXCIsY2hpbGRyZW46d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSksXCIgXCIsJ2lzIG1hcmtlZCBhcyBcInN0YXRpY1wiIHNpbmNlIGl0IHdpbGwgYmUgcHJlcmVuZGVyZWQgZHVyaW5nIHRoZSBidWlsZCB0aW1lLiddfSksbFszXT1yKTpyPWxbM107dmFyIHM9XCJwYWdlc1wiPT09bj9cImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9pbmNyZW1lbnRhbC1zdGF0aWMtcmVnZW5lcmF0aW9uXCI6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb25cIjtyZXR1cm4gbFs0XSE9PXM/KG89KDAsYi5qc3hzKShcInBcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tcGFyYWdyYXBoXCIsY2hpbGRyZW46W1wiV2l0aCBTdGF0aWMgUmVuZGVyaW5nLCByb3V0ZXMgYXJlIHJlbmRlcmVkIGF0IGJ1aWxkIHRpbWUsIG9yIGluIHRoZSBiYWNrZ3JvdW5kIGFmdGVyXCIsXCIgXCIsKDAsYi5qc3gpKFwiYVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1saW5rXCIsaHJlZjpzLHRhcmdldDpcIl9ibGFua1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixjaGlsZHJlbjpcImRhdGEgcmV2YWxpZGF0aW9uXCJ9KSxcIi5cIl19KSxsWzRdPXMsbFs1XT1vKTpvPWxbNV0sbFs2XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhhPSgwLGIuanN4KShcInBcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tcGFyYWdyYXBoXCIsY2hpbGRyZW46XCJTdGF0aWMgcmVuZGVyaW5nIGlzIHVzZWZ1bCB3aGVuIGEgcm91dGUgaGFzIGRhdGEgdGhhdCBpcyBub3QgcGVyc29uYWxpemVkIHRvIHRoZSB1c2VyIGFuZCBjYW4gYmUga25vd24gYXQgYnVpbGQgdGltZSwgc3VjaCBhcyBhIHN0YXRpYyBibG9nIHBvc3Qgb3IgYSBwcm9kdWN0IHBhZ2UuXCJ9KSxsWzZdPWEpOmE9bFs2XSxsWzddIT09dHx8bFs4XSE9PW8/KGk9KDAsYi5qc3hzKShcImFydGljbGVcIixuWChuSyh7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tYXJ0aWNsZVwifSx0KSx7Y2hpbGRyZW46W3IsbyxhXX0pKSxsWzddPXQsbFs4XT1vLGxbOV09aSk6aT1sWzldLGl9ZnVuY3Rpb24gbkooZSl7dmFyIHQsbixyLG8sYSxpLGwscz0oMCxBLmMpKDExKTtyZXR1cm4gc1swXSE9PWU/KHQ9bkcoZSxbXCJyb3V0ZXJUeXBlXCJdKSxuPWUucm91dGVyVHlwZSxzWzBdPWUsc1sxXT10LHNbMl09bik6KHQ9c1sxXSxuPXNbMl0pLHNbM109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj0oMCxiLmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9KSxzWzNdPXIpOnI9c1szXSxzWzRdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG89KDAsYi5qc3hzKShcInBcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tcGFyYWdyYXBoXCIsY2hpbGRyZW46W1wiVGhlIHBhdGhcIixcIiBcIixyLFwiIFwiLCdpcyBtYXJrZWQgYXMgXCJkeW5hbWljXCIgc2luY2UgaXQgd2lsbCBiZSByZW5kZXJlZCBmb3IgZWFjaCB1c2VyIGF0JyxcIiBcIiwoMCxiLmpzeCkoXCJzdHJvbmdcIix7Y2hpbGRyZW46XCJyZXF1ZXN0IHRpbWVcIn0pLFwiLlwiXX0pLGE9KDAsYi5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpcIkR5bmFtaWMgcmVuZGVyaW5nIGlzIHVzZWZ1bCB3aGVuIGEgcm91dGUgaGFzIGRhdGEgdGhhdCBpcyBwZXJzb25hbGl6ZWQgdG8gdGhlIHVzZXIgb3IgaGFzIGluZm9ybWF0aW9uIHRoYXQgY2FuIG9ubHkgYmUga25vd24gYXQgcmVxdWVzdCB0aW1lLCBzdWNoIGFzIGNvb2tpZXMgb3IgdGhlIFVSTCdzIHNlYXJjaCBwYXJhbXMuXCJ9KSxzWzRdPW8sc1s1XT1hKToobz1zWzRdLGE9c1s1XSksc1s2XSE9PW4/KGk9XCJwYWdlc1wiPT09bj8oMCxiLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYWdyYXBoXCIsY2hpbGRyZW46W1wiRXhwb3J0aW5nIHRoZVwiLFwiIFwiLCgwLGIuanN4KShcImFcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tbGlua1wiLGhyZWY6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9wYWdlcy9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvZ2V0LXNlcnZlci1zaWRlLXByb3BzXCIsdGFyZ2V0OlwiX2JsYW5rXCIscmVsOlwibm9vcGVuZXIgbm9yZWZlcnJlclwiLGNoaWxkcmVuOlwiZ2V0U2VydmVyU2lkZVByb3BzXCJ9KSxcIiBcIixcImZ1bmN0aW9uIHdpbGwgb3B0IHRoZSByb3V0ZSBpbnRvIGR5bmFtaWMgcmVuZGVyaW5nLiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBzZXJ2ZXIgb24gZXZlcnkgcmVxdWVzdC5cIl19KTooMCxiLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJEdXJpbmcgcmVuZGVyaW5nLCBpZiBhXCIsXCIgXCIsKDAsYi5qc3gpKFwiYVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1saW5rXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyNkeW5hbWljLWFwaXNcIix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsY2hpbGRyZW46XCJEeW5hbWljIEFQSVwifSksXCIgXCIsXCJvciBhXCIsXCIgXCIsKDAsYi5qc3gpKFwiYVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1saW5rXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9mZXRjaFwiLHRhcmdldDpcIl9ibGFua1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixjaGlsZHJlbjpcImZldGNoXCJ9KSxcIiBcIixcIm9wdGlvbiBvZlwiLFwiIFwiLCgwLGIuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwieyBjYWNoZTogJ25vLXN0b3JlJyB9XCJ9KSxcIiBcIixcImlzIGRpc2NvdmVyZWQsIE5leHQuanMgd2lsbCBzd2l0Y2ggdG8gZHluYW1pY2FsbHkgcmVuZGVyaW5nIHRoZSB3aG9sZSByb3V0ZS5cIl19KSxzWzZdPW4sc1s3XT1pKTppPXNbN10sc1s4XSE9PXR8fHNbOV0hPT1pPyhsPSgwLGIuanN4cykoXCJhcnRpY2xlXCIsblgobksoe2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWFydGljbGVcIn0sdCkse2NoaWxkcmVuOltvLGEsaV19KSksc1s4XT10LHNbOV09aSxzWzEwXT1sKTpsPXNbMTBdLGx9dmFyIG4wPXtwYWdlczp7c3RhdGljOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvcGFnZXMvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLXNpdGUtZ2VuZXJhdGlvblwiLGR5bmFtaWM6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9wYWdlcy9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItc2lkZS1yZW5kZXJpbmdcIn0sYXBwOntzdGF0aWM6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLWNvbXBvbmVudHMjc3RhdGljLXJlbmRlcmluZy1kZWZhdWx0XCIsZHluYW1pYzpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyNkeW5hbWljLXJlbmRlcmluZ1wifX07ZnVuY3Rpb24gbjEoZSl7dmFyIHQsbixyLG8sYT0oMCxBLmMpKDgpO3JldHVybiBhWzBdIT09ZT8obj1uRyhlLFtcInJvdXRlclR5cGVcIixcImlzU3RhdGljUm91dGVcIl0pLHI9ZS5yb3V0ZXJUeXBlLHQ9ZS5pc1N0YXRpY1JvdXRlLGFbMF09ZSxhWzFdPXQsYVsyXT1uLGFbM109cik6KHQ9YVsxXSxuPWFbMl0scj1hWzNdKSxhWzRdIT09dHx8YVs1XSE9PW58fGFbNl0hPT1yPyhvPXQ/KDAsYi5qc3gpKG5RLG5LKHtyb3V0ZXJUeXBlOnJ9LG4pKTooMCxiLmpzeCkobkosbksoe3JvdXRlclR5cGU6cn0sbikpLGFbNF09dCxhWzVdPW4sYVs2XT1yLGFbN109byk6bz1hWzddLG99ZnVuY3Rpb24gbjIoKXt2YXIgZSx0PSgwLEEuYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxiLmpzeCkoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46KDAsYi5qc3gpKFwicGF0aFwiLHtmaWxsOlwiY3VycmVudENvbG9yXCIsZmlsbFJ1bGU6XCJldmVub2RkXCIsZDpcIm0uMTkxIDIuMDYzLjU2LjQ5OCAxMy41IDEyIC41NjEuNDk4Ljk5Ny0xLjEyMS0uNTYtLjQ5OC0xLjgxLTEuNjA4IDIuODgtMy4zNDJ2LS45OGwtMy4yMDQtMy43MkMxMC42NDUuOTIzIDYuMzY1LjY4NiAzLjU5NCAzLjA4TDEuNzQ4IDEuNDQgMS4xODguOTQuMTkgMi4wNjNaTTE0Ljc2MSA4bC0yLjQ0MiAyLjgzNi0xLjY1LTEuNDY2YTMuMDAxIDMuMDAxIDAgMCAwLTQuMzQyLTMuODZsLTEuNi0xLjQyMmE1LjI1MyA1LjI1MyAwIDAgMSA3LjI1MS42ODJMMTQuNzYgOFpNNy41MjYgNi41NzZsMS45NDIgMS43MjdhMS40OTkgMS40OTkgMCAwIDAtMS45NDItMS43MjdabS03Ljg0NS45MzUgMS43MjItMiAxLjEzNy45NzlMMS4yNCA4bDIuNzgyIDMuMjNBNS4yNSA1LjI1IDAgMCAwIDkuOSAxMi43MDNsLjU0IDEuNGE2Ljc1MSA2Ljc1MSAwIDAgMS03LjU1NS0xLjg5MkwtLjMxOCA4LjQ5di0uOThaXCIsY2xpcFJ1bGU6XCJldmVub2RkXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gbjQoKXt2YXIgZSx0LG49KDAsQS5jKSgyKTtyZXR1cm4gblswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLGIuanN4KShcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI2xpZ2h0X2ljb25fY2xpcF9wYXRoKVwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOC43NS43NVYwaC0xLjV2MmgxLjVWLjc1Wk0zLjI2IDQuMzJsLS41My0uNTMtLjM1NC0uMzUzLS41My0uNTMgMS4wNi0xLjA2MS41My41My4zNTQuMzU0LjUzLjUzLTEuMDYgMS4wNlptOC40Mi0xLjA2LjUzLS41My4zNTMtLjM1NC41My0uNTMgMS4wNjEgMS4wNi0uNTMuNTMtLjM1NC4zNTQtLjUzLjUzLTEuMDYtMS4wNlpNOCAxMS4yNWEzLjI1IDMuMjUgMCAxIDAgMC02LjUgMy4yNSAzLjI1IDAgMCAwIDAgNi41Wm0wIDEuNWE0Ljc1IDQuNzUgMCAxIDAgMC05LjUgNC43NSA0Ljc1IDAgMCAwIDAgOS41Wm02LTUuNWgydjEuNWgtMnYtMS41Wm0tMTMuMjUgMEgwdjEuNWgydi0xLjVILjc1Wm0xLjYyIDUuMzItLjUzLjUzIDEuMDYgMS4wNi41My0uNTMuMzU0LS4zNTMuNTMtLjUzLTEuMDYtMS4wNjEtLjUzLjUzLS4zNTQuMzU0Wm0xMC4yIDEuMDYuNTMuNTMgMS4wNi0xLjA2LS41My0uNTMtLjM1NC0uMzU0LS41My0uNTMtMS4wNiAxLjA2LjUzLjUzLjM1My4zNTRaTTguNzUgMTR2MmgtMS41di0yaDEuNVpcIixjbGlwUnVsZTpcImV2ZW5vZGRcIn0pfSksblswXT1lKTplPW5bMF0sblsxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4cykoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMjBcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwiLGNoaWxkcmVuOltlLCgwLGIuanN4KShcImRlZnNcIix7Y2hpbGRyZW46KDAsYi5qc3gpKFwiY2xpcFBhdGhcIix7aWQ6XCJsaWdodF9pY29uX2NsaXBfcGF0aFwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGQ6XCJNMCAwaDE2djE2SDB6XCJ9KX0pfSldfSksblsxXT10KTp0PW5bMV0sdH1mdW5jdGlvbiBuNSgpe3ZhciBlLHQ9KDAsQS5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLGIuanN4KShcInN2Z1wiLHtcImRhdGEtdGVzdGlkXCI6XCJnZWlzdC1pY29uXCIsaGVpZ2h0OlwiMTZcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMS41IDguMDAwMDVDMS41IDUuNTMwODkgMi45OTE5OCAzLjQwOTMyIDUuMTIzNDkgMi40ODg4OUM0Ljg4MTM2IDMuMTk4NTggNC43NSAzLjk1OTM2IDQuNzUgNC43NTAxQzQuNzUgOC42MTYwOSA3Ljg4NDAxIDExLjc1MDEgMTEuNzUgMTEuNzUwMUMxMS44OTk1IDExLjc1MDEgMTIuMDQ4IDExLjc0NTQgMTIuMTk1MyAxMS43MzYxQzExLjA5NTUgMTMuMTE2NCA5LjQwMDQ3IDE0LjAwMDEgNy41IDE0LjAwMDFDNC4xODYyOSAxNC4wMDAxIDEuNSAxMS4zMTM4IDEuNSA4LjAwMDA1Wk02LjQxNzA2IDAuNTc3NzU5QzIuNzg3ODQgMS4xMDMxIDAgNC4yMjUzNiAwIDguMDAwMDVDMCAxMi4xNDIyIDMuMzU3ODYgMTUuNTAwMSA3LjUgMTUuNTAwMUMxMC41Nzk4IDE1LjUwMDEgMTMuMjI0NCAxMy42NDM4IDE0LjM3OTIgMTAuOTkyMUwxMy40NTg4IDkuOTc5N0MxMi45MjE4IDEwLjE1NSAxMi4zNDc4IDEwLjI1MDEgMTEuNzUgMTAuMjUwMUM4LjcxMjQzIDEwLjI1MDEgNi4yNSA3Ljc4NzY3IDYuMjUgNC43NTAxQzYuMjUgMy42MzQzMSA2LjU4MTQ2IDIuNTk4MjMgNy4xNTExMSAxLjczMjE3TDYuNDE3MDYgMC41Nzc3NTlaTTEzLjI1IDFWMS43NVYyLjc1TDE0LjI1IDIuNzVIMTVWNC4yNUgxNC4yNUgxMy4yNVY1LjI1VjZIMTEuNzVWNS4yNVY0LjI1SDEwLjc1TDEwIDQuMjVWMi43NUgxMC43NUwxMS43NSAyLjc1VjEuNzVWMUgxMy4yNVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gbjMoKXt2YXIgZSx0PSgwLEEuYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxiLmpzeCkoXCJzdmdcIix7d2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMCAyYTEgMSAwIDAgMSAxLTFoMTRhMSAxIDAgMCAxIDEgMXY4LjVhMSAxIDAgMCAxLTEgMUg4Ljc1djNoMS43NVYxNmgtNXYtMS41aDEuNzV2LTNIMWExIDEgMCAwIDEtMS0xVjJabTEuNS41VjEwaDEzVjIuNWgtMTNaXCIsY2xpcFJ1bGU6XCJldmVub2RkXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gbjYoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIG45KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHxuNyhlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIG44KGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBuNihlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWVbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZVtcIkBAaXRlcmF0b3JcIl0pcmV0dXJuIEFycmF5LmZyb20oZSl9KGUpfHxuNyhlKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbjcoZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbjYoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gbjYoZSx0KX19ZnVuY3Rpb24gcmUoKXt2YXIgZSx0LG49KGU9W1wiXFxuICAuc2hvcnRjdXQtcmVjb3JkZXIge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stc2Fucyk7XFxuXFxuICAgIC5zaG9ydGN1dC1yZWNvcmRlci1idXR0b24ge1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICBnYXA6IDRweDtcXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tY29sb3ItZ3JheS01MDApO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbGcpO1xcbiAgICAgIHBhZGRpbmc6IDZweCA4cHg7XFxuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gICAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxNTBtcyB2YXIoLS10aW1pbmctc3dpZnQpO1xcblxcbiAgICAgICZbZGF0YS1oYXMtc2hvcnRjdXQ9J3RydWUnXSB7XFxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuXFxuICAgICAgICAmOmhvdmVyIHtcXG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XFxuICAgICAgICB9XFxuICAgICAgfVxcblxcbiAgICAgICY6aG92ZXIge1xcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTYwMCk7XFxuICAgICAgfVxcblxcbiAgICAgICY6OnBsYWNlaG9sZGVyIHtcXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgICAgfVxcblxcbiAgICAgICZbZGF0YS1wcmlzdGluZT0nZmFsc2UnXTo6cGxhY2Vob2xkZXIge1xcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgIH1cXG5cXG4gICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAga2JkIHtcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLXNhbnMpO1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG4gICAgICBtaW4td2lkdGg6IDIwcHg7XFxuICAgICAgaGVpZ2h0OiAyMHB4O1xcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuXFxuICAgICAgJltkYXRhLXN5bWJvbD0nZmFsc2UnXSB7XFxuICAgICAgICBwYWRkaW5nOiAwIDRweDtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLnNob3J0Y3V0LXJlY29yZGVyLWNsZWFyLWJ1dHRvbiB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICAgIHdpZHRoOiAyMHB4O1xcbiAgICAgIGhlaWdodDogMjBweDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KTtcXG5cXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gICAgICB9XFxuXFxuICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgIH1cXG5cXG4gICAgICBzdmcge1xcbiAgICAgICAgd2lkdGg6IDE0cHg7XFxuICAgICAgICBoZWlnaHQ6IDE0cHg7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAuc2hvcnRjdXQtcmVjb3JkZXIta2V5cyB7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiAycHg7XFxuICB9XFxuXFxuICAuc2hvcnRjdXQtcmVjb3JkZXItdG9vbHRpcCB7XFxuICAgIC0tZ2FwOiA4cHg7XFxuICAgIC0tYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIHBhZGRpbmc6IDRweCA4cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBib3R0b206IGNhbGMoMTAwJSArIHZhcigtLWdhcCkpO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIHNjYWxlOiAwLjk2O1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgdHJhbnNpdGlvbjpcXG4gICAgICBvcGFjaXR5IDE1MG1zIHZhcigtLXRpbWluZy1zd2lmdCksXFxuICAgICAgc2NhbGUgMTUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KTtcXG5cXG4gICAgJltkYXRhLXNob3c9J3RydWUnXSB7XFxuICAgICAgb3BhY2l0eTogMTtcXG4gICAgICBzY2FsZTogMTtcXG4gICAgfVxcblxcbiAgICBzdmcge1xcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XFxuICAgICAgYm90dG9tOiAtNnB4O1xcbiAgICAgIGxlZnQ6IDUwJTtcXG4gICAgfVxcblxcbiAgICAuc2hvcnRjdXQtcmVjb3JkZXItc3RhdHVzIHtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgZ2FwOiA2cHg7XFxuICAgIH1cXG5cXG4gICAgLnNob3J0Y3V0LXJlY29yZGVyLXN0YXR1cy1pY29uIHtcXG4gICAgICB3aWR0aDogN3B4O1xcbiAgICAgIGhlaWdodDogN3B4O1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgICBmbGV4LXNocmluazogMDtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1yZWQtNzAwKTtcXG5cXG4gICAgICAmW2RhdGEtc3VjY2Vzcz0ndHJ1ZSddIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyZWVuLTcwMCk7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXCJdLHR8fCh0PWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKHQpfX0pKSk7cmV0dXJuIHJlPWZ1bmN0aW9uKCl7cmV0dXJuIG59LG59dmFyIHJ0PVtcIk1ldGFcIixcIkNvbnRyb2xcIixcIkN0cmxcIixcIkFsdFwiLFwiT3B0aW9uXCIsXCJTaGlmdFwiXTtmdW5jdGlvbiBybihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoPSgwLEEuYykoMzMpLG09ZS52YWx1ZSxnPWUub25DaGFuZ2UseT1uOSgoMCx4LnVzZVN0YXRlKSghMCksMiksdj15WzBdLHc9eVsxXSxDPW45KCgwLHgudXNlU3RhdGUpKCExKSwyKSxfPUNbMF0saz1DWzFdO2hbMF0hPT1tPyh0PW51bGwhPW0/bTpbXSxoWzBdPW0saFsxXT10KTp0PWhbMV07dmFyIEU9bjkoKDAseC51c2VTdGF0ZSkodCksMiksaj1FWzBdLFM9RVsxXSxPPW45KCgwLHgudXNlU3RhdGUpKCExKSwyKSxCPU9bMF0sUD1PWzFdLEk9KDAseC51c2VSZWYpKG51bGwpLHo9KDAseC51c2VSZWYpKG51bGwpLFQ9ISFtfHxqLmxlbmd0aD4wO2hbMl0hPT1nfHxoWzNdIT09dnx8aFs0XSE9PV8/KG49ZnVuY3Rpb24oZSl7aWYoZS50YXJnZXQ9PT16LmN1cnJlbnQmJlwiVGFiXCIhPT1lLmtleSl7SS5jdXJyZW50JiZjbGVhclRpbWVvdXQoSS5jdXJyZW50KSxffHxrKCEwKSx2JiYoUyhbXSksdyghMSkpO3ZhciB0PWZ1bmN0aW9uKGUpe0kuY3VycmVudD13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe1AoITApLGcoZS5qb2luKFwiK1wiKSksSS5jdXJyZW50PXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ayghMSl9LDFlMyl9LDE4MCl9O2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLFMoZnVuY3Rpb24obil7aWYobi5pbmNsdWRlcyhlLmNvZGUpfHxuLmluY2x1ZGVzKGUua2V5KSlyZXR1cm4gbjtpZighcnQuaW5jbHVkZXMoZS5rZXkpKXt2YXIgcj1uLmZpbmRJbmRleChyYSk7aWYoLTEhPT1yKXt2YXIgbz1uOChuKTtyZXR1cm4gb1tyXT1lLmNvZGUsdChvKSxvfXZhciBhPW44KG4pLmNvbmNhdChbZS5jb2RlXSk7cmV0dXJuIHQoYSksYX1mb3IodmFyIGk9bjgobiksbD1ydC5pbmRleE9mKGUua2V5KSxzPTAsYz0wO2M8aS5sZW5ndGg7YysrKWlmKHJ0LmluY2x1ZGVzKGlbY10pKXtpZihsPHJ0LmluZGV4T2YoaVtjXSkpe3M9YzticmVha31zPWMrMX1lbHNlIGJyZWFrO3JldHVybiBpLnNwbGljZShzLDAsZS5rZXkpLHQoaSksaX0pfX0saFsyXT1nLGhbM109dixoWzRdPV8saFs1XT1uKTpuPWhbNV07dmFyIEQ9bjtoWzZdIT09Zz8ocj1mdW5jdGlvbigpe3ZhciBlO251bGw9PShlPXouY3VycmVudCl8fGUuZm9jdXMoKSxTKFtdKSxQKCExKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ayghMCl9KSxnKG51bGwpfSxoWzZdPWcsaFs3XT1yKTpyPWhbN107dmFyIEw9cjtoWzhdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KG89ZnVuY3Rpb24oKXtQKCExKSxrKCExKSx3KCEwKX0saFs4XT1vKTpvPWhbOF07dmFyIE49bztoWzldPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGE9ZnVuY3Rpb24oKXt2YXIgZTtJLmN1cnJlbnQmJmNsZWFyVGltZW91dChJLmN1cnJlbnQpLGsoITApLG51bGw9PShlPXouY3VycmVudCl8fGUuZm9jdXMoKX0saFs5XT1hKTphPWhbOV07dmFyIFI9YTtoWzEwXSE9PVR8fGhbMTFdIT09aj8oaT1UPygwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJzaG9ydGN1dC1yZWNvcmRlci1rZXlzXCIsY2hpbGRyZW46ai5tYXAocm8pfSk6XCJSZWNvcmQgU2hvcnRjdXRcIixoWzEwXT1ULGhbMTFdPWosaFsxMl09aSk6aT1oWzEyXSxoWzEzXSE9PUx8fGhbMTRdIT09VD8obD1UJiYoMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2hvcnRjdXQtcmVjb3JkZXItY2xlYXItYnV0dG9uXCIscm9sZTpcImJ1dHRvblwiLG9uQ2xpY2s6TCxvbkZvY3VzOnJyLG9uS2V5RG93bjpmdW5jdGlvbihlKXsoXCJFbnRlclwiPT09ZS5rZXl8fFwiIFwiPT09ZS5rZXkpJiYoTCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpfSxcImFyaWEtbGFiZWxcIjpcIkNsZWFyIHNob3J0Y3V0XCIsdGFiSW5kZXg6MCxjaGlsZHJlbjooMCxiLmpzeCkocmMse30pfSksaFsxM109TCxoWzE0XT1ULGhbMTVdPWwpOmw9aFsxNV0saFsxNl0hPT1EfHxoWzE3XSE9PVR8fGhbMThdIT09aXx8aFsxOV0hPT1sPyhzPSgwLGIuanN4cykoXCJidXR0b25cIix7Y2xhc3NOYW1lOlwic2hvcnRjdXQtcmVjb3JkZXItYnV0dG9uXCIscmVmOnosb25DbGljazpSLG9uRm9jdXM6UixvbkJsdXI6TixvbktleURvd246RCxcImRhdGEtaGFzLXNob3J0Y3V0XCI6VCxcImRhdGEtc2hvcnRjdXQtcmVjb3JkZXJcIjpcInRydWVcIixjaGlsZHJlbjpbaSxsXX0pLGhbMTZdPUQsaFsxN109VCxoWzE4XT1pLGhbMTldPWwsaFsyMF09cyk6cz1oWzIwXSxoWzIxXSE9PUI/KGM9KDAsYi5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNob3J0Y3V0LXJlY29yZGVyLXN0YXR1cy1pY29uXCIsXCJkYXRhLXN1Y2Nlc3NcIjpCfSksaFsyMV09QixoWzIyXT1jKTpjPWhbMjJdO3ZhciBNPUI/XCJTaG9ydGN1dCBzZXRcIjpcIlJlY29yZGluZ1wiO3JldHVybiBoWzIzXSE9PU18fGhbMjRdIT09Yz8odT0oMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNob3J0Y3V0LXJlY29yZGVyLXN0YXR1c1wiLGNoaWxkcmVuOltjLE1dfSksaFsyM109TSxoWzI0XT1jLGhbMjVdPXUpOnU9aFsyNV0saFsyNl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZD0oMCxiLmpzeCkocmkse30pLGhbMjZdPWQpOmQ9aFsyNl0saFsyN10hPT1ffHxoWzI4XSE9PXU/KGY9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzaG9ydGN1dC1yZWNvcmRlci10b29sdGlwXCIsXCJkYXRhLXNob3dcIjpfLGNoaWxkcmVuOlt1LGRdfSksaFsyN109XyxoWzI4XT11LGhbMjldPWYpOmY9aFsyOV0saFszMF0hPT1mfHxoWzMxXSE9PXM/KHA9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzaG9ydGN1dC1yZWNvcmRlclwiLGNoaWxkcmVuOltzLGZdfSksaFszMF09ZixoWzMxXT1zLGhbMzJdPXApOnA9aFszMl0scH1mdW5jdGlvbiBycihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBybyhlKXtyZXR1cm4oMCxiLmpzeCkocmwse2NoaWxkcmVuOmV9LGUpfWZ1bmN0aW9uIHJhKGUpe3JldHVybiFydC5pbmNsdWRlcyhlKX1mdW5jdGlvbiByaSgpe3ZhciBlLHQ9KDAsQS5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLGIuanN4KShcInN2Z1wiLHtmaWxsOlwibm9uZVwiLGhlaWdodDpcIjZcIix2aWV3Qm94OlwiMCAwIDE0IDZcIix3aWR0aDpcIjE0XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZDpcIk0xMy44Mjg0IDBIMC4xNzE1N0MwLjcwMjAwMyAwIDEuMjEwNzEgMC4yMTA3MTQgMS41ODU3OCAwLjU4NTc4N0w1LjU4NTc4IDQuNTg1NzlDNi4zNjY4MyA1LjM2Njg0IDcuNjMzMTYgNS4zNjY4MyA4LjQxNDIxIDQuNTg1NzlMMTIuNDE0MiAwLjU4NTc4NkMxMi43ODkzIDAuMjEwNzE0IDEzLjI5OCAwIDEzLjgyODQgMFpcIixmaWxsOlwidmFyKC0tYmFja2dyb3VuZClcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiBybChlKXt2YXIgdCxuLHIsbyxhPSgwLEEuYykoOSksaT1lLmNoaWxkcmVuO2FbMF0hPT1pPyh0PWZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlXCJNZXRhXCI6cmV0dXJuKDAsYi5qc3gpKHJzLHt9KTtjYXNlXCJBbHRcIjpjYXNlXCJPcHRpb25cIjpyZXR1cm5cIuKMpVwiO2Nhc2VcIkNvbnRyb2xcIjpjYXNlXCJDdHJsXCI6cmV0dXJuXCJDdHJsXCI7Y2FzZVwiU2hpZnRcIjpyZXR1cm5cIuKHp1wiO2Nhc2VcIkVudGVyXCI6cmV0dXJuXCLij45cIjtjYXNlXCJFc2NhcGVcIjpjYXNlXCJFc2NcIjpyZXR1cm5cIkVzY1wiO2Nhc2VcIiBcIjpjYXNlXCJTcGFjZVwiOmNhc2VcIlNwYWNlYmFyXCI6cmV0dXJuXCJTcGFjZVwiO2Nhc2VcIkFycm93VXBcIjpyZXR1cm5cIuKGkVwiO2Nhc2VcIkFycm93RG93blwiOnJldHVyblwi4oaTXCI7Y2FzZVwiQXJyb3dMZWZ0XCI6cmV0dXJuXCLihpBcIjtjYXNlXCJBcnJvd1JpZ2h0XCI6cmV0dXJuXCLihpJcIjtjYXNlXCJUYWJcIjpyZXR1cm5cIlRhYlwiO2Nhc2VcIkJhY2tzcGFjZVwiOnJldHVyblwi4oyrXCI7Y2FzZVwiRGVsZXRlXCI6cmV0dXJuXCLijKZcIjtkZWZhdWx0OmlmKDE9PT1pLmxlbmd0aClyZXR1cm4gaS50b1VwcGVyQ2FzZSgpO3JldHVybiBpfX0sYVswXT1pLGFbMV09dCk6dD1hWzFdO3ZhciBsPXQ7aWYoYVsyXSE9PWl8fGFbM10hPT1sKXt2YXIgcz1sKGkpO249XCJzdHJpbmdcIj09dHlwZW9mIHMmJjE9PT1zLmxlbmd0aCxyPWZ1bmN0aW9uKGUpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiBlKXJldHVybiBlO3ZhciB0PXtNaW51czpcIi1cIixFcXVhbDpcIj1cIixCcmFja2V0TGVmdDpcIltcIixCcmFja2V0UmlnaHQ6XCJdXCIsQmFja3NsYXNoOlwiXFxcXFwiLFNlbWljb2xvbjpcIjtcIixRdW90ZTpcIidcIixDb21tYTpcIixcIixQZXJpb2Q6XCIuXCIsQmFja3F1b3RlOlwiYFwiLFNwYWNlOlwiIFwiLFNsYXNoOlwiL1wiLEludGxCYWNrc2xhc2g6XCJcXFxcXCJ9O3JldHVybiB0W2VdP3RbZV06L15LZXkoW0EtWl0pJC8udGVzdChlKT9lLnJlcGxhY2UoL15LZXkvLFwiXCIpOi9eRGlnaXQoWzAtOV0pJC8udGVzdChlKT9lLnJlcGxhY2UoL15EaWdpdC8sXCJcIik6L15OdW1wYWQoWzAtOV0pJC8udGVzdChlKT9lLnJlcGxhY2UoL15OdW1wYWQvLFwiXCIpOlwiTnVtcGFkQWRkXCI9PT1lP1wiK1wiOlwiTnVtcGFkU3VidHJhY3RcIj09PWU/XCItXCI6XCJOdW1wYWRNdWx0aXBseVwiPT09ZT9cIipcIjpcIk51bXBhZERpdmlkZVwiPT09ZT9cIi9cIjpcIk51bXBhZERlY2ltYWxcIj09PWU/XCIuXCI6XCJOdW1wYWRFbnRlclwiPT09ZT9cIkVudGVyXCI6ZX0ocyksYVsyXT1pLGFbM109bCxhWzRdPW4sYVs1XT1yfWVsc2Ugbj1hWzRdLHI9YVs1XTtyZXR1cm4gYVs2XSE9PW58fGFbN10hPT1yPyhvPSgwLGIuanN4KShcImtiZFwiLHtcImRhdGEtc3ltYm9sXCI6bixjaGlsZHJlbjpyfSksYVs2XT1uLGFbN109cixhWzhdPW8pOm89YVs4XSxvfWZ1bmN0aW9uIHJzKCl7dmFyIGUsdCxuLHIsbyxhPSgwLEEuYykoNiksaT1uOSgoMCx4LnVzZVN0YXRlKShcIlxceGEwXCIpLDIpLGw9aVswXSxzPWlbMV07YVswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPXJkKC9eTWFjLyl8fHJkKC9eaVBob25lLyl8fHJkKC9eaVBhZC8pfHxyZCgvXk1hYy8pJiZuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM+MSxhWzBdPWUpOmU9YVswXTt2YXIgYz1lO3JldHVybiBhWzFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9ZnVuY3Rpb24oKXshMD09PWMmJnMoXCLijJhcIiksITE9PT1jJiZzKFwiQ3RybFwiKX0sbj1bY10sYVsxXT10LGFbMl09bik6KHQ9YVsxXSxuPWFbMl0pLCgwLHgudXNlRWZmZWN0KSh0LG4pLGFbM109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8ocj17bWluV2lkdGg6XCIxZW1cIixkaXNwbGF5OlwiaW5saW5lLWJsb2NrXCJ9LGFbM109cik6cj1hWzNdLGFbNF0hPT1sPyhvPSgwLGIuanN4KShcInNwYW5cIix7c3R5bGU6cixjaGlsZHJlbjpsfSksYVs0XT1sLGFbNV09byk6bz1hWzVdLG99ZnVuY3Rpb24gcmMoKXt2YXIgZSx0PSgwLEEuYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxiLmpzeCkoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMTIuNDY5NyAxMy41MzAzTDEzIDE0LjA2MDdMMTQuMDYwNyAxM0wxMy41MzAzIDEyLjQ2OTdMOS4wNjA2NSA3Ljk5OTk5TDEzLjUzMDMgMy41MzAzMkwxNC4wNjA3IDIuOTk5OTlMMTMgMS45MzkzM0wxMi40Njk3IDIuNDY5NjZMNy45OTk5OSA2LjkzOTMzTDMuNTMwMzIgMi40Njk2NkwyLjk5OTk5IDEuOTM5MzNMMS45MzkzMyAyLjk5OTk5TDIuNDY5NjYgMy41MzAzMkw2LjkzOTMzIDcuOTk5OTlMMi40Njk2NiAxMi40Njk3TDEuOTM5MzMgMTNMMi45OTk5OSAxNC4wNjA3TDMuNTMwMzIgMTMuNTMwM0w3Ljk5OTk5IDkuMDYwNjVMMTIuNDY5NyAxMy41MzAzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksdFswXT1lKTplPXRbMF0sZX12YXIgcnU9ZXMocmUoKSk7ZnVuY3Rpb24gcmQoZSl7cmV0dXJuXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmbnVsbCE9d2luZG93Lm5hdmlnYXRvcj9lLnRlc3Qod2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSk6dm9pZCAwfWZ1bmN0aW9uIHJmKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBycChlLHQsbixyLG8sYSxpKXt0cnl7dmFyIGw9ZVthXShpKSxzPWwudmFsdWV9Y2F0Y2goZSl7bihlKTtyZXR1cm59bC5kb25lP3Qocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX12YXIgcmg9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC96b2QvaW5kZXguY2pzXCIpLHJtPXJoLnoub2JqZWN0KHt0aGVtZTpyaC56LmVudW0oW1wibGlnaHRcIixcImRhcmtcIixcInN5c3RlbVwiXSkub3B0aW9uYWwoKSxkaXNhYmxlRGV2SW5kaWNhdG9yOnJoLnouYm9vbGVhbigpLm9wdGlvbmFsKCksZGV2VG9vbHNQb3NpdGlvbjpyaC56LmVudW0oW1widG9wLWxlZnRcIixcInRvcC1yaWdodFwiLFwiYm90dG9tLWxlZnRcIixcImJvdHRvbS1yaWdodFwiXSkub3B0aW9uYWwoKSxkZXZUb29sc1BhbmVsUG9zaXRpb246cmguei5yZWNvcmQocmguei5zdHJpbmcoKSxyaC56LmVudW0oW1widG9wLWxlZnRcIixcInRvcC1yaWdodFwiLFwiYm90dG9tLWxlZnRcIixcImJvdHRvbS1yaWdodFwiXSkpLm9wdGlvbmFsKCksZGV2VG9vbHNQYW5lbFNpemU6cmguei5yZWNvcmQocmguei5zdHJpbmcoKSxyaC56Lm9iamVjdCh7d2lkdGg6cmguei5udW1iZXIoKSxoZWlnaHQ6cmguei5udW1iZXIoKX0pKS5vcHRpb25hbCgpLHNjYWxlOnJoLnoubnVtYmVyKCkub3B0aW9uYWwoKSxoaWRlU2hvcnRjdXQ6cmguei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCl9KTtmdW5jdGlvbiByZyhlKXtyZXR1cm4gZSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbD9cInN5bWJvbFwiOnR5cGVvZiBlfXZhciByeT17fSxydj1udWxsO2Z1bmN0aW9uIHJiKCl7aWYoMCE9PU9iamVjdC5rZXlzKHJ5KS5sZW5ndGgpe3ZhciBlPUpTT04uc3RyaW5naWZ5KHJ5KTtyeT17fSxmZXRjaChcIi9fX25leHRqc19kZXZ0b29sc19jb25maWdcIix7bWV0aG9kOlwiUE9TVFwiLGhlYWRlcnM6e1wiQ29udGVudC1UeXBlXCI6XCJhcHBsaWNhdGlvbi9qc29uXCJ9LGJvZHk6ZSxrZWVwYWxpdmU6ITB9KS5jYXRjaChmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oXCJbTmV4dC5qcyBEZXZUb29sc10gRmFpbGVkIHRvIHNhdmUgY29uZmlnOlwiLHtkYXRhOmUsZXJyb3I6dH0pfSl9fWZ1bmN0aW9uIHJBKGUpe3ZhciB0PXJtLnNhZmVQYXJzZShlKTtpZighdC5zdWNjZXNzKXJldHVybiB2b2lkIGNvbnNvbGUud2FybihcIltOZXh0LmpzIERldlRvb2xzXSBJbnZhbGlkIGNvbmZpZyBwYXRjaDpcIix0LmVycm9yLm1lc3NhZ2UpO3J5PWZ1bmN0aW9uIGUodCxuKXtpZighbnx8KHZvaWQgMD09PW4/XCJ1bmRlZmluZWRcIjpyZyhuKSkhPT1cIm9iamVjdFwifHxBcnJheS5pc0FycmF5KG4pfHwhdHx8KHZvaWQgMD09PXQ/XCJ1bmRlZmluZWRcIjpyZyh0KSkhPT1cIm9iamVjdFwifHxBcnJheS5pc0FycmF5KHQpKXJldHVybiBuO3ZhciByPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sdCk7Zm9yKHZhciBvIGluIG4pe3ZhciBhPW5bb10saT10W29dO3ZvaWQgMCE9PWEmJihhJiYodm9pZCAwPT09YT9cInVuZGVmaW5lZFwiOnJnKGEpKT09PVwib2JqZWN0XCImJiFBcnJheS5pc0FycmF5KGEpJiZpJiYodm9pZCAwPT09aT9cInVuZGVmaW5lZFwiOnJnKGkpKT09PVwib2JqZWN0XCImJiFBcnJheS5pc0FycmF5KGkpP3Jbb109ZShpLGEpOnJbb109YSl9cmV0dXJuIHJ9KHJ5LGUpLHJ2JiZjbGVhclRpbWVvdXQocnYpLHJ2PXNldFRpbWVvdXQocmIsMTIwKX1mdW5jdGlvbiByeChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gcncoKXt2YXIgZSx0LG49KGU9W1wiXFxuICAucHJlZmVyZW5jZXMtY29udGFpbmVyIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgLnByZWZlcmVuY2VzLWNvbnRhaW5lciB7XFxuICAgICAgd2lkdGg6IDQ4MHB4O1xcbiAgICB9XFxuICB9XFxuXFxuICAucHJlZmVyZW5jZS1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcXG4gICAgcGFkZGluZy10b3A6IDA7XFxuICB9XFxuXFxuICAucHJlZmVyZW5jZS1zZWN0aW9uIHtcXG4gICAgcGFkZGluZzogMTJweCAwO1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogMjRweDtcXG4gIH1cXG5cXG4gIC5wcmVmZXJlbmNlLXNlY3Rpb246bGFzdC1jaGlsZCB7XFxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICB9XFxuXFxuICAucHJlZmVyZW5jZS1oZWFkZXIge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICBmbGV4OiAxO1xcbiAgfVxcblxcbiAgLnByZWZlcmVuY2UtaGVhZGVyIGxhYmVsIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG4gIC5wcmVmZXJlbmNlLWRlc2NyaXB0aW9uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgLnNlbGVjdC1idXR0b24sXFxuICAuYWN0aW9uLWJ1dHRvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogOHB4O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1sZyk7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KTtcXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XFxuICAgIH1cXG5cXG4gICAgc3ZnIHtcXG4gICAgICB3aWR0aDogMTRweDtcXG4gICAgICBoZWlnaHQ6IDE0cHg7XFxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5zZWxlY3QtYnV0dG9uIHtcXG4gICAgJjpmb2N1cy13aXRoaW4ge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xcbiAgICB9XFxuXFxuICAgIHNlbGVjdCB7XFxuICAgICAgYWxsOiB1bnNldDtcXG4gICAgfVxcblxcbiAgICBvcHRpb24ge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLnByZWZlcmVuY2Utc2VjdGlvbiBidXR0b246ZGlzYWJsZWQge1xcbiAgICBvcGFjaXR5OiAwLjY7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICB9XFxuXFxuICA6Z2xvYmFsKC5pY29uKSB7XFxuICAgIHdpZHRoOiAxOHB4O1xcbiAgICBoZWlnaHQ6IDE4cHg7XFxuICAgIGNvbG9yOiAjNjY2O1xcbiAgfVxcblwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiBydz1mdW5jdGlvbigpe3JldHVybiBufSxufWZ1bmN0aW9uIHJDKGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYyx1LGQsZixwLGgsbSxnLHksdix3LEMsXyxrLEUsaixTLEIsUCxJLHosVCxELEwsTixSLE0sWixVLEYscSxILFYsJCxXLFk9KDAsQS5jKSg2NSksSz1lLnRoZW1lLFg9ZS5oaWRlLEc9ZS5oaWRlU2hvcnRjdXQsUT1lLnNldEhpZGVTaG9ydGN1dCxKPWUuc2NhbGUsZWU9ZS5zZXRQb3NpdGlvbixldD1lLnNldFNjYWxlLGVuPWUucG9zaXRpb24sZXI9KG89KHQ9KDAseC51c2VTdGF0ZSkoITEpLG49MixyPWZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJmKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHJmKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKVswXSxhPXJbMV0se3Jlc3RhcnRTZXJ2ZXI6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmludmFsaWRhdGVQZXJzaXN0ZW50Q2FjaGU7cmV0dXJuKHQ9ZnVuY3Rpb24oKXt2YXIgZSx0LHIsbyxpLGw7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX0saT1PYmplY3QuY3JlYXRlKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBJdGVyYXRvcj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIGkubmV4dD1sKDApLGkudGhyb3c9bCgxKSxpLnJldHVybj1sKDIpLFwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBsKGwpe3JldHVybiBmdW5jdGlvbihzKXt2YXIgYz1bbCxzXTtpZihuKXRocm93IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtpJiYoaT0wLGNbMF0mJihhPTApKSxhOyl0cnl7aWYobj0xLHImJihvPTImY1swXT9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYz1bMiZjWzBdLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKG89KG89YS50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSkmJig2PT09Y1swXXx8Mj09PWNbMF0pKXthPTA7Y29udGludWV9aWYoMz09PWNbMF0mJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXthLmxhYmVsPWNbMV07YnJlYWt9aWYoNj09PWNbMF0mJmEubGFiZWw8b1sxXSl7YS5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZhLmxhYmVsPG9bMl0pe2EubGFiZWw9b1syXSxhLm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1jPXQuY2FsbChlLGEpfWNhdGNoKGUpe2M9WzYsZV0scj0wfWZpbmFsbHl7bj1vPTB9aWYoNSZjWzBdKXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fX0odGhpcyxmdW5jdGlvbihzKXtzd2l0Y2gocy5sYWJlbCl7Y2FzZSAwOmEoITApLGU9bj9cIi9fX25leHRqc19yZXN0YXJ0X2Rldj9pbnZhbGlkYXRlUGVyc2lzdGVudENhY2hlPTFcIjpcIi9fX25leHRqc19yZXN0YXJ0X2RldlwiLHQ9ITEscy5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gcy50cnlzLnB1c2goWzEsMTEsMTIsMTNdKSxbNCxmZXRjaChcIi9fX25leHRqc19zZXJ2ZXJfc3RhdHVzXCIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5leGVjdXRpb25JZH0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLmxvZyhcIltOZXh0LmpzIERldlRvb2xzXSBGYWlsZWQgdG8gZmV0Y2ggc2VydmVyIHN0YXR1cyB3aGlsZSByZXN0YXJ0aW5nIGRldiBzZXJ2ZXIuXCIsZSksbnVsbH0pXTtjYXNlIDI6aWYoIShyPXMuc2VudCgpKSlyZXR1cm4gY29uc29sZS5sb2coXCJbTmV4dC5qcyBEZXZUb29sc10gRmFpbGVkIHRvIGdldCB0aGUgY3VycmVudCBzZXJ2ZXIgZXhlY3V0aW9uIElEIHdoaWxlIHJlc3RhcnRpbmcgZGV2IHNlcnZlci5cIiksWzJdO3JldHVybls0LGZldGNoKGUse21ldGhvZDpcIlBPU1RcIn0pXTtjYXNlIDM6aWYoIShvPXMuc2VudCgpKS5vaylyZXR1cm4gY29uc29sZS5sb2coXCJbTmV4dC5qcyBEZXZUb29sc10gRmFpbGVkIHRvIGZldGNoIHJlc3RhcnQgc2VydmVyIGVuZHBvaW50LiBTdGF0dXM6XCIsby5zdGF0dXMpLFsyXTtpPTAscy5sYWJlbD00O2Nhc2UgNDppZighKGk8MTApKXJldHVyblszLDEwXTtyZXR1cm5bNCxuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtyZXR1cm4gc2V0VGltZW91dChlLDFlMyl9KV07Y2FzZSA1OnMuc2VudCgpLHMubGFiZWw9NjtjYXNlIDY6cmV0dXJuIHMudHJ5cy5wdXNoKFs2LDgsLDldKSxbNCxmZXRjaChcIi9fX25leHRqc19zZXJ2ZXJfc3RhdHVzXCIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5leGVjdXRpb25JZH0pXTtjYXNlIDc6aWYobD1zLnNlbnQoKSxyIT09bClyZXR1cm4gdD0hMCx3aW5kb3cubG9jYXRpb24ucmVsb2FkKCksWzJdO3JldHVyblszLDldO2Nhc2UgODpyZXR1cm4gcy5zZW50KCksWzMsOV07Y2FzZSA5OnJldHVybiBpKyssWzMsNF07Y2FzZSAxMDpyZXR1cm4gY29uc29sZS5sb2coXCJbTmV4dC5qcyBEZXZUb29sc10gRmFpbGVkIHRvIHJlc3RhcnQgc2VydmVyLiBFeGhhdXN0ZWQgYWxsIHBvbGxpbmcgYXR0ZW1wdHMuXCIpLFsyXTtjYXNlIDExOnJldHVybiBjb25zb2xlLmxvZyhcIltOZXh0LmpzIERldlRvb2xzXSBGYWlsZWQgdG8gcmVzdGFydCBzZXJ2ZXIuXCIscy5zZW50KCkpLFsyXTtjYXNlIDEyOnJldHVybiB0fHxhKCExKSxbN107Y2FzZSAxMzpyZXR1cm5bMl19fSl9LGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT10LmFwcGx5KGUsbik7ZnVuY3Rpb24gaShlKXtycChhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXtycChhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfSkoKX0saXNQZW5kaW5nOm99KSxlbz1lci5yZXN0YXJ0U2VydmVyLGVhPWVyLmlzUGVuZGluZyxlaT1kYSgpLnNoYWRvd1Jvb3Q7WVswXSE9PWVpLmhvc3Q/KGk9ZnVuY3Rpb24oZSl7dmFyIHQ9ZWkuaG9zdDtpZihcInN5c3RlbVwiPT09ZS50YXJnZXQudmFsdWUpe3QuY2xhc3NMaXN0LnJlbW92ZShcImRhcmtcIiksdC5jbGFzc0xpc3QucmVtb3ZlKFwibGlnaHRcIiksckEoe3RoZW1lOlwic3lzdGVtXCJ9KTtyZXR1cm59XCJkYXJrXCI9PT1lLnRhcmdldC52YWx1ZT8odC5jbGFzc0xpc3QuYWRkKFwiZGFya1wiKSx0LmNsYXNzTGlzdC5yZW1vdmUoXCJsaWdodFwiKSxyQSh7dGhlbWU6XCJkYXJrXCJ9KSk6KHQuY2xhc3NMaXN0LnJlbW92ZShcImRhcmtcIiksdC5jbGFzc0xpc3QuYWRkKFwibGlnaHRcIiksckEoe3RoZW1lOlwibGlnaHRcIn0pKX0sWVswXT1laS5ob3N0LFlbMV09aSk6aT1ZWzFdO3ZhciBlbD1pO1lbMl0hPT1lZT8obD1mdW5jdGlvbihlKXtlZShlLnRhcmdldC52YWx1ZSksckEoe2RldlRvb2xzUG9zaXRpb246ZS50YXJnZXQudmFsdWV9KX0sWVsyXT1lZSxZWzNdPWwpOmw9WVszXTt2YXIgZXM9bDtZWzRdIT09ZXQ/KHM9ZnVuY3Rpb24oZSl7dmFyIHQ9TnVtYmVyKGUudGFyZ2V0LnZhbHVlKTtldCh0KSxyQSh7c2NhbGU6dH0pfSxZWzRdPWV0LFlbNV09cyk6cz1ZWzVdO3ZhciBlYz1zO3JldHVybiBZWzZdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGM9KDAsYi5qc3gpKFwiaDJcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tc2VjdGlvbi10aXRsZVwiLGNoaWxkcmVuOlwiR2VuZXJhbFwifSksWVs2XT1jKTpjPVlbNl0sWVs3XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh1PSgwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAsYi5qc3gpKFwibGFiZWxcIix7aHRtbEZvcjpcInRoZW1lXCIsY2hpbGRyZW46XCJUaGVtZVwifSksKDAsYi5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46XCJTZWxlY3QgeW91ciB0aGVtZSBwcmVmZXJlbmNlLlwifSldfSksWVs3XT11KTp1PVlbN10sWVs4XSE9PUs/KGQ9KDAsYi5qc3gpKHJFLHt0aGVtZTpLfSksWVs4XT1LLFlbOV09ZCk6ZD1ZWzldLFlbMTBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHA9KDAsYi5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwic3lzdGVtXCIsY2hpbGRyZW46XCJTeXN0ZW1cIn0pLGg9KDAsYi5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwibGlnaHRcIixjaGlsZHJlbjpcIkxpZ2h0XCJ9KSxmPSgwLGIuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcImRhcmtcIixjaGlsZHJlbjpcIkRhcmtcIn0pLFlbMTBdPWYsWVsxMV09cCxZWzEyXT1oKTooZj1ZWzEwXSxwPVlbMTFdLGg9WVsxMl0pLFlbMTNdIT09ZWx8fFlbMTRdIT09ZHx8WVsxNV0hPT1LPyhtPSgwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46W3UsKDAsYi5qc3hzKShyayx7aWQ6XCJ0aGVtZVwiLG5hbWU6XCJ0aGVtZVwiLHByZWZpeDpkLHZhbHVlOkssb25DaGFuZ2U6ZWwsY2hpbGRyZW46W3AsaCxmXX0pXX0pLFlbMTNdPWVsLFlbMTRdPWQsWVsxNV09SyxZWzE2XT1tKTptPVlbMTZdLFlbMTddPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGc9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWhlYWRlclwiLGNoaWxkcmVuOlsoMCxiLmpzeCkoXCJsYWJlbFwiLHtodG1sRm9yOlwicG9zaXRpb25cIixjaGlsZHJlbjpcIlBvc2l0aW9uXCJ9KSwoMCxiLmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtZGVzY3JpcHRpb25cIixjaGlsZHJlbjpcIkFkanVzdCB0aGUgcGxhY2VtZW50IG9mIHlvdXIgZGV2IHRvb2xzLlwifSldfSksWVsxN109Zyk6Zz1ZWzE3XSxZWzE4XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh5PSgwLGIuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcImJvdHRvbS1sZWZ0XCIsY2hpbGRyZW46XCJCb3R0b20gTGVmdFwifSksdj0oMCxiLmpzeCkoXCJvcHRpb25cIix7dmFsdWU6XCJib3R0b20tcmlnaHRcIixjaGlsZHJlbjpcIkJvdHRvbSBSaWdodFwifSksdz0oMCxiLmpzeCkoXCJvcHRpb25cIix7dmFsdWU6XCJ0b3AtbGVmdFwiLGNoaWxkcmVuOlwiVG9wIExlZnRcIn0pLEM9KDAsYi5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwidG9wLXJpZ2h0XCIsY2hpbGRyZW46XCJUb3AgUmlnaHRcIn0pLFlbMThdPXksWVsxOV09dixZWzIwXT13LFlbMjFdPUMpOih5PVlbMThdLHY9WVsxOV0sdz1ZWzIwXSxDPVlbMjFdKSxZWzIyXSE9PWVzfHxZWzIzXSE9PWVuPyhfPSgwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46W2csKDAsYi5qc3hzKShyayx7aWQ6XCJwb3NpdGlvblwiLG5hbWU6XCJwb3NpdGlvblwiLHZhbHVlOmVuLG9uQ2hhbmdlOmVzLGNoaWxkcmVuOlt5LHYsdyxDXX0pXX0pLFlbMjJdPWVzLFlbMjNdPWVuLFlbMjRdPV8pOl89WVsyNF0sWVsyNV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oaz0oMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtaGVhZGVyXCIsY2hpbGRyZW46WygwLGIuanN4KShcImxhYmVsXCIse2h0bWxGb3I6XCJzaXplXCIsY2hpbGRyZW46XCJTaXplXCJ9KSwoMCxiLmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtZGVzY3JpcHRpb25cIixjaGlsZHJlbjpcIkFkanVzdCB0aGUgc2l6ZSBvZiB5b3VyIGRldiB0b29scy5cIn0pXX0pLFlbMjVdPWspOms9WVsyNV0sWVsyNl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oRT1PYmplY3QuZW50cmllcyhPKS5tYXAocl8pLFlbMjZdPUUpOkU9WVsyNl0sWVsyN10hPT1lY3x8WVsyOF0hPT1KPyhqPSgwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46W2ssKDAsYi5qc3gpKHJrLHtpZDpcInNpemVcIixuYW1lOlwic2l6ZVwiLHZhbHVlOkosb25DaGFuZ2U6ZWMsY2hpbGRyZW46RX0pXX0pLFlbMjddPWVjLFlbMjhdPUosWVsyOV09aik6aj1ZWzI5XSxZWzMwXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhTPSgwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAsYi5qc3gpKFwibGFiZWxcIix7aWQ6XCJoaWRlLWRldi10b29sc1wiLGNoaWxkcmVuOlwiSGlkZSBEZXYgVG9vbHMgZm9yIHRoaXMgc2Vzc2lvblwifSksKDAsYi5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46XCJIaWRlIERldiBUb29scyB1bnRpbCB5b3UgcmVzdGFydCB5b3VyIGRldiBzZXJ2ZXIsIG9yIDEgZGF5LlwifSldfSksWVszMF09Uyk6Uz1ZWzMwXSxZWzMxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhCPSgwLGIuanN4KShuMix7fSksUD0oMCxiLmpzeCkoXCJzcGFuXCIse2NoaWxkcmVuOlwiSGlkZVwifSksWVszMV09QixZWzMyXT1QKTooQj1ZWzMxXSxQPVlbMzJdKSxZWzMzXSE9PVg/KEk9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLXNlY3Rpb25cIixjaGlsZHJlbjpbUywoMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1jb250cm9sXCIsY2hpbGRyZW46KDAsYi5qc3hzKShcImJ1dHRvblwiLHtcImFyaWEtZGVzY3JpYmVkYnlcIjpcImhpZGUtZGV2LXRvb2xzXCIsbmFtZTpcImhpZGUtZGV2LXRvb2xzXCIsXCJkYXRhLWhpZGUtZGV2LXRvb2xzXCI6ITAsY2xhc3NOYW1lOlwiYWN0aW9uLWJ1dHRvblwiLG9uQ2xpY2s6WCxjaGlsZHJlbjpbQixQXX0pfSldfSksWVszM109WCxZWzM0XT1JKTpJPVlbMzRdLFlbMzVdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHo9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWhlYWRlclwiLGNoaWxkcmVuOlsoMCxiLmpzeCkoXCJsYWJlbFwiLHtpZDpcImhpZGUtZGV2LXRvb2xzXCIsY2hpbGRyZW46XCJIaWRlIERldiBUb29scyBzaG9ydGN1dFwifSksKDAsYi5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46XCJTZXQgYSBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXQgdG8gdG9nZ2xlIHZpc2liaWxpdHkuXCJ9KV19KSxZWzM1XT16KTp6PVlbMzVdLFlbMzZdIT09Rz8oVD1udWxsIT0oRD1udWxsPT1HP3ZvaWQgMDpHLnNwbGl0KFwiK1wiKSk/RDpudWxsLFlbMzZdPUcsWVszN109VCk6VD1ZWzM3XSxZWzM4XSE9PVF8fFlbMzldIT09VD8oTD0oMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOlt6LCgwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWNvbnRyb2xcIixjaGlsZHJlbjooMCxiLmpzeCkocm4se3ZhbHVlOlQsb25DaGFuZ2U6UX0pfSldfSksWVszOF09USxZWzM5XT1ULFlbNDBdPUwpOkw9WVs0MF0sWVs0MV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oTj0oMCxiLmpzeCkoXCJsYWJlbFwiLHtjaGlsZHJlbjpcIkRpc2FibGUgRGV2IFRvb2xzIGZvciB0aGlzIHByb2plY3RcIn0pLFlbNDFdPU4pOk49WVs0MV0sWVs0Ml09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oUj0oMCxiLmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjpcImRldkluZGljYXRvcnM6IGZhbHNlXCJ9KSxZWzQyXT1SKTpSPVlbNDJdLFlbNDNdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KE09KDAsYi5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOigwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbTiwoMCxiLmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46W1wiVG8gZGlzYWJsZSB0aGlzIFVJIGNvbXBsZXRlbHksIHNldFwiLFwiIFwiLFIsXCIgXCIsXCJpbiB5b3VyIFwiLCgwLGIuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwibmV4dC5jb25maWdcIn0pLFwiIFwiLFwiZmlsZS5cIl19KV19KX0pLFlbNDNdPU0pOk09WVs0M10sWVs0NF0hPT1tfHxZWzQ1XSE9PV98fFlbNDZdIT09anx8WVs0N10hPT1JfHxZWzQ4XSE9PUw/KFo9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlcy1jb250YWluZXJcIixjaGlsZHJlbjpbbSxfLGosSSxMLE1dfSksWVs0NF09bSxZWzQ1XT1fLFlbNDZdPWosWVs0N109SSxZWzQ4XT1MLFlbNDldPVopOlo9WVs0OV0sWVs1MF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oVT0oMCxiLmpzeCkoXCJoMlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1zZWN0aW9uLXRpdGxlXCIsY2hpbGRyZW46XCJEZXZlbG9wbWVudCBTZXJ2ZXJcIn0pLFlbNTBdPVUpOlU9WVs1MF0sWVs1MV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oRj0oMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtaGVhZGVyXCIsY2hpbGRyZW46WygwLGIuanN4KShcImxhYmVsXCIse2lkOlwicmVzdGFydC1kZXYtc2VydmVyXCIsY2hpbGRyZW46XCJSZXN0YXJ0IERldiBTZXJ2ZXJcIn0pLCgwLGIuanN4KShcInBcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1kZXNjcmlwdGlvblwiLGNoaWxkcmVuOlwiUmVzdGFydHMgdGhlIGRldmVsb3BtZW50IHNlcnZlciB3aXRob3V0IG5lZWRpbmcgdG8gbGVhdmUgdGhlIGJyb3dzZXIuXCJ9KV19KSxZWzUxXT1GKTpGPVlbNTFdLFlbNTJdIT09ZW8/KHE9ZnVuY3Rpb24oKXtyZXR1cm4gZW8oe2ludmFsaWRhdGVQZXJzaXN0ZW50Q2FjaGU6ITF9KX0sWVs1Ml09ZW8sWVs1M109cSk6cT1ZWzUzXSxZWzU0XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhIPSgwLGIuanN4KShcInNwYW5cIix7Y2hpbGRyZW46XCJSZXN0YXJ0XCJ9KSxZWzU0XT1IKTpIPVlbNTRdLFlbNTVdIT09ZWF8fFlbNTZdIT09cT8oVj0oMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZXMtY29udGFpbmVyXCIsY2hpbGRyZW46KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLXNlY3Rpb25cIixjaGlsZHJlbjpbRiwoMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1jb250cm9sXCIsY2hpbGRyZW46KDAsYi5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1kZXNjcmliZWRieVwiOlwicmVzdGFydC1kZXYtc2VydmVyXCIsdGl0bGU6XCJSZXN0YXJ0cyB0aGUgZGV2ZWxvcG1lbnQgc2VydmVyIHdpdGhvdXQgbmVlZGluZyB0byBsZWF2ZSB0aGUgYnJvd3Nlci5cIixuYW1lOlwicmVzdGFydC1kZXYtc2VydmVyXCIsXCJkYXRhLXJlc3RhcnQtZGV2LXNlcnZlclwiOiEwLGNsYXNzTmFtZTpcImFjdGlvbi1idXR0b25cIixvbkNsaWNrOnEsZGlzYWJsZWQ6ZWEsY2hpbGRyZW46SH0pfSldfSl9KSxZWzU1XT1lYSxZWzU2XT1xLFlbNTddPVYpOlY9WVs1N10sWVs1OF0hPT1lYXx8WVs1OV0hPT1lbz8oJD1wcm9jZXNzLmVudi5fX05FWFRfQlVORExFUl9IQVNfUEVSU0lTVEVOVF9DQUNIRT8oMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZXMtY29udGFpbmVyXCIsY2hpbGRyZW46KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLXNlY3Rpb25cIixjaGlsZHJlbjpbKDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWhlYWRlclwiLGNoaWxkcmVuOlsoMCxiLmpzeCkoXCJsYWJlbFwiLHtpZDpcInJlc2V0LWJ1bmRsZXItY2FjaGVcIixjaGlsZHJlbjpcIlJlc2V0IEJ1bmRsZXIgQ2FjaGVcIn0pLCgwLGIuanN4KShcInBcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1kZXNjcmlwdGlvblwiLGNoaWxkcmVuOlwiQ2xlYXJzIHRoZSBidW5kbGVyIGNhY2hlIGFuZCByZXN0YXJ0cyB0aGUgZGV2IHNlcnZlci4gSGVscGZ1bCBpZiB5b3UgYXJlIHNlZWluZyBzdGFsZSBlcnJvcnMgb3IgY2hhbmdlcyBhcmUgbm90IGFwcGVhcmluZy5cIn0pXX0pLCgwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWNvbnRyb2xcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWRlc2NyaWJlZGJ5XCI6XCJyZXNldC1idW5kbGVyLWNhY2hlXCIsdGl0bGU6XCJDbGVhcnMgdGhlIGJ1bmRsZXIgY2FjaGUgYW5kIHJlc3RhcnRzIHRoZSBkZXYgc2VydmVyLiBIZWxwZnVsIGlmIHlvdSBhcmUgc2VlaW5nIHN0YWxlIGVycm9ycyBvciBjaGFuZ2VzIGFyZSBub3QgYXBwZWFyaW5nLlwiLG5hbWU6XCJyZXNldC1idW5kbGVyLWNhY2hlXCIsXCJkYXRhLXJlc2V0LWJ1bmRsZXItY2FjaGVcIjohMCxjbGFzc05hbWU6XCJhY3Rpb24tYnV0dG9uXCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBlbyh7aW52YWxpZGF0ZVBlcnNpc3RlbnRDYWNoZTohMH0pfSxkaXNhYmxlZDplYSxjaGlsZHJlbjooMCxiLmpzeCkoXCJzcGFuXCIse2NoaWxkcmVuOlwiUmVzZXQgQ2FjaGVcIn0pfSl9KV19KX0pOm51bGwsWVs1OF09ZWEsWVs1OV09ZW8sWVs2MF09JCk6JD1ZWzYwXSxZWzYxXSE9PVp8fFlbNjJdIT09Vnx8WVs2M10hPT0kPyhXPSgwLGIuanN4cykoYi5GcmFnbWVudCx7Y2hpbGRyZW46W2MsWixVLFYsJF19KSxZWzYxXT1aLFlbNjJdPVYsWVs2M109JCxZWzY0XT1XKTpXPVlbNjRdLFd9ZnVuY3Rpb24gcl8oZSl7dmFyIHQsbixyPShuPTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0odD1lKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fSh0LDIpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiByeChlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiByeChlLHQpfX0odCxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksbz1yWzBdLGE9clsxXTtyZXR1cm4oMCxiLmpzeCkoXCJvcHRpb25cIix7dmFsdWU6YSxjaGlsZHJlbjpvfSxvKX1mdW5jdGlvbiByayhlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGM9KDAsQS5jKSgxMSk7cmV0dXJuKGNbMF0hPT1lPyhhPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwicHJlZml4XCJdKSxyPWUuY2hpbGRyZW4sbz1lLnByZWZpeCxjWzBdPWUsY1sxXT1yLGNbMl09byxjWzNdPWEpOihyPWNbMV0sbz1jWzJdLGE9Y1szXSksY1s0XSE9PXJ8fGNbNV0hPT1hKT8oaT0oMCxiLmpzeCkoXCJzZWxlY3RcIiwodD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGEpLG49bj17Y2hpbGRyZW46cn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksY1s0XT1yLGNbNV09YSxjWzZdPWkpOmk9Y1s2XSxjWzddPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGw9KDAsYi5qc3gpKHJTLHt9KSxjWzddPWwpOmw9Y1s3XSxjWzhdIT09b3x8Y1s5XSE9PWk/KHM9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzZWxlY3QtYnV0dG9uXCIsY2hpbGRyZW46W28saSxsXX0pLGNbOF09byxjWzldPWksY1sxMF09cyk6cz1jWzEwXSxzfWZ1bmN0aW9uIHJFKGUpe3ZhciB0LG4scixvPSgwLEEuYykoMyk7c3dpdGNoKGUudGhlbWUpe2Nhc2VcInN5c3RlbVwiOnJldHVybiBvWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9KDAsYi5qc3gpKG4zLHt9KSxvWzBdPXQpOnQ9b1swXSx0O2Nhc2VcImRhcmtcIjpyZXR1cm4gb1sxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhuPSgwLGIuanN4KShuNSx7fSksb1sxXT1uKTpuPW9bMV0sbjtjYXNlXCJsaWdodFwiOnJldHVybiBvWzJdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHI9KDAsYi5qc3gpKG40LHt9KSxvWzJdPXIpOnI9b1syXSxyO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXZhciByaj1lcyhydygpKTtmdW5jdGlvbiByUygpe3ZhciBlLHQ9KDAsQS5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLGIuanN4KShcInN2Z1wiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsXCJhcmlhLWhpZGRlblwiOiEwLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xNC4wNjA3IDUuNDk5OTlMMTMuNTMwMyA2LjAzMDMyTDguNzA3MSAxMC44NTM1QzguMzE2NTggMTEuMjQ0MSA3LjY4MzQxIDExLjI0NDEgNy4yOTI4OSAxMC44NTM1TDIuNDY5NjYgNi4wMzAzMkwxLjkzOTMzIDUuNDk5OTlMMi45OTk5OSA0LjQzOTMzTDMuNTMwMzIgNC45Njk2Nkw3Ljk5OTk5IDkuNDM5MzNMMTIuNDY5NyA0Ljk2OTY2TDEzIDQuNDM5MzNMMTQuMDYwNyA1LjQ5OTk5WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiByTygpe3ZhciBlLHQsbj0oZT1bXCJcXG4gIFtkYXRhLW5leHRqcy1pc3N1ZS1mZWVkYmFjay1idXR0b24tZ3JvdXBdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbWFsbCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtaXNzdWUtZmVlZGJhY2stYnV0dG9uLWdyb3VwXSBidXR0b24ge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWlzc3VlLWZlZWRiYWNrLWJ1dHRvbi1ncm91cF0gYnV0dG9uOmZpcnN0LWNoaWxkIHtcXG4gICAgcGFkZGluZzogNHB4IDNweCA0cHggNXB4O1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpIDAgMCB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWlzc3VlLWZlZWRiYWNrLWJ1dHRvbi1ncm91cF0gYnV0dG9uOmxhc3QtY2hpbGQge1xcbiAgICBwYWRkaW5nOiA0cHggNXB4IDRweCAzcHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcm91bmRlZC1mdWxsKSB2YXIoLS1yb3VuZGVkLWZ1bGwpIDA7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtaXNzdWUtZmVlZGJhY2stc2VwYXJhdG9yXSB7XFxuICAgIHdpZHRoOiAxcHg7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgfVxcblwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiByTz1mdW5jdGlvbigpe3JldHVybiBufSxufXZhciByQj1lcyhyTygpKTtmdW5jdGlvbiByUCgpe3ZhciBlLHQsbj0oZT1bXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgIFwiXSx0fHwodD1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZSh0KX19KSkpO3JldHVybiByUD1mdW5jdGlvbigpe3JldHVybiBufSxufWZ1bmN0aW9uIHJJKCl7cmV0dXJuKDAsYi5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZXMoclAoKSxcIlxcbiAgLm5leHRqcy1kYXRhLWNvcHktYnV0dG9uIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuXFxuICAgIHN2ZyB7XFxuICAgICAgd2lkdGg6IHZhcigtLXNpemUtMTYpO1xcbiAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIH1cXG4gIH1cXG4gIC5uZXh0anMtZGF0YS1jb3B5LWJ1dHRvbjpkaXNhYmxlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gIH1cXG4gIC5uZXh0anMtZGF0YS1jb3B5LWJ1dHRvbi0taW5pdGlhbDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gIH1cXG4gIC5uZXh0anMtZGF0YS1jb3B5LWJ1dHRvbi0tZXJyb3I6bm90KDpkaXNhYmxlZCksXFxuICAubmV4dGpzLWRhdGEtY29weS1idXR0b24tLWVycm9yOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcXG4gIH1cXG4gIC5uZXh0anMtZGF0YS1jb3B5LWJ1dHRvbi0tc3VjY2Vzczpub3QoOmRpc2FibGVkKSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWdyZWVuKTtcXG4gIH1cXG5cIiwnXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZS1uby1zb3VyY2VdIHtcXG4gICAgcGFkZGluZzogNnB4IDhweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xcblxcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWxnKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lLW5vLXNvdXJjZV06bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZS1pZ25vcmVkPVwidHJ1ZVwiXSB7XFxuICAgIG9wYWNpdHk6IDAuNjtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSB7XFxuICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG5cXG4gICAgdXNlci1zZWxlY3Q6IHRleHQ7XFxuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IHRleHQ7XFxuICAgIC1tb3otdXNlci1zZWxlY3Q6IHRleHQ7XFxuICAgIC1tcy11c2VyLXNlbGVjdDogdGV4dDtcXG5cXG4gICAgcGFkZGluZzogNnB4IDhweDtcXG5cXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1sZyk7XFxuICB9XFxuXFxuICAuY2FsbC1zdGFjay1mcmFtZS1tZXRob2QtbmFtZSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogNHB4O1xcblxcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuXFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuXFxuICAgIHN2ZyB7XFxuICAgICAgd2lkdGg6IHZhcigtLXNpemUtMTZweCk7XFxuICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2cHgpO1xcbiAgICB9XFxuICB9XFxuXFxuICAub3Blbi1pbi1lZGl0b3ItYnV0dG9uLCAuc291cmNlLW1hcHBpbmctZXJyb3ItYnV0dG9uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWZvbnQpO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XFxuICAgIH1cXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgICB9XFxuICB9XFxuXFxuICAuY2FsbC1zdGFjay1mcmFtZS1maWxlLXNvdXJjZSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gIH1cXG4nLG5DLFwiXFxuICBbZGF0YS1uZXh0anMtZW52aXJvbm1lbnQtbmFtZS1sYWJlbF0ge1xcbiAgICBwYWRkaW5nOiAycHggNnB4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbWQtMik7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgfVxcblwiLG5mLGVYLG51LHRPLFwiXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXIge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zdGFjay1sYXllci1oZWlnaHQpO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgdHJhbnNpdGlvbjpcXG4gICAgICB0cmFuc2xhdGUgMzUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KSxcXG4gICAgICBib3gtc2hhZG93IDM1MG1zIHZhcigtLXRpbWluZy1zd2lmdCk7XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMSB7XFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zaXplLTI0KSk7XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMiB7XFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zaXplLTQ4KSk7XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAtMXB4O1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLXN0YWNrIHtcXG4gICAgLS1zdGFjay1sYXllci1oZWlnaHQ6IDQ0cHg7XFxuICAgIC0tc3RhY2stbGF5ZXItaGVpZ2h0LWhhbGY6IGNhbGModmFyKC0tc3RhY2stbGF5ZXItaGVpZ2h0KSAvIDIpO1xcbiAgICAtLXN0YWNrLWxheWVyLXRyaW06IDEzcHg7XFxuICAgIC0tc2hhZG93OiAwcHggMC45MjVweCAwLjkyNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDIpLFxcbiAgICAgIDBweCAzLjdweCA3LjRweCAtMy43cHggcmdiYSgwLCAwLCAwLCAwLjA0KSxcXG4gICAgICAwcHggMTQuOHB4IDIyLjJweCAtNy40cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcXG5cXG4gICAgZGlzcGxheTogZ3JpZDtcXG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgICBtYXgtd2lkdGg6IHZhcigtLW5leHQtZGlhbG9nLW1heC13aWR0aCk7XFxuXFxuICAgIC5lcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllciB7XFxuICAgICAgZ3JpZC1hcmVhOiAxIC8gMTtcXG4gICAgICAvKiBIaWRlICovXFxuICAgICAgdHJhbnNsYXRlOiAwIGNhbGModmFyKC0tc3RhY2stbGF5ZXItaGVpZ2h0KSAqIC0xKTtcXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzEnXSxcXG4gICAgJltkYXRhLXN0YWNrLWNvdW50PScyJ10ge1xcbiAgICAgIC5lcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllci0xIHtcXG4gICAgICAgIHRyYW5zbGF0ZTogMFxcbiAgICAgICAgICBjYWxjKHZhcigtLXN0YWNrLWxheWVyLWhlaWdodC1oYWxmKSAqIC0xIC0gdmFyKC0tc3RhY2stbGF5ZXItdHJpbSkpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzInXSB7XFxuICAgICAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyLTIge1xcbiAgICAgICAgdHJhbnNsYXRlOiAwIGNhbGModmFyKC0tc3RhY2stbGF5ZXItdHJpbSkgKiAtMSAqIDIpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAvKiBPbmx5IHRoZSBib3R0b20gc3RhY2sgc2hvdWxkIGhhdmUgdGhlIHNoYWRvdyAqL1xcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzEnXSAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMSB7XFxuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTtcXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzInXSB7XFxuICAgICAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyLTIge1xcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cIixcIlxcbiAgLmVycm9yLW92ZXJsYXktcGFnaW5hdGlvbiB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIHdpZHRoOiBmaXQtY29udGVudDtcXG4gIH1cXG5cXG4gIC5lcnJvci1vdmVybGF5LXBhZ2luYXRpb24tY291bnQge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcXG4gIH1cXG5cXG4gIC5lcnJvci1vdmVybGF5LXBhZ2luYXRpb24tYnV0dG9uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuXFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xcbiAgICBmbGV4LXNocmluazogMDtcXG5cXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG5cXG4gICAgJjpub3QoOmRpc2FibGVkKTphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNTAwKTtcXG4gICAgfVxcblxcbiAgICAmOmRpc2FibGVkIHtcXG4gICAgICBvcGFjaXR5OiAwLjU7XFxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b24taWNvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgfVxcblwiLCdcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIHtcXG4gICAgLS1jb2RlLWZyYW1lLXBhZGRpbmc6IDEycHg7XFxuICAgIC0tY29kZS1mcmFtZS1saW5lLWhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWNvZGUtZnJhbWUtbGluZS1oZWlnaHQpO1xcbiAgICBtYXJnaW46IDhweCAwO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5rLFxcbiAgLmNvZGUtZnJhbWUtcHJlIHtcXG4gICAgcGFkZGluZzogdmFyKC0tY29kZS1mcmFtZS1wYWRkaW5nKTtcXG4gIH1cXG5cXG4gIC5jb2RlLWZyYW1lLWxpbmsgc3ZnIHtcXG4gICAgZmxleC1zaHJpbms6IDA7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5lcyB7XFxuICAgIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5rIFtkYXRhLXRleHRdIHtcXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgbWFyZ2luOiBhdXRvIDZweDtcXG4gIH1cXG5cXG4gIC5jb2RlLWZyYW1lLWhlYWRlciB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEwMG1zIGVhc2Utb3V0O1xcbiAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gIH1cXG5cXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluay1zb3VyY2UtZmlsZV0ge1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIG1hcmdpbjogLTRweCAwIC00cHggYXV0bztcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XFxuICAgIH1cXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgICB9XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXTo6c2VsZWN0aW9uLFxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gKjo6c2VsZWN0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gKjpub3QoYSkge1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLWxpbmVdW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1saW5lLS1lcnJvcmVkPVwidHJ1ZVwiXSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgaXNvbGF0aW9uOiBpc29sYXRlO1xcblxcbiAgICA+IHNwYW4geyBcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgei1pbmRleDogMTtcXG4gICAgfVxcblxcbiAgICAmOjphZnRlciB7XFxuICAgICAgY29udGVudDogXCJcIjtcXG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tY29kZS1mcmFtZS1wYWRkaW5nKSAqIDIpO1xcbiAgICAgIGhlaWdodDogdmFyKC0tY29kZS1mcmFtZS1saW5lLWhlaWdodCk7XFxuICAgICAgbGVmdDogY2FsYygtMSAqIHZhcigtLWNvZGUtZnJhbWUtcGFkZGluZykpO1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXJlZC0yMDApO1xcbiAgICAgIGJveC1zaGFkb3c6IDJweCAwIDAgMCB2YXIoLS1jb2xvci1yZWQtOTAwKSBpbnNldDtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIH1cXG4gIH1cXG5cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gKiB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG4gIC5jb2RlLWZyYW1lLWxpbmsge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIG91dGxpbmU6IDA7XFxuICB9XFxuICAuY29kZS1mcmFtZS1saW5rIFtkYXRhLWljb249XFwncmlnaHRcXCddIHtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSBkaXYgPiBwcmUge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSBzdmcge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgfVxcbicsXCJcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gKjo6c2VsZWN0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1zZWxlY3Rpb24pO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSAqIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSA+IGRpdiA+IHAge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSA+IGRpdiA+IHA6aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdIGRpdiA+IHByZSB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG5cIixcIlxcbiAgW2RhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rXSBzdmcge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gIH1cXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGlua10ge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICB9XFxuICBbZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtdOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgfVxcbiAgW2RhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLWltcG9ydC10cmFjZV0ge1xcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcXG4gIH1cXG5cIixcIlwiLFwiXFxuICAubmV4dGpzLWVycm9yLXdpdGgtc3RhdGljIHtcXG4gICAgYm90dG9tOiBjYWxjKDE2cHggKiA0LjUpO1xcbiAgfVxcbiAgcC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2xpbmsge1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgfVxcbiAgcC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX25vdGVzIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN0YWNrLW5vdGVzKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5ID4gaDI6bm90KDpmaXJzdC1jaGlsZCkge1xcbiAgICBtYXJnaW4tdG9wOiBjYWxjKDE2cHggKyA4cHgpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHkgPiBoMiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1jb2xvcik7XFxuICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTIwKTtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudCB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudDpob3ZlciB7XFxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbiAgfVxcbiAgLm5leHRqcy10b2FzdC1lcnJvcnMgPiBzdmcge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtaGlkZS1idXR0b24ge1xcbiAgICBtYXJnaW4tbGVmdDogMjRweDtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGUpO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XFxuICAgIG9wYWNpdHk6IDAuNztcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtaGlkZS1idXR0b246aG92ZXIge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fZXJyb3JfdGl0bGUge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XFxuICB9XFxuICAuZXJyb3Itb3ZlcmxheS1ub3Rlcy1jb250YWluZXIge1xcbiAgICBtYXJnaW46IDhweCAycHg7XFxuICB9XFxuICAuZXJyb3Itb3ZlcmxheS1ub3Rlcy1jb250YWluZXIgcCB7XFxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG4gIH1cXG5cIixuWixcIlxcbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA0cHg7XFxuXFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yNik7XFxuICAgIHBhZGRpbmc6IDZweCA4cHggNnB4IDZweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbWFsbCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuXFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gIH1cXG5cXG4gIGEubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICB9XFxuICB9XFxuXFxuICAudmVyc2lvbi1zdGFsZW5lc3MtaW5kaWNhdG9yLmZyZXNoIHtcXG4gICAgZmlsbDogdmFyKC0tY29sb3ItZ3JlZW4tODAwKTtcXG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1ncmVlbi0zMDApO1xcbiAgfVxcbiAgLnZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvci5zdGFsZSB7XFxuICAgIGZpbGw6IHZhcigtLWNvbG9yLWFtYmVyLTgwMCk7XFxuICAgIHN0cm9rZTogdmFyKC0tY29sb3ItYW1iZXItMzAwKTtcXG4gIH1cXG4gIC52ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3Iub3V0ZGF0ZWQge1xcbiAgICBmaWxsOiB2YXIoLS1jb2xvci1yZWQtODAwKTtcXG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1yZWQtMzAwKTtcXG4gIH1cXG4gIC52ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3IudW5rbm93biB7XFxuICAgIGZpbGw6IHZhcigtLWNvbG9yLWdyYXktODAwKTtcXG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XFxuICB9XFxuXFxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyA+IC50dXJib3BhY2stdGV4dCB7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICB0byByaWdodCxcXG4gICAgICB2YXIoLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQpIDAlLFxcbiAgICAgIHZhcigtLWNvbG9yLXR1cmJvcGFjay10ZXh0LWJsdWUpIDEwMCVcXG4gICAgKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcXG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgfVxcblwiLFwiXFxuICAuZGV2LXRvb2xzLWluZm8tY29kZSB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIHBhZGRpbmc6IDJweCA0cHg7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEzKTtcXG4gICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcztcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWNvbnRhaW5lciB7XFxuICAgIHBhZGRpbmc6IDZweDtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gICAgbWluLXdpZHRoOiAzMjZweDtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLXByZSB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb3B5LWJ1dHRvbiB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG5cXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIHJpZ2h0OiA4cHg7XFxuICAgIHRvcDogOHB4O1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yNCk7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgIHBhZGRpbmc6IDAgMTZweDtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmUuZGV2LXRvb2xzLWluZm8taGlnaGxpZ2h0IHtcXG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1ibHVlLTkwMCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJsdWUtNDAwKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24ta2V5IHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXN5bnRheC1rZXl3b3JkKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24tdmFsdWUge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3ludGF4LWxpbmspO1xcbiAgfVxcblwiLFwiXCIscmosJ1xcbiAgLm5leHRqcy1zY3JvbGwtZmFkZXIge1xcbiAgICAtLWJsdXI6IDFweDtcXG4gICAgLS1zdG9wOiAyNSU7XFxuICAgIC0taGVpZ2h0OiAxNTBweDtcXG4gICAgLS1jb2xvci1iZzogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogdmFyKC0taGVpZ2h0KTtcXG4gICAgbGVmdDogMDtcXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKHZhcigtLWJsdXIpKTtcXG5cXG4gICAgJltkYXRhLXNpZGU9XCJ0b3BcIl0ge1xcbiAgICAgIHRvcDogMDtcXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCB0cmFuc3BhcmVudCwgdmFyKC0tY29sb3ItYmcpKTtcXG4gICAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB2YXIoLS1jb2xvci1iZykgdmFyKC0tc3RvcCksIHRyYW5zcGFyZW50KTtcXG4gICAgfVxcbiAgfVxcbicsckIscnUpfSl9ZnVuY3Rpb24gcnooZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHJUKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiByeihlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiByeihlLHQpfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiByRChlLHQpe3ZhciBuLHIsbyxhLGk9KDAsQS5jKSgxMCksbD12b2lkIDAhPT1lJiZlO2lbMF0hPT10PyhuPXZvaWQgMD09PXQ/e306dCxpWzBdPXQsaVsxXT1uKTpuPWlbMV07dmFyIHM9bixjPXJUKCgwLHgudXNlU3RhdGUpKGwpLDIpLHU9Y1swXSxkPWNbMV0sZj1yVCgoMCx4LnVzZVN0YXRlKSghMSksMikscD1mWzBdLGg9ZlsxXSxtPXMuZW50ZXJEZWxheSxnPXMuZXhpdERlbGF5LHk9dm9pZCAwPT09bT8xOm0sdj12b2lkIDA9PT1nPzA6ZztyZXR1cm4gaVsyXSE9PWx8fGlbM10hPT15fHxpWzRdIT09dj8ocj1mdW5jdGlvbigpe3ZhciBlLHQ7cmV0dXJuIGw/KGQoITApLHk8PTA/aCghMCk6ZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aCghMCl9LHkpKTooaCghMSksdjw9MD9kKCExKTp0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkKCExKX0sdikpLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGUpLGNsZWFyVGltZW91dCh0KX19LG89W2wseSx2XSxpWzJdPWwsaVszXT15LGlbNF09dixpWzVdPXIsaVs2XT1vKToocj1pWzVdLG89aVs2XSksKDAseC51c2VFZmZlY3QpKHIsbyksaVs3XSE9PXV8fGlbOF0hPT1wPyhhPXttb3VudGVkOnUscmVuZGVyZWQ6cH0saVs3XT11LGlbOF09cCxpWzldPWEpOmE9aVs5XSxhfWZ1bmN0aW9uIHJMKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiByTihlLHQpe3JldHVybiB0PW51bGwhPXQ/dDp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pKX0pLGV9ZnVuY3Rpb24gclIoZSl7dmFyIHQsbixyLG8sYSxpLGwscz0oMCxBLmMpKDE4KSxjPWUuc3RhdGUsdT1lLmRpc3BhdGNoLGQ9ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscyxmPWUucnVudGltZUVycm9ycyxwPWUuZXJyb3JDb3VudCxoPSEhcHJvY2Vzcy5lbnYuVFVSQk9QQUNLO3NbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD17ZXhpdERlbGF5OjIwMH0sc1swXT10KTp0PXNbMF07dmFyIG09ckQoYy5pc0Vycm9yT3ZlcmxheU9wZW4sdCksZz1tLm1vdW50ZWQseT1tLnJlbmRlcmVkO3NbMV0hPT1wfHxzWzJdIT09eXx8c1szXSE9PWMudmVyc2lvbkluZm8/KG49e3JlbmRlcmVkOnksdHJhbnNpdGlvbkR1cmF0aW9uTXM6MjAwLGlzVHVyYm9wYWNrOmgsdmVyc2lvbkluZm86Yy52ZXJzaW9uSW5mbyxlcnJvckNvdW50OnB9LHNbMV09cCxzWzJdPXksc1szXT1jLnZlcnNpb25JbmZvLHNbNF09bik6bj1zWzRdO3ZhciB2PW47cmV0dXJuIG51bGwhPT1jLmJ1aWxkRXJyb3I/KHNbNV0hPT12fHxzWzZdIT09Yy5idWlsZEVycm9yPyhyPSgwLGIuanN4KShueSxyTihyTCh7fSx2KSx7bWVzc2FnZTpjLmJ1aWxkRXJyb3IscmVuZGVyZWQ6ITB9KSksc1s1XT12LHNbNl09Yy5idWlsZEVycm9yLHNbN109cik6cj1zWzddLHIpOmYubGVuZ3RoP2c/KHNbMTBdIT09dT8oaT1mdW5jdGlvbigpe3Uoe3R5cGU6Rn0pfSxzWzEwXT11LHNbMTFdPWkpOmk9c1sxMV0sc1sxMl0hPT12fHxzWzEzXSE9PWR8fHNbMTRdIT09Znx8c1sxNV0hPT1jLmRlYnVnSW5mb3x8c1sxNl0hPT1pPyhsPSgwLGIuanN4KShuVyxyTihyTCh7fSx2KSx7ZGVidWdJbmZvOmMuZGVidWdJbmZvLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOmQscnVudGltZUVycm9yczpmLG9uQ2xvc2U6aX0pKSxzWzEyXT12LHNbMTNdPWQsc1sxNF09ZixzWzE1XT1jLmRlYnVnSW5mbyxzWzE2XT1pLHNbMTddPWwpOmw9c1sxN10sbCk6KHNbOV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oYT0oMCxiLmpzeCkoeC5TdXNwZW5zZSx7fSksc1s5XT1hKTphPXNbOV0sYSk6KHNbOF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obz0oMCxiLmpzeCkoeC5TdXNwZW5zZSx7fSksc1s4XT1vKTpvPXNbOF0sbyl9ZnVuY3Rpb24gck0oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHJaKGUsdCxuKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiByVShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7clooZSx0LG5bdF0pfSl9cmV0dXJuIGV9ZnVuY3Rpb24gckYoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJNKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHJNKGUsdCl9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciBycT1mdW5jdGlvbihlKXt2YXIgdCxuLHI9KDAsQS5jKSg0KTtyZXR1cm4gZS5zdGF0ZS5idWlsZEVycm9yPyhyWzBdIT09ZT8odD0oMCxiLmpzeCkoclYsclUoe30sZSkpLHJbMF09ZSxyWzFdPXQpOnQ9clsxXSx0KTooclsyXSE9PWU/KG49KDAsYi5qc3gpKHJILHJVKHt9LGUpKSxyWzJdPWUsclszXT1uKTpuPXJbM10sbil9LHJIPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaT0oMCxBLmMpKDEyKSxsPWUuY2hpbGRyZW4scz1lLnN0YXRlLGM9ZS5pc0FwcERpcix1PXMuZXJyb3JzO2lbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD17fSxpWzBdPXQpOnQ9aVswXTt2YXIgZD1yRigoMCx4LnVzZVN0YXRlKSh0KSwyKSxmPWRbMF0scD1kWzFdO2lmKGlbMV0hPT11fHxpWzJdIT09Zil7Zm9yKHZhciBoPVtdLG09bnVsbCxnPTA7Zzx1Lmxlbmd0aDsrK2cpe3ZhciB5PXVbZ10sdj15LmlkO2lmKHYgaW4gZil7aC5wdXNoKGZbdl0pO2NvbnRpbnVlfW09eTticmVha31uPVtoLG1dLGlbMV09dSxpWzJdPWYsaVszXT1ufWVsc2Ugbj1pWzNdO3ZhciBiPXJGKG4sMiksdz1iWzBdLEM9YlsxXTtpWzRdIT09Y3x8aVs1XSE9PUM/KHI9ZnVuY3Rpb24oKXtpZihudWxsIT1DKXt2YXIgZSx0LG49ITA7cmV0dXJuKGU9Qyx0PWMsbnooZnVuY3Rpb24oKXt2YXIgbixyLG87cmV0dXJuIG5MKHRoaXMsZnVuY3Rpb24oYSl7c3dpdGNoKGEubGFiZWwpe2Nhc2UgMDp2YXIgaSxsO2lmKG49e2lkOmUuaWQscnVudGltZTohMCxlcnJvcjplLmVycm9yLHR5cGU6ZS50eXBlfSwhKFwidXNlXCJpbiB4KSlyZXR1cm5bMywxXTtyZXR1cm5bMixuRChuVCh7fSxuKSx7ZnJhbWVzOihsPShpPWZ1bmN0aW9uKCl7cmV0dXJuIG56KGZ1bmN0aW9uKCl7cmV0dXJuIG5MKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxlRShlLmZyYW1lcyxuUChlLmVycm9yKSx0KV07Y2FzZSAxOnJldHVyblsyLG4uc2VudCgpXX19KX0pKCl9KSgpLGZ1bmN0aW9uKCl7cmV0dXJuIGx9KX0pXTtjYXNlIDE6cmV0dXJuIHI9W25UKHt9LG4pXSxvPXt9LFs0LGVFKGUuZnJhbWVzLG5QKGUuZXJyb3IpLHQpXTtjYXNlIDI6cmV0dXJuWzIsbkQuYXBwbHkodm9pZCAwLHIuY29uY2F0KFsoby5mcmFtZXM9YS5zZW50KCksbyldKSldO2Nhc2UgMzpyZXR1cm5bMl19fSl9KSgpKS50aGVuKGZ1bmN0aW9uKGUpe24mJnAoZnVuY3Rpb24odCl7dmFyIG4scjtyZXR1cm4gbj1yVSh7fSx0KSxyPW51bGwhPShyPXJaKHt9LGUuaWQsZSkpP3I6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChyKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixlKSl9KSxufSl9KSxmdW5jdGlvbigpe249ITF9fX0sbz1bQyxjXSxpWzRdPWMsaVs1XT1DLGlbNl09cixpWzddPW8pOihyPWlbNl0sbz1pWzddKSwoMCx4LnVzZUVmZmVjdCkocixvKTt2YXIgXz11Lmxlbmd0aDtyZXR1cm4gaVs4XSE9PWx8fGlbOV0hPT13fHxpWzEwXSE9PV8/KGE9bCh7cnVudGltZUVycm9yczp3LHRvdGFsRXJyb3JDb3VudDpffSksaVs4XT1sLGlbOV09dyxpWzEwXT1fLGlbMTFdPWEpOmE9aVsxMV0sYX0sclY9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsZS5jaGlsZHJlbikoe3J1bnRpbWVFcnJvcnM6W10sdG90YWxFcnJvckNvdW50OjF9KX07ZnVuY3Rpb24gciQoKXt2YXIgZSx0LG49KDAsQS5jKSg0KSxyPWRhKCksbz1yLnNoYWRvd1Jvb3QsYT1yLnN0YXRlO3JldHVybiBuWzBdIT09b3x8blsxXSE9PWEuc2NhbGU/KGU9ZnVuY3Rpb24oKXsobnVsbD09bz92b2lkIDA6by5ob3N0KSYmby5ob3N0LnN0eWxlLnNldFByb3BlcnR5KFwiLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlXCIsU3RyaW5nKGEuc2NhbGV8fDEpKX0sdD1bbyxhLnNjYWxlXSxuWzBdPW8sblsxXT1hLnNjYWxlLG5bMl09ZSxuWzNdPXQpOihlPW5bMl0sdD1uWzNdKSwoMCx4LnVzZUxheW91dEVmZmVjdCkoZSx0KSxudWxsfXZhciByVz1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZGV2dG9vbHMtaW5kaWNhdG9yL2RldnRvb2xzLWluZGljYXRvci5jc3NcIiksclk9e307ZnVuY3Rpb24gcksoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHJYKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiByRyhlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSwhdHx8YS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gclgoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gclgoZSx0KX19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gclEoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHJKKGUpe3ZhciB0LG4scixvLGE9KDAsQS5jKSgzKTtyZXR1cm4oYVswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLGIuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0zLjA4ODg5IDExLjgzODRMMi42MjQ4NiAxMi4zMDI0TDEuNjk2NzggMTEuMzc0NEwyLjE2MDgyIDEwLjkxMDNMNi4wNzE3OCA2Ljk5OTM3TDIuMTYwODIgMy4wODg0MUwxLjY5Njc4IDIuNjI0MzdMMi42MjQ4NiAxLjY5NjI5TDMuMDg4ODkgMi4xNjAzM0w2Ljk5OTg2IDYuMDcxMjlMMTAuOTEwOCAyLjE2MDMzTDExLjM3NDkgMS42OTYyOUwxMi4zMDI5IDIuNjI0MzdMMTEuODM4OSAzLjA4ODQxTDcuOTI3OTMgNi45OTkzN0wxMS44Mzg5IDEwLjkxMDNMMTIuMzAyOSAxMS4zNzQ0TDExLjM3NDkgMTIuMzAyNEwxMC45MTA4IDExLjgzODRMNi45OTk4NiA3LjkyNzQ0TDMuMDg4ODkgMTEuODM4NFpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KSxhWzBdPXIpOnI9YVswXSxhWzFdIT09ZSk/KG89KDAsYi5qc3gpKFwic3ZnXCIsKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7d2lkdGg6XCIxMlwiLGhlaWdodDpcIjEyXCIsdmlld0JveDpcIjAgMCAxNCAxNFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifSxlKSxuPW49e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSksdCkpLGFbMV09ZSxhWzJdPW8pOm89YVsyXSxvfWZ1bmN0aW9uIHIwKGUpe3ZhciB0LG4scixvLGE9KDAsQS5jKSgzKTtyZXR1cm4oYVswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPSgwLGIuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0zLjk4MDcxIDEuMTI1TDEuMTI1IDMuOTgwNzFMMS4xMjUgOC4wMTkyOUwzLjk4MDcxIDEwLjg3NUg4LjAxOTI5TDEwLjg3NSA4LjAxOTI5VjMuOTgwNzFMOC4wMTkyOSAxLjEyNUgzLjk4MDcxWk0zLjgyNTM4IDBDMy42MjY0NyAwIDMuNDM1NyAwLjA3OTAxNzYgMy4yOTUwNSAwLjIxOTY3TDAuMjE5NjcgMy4yOTUwNUMwLjA3OTAxNzYgMy40MzU3IDAgMy42MjY0NyAwIDMuODI1MzhWOC4xNzQ2MkMwIDguMzczNTMgMC4wNzkwMTc4IDguNTY0MyAwLjIxOTY3IDguNzA0OTVMMy4yOTUwNSAxMS43ODAzQzMuNDM1NyAxMS45MjEgMy42MjY0NyAxMiAzLjgyNTM4IDEySDguMTc0NjJDOC4zNzM1MyAxMiA4LjU2NDMgMTEuOTIxIDguNzA0OTUgMTEuNzgwM0wxMS43ODAzIDguNzA0OTVDMTEuOTIxIDguNTY0MyAxMiA4LjM3MzUzIDEyIDguMTc0NjJWMy44MjUzOEMxMiAzLjYyNjQ3IDExLjkyMSAzLjQzNTcgMTEuNzgwMyAzLjI5NTA1TDguNzA0OTUgMC4yMTk2N0M4LjU2NDMgMC4wNzkwMTc3IDguMzczNTMgMCA4LjE3NDYyIDBIMy44MjUzOFpNNi41NjI1IDIuODEyNVYzLjM3NVY2VjYuNTYyNUg1LjQzNzVWNlYzLjM3NVYyLjgxMjVINi41NjI1Wk02IDlDNi40MTQyMSA5IDYuNzUgOC42NjQyMSA2Ljc1IDguMjVDNi43NSA3LjgzNTc5IDYuNDE0MjEgNy41IDYgNy41QzUuNTg1NzkgNy41IDUuMjUgNy44MzU3OSA1LjI1IDguMjVDNS4yNSA4LjY2NDIxIDUuNTg1NzkgOSA2IDlaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSksYVswXT1yKTpyPWFbMF0sYVsxXSE9PWUpPyhvPSgwLGIuanN4KShcInN2Z1wiLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTJcIixoZWlnaHQ6XCIxMlwiLHZpZXdCb3g6XCIwIDAgMTIgMTJcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSksbj1uPXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxhWzFdPWUsYVsyXT1vKTpvPWFbMl0sb31yWS5zdHlsZVRhZ1RyYW5zZm9ybT1oKCksclkuc2V0QXR0cmlidXRlcz11KCksclkuaW5zZXJ0PXMoKSxyWS5kb21BUEk9aSgpLHJZLmluc2VydFN0eWxlRWxlbWVudD1mKCksbygpKHJXLlosclkpLHJXLlomJnJXLloubG9jYWxzJiZyVy5aLmxvY2Fsczt2YXIgcjE9KDAseC5jcmVhdGVDb250ZXh0KShudWxsKSxyMj1mdW5jdGlvbigpe3JldHVybigwLHgudXNlQ29udGV4dCkocjEpfTtmdW5jdGlvbiByNChlKXtyZXR1cm4gb0ErMzYvZS5zY2FsZSs5fWZ1bmN0aW9uIHI1KGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiByMyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gcjYoZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIHI5KGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspbj1hW3JdLHQuaW5kZXhPZihuKT49MHx8KG9bbl09ZVtuXSk7cmV0dXJuIG99KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwhKHQuaW5kZXhPZihuKT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb31mdW5jdGlvbiByOChlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSwhdHx8YS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSx0KXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gcjUoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gcjUoZSx0KX19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gcjcoKXt2YXIgZSx0LG49KGU9W1wiXFxuICAgICAgICAgIFtkYXRhLW5leHQtYmFkZ2Utcm9vdF0ge1xcbiAgICAgICAgICAgIC0tdGltaW5nOiBjdWJpYy1iZXppZXIoMC4yMywgMC44OCwgMC4yNiwgMC45Mik7XFxuICAgICAgICAgICAgLS1kdXJhdGlvbi1sb25nOiAyNTBtcztcXG4gICAgICAgICAgICAtLWNvbG9yLW91dGVyLWJvcmRlcjogIzE3MTcxNztcXG4gICAgICAgICAgICAtLWNvbG9yLWlubmVyLWJvcmRlcjogaHNsYSgwLCAwJSwgMTAwJSwgMC4xNCk7XFxuICAgICAgICAgICAgLS1jb2xvci1ob3Zlci1hbHBoYS1zdWJ0bGU6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMTMpO1xcbiAgICAgICAgICAgIC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3I6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMik7XFxuICAgICAgICAgICAgLS1jb2xvci1ob3Zlci1hbHBoYS1lcnJvci0yOiBoc2xhKDAsIDAlLCAxMDAlLCAwLjI1KTtcXG4gICAgICAgICAgICAtLW1hcmstc2l6ZTogY2FsYyh2YXIoLS1zaXplKSAtIHZhcigtLXNpemUtMikgKiAyKTtcXG5cXG4gICAgICAgICAgICAtLWZvY3VzLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAgICAgICAgICAgLS1mb2N1cy1yaW5nOiAycHggc29saWQgdmFyKC0tZm9jdXMtY29sb3IpO1xcblxcbiAgICAgICAgICAgICY6aGFzKFtkYXRhLW5leHQtYmFkZ2VdW2RhdGEtZXJyb3I9J3RydWUnXSkge1xcbiAgICAgICAgICAgICAgLS1mb2N1cy1jb2xvcjogI2ZmZjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtZGlzYWJsZWQtaWNvbl0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtbmV4dC1iYWRnZV0ge1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6XFxuICAgICAgICAgICAgICAwIDAgMCAxcHggdmFyKC0tY29sb3Itb3V0ZXItYm9yZGVyKSxcXG4gICAgICAgICAgICAgIGluc2V0IDAgMCAwIDFweCB2YXIoLS1jb2xvci1pbm5lci1ib3JkZXIpLFxcbiAgICAgICAgICAgICAgMHB4IDE2cHggMzJweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XFxuICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQ4cHgpO1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgICAgICAgIHNjYWxlOiAxO1xcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IHNjYWxlLCBib3gtc2hhZG93LCB3aWR0aCwgYmFja2dyb3VuZDtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxcbiAgICAgICAgICAgICAgc2NhbGUgdmFyKC0tZHVyYXRpb24tc2hvcnQpIHZhcigtLXRpbWluZyksXFxuICAgICAgICAgICAgICB3aWR0aCB2YXIoLS1kdXJhdGlvbi1sb25nKSB2YXIoLS10aW1pbmcpLFxcbiAgICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1kdXJhdGlvbi1sb25nKSB2YXIoLS10aW1pbmcpLFxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmFjdGl2ZVtkYXRhLWVycm9yPSdmYWxzZSddIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAwLjk1O1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0ndHJ1ZSddOm5vdCg6aG92ZXIpIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAxLjAyO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtZXJyb3I9J2ZhbHNlJ106aGFzKFtkYXRhLW5leHQtbWFya106Zm9jdXMtdmlzaWJsZSkge1xcbiAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogM3B4O1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtZXJyb3I9J3RydWUnXSB7XFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjY2EyYTMwO1xcbiAgICAgICAgICAgICAgLS1jb2xvci1pbm5lci1ib3JkZXI6ICNlNTQ4NGQ7XFxuXFxuICAgICAgICAgICAgICBbZGF0YS1uZXh0LW1hcmtdIHtcXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3IpO1xcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMHB4O1xcblxcbiAgICAgICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xcbiAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yLTIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICZbZGF0YS1lcnJvci1leHBhbmRlZD0nZmFsc2UnXVtkYXRhLWVycm9yPSd0cnVlJ10gfiBbZGF0YS1kb3RdIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAxO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICA+IGRpdiB7XFxuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtY29sbGFwc2VdOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlc106aGFzKFtkYXRhLWlzc3Vlcy1vcGVuXTpmb2N1cy12aXNpYmxlKSB7XFxuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtZG90XSB7XFxuICAgICAgICAgICAgY29udGVudDogJyc7XFxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtOCk7XFxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTgpO1xcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLW91dGVyLWJvcmRlcik7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgICAgICB0b3A6IDJweDtcXG4gICAgICAgICAgICByaWdodDogMHB4O1xcbiAgICAgICAgICAgIHNjYWxlOiAwO1xcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHNjYWxlIDIwMG1zIHZhcigtLXRpbWluZyk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tZHVyYXRpb24tc2hvcnQpO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlc10ge1xcbiAgICAgICAgICAgIC0tcGFkZGluZy1sZWZ0OiA4cHg7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBnYXA6IDJweDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMzIpO1xcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmhhcyhbZGF0YS1pc3N1ZXMtb3Blbl06aG92ZXIpIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yKTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgJjpoYXMoW2RhdGEtaXNzdWVzLWNvbGxhcHNlXSkge1xcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1wYWRkaW5nLWxlZnQpIC8gMik7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIFtkYXRhLWNyb3NzXSB7XFxuICAgICAgICAgICAgICB0cmFuc2xhdGU6IDBweCAtMXB4O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtb3Blbl0ge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMyk7XFxuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBnYXA6IDJweDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0zNik7XFxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgICAgICAgICB6LWluZGV4OiAyO1xcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuXFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb2xsYXBzZV0ge1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjQpO1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmhvdmVyIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtY3Jvc3NdIHtcXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS0xMik7XFxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTEyKTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1uZXh0LW1hcmtdIHtcXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tbWFyay1zaXplKTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLW1hcmstc2l6ZSk7XFxuICAgICAgICAgICAgbWFyZ2luOiAwIDJweDtcXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1cmF0aW9uLWxvbmcpIHZhcigtLXRpbWluZyk7XFxuXFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtc3VidGxlKTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xcbiAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtNDApO1xcbiAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTQwKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LWFuaW1hdGlvbl0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XFxuICAgICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcXG5cXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0nZmFsc2UnXSB7XFxuICAgICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZXhpdF0sXFxuICAgICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZW50ZXJdIHtcXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwbXM7XFxuICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgID4gKiB7XFxuICAgICAgICAgICAgICBncmlkLWFyZWE6IDEgLyAxO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZXhpdF0ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlT3V0IDMwMG1zIHZhcigtLXRpbWluZykgZm9yd2FyZHM7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1lbnRlcl0ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMzAwbXMgdmFyKC0tdGltaW5nKSBmb3J3YXJkcztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LXBsdXJhbF0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0ndHJ1ZSddIHtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDMwMG1zIHZhcigtLXRpbWluZykgZm9yd2FyZHM7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC5wYXRoMCB7XFxuICAgICAgICAgICAgYW5pbWF0aW9uOiBkcmF3MCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC5wYXRoMSB7XFxuICAgICAgICAgICAgYW5pbWF0aW9uOiBkcmF3MSAxLjVzIGVhc2Utb3V0IGluZmluaXRlO1xcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcztcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICAucGF1c2VkIHtcXG4gICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XFxuICAgICAgICAgICAgMCUge1xcbiAgICAgICAgICAgICAgb3BhY2l0eTogMDtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigycHgpO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIDEwMCUge1xcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigwcHgpO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGZhZGVPdXQge1xcbiAgICAgICAgICAgIDAlIHtcXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgICAgICAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcXG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigycHgpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGRyYXcwIHtcXG4gICAgICAgICAgICAwJSxcXG4gICAgICAgICAgICAyNSUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0yOS42O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAyNSUsXFxuICAgICAgICAgICAgNTAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA1MCUsXFxuICAgICAgICAgICAgNzUlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA3NSUsXFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMjkuNjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgQGtleWZyYW1lcyBkcmF3MSB7XFxuICAgICAgICAgICAgMCUsXFxuICAgICAgICAgICAgMjAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTEuNjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgMjAlLFxcbiAgICAgICAgICAgIDUwJSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgNTAlLFxcbiAgICAgICAgICAgIDc1JSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgNzUlLFxcbiAgICAgICAgICAgIDEwMCUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDExLjY7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1leGl0XSxcXG4gICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZW50ZXJdLFxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1wbHVyYWxdIHtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMG1zICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuICAgICAgICBcIl0sdHx8KHQ9ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9fSkpKTtyZXR1cm4gcjc9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sbn1mdW5jdGlvbiBvZShlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoLG0sZyx5LHYsdyxDLF8sayxFLGosUyxPLEIsUCxJLHosVCxELEwsTixSLE0sWixxLEgsViwkLFcsWT0oMCxBLmMpKDQwKTtZWzBdIT09ZT8oRD1yOShlLFtcIm9uVHJpZ2dlckNsaWNrXCJdKSxMPWUub25UcmlnZ2VyQ2xpY2ssWVswXT1lLFlbMV09RCxZWzJdPUwpOihEPVlbMV0sTD1ZWzJdKTt2YXIgSz1kYSgpLFg9Sy5zdGF0ZSxHPUsuZGlzcGF0Y2gsUT11NCgpLnRvdGFsRXJyb3JDb3VudCxKPTM2L1guc2NhbGUsZWU9cjIoKSxldD1lZS5wYW5lbCxlbj1lZS50cmlnZ2VyUmVmLGVyPWVlLnNldFBhbmVsLGVvPVwicGFuZWwtc2VsZWN0b3JcIj09PWV0LGVhPVE+MCxlaT1yOCgoMCx4LnVzZVN0YXRlKShlYSksMiksZWw9ZWlbMF0sZWM9ZWlbMV0sZXU9cjgoKDAseC51c2VTdGF0ZSkoZWEpLDIpLGVkPWV1WzBdLGVmPWV1WzFdO2VkIT09ZWEmJihlZihlYSksZWMoZWEpKTt2YXIgZXA9cjgoKDAseC51c2VTdGF0ZSkoITEpLDIpLGVoPWVwWzBdLGVtPWVwWzFdLGVnPSh0PVEsbj0xNTAsYT0oMCxBLmMpKDQpLGk9bixsPSgwLHgudXNlUmVmKShudWxsKSxkPShzPSgwLHgudXNlU3RhdGUpKCExKSxjPTIsdT1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShzKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShzLDIpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBySyhlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBySyhlLHQpfX0ocyxjKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSlbMF0sZj11WzFdLGFbMF0hPT1pfHxhWzFdIT09dD8ocj1mdW5jdGlvbigpe2lmKHQ+MCl7dmFyIGU9bC5jdXJyZW50P0RhdGUubm93KCktbC5jdXJyZW50Oi0xO2lmKGwuY3VycmVudD1EYXRlLm5vdygpLCEoZTw9aSkpe2YoITApO3ZhciBuPXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZighMSl9LGkpO3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChuKX19fX0sbz1bdCxpXSxhWzBdPWksYVsxXT10LGFbMl09cixhWzNdPW8pOihyPWFbMl0sbz1hWzNdKSwoMCx4LnVzZUVmZmVjdCkocixvKSxkKSxleT0oMCx4LnVzZVJlZikobnVsbCksZXY9KHA9ZXksZz0oMCxBLmMpKDQpLHY9KHk9ckcoKDAseC51c2VTdGF0ZSkoMCksMikpWzBdLHc9eVsxXSxnWzBdIT09cC5jdXJyZW50PyhoPWZ1bmN0aW9uKCl7dmFyIGU9cC5jdXJyZW50O2lmKGUpe3ZhciB0PW5ldyBSZXNpemVPYnNlcnZlcihmdW5jdGlvbihlKXt3KHJHKGUsMSlbMF0uY29udGVudFJlY3Qud2lkdGgpfSk7cmV0dXJuIHQub2JzZXJ2ZShlKSxmdW5jdGlvbigpe3JldHVybiB0LmRpc2Nvbm5lY3QoKX19fSxnWzBdPXAuY3VycmVudCxnWzFdPWgpOmg9Z1sxXSxnWzJdIT09cD8obT1bcF0sZ1syXT1wLGdbM109bSk6bT1nWzNdLCgwLHgudXNlRWZmZWN0KShoLG0pLHYpLGViPShDPVguYnVpbGRpbmdJbmRpY2F0b3J8fFgucmVuZGVyaW5nSW5kaWNhdG9yLEU9KDAsQS5jKSg0KSxqPTc1MCxQPShTPSgwLHgudXNlU3RhdGUpKCExKSxPPTIsQj1mdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShTKXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShTLDIpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiByUShlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiByUShlLHQpfX0oUyxPKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSlbMF0sST1CWzFdLHo9KDAseC51c2VSZWYpKG51bGwpLFQ9KDAseC51c2VSZWYpKG51bGwpLEVbMF0hPT1qfHxFWzFdIT09Qz8oXz1mdW5jdGlvbigpe2lmKFQuY3VycmVudCYmKGNsZWFyVGltZW91dChULmN1cnJlbnQpLFQuY3VycmVudD1udWxsKSxDKW51bGw9PT16LmN1cnJlbnQmJih6LmN1cnJlbnQ9RGF0ZS5ub3coKSksSSghMCk7ZWxzZSBpZihudWxsPT09ei5jdXJyZW50KUkoITEpO2Vsc2V7dmFyIGU9RGF0ZS5ub3coKS16LmN1cnJlbnQsdD1qKk1hdGguY2VpbChlL2opLWU7dD4wP1QuY3VycmVudD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7SSghMSksei5jdXJyZW50PW51bGx9LHQpOihJKCExKSx6LmN1cnJlbnQ9bnVsbCl9cmV0dXJuIGZ1bmN0aW9uKCl7VC5jdXJyZW50JiZjbGVhclRpbWVvdXQoVC5jdXJyZW50KX19LGs9W0Msal0sRVswXT1qLEVbMV09QyxFWzJdPV8sRVszXT1rKTooXz1FWzJdLGs9RVszXSksKDAseC51c2VFZmZlY3QpKF8sayksUCksZUE9ZWx8fFguZGlzYWJsZURldkluZGljYXRvcixleD0wPT09ZXY/XCJhdXRvXCI6ZXYsZXc9XCJcIi5jb25jYXQoSixcInB4XCIpLGVDPVguZGlzYWJsZURldkluZGljYXRvciYmKCFlYXx8ZWgpP1wibm9uZVwiOlwiYmxvY2tcIjtZWzNdIT09ZXd8fFlbNF0hPT1lQz8oTj17XCItLXNpemVcIjpldyxcIi0tZHVyYXRpb24tc2hvcnRcIjpcIlwiLmNvbmNhdCgxNTAsXCJtc1wiKSxkaXNwbGF5OmVDfSxZWzNdPWV3LFlbNF09ZUMsWVs1XT1OKTpOPVlbNV07dmFyIGVfPU47cmV0dXJuIFlbNl09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oUj0oMCxiLmpzeCkoXCJzdHlsZVwiLHtjaGlsZHJlbjplcyhyNygpKX0pLFlbNl09Uik6Uj1ZWzZdLFlbN10hPT1leD8oTT17d2lkdGg6ZXh9LFlbN109ZXgsWVs4XT1NKTpNPVlbOF0sWVs5XSE9PUR8fFlbMTBdIT09ZWJ8fFlbMTFdIT09ZW98fFlbMTJdIT09THx8WVsxM10hPT1YLmJ1aWxkaW5nSW5kaWNhdG9yfHxZWzE0XSE9PVguZGlzYWJsZURldkluZGljYXRvcnx8WVsxNV0hPT1lbj8oWj0hWC5kaXNhYmxlRGV2SW5kaWNhdG9yJiYoMCxiLmpzeCkoXCJidXR0b25cIixyNihyMyh7aWQ6XCJuZXh0LWxvZ29cIixyZWY6ZW4sXCJkYXRhLW5leHQtbWFya1wiOiEwLFwiZGF0YS1uZXh0LW1hcmstbG9hZGluZ1wiOmViLG9uQ2xpY2s6TCxkaXNhYmxlZDpYLmRpc2FibGVEZXZJbmRpY2F0b3IsXCJhcmlhLWhhc3BvcHVwXCI6XCJtZW51XCIsXCJhcmlhLWV4cGFuZGVkXCI6ZW8sXCJhcmlhLWNvbnRyb2xzXCI6XCJuZXh0anMtZGV2LXRvb2xzLW1lbnVcIixcImFyaWEtbGFiZWxcIjpcIlwiLmNvbmNhdChlbz9cIkNsb3NlXCI6XCJPcGVuXCIsXCIgTmV4dC5qcyBEZXYgVG9vbHNcIiksXCJkYXRhLW5leHRqcy1kZXYtdG9vbHMtYnV0dG9uXCI6ITB9LEQpLHtjaGlsZHJlbjooMCxiLmpzeCkob24se2lzTG9hZGluZzplYixpc0RldkJ1aWxkaW5nOlguYnVpbGRpbmdJbmRpY2F0b3J9KX0pKSxZWzldPUQsWVsxMF09ZWIsWVsxMV09ZW8sWVsxMl09TCxZWzEzXT1YLmJ1aWxkaW5nSW5kaWNhdG9yLFlbMTRdPVguZGlzYWJsZURldkluZGljYXRvcixZWzE1XT1lbixZWzE2XT1aKTpaPVlbMTZdLFlbMTddIT09R3x8WVsxOF0hPT1lQXx8WVsxOV0hPT1lZ3x8WVsyMF0hPT1lcnx8WVsyMV0hPT1YLmJ1aWxkRXJyb3J8fFlbMjJdIT09WC5kaXNhYmxlRGV2SW5kaWNhdG9yfHxZWzIzXSE9PVguaXNFcnJvck92ZXJsYXlPcGVufHxZWzI0XSE9PVF8fFlbMjVdIT09ZW4/KHE9ZUEmJigwLGIuanN4cykoXCJkaXZcIix7XCJkYXRhLWlzc3Vlc1wiOiEwLGNoaWxkcmVuOlsoMCxiLmpzeHMpKFwiYnV0dG9uXCIse1wiZGF0YS1pc3N1ZXMtb3BlblwiOiEwLFwiYXJpYS1sYWJlbFwiOlwiT3BlbiBpc3N1ZXMgb3ZlcmxheVwiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtpZihYLmlzRXJyb3JPdmVybGF5T3BlbilyZXR1cm4gdm9pZCBHKHt0eXBlOkZ9KTtHKHt0eXBlOlV9KSxlcihudWxsKX0sY2hpbGRyZW46W1guZGlzYWJsZURldkluZGljYXRvciYmKDAsYi5qc3gpKFwiZGl2XCIse1wiZGF0YS1kaXNhYmxlZC1pY29uXCI6ITAsY2hpbGRyZW46KDAsYi5qc3gpKHIwLHt9KX0pLCgwLGIuanN4KShvdCx7YW5pbWF0ZTplZyxcImRhdGEtaXNzdWVzLWNvdW50LWFuaW1hdGlvblwiOiEwLGNoaWxkcmVuOlF9LFEpLFwiIFwiLCgwLGIuanN4cykoXCJkaXZcIix7Y2hpbGRyZW46W1wiSXNzdWVcIixRPjEmJigwLGIuanN4KShcInNwYW5cIix7XCJhcmlhLWhpZGRlblwiOiEwLFwiZGF0YS1pc3N1ZXMtY291bnQtcGx1cmFsXCI6ITAsXCJkYXRhLWFuaW1hdGVcIjplZyYmMj09PVEsY2hpbGRyZW46XCJzXCJ9KV19KV19KSwhWC5idWlsZEVycm9yJiYoMCxiLmpzeCkoXCJidXR0b25cIix7XCJkYXRhLWlzc3Vlcy1jb2xsYXBzZVwiOiEwLFwiYXJpYS1sYWJlbFwiOlwiQ29sbGFwc2UgaXNzdWVzIGJhZGdlXCIsb25DbGljazpmdW5jdGlvbigpe3ZhciBlO1guZGlzYWJsZURldkluZGljYXRvcj9lbSghMCk6ZWMoITEpLG51bGw9PShlPWVuLmN1cnJlbnQpfHxlLmZvY3VzKCl9LGNoaWxkcmVuOigwLGIuanN4KShySix7XCJkYXRhLWNyb3NzXCI6ITB9KX0pXX0pLFlbMTddPUcsWVsxOF09ZUEsWVsxOV09ZWcsWVsyMF09ZXIsWVsyMV09WC5idWlsZEVycm9yLFlbMjJdPVguZGlzYWJsZURldkluZGljYXRvcixZWzIzXT1YLmlzRXJyb3JPdmVybGF5T3BlbixZWzI0XT1RLFlbMjVdPWVuLFlbMjZdPXEpOnE9WVsyNl0sWVsyN10hPT1afHxZWzI4XSE9PXE/KEg9KDAsYi5qc3hzKShcImRpdlwiLHtyZWY6ZXksY2hpbGRyZW46W1oscV19KSxZWzI3XT1aLFlbMjhdPXEsWVsyOV09SCk6SD1ZWzI5XSxZWzMwXSE9PWVhfHxZWzMxXSE9PWVBfHxZWzMyXSE9PWVnfHxZWzMzXSE9PU18fFlbMzRdIT09SD8oVj0oMCxiLmpzeCkoXCJkaXZcIix7XCJkYXRhLW5leHQtYmFkZ2VcIjohMCxcImRhdGEtZXJyb3JcIjplYSxcImRhdGEtZXJyb3ItZXhwYW5kZWRcIjplQSxcImRhdGEtYW5pbWF0ZVwiOmVnLHN0eWxlOk0sY2hpbGRyZW46SH0pLFlbMzBdPWVhLFlbMzFdPWVBLFlbMzJdPWVnLFlbMzNdPU0sWVszNF09SCxZWzM1XT1WKTpWPVlbMzVdLFlbMzZdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KCQ9KDAsYi5qc3gpKFwiZGl2XCIse1wiYXJpYS1oaWRkZW5cIjohMCxcImRhdGEtZG90XCI6ITB9KSxZWzM2XT0kKTokPVlbMzZdLFlbMzddIT09Vnx8WVszOF0hPT1lXz8oVz0oMCxiLmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0LWJhZGdlLXJvb3RcIjohMCxzdHlsZTplXyxjaGlsZHJlbjpbUixWLCRdfSksWVszN109VixZWzM4XT1lXyxZWzM5XT1XKTpXPVlbMzldLFd9ZnVuY3Rpb24gb3QoZSl7dmFyIHQsbixyLG8sYSxpLGw9KDAsQS5jKSgxMyk7bFswXSE9PWU/KG49cjkoZSxbXCJjaGlsZHJlblwiLFwiYW5pbWF0ZVwiXSksdD1lLmNoaWxkcmVuLHI9ZS5hbmltYXRlLGxbMF09ZSxsWzFdPXQsbFsyXT1uLGxbM109cik6KHQ9bFsxXSxuPWxbMl0scj1sWzNdKTt2YXIgcz12b2lkIDA9PT1yfHxyLGM9dC0xO3JldHVybiBsWzRdIT09Yz8obz0oMCxiLmpzeCkoXCJkaXZcIix7XCJhcmlhLWhpZGRlblwiOiEwLFwiZGF0YS1pc3N1ZXMtY291bnQtZXhpdFwiOiEwLGNoaWxkcmVuOmN9KSxsWzRdPWMsbFs1XT1vKTpvPWxbNV0sbFs2XSE9PXQ/KGE9KDAsYi5qc3gpKFwiZGl2XCIse1wiZGF0YS1pc3N1ZXMtY291bnRcIjohMCxcImRhdGEtaXNzdWVzLWNvdW50LWVudGVyXCI6ITAsY2hpbGRyZW46dH0pLGxbNl09dCxsWzddPWEpOmE9bFs3XSxsWzhdIT09c3x8bFs5XSE9PW58fGxbMTBdIT09b3x8bFsxMV0hPT1hPyhpPSgwLGIuanN4cykoXCJkaXZcIixyNihyMyh7fSxuKSx7XCJkYXRhLWFuaW1hdGVcIjpzLGNoaWxkcmVuOltvLGFdfSkpLGxbOF09cyxsWzldPW4sbFsxMF09byxsWzExXT1hLGxbMTJdPWkpOmk9bFsxMl0saX1mdW5jdGlvbiBvbihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGM9KDAsQS5jKSgxOSksdT1lLmlzTG9hZGluZyxkPWUuaXNEZXZCdWlsZGluZz9cInJnYmEoMjU1LDI1NSwyNTUsMC43KVwiOlwid2hpdGVcIixmPXU/XCJwYXRoMFwiOlwicGF1c2VkXCI7Y1swXSE9PWY/KHQ9KDAsYi5qc3gpKFwicGF0aFwiLHtjbGFzc05hbWU6ZixkOlwiTTEzLjMgMTUuMiBMMi4zNCAxIFYxMi42XCIsZmlsbDpcIm5vbmVcIixzdHJva2U6XCJ1cmwoI25leHRfbG9nb19wYWludDBfbGluZWFyXzEzNTdfMTA4NTMpXCIsc3Ryb2tlV2lkdGg6XCIxLjg2XCIsbWFzazpcInVybCgjbmV4dF9sb2dvX21hc2swKVwiLHN0cm9rZURhc2hhcnJheTpcIjI5LjZcIixzdHJva2VEYXNob2Zmc2V0OlwiMjkuNlwifSksY1swXT1mLGNbMV09dCk6dD1jWzFdO3ZhciBwPXU/XCJwYXRoMVwiOlwicGF1c2VkXCI7cmV0dXJuIGNbMl0hPT1wPyhuPSgwLGIuanN4KShcInBhdGhcIix7Y2xhc3NOYW1lOnAsZDpcIk0xMS44MjUgMS41IFYxMy4xXCIsc3Ryb2tlV2lkdGg6XCIxLjg2XCIsc3Ryb2tlOlwidXJsKCNuZXh0X2xvZ29fcGFpbnQxX2xpbmVhcl8xMzU3XzEwODUzKVwiLHN0cm9rZURhc2hhcnJheTpcIjExLjZcIixzdHJva2VEYXNob2Zmc2V0OlwiMTEuNlwifSksY1syXT1wLGNbM109bik6bj1jWzNdLGNbNF0hPT10fHxjWzVdIT09bj8ocj0oMCxiLmpzeHMpKFwiZ1wiLHt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoOC41LCAxMylcIixjaGlsZHJlbjpbdCxuXX0pLGNbNF09dCxjWzVdPW4sY1s2XT1yKTpyPWNbNl0sY1s3XSE9PWQ/KG89KDAsYi5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibmV4dF9sb2dvX3BhaW50MF9saW5lYXJfMTM1N18xMDg1M1wiLHgxOlwiOS45NTU1NVwiLHkxOlwiMTEuMTIyNlwiLHgyOlwiMTUuNDc3OFwiLHkyOlwiMTcuOTY3MVwiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCxiLmpzeCkoXCJzdG9wXCIse3N0b3BDb2xvcjpkfSksKDAsYi5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIwLjYwNDA3MlwiLHN0b3BDb2xvcjpkLHN0b3BPcGFjaXR5OlwiMFwifSksKDAsYi5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIxXCIsc3RvcENvbG9yOmQsc3RvcE9wYWNpdHk6XCIwXCJ9KV19KSxjWzddPWQsY1s4XT1vKTpvPWNbOF0sY1s5XSE9PWQ/KGE9KDAsYi5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibmV4dF9sb2dvX3BhaW50MV9saW5lYXJfMTM1N18xMDg1M1wiLHgxOlwiMTEuODIyMlwiLHkxOlwiMS40MDAzOVwiLHgyOlwiMTEuNzkxXCIseTI6XCI5LjYyNTQyXCIsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCIsY2hpbGRyZW46WygwLGIuanN4KShcInN0b3BcIix7c3RvcENvbG9yOmR9KSwoMCxiLmpzeCkoXCJzdG9wXCIse29mZnNldDpcIjFcIixzdG9wQ29sb3I6ZCxzdG9wT3BhY2l0eTpcIjBcIn0pXX0pLGNbOV09ZCxjWzEwXT1hKTphPWNbMTBdLGNbMTFdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGk9KDAsYi5qc3hzKShcIm1hc2tcIix7aWQ6XCJuZXh0X2xvZ29fbWFzazBcIixjaGlsZHJlbjpbKDAsYi5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjEwMCVcIixoZWlnaHQ6XCIxMDAlXCIsZmlsbDpcIndoaXRlXCJ9KSwoMCxiLmpzeCkoXCJyZWN0XCIse3dpZHRoOlwiNVwiLGhlaWdodDpcIjEuNVwiLGZpbGw6XCJibGFja1wifSldfSksY1sxMV09aSk6aT1jWzExXSxjWzEyXSE9PW98fGNbMTNdIT09YT8obD0oMCxiLmpzeHMpKFwiZGVmc1wiLHtjaGlsZHJlbjpbbyxhLGldfSksY1sxMl09byxjWzEzXT1hLGNbMTRdPWwpOmw9Y1sxNF0sY1sxNV0hPT11fHxjWzE2XSE9PXJ8fGNbMTddIT09bD8ocz0oMCxiLmpzeHMpKFwic3ZnXCIse3dpZHRoOlwiNDBcIixoZWlnaHQ6XCI0MFwiLHZpZXdCb3g6XCIwIDAgNDAgNDBcIixmaWxsOlwibm9uZVwiLFwiZGF0YS1uZXh0LW1hcmstbG9hZGluZ1wiOnUsY2hpbGRyZW46W3IsbF19KSxjWzE1XT11LGNbMTZdPXIsY1sxN109bCxjWzE4XT1zKTpzPWNbMThdLHN9dmFyIG9yPXguZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe3ZhciBuLHIsbyxhLGksbCxzLGMsdSxkPSgwLEEuYykoMTUpO3JldHVybihkWzBdIT09ZT8obD1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wib25DbGlja1wiLFwiY2hpbGRyZW5cIixcImNsYXNzTmFtZVwiXSksaT1lLm9uQ2xpY2ssbz1lLmNoaWxkcmVuLGE9ZS5jbGFzc05hbWUsZFswXT1lLGRbMV09byxkWzJdPWEsZFszXT1pLGRbNF09bCk6KG89ZFsxXSxhPWRbMl0saT1kWzNdLGw9ZFs0XSksZFs1XSE9PWk/KHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFyZ2V0LmNsb3Nlc3QoXCJhXCIpfHxlLnByZXZlbnREZWZhdWx0KCksbnVsbD09aT92b2lkIDA6aSgpfSxkWzVdPWksZFs2XT1zKTpzPWRbNl0sZFs3XSE9PWE/KGM9ZUcoXCJuZXh0anMtdG9hc3RcIixhKSxkWzddPWEsZFs4XT1jKTpjPWRbOF0sZFs5XSE9PW98fGRbMTBdIT09bHx8ZFsxMV0hPT10fHxkWzEyXSE9PXN8fGRbMTNdIT09Yyk/KHU9KDAsYi5qc3gpKFwiZGl2XCIsKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7fSxsKSxyPXI9e3JlZjp0LG9uQ2xpY2s6cyxjbGFzc05hbWU6YyxjaGlsZHJlbjpvfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHIpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpKX0pLG4pKSxkWzldPW8sZFsxMF09bCxkWzExXT10LGRbMTJdPXMsZFsxM109YyxkWzE0XT11KTp1PWRbMTRdLHV9KTtmdW5jdGlvbiBvbyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9dmFyIG9hPSgwLHguY3JlYXRlQ29udGV4dCkobnVsbCk7ZnVuY3Rpb24gb2koZSl7dmFyIHQ9ZS5jaGlsZHJlbixuPWUuZGlzYWJsZWQscj12b2lkIDAhPT1uJiZuLG89KDAseC51c2VSZWYpKG5ldyBTZXQpLGE9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7by5jdXJyZW50LmFkZChlKX0sW10pLGk9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7by5jdXJyZW50LmRlbGV0ZShlKX0sW10pLGw9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybntyZWdpc3RlcjphLHVucmVnaXN0ZXI6aSxoYW5kbGVzOm8uY3VycmVudCxkaXNhYmxlZDpyfX0sW2EsaSxyXSk7cmV0dXJuKDAsYi5qc3gpKG9hLlByb3ZpZGVyLHt2YWx1ZTpsLGNoaWxkcmVuOnR9KX1mdW5jdGlvbiBvbCgpe3JldHVybigwLHgudXNlQ29udGV4dCkob2EpfWZ1bmN0aW9uIG9zKGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYyx1LGQsZj0oMCxBLmMpKDE5KTtmWzBdIT09ZT8obz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wiY2hpbGRyZW5cIixcInJlZlwiXSkscj1lLmNoaWxkcmVuLGE9ZS5yZWYsZlswXT1lLGZbMV09cixmWzJdPW8sZlszXT1hKToocj1mWzFdLG89ZlsyXSxhPWZbM10pO3ZhciBwPSgwLHgudXNlUmVmKShudWxsKSxoPW9sKCk7Zls0XSE9PWE/KGk9ZnVuY3Rpb24oZSl7aWYocC5jdXJyZW50PW51bGwhPWU/ZTpudWxsLFwiZnVuY3Rpb25cIj09dHlwZW9mIGEpYShlKTtlbHNle3ZhciB0O2EmJih2b2lkIDA9PT1hP1widW5kZWZpbmVkXCI6KHQ9YSkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2w/XCJzeW1ib2xcIjp0eXBlb2YgdCk9PVwib2JqZWN0XCImJihhLmN1cnJlbnQ9ZSl9fSxmWzRdPWEsZls1XT1pKTppPWZbNV07dmFyIG09aTtmWzZdIT09aD8obD1mdW5jdGlvbigpe2lmKGgmJnAuY3VycmVudCYmIWguZGlzYWJsZWQpe3ZhciBlPXAuY3VycmVudDtyZXR1cm4gaC5yZWdpc3RlcihlKSxmdW5jdGlvbigpe3JldHVybiBoLnVucmVnaXN0ZXIoZSl9fX0scz1baF0sZls2XT1oLGZbN109bCxmWzhdPXMpOihsPWZbN10scz1mWzhdKSwoMCx4LnVzZUVmZmVjdCkobCxzKTt2YXIgZz0obnVsbD09aD92b2lkIDA6aC5kaXNhYmxlZCk/XCJkZWZhdWx0XCI6XCJncmFiXCI7cmV0dXJuKGZbOV0hPT1vLnN0eWxlPyhjPW8uc3R5bGV8fHt9LGZbOV09by5zdHlsZSxmWzEwXT1jKTpjPWZbMTBdLGZbMTFdIT09Z3x8ZlsxMl0hPT1jPyh1PW9vKHtjdXJzb3I6Z30sYyksZlsxMV09ZyxmWzEyXT1jLGZbMTNdPXUpOnU9ZlsxM10sZlsxNF0hPT1yfHxmWzE1XSE9PW98fGZbMTZdIT09bXx8ZlsxN10hPT11KT8oZD0oMCxiLmpzeCkoXCJkaXZcIiwodD1vbyh7cmVmOm19LG8pLG49bj17c3R5bGU6dSxjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKSxmWzE0XT1yLGZbMTVdPW8sZlsxNl09bSxmWzE3XT11LGZbMThdPWQpOmQ9ZlsxOF0sZH1mdW5jdGlvbiBvYyhlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gb3UoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfWZ1bmN0aW9uIG9kKGUsdCl7cmV0dXJuIHQ9bnVsbCE9dD90Ont9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7bi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24obil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbikpfSksZX1mdW5jdGlvbiBvZihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99ZnVuY3Rpb24gb3AoZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIG9jKGUpfShlKXx8ZnVuY3Rpb24oZSl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1lW1wiQEBpdGVyYXRvclwiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fG9oKGUpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiBvaChlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBvYyhlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBvYyhlLHQpfX1mdW5jdGlvbiBvbShlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscD0oMCxBLmMpKDE4KTtwWzBdIT09ZT8ocz1vZihlLFtcImNoaWxkcmVuXCIsXCJwYWRkaW5nXCIsXCJwb3NpdGlvblwiLFwic2V0UG9zaXRpb25cIixcIm9uRHJhZ1N0YXJ0XCIsXCJkcmFnSGFuZGxlU2VsZWN0b3JcIixcImRpc2FibGVEcmFnXCIsXCJhdm9pZFpvbmVcIl0pLHI9ZS5jaGlsZHJlbixsPWUucGFkZGluZyxvPWUucG9zaXRpb24sYz1lLnNldFBvc2l0aW9uLGk9ZS5vbkRyYWdTdGFydCxhPWUuZHJhZ0hhbmRsZVNlbGVjdG9yLHU9ZS5kaXNhYmxlRHJhZyxuPWUuYXZvaWRab25lLHBbMF09ZSxwWzFdPW4scFsyXT1yLHBbM109byxwWzRdPWEscFs1XT1pLHBbNl09bCxwWzddPXMscFs4XT1jLHBbOV09dSk6KG49cFsxXSxyPXBbMl0sbz1wWzNdLGE9cFs0XSxpPXBbNV0sbD1wWzZdLHM9cFs3XSxjPXBbOF0sdT1wWzldKTt2YXIgaD1mdW5jdGlvbihlKXt2YXIgdD0oMCx4LnVzZVJlZikobnVsbCksbj0oMCx4LnVzZVJlZikoe3N0YXRlOlwiaWRsZVwifSkscj0oMCx4LnVzZVJlZikobnVsbCksbz0oMCx4LnVzZVJlZikoe3g6MCx5OjB9KSxhPSgwLHgudXNlUmVmKSh7eDowLHk6MH0pLGk9KDAseC51c2VSZWYpKDApLGw9KDAseC51c2VSZWYpKFtdKSxzPSgwLHgudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7dmFyIGUsbztcImRyYWdcIj09PW4uY3VycmVudC5zdGF0ZSYmKG51bGw9PShvPXQuY3VycmVudCl8fG8ucmVsZWFzZVBvaW50ZXJDYXB0dXJlKG4uY3VycmVudC5wb2ludGVySWQpKSxuLmN1cnJlbnQ9XCJkcmFnXCI9PT1uLmN1cnJlbnQuc3RhdGU/e3N0YXRlOlwiZHJhZy1lbmRcIn06e3N0YXRlOlwiaWRsZVwifSxudWxsIT09ci5jdXJyZW50JiYoci5jdXJyZW50KCksci5jdXJyZW50PW51bGwpLGwuY3VycmVudD1bXSxudWxsPT0oZT10LmN1cnJlbnQpfHxlLmNsYXNzTGlzdC5yZW1vdmUoXCJkZXYtdG9vbHMtZ3JhYmJpbmdcIiksZG9jdW1lbnQuYm9keS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcInVzZXItc2VsZWN0XCIpLGRvY3VtZW50LmJvZHkuc3R5bGUucmVtb3ZlUHJvcGVydHkoXCItd2Via2l0LXVzZXItc2VsZWN0XCIpfSxbXSk7ZnVuY3Rpb24gYyhlKXt0LmN1cnJlbnQmJihhLmN1cnJlbnQ9ZSx0LmN1cnJlbnQuc3R5bGUudHJhbnNsYXRlPVwiXCIuY29uY2F0KGUueCxcInB4IFwiKS5jb25jYXQoZS55LFwicHhcIikpfWZ1bmN0aW9uIHUobil7dmFyIHI9dC5jdXJyZW50O251bGwhPT1yJiYoci5zdHlsZS50cmFuc2l0aW9uPVwidHJhbnNsYXRlIDQ5MS4yMm1zIHZhcigtLXRpbWluZy1ib3VuY2UpXCIsci5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLGZ1bmN0aW9uIHQobyl7aWYoXCJ0cmFuc2xhdGVcIj09PW8ucHJvcGVydHlOYW1lKXt2YXIgaTtudWxsPT0oaT1lLm9uQW5pbWF0aW9uRW5kKXx8aS5jYWxsKGUsbiksYS5jdXJyZW50PXt4OjAseTowfSxyLnN0eWxlLnRyYW5zaXRpb249XCJcIixyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsdCl9fSksYyhuLnRyYW5zbGF0aW9uKSl9ZnVuY3Rpb24gZChlKXtpZihcImRyYWctZW5kXCI9PT1uLmN1cnJlbnQuc3RhdGUpe3ZhciByO2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLG4uY3VycmVudD17c3RhdGU6XCJpZGxlXCJ9LG51bGw9PShyPXQuY3VycmVudCl8fHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZCl9fWZ1bmN0aW9uIGYocil7aWYoXCJwcmVzc1wiPT09bi5jdXJyZW50LnN0YXRlKXt2YXIgcyx1LGQsZixwPXIuY2xpZW50WC1vLmN1cnJlbnQueCxoPXIuY2xpZW50WS1vLmN1cnJlbnQueTtNYXRoLnNxcnQocCpwK2gqaCk+PWUudGhyZXNob2xkJiYobi5jdXJyZW50PXtzdGF0ZTpcImRyYWdcIixwb2ludGVySWQ6ci5wb2ludGVySWR9LG51bGw9PSh1PXQuY3VycmVudCl8fHUuc2V0UG9pbnRlckNhcHR1cmUoci5wb2ludGVySWQpLG51bGw9PShkPXQuY3VycmVudCl8fGQuY2xhc3NMaXN0LmFkZChcImRldi10b29scy1ncmFiYmluZ1wiKSxkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9XCJub25lXCIsZG9jdW1lbnQuYm9keS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PVwibm9uZVwiLG51bGw9PShmPWUub25EcmFnU3RhcnQpfHxmLmNhbGwoZSkpfWlmKFwiZHJhZ1wiPT09bi5jdXJyZW50LnN0YXRlKXt2YXIgbT17eDpyLmNsaWVudFgseTpyLmNsaWVudFl9LGc9bS54LW8uY3VycmVudC54LHk9bS55LW8uY3VycmVudC55O28uY3VycmVudD1tLGMoe3g6YS5jdXJyZW50LngrZyx5OmEuY3VycmVudC55K3l9KTt2YXIgdj1EYXRlLm5vdygpO3YtaS5jdXJyZW50Pj0xMCYmKGwuY3VycmVudD1vcChsLmN1cnJlbnQuc2xpY2UoLTUpKS5jb25jYXQoW3twb3NpdGlvbjptLHRpbWVzdGFtcDp2fV0pKSxpLmN1cnJlbnQ9dixudWxsPT0ocz1lLm9uRHJhZyl8fHMuY2FsbChlLGEuY3VycmVudCl9fWZ1bmN0aW9uIHAoKXt2YXIgdCxuPWZ1bmN0aW9uKGUpe2lmKGUubGVuZ3RoPDIpcmV0dXJue3g6MCx5OjB9O3ZhciB0PWVbMF0sbj1lW2UubGVuZ3RoLTFdLHI9bi50aW1lc3RhbXAtdC50aW1lc3RhbXA7cmV0dXJuIDA9PT1yP3t4OjAseTowfTp7eDoxZTMqKChuLnBvc2l0aW9uLngtdC5wb3NpdGlvbi54KS9yKSx5OjFlMyooKG4ucG9zaXRpb24ueS10LnBvc2l0aW9uLnkpL3IpfX0obC5jdXJyZW50KTtzKCksbnVsbD09KHQ9ZS5vbkRyYWdFbmQpfHx0LmNhbGwoZSxhLmN1cnJlbnQsbil9cmV0dXJuKDAseC51c2VMYXlvdXRFZmZlY3QpKGZ1bmN0aW9uKCl7ZS5kaXNhYmxlZCYmcygpfSxbcyxlLmRpc2FibGVkXSksZS5kaXNhYmxlZD97cmVmOnQsYW5pbWF0ZTp1fTp7cmVmOnQsb25Qb2ludGVyRG93bjpmdW5jdGlvbihhKXt2YXIgaTswPT09YS5idXR0b24mJmZ1bmN0aW9uKG4pe2lmKCFufHwhdC5jdXJyZW50KXJldHVybiEwO2lmKGUuaGFuZGxlcyYmZS5oYW5kbGVzLnNpemU+MCl7Zm9yKHZhciByPW47ciYmciE9PXQuY3VycmVudDspe2lmKGUuaGFuZGxlcy5oYXMocikpcmV0dXJuITA7cj1yLnBhcmVudEVsZW1lbnR9cmV0dXJuITF9cmV0dXJuIWUuZHJhZ0hhbmRsZVNlbGVjdG9yfHxudWxsIT09bi5jbG9zZXN0KGUuZHJhZ0hhbmRsZVNlbGVjdG9yKX0oYS50YXJnZXQpJiYoby5jdXJyZW50PXt4OmEuY2xpZW50WCx5OmEuY2xpZW50WX0sbi5jdXJyZW50PXtzdGF0ZTpcInByZXNzXCJ9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcm1vdmVcIixmKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLHApLG51bGwhPT1yLmN1cnJlbnQmJihyLmN1cnJlbnQoKSxyLmN1cnJlbnQ9bnVsbCksci5jdXJyZW50PWZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVybW92ZVwiLGYpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIscCl9LG51bGw9PShpPXQuY3VycmVudCl8fGkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZCkpfSxhbmltYXRlOnV9fSh7ZGlzYWJsZWQ6dm9pZCAwIT09dSYmdSxoYW5kbGVzOm51bGw9PSh0PW9sKCkpP3ZvaWQgMDp0LmhhbmRsZXMsdGhyZXNob2xkOjUsb25EcmFnU3RhcnQ6aSxvbkRyYWdFbmQ6ZnVuY3Rpb24oZSx0KXt2YXIgcixhLGkscyxjLHUsZCxmLHAsaCx5LHYsYixBLHgsdyxDLF87aWYoMD09PU1hdGguc3FydChlLngqZS54K2UueSplLnkpKXtudWxsPT0ocj1tLmN1cnJlbnQpfHxyLnN0eWxlLnJlbW92ZVByb3BlcnR5KFwidHJhbnNsYXRlXCIpO3JldHVybn1nKChiPShhPXt4OmUueCtveSh0LngpLHk6ZS55K295KHQueSl9KS54LEE9YS55LHc9T2JqZWN0LmVudHJpZXMoeD0oYz0yKmwsdT0obnVsbD09KGk9bS5jdXJyZW50KT92b2lkIDA6aS5vZmZzZXRXaWR0aCl8fDAsZD0obnVsbD09KHM9bS5jdXJyZW50KT92b2lkIDA6cy5vZmZzZXRIZWlnaHQpfHwwLGY9d2luZG93LmlubmVyV2lkdGgtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLGg9KHA9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pbmNsdWRlcyhcInJpZ2h0XCIpLHI9ZS5pbmNsdWRlcyhcImJvdHRvbVwiKSxvPXQ/d2luZG93LmlubmVyV2lkdGgtZi1jLXU6MCxhPXI/d2luZG93LmlubmVySGVpZ2h0LWMtZDowO2lmKG4mJm4uY29ybmVyPT09ZSl7dmFyIGk9bi5zcXVhcmUrbi5wYWRkaW5nO3I/YS09aTphKz1pfXJldHVybnt4Om8seTphfX0pKG8pLHtcInRvcC1sZWZ0XCI6KHk9ZnVuY3Rpb24oZSl7cmV0dXJue3g6ZS54LWgueCx5OmUueS1oLnl9fSkocChcInRvcC1sZWZ0XCIpKSxcInRvcC1yaWdodFwiOnkocChcInRvcC1yaWdodFwiKSksXCJib3R0b20tbGVmdFwiOnkocChcImJvdHRvbS1sZWZ0XCIpKSxcImJvdHRvbS1yaWdodFwiOnkocChcImJvdHRvbS1yaWdodFwiKSl9KSkubWFwKGZ1bmN0aW9uKGUpe3ZhciB0LG4scj0obj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQ9ZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksYS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0odCwyKXx8b2godCxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksbz1yWzBdLGE9clsxXTtyZXR1cm57a2V5Om8sZGlzdGFuY2U6TWF0aC5zcXJ0KE1hdGgucG93KGItYS54LDIpK01hdGgucG93KEEtYS55LDIpKX19KSxDPSh2PU1hdGgpLm1pbi5hcHBseSh2LG9wKHcubWFwKG9nKSkpLChfPXcuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5kaXN0YW5jZT09PUN9KSk/e3RyYW5zbGF0aW9uOnhbXy5rZXldLGNvcm5lcjpfLmtleX06e2Nvcm5lcjpvLHRyYW5zbGF0aW9uOnhbb119KSl9LG9uQW5pbWF0aW9uRW5kOmZ1bmN0aW9uKGUpe3ZhciB0PWUuY29ybmVyO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZTtudWxsPT0oZT1tLmN1cnJlbnQpfHxlLnN0eWxlLnJlbW92ZVByb3BlcnR5KFwidHJhbnNsYXRlXCIpLGModCl9KX0sZHJhZ0hhbmRsZVNlbGVjdG9yOmF9KSxtPWgucmVmLGc9aC5hbmltYXRlLHk9b2YoaCxbXCJyZWZcIixcImFuaW1hdGVcIl0pO3JldHVybiBwWzEwXSE9PXMuc3R5bGU/KGQ9b3Uoe3RvdWNoQWN0aW9uOlwibm9uZVwiLHVzZXJTZWxlY3Q6XCJub25lXCIsV2Via2l0VXNlclNlbGVjdDpcIm5vbmVcIn0scy5zdHlsZSkscFsxMF09cy5zdHlsZSxwWzExXT1kKTpkPXBbMTFdLHBbMTJdIT09cnx8cFsxM10hPT15fHxwWzE0XSE9PXN8fHBbMTVdIT09bXx8cFsxNl0hPT1kPyhmPSgwLGIuanN4KShcImRpdlwiLG9kKG91KG9kKG91KHt9LHMpLHtyZWY6bX0pLHkpLHtzdHlsZTpkLGNoaWxkcmVuOnJ9KSkscFsxMl09cixwWzEzXT15LHBbMTRdPXMscFsxNV09bSxwWzE2XT1kLHBbMTddPWYpOmY9cFsxN10sZn1mdW5jdGlvbiBvZyhlKXtyZXR1cm4gZS5kaXN0YW5jZX1mdW5jdGlvbiBveShlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06Ljk5OTtyZXR1cm4gZS8xZTMqdC8oMS10KX1mdW5jdGlvbiBvdihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gb2IoZSx0LG4pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09bixlfXZhciBvQT0yMDtmdW5jdGlvbiBveCgpe3ZhciBlLHQsbixyLG8sYSxpLGwscyxjPSgwLEEuYykoMjApLHU9ZGEoKSxkPXUuc3RhdGUsZj11LmRpc3BhdGNoLHA9cjIoKSxoPXAucGFuZWwsbT1wLnNldFBhbmVsLGc9cC5zZXRTZWxlY3RlZEluZGV4LHk9b3coKTtjWzBdIT09ZC5kZXZUb29sc1Bvc2l0aW9uPyhuPWQuZGV2VG9vbHNQb3NpdGlvbi5zcGxpdChcIi1cIiwyKSxjWzBdPWQuZGV2VG9vbHNQb3NpdGlvbixjWzFdPW4pOm49Y1sxXTt2YXIgdj0odD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGU9bil8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksYS5sZW5ndGghPT10KTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSwyKXx8ZnVuY3Rpb24oZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gb3YoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gb3YoZSx0KX19KGUsdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLHg9dlswXSx3PXZbMV07Y1syXSE9PXd8fGNbM10hPT14PyhvYihvPXtcIi0tYW5pbWF0ZS1vdXQtZHVyYXRpb24tbXNcIjpcIlwiLmNvbmNhdCgyMDAsXCJtc1wiKSxcIi0tYW5pbWF0ZS1vdXQtdGltaW5nLWZ1bmN0aW9uXCI6dDcsYm94U2hhZG93Olwibm9uZVwifSx4LFwiXCIuY29uY2F0KG9BLFwicHhcIikpLG9iKG8sdyxcIlwiLmNvbmNhdChvQSxcInB4XCIpKSxyPW8sY1syXT13LGNbM109eCxjWzRdPXIpOnI9Y1s0XTt2YXIgQz1yLF89bnVsbCE9PWg7cmV0dXJuIGNbNV0hPT1mfHxjWzZdIT09eT8oYT1mdW5jdGlvbihlKXtmKHt0eXBlOlksZGV2VG9vbHNQb3NpdGlvbjplfSksckEoe2RldlRvb2xzUG9zaXRpb246ZX0pLHkoZSl9LGNbNV09ZixjWzZdPXksY1s3XT1hKTphPWNbN10sY1s4XSE9PWh8fGNbOV0hPT1tfHxjWzEwXSE9PWc/KGk9KDAsYi5qc3gpKG9lLHtvblRyaWdnZXJDbGljazpmdW5jdGlvbigpe3ZhciBlPVwicGFuZWwtc2VsZWN0b3JcIj09PWg/bnVsbDpcInBhbmVsLXNlbGVjdG9yXCI7aWYobShlKSwhZSlyZXR1cm4gdm9pZCBnKC0xKX19KSxjWzhdPWgsY1s5XT1tLGNbMTBdPWcsY1sxMV09aSk6aT1jWzExXSxjWzEyXSE9PWQuZGV2VG9vbHNQb3NpdGlvbnx8Y1sxM10hPT1ffHxjWzE0XSE9PWF8fGNbMTVdIT09aT8obD0oMCxiLmpzeCkob20se2Rpc2FibGVEcmFnOl8scGFkZGluZzpvQSxwb3NpdGlvbjpkLmRldlRvb2xzUG9zaXRpb24sc2V0UG9zaXRpb246YSxjaGlsZHJlbjppfSksY1sxMl09ZC5kZXZUb29sc1Bvc2l0aW9uLGNbMTNdPV8sY1sxNF09YSxjWzE1XT1pLGNbMTZdPWwpOmw9Y1sxNl0sY1sxN10hPT1DfHxjWzE4XSE9PWw/KHM9KDAsYi5qc3gpKG9yLHtpZDpcImRldnRvb2xzLWluZGljYXRvclwiLFwiZGF0YS1uZXh0anMtdG9hc3RcIjohMCxzdHlsZTpDLGNoaWxkcmVuOmx9KSxjWzE3XT1DLGNbMThdPWwsY1sxOV09cyk6cz1jWzE5XSxzfXZhciBvdz1mdW5jdGlvbigpe3ZhciBlLHQ9KDAsQS5jKSgzKSxuPWRhKCkscj1uLnN0YXRlLG89bi5kaXNwYXRjaDtyZXR1cm4gdFswXSE9PW98fHRbMV0hPT1yLmRldlRvb2xzUGFuZWxQb3NpdGlvbj8oZT1mdW5jdGlvbihlKXtvKHt0eXBlOkssZGV2VG9vbHNQYW5lbFBvc2l0aW9uOmUsa2V5OmV0fSk7dmFyIHQ9T2JqZWN0LmtleXMoci5kZXZUb29sc1BhbmVsUG9zaXRpb24pLmZpbHRlcihvQyksbj1vYih7fSxldCxlKTt0LmZvckVhY2goZnVuY3Rpb24odCl7byh7dHlwZTpLLGRldlRvb2xzUGFuZWxQb3NpdGlvbjplLGtleTp0fSksblt0XT1lfSksckEoe2RldlRvb2xzUGFuZWxQb3NpdGlvbjpufSl9LHRbMF09byx0WzFdPXIuZGV2VG9vbHNQYW5lbFBvc2l0aW9uLHRbMl09ZSk6ZT10WzJdLGV9O2Z1bmN0aW9uIG9DKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoUSl9ZnVuY3Rpb24gb18oZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIG9rKGUsdCxuKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBvRShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7b2soZSx0LG5bdF0pfSl9cmV0dXJuIGV9ZnVuY3Rpb24gb2ooZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfWZ1bmN0aW9uIG9TKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLCF0fHxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLHQpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBvXyhlLHQpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09bnx8XCJTZXRcIj09PW4pcmV0dXJuIEFycmF5LmZyb20obik7aWYoXCJBcmd1bWVudHNcIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBvXyhlLHQpfX0oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX12YXIgb089KDAseC5jcmVhdGVDb250ZXh0KSh7fSk7ZnVuY3Rpb24gb0IoZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaD0oMCxBLmMpKDM3KTtoWzBdIT09ZT8oYT1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG4scixvPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgbixyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSx0LmluZGV4T2Yobik+PTB8fChvW25dPWVbbl0pO3JldHVybiBvfShlLHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyluPWFbcl0sISh0LmluZGV4T2Yobik+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSxuKSYmKG9bbl09ZVtuXSl9cmV0dXJuIG99KGUsW1wiaW5kZXhcIixcImxhYmVsXCIsXCJ2YWx1ZVwiLFwib25DbGlja1wiLFwiaHJlZlwiXSksbj1lLmluZGV4LHI9ZS5sYWJlbCxpPWUudmFsdWUsbz1lLm9uQ2xpY2ssdD1lLmhyZWYsaFswXT1lLGhbMV09dCxoWzJdPW4saFszXT1yLGhbNF09byxoWzVdPWEsaFs2XT1pKToodD1oWzFdLG49aFsyXSxyPWhbM10sbz1oWzRdLGE9aFs1XSxpPWhbNl0pO3ZhciBtPVwiZnVuY3Rpb25cIj09dHlwZW9mIG98fFwic3RyaW5nXCI9PXR5cGVvZiB0LGc9KDAseC51c2VDb250ZXh0KShvTykseT1nLmNsb3NlTWVudSx2PWcuc2VsZWN0ZWRJbmRleCx3PWcuc2V0U2VsZWN0ZWRJbmRleCxDPXY9PT1uO2hbN10hPT15fHxoWzhdIT09dHx8aFs5XSE9PW18fGhbMTBdIT09bz8obD1mdW5jdGlvbigpe20mJihudWxsPT1vfHxvKCksbnVsbD09eXx8eSgpLHQmJndpbmRvdy5vcGVuKHQsXCJfYmxhbmtcIixcIm5vb3BlbmVyLCBub3JlZmVycmVyXCIpKX0saFs3XT15LGhbOF09dCxoWzldPW0saFsxMF09byxoWzExXT1sKTpsPWhbMTFdO3ZhciBfPWw7aFsxMl0hPT1ufHxoWzEzXSE9PW18fGhbMTRdIT09dnx8aFsxNV0hPT13PyhzPWZ1bmN0aW9uKCl7bSYmdm9pZCAwIT09biYmdiE9PW4mJncobil9LGhbMTJdPW4saFsxM109bSxoWzE0XT12LGhbMTVdPXcsaFsxNl09cyk6cz1oWzE2XSxoWzE3XSE9PXc/KGM9ZnVuY3Rpb24oKXtyZXR1cm4gdygtMSl9LGhbMTddPXcsaFsxOF09Yyk6Yz1oWzE4XSxoWzE5XSE9PV8/KHU9ZnVuY3Rpb24oZSl7KFwiRW50ZXJcIj09PWUua2V5fHxcIiBcIj09PWUua2V5KSYmXygpfSxoWzE5XT1fLGhbMjBdPXUpOnU9aFsyMF07dmFyIGs9bT9cIm1lbnVpdGVtXCI6dm9pZCAwLEU9Qz8wOi0xO3JldHVybiBoWzIxXSE9PXI/KGQ9KDAsYi5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5kaWNhdG9yLWxhYmVsXCIsY2hpbGRyZW46cn0pLGhbMjFdPXIsaFsyMl09ZCk6ZD1oWzIyXSxoWzIzXSE9PWk/KGY9KDAsYi5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5kaWNhdG9yLXZhbHVlXCIsY2hpbGRyZW46aX0pLGhbMjNdPWksaFsyNF09Zik6Zj1oWzI0XSxoWzI1XSE9PV98fGhbMjZdIT09bnx8aFsyN10hPT1hfHxoWzI4XSE9PUN8fGhbMjldIT09c3x8aFszMF0hPT1jfHxoWzMxXSE9PXV8fGhbMzJdIT09a3x8aFszM10hPT1FfHxoWzM0XSE9PWR8fGhbMzVdIT09Zj8ocD0oMCxiLmpzeHMpKFwiZGl2XCIsb2oob0Uoe2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItaXRlbVwiLFwiZGF0YS1pbmRleFwiOm4sXCJkYXRhLXNlbGVjdGVkXCI6QyxvbkNsaWNrOl8sb25Nb3VzZU1vdmU6cyxvbk1vdXNlTGVhdmU6YyxvbktleURvd246dSxyb2xlOmssdGFiSW5kZXg6RX0sYSkse2NoaWxkcmVuOltkLGZdfSkpLGhbMjVdPV8saFsyNl09bixoWzI3XT1hLGhbMjhdPUMsaFsyOV09cyxoWzMwXT1jLGhbMzFdPXUsaFszMl09ayxoWzMzXT1FLGhbMzRdPWQsaFszNV09ZixoWzM2XT1wKTpwPWhbMzZdLHB9dmFyIG9QPWZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5jbG9zZU9uQ2xpY2tPdXRzaWRlLHI9dm9pZCAwPT09bnx8bixvPWUuaXRlbXMsYT1kYSgpLnN0YXRlLGk9cjIoKSxsPWkuc2V0UGFuZWwscz1pLnRyaWdnZXJSZWYsYz1pLnNldFNlbGVjdGVkSW5kZXgsdT1pLnNlbGVjdGVkSW5kZXgsZD11WCgpLm1vdW50ZWQsZj1vUyhhLmRldlRvb2xzUG9zaXRpb24uc3BsaXQoXCItXCIsMiksMikscD1mWzBdLGg9ZlsxXSxtPSgwLHgudXNlUmVmKShudWxsKTt0OChtLHMsciYmZCxmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZVwiZXNjYXBlXCI6bChudWxsKSxjKC0xKTtyZXR1cm47Y2FzZVwib3V0c2lkZVwiOmlmKCFyKXJldHVybjtsKG51bGwpLGMoLTEpO3JldHVybjtkZWZhdWx0OnJldHVybiBudWxsfX0pLCgwLHgudXNlTGF5b3V0RWZmZWN0KShmdW5jdGlvbigpe3ZhciBlO251bGw9PShlPW0uY3VycmVudCl8fGUuZm9jdXMoKSxvRCh7aW5kZXg6LTE9PT11P1wiZmlyc3RcIjp1LG1lbnVSZWY6bSxzZXRTZWxlY3RlZEluZGV4OmN9KX0sW10pO3ZhciBnPXI0KGEpLHk9b1MoYS5kZXZUb29sc1Bvc2l0aW9uLnNwbGl0KFwiLVwiLDIpLDIpLHY9eVswXSxBPXlbMV0sdz1wPT09diYmaD09PUE/ZzpvQSxDPShvayh0PXt9LHAsXCJcIi5jb25jYXQodyxcInB4XCIpKSxvayh0LGgsXCJcIi5jb25jYXQob0EsXCJweFwiKSksb2sodCxcInRvcFwiPT09cD9cImJvdHRvbVwiOlwidG9wXCIsXCJhdXRvXCIpLG9rKHQsXCJsZWZ0XCI9PT1oP1wicmlnaHRcIjpcImxlZnRcIixcImF1dG9cIiksdCksXz1vLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hIWV9KSxrPV8uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFlLmZvb3Rlcn0pLEU9Xy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZm9vdGVyfSk7cmV0dXJuKDAsYi5qc3gpKFwiZGl2XCIse3JlZjptLG9uS2V5RG93bjpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9Xy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUub25DbGlja30pLmxlbmd0aDtzd2l0Y2goZS5rZXkpe2Nhc2VcIkFycm93RG93blwiOm9EKHtpbmRleDp1Pj10LTE/MDp1KzEsbWVudVJlZjptLHNldFNlbGVjdGVkSW5kZXg6Y30pO2JyZWFrO2Nhc2VcIkFycm93VXBcIjpvRCh7aW5kZXg6dTw9MD90LTE6dS0xLG1lbnVSZWY6bSxzZXRTZWxlY3RlZEluZGV4OmN9KTticmVhaztjYXNlXCJIb21lXCI6b0Qoe2luZGV4OlwiZmlyc3RcIixtZW51UmVmOm0sc2V0U2VsZWN0ZWRJbmRleDpjfSk7YnJlYWs7Y2FzZVwiRW5kXCI6b0Qoe2luZGV4OlwibGFzdFwiLG1lbnVSZWY6bSxzZXRTZWxlY3RlZEluZGV4OmN9KTticmVhaztjYXNlXCJuXCI6ZS5jdHJsS2V5JiZvRCh7aW5kZXg6dT49dC0xPzA6dSsxLG1lbnVSZWY6bSxzZXRTZWxlY3RlZEluZGV4OmN9KTticmVhaztjYXNlXCJwXCI6ZS5jdHJsS2V5JiZvRCh7aW5kZXg6dTw9MD90LTE6dS0xLG1lbnVSZWY6bSxzZXRTZWxlY3RlZEluZGV4OmN9KX19LGlkOlwibmV4dGpzLWRldi10b29scy1tZW51XCIscm9sZTpcIm1lbnVcIixkaXI6XCJsdHJcIixcImFyaWEtb3JpZW50YXRpb25cIjpcInZlcnRpY2FsXCIsXCJhcmlhLWxhYmVsXCI6XCJOZXh0LmpzIERldiBUb29scyBJdGVtc1wiLHRhYkluZGV4Oi0xLHN0eWxlOm9FKHtvdXRsaW5lOjAsV2Via2l0Rm9udFNtb290aGluZzpcImFudGlhbGlhc2VkXCIsZGlzcGxheTpcImZsZXhcIixmbGV4RGlyZWN0aW9uOlwiY29sdW1uXCIsYWxpZ25JdGVtczpcImZsZXgtc3RhcnRcIixiYWNrZ3JvdW5kOlwidmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApXCIsYmFja2dyb3VuZENsaXA6XCJwYWRkaW5nLWJveFwiLGJveFNoYWRvdzpcInZhcigtLXNoYWRvdy1tZW51KVwiLGJvcmRlclJhZGl1czpcInZhcigtLXJvdW5kZWQteGwpXCIscG9zaXRpb246XCJmaXhlZFwiLGZvbnRGYW1pbHk6XCJ2YXIoLS1mb250LXN0YWNrLXNhbnMpXCIsekluZGV4OlwidmFyKC0tdG9wLXotaW5kZXgpXCIsb3ZlcmZsb3c6XCJoaWRkZW5cIixvcGFjaXR5OjEsbWluV2lkdGg6XCIyNDhweFwiLHRyYW5zaXRpb246XCJvcGFjaXR5IHZhcigtLWFuaW1hdGUtb3V0LWR1cmF0aW9uLW1zKSB2YXIoLS1hbmltYXRlLW91dC10aW1pbmctZnVuY3Rpb24pXCIsYm9yZGVyOlwiMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKVwifSxDKSxjaGlsZHJlbjooMCxiLmpzeHMpKG9PLHt2YWx1ZTp7c2VsZWN0ZWRJbmRleDp1LHNldFNlbGVjdGVkSW5kZXg6Y30sY2hpbGRyZW46WygwLGIuanN4KShcImRpdlwiLHtzdHlsZTp7cGFkZGluZzpcIjZweFwiLHdpZHRoOlwiMTAwJVwifSxjaGlsZHJlbjprLm1hcChmdW5jdGlvbihlLHQpe3JldHVybigwLGIuanN4KShvQixvRSh7dGl0bGU6ZS50aXRsZSxsYWJlbDplLmxhYmVsLHZhbHVlOmUudmFsdWUsb25DbGljazplLm9uQ2xpY2ssaW5kZXg6ZS5vbkNsaWNrP29JKGssdCk6dm9pZCAwfSxlLmF0dHJpYnV0ZXMpLGUubGFiZWwpfSl9KSwoMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZGljYXRvci1mb290ZXJcIixjaGlsZHJlbjpFLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuO3JldHVybigwLGIuanN4KShvQixvaihvRSh7dGl0bGU6ZS50aXRsZSxsYWJlbDplLmxhYmVsLHZhbHVlOmUudmFsdWUsb25DbGljazplLm9uQ2xpY2t9LGUuYXR0cmlidXRlcykse2luZGV4OmUub25DbGljaz9vSShFLHQpKyhuPWspLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5vbkNsaWNrfSkubGVuZ3RoOnZvaWQgMH0pLGUubGFiZWwpfSl9KV19KX0pfTtmdW5jdGlvbiBvSShlLHQpe2Zvcih2YXIgbj0wLHI9MDtyPD10JiZyPGUubGVuZ3RoO3IrKylpZihlW3JdLm9uQ2xpY2spe2lmKHI9PT10KXJldHVybiBuO24rK31yZXR1cm4gbn1mdW5jdGlvbiBveihlKXt2YXIgdCxuLHI9KDAsQS5jKSg0KSxvPWUuY2hpbGRyZW4sYT1vPjA7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxiLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItaXNzdWUtY291bnQtaW5kaWNhdG9yXCJ9KSxyWzBdPXQpOnQ9clswXSxyWzFdIT09b3x8clsyXSE9PWE/KG49KDAsYi5qc3hzKShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZGljYXRvci1pc3N1ZS1jb3VudFwiLFwiZGF0YS1oYXMtaXNzdWVzXCI6YSxjaGlsZHJlbjpbdCxvXX0pLHJbMV09byxyWzJdPWEsclszXT1uKTpuPXJbM10sbn1mdW5jdGlvbiBvVCgpe3ZhciBlLHQ9KDAsQS5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLGIuanN4KShcInN2Z1wiLHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46KDAsYi5qc3gpKFwicGF0aFwiLHtmaWxsOlwiIzY2NlwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNS41MDAxMSAxLjkzOTQ1TDYuMDMwNDQgMi40Njk3OEwxMC44NTM3IDcuMjkzQzExLjI0NDIgNy42ODM1MyAxMS4yNDQyIDguMzE2NjkgMTAuODUzNyA4LjcwNzIyTDYuMDMwNDQgMTMuNTMwNEw1LjUwMDExIDE0LjA2MDhMNC40Mzk0NSAxMy4wMDAxTDQuOTY5NzggMTIuNDY5OEw5LjQzOTQ1IDguMDAwMTFMNC45Njk3OCAzLjUzMDQ0TDQuNDM5NDUgMy4wMDAxMUw1LjUwMDExIDEuOTM5NDVaXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gb0QoZSl7dmFyIHQsbj1lLmluZGV4LHI9ZS5tZW51UmVmLG89ZS5zZXRTZWxlY3RlZEluZGV4O2lmKFwiZmlyc3RcIj09PW4pcmV0dXJuIHZvaWQgc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlLHQ9bnVsbD09KGU9ci5jdXJyZW50KT92b2lkIDA6ZS5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT1cIm1lbnVpdGVtXCJdJyk7dCYmb0Qoe2luZGV4Ok51bWJlcih0WzBdLmdldEF0dHJpYnV0ZShcImRhdGEtaW5kZXhcIikpLG1lbnVSZWY6cixzZXRTZWxlY3RlZEluZGV4Om99KX0pO2lmKFwibGFzdFwiPT09bilyZXR1cm4gdm9pZCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGUsdD1udWxsPT0oZT1yLmN1cnJlbnQpP3ZvaWQgMDplLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyb2xlPVwibWVudWl0ZW1cIl0nKTt0JiZvRCh7aW5kZXg6dC5sZW5ndGgtMSxtZW51UmVmOnIsc2V0U2VsZWN0ZWRJbmRleDpvfSl9KTt2YXIgYT1udWxsPT0odD1yLmN1cnJlbnQpP3ZvaWQgMDp0LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWluZGV4PVwiJy5jb25jYXQobiwnXCJdJykpO2EmJihvKG4pLG51bGw9PWF8fGEuZm9jdXMoKSl9ZnVuY3Rpb24gb0woZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciBvTj0oMCx4LmNyZWF0ZUNvbnRleHQpKG51bGwpLG9SPWZ1bmN0aW9uKGUpe3ZhciB0PS45NSp3aW5kb3cuaW5uZXJXaWR0aCxuPS45NSp3aW5kb3cuaW5uZXJIZWlnaHQ7cmV0dXJue3dpZHRoOk1hdGgubWluKHQsTWF0aC5tYXgoZS5taW5XaWR0aCxlLndpZHRoKSksaGVpZ2h0Ok1hdGgubWluKG4sTWF0aC5tYXgoZS5taW5IZWlnaHQsZS5oZWlnaHQpKX19LG9NPWZ1bmN0aW9uKGUpe3ZhciB0LG4scixvLGEsaSxsLHM9ZS52YWx1ZSxjPWUuY2hpbGRyZW4sdT1udWxsIT0oYT1zLm1pbldpZHRoKT9hOjEwMCxkPW51bGwhPShpPXMubWluSGVpZ2h0KT9pOjgwLGY9cy5tYXhXaWR0aCxwPXMubWF4SGVpZ2h0LGg9KHQ9KDAseC51c2VTdGF0ZSkobnVsbCksbj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG9MKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG9MKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxtPWhbMF0sZz1oWzFdLHk9bnVsbCE9KGw9cy5zdG9yYWdlS2V5KT9sOmVlLHY9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtpZihzLnJlc2l6ZVJlZi5jdXJyZW50JiZudWxsPT09bSl7dmFyIGU9cy5kZXZUb29sc1BhbmVsU2l6ZVt5XTtpZihlKXt2YXIgdCxuLHI9b1IoKHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7fSxlKSxuPW49e21pbldpZHRoOm51bGwhPXU/dToxMDAsbWluSGVpZ2h0Om51bGwhPWQ/ZDo4MH0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSx0KSksbz1yLmhlaWdodCxhPXIud2lkdGg7cmV0dXJuIHMucmVzaXplUmVmLmN1cnJlbnQuc3R5bGUud2lkdGg9XCJcIi5jb25jYXQoYSxcInB4XCIpLHMucmVzaXplUmVmLmN1cnJlbnQuc3R5bGUuaGVpZ2h0PVwiXCIuY29uY2F0KG8sXCJweFwiKSwhMH19fSxbcy5yZXNpemVSZWYsbSx5LHUsZCxzLmRldlRvb2xzUGFuZWxTaXplXSk7cmV0dXJuKDAseC51c2VMYXlvdXRFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGU7aWYoIXYoKSYmcy5yZXNpemVSZWYuY3VycmVudCYmKG51bGw9PShlPXMuaW5pdGlhbFNpemUpP3ZvaWQgMDplLmhlaWdodCkmJnMuaW5pdGlhbFNpemUud2lkdGgpe3ZhciB0PW9SKHtoZWlnaHQ6cy5pbml0aWFsU2l6ZS5oZWlnaHQsd2lkdGg6cy5pbml0aWFsU2l6ZS53aWR0aCxtaW5XaWR0aDpudWxsIT11P3U6MTAwLG1pbkhlaWdodDpudWxsIT1kP2Q6ODB9KSxuPXQuaGVpZ2h0LHI9dC53aWR0aDtzLnJlc2l6ZVJlZi5jdXJyZW50LnN0eWxlLndpZHRoPVwiXCIuY29uY2F0KHIsXCJweFwiKSxzLnJlc2l6ZVJlZi5jdXJyZW50LnN0eWxlLmhlaWdodD1cIlwiLmNvbmNhdChuLFwicHhcIil9fSxbXSksKDAseC51c2VMYXlvdXRFZmZlY3QpKGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdiksZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix2KX19LFt2LG51bGw9PShyPXMuaW5pdGlhbFNpemUpP3ZvaWQgMDpyLmhlaWdodCxudWxsPT0obz1zLmluaXRpYWxTaXplKT92b2lkIDA6by53aWR0aCxzLnJlc2l6ZVJlZl0pLCgwLGIuanN4KShvTi5Qcm92aWRlcix7dmFsdWU6e3Jlc2l6ZVJlZjpzLnJlc2l6ZVJlZixtaW5XaWR0aDp1LG1pbkhlaWdodDpkLG1heFdpZHRoOmYsbWF4SGVpZ2h0OnAsZHJhZ2dpbmdEaXJlY3Rpb246bSxzZXREcmFnZ2luZ0RpcmVjdGlvbjpnLHN0b3JhZ2VLZXk6eX0sY2hpbGRyZW46Y30pfSxvWj1mdW5jdGlvbigpe3ZhciBlPSgwLHgudXNlQ29udGV4dCkob04pO2lmKCFlKXRocm93IEVycm9yKFwidXNlUmVzaXplIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBSZXNpemUgcHJvdmlkZXJcIik7cmV0dXJuIGV9LG9VPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9kZXZ0b29scy1wYW5lbC9yZXNpemUvcmVzaXplLWhhbmRsZS5jc3NcIiksb0Y9e307ZnVuY3Rpb24gb3EoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfW9GLnN0eWxlVGFnVHJhbnNmb3JtPWgoKSxvRi5zZXRBdHRyaWJ1dGVzPXUoKSxvRi5pbnNlcnQ9cygpLG9GLmRvbUFQST1pKCksb0YuaW5zZXJ0U3R5bGVFbGVtZW50PWYoKSxvKCkob1UuWixvRiksb1UuWiYmb1UuWi5sb2NhbHMmJm9VLloubG9jYWxzO3ZhciBvSD1mdW5jdGlvbihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkPSgwLEEuYykoMzIpLGY9ZS5kaXJlY3Rpb24scD1lLnBvc2l0aW9uLGg9b1ooKSxtPWgucmVzaXplUmVmLGc9aC5taW5XaWR0aCx5PWgubWluSGVpZ2h0LHY9aC5tYXhXaWR0aCx3PWgubWF4SGVpZ2h0LEM9aC5zdG9yYWdlS2V5LF89aC5kcmFnZ2luZ0RpcmVjdGlvbixrPWguc2V0RHJhZ2dpbmdEaXJlY3Rpb247ZFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhyPXt0b3A6MCxyaWdodDowLGJvdHRvbTowLGxlZnQ6MH0sZFswXT1yKTpyPWRbMF07dmFyIEU9KHQ9KDAseC51c2VTdGF0ZSkociksbj0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLHQpe3ZhciBuLHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KG49by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKG4udmFsdWUpLGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG9xKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG9xKGUsdCl9fSh0LG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxqPUVbMF0sUz1FWzFdO2RbMV0hPT1tLmN1cnJlbnQ/KG89ZnVuY3Rpb24oKXtpZihtLmN1cnJlbnQpe3ZhciBlPW0uY3VycmVudCx0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpO1Moe3RvcDpwYXJzZUZsb2F0KHQuYm9yZGVyVG9wV2lkdGgpfHwwLHJpZ2h0OnBhcnNlRmxvYXQodC5ib3JkZXJSaWdodFdpZHRoKXx8MCxib3R0b206cGFyc2VGbG9hdCh0LmJvcmRlckJvdHRvbVdpZHRoKXx8MCxsZWZ0OnBhcnNlRmxvYXQodC5ib3JkZXJMZWZ0V2lkdGgpfHwwfSl9fSxkWzFdPW0uY3VycmVudCxkWzJdPW8pOm89ZFsyXSxkWzNdIT09bT8oYT1bbV0sZFszXT1tLGRbNF09YSk6YT1kWzRdLCgwLHgudXNlTGF5b3V0RWZmZWN0KShvLGEpLGRbNV0hPT1mfHxkWzZdIT09d3x8ZFs3XSE9PXZ8fGRbOF0hPT15fHxkWzldIT09Z3x8ZFsxMF0hPT1tLmN1cnJlbnR8fGRbMTFdIT09a3x8ZFsxMl0hPT1DPyhpPWZ1bmN0aW9uKGUpe2lmKGUucHJldmVudERlZmF1bHQoKSxtLmN1cnJlbnQpe2soZik7dmFyIHQ9bS5jdXJyZW50LG49dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPWUuY2xpZW50WCxvPWUuY2xpZW50WSxhPWZ1bmN0aW9uKGUpe3ZhciBhPW9WKGYsZS5jbGllbnRYLXIsZS5jbGllbnRZLW8sbixnLHksdix3KSxpPWEubmV3V2lkdGgsbD1hLm5ld0hlaWdodDt2b2lkIDAhPT1pJiYodC5zdHlsZS53aWR0aD1cIlwiLmNvbmNhdChpLFwicHhcIikpLHZvaWQgMCE9PWwmJih0LnN0eWxlLmhlaWdodD1cIlwiLmNvbmNhdChsLFwicHhcIikpfSxpPWZ1bmN0aW9uKCl7aWYoayhudWxsKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsYSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixpKSxtLmN1cnJlbnQpe3ZhciBlLHQsbixyPW0uY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxvPXIud2lkdGgsbD1yLmhlaWdodDtyQSh7ZGV2VG9vbHNQYW5lbFNpemU6KGU9e30sdD1DLG49e3dpZHRoOm8saGVpZ2h0Omx9LHQgaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGUpfSl9fTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsYSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixpKX19LGRbNV09ZixkWzZdPXcsZFs3XT12LGRbOF09eSxkWzldPWcsZFsxMF09bS5jdXJyZW50LGRbMTFdPWssZFsxMl09QyxkWzEzXT1pKTppPWRbMTNdO3ZhciBPPWk7aWYoISghcC5zcGxpdChcIi1cIikuaW5jbHVkZXMoZikmJighZi5pbmNsdWRlcyhcIi1cIil8fGY9PT1vJChwKSkpKXJldHVybiBudWxsO3ZhciBCPWoubGVmdCtqLnJpZ2h0LFA9ai50b3Arai5ib3R0b207ZFsxNF0hPT1mPyhsPWYuaW5jbHVkZXMoXCItXCIpLGRbMTRdPWYsZFsxNV09bCk6bD1kWzE1XTt2YXIgST1sLHo9XCJyZXNpemUtY29udGFpbmVyIFwiLmNvbmNhdChmLFwiIFwiKS5jb25jYXQoXyYmXyE9PWY/XCJuby1ob3ZlclwiOlwiXCIpO3JldHVybiBkWzE2XSE9PU98fGRbMTddIT09ej8ocz0oMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOnosb25Nb3VzZURvd246T30pLGRbMTZdPU8sZFsxN109eixkWzE4XT1zKTpzPWRbMThdLGRbMTldIT09ai5ib3R0b218fGRbMjBdIT09ai5sZWZ0fHxkWzIxXSE9PWoucmlnaHR8fGRbMjJdIT09ai50b3B8fGRbMjNdIT09Znx8ZFsyNF0hPT1ffHxkWzI1XSE9PUl8fGRbMjZdIT09Qnx8ZFsyN10hPT1QPyhjPSFJJiYoMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicmVzaXplLWxpbmUgXCIuY29uY2F0KGYsXCIgXCIpLmNvbmNhdChfPT09Zj9cImRyYWdnaW5nXCI6XCJcIiksc3R5bGU6e1wiLS1ib3JkZXItaG9yaXpvbnRhbFwiOlwiXCIuY29uY2F0KEIsXCJweFwiKSxcIi0tYm9yZGVyLXZlcnRpY2FsXCI6XCJcIi5jb25jYXQoUCxcInB4XCIpLFwiLS1ib3JkZXItdG9wXCI6XCJcIi5jb25jYXQoai50b3AsXCJweFwiKSxcIi0tYm9yZGVyLXJpZ2h0XCI6XCJcIi5jb25jYXQoai5yaWdodCxcInB4XCIpLFwiLS1ib3JkZXItYm90dG9tXCI6XCJcIi5jb25jYXQoai5ib3R0b20sXCJweFwiKSxcIi0tYm9yZGVyLWxlZnRcIjpcIlwiLmNvbmNhdChqLmxlZnQsXCJweFwiKX19KSxkWzE5XT1qLmJvdHRvbSxkWzIwXT1qLmxlZnQsZFsyMV09ai5yaWdodCxkWzIyXT1qLnRvcCxkWzIzXT1mLGRbMjRdPV8sZFsyNV09SSxkWzI2XT1CLGRbMjddPVAsZFsyOF09Yyk6Yz1kWzI4XSxkWzI5XSE9PXN8fGRbMzBdIT09Yz8odT0oMCxiLmpzeHMpKGIuRnJhZ21lbnQse2NoaWxkcmVuOltzLGNdfSksZFsyOV09cyxkWzMwXT1jLGRbMzFdPXUpOnU9ZFszMV0sdX0sb1Y9ZnVuY3Rpb24oZSx0LG4scixvLGEsaSxsKXt2YXIgcz1udWxsIT1pP2k6Ljk1KndpbmRvdy5pbm5lcldpZHRoLGM9bnVsbCE9bD9sOi45NSp3aW5kb3cuaW5uZXJIZWlnaHQ7c3dpdGNoKGUpe2Nhc2VcInJpZ2h0XCI6cmV0dXJue25ld1dpZHRoOk1hdGgubWluKHMsTWF0aC5tYXgobyxyLndpZHRoK3QpKSxuZXdIZWlnaHQ6ci5oZWlnaHR9O2Nhc2VcImxlZnRcIjpyZXR1cm57bmV3V2lkdGg6TWF0aC5taW4ocyxNYXRoLm1heChvLHIud2lkdGgtdCkpLG5ld0hlaWdodDpyLmhlaWdodH07Y2FzZVwiYm90dG9tXCI6cmV0dXJue25ld1dpZHRoOnIud2lkdGgsbmV3SGVpZ2h0Ok1hdGgubWluKGMsTWF0aC5tYXgoYSxyLmhlaWdodCtuKSl9O2Nhc2VcInRvcFwiOnJldHVybntuZXdXaWR0aDpyLndpZHRoLG5ld0hlaWdodDpNYXRoLm1pbihjLE1hdGgubWF4KGEsci5oZWlnaHQtbikpfTtjYXNlXCJ0b3AtbGVmdFwiOnJldHVybntuZXdXaWR0aDpNYXRoLm1pbihzLE1hdGgubWF4KG8sci53aWR0aC10KSksbmV3SGVpZ2h0Ok1hdGgubWluKGMsTWF0aC5tYXgoYSxyLmhlaWdodC1uKSl9O2Nhc2VcInRvcC1yaWdodFwiOnJldHVybntuZXdXaWR0aDpNYXRoLm1pbihzLE1hdGgubWF4KG8sci53aWR0aCt0KSksbmV3SGVpZ2h0Ok1hdGgubWluKGMsTWF0aC5tYXgoYSxyLmhlaWdodC1uKSl9O2Nhc2VcImJvdHRvbS1sZWZ0XCI6cmV0dXJue25ld1dpZHRoOk1hdGgubWluKHMsTWF0aC5tYXgobyxyLndpZHRoLXQpKSxuZXdIZWlnaHQ6TWF0aC5taW4oYyxNYXRoLm1heChhLHIuaGVpZ2h0K24pKX07Y2FzZVwiYm90dG9tLXJpZ2h0XCI6cmV0dXJue25ld1dpZHRoOk1hdGgubWluKHMsTWF0aC5tYXgobyxyLndpZHRoK3QpKSxuZXdIZWlnaHQ6TWF0aC5taW4oYyxNYXRoLm1heChhLHIuaGVpZ2h0K24pKX07ZGVmYXVsdDpyZXR1cm4gbnVsbH19O2Z1bmN0aW9uIG8kKGUpe3N3aXRjaChlKXtjYXNlXCJ0b3AtbGVmdFwiOnJldHVyblwiYm90dG9tLXJpZ2h0XCI7Y2FzZVwidG9wLXJpZ2h0XCI6cmV0dXJuXCJib3R0b20tbGVmdFwiO2Nhc2VcImJvdHRvbS1sZWZ0XCI6cmV0dXJuXCJ0b3AtcmlnaHRcIjtjYXNlXCJib3R0b20tcmlnaHRcIjpyZXR1cm5cInRvcC1sZWZ0XCI7ZGVmYXVsdDpyZXR1cm4gbnVsbH19dmFyIG9XPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvcGFuZWwvZHluYW1pYy1wYW5lbC5jc3NcIiksb1k9e307ZnVuY3Rpb24gb0soZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIG9YKGUsdCxuKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1mdW5jdGlvbiBvRyhlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7b1goZSx0LG5bdF0pfSl9cmV0dXJuIGV9ZnVuY3Rpb24gb1EoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG9LKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIG9LKGUsdCl9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIG9KKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpcIndpZHRoXCI7aWYoXCJudW1iZXJcIj09dHlwZW9mIGUpcmV0dXJuIGU7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtuLnN0eWxlLnBvc2l0aW9uPVwiYWJzb2x1dGVcIixuLnN0eWxlLnZpc2liaWxpdHk9XCJoaWRkZW5cIixcIndpZHRoXCI9PT10P24uc3R5bGUud2lkdGg9ZTpuLnN0eWxlLmhlaWdodD1lLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobik7dmFyIHI9XCJ3aWR0aFwiPT09dD9uLm9mZnNldFdpZHRoOm4ub2Zmc2V0SGVpZ2h0O3JldHVybiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG4pLHJ9ZnVuY3Rpb24gbzAoZSl7dmFyIHQsbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaCxtLGc9ZS5oZWFkZXIseT1lLmNoaWxkcmVuLHY9ZS5kcmFnZ2FibGUsdz12b2lkIDAhPT12JiZ2LEM9ZS5zaXplQ29uZmlnLF89dm9pZCAwPT09Qz97a2luZDpcInJlc2l6YWJsZVwiLG1pbldpZHRoOjQwMCxtaW5IZWlnaHQ6MzUwLG1heFdpZHRoOjFlMyxtYXhIZWlnaHQ6MWUzLGluaXRpYWxTaXplOntoZWlnaHQ6NDAwLHdpZHRoOjUwMH19OkMsaz1lLmNsb3NlT25DbGlja091dHNpZGUsRT12b2lkIDAhPT1rJiZrLGo9ZS5zaGFyZVBhbmVsU2l6ZUdsb2JhbGx5LFM9ZS5zaGFyZVBhbmVsUG9zaXRpb25HbG9iYWxseSxPPWUuY29udGFpbmVyUHJvcHMsQj1yMigpLnNldFBhbmVsLFA9dVgoKSxJPVAubmFtZSx6PVAubW91bnRlZCxUPXZvaWQgMD09PWp8fGo/ZWU6XCJcIi5jb25jYXQoSixcIl9cIikuY29uY2F0KEkpLEQ9dm9pZCAwPT09U3x8Uz9ldDpcIlwiLmNvbmNhdChRLFwiX1wiKS5jb25jYXQoSSksTD1kYSgpLE49TC5kaXNwYXRjaCxSPUwuc3RhdGUsTT1udWxsIT0oaD1SLmRldlRvb2xzUGFuZWxQb3NpdGlvbltEXSk/aDpSLmRldlRvb2xzUG9zaXRpb24sWj1vUShNLnNwbGl0KFwiLVwiLDIpLDIpLFU9WlswXSxGPVpbMV0scT0oMCx4LnVzZVJlZikobnVsbCk7dDgocSxyMigpLnRyaWdnZXJSZWYseixmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZVwiZXNjYXBlXCI6cmV0dXJuIHZvaWQgQihcInBhbmVsLXNlbGVjdG9yXCIpO2Nhc2VcIm91dHNpZGVcIjpFJiZCKFwicGFuZWwtc2VsZWN0b3JcIik7cmV0dXJuO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSk7dmFyIEg9cjQoUiksVj1vUShSLmRldlRvb2xzUG9zaXRpb24uc3BsaXQoXCItXCIsMiksMiksJD1WWzBdLFc9VlsxXSxZPVU9PT0kJiZGPT09Vz9IOm9BLFg9KG9YKG09e30sVSxcIlwiLmNvbmNhdChZLFwicHhcIikpLG9YKG0sRixcIlwiLmNvbmNhdChvQSxcInB4XCIpKSxvWChtLFwidG9wXCI9PT1VP1wiYm90dG9tXCI6XCJ0b3BcIixcImF1dG9cIiksb1gobSxcImxlZnRcIj09PUY/XCJyaWdodFwiOlwibGVmdFwiLFwiYXV0b1wiKSxtKSxHPVwicmVzaXphYmxlXCI9PT1fLmtpbmQsZW49KHQ9Rz9fLm1pbldpZHRoOnZvaWQgMCxuPUc/Xy5taW5IZWlnaHQ6dm9pZCAwLHI9Rz9fLm1heFdpZHRoOnZvaWQgMCxvPUc/Xy5tYXhIZWlnaHQ6dm9pZCAwLChzPSgwLEEuYykoMTEpKVswXSE9PW98fHNbMV0hPT1yfHxzWzJdIT09bnx8c1szXSE9PXQ/KGE9ZnVuY3Rpb24oKXtyZXR1cm57bWluV2lkdGg6dD9vSih0LFwid2lkdGhcIik6dm9pZCAwLG1pbkhlaWdodDpuP29KKG4sXCJoZWlnaHRcIik6dm9pZCAwLG1heFdpZHRoOnI/b0oocixcIndpZHRoXCIpOnZvaWQgMCxtYXhIZWlnaHQ6bz9vSihvLFwiaGVpZ2h0XCIpOnZvaWQgMH19LHNbMF09byxzWzFdPXIsc1syXT1uLHNbM109dCxzWzRdPWEpOmE9c1s0XSx1PShjPW9RKCgwLHgudXNlU3RhdGUpKGEpLDIpKVswXSxkPWNbMV0sc1s1XSE9PW98fHNbNl0hPT1yfHxzWzddIT09bnx8c1s4XSE9PXQ/KGk9ZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbigpe2Qoe21pbldpZHRoOnQ/b0oodCxcIndpZHRoXCIpOnZvaWQgMCxtaW5IZWlnaHQ6bj9vSihuLFwiaGVpZ2h0XCIpOnZvaWQgMCxtYXhXaWR0aDpyP29KKHIsXCJ3aWR0aFwiKTp2b2lkIDAsbWF4SGVpZ2h0Om8/b0oobyxcImhlaWdodFwiKTp2b2lkIDB9KX07cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsZSksZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixlKX19LGw9W3QsbixyLG9dLHNbNV09byxzWzZdPXIsc1s3XT1uLHNbOF09dCxzWzldPWksc1sxMF09bCk6KGk9c1s5XSxsPXNbMTBdKSwoMCx4LnVzZUVmZmVjdCkoaSxsKSx1KSxlcj1lbi5taW5XaWR0aCxlbz1lbi5taW5IZWlnaHQsZWE9ZW4ubWF4V2lkdGgsZWk9ZW4ubWF4SGVpZ2h0LGVsPUk/XCJcIi5jb25jYXQoSixcIl9cIikuY29uY2F0KEkpOmVlLGVzPVIuZGV2VG9vbHNQYW5lbFNpemVbZWxdO3JldHVybigwLGIuanN4KShvTSx7dmFsdWU6e3Jlc2l6ZVJlZjpxLGluaXRpYWxTaXplOlwicmVzaXphYmxlXCI9PT1fLmtpbmQ/Xy5pbml0aWFsU2l6ZTpfLG1pbldpZHRoOmVyLG1pbkhlaWdodDplbyxtYXhXaWR0aDplYSxtYXhIZWlnaHQ6ZWksZGV2VG9vbHNQb3NpdGlvbjpSLmRldlRvb2xzUG9zaXRpb24sZGV2VG9vbHNQYW5lbFNpemU6Ui5kZXZUb29sc1BhbmVsU2l6ZSxzdG9yYWdlS2V5OlR9LGNoaWxkcmVuOigwLGIuanN4KShcImRpdlwiLHt0YWJJbmRleDotMSxyZWY6cSxjbGFzc05hbWU6XCJkeW5hbWljLXBhbmVsLWNvbnRhaW5lclwiLHN0eWxlOm9HKHtcIi0tcGFuZWwtdG9wXCI6WC50b3AsXCItLXBhbmVsLWJvdHRvbVwiOlguYm90dG9tLFwiLS1wYW5lbC1sZWZ0XCI6WC5sZWZ0LFwiLS1wYW5lbC1yaWdodFwiOlgucmlnaHR9LEc/e1wiLS1wYW5lbC1taW4td2lkdGhcIjplcj9cIlwiLmNvbmNhdChlcixcInB4XCIpOnZvaWQgMCxcIi0tcGFuZWwtbWluLWhlaWdodFwiOmVvP1wiXCIuY29uY2F0KGVvLFwicHhcIik6dm9pZCAwLFwiLS1wYW5lbC1tYXgtd2lkdGhcIjplYT9cIlwiLmNvbmNhdChlYSxcInB4XCIpOnZvaWQgMCxcIi0tcGFuZWwtbWF4LWhlaWdodFwiOmVpP1wiXCIuY29uY2F0KGVpLFwicHhcIik6dm9pZCAwfTp7XCItLXBhbmVsLWhlaWdodFwiOlwiXCIuY29uY2F0KGVzP2VzLmhlaWdodDpfLmhlaWdodCxcInB4XCIpLFwiLS1wYW5lbC13aWR0aFwiOlwiXCIuY29uY2F0KGVzP2VzLndpZHRoOl8ud2lkdGgsXCJweFwiKX0pLGNoaWxkcmVuOigwLGIuanN4KShvaSx7ZGlzYWJsZWQ6IXcsY2hpbGRyZW46KDAsYi5qc3gpKG9tLHtkcmFnSGFuZGxlU2VsZWN0b3I6XCIucmVzaXplLWNvbnRhaW5lclwiLGF2b2lkWm9uZTp7Y29ybmVyOlIuZGV2VG9vbHNQb3NpdGlvbixzcXVhcmU6MjUvUi5zY2FsZSxwYWRkaW5nOm9BfSxwYWRkaW5nOm9BLHBvc2l0aW9uOk0sc2V0UG9zaXRpb246ZnVuY3Rpb24oZSl7Tih7dHlwZTpLLGRldlRvb2xzUGFuZWxQb3NpdGlvbjplLGtleTpEfSksXCJyZXNpemFibGVcIj09PV8ua2luZCYmckEoe2RldlRvb2xzUGFuZWxQb3NpdGlvbjpvWCh7fSxELGUpfSl9LHN0eWxlOntvdmVyZmxvdzpcImF1dG9cIix3aWR0aDpcIjEwMCVcIixoZWlnaHQ6XCIxMDAlXCJ9LGRpc2FibGVEcmFnOiF3LGNoaWxkcmVuOigwLGIuanN4cykoYi5GcmFnbWVudCx7Y2hpbGRyZW46WygwLGIuanN4cykoXCJkaXZcIiwoZj1vRyh7fSxPKSxwPXA9e2NsYXNzTmFtZTpcInBhbmVsLWNvbnRlbnQtY29udGFpbmVyIFwiLmNvbmNhdCgobnVsbD09Tz92b2lkIDA6Ty5jbGFzc05hbWUpfHxcIlwiKSxzdHlsZTpvRyh7fSxudWxsPT1PP3ZvaWQgMDpPLnN0eWxlKSxjaGlsZHJlbjpbKDAsYi5qc3gpKG9zLHtjaGlsZHJlbjpnfSksKDAsYi5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtc2Nyb2xsYWJsZS1jb250ZW50XCI6ITAsY2xhc3NOYW1lOlwiZHJhZ2dhYmxlLWNvbnRlbnRcIixjaGlsZHJlbjp5fSldfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhmLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHApKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHApKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShmLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwLGUpKX0pLGYpKSxHJiYoMCxiLmpzeHMpKGIuRnJhZ21lbnQse2NoaWxkcmVuOlsoIV8uc2lkZXN8fF8uc2lkZXMuaW5jbHVkZXMoXCJ2ZXJ0aWNhbFwiKSkmJigwLGIuanN4cykoYi5GcmFnbWVudCx7Y2hpbGRyZW46WygwLGIuanN4KShvSCx7cG9zaXRpb246TSxkaXJlY3Rpb246XCJ0b3BcIn0pLCgwLGIuanN4KShvSCx7cG9zaXRpb246TSxkaXJlY3Rpb246XCJib3R0b21cIn0pXX0pLCghXy5zaWRlc3x8Xy5zaWRlcy5pbmNsdWRlcyhcImhvcml6b250YWxcIikpJiYoMCxiLmpzeHMpKGIuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxiLmpzeCkob0gse3Bvc2l0aW9uOk0sZGlyZWN0aW9uOlwicmlnaHRcIn0pLCgwLGIuanN4KShvSCx7cG9zaXRpb246TSxkaXJlY3Rpb246XCJsZWZ0XCJ9KV19KSwoIV8uc2lkZXN8fF8uc2lkZXMuaW5jbHVkZXMoXCJkaWFnb25hbFwiKSkmJigwLGIuanN4cykoYi5GcmFnbWVudCx7Y2hpbGRyZW46WygwLGIuanN4KShvSCx7cG9zaXRpb246TSxkaXJlY3Rpb246XCJ0b3AtbGVmdFwifSksKDAsYi5qc3gpKG9ILHtwb3NpdGlvbjpNLGRpcmVjdGlvbjpcInRvcC1yaWdodFwifSksKDAsYi5qc3gpKG9ILHtwb3NpdGlvbjpNLGRpcmVjdGlvbjpcImJvdHRvbS1sZWZ0XCJ9KSwoMCxiLmpzeCkob0gse3Bvc2l0aW9uOk0sZGlyZWN0aW9uOlwiYm90dG9tLXJpZ2h0XCJ9KV19KV19KV19KX0pfSl9KX0pfW9ZLnN0eWxlVGFnVHJhbnNmb3JtPWgoKSxvWS5zZXRBdHRyaWJ1dGVzPXUoKSxvWS5pbnNlcnQ9cygpLG9ZLmRvbUFQST1pKCksb1kuaW5zZXJ0U3R5bGVFbGVtZW50PWYoKSxvKCkob1cuWixvWSksb1cuWiYmb1cuWi5sb2NhbHMmJm9XLloubG9jYWxzO3ZhciBvMT1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci5jc3NcIiksbzI9e307ZnVuY3Rpb24gbzQoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxyPU9iamVjdC5rZXlzKG4pO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMobikuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG8sYTtyPWUsbz10LGE9blt0XSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfW8yLnN0eWxlVGFnVHJhbnNmb3JtPWgoKSxvMi5zZXRBdHRyaWJ1dGVzPXUoKSxvMi5pbnNlcnQ9cygpLG8yLmRvbUFQST1pKCksbzIuaW5zZXJ0U3R5bGVFbGVtZW50PWYoKSxvKCkobzEuWixvMiksbzEuWiYmbzEuWi5sb2NhbHMmJm8xLloubG9jYWxzO3ZhciBvNT1uZXcgU2V0LG8zPXtzdWJzY3JpYmU6ZnVuY3Rpb24oZSl7cmV0dXJuIG81LmFkZChlKSxmdW5jdGlvbigpe3JldHVybiBvNS5kZWxldGUoZSl9fSxnZXRTbmFwc2hvdDpmdW5jdGlvbigpe3JldHVybiBvNy5nZXRSb290KCl9LGdldFNlcnZlclNuYXBzaG90OmZ1bmN0aW9uKCl7cmV0dXJuIG83LmdldFJvb3QoKX19LG82PW8zLnN1YnNjcmliZSxvOT1vMy5nZXRTbmFwc2hvdCxvOD1vMy5nZXRTZXJ2ZXJTbmFwc2hvdCxvNz1mdW5jdGlvbihlKXt2YXIgdD1lLmdldENoYXJhY3RlcnMsbj12b2lkIDA9PT10P2Z1bmN0aW9uKGUpe3JldHVybltlXX06dCxyPWUuY29tcGFyZSxvPXZvaWQgMD09PXI/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXR9OnIsYT17dmFsdWU6dm9pZCAwLGNoaWxkcmVuOnt9fTtmdW5jdGlvbiBpKCl7dmFyIGU9ITAsdD0hMSxuPXZvaWQgMDt0cnl7Zm9yKHZhciByLG89bzVbU3ltYm9sLml0ZXJhdG9yXSgpOyEoZT0ocj1vLm5leHQoKSkuZG9uZSk7ZT0hMCkoMCxyLnZhbHVlKSgpfWNhdGNoKGUpe3Q9ITAsbj1lfWZpbmFsbHl7dHJ5e2V8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYodCl0aHJvdyBufX19cmV0dXJue2luc2VydDpmdW5jdGlvbihlKXt2YXIgdD1hLHI9bihlKSxvPSEwLGw9ITEscz12b2lkIDA7dHJ5e2Zvcih2YXIgYyx1PXJbU3ltYm9sLml0ZXJhdG9yXSgpOyEobz0oYz11Lm5leHQoKSkuZG9uZSk7bz0hMCl7dmFyIGQ9Yy52YWx1ZTt0LmNoaWxkcmVuW2RdfHwodC5jaGlsZHJlbltkXT17dmFsdWU6dm9pZCAwLGNoaWxkcmVuOnt9fSksdD10LmNoaWxkcmVuW2RdfX1jYXRjaChlKXtsPSEwLHM9ZX1maW5hbGx5e3RyeXtvfHxudWxsPT11LnJldHVybnx8dS5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgc319dC52YWx1ZT1lLGE9bzQoe30sYSksaSgpfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dmFyIHQ9YSxyPW4oZSksbD1bXSxzPSEwLGM9ITAsdT0hMSxkPXZvaWQgMDt0cnl7Zm9yKHZhciBmLHA9cltTeW1ib2wuaXRlcmF0b3JdKCk7IShjPShmPXAubmV4dCgpKS5kb25lKTtjPSEwKXt2YXIgaD1mLnZhbHVlO2lmKCF0LmNoaWxkcmVuW2hdKXtzPSExO2JyZWFrfWwucHVzaCh0KSx0PXQuY2hpbGRyZW5baF19fWNhdGNoKGUpe3U9ITAsZD1lfWZpbmFsbHl7dHJ5e2N8fG51bGw9PXAucmV0dXJufHxwLnJldHVybigpfWZpbmFsbHl7aWYodSl0aHJvdyBkfX1pZihzJiZvKHQudmFsdWUsZSkpe3QudmFsdWU9dm9pZCAwO2Zvcih2YXIgbT1sLmxlbmd0aC0xO20+PTA7bS0tKXt2YXIgZz1sW21dLHk9clttXTswPT09T2JqZWN0LmtleXMoZy5jaGlsZHJlblt5XS5jaGlsZHJlbikubGVuZ3RoJiZkZWxldGUgZy5jaGlsZHJlblt5XX1hPW80KHt9LGEpLGkoKX19LGdldFJvb3Q6ZnVuY3Rpb24oKXtyZXR1cm4gYX19fSh7Y29tcGFyZTpmdW5jdGlvbihlLHQpe3JldHVybiEhZSYmISF0JiZlLnBhZ2VQYXRoPT09dC5wYWdlUGF0aCYmZS50eXBlPT09dC50eXBlJiZlLmJvdW5kYXJ5VHlwZT09PXQuYm91bmRhcnlUeXBlfSxnZXRDaGFyYWN0ZXJzOmZ1bmN0aW9uKGUpe3JldHVybiBlLnBhZ2VQYXRoLnNwbGl0KFwiL1wiKX19KSxhZT1vNy5pbnNlcnQsYXQ9bzcucmVtb3ZlLGFuPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9vdmVydmlldy9zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIuY3NzXCIpLGFyPXt9O2FyLnN0eWxlVGFnVHJhbnNmb3JtPWgoKSxhci5zZXRBdHRyaWJ1dGVzPXUoKSxhci5pbnNlcnQ9cygpLGFyLmRvbUFQST1pKCksYXIuaW5zZXJ0U3R5bGVFbGVtZW50PWYoKSxvKCkoYW4uWixhciksYW4uWiYmYW4uWi5sb2NhbHMmJmFuLloubG9jYWxzO2xldCBhbz17fTtmdW5jdGlvbiBhYShlLHQpe2xldCBuPXgudXNlUmVmKGFvKTtyZXR1cm4gbi5jdXJyZW50PT09YW8mJihuLmN1cnJlbnQ9ZSh0KSksbn1sZXQgYWk9W107ZnVuY3Rpb24gYWwoZSl7eC51c2VFZmZlY3QoZSxhaSl9Y2xhc3MgYXN7c3RhdGljIGNyZWF0ZSgpe3JldHVybiBuZXcgYXN9Y3VycmVudElkPTA7c3RhcnQoZSx0KXt0aGlzLmNsZWFyKCksdGhpcy5jdXJyZW50SWQ9c2V0VGltZW91dCgoKT0+e3RoaXMuY3VycmVudElkPTAsdCgpfSxlKX1pc1N0YXJ0ZWQoKXtyZXR1cm4gMCE9PXRoaXMuY3VycmVudElkfWNsZWFyPSgpPT57MCE9PXRoaXMuY3VycmVudElkJiYoY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudElkKSx0aGlzLmN1cnJlbnRJZD0wKX07ZGlzcG9zZUVmZmVjdD0oKT0+dGhpcy5jbGVhcn1mdW5jdGlvbiBhYygpe2xldCBlPWFhKGFzLmNyZWF0ZSkuY3VycmVudDtyZXR1cm4gYWwoZS5kaXNwb3NlRWZmZWN0KSxlfWxldCBhdT13W2B1c2VJbnNlcnRpb25FZmZlY3Qke01hdGgucmFuZG9tKCkudG9GaXhlZCgxKX1gLnNsaWNlKDAsLTMpXSxhZD1hdSYmYXUhPT14LnVzZUxheW91dEVmZmVjdD9hdTplPT5lKCk7ZnVuY3Rpb24gYWYoZSl7bGV0IHQ9YWEoYXApLmN1cnJlbnQ7cmV0dXJuIHQubmV4dD1lLGFkKHQuZWZmZWN0KSx0LnRyYW1wb2xpbmV9ZnVuY3Rpb24gYXAoKXtsZXQgZT17bmV4dDp2b2lkIDAsY2FsbGJhY2s6YWgsdHJhbXBvbGluZTooLi4udCk9PmUuY2FsbGJhY2s/LiguLi50KSxlZmZlY3Q6KCk9PntlLmNhbGxiYWNrPWUubmV4dH19O3JldHVybiBlfWZ1bmN0aW9uIGFoKCl7fWZ1bmN0aW9uIGFtKHtjb250cm9sbGVkOmUsZGVmYXVsdDp0LG5hbWU6bixzdGF0ZTpyPVwidmFsdWVcIn0pe2xldHtjdXJyZW50Om99PXgudXNlUmVmKHZvaWQgMCE9PWUpLFthLGldPXgudXNlU3RhdGUodCksbD14LnVzZUNhbGxiYWNrKGU9PntvfHxpKGUpfSxbXSk7cmV0dXJuW28/ZTphLGxdfWxldCBhZz17Li4ud30sYXk9MCxhdj1hZy51c2VJZDtmdW5jdGlvbiBhYihlLHQpe2lmKHZvaWQgMCE9PWF2KXtsZXQgbj1hdigpO3JldHVybiBlPz8odD9gJHt0fS0ke259YDpuKX1yZXR1cm4gZnVuY3Rpb24oZSx0PVwibXVpXCIpe2xldFtuLHJdPXgudXNlU3RhdGUoZSksbz1lfHxuO3JldHVybiB4LnVzZUVmZmVjdCgoKT0+e251bGw9PW4mJihheSs9MSxyKGAke3R9LSR7YXl9YCkpfSxbbix0XSksb30oZSx0KX1mdW5jdGlvbiBhQSgpe2xldCBlPW5ldyBNYXA7cmV0dXJue2VtaXQodCxuKXtlLmdldCh0KT8uZm9yRWFjaChlPT5lKG4pKX0sb24odCxuKXtlLmhhcyh0KXx8ZS5zZXQodCxuZXcgU2V0KSxlLmdldCh0KS5hZGQobil9LG9mZih0LG4pe2UuZ2V0KHQpPy5kZWxldGUobil9fX1sZXQgYXg9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50P3gudXNlTGF5b3V0RWZmZWN0OigpPT57fSxhdz14LmNyZWF0ZUNvbnRleHQobnVsbCksYUM9eC5jcmVhdGVDb250ZXh0KG51bGwpLGFfPSgpPT54LnVzZUNvbnRleHQoYXcpPy5pZHx8bnVsbCxhaz0oKT0+eC51c2VDb250ZXh0KGFDKTtmdW5jdGlvbiBhRShlKXtsZXR7Y2hpbGRyZW46dCxpZDpufT1lLHI9YV8oKTtyZXR1cm4oMCxiLmpzeCkoYXcuUHJvdmlkZXIse3ZhbHVlOngudXNlTWVtbygoKT0+KHtpZDpuLHBhcmVudElkOnJ9KSxbbixyXSksY2hpbGRyZW46dH0pfWZ1bmN0aW9uIGFqKGUpe2xldHtjaGlsZHJlbjp0fT1lLG49eC51c2VSZWYoW10pLHI9eC51c2VDYWxsYmFjayhlPT57bi5jdXJyZW50PVsuLi5uLmN1cnJlbnQsZV19LFtdKSxvPXgudXNlQ2FsbGJhY2soZT0+e24uY3VycmVudD1uLmN1cnJlbnQuZmlsdGVyKHQ9PnQhPT1lKX0sW10pLFthXT14LnVzZVN0YXRlKCgpPT5hQSgpKTtyZXR1cm4oMCxiLmpzeCkoYUMuUHJvdmlkZXIse3ZhbHVlOngudXNlTWVtbygoKT0+KHtub2Rlc1JlZjpuLGFkZE5vZGU6cixyZW1vdmVOb2RlOm8sZXZlbnRzOmF9KSxbcixvLGFdKSxjaGlsZHJlbjp0fSl9ZnVuY3Rpb24gYVMoZSl7bGV0e29wZW46dD0hMSxvbk9wZW5DaGFuZ2U6bixlbGVtZW50czpyfT1lLG89YWIoKSxhPXgudXNlUmVmKHt9KSxbaV09eC51c2VTdGF0ZSgoKT0+YUEoKSksbD1udWxsIT1hXygpLFtzLGNdPXgudXNlU3RhdGUoci5yZWZlcmVuY2UpLHU9YWYoKGUsdCxyKT0+e2EuY3VycmVudC5vcGVuRXZlbnQ9ZT90OnZvaWQgMCxpLmVtaXQoXCJvcGVuY2hhbmdlXCIse29wZW46ZSxldmVudDp0LHJlYXNvbjpyLG5lc3RlZDpsfSksbj8uKGUsdCxyKX0pLGQ9eC51c2VNZW1vKCgpPT4oe3NldFBvc2l0aW9uUmVmZXJlbmNlOmN9KSxbXSksZj14LnVzZU1lbW8oKCk9Pih7cmVmZXJlbmNlOnN8fHIucmVmZXJlbmNlfHxudWxsLGZsb2F0aW5nOnIuZmxvYXRpbmd8fG51bGwsZG9tUmVmZXJlbmNlOnIucmVmZXJlbmNlfSksW3Msci5yZWZlcmVuY2Usci5mbG9hdGluZ10pO3JldHVybiB4LnVzZU1lbW8oKCk9Pih7ZGF0YVJlZjphLG9wZW46dCxvbk9wZW5DaGFuZ2U6dSxlbGVtZW50czpmLGV2ZW50czppLGZsb2F0aW5nSWQ6byxyZWZzOmR9KSxbdCx1LGYsaSxvLGRdKX1mdW5jdGlvbiBhTygpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3d9ZnVuY3Rpb24gYUIoZSl7cmV0dXJuIGF6KGUpPyhlLm5vZGVOYW1lfHxcIlwiKS50b0xvd2VyQ2FzZSgpOlwiI2RvY3VtZW50XCJ9ZnVuY3Rpb24gYVAoZSl7dmFyIHQ7cmV0dXJuKG51bGw9PWV8fG51bGw9PSh0PWUub3duZXJEb2N1bWVudCk/dm9pZCAwOnQuZGVmYXVsdFZpZXcpfHx3aW5kb3d9ZnVuY3Rpb24gYUkoZSl7dmFyIHQ7cmV0dXJuIG51bGw9PSh0PShheihlKT9lLm93bmVyRG9jdW1lbnQ6ZS5kb2N1bWVudCl8fHdpbmRvdy5kb2N1bWVudCk/dm9pZCAwOnQuZG9jdW1lbnRFbGVtZW50fWZ1bmN0aW9uIGF6KGUpe3JldHVybiEhYU8oKSYmKGUgaW5zdGFuY2VvZiBOb2RlfHxlIGluc3RhbmNlb2YgYVAoZSkuTm9kZSl9ZnVuY3Rpb24gYVQoZSl7cmV0dXJuISFhTygpJiYoZSBpbnN0YW5jZW9mIEVsZW1lbnR8fGUgaW5zdGFuY2VvZiBhUChlKS5FbGVtZW50KX1mdW5jdGlvbiBhRChlKXtyZXR1cm4hIWFPKCkmJihlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnR8fGUgaW5zdGFuY2VvZiBhUChlKS5IVE1MRWxlbWVudCl9ZnVuY3Rpb24gYUwoZSl7cmV0dXJuISFhTygpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU2hhZG93Um9vdCYmKGUgaW5zdGFuY2VvZiBTaGFkb3dSb290fHxlIGluc3RhbmNlb2YgYVAoZSkuU2hhZG93Um9vdCl9bGV0IGFOPW5ldyBTZXQoW1wiaW5saW5lXCIsXCJjb250ZW50c1wiXSk7ZnVuY3Rpb24gYVIoZSl7bGV0e292ZXJmbG93OnQsb3ZlcmZsb3dYOm4sb3ZlcmZsb3dZOnIsZGlzcGxheTpvfT1hSyhlKTtyZXR1cm4vYXV0b3xzY3JvbGx8b3ZlcmxheXxoaWRkZW58Y2xpcC8udGVzdCh0K3IrbikmJiFhTi5oYXMobyl9bGV0IGFNPW5ldyBTZXQoW1widGFibGVcIixcInRkXCIsXCJ0aFwiXSksYVo9W1wiOnBvcG92ZXItb3BlblwiLFwiOm1vZGFsXCJdO2Z1bmN0aW9uIGFVKGUpe3JldHVybiBhWi5zb21lKHQ9Pnt0cnl7cmV0dXJuIGUubWF0Y2hlcyh0KX1jYXRjaChlKXtyZXR1cm4hMX19KX1sZXQgYUY9W1widHJhbnNmb3JtXCIsXCJ0cmFuc2xhdGVcIixcInNjYWxlXCIsXCJyb3RhdGVcIixcInBlcnNwZWN0aXZlXCJdLGFxPVtcInRyYW5zZm9ybVwiLFwidHJhbnNsYXRlXCIsXCJzY2FsZVwiLFwicm90YXRlXCIsXCJwZXJzcGVjdGl2ZVwiLFwiZmlsdGVyXCJdLGFIPVtcInBhaW50XCIsXCJsYXlvdXRcIixcInN0cmljdFwiLFwiY29udGVudFwiXTtmdW5jdGlvbiBhVihlKXtsZXQgdD1hJCgpLG49YVQoZSk/YUsoZSk6ZTtyZXR1cm4gYUYuc29tZShlPT4hIW5bZV0mJlwibm9uZVwiIT09bltlXSl8fCEhbi5jb250YWluZXJUeXBlJiZcIm5vcm1hbFwiIT09bi5jb250YWluZXJUeXBlfHwhdCYmISFuLmJhY2tkcm9wRmlsdGVyJiZcIm5vbmVcIiE9PW4uYmFja2Ryb3BGaWx0ZXJ8fCF0JiYhIW4uZmlsdGVyJiZcIm5vbmVcIiE9PW4uZmlsdGVyfHxhcS5zb21lKGU9PihuLndpbGxDaGFuZ2V8fFwiXCIpLmluY2x1ZGVzKGUpKXx8YUguc29tZShlPT4obi5jb250YWlufHxcIlwiKS5pbmNsdWRlcyhlKSl9ZnVuY3Rpb24gYSQoKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2YgQ1NTJiYhIUNTUy5zdXBwb3J0cyYmQ1NTLnN1cHBvcnRzKFwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXJcIixcIm5vbmVcIil9bGV0IGFXPW5ldyBTZXQoW1wiaHRtbFwiLFwiYm9keVwiLFwiI2RvY3VtZW50XCJdKTtmdW5jdGlvbiBhWShlKXtyZXR1cm4gYVcuaGFzKGFCKGUpKX1mdW5jdGlvbiBhSyhlKXtyZXR1cm4gYVAoZSkuZ2V0Q29tcHV0ZWRTdHlsZShlKX1mdW5jdGlvbiBhWChlKXtyZXR1cm4gYVQoZSk/e3Njcm9sbExlZnQ6ZS5zY3JvbGxMZWZ0LHNjcm9sbFRvcDplLnNjcm9sbFRvcH06e3Njcm9sbExlZnQ6ZS5zY3JvbGxYLHNjcm9sbFRvcDplLnNjcm9sbFl9fWZ1bmN0aW9uIGFHKGUpe2lmKFwiaHRtbFwiPT09YUIoZSkpcmV0dXJuIGU7bGV0IHQ9ZS5hc3NpZ25lZFNsb3R8fGUucGFyZW50Tm9kZXx8YUwoZSkmJmUuaG9zdHx8YUkoZSk7cmV0dXJuIGFMKHQpP3QuaG9zdDp0fWZ1bmN0aW9uIGFRKGUsdCxuKXt2YXIgcjt2b2lkIDA9PT10JiYodD1bXSksdm9pZCAwPT09biYmKG49ITApO2xldCBvPWZ1bmN0aW9uIGUodCl7bGV0IG49YUcodCk7cmV0dXJuIGFZKG4pP3Qub3duZXJEb2N1bWVudD90Lm93bmVyRG9jdW1lbnQuYm9keTp0LmJvZHk6YUQobikmJmFSKG4pP246ZShuKX0oZSksYT1vPT09KG51bGw9PShyPWUub3duZXJEb2N1bWVudCk/dm9pZCAwOnIuYm9keSksaT1hUChvKTtpZihhKXtsZXQgZT1hSihpKTtyZXR1cm4gdC5jb25jYXQoaSxpLnZpc3VhbFZpZXdwb3J0fHxbXSxhUihvKT9vOltdLGUmJm4/YVEoZSk6W10pfXJldHVybiB0LmNvbmNhdChvLGFRKG8sW10sbikpfWZ1bmN0aW9uIGFKKGUpe3JldHVybiBlLnBhcmVudCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKGUucGFyZW50KT9lLmZyYW1lRWxlbWVudDpudWxsfWZ1bmN0aW9uIGEwKGUpe2xldCB0PWFhKGExLGUpLmN1cnJlbnQ7cmV0dXJuIHQubmV4dD1lLGF4KHQuZWZmZWN0KSx0fWZ1bmN0aW9uIGExKGUpe2xldCB0PXtjdXJyZW50OmUsbmV4dDplLGVmZmVjdDooKT0+e3QuY3VycmVudD10Lm5leHR9fTtyZXR1cm4gdH1sZXQgYTI9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG5hdmlnYXRvcixhND1mdW5jdGlvbigpe2lmKCFhMilyZXR1cm57cGxhdGZvcm06XCJcIixtYXhUb3VjaFBvaW50czotMX07bGV0IGU9bmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7cmV0dXJuIGU/LnBsYXRmb3JtP3twbGF0Zm9ybTplLnBsYXRmb3JtLG1heFRvdWNoUG9pbnRzOm5hdmlnYXRvci5tYXhUb3VjaFBvaW50c306e3BsYXRmb3JtOm5hdmlnYXRvci5wbGF0Zm9ybT8/XCJcIixtYXhUb3VjaFBvaW50czpuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM/Py0xfX0oKSxhNT1mdW5jdGlvbigpe2lmKCFhMilyZXR1cm5cIlwiO2xldCBlPW5hdmlnYXRvci51c2VyQWdlbnREYXRhO3JldHVybiBlPy5wbGF0Zm9ybT9lLnBsYXRmb3JtOm5hdmlnYXRvci5wbGF0Zm9ybT8/XCJcIn0oKSxhMz1mdW5jdGlvbigpe2lmKCFhMilyZXR1cm5cIlwiO2xldCBlPW5hdmlnYXRvci51c2VyQWdlbnREYXRhO3JldHVybiBlJiZBcnJheS5pc0FycmF5KGUuYnJhbmRzKT9lLmJyYW5kcy5tYXAoKHticmFuZDplLHZlcnNpb246dH0pPT5gJHtlfS8ke3R9YCkuam9pbihcIiBcIik6bmF2aWdhdG9yLnVzZXJBZ2VudH0oKSxhNj1cInVuZGVmaW5lZFwiIT10eXBlb2YgQ1NTJiYhIUNTUy5zdXBwb3J0cyYmQ1NTLnN1cHBvcnRzKFwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZVwiKSxhOT1cIk1hY0ludGVsXCI9PT1hNC5wbGF0Zm9ybSYmYTQubWF4VG91Y2hQb2ludHM+MXx8L2lQKGhvbmV8YWR8b2QpfGlPUy8udGVzdChhNC5wbGF0Zm9ybSk7YTImJi9maXJlZm94L2kudGVzdChhMyk7bGV0IGE4PWEyJiYvYXBwbGUvaS50ZXN0KG5hdmlnYXRvci52ZW5kb3IpLGE3PWEyJiYvYW5kcm9pZC9pLnRlc3QoYTUpfHwvYW5kcm9pZC9pLnRlc3QoYTMpLGllPWEyJiZhNS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJtYWNcIikmJiFuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMsaXQ9YTMuaW5jbHVkZXMoXCJqc2RvbS9cIik7ZnVuY3Rpb24gaXIoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gaW8oZSl7cmV0dXJuIDA9PT1lLm1veklucHV0U291cmNlJiYhIWUuaXNUcnVzdGVkfHwoYTcmJmUucG9pbnRlclR5cGU/XCJjbGlja1wiPT09ZS50eXBlJiYxPT09ZS5idXR0b25zOjA9PT1lLmRldGFpbCYmIWUucG9pbnRlclR5cGUpfWZ1bmN0aW9uIGlhKGUpe3JldHVybiFpdCYmKCFhNyYmMD09PWUud2lkdGgmJjA9PT1lLmhlaWdodHx8YTcmJjE9PT1lLndpZHRoJiYxPT09ZS5oZWlnaHQmJjA9PT1lLnByZXNzdXJlJiYwPT09ZS5kZXRhaWwmJlwibW91c2VcIj09PWUucG9pbnRlclR5cGV8fGUud2lkdGg8MSYmZS5oZWlnaHQ8MSYmMD09PWUucHJlc3N1cmUmJjA9PT1lLmRldGFpbCYmXCJ0b3VjaFwiPT09ZS5wb2ludGVyVHlwZSl9ZnVuY3Rpb24gaWkoZSx0KXtsZXQgbj1bXCJtb3VzZVwiLFwicGVuXCJdO3JldHVybiB0fHxuLnB1c2goXCJcIix2b2lkIDApLG4uaW5jbHVkZXMoZSl9bGV0IGlsPVwiZGF0YS1iYXNlLXVpLWZvY3VzYWJsZVwiLGlzPVwiYWN0aXZlXCIsaWM9XCJzZWxlY3RlZFwiLGl1PVwiQXJyb3dMZWZ0XCIsaWQ9XCJBcnJvd1JpZ2h0XCIsaXA9XCJBcnJvd1VwXCIsaWg9XCJBcnJvd0Rvd25cIjtmdW5jdGlvbiBpbShlKXtsZXQgdD1lLmFjdGl2ZUVsZW1lbnQ7Zm9yKDt0Py5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT1udWxsOyl0PXQuc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O3JldHVybiB0fWZ1bmN0aW9uIGlnKGUsdCl7aWYoIWV8fCF0KXJldHVybiExO2xldCBuPXQuZ2V0Um9vdE5vZGU/LigpO2lmKGUuY29udGFpbnModCkpcmV0dXJuITA7aWYobiYmYUwobikpe2xldCBuPXQ7Zm9yKDtuOyl7aWYoZT09PW4pcmV0dXJuITA7bj1uLnBhcmVudE5vZGV8fG4uaG9zdH19cmV0dXJuITF9ZnVuY3Rpb24gaXkoZSl7cmV0dXJuXCJjb21wb3NlZFBhdGhcImluIGU/ZS5jb21wb3NlZFBhdGgoKVswXTplLnRhcmdldH1mdW5jdGlvbiBpdihlLHQpe3JldHVybiBudWxsIT10JiYoXCJjb21wb3NlZFBhdGhcImluIGU/ZS5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyh0KTpudWxsIT1lLnRhcmdldCYmdC5jb250YWlucyhlLnRhcmdldCkpfWZ1bmN0aW9uIGliKGUpe3JldHVybiBlPy5vd25lckRvY3VtZW50fHxkb2N1bWVudH1mdW5jdGlvbiBpQShlKXtyZXR1cm4gYUQoZSkmJmUubWF0Y2hlcyhcImlucHV0Om5vdChbdHlwZT0naGlkZGVuJ10pOm5vdChbZGlzYWJsZWRdKSxbY29udGVudGVkaXRhYmxlXTpub3QoW2NvbnRlbnRlZGl0YWJsZT0nZmFsc2UnXSksdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pXCIpfWZ1bmN0aW9uIGl4KGUpe3JldHVybiEhZSYmXCJjb21ib2JveFwiPT09ZS5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpJiZpQShlKX1mdW5jdGlvbiBpdyhlKXtyZXR1cm4gZT9lLmhhc0F0dHJpYnV0ZShpbCk/ZTplLnF1ZXJ5U2VsZWN0b3IoYFske2lsfV1gKXx8ZTpudWxsfWZ1bmN0aW9uIGlDKGUpe3JldHVybmBkYXRhLWJhc2UtdWktJHtlfWB9bGV0IGlfPWlDKFwic2FmZS1wb2x5Z29uXCIpO2Z1bmN0aW9uIGlrKGUsdCxuKXtpZihuJiYhaWkobikpcmV0dXJuIDA7aWYoXCJudW1iZXJcIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZSl7bGV0IG49ZSgpO3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiBuP246bj8uW3RdfXJldHVybiBlPy5bdF19ZnVuY3Rpb24gaUUoZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lKCk6ZX1mdW5jdGlvbiBpaihlLHQ9e30pe2xldHtvcGVuOm4sb25PcGVuQ2hhbmdlOnIsZGF0YVJlZjpvLGV2ZW50czphLGVsZW1lbnRzOml9PWUse2VuYWJsZWQ6bD0hMCxkZWxheTpzPTAsaGFuZGxlQ2xvc2U6Yz1udWxsLG1vdXNlT25seTp1PSExLHJlc3RNczpkPTAsbW92ZTpmPSEwfT10LHA9YWsoKSxoPWFfKCksbT1hMChjKSxnPWEwKHMpLHk9YTAobiksdj1hMChkKSxiPXgudXNlUmVmKHZvaWQgMCksQT1hYygpLHc9eC51c2VSZWYodm9pZCAwKSxDPWFjKCksXz14LnVzZVJlZighMCksaz14LnVzZVJlZighMSksRT14LnVzZVJlZigoKT0+e30pLGo9eC51c2VSZWYoITEpLFM9YWYoKCk9PntsZXQgZT1vLmN1cnJlbnQub3BlbkV2ZW50Py50eXBlO3JldHVybiBlPy5pbmNsdWRlcyhcIm1vdXNlXCIpJiZcIm1vdXNlZG93blwiIT09ZX0pO3gudXNlRWZmZWN0KCgpPT57aWYobClyZXR1cm4gYS5vbihcIm9wZW5jaGFuZ2VcIixlKSwoKT0+e2Eub2ZmKFwib3BlbmNoYW5nZVwiLGUpfTtmdW5jdGlvbiBlKHtvcGVuOmV9KXtlfHwoQS5jbGVhcigpLEMuY2xlYXIoKSxfLmN1cnJlbnQ9ITAsai5jdXJyZW50PSExKX19LFtsLGEsQSxDXSkseC51c2VFZmZlY3QoKCk9PntpZighbHx8IW0uY3VycmVudHx8IW4pcmV0dXJuO2Z1bmN0aW9uIGUoZSl7UygpJiZyKCExLGUsXCJob3ZlclwiKX1sZXQgdD1pYihpLmZsb2F0aW5nKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixlKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixlKX19LFtpLmZsb2F0aW5nLG4scixsLG0sU10pO2xldCBPPXgudXNlQ2FsbGJhY2soKGUsdD0hMCxuPVwiaG92ZXJcIik9PntsZXQgbz1payhnLmN1cnJlbnQsXCJjbG9zZVwiLGIuY3VycmVudCk7byYmIXcuY3VycmVudD9BLnN0YXJ0KG8sKCk9PnIoITEsZSxuKSk6dCYmKEEuY2xlYXIoKSxyKCExLGUsbikpfSxbZyxyLEFdKSxCPWFmKCgpPT57RS5jdXJyZW50KCksdy5jdXJyZW50PXZvaWQgMH0pLFA9YWYoKCk9PntpZihrLmN1cnJlbnQpe2xldCBlPWliKGkuZmxvYXRpbmcpLmJvZHk7ZS5zdHlsZS5wb2ludGVyRXZlbnRzPVwiXCIsZS5yZW1vdmVBdHRyaWJ1dGUoaV8pLGsuY3VycmVudD0hMX19KSxJPWFmKCgpPT4hIW8uY3VycmVudC5vcGVuRXZlbnQmJltcImNsaWNrXCIsXCJtb3VzZWRvd25cIl0uaW5jbHVkZXMoby5jdXJyZW50Lm9wZW5FdmVudC50eXBlKSk7eC51c2VFZmZlY3QoKCk9PntpZihsJiZhVChpLmRvbVJlZmVyZW5jZSkpe2xldCByPWkuZG9tUmVmZXJlbmNlLG89aS5mbG9hdGluZztyZXR1cm4gbiYmci5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLGEpLGYmJnIuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGUse29uY2U6ITB9KSxyLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsZSksci5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLHQpLG8mJihvLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYSksby5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLHMpLG8uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixjKSksKCk9PntuJiZyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYSksZiYmci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsZSksci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLGUpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIix0KSxvJiYoby5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLGEpLG8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIixzKSxvLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYykpfX1mdW5jdGlvbiBlKGUpe2lmKEEuY2xlYXIoKSxfLmN1cnJlbnQ9ITEsdSYmIWlpKGIuY3VycmVudCl8fGlFKHYuY3VycmVudCk+MCYmIWlrKGcuY3VycmVudCxcIm9wZW5cIikpcmV0dXJuO2xldCB0PWlrKGcuY3VycmVudCxcIm9wZW5cIixiLmN1cnJlbnQpO3Q/QS5zdGFydCh0LCgpPT57eS5jdXJyZW50fHxyKCEwLGUsXCJob3ZlclwiKX0pOm58fHIoITAsZSxcImhvdmVyXCIpfWZ1bmN0aW9uIHQoZSl7aWYoSSgpKXJldHVybiB2b2lkIFAoKTtFLmN1cnJlbnQoKTtsZXQgdD1pYihpLmZsb2F0aW5nKTtpZihDLmNsZWFyKCksai5jdXJyZW50PSExLG0uY3VycmVudCYmby5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCl7bnx8QS5jbGVhcigpLHcuY3VycmVudD1tLmN1cnJlbnQoey4uLm8uY3VycmVudC5mbG9hdGluZ0NvbnRleHQsdHJlZTpwLHg6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLG9uQ2xvc2UoKXtQKCksQigpLEkoKXx8TyhlLCEwLFwic2FmZS1wb2x5Z29uXCIpfX0pO2xldCByPXcuY3VycmVudDt0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyKSxFLmN1cnJlbnQ9KCk9Pnt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyKX07cmV0dXJufVwidG91Y2hcIj09PWIuY3VycmVudCYmaWcoaS5mbG9hdGluZyxlLnJlbGF0ZWRUYXJnZXQpfHxPKGUpfWZ1bmN0aW9uIGEoZSl7IUkoKSYmby5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCYmbS5jdXJyZW50Py4oey4uLm8uY3VycmVudC5mbG9hdGluZ0NvbnRleHQsdHJlZTpwLHg6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLG9uQ2xvc2UoKXtQKCksQigpLEkoKXx8TyhlKX19KShlKX1mdW5jdGlvbiBzKCl7QS5jbGVhcigpfWZ1bmN0aW9uIGMoZSl7SSgpfHxPKGUsITEpfX0sW2ksbCxlLHUsZixPLEIsUCxyLG4seSxwLGcsbSxvLEksdixBLENdKSxheCgoKT0+e2lmKGwmJm4mJm0uY3VycmVudD8uX19vcHRpb25zPy5ibG9ja1BvaW50ZXJFdmVudHMmJlMoKSl7ay5jdXJyZW50PSEwO2xldCBlPWkuZmxvYXRpbmc7aWYoYVQoaS5kb21SZWZlcmVuY2UpJiZlKXtsZXQgdD1pYihpLmZsb2F0aW5nKS5ib2R5O3Quc2V0QXR0cmlidXRlKGlfLFwiXCIpO2xldCBuPWkuZG9tUmVmZXJlbmNlLHI9cD8ubm9kZXNSZWYuY3VycmVudC5maW5kKGU9PmUuaWQ9PT1oKT8uY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmc7cmV0dXJuIHImJihyLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIiksdC5zdHlsZS5wb2ludGVyRXZlbnRzPVwibm9uZVwiLG4uc3R5bGUucG9pbnRlckV2ZW50cz1cImF1dG9cIixlLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJhdXRvXCIsKCk9Pnt0LnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIixuLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIixlLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJcIn19fX0sW2wsbixoLGkscCxtLFNdKSxheCgoKT0+e258fChiLmN1cnJlbnQ9dm9pZCAwLGouY3VycmVudD0hMSxCKCksUCgpKX0sW24sQixQXSkseC51c2VFZmZlY3QoKCk9PigpPT57QigpLEEuY2xlYXIoKSxDLmNsZWFyKCksUCgpfSxbbCxpLmRvbVJlZmVyZW5jZSxCLFAsQSxDXSk7bGV0IHo9eC51c2VNZW1vKCgpPT57ZnVuY3Rpb24gZShlKXtiLmN1cnJlbnQ9ZS5wb2ludGVyVHlwZX1yZXR1cm57b25Qb2ludGVyRG93bjplLG9uUG9pbnRlckVudGVyOmUsb25Nb3VzZU1vdmUoZSl7bGV0e25hdGl2ZUV2ZW50OnR9PWU7ZnVuY3Rpb24gbygpe18uY3VycmVudHx8eS5jdXJyZW50fHxyKCEwLHQsXCJob3ZlclwiKX0oIXV8fGlpKGIuY3VycmVudCkpJiYhbiYmMCE9PWlFKHYuY3VycmVudCkmJihqLmN1cnJlbnQmJmUubW92ZW1lbnRYKioyK2UubW92ZW1lbnRZKioyPDJ8fChDLmNsZWFyKCksXCJ0b3VjaFwiPT09Yi5jdXJyZW50P28oKTooai5jdXJyZW50PSEwLEMuc3RhcnQoaUUodi5jdXJyZW50KSxvKSkpKX19fSxbdSxyLG4seSx2LENdKTtyZXR1cm4geC51c2VNZW1vKCgpPT5sP3tyZWZlcmVuY2U6en06e30sW2wsel0pfWZ1bmN0aW9uIGlTKGUsdCxuPSEwKXtyZXR1cm4gZS5maWx0ZXIoZT0+ZS5wYXJlbnRJZD09PXQmJighbnx8ZS5jb250ZXh0Py5vcGVuKSkuZmxhdE1hcCh0PT5bdCwuLi5pUyhlLHQuaWQsbildKX1mdW5jdGlvbiBpTyhlLHQpe2xldCBuPVtdLHI9ZS5maW5kKGU9PmUuaWQ9PT10KT8ucGFyZW50SWQ7Zm9yKDtyOyl7bGV0IHQ9ZS5maW5kKGU9PmUuaWQ9PT1yKTtyPXQ/LnBhcmVudElkLHQmJihuPW4uY29uY2F0KHQpKX1yZXR1cm4gbn1mdW5jdGlvbiBpQihlLHQpe2xldFtuLHJdPWUsbz0hMSxhPXQubGVuZ3RoO2ZvcihsZXQgZT0wLGk9YS0xO2U8YTtpPWUrKyl7bGV0W2EsbF09dFtlXXx8WzAsMF0sW3MsY109dFtpXXx8WzAsMF07bD49ciE9Yz49ciYmbjw9KHMtYSkqKHItbCkvKGMtbCkrYSYmKG89IW8pfXJldHVybiBvfWZ1bmN0aW9uIGlQKGU9e30pe2xldHtidWZmZXI6dD0uNSxibG9ja1BvaW50ZXJFdmVudHM6bj0hMSxyZXF1aXJlSW50ZW50OnI9ITB9PWUsbz1uZXcgYXMsYT0hMSxpPW51bGwsbD1udWxsLHM9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHBlcmZvcm1hbmNlP3BlcmZvcm1hbmNlLm5vdygpOjAsYz0oe3g6ZSx5Om4scGxhY2VtZW50OmMsZWxlbWVudHM6dSxvbkNsb3NlOmQsbm9kZUlkOmYsdHJlZTpwfSk9PmZ1bmN0aW9uKGgpe3ZhciBtLGc7ZnVuY3Rpb24geSgpe28uY2xlYXIoKSxkKCl9aWYoby5jbGVhcigpLCF1LmRvbVJlZmVyZW5jZXx8IXUuZmxvYXRpbmd8fG51bGw9PWN8fG51bGw9PWV8fG51bGw9PW4pcmV0dXJuO2xldHtjbGllbnRYOnYsY2xpZW50WTpifT1oLEE9W3YsYl0seD1peShoKSx3PVwibW91c2VsZWF2ZVwiPT09aC50eXBlLEM9aWcodS5mbG9hdGluZyx4KSxfPWlnKHUuZG9tUmVmZXJlbmNlLHgpLGs9dS5kb21SZWZlcmVuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRT11LmZsb2F0aW5nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGo9Yy5zcGxpdChcIi1cIilbMF0sUz1lPkUucmlnaHQtRS53aWR0aC8yLE89bj5FLmJvdHRvbS1FLmhlaWdodC8yLEI9KG09QSxnPWssbVswXT49Zy54JiZtWzBdPD1nLngrZy53aWR0aCYmbVsxXT49Zy55JiZtWzFdPD1nLnkrZy5oZWlnaHQpLFA9RS53aWR0aD5rLndpZHRoLEk9RS5oZWlnaHQ+ay5oZWlnaHQsej0oUD9rOkUpLmxlZnQsVD0oUD9rOkUpLnJpZ2h0LEQ9KEk/azpFKS50b3AsTD0oST9rOkUpLmJvdHRvbTtpZihDJiYoYT0hMCwhdykpcmV0dXJuO2lmKF8mJihhPSExKSxfJiYhdyl7YT0hMDtyZXR1cm59aWYodyYmYVQoaC5yZWxhdGVkVGFyZ2V0KSYmaWcodS5mbG9hdGluZyxoLnJlbGF0ZWRUYXJnZXQpfHxwJiZpUyhwLm5vZGVzUmVmLmN1cnJlbnQsZikuc29tZSgoe2NvbnRleHQ6ZX0pPT5lPy5vcGVuKSlyZXR1cm47aWYoXCJ0b3BcIj09PWomJm4+PWsuYm90dG9tLTF8fFwiYm90dG9tXCI9PT1qJiZuPD1rLnRvcCsxfHxcImxlZnRcIj09PWomJmU+PWsucmlnaHQtMXx8XCJyaWdodFwiPT09aiYmZTw9ay5sZWZ0KzEpcmV0dXJuIHkoKTtsZXQgTj1bXTtzd2l0Y2goail7Y2FzZVwidG9wXCI6Tj1bW3osay50b3ArMV0sW3osRS5ib3R0b20tMV0sW1QsRS5ib3R0b20tMV0sW1Qsay50b3ArMV1dO2JyZWFrO2Nhc2VcImJvdHRvbVwiOk49W1t6LEUudG9wKzFdLFt6LGsuYm90dG9tLTFdLFtULGsuYm90dG9tLTFdLFtULEUudG9wKzFdXTticmVhaztjYXNlXCJsZWZ0XCI6Tj1bW0UucmlnaHQtMSxMXSxbRS5yaWdodC0xLERdLFtrLmxlZnQrMSxEXSxbay5sZWZ0KzEsTF1dO2JyZWFrO2Nhc2VcInJpZ2h0XCI6Tj1bW2sucmlnaHQtMSxMXSxbay5yaWdodC0xLERdLFtFLmxlZnQrMSxEXSxbRS5sZWZ0KzEsTF1dfWlmKCFpQihbdixiXSxOKSl7aWYoYSYmIUIpcmV0dXJuIHkoKTtpZighdyYmcil7bGV0IGU9ZnVuY3Rpb24oZSx0KXtsZXQgbj1wZXJmb3JtYW5jZS5ub3coKSxyPW4tcztpZihudWxsPT09aXx8bnVsbD09PWx8fDA9PT1yKXJldHVybiBpPWUsbD10LHM9bixudWxsO2xldCBvPWUtaSxhPXQtbCxjPU1hdGguc3FydChvKm8rYSphKTtyZXR1cm4gaT1lLGw9dCxzPW4sYy9yfShoLmNsaWVudFgsaC5jbGllbnRZKTtpZihudWxsIT09ZSYmZTwuMSlyZXR1cm4geSgpfWlCKFt2LGJdLGZ1bmN0aW9uKFtlLG5dKXtzd2l0Y2goail7Y2FzZVwidG9wXCI6e2xldCByPVtbRS5sZWZ0LFN8fFA/RS5ib3R0b20tdDpFLnRvcF0sW0UucmlnaHQsUz9QP0UuYm90dG9tLXQ6RS50b3A6RS5ib3R0b20tdF1dO3JldHVybltbUD9lK3QvMjpTP2UrNCp0OmUtNCp0LG4rdCsxXSxbUD9lLXQvMjpTP2UrNCp0OmUtNCp0LG4rdCsxXSwuLi5yXX1jYXNlXCJib3R0b21cIjp7bGV0IHI9W1tFLmxlZnQsU3x8UD9FLnRvcCt0OkUuYm90dG9tXSxbRS5yaWdodCxTP1A/RS50b3ArdDpFLmJvdHRvbTpFLnRvcCt0XV07cmV0dXJuW1tQP2UrdC8yOlM/ZSs0KnQ6ZS00KnQsbi10XSxbUD9lLXQvMjpTP2UrNCp0OmUtNCp0LG4tdF0sLi4ucl19Y2FzZVwibGVmdFwiOnJldHVybltbT3x8ST9FLnJpZ2h0LXQ6RS5sZWZ0LEUudG9wXSxbTz9JP0UucmlnaHQtdDpFLmxlZnQ6RS5yaWdodC10LEUuYm90dG9tXSxbZSt0KzEsST9uK3QvMjpPP24rNCp0Om4tNCp0XSxbZSt0KzEsST9uLXQvMjpPP24rNCp0Om4tNCp0XV07Y2FzZVwicmlnaHRcIjp7bGV0IHI9W1tPfHxJP0UubGVmdCt0OkUucmlnaHQsRS50b3BdLFtPP0k/RS5sZWZ0K3Q6RS5yaWdodDpFLmxlZnQrdCxFLmJvdHRvbV1dO3JldHVybltbZS10LEk/bit0LzI6Tz9uKzQqdDpuLTQqdF0sW2UtdCxJP24tdC8yOk8/bis0KnQ6bi00KnRdLC4uLnJdfWRlZmF1bHQ6cmV0dXJuW119fShbZSxuXSkpPyFhJiZyJiZvLnN0YXJ0KDQwLHkpOnkoKX19O3JldHVybiBjLl9fb3B0aW9ucz17YmxvY2tQb2ludGVyRXZlbnRzOm59LGN9bGV0IGlJPWllJiZhODtmdW5jdGlvbiBpeihlLHQ9e30pe2xldHtvcGVuOm4sb25PcGVuQ2hhbmdlOnIsZXZlbnRzOm8sZGF0YVJlZjphLGVsZW1lbnRzOml9PWUse2VuYWJsZWQ6bD0hMCx2aXNpYmxlT25seTpzPSEwfT10LGM9eC51c2VSZWYoITEpLHU9YWMoKSxkPXgudXNlUmVmKCEwKTt4LnVzZUVmZmVjdCgoKT0+e2lmKCFsKXJldHVybjtsZXQgZT1hUChpLmRvbVJlZmVyZW5jZSk7ZnVuY3Rpb24gdCgpeyFuJiZhRChpLmRvbVJlZmVyZW5jZSkmJmkuZG9tUmVmZXJlbmNlPT09aW0oaWIoaS5kb21SZWZlcmVuY2UpKSYmKGMuY3VycmVudD0hMCl9ZnVuY3Rpb24gcigpe2QuY3VycmVudD0hMH1mdW5jdGlvbiBvKCl7ZC5jdXJyZW50PSExfXJldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsdCksaUkmJihlLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsciwhMCksZS5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixvLCEwKSksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsdCksaUkmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsciwhMCksZS5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixvLCEwKSl9fSxbaS5kb21SZWZlcmVuY2UsbixsXSkseC51c2VFZmZlY3QoKCk9PntpZihsKXJldHVybiBvLm9uKFwib3BlbmNoYW5nZVwiLGUpLCgpPT57by5vZmYoXCJvcGVuY2hhbmdlXCIsZSl9O2Z1bmN0aW9uIGUoe3JlYXNvbjplfSl7KFwicmVmZXJlbmNlLXByZXNzXCI9PT1lfHxcImVzY2FwZS1rZXlcIj09PWUpJiYoYy5jdXJyZW50PSEwKX19LFtvLGxdKTtsZXQgZj14LnVzZU1lbW8oKCk9Pih7b25Nb3VzZUxlYXZlKCl7Yy5jdXJyZW50PSExfSxvbkZvY3VzKGUpe2lmKGMuY3VycmVudClyZXR1cm47bGV0IHQ9aXkoZS5uYXRpdmVFdmVudCk7aWYocyYmYVQodCkpe2lmKGlJJiYhZS5yZWxhdGVkVGFyZ2V0KXtpZighZC5jdXJyZW50JiYhaUEodCkpcmV0dXJufWVsc2UgaWYoIWZ1bmN0aW9uKGUpe2lmKCFlfHxpdClyZXR1cm4hMDt0cnl7cmV0dXJuIGUubWF0Y2hlcyhcIjpmb2N1cy12aXNpYmxlXCIpfWNhdGNoKGUpe3JldHVybiEwfX0odCkpcmV0dXJufXIoITAsZS5uYXRpdmVFdmVudCxcImZvY3VzXCIpfSxvbkJsdXIoZSl7Yy5jdXJyZW50PSExO2xldCB0PWUucmVsYXRlZFRhcmdldCxuPWUubmF0aXZlRXZlbnQsbz1hVCh0KSYmdC5oYXNBdHRyaWJ1dGUoaUMoXCJmb2N1cy1ndWFyZFwiKSkmJlwib3V0c2lkZVwiPT09dC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXR5cGVcIik7dS5zdGFydCgwLCgpPT57bGV0IGU9aW0oaS5kb21SZWZlcmVuY2U/aS5kb21SZWZlcmVuY2Uub3duZXJEb2N1bWVudDpkb2N1bWVudCk7KHR8fGUhPT1pLmRvbVJlZmVyZW5jZSkmJihpZyhhLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5yZWZzLmZsb2F0aW5nLmN1cnJlbnQsZSl8fGlnKGkuZG9tUmVmZXJlbmNlLGUpfHxvfHxyKCExLG4sXCJmb2N1c1wiKSl9KX19KSxbYSxpLmRvbVJlZmVyZW5jZSxyLHMsdV0pO3JldHVybiB4LnVzZU1lbW8oKCk9Pmw/e3JlZmVyZW5jZTpmfTp7fSxbbCxmXSl9Z2xvYmFsVGhpcy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7bGV0IGlUPW5ldyBjbGFzc3tjYWxsYmFja3M9W107Y2FsbGJhY2tzQ291bnQ9MDtuZXh0SWQ9MTtzdGFydElkPTE7aXNTY2hlZHVsZWQ9ITE7dGljaz1lPT57dGhpcy5pc1NjaGVkdWxlZD0hMTtsZXQgdD10aGlzLmNhbGxiYWNrcyxuPXRoaXMuY2FsbGJhY2tzQ291bnQ7aWYodGhpcy5jYWxsYmFja3M9W10sdGhpcy5jYWxsYmFja3NDb3VudD0wLHRoaXMuc3RhcnRJZD10aGlzLm5leHRJZCxuPjApZm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKz0xKXRbbl0/LihlKX07cmVxdWVzdChlKXtsZXQgdD10aGlzLm5leHRJZDtyZXR1cm4gdGhpcy5uZXh0SWQrPTEsdGhpcy5jYWxsYmFja3MucHVzaChlKSx0aGlzLmNhbGxiYWNrc0NvdW50Kz0xLHRoaXMuaXNTY2hlZHVsZWR8fChyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy50aWNrKSx0aGlzLmlzU2NoZWR1bGVkPSEwKSx0fWNhbmNlbChlKXtsZXQgdD1lLXRoaXMuc3RhcnRJZDt0PDB8fHQ+PXRoaXMuY2FsbGJhY2tzLmxlbmd0aHx8KHRoaXMuY2FsbGJhY2tzW3RdPW51bGwsdGhpcy5jYWxsYmFja3NDb3VudC09MSl9fTtjbGFzcyBpRHtzdGF0aWMgY3JlYXRlKCl7cmV0dXJuIG5ldyBpRH1zdGF0aWMgcmVxdWVzdChlKXtyZXR1cm4gaVQucmVxdWVzdChlKX1zdGF0aWMgY2FuY2VsKGUpe3JldHVybiBpVC5jYW5jZWwoZSl9Y3VycmVudElkPW51bGw7cmVxdWVzdChlKXt0aGlzLmNhbmNlbCgpLHRoaXMuY3VycmVudElkPWlULnJlcXVlc3QoKCk9Pnt0aGlzLmN1cnJlbnRJZD1udWxsLGUoKX0pfWNhbmNlbD0oKT0+e251bGwhPT10aGlzLmN1cnJlbnRJZCYmKGlULmNhbmNlbCh0aGlzLmN1cnJlbnRJZCksdGhpcy5jdXJyZW50SWQ9bnVsbCl9O2Rpc3Bvc2VFZmZlY3Q9KCk9PnRoaXMuY2FuY2VsfWZ1bmN0aW9uIGlMKCl7bGV0IGU9YWEoaUQuY3JlYXRlKS5jdXJyZW50O3JldHVybiBhbChlLmRpc3Bvc2VFZmZlY3QpLGV9bGV0IGlOPXtzdHlsZTp7dHJhbnNpdGlvbjpcIm5vbmVcIn19LGlSPXt9LGlNPVtdLGlaPXtmYWxsYmFja0F4aXNTaWRlOlwibm9uZVwifSxpVT17ZmFsbGJhY2tBeGlzU2lkZTpcImVuZFwifSxpRj17aW50ZW50aW9uYWw6XCJvbkNsaWNrXCIsc2xvcHB5Olwib25Qb2ludGVyRG93blwifTtmdW5jdGlvbiBpcShlKXtyZXR1cm57ZXNjYXBlS2V5OlwiYm9vbGVhblwiPT10eXBlb2YgZT9lOmU/LmVzY2FwZUtleT8/ITEsb3V0c2lkZVByZXNzOlwiYm9vbGVhblwiPT10eXBlb2YgZT9lOmU/Lm91dHNpZGVQcmVzcz8/ITB9fWZ1bmN0aW9uIGlIKGUsdD17fSl7bGV0e29wZW46bixvbk9wZW5DaGFuZ2U6cixlbGVtZW50czpvLGRhdGFSZWY6YX09ZSx7ZW5hYmxlZDppPSEwLGVzY2FwZUtleTpsPSEwLG91dHNpZGVQcmVzczpzPSEwLG91dHNpZGVQcmVzc0V2ZW50OmM9XCJzbG9wcHlcIixyZWZlcmVuY2VQcmVzczp1PSExLHJlZmVyZW5jZVByZXNzRXZlbnQ6ZD1cInNsb3BweVwiLGFuY2VzdG9yU2Nyb2xsOmY9ITEsYnViYmxlczpwLGNhcHR1cmU6aH09dCxtPWFrKCksZz1hZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBzP3M6KCk9PiExKSx5PVwiZnVuY3Rpb25cIj09dHlwZW9mIHM/ZzpzLHY9eC51c2VSZWYoITEpLHtlc2NhcGVLZXk6YixvdXRzaWRlUHJlc3M6QX09aXEocCkse2VzY2FwZUtleTp3LG91dHNpZGVQcmVzczpDfT1pcShoKSxfPXgudXNlUmVmKG51bGwpLGs9YWMoKSxFPWFjKCksaj14LnVzZVJlZighMSksUz14LnVzZVJlZihcIlwiKSxPPWFmKGU9PntTLmN1cnJlbnQ9ZS5wb2ludGVyVHlwZX0pLEI9YWYoKCk9PntsZXQgZT1TLmN1cnJlbnQ7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGM/YzpjW1wicGVuXCIhPT1lJiZlP2U6XCJtb3VzZVwiXX0pLFA9YWYoZT0+e2lmKCFufHwhaXx8IWx8fFwiRXNjYXBlXCIhPT1lLmtleXx8ai5jdXJyZW50KXJldHVybjtsZXQgdD1hLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5ub2RlSWQsbz1tP2lTKG0ubm9kZXNSZWYuY3VycmVudCx0KTpbXTtpZighYiYmKGUuc3RvcFByb3BhZ2F0aW9uKCksby5sZW5ndGg+MCkpe2xldCBlPSEwO2lmKG8uZm9yRWFjaCh0PT57dC5jb250ZXh0Py5vcGVuJiYhdC5jb250ZXh0LmRhdGFSZWYuY3VycmVudC5fX2VzY2FwZUtleUJ1YmJsZXMmJihlPSExKX0pLCFlKXJldHVybn1yKCExLFwibmF0aXZlRXZlbnRcImluIGU/ZS5uYXRpdmVFdmVudDplLFwiZXNjYXBlLWtleVwiKX0pLEk9YWYoZT0+e2xldCB0PUIoKTtyZXR1cm5cImludGVudGlvbmFsXCI9PT10JiZcImNsaWNrXCIhPT1lLnR5cGV8fFwic2xvcHB5XCI9PT10JiZcImNsaWNrXCI9PT1lLnR5cGV9KSx6PWFmKGU9PntsZXQgdD0oKT0+e1AoZSksaXkoZSk/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsdCl9O2l5KGUpPy5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHQpfSksVD1hZihlPT57aWYoSShlKSlyZXR1cm47bGV0IHQ9YS5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZTthLmN1cnJlbnQuaW5zaWRlUmVhY3RUcmVlPSExO2xldCBuPXYuY3VycmVudDtpZih2LmN1cnJlbnQ9ITEsXCJpbnRlbnRpb25hbFwiPT09QigpJiZufHx0fHxcImZ1bmN0aW9uXCI9PXR5cGVvZiB5JiYheShlKSlyZXR1cm47bGV0IGk9aXkoZSksbD1gWyR7aUMoXCJpbmVydFwiKX1dYCxzPWliKG8uZmxvYXRpbmcpLnF1ZXJ5U2VsZWN0b3JBbGwobCksYz1hVChpKT9pOm51bGw7Zm9yKDtjJiYhYVkoYyk7KXtsZXQgZT1hRyhjKTtpZihhWShlKXx8IWFUKGUpKWJyZWFrO2M9ZX1pZihzLmxlbmd0aCYmYVQoaSkmJiFpLm1hdGNoZXMoXCJodG1sLGJvZHlcIikmJiFpZyhpLG8uZmxvYXRpbmcpJiZBcnJheS5mcm9tKHMpLmV2ZXJ5KGU9PiFpZyhjLGUpKSlyZXR1cm47aWYoYUQoaSkpe2xldCB0PWFZKGkpLG49YUsoaSkscj0vYXV0b3xzY3JvbGwvLG89dHx8ci50ZXN0KG4ub3ZlcmZsb3dYKSxhPXR8fHIudGVzdChuLm92ZXJmbG93WSksbD1vJiZpLmNsaWVudFdpZHRoPjAmJmkuc2Nyb2xsV2lkdGg+aS5jbGllbnRXaWR0aCxzPWEmJmkuY2xpZW50SGVpZ2h0PjAmJmkuc2Nyb2xsSGVpZ2h0PmkuY2xpZW50SGVpZ2h0LGM9XCJydGxcIj09PW4uZGlyZWN0aW9uLHU9cyYmKGM/ZS5vZmZzZXRYPD1pLm9mZnNldFdpZHRoLWkuY2xpZW50V2lkdGg6ZS5vZmZzZXRYPmkuY2xpZW50V2lkdGgpLGQ9bCYmZS5vZmZzZXRZPmkuY2xpZW50SGVpZ2h0O2lmKHV8fGQpcmV0dXJufWxldCB1PWEuY3VycmVudC5mbG9hdGluZ0NvbnRleHQ/Lm5vZGVJZCxkPW0mJmlTKG0ubm9kZXNSZWYuY3VycmVudCx1KS5zb21lKHQ9Pml2KGUsdC5jb250ZXh0Py5lbGVtZW50cy5mbG9hdGluZykpO2lmKGl2KGUsby5mbG9hdGluZyl8fGl2KGUsby5kb21SZWZlcmVuY2UpfHxkKXJldHVybjtsZXQgZj1tP2lTKG0ubm9kZXNSZWYuY3VycmVudCx1KTpbXTtpZihmLmxlbmd0aD4wKXtsZXQgZT0hMDtpZihmLmZvckVhY2godD0+e3QuY29udGV4dD8ub3BlbiYmIXQuY29udGV4dC5kYXRhUmVmLmN1cnJlbnQuX19vdXRzaWRlUHJlc3NCdWJibGVzJiYoZT0hMSl9KSwhZSlyZXR1cm59cighMSxlLFwib3V0c2lkZS1wcmVzc1wiKX0pLEQ9YWYoZT0+e2lmKCEoXCJzbG9wcHlcIiE9PUIoKXx8IW58fCFpfHxpdihlLG8uZmxvYXRpbmcpfHxpdihlLG8uZG9tUmVmZXJlbmNlKSkpe2lmKFwidG91Y2hcIj09PWUucG9pbnRlclR5cGUpe18uY3VycmVudD17c3RhcnRUaW1lOkRhdGUubm93KCksc3RhcnRYOmUuY2xpZW50WCxzdGFydFk6ZS5jbGllbnRZLGRpc21pc3NPblBvaW50ZXJVcDohMSxkaXNtaXNzT25Nb3VzZURvd246ITB9LGsuc3RhcnQoMWUzLCgpPT57Xy5jdXJyZW50JiYoXy5jdXJyZW50LmRpc21pc3NPblBvaW50ZXJVcD0hMSxfLmN1cnJlbnQuZGlzbWlzc09uTW91c2VEb3duPSExKX0pO3JldHVybn1UKGUpfX0pLEw9YWYoZT0+e2lmKEkoZSl8fChrLmNsZWFyKCksXCJtb3VzZWRvd25cIj09PWUudHlwZSYmXy5jdXJyZW50JiYhXy5jdXJyZW50LmRpc21pc3NPbk1vdXNlRG93bikpcmV0dXJuO2xldCB0PSgpPT57XCJwb2ludGVyZG93blwiPT09ZS50eXBlP0QoZSk6VChlKSxpeShlKT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLnR5cGUsdCl9O2l5KGUpPy5hZGRFdmVudExpc3RlbmVyKGUudHlwZSx0KX0pLE49YWYoZT0+e2lmKFwic2xvcHB5XCIhPT1CKCl8fFwidG91Y2hcIiE9PWUucG9pbnRlclR5cGV8fCFfLmN1cnJlbnR8fGl2KGUsby5mbG9hdGluZyl8fGl2KGUsby5kb21SZWZlcmVuY2UpKXJldHVybjtsZXQgdD1NYXRoLmFicyhlLmNsaWVudFgtXy5jdXJyZW50LnN0YXJ0WCksbj1NYXRoLmFicyhlLmNsaWVudFktXy5jdXJyZW50LnN0YXJ0WSkscj1NYXRoLnNxcnQodCp0K24qbik7cj41JiYoXy5jdXJyZW50LmRpc21pc3NPblBvaW50ZXJVcD0hMCkscj4xMCYmKFQoZSksay5jbGVhcigpLF8uY3VycmVudD1udWxsKX0pLFI9YWYoZT0+e1wic2xvcHB5XCIhPT1CKCl8fFwidG91Y2hcIiE9PWUucG9pbnRlclR5cGV8fCFfLmN1cnJlbnR8fGl2KGUsby5mbG9hdGluZyl8fGl2KGUsby5kb21SZWZlcmVuY2UpfHwoXy5jdXJyZW50LmRpc21pc3NPblBvaW50ZXJVcCYmVChlKSxrLmNsZWFyKCksXy5jdXJyZW50PW51bGwpfSk7eC51c2VFZmZlY3QoKCk9PntpZighbnx8IWkpcmV0dXJuO2EuY3VycmVudC5fX2VzY2FwZUtleUJ1YmJsZXM9YixhLmN1cnJlbnQuX19vdXRzaWRlUHJlc3NCdWJibGVzPUE7bGV0IGU9bmV3IGFzO2Z1bmN0aW9uIHQoZSl7cighMSxlLFwiYW5jZXN0b3Itc2Nyb2xsXCIpfWZ1bmN0aW9uIHMoKXtlLmNsZWFyKCksai5jdXJyZW50PSEwfWZ1bmN0aW9uIGMoKXtlLnN0YXJ0KDUqISFhJCgpLCgpPT57ai5jdXJyZW50PSExfSl9bGV0IHU9aWIoby5mbG9hdGluZyk7dS5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixPLCEwKSxsJiYodS5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHc/ejpQLHcpLHUuYWRkRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uc3RhcnRcIixzKSx1LmFkZEV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLGMpKSx5JiYodS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixDP0w6VCxDKSx1LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLEM/TDpULEMpLHUuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsTixDKSx1LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIixSLEMpLHUuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLEwsQykpO2xldCBkPVtdO3JldHVybiBmJiYoYVQoby5kb21SZWZlcmVuY2UpJiYoZD1hUShvLmRvbVJlZmVyZW5jZSkpLGFUKG8uZmxvYXRpbmcpJiYoZD1kLmNvbmNhdChhUShvLmZsb2F0aW5nKSkpLCFhVChvLnJlZmVyZW5jZSkmJm8ucmVmZXJlbmNlJiZvLnJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCYmKGQ9ZC5jb25jYXQoYVEoby5yZWZlcmVuY2UuY29udGV4dEVsZW1lbnQpKSkpLChkPWQuZmlsdGVyKGU9PmUhPT11LmRlZmF1bHRWaWV3Py52aXN1YWxWaWV3cG9ydCkpLmZvckVhY2goZT0+e2UuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHQse3Bhc3NpdmU6ITB9KX0pLCgpPT57dS5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixPLCEwKSxsJiYodS5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHc/ejpQLHcpLHUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uc3RhcnRcIixzKSx1LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLGMpKSx5JiYodS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIixDP0w6VCxDKSx1LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLEM/TDpULEMpLHUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJtb3ZlXCIsTixDKSx1LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIixSLEMpLHUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLEwsQykpLGQuZm9yRWFjaChlPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdCl9KSxlLmNsZWFyKCl9fSxbYSxvLGwseSxjLG4scixmLGksYixBLFAsdyx6LFQsQyxMLEQsTixSLE9dKSx4LnVzZUVmZmVjdCgoKT0+e2EuY3VycmVudC5pbnNpZGVSZWFjdFRyZWU9ITF9LFthLHldKTtsZXQgTT14LnVzZU1lbW8oKCk9Pih7b25LZXlEb3duOlAsLi4udSYme1tpRltkXV06ZT0+e3IoITEsZS5uYXRpdmVFdmVudCxcInJlZmVyZW5jZS1wcmVzc1wiKX0sLi4uXCJpbnRlbnRpb25hbFwiIT09ZCYme29uQ2xpY2soZSl7cighMSxlLm5hdGl2ZUV2ZW50LFwicmVmZXJlbmNlLXByZXNzXCIpfX19fSksW1Ascix1LGRdKSxaPWFmKGU9PntsZXQgdD1peShlLm5hdGl2ZUV2ZW50KTtpZyhvLmZsb2F0aW5nLHQpJiYodi5jdXJyZW50PSEwKX0pLFU9YWYoKCk9PnthLmN1cnJlbnQuaW5zaWRlUmVhY3RUcmVlPSEwLEUuc3RhcnQoMCwoKT0+e2EuY3VycmVudC5pbnNpZGVSZWFjdFRyZWU9ITF9KX0pLEY9eC51c2VNZW1vKCgpPT4oe29uS2V5RG93bjpQLG9uTW91c2VEb3duOlosb25Nb3VzZVVwOlosb25Qb2ludGVyRG93bkNhcHR1cmU6VSxvbk1vdXNlRG93bkNhcHR1cmU6VSxvbkNsaWNrQ2FwdHVyZTpVfSksW1AsWixVXSk7cmV0dXJuIHgudXNlTWVtbygoKT0+aT97cmVmZXJlbmNlOk0sZmxvYXRpbmc6Rn06e30sW2ksTSxGXSl9bGV0IGlWPW5ldyBNYXAoW1tcInNlbGVjdFwiLFwibGlzdGJveFwiXSxbXCJjb21ib2JveFwiLFwibGlzdGJveFwiXSxbXCJsYWJlbFwiLCExXV0pLGkkPVtcInRvcFwiLFwicmlnaHRcIixcImJvdHRvbVwiLFwibGVmdFwiXSxpVz1NYXRoLm1pbixpWT1NYXRoLm1heCxpSz1NYXRoLnJvdW5kLGlYPU1hdGguZmxvb3IsaUc9ZT0+KHt4OmUseTplfSksaVE9e2xlZnQ6XCJyaWdodFwiLHJpZ2h0OlwibGVmdFwiLGJvdHRvbTpcInRvcFwiLHRvcDpcImJvdHRvbVwifSxpSj17c3RhcnQ6XCJlbmRcIixlbmQ6XCJzdGFydFwifTtmdW5jdGlvbiBpMChlLHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZSh0KTplfWZ1bmN0aW9uIGkxKGUpe3JldHVybiBlLnNwbGl0KFwiLVwiKVswXX1mdW5jdGlvbiBpMihlKXtyZXR1cm4gZS5zcGxpdChcIi1cIilbMV19ZnVuY3Rpb24gaTQoZSl7cmV0dXJuXCJ4XCI9PT1lP1wieVwiOlwieFwifWZ1bmN0aW9uIGk1KGUpe3JldHVyblwieVwiPT09ZT9cImhlaWdodFwiOlwid2lkdGhcIn1sZXQgaTM9bmV3IFNldChbXCJ0b3BcIixcImJvdHRvbVwiXSk7ZnVuY3Rpb24gaTYoZSl7cmV0dXJuIGkzLmhhcyhpMShlKSk/XCJ5XCI6XCJ4XCJ9ZnVuY3Rpb24gaTkoZSl7cmV0dXJuIGUucmVwbGFjZSgvc3RhcnR8ZW5kL2csZT0+aUpbZV0pfWxldCBpOD1bXCJsZWZ0XCIsXCJyaWdodFwiXSxpNz1bXCJyaWdodFwiLFwibGVmdFwiXSxsZT1bXCJ0b3BcIixcImJvdHRvbVwiXSxsdD1bXCJib3R0b21cIixcInRvcFwiXTtmdW5jdGlvbiBsbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZyxlPT5pUVtlXSl9ZnVuY3Rpb24gbHIoZSl7cmV0dXJuXCJudW1iZXJcIiE9dHlwZW9mIGU/e3RvcDowLHJpZ2h0OjAsYm90dG9tOjAsbGVmdDowLC4uLmV9Ont0b3A6ZSxyaWdodDplLGJvdHRvbTplLGxlZnQ6ZX19ZnVuY3Rpb24gbG8oZSl7bGV0e3g6dCx5Om4sd2lkdGg6cixoZWlnaHQ6b309ZTtyZXR1cm57d2lkdGg6cixoZWlnaHQ6byx0b3A6bixsZWZ0OnQscmlnaHQ6dCtyLGJvdHRvbTpuK28seDp0LHk6bn19ZnVuY3Rpb24gbGEoZSx0LG4pe3JldHVybiBNYXRoLmZsb29yKGUvdCkhPT1ufWZ1bmN0aW9uIGxpKGUsdCl7cmV0dXJuIHQ8MHx8dD49ZS5jdXJyZW50Lmxlbmd0aH1mdW5jdGlvbiBsbChlLHQpe3JldHVybiBsYyhlLHtkaXNhYmxlZEluZGljZXM6dH0pfWZ1bmN0aW9uIGxzKGUsdCl7cmV0dXJuIGxjKGUse2RlY3JlbWVudDohMCxzdGFydGluZ0luZGV4OmUuY3VycmVudC5sZW5ndGgsZGlzYWJsZWRJbmRpY2VzOnR9KX1mdW5jdGlvbiBsYyhlLHtzdGFydGluZ0luZGV4OnQ9LTEsZGVjcmVtZW50Om49ITEsZGlzYWJsZWRJbmRpY2VzOnIsYW1vdW50Om89MX09e30pe2xldCBhPXQ7ZG8gYSs9bj8tbzpvO3doaWxlKGE+PTAmJmE8PWUuY3VycmVudC5sZW5ndGgtMSYmbHUoZSxhLHIpKTtyZXR1cm4gYX1mdW5jdGlvbiBsdShlLHQsbil7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgbilyZXR1cm4gbih0KTtpZihuKXJldHVybiBuLmluY2x1ZGVzKHQpO2xldCByPWUuY3VycmVudFt0XTtyZXR1cm4gbnVsbD09cnx8ci5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8XCJ0cnVlXCI9PT1yLmdldEF0dHJpYnV0ZShcImFyaWEtZGlzYWJsZWRcIil9bGV0IGxkPTA7ZnVuY3Rpb24gbGYoZSx0PXt9KXtsZXR7cHJldmVudFNjcm9sbDpuPSExLGNhbmNlbFByZXZpb3VzOnI9ITAsc3luYzpvPSExfT10O3ImJmNhbmNlbEFuaW1hdGlvbkZyYW1lKGxkKTtsZXQgYT0oKT0+ZT8uZm9jdXMoe3ByZXZlbnRTY3JvbGw6bn0pO28/YSgpOmxkPXJlcXVlc3RBbmltYXRpb25GcmFtZShhKX1mdW5jdGlvbiBscChlLHQsbil7c3dpdGNoKGUpe2Nhc2VcInZlcnRpY2FsXCI6cmV0dXJuIHQ7Y2FzZVwiaG9yaXpvbnRhbFwiOnJldHVybiBuO2RlZmF1bHQ6cmV0dXJuIHR8fG59fWZ1bmN0aW9uIGxoKGUsdCl7cmV0dXJuIGxwKHQsZT09PWlwfHxlPT09aWgsZT09PWl1fHxlPT09aWQpfWZ1bmN0aW9uIGxtKGUsdCxuKXtyZXR1cm4gbHAodCxlPT09aWgsbj9lPT09aXU6ZT09PWlkKXx8XCJFbnRlclwiPT09ZXx8XCIgXCI9PT1lfHxcIlwiPT09ZX1mdW5jdGlvbiBsZyhlPVtdKXtsZXQgdD1lLm1hcChlPT5lPy5yZWZlcmVuY2UpLG49ZS5tYXAoZT0+ZT8uZmxvYXRpbmcpLHI9ZS5tYXAoZT0+ZT8uaXRlbSksbz14LnVzZUNhbGxiYWNrKHQ9Pmx5KHQsZSxcInJlZmVyZW5jZVwiKSx0KSxhPXgudXNlQ2FsbGJhY2sodD0+bHkodCxlLFwiZmxvYXRpbmdcIiksbiksaT14LnVzZUNhbGxiYWNrKHQ9Pmx5KHQsZSxcIml0ZW1cIikscik7cmV0dXJuIHgudXNlTWVtbygoKT0+KHtnZXRSZWZlcmVuY2VQcm9wczpvLGdldEZsb2F0aW5nUHJvcHM6YSxnZXRJdGVtUHJvcHM6aX0pLFtvLGEsaV0pfWZ1bmN0aW9uIGx5KGUsdCxuKXtsZXQgcj1uZXcgTWFwLG89XCJpdGVtXCI9PT1uLGE9e307Zm9yKGxldCB0IGluXCJmbG9hdGluZ1wiPT09biYmKGEudGFiSW5kZXg9LTEsYVtpbF09XCJcIiksZSlvJiZlJiYodD09PWlzfHx0PT09aWMpfHwoYVt0XT1lW3RdKTtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krPTEpe2xldCBsLHM9dFtpXT8uW25dOyhsPVwiZnVuY3Rpb25cIj09dHlwZW9mIHM/ZT9zKGUpOm51bGw6cykmJmx2KGEsbCxvLHIpfXJldHVybiBsdihhLGUsbyxyKSxhfWZ1bmN0aW9uIGx2KGUsdCxuLHIpe2ZvcihsZXQgbyBpbiB0KXtsZXQgYT10W29dO24mJihvPT09aXN8fG89PT1pYyl8fChvLnN0YXJ0c1dpdGgoXCJvblwiKT8oci5oYXMobyl8fHIuc2V0KG8sW10pLFwiZnVuY3Rpb25cIj09dHlwZW9mIGEmJihyLmdldChvKT8ucHVzaChhKSxlW29dPSguLi5lKT0+ci5nZXQobyk/Lm1hcCh0PT50KC4uLmUpKS5maW5kKGU9PnZvaWQgMCE9PWUpKSk6ZVtvXT1hKX19bGV0IGxiPXguY3JlYXRlQ29udGV4dCh2b2lkIDApO2Z1bmN0aW9uIGxBKGUpe2xldCB0PXgudXNlQ29udGV4dChsYik7aWYodm9pZCAwPT09dCYmIWUpdGhyb3cgRXJyb3IoXCJCYXNlIFVJOiBNZW51Um9vdENvbnRleHQgaXMgbWlzc2luZy4gTWVudSBwYXJ0cyBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gPE1lbnUuUm9vdD4uXCIpO3JldHVybiB0fWxldCBseD14LmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gbHcoZSx0PSExLG49ITEpe2xldFtyLG9dPXgudXNlU3RhdGUoZSYmdD9cImlkbGVcIjp2b2lkIDApLFthLGldPXgudXNlU3RhdGUoZSk7cmV0dXJuIGUmJiFhJiYoaSghMCksbyhcInN0YXJ0aW5nXCIpKSxlfHwhYXx8XCJlbmRpbmdcIj09PXJ8fG58fG8oXCJlbmRpbmdcIiksZXx8YXx8XCJlbmRpbmdcIiE9PXJ8fG8odm9pZCAwKSxheCgoKT0+e2lmKCFlJiZhJiZcImVuZGluZ1wiIT09ciYmbil7bGV0IGU9aUQucmVxdWVzdCgoKT0+e28oXCJlbmRpbmdcIil9KTtyZXR1cm4oKT0+e2lELmNhbmNlbChlKX19fSxbZSxhLHIsbl0pLGF4KCgpPT57aWYoIWV8fHQpcmV0dXJuO2xldCBuPWlELnJlcXVlc3QoKCk9PntlZi5mbHVzaFN5bmMoKCk9PntvKHZvaWQgMCl9KX0pO3JldHVybigpPT57aUQuY2FuY2VsKG4pfX0sW3QsZV0pLGF4KCgpPT57aWYoIWV8fCF0KXJldHVybjtlJiZhJiZcImlkbGVcIiE9PXImJm8oXCJzdGFydGluZ1wiKTtsZXQgbj1pRC5yZXF1ZXN0KCgpPT57byhcImlkbGVcIil9KTtyZXR1cm4oKT0+e2lELmNhbmNlbChuKX19LFt0LGUsYSxvLHJdKSx4LnVzZU1lbW8oKCk9Pih7bW91bnRlZDphLHNldE1vdW50ZWQ6aSx0cmFuc2l0aW9uU3RhdHVzOnJ9KSxbYSxyXSl9ZnVuY3Rpb24gbEMoZSl7bGV0e2VuYWJsZWQ6dD0hMCxvcGVuOm4scmVmOnIsb25Db21wbGV0ZTpvfT1lLGE9YTAobiksaT1hZihvKSxsPWZ1bmN0aW9uKGUsdD0hMSl7bGV0IG49aUwoKTtyZXR1cm4gYWYoKHIsbz1udWxsKT0+e2xldCBhO2lmKG4uY2FuY2VsKCksbnVsbCE9ZSl7aWYoXCJjdXJyZW50XCJpbiBlKXtpZihudWxsPT1lLmN1cnJlbnQpcmV0dXJuO2E9ZS5jdXJyZW50fWVsc2UgYT1lO1wiZnVuY3Rpb25cIiE9dHlwZW9mIGEuZ2V0QW5pbWF0aW9uc3x8Z2xvYmFsVGhpcy5CQVNFX1VJX0FOSU1BVElPTlNfRElTQUJMRUQ/cigpOm4ucmVxdWVzdCgoKT0+e2Z1bmN0aW9uIGUoKXthJiZQcm9taXNlLmFsbFNldHRsZWQoYS5nZXRBbmltYXRpb25zKCkubWFwKGU9PmUuZmluaXNoZWQpKS50aGVuKCgpPT57bnVsbCE9byYmby5hYm9ydGVkfHxlZi5mbHVzaFN5bmMocil9KX10P24ucmVxdWVzdChlKTplKCl9KX19KX0ocixuKTt4LnVzZUVmZmVjdCgoKT0+e3QmJmwoKCk9PntuPT09YS5jdXJyZW50JiZpKCl9KX0sW3QsbixpLGwsYV0pfWxldCBsXz14LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBsayhlPSEwKXtsZXQgdD14LnVzZUNvbnRleHQobF8pO2lmKHZvaWQgMD09PXQmJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogRGlyZWN0aW9uQ29udGV4dCBpcyBtaXNzaW5nLlwiKTtyZXR1cm4gdD8uZGlyZWN0aW9uPz9cImx0clwifWZ1bmN0aW9uIGxFKGUpe3JldHVybiBlPy5vd25lckRvY3VtZW50fHxkb2N1bWVudH1sZXQgbGo9KCk9Pnt9LGxTPXt9LGxPPXt9LGxCPVwiXCI7Y2xhc3MgbFB7bG9ja0NvdW50PTA7cmVzdG9yZT1udWxsO3RpbWVvdXRMb2NrPWFzLmNyZWF0ZSgpO3RpbWVvdXRVbmxvY2s9YXMuY3JlYXRlKCk7YWNxdWlyZShlKXtyZXR1cm4gdGhpcy5sb2NrQ291bnQrPTEsMT09PXRoaXMubG9ja0NvdW50JiZudWxsPT09dGhpcy5yZXN0b3JlJiZ0aGlzLnRpbWVvdXRMb2NrLnN0YXJ0KDAsKCk9PnRoaXMubG9jayhlKSksdGhpcy5yZWxlYXNlfXJlbGVhc2U9KCk9Pnt0aGlzLmxvY2tDb3VudC09MSwwPT09dGhpcy5sb2NrQ291bnQmJnRoaXMucmVzdG9yZSYmdGhpcy50aW1lb3V0VW5sb2NrLnN0YXJ0KDAsdGhpcy51bmxvY2spfTt1bmxvY2s9KCk9PnswPT09dGhpcy5sb2NrQ291bnQmJnRoaXMucmVzdG9yZSYmKHRoaXMucmVzdG9yZT8uKCksdGhpcy5yZXN0b3JlPW51bGwpfTtsb2NrKGUpe2lmKDA9PT10aGlzLmxvY2tDb3VudHx8bnVsbCE9PXRoaXMucmVzdG9yZSlyZXR1cm47bGV0IHQ9bEUoZSkuZG9jdW1lbnRFbGVtZW50LG49YVAodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5vdmVyZmxvd1k7aWYoXCJoaWRkZW5cIj09PW58fFwiY2xpcFwiPT09bil7dGhpcy5yZXN0b3JlPWxqO3JldHVybn1sZXQgcj1hOXx8IWZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBkb2N1bWVudClyZXR1cm4hMTtsZXQgdD1sRShlKTtyZXR1cm4gYVAodCkuaW5uZXJXaWR0aC10LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aD4wfShlKTt0aGlzLnJlc3RvcmU9cj9mdW5jdGlvbihlKXtsZXQgdD1sRShlKS5kb2N1bWVudEVsZW1lbnQsbj10LnN0eWxlLm92ZXJmbG93O3JldHVybiB0LnN0eWxlLm92ZXJmbG93PVwiaGlkZGVuXCIsKCk9Pnt0LnN0eWxlLm92ZXJmbG93PW59fShlKTpmdW5jdGlvbihlKXtsZXQgdD1sRShlKSxuPXQuZG9jdW1lbnRFbGVtZW50LHI9dC5ib2R5LG89YVAobiksYT0wLGk9MCxsPWlELmNyZWF0ZSgpO2lmKGE2JiYoby52aXN1YWxWaWV3cG9ydD8uc2NhbGU/PzEpIT09MSlyZXR1cm4oKT0+e307ZnVuY3Rpb24gcygpe2xldCBlPW8uZ2V0Q29tcHV0ZWRTdHlsZShuKSx0PW8uZ2V0Q29tcHV0ZWRTdHlsZShyKTthPW4uc2Nyb2xsVG9wLGk9bi5zY3JvbGxMZWZ0LGxTPXtzY3JvbGxiYXJHdXR0ZXI6bi5zdHlsZS5zY3JvbGxiYXJHdXR0ZXIsb3ZlcmZsb3dZOm4uc3R5bGUub3ZlcmZsb3dZLG92ZXJmbG93WDpuLnN0eWxlLm92ZXJmbG93WH0sbEI9bi5zdHlsZS5zY3JvbGxCZWhhdmlvcixsTz17cG9zaXRpb246ci5zdHlsZS5wb3NpdGlvbixoZWlnaHQ6ci5zdHlsZS5oZWlnaHQsd2lkdGg6ci5zdHlsZS53aWR0aCxib3hTaXppbmc6ci5zdHlsZS5ib3hTaXppbmcsb3ZlcmZsb3dZOnIuc3R5bGUub3ZlcmZsb3dZLG92ZXJmbG93WDpyLnN0eWxlLm92ZXJmbG93WCxzY3JvbGxCZWhhdmlvcjpyLnN0eWxlLnNjcm9sbEJlaGF2aW9yfTtsZXQgbD1cInVuZGVmaW5lZFwiIT10eXBlb2YgQ1NTJiZDU1Muc3VwcG9ydHM/LihcInNjcm9sbGJhci1ndXR0ZXJcIixcInN0YWJsZVwiKSxzPW4uc2Nyb2xsSGVpZ2h0Pm4uY2xpZW50SGVpZ2h0LGM9bi5zY3JvbGxXaWR0aD5uLmNsaWVudFdpZHRoLHU9XCJzY3JvbGxcIj09PWUub3ZlcmZsb3dZfHxcInNjcm9sbFwiPT09dC5vdmVyZmxvd1ksZD1cInNjcm9sbFwiPT09ZS5vdmVyZmxvd1h8fFwic2Nyb2xsXCI9PT10Lm92ZXJmbG93WCxmPU1hdGgubWF4KDAsby5pbm5lcldpZHRoLW4uY2xpZW50V2lkdGgpLHA9TWF0aC5tYXgoMCxvLmlubmVySGVpZ2h0LW4uY2xpZW50SGVpZ2h0KSxoPXBhcnNlRmxvYXQodC5tYXJnaW5Ub3ApK3BhcnNlRmxvYXQodC5tYXJnaW5Cb3R0b20pLG09cGFyc2VGbG9hdCh0Lm1hcmdpbkxlZnQpK3BhcnNlRmxvYXQodC5tYXJnaW5SaWdodCk7T2JqZWN0LmFzc2lnbihuLnN0eWxlLHtzY3JvbGxiYXJHdXR0ZXI6XCJzdGFibGVcIixvdmVyZmxvd1k6IWwmJihzfHx1KT9cInNjcm9sbFwiOlwiaGlkZGVuXCIsb3ZlcmZsb3dYOiFsJiYoY3x8ZCk/XCJzY3JvbGxcIjpcImhpZGRlblwifSksT2JqZWN0LmFzc2lnbihyLnN0eWxlLHtwb3NpdGlvbjpcInJlbGF0aXZlXCIsaGVpZ2h0Omh8fHA/YGNhbGMoMTAwZHZoIC0gJHtoK3B9cHgpYDpcIjEwMGR2aFwiLHdpZHRoOm18fGY/YGNhbGMoMTAwdncgLSAke20rZn1weClgOlwiMTAwdndcIixib3hTaXppbmc6XCJib3JkZXItYm94XCIsb3ZlcmZsb3c6XCJoaWRkZW5cIixzY3JvbGxCZWhhdmlvcjpcInVuc2V0XCJ9KSxyLnNjcm9sbFRvcD1hLHIuc2Nyb2xsTGVmdD1pLG4uc2V0QXR0cmlidXRlKFwiZGF0YS1iYXNlLXVpLXNjcm9sbC1sb2NrZWRcIixcIlwiKSxuLnN0eWxlLnNjcm9sbEJlaGF2aW9yPVwidW5zZXRcIn1mdW5jdGlvbiBjKCl7T2JqZWN0LmFzc2lnbihuLnN0eWxlLGxTKSxPYmplY3QuYXNzaWduKHIuc3R5bGUsbE8pLG4uc2Nyb2xsVG9wPWEsbi5zY3JvbGxMZWZ0PWksbi5yZW1vdmVBdHRyaWJ1dGUoXCJkYXRhLWJhc2UtdWktc2Nyb2xsLWxvY2tlZFwiKSxuLnN0eWxlLnNjcm9sbEJlaGF2aW9yPWxCfWZ1bmN0aW9uIHUoKXtjKCksbC5yZXF1ZXN0KHMpfXJldHVybiBzKCksby5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdSksKCk9PntsLmNhbmNlbCgpLGMoKSxvLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix1KX19KGUpfX1sZXQgbEk9bmV3IGxQO2Z1bmN0aW9uIGx6KGUpe2lmKGUpcmV0dXJuKHtcImZvY3VzLW91dFwiOlwiZm9jdXMtb3V0XCIsXCJlc2NhcGUta2V5XCI6XCJlc2NhcGUta2V5XCIsXCJvdXRzaWRlLXByZXNzXCI6XCJvdXRzaWRlLXByZXNzXCIsXCJsaXN0LW5hdmlnYXRpb25cIjpcImxpc3QtbmF2aWdhdGlvblwiLGNsaWNrOlwidHJpZ2dlci1wcmVzc1wiLGhvdmVyOlwidHJpZ2dlci1ob3ZlclwiLGZvY3VzOlwidHJpZ2dlci1mb2N1c1wiLFwicmVmZXJlbmNlLXByZXNzXCI6XCJ0cmlnZ2VyLXByZXNzXCIsXCJzYWZlLXBvbHlnb25cIjpcInRyaWdnZXItaG92ZXJcIixcImFuY2VzdG9yLXNjcm9sbFwiOnZvaWQgMH0pW2VdfWxldCBsVD14LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBsRChlPSEwKXtsZXQgdD14LnVzZUNvbnRleHQobFQpO2lmKHZvaWQgMD09PXQmJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogQ29udGV4dE1lbnVSb290Q29udGV4dCBpcyBtaXNzaW5nLiBDb250ZXh0TWVudSBwYXJ0cyBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gPENvbnRleHRNZW51LlJvb3Q+LlwiKTtyZXR1cm4gdH1sZXQgbEw9eC5jcmVhdGVDb250ZXh0KCExKTtmdW5jdGlvbiBsTihlLHQpe3JldHVybiBlJiYhdD9lOiFlJiZ0P3Q6ZXx8dD97Li4uZSwuLi50fTp2b2lkIDB9bGV0IGxSPXt9O2Z1bmN0aW9uIGxNKGUsdCxuLHIsbyl7bGV0IGE9ey4uLmxGKGUsbFIpfTtyZXR1cm4gdCYmKGE9bFooYSx0KSksbiYmKGE9bFooYSxuKSksciYmKGE9bFooYSxyKSksbyYmKGE9bFooYSxvKSksYX1mdW5jdGlvbiBsWihlLHQpe3JldHVybiBsVSh0KT90KGUpOmZ1bmN0aW9uKGUsdCl7aWYoIXQpcmV0dXJuIGU7Zm9yKGxldCBuIGluIHQpe2xldCByPXRbbl07c3dpdGNoKG4pe2Nhc2VcInN0eWxlXCI6ZVtuXT1sTihlLnN0eWxlLHIpO2JyZWFrO2Nhc2VcImNsYXNzTmFtZVwiOmVbbl09bEgoZS5jbGFzc05hbWUscik7YnJlYWs7ZGVmYXVsdDohZnVuY3Rpb24oZSx0KXtsZXQgbj1lLmNoYXJDb2RlQXQoMCkscj1lLmNoYXJDb2RlQXQoMSksbz1lLmNoYXJDb2RlQXQoMik7cmV0dXJuIDExMT09PW4mJjExMD09PXImJm8+PTY1JiZvPD05MCYmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHR8fHZvaWQgMD09PXQpfShuLHIpP2Vbbl09cjplW25dPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/ZT9uPT57dmFyIHI7aWYobnVsbCE9KHI9bikmJlwib2JqZWN0XCI9PXR5cGVvZiByJiZcIm5hdGl2ZUV2ZW50XCJpbiByKXtscShuKTtsZXQgcj10KG4pO3JldHVybiBuLmJhc2VVSUhhbmRsZXJQcmV2ZW50ZWR8fGU/LihuKSxyfWxldCBvPXQobik7cmV0dXJuIGU/LihuKSxvfTp0OmV9KGVbbl0scil9fXJldHVybiBlfShlLHQpfWZ1bmN0aW9uIGxVKGUpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGV9ZnVuY3Rpb24gbEYoZSx0KXtyZXR1cm4gbFUoZSk/ZSh0KTplPz9sUn1mdW5jdGlvbiBscShlKXtyZXR1cm4gZS5wcmV2ZW50QmFzZVVJSGFuZGxlcj0oKT0+e2UuYmFzZVVJSGFuZGxlclByZXZlbnRlZD0hMH0sZX1mdW5jdGlvbiBsSChlLHQpe3JldHVybiB0P2U/dCtcIiBcIitlOnQ6ZX1sZXQgbFY9W10sbCQ9e2N1cnJlbnQ6ITF9LGxXPWZ1bmN0aW9uKGUpe2xldCB0LG4se2NoaWxkcmVuOnIsb3BlbjpvLG9uT3BlbkNoYW5nZTphLG9uT3BlbkNoYW5nZUNvbXBsZXRlOmksZGVmYXVsdE9wZW46bD0hMSxkaXNhYmxlZDpzPSExLG1vZGFsOmMsbG9vcDp1PSEwLG9yaWVudGF0aW9uOmQ9XCJ2ZXJ0aWNhbFwiLGFjdGlvbnNSZWY6ZixvcGVuT25Ib3ZlcjpwLGRlbGF5Omg9MTAwLGNsb3NlRGVsYXk6bT0wLGNsb3NlUGFyZW50T25Fc2M6Zz0hMH09ZSxbeSx2XT14LnVzZVN0YXRlKG51bGwpLFtBLHddPXgudXNlU3RhdGUobnVsbCksW0MsX109eC51c2VTdGF0ZSgpLFtrLEVdPXgudXNlU3RhdGUoITApLFtqLFNdPXgudXNlU3RhdGUobnVsbCksW08sQl09eC51c2VTdGF0ZShudWxsKSxbUCxJXT14LnVzZVN0YXRlKCEwKSxbeixUXT14LnVzZVN0YXRlKCExKSxEPXgudXNlUmVmKG51bGwpLEw9eC51c2VSZWYobnVsbCksTj14LnVzZVJlZihudWxsKSxSPXgudXNlUmVmKFtdKSxNPXgudXNlUmVmKFtdKSxaPWFjKCksVT1sRCghMCksRj14LnVzZUNvbnRleHQobEwpO3tsZXQgZT1sQSghMCksbj1mdW5jdGlvbihlKXtsZXQgdD14LnVzZUNvbnRleHQobHgpO2lmKG51bGw9PT10JiYhZSl0aHJvdyBFcnJvcihcIkJhc2UgVUk6IE1lbnViYXJDb250ZXh0IGlzIG1pc3NpbmcuIE1lbnViYXIgcGFydHMgbXVzdCBiZSBwbGFjZWQgd2l0aGluIDxNZW51YmFyPi5cIik7cmV0dXJuIHR9KCEwKTt0PUYmJmU/e3R5cGU6XCJtZW51XCIsY29udGV4dDplfTpuP3t0eXBlOlwibWVudWJhclwiLGNvbnRleHQ6bn06VT97dHlwZTpcImNvbnRleHQtbWVudVwiLGNvbnRleHQ6VX06e3R5cGU6dm9pZCAwfX1sZXQgcT1hYigpO3ZvaWQgMCE9PXQudHlwZSYmKHE9dC5jb250ZXh0LnJvb3RJZCk7bGV0IEg9KHZvaWQgMD09PXQudHlwZXx8XCJjb250ZXh0LW1lbnVcIj09PXQudHlwZSkmJihjPz8hMCksVj1cIm1lbnVcIj09PXQudHlwZT90LmNvbnRleHQuYWxsb3dNb3VzZUVudGVyOnosJD1cIm1lbnVcIj09PXQudHlwZT90LmNvbnRleHQuc2V0QWxsb3dNb3VzZUVudGVyOlQsVz1wPz8oXCJtZW51XCI9PT10LnR5cGV8fFwibWVudWJhclwiPT09dC50eXBlJiZ0LmNvbnRleHQuaGFzU3VibWVudU9wZW4pLFtZLEtdPWFtKHtjb250cm9sbGVkOm8sZGVmYXVsdDpsLG5hbWU6XCJNZW51Um9vdFwiLHN0YXRlOlwib3BlblwifSksWD14LnVzZVJlZihcImNvbnRleHQtbWVudVwiIT09dC50eXBlKSxHPWFjKCk7eC51c2VFZmZlY3QoKCk9PntpZihZfHwoRC5jdXJyZW50PW51bGwpLFwiY29udGV4dC1tZW51XCI9PT10LnR5cGUpe2lmKCFZKXtHLmNsZWFyKCksWC5jdXJyZW50PSExO3JldHVybn1HLnN0YXJ0KDUwMCwoKT0+e1guY3VycmVudD0hMH0pfX0sW0csWSx0LnR5cGVdKTtsZXQgUT14LnVzZUNhbGxiYWNrKGU9PntOLmN1cnJlbnQ9ZSx3KGUpfSxbXSkse21vdW50ZWQ6SixzZXRNb3VudGVkOmVlLHRyYW5zaXRpb25TdGF0dXM6ZXR9PWx3KFkpLHtvcGVuTWV0aG9kOmVuLHRyaWdnZXJQcm9wczplcixyZXNldDplb309ZnVuY3Rpb24oZSl7bGV0W3Qsbl09eC51c2VTdGF0ZShudWxsKSxyPWFmKCh0LHIpPT57ZXx8bihyKX0pLG89YWYoKCk9PntuKG51bGwpfSkse29uQ2xpY2s6YSxvblBvaW50ZXJEb3duOml9PWZ1bmN0aW9uKGUpe2xldCB0PXgudXNlUmVmKFwiXCIpLG49eC51c2VDYWxsYmFjayhuPT57bi5kZWZhdWx0UHJldmVudGVkfHwodC5jdXJyZW50PW4ucG9pbnRlclR5cGUsZShuLG4ucG9pbnRlclR5cGUpKX0sW2VdKTtyZXR1cm57b25DbGljazp4LnVzZUNhbGxiYWNrKG49PntpZigwPT09bi5kZXRhaWwpcmV0dXJuIHZvaWQgZShuLFwia2V5Ym9hcmRcIik7XCJwb2ludGVyVHlwZVwiaW4gbiYmZShuLG4ucG9pbnRlclR5cGUpLGUobix0LmN1cnJlbnQpLHQuY3VycmVudD1cIlwifSxbZV0pLG9uUG9pbnRlckRvd246bn19KHIpO3JldHVybiB4LnVzZU1lbW8oKCk9Pih7b3Blbk1ldGhvZDp0LHJlc2V0Om8sdHJpZ2dlclByb3BzOntvbkNsaWNrOmEsb25Qb2ludGVyRG93bjppfX0pLFt0LG8sYSxpXSl9KFkpO3ZhciBlYT17ZW5hYmxlZDpZJiZIJiZcInRyaWdnZXItaG92ZXJcIiE9PU8mJlwidG91Y2hcIiE9PWVuLG1vdW50ZWQ6SixvcGVuOlkscmVmZXJlbmNlRWxlbWVudDpBfTtsZXR7ZW5hYmxlZDplaT0hMCxtb3VudGVkOmVsLG9wZW46ZXMscmVmZXJlbmNlRWxlbWVudDplYz1udWxsfT1lYTtheCgoKT0+e2lmKGVpJiZhNiYmZWwmJiFlcyl7bGV0IGU9bEUoZWMpLHQ9ZS5ib2R5LnN0eWxlLnVzZXJTZWxlY3Qsbj1lLmJvZHkuc3R5bGUud2Via2l0VXNlclNlbGVjdDtyZXR1cm4gZS5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9XCJub25lXCIsZS5ib2R5LnN0eWxlLndlYmtpdFVzZXJTZWxlY3Q9XCJub25lXCIsKCk9PntlLmJvZHkuc3R5bGUudXNlclNlbGVjdD10LGUuYm9keS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PW59fX0sW2VpLGVsLGVzLGVjXSksYXgoKCk9PntpZihlaSlyZXR1cm4gbEkuYWNxdWlyZShlYyl9LFtlaSxlY10pLFl8fGt8fEUoITApO2xldCBldT1hZigoKT0+e2VlKCExKSxJKCEwKSwkKCExKSxpPy4oITEpLGVvKCl9KTtsQyh7ZW5hYmxlZDohZixvcGVuOlkscmVmOkwsb25Db21wbGV0ZSgpe1l8fGV1KCl9fSk7bGV0IGVkPXgudXNlUmVmKCEwKSxlcD1hYygpLGVoPWFmKChlLG4scik9PntpZihZPT09ZXx8ITE9PT1lJiZuPy50eXBlPT09XCJjbGlja1wiJiZcInRvdWNoXCI9PT1uLnBvaW50ZXJUeXBlJiYhZWQuY3VycmVudClyZXR1cm47aWYoIWUmJm51bGwhPT1qKXtsZXQgZT1SLmN1cnJlbnRbal07cXVldWVNaWNyb3Rhc2soKCk9PntlPy5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiLTFcIil9KX1lJiZcInRyaWdnZXItZm9jdXNcIj09PXI/KGVkLmN1cnJlbnQ9ITEsZXAuc3RhcnQoMzAwLCgpPT57ZWQuY3VycmVudD0hMH0pKTooZWQuY3VycmVudD0hMCxlcC5jbGVhcigpKTtsZXQgbz0oXCJ0cmlnZ2VyLXByZXNzXCI9PT1yfHxcIml0ZW0tcHJlc3NcIj09PXIpJiYwPT09bi5kZXRhaWwmJm4/LmlzVHJ1c3RlZCxpPSFlJiYoXCJlc2NhcGUta2V5XCI9PT1yfHxudWxsPT1yKTtmdW5jdGlvbiBsKCl7YT8uKGUsbixyKSxLKGUpLEIocj8/bnVsbCksRC5jdXJyZW50PW4/P251bGx9XCJ0cmlnZ2VyLWhvdmVyXCI9PT1yPyhJKCEwKSxaLnN0YXJ0KDUwMCwoKT0+e0koITEpfSksZWYuZmx1c2hTeW5jKGwpKTpsKCksXCJtZW51YmFyXCI9PT10LnR5cGUmJihcInRyaWdnZXItZm9jdXNcIj09PXJ8fFwiZm9jdXMtb3V0XCI9PT1yfHxcInRyaWdnZXItaG92ZXJcIj09PXJ8fFwibGlzdC1uYXZpZ2F0aW9uXCI9PT1yfHxcInNpYmxpbmctb3BlblwiPT09cik/XyhcImdyb3VwXCIpOm98fGk/XyhvP1wiY2xpY2tcIjpcImRpc21pc3NcIik6Xyh2b2lkIDApfSk7eC51c2VJbXBlcmF0aXZlSGFuZGxlKGYsKCk9Pih7dW5tb3VudDpldX0pLFtldV0pLFwiY29udGV4dC1tZW51XCI9PT10LnR5cGUmJihuPXQuY29udGV4dCkseC51c2VJbXBlcmF0aXZlSGFuZGxlKG4/LnBvc2l0aW9uZXJSZWYsKCk9PkEsW0FdKSx4LnVzZUltcGVyYXRpdmVIYW5kbGUobj8uYWN0aW9uc1JlZiwoKT0+KHtzZXRPcGVuOmVofSksW2VoXSkseC51c2VFZmZlY3QoKCk9PntZfHxaLmNsZWFyKCl9LFtaLFldKTtsZXQgZW09YVMoe2VsZW1lbnRzOntyZWZlcmVuY2U6eSxmbG9hdGluZzpBfSxvcGVuOlksb25PcGVuQ2hhbmdlKGUsdCxuKXtlaChlLHQsbHoobikpfX0pLGVnPWlqKGVtLHtlbmFibGVkOmsmJlcmJiFzJiZcImNvbnRleHQtbWVudVwiIT09dC50eXBlJiYoXCJtZW51YmFyXCIhPT10LnR5cGV8fHQuY29udGV4dC5oYXNTdWJtZW51T3BlbiYmIVkpLGhhbmRsZUNsb3NlOmlQKHtibG9ja1BvaW50ZXJFdmVudHM6ITB9KSxtb3VzZU9ubHk6ITAsbW92ZTpcIm1lbnVcIj09PXQudHlwZSxyZXN0TXM6dm9pZCAwPT09dC50eXBlfHxcIm1lbnVcIj09PXQudHlwZSYmVj9oOnZvaWQgMCxkZWxheTpcIm1lbnVcIj09PXQudHlwZT97b3BlbjpWP2g6MWUxMCxjbG9zZTptfTp7Y2xvc2U6bX19KSxleT1peihlbSx7ZW5hYmxlZDohcyYmIVkmJlwibWVudWJhclwiPT09dC50eXBlJiZ0LmNvbnRleHQuaGFzU3VibWVudU9wZW4mJiFVfSksZXY9ZnVuY3Rpb24oZSx0PXt9KXtsZXR7b3BlbjpuLG9uT3BlbkNoYW5nZTpyLGRhdGFSZWY6b309ZSx7ZW5hYmxlZDphPSEwLGV2ZW50Omk9XCJjbGlja1wiLHRvZ2dsZTpsPSEwLGlnbm9yZU1vdXNlOnM9ITEsc3RpY2tJZk9wZW46Yz0hMH09dCx1PXgudXNlUmVmKHZvaWQgMCksZD1pTCgpLGY9eC51c2VNZW1vKCgpPT4oe29uUG9pbnRlckRvd24oZSl7dS5jdXJyZW50PWUucG9pbnRlclR5cGV9LG9uTW91c2VEb3duKGUpe2xldCB0PXUuY3VycmVudCxhPWUubmF0aXZlRXZlbnQ7aWYoMCE9PWUuYnV0dG9ufHxcImNsaWNrXCI9PT1pfHxpaSh0LCEwKSYmcylyZXR1cm47bGV0IGY9by5jdXJyZW50Lm9wZW5FdmVudCxwPWY/LnR5cGUsaD0hKG4mJmwmJighZnx8IWN8fFwiY2xpY2tcIj09PXB8fFwibW91c2Vkb3duXCI9PT1wKSk7ZC5yZXF1ZXN0KCgpPT57cihoLGEsXCJjbGlja1wiKX0pfSxvbkNsaWNrKGUpe2xldCB0PXUuY3VycmVudDtpZihcIm1vdXNlZG93blwiPT09aSYmdCl7dS5jdXJyZW50PXZvaWQgMDtyZXR1cm59aWYoaWkodCwhMCkmJnMpcmV0dXJuO2xldCBhPW8uY3VycmVudC5vcGVuRXZlbnQsZD1hPy50eXBlO3IoIShuJiZsJiYoIWF8fCFjfHxcImNsaWNrXCI9PT1kfHxcIm1vdXNlZG93blwiPT09ZHx8XCJrZXlkb3duXCI9PT1kfHxcImtleXVwXCI9PT1kKSksZS5uYXRpdmVFdmVudCxcImNsaWNrXCIpfSxvbktleURvd24oKXt1LmN1cnJlbnQ9dm9pZCAwfX0pLFtvLGkscyxyLG4sYyxsLGRdKTtyZXR1cm4geC51c2VNZW1vKCgpPT5hP3tyZWZlcmVuY2U6Zn06aVIsW2EsZl0pfShlbSx7ZW5hYmxlZDohcyYmXCJjb250ZXh0LW1lbnVcIiE9PXQudHlwZSxldmVudDpZJiZcIm1lbnViYXJcIj09PXQudHlwZT9cImNsaWNrXCI6XCJtb3VzZWRvd25cIix0b2dnbGU6IVd8fFwibWVudVwiIT09dC50eXBlLGlnbm9yZU1vdXNlOlcmJlwibWVudVwiPT09dC50eXBlLHN0aWNrSWZPcGVuOnZvaWQgMD09PXQudHlwZSYmUH0pLGViPWlIKGVtLHtlbmFibGVkOiFzLGJ1YmJsZXM6ZyYmXCJtZW51XCI9PT10LnR5cGUsb3V0c2lkZVByZXNzOigpPT5cImNvbnRleHQtbWVudVwiIT09dC50eXBlfHxELmN1cnJlbnQ/LnR5cGU9PT1cImNvbnRleHRtZW51XCJ8fFguY3VycmVudH0pLGVBPWZ1bmN0aW9uKGUsdD17fSl7bGV0e29wZW46bixlbGVtZW50czpyLGZsb2F0aW5nSWQ6b309ZSx7ZW5hYmxlZDphPSEwLHJvbGU6aT1cImRpYWxvZ1wifT10LGw9YWIoKSxzPXIuZG9tUmVmZXJlbmNlPy5pZHx8bCxjPXgudXNlTWVtbygoKT0+aXcoci5mbG9hdGluZyk/LmlkfHxvLFtyLmZsb2F0aW5nLG9dKSx1PWlWLmdldChpKT8/aSxkPW51bGwhPWFfKCksZj14LnVzZU1lbW8oKCk9PlwidG9vbHRpcFwiPT09dXx8XCJsYWJlbFwiPT09aT97W2BhcmlhLSR7XCJsYWJlbFwiPT09aT9cImxhYmVsbGVkYnlcIjpcImRlc2NyaWJlZGJ5XCJ9YF06bj9jOnZvaWQgMH06e1wiYXJpYS1leHBhbmRlZFwiOm4/XCJ0cnVlXCI6XCJmYWxzZVwiLFwiYXJpYS1oYXNwb3B1cFwiOlwiYWxlcnRkaWFsb2dcIj09PXU/XCJkaWFsb2dcIjp1LFwiYXJpYS1jb250cm9sc1wiOm4/Yzp2b2lkIDAsLi4uXCJsaXN0Ym94XCI9PT11JiZ7cm9sZTpcImNvbWJvYm94XCJ9LC4uLlwibWVudVwiPT09dSYme2lkOnN9LC4uLlwibWVudVwiPT09dSYmZCYme3JvbGU6XCJtZW51aXRlbVwifSwuLi5cInNlbGVjdFwiPT09aSYme1wiYXJpYS1hdXRvY29tcGxldGVcIjpcIm5vbmVcIn0sLi4uXCJjb21ib2JveFwiPT09aSYme1wiYXJpYS1hdXRvY29tcGxldGVcIjpcImxpc3RcIn19LFt1LGMsZCxuLHMsaV0pLHA9eC51c2VNZW1vKCgpPT57bGV0IGU9e2lkOmMsLi4udSYme3JvbGU6dX19O3JldHVyblwidG9vbHRpcFwiPT09dXx8XCJsYWJlbFwiPT09aT9lOnsuLi5lLC4uLlwibWVudVwiPT09dSYme1wiYXJpYS1sYWJlbGxlZGJ5XCI6c319fSxbdSxjLHMsaV0pLGg9eC51c2VDYWxsYmFjaygoe2FjdGl2ZTplLHNlbGVjdGVkOnR9KT0+e2xldCBuPXtyb2xlOlwib3B0aW9uXCIsLi4uZSYme2lkOmAke2N9LWZ1aS1vcHRpb25gfX07c3dpdGNoKGkpe2Nhc2VcInNlbGVjdFwiOmNhc2VcImNvbWJvYm94XCI6cmV0dXJuey4uLm4sXCJhcmlhLXNlbGVjdGVkXCI6dH19cmV0dXJue319LFtjLGldKTtyZXR1cm4geC51c2VNZW1vKCgpPT5hP3tyZWZlcmVuY2U6ZixmbG9hdGluZzpwLGl0ZW06aH06e30sW2EsZixwLGhdKX0oZW0se3JvbGU6XCJtZW51XCJ9KSxleD1saygpLGV3PWZ1bmN0aW9uKGUsdCl7bGV0e29wZW46bixvbk9wZW5DaGFuZ2U6cixlbGVtZW50czpvLGZsb2F0aW5nSWQ6YX09ZSx7bGlzdFJlZjppLGFjdGl2ZUluZGV4Omwsb25OYXZpZ2F0ZTpzPSgpPT57fSxlbmFibGVkOmM9ITAsc2VsZWN0ZWRJbmRleDp1PW51bGwsYWxsb3dFc2NhcGU6ZD0hMSxsb29wOmY9ITEsbmVzdGVkOnA9ITEscnRsOmg9ITEsdmlydHVhbDptPSExLGZvY3VzSXRlbU9uT3BlbjpnPVwiYXV0b1wiLGZvY3VzSXRlbU9uSG92ZXI6eT0hMCxvcGVuT25BcnJvd0tleURvd246dj0hMCxkaXNhYmxlZEluZGljZXM6YixvcmllbnRhdGlvbjpBPVwidmVydGljYWxcIixwYXJlbnRPcmllbnRhdGlvbjp3LGNvbHM6Qz0xLHNjcm9sbEl0ZW1JbnRvVmlldzpfPSEwLHZpcnR1YWxJdGVtUmVmOmssaXRlbVNpemVzOkUsZGVuc2U6aj0hMX09dCxTPWEwKGl3KG8uZmxvYXRpbmcpKSxPPWFfKCksQj1haygpO2F4KCgpPT57ZS5kYXRhUmVmLmN1cnJlbnQub3JpZW50YXRpb249QX0sW2UsQV0pO2xldCBQPWl4KG8uZG9tUmVmZXJlbmNlKSxJPXgudXNlUmVmKGcpLHo9eC51c2VSZWYodT8/LTEpLFQ9eC51c2VSZWYobnVsbCksRD14LnVzZVJlZighMCksTD1hZigoKT0+e3MoLTE9PT16LmN1cnJlbnQ/bnVsbDp6LmN1cnJlbnQpfSksTj14LnVzZVJlZihMKSxSPXgudXNlUmVmKCEhby5mbG9hdGluZyksTT14LnVzZVJlZihuKSxaPXgudXNlUmVmKCExKSxVPXgudXNlUmVmKCExKSxGPWEwKGIpLHE9YTAobiksSD1hMChfKSxWPWEwKHUpLFskLFddPXgudXNlU3RhdGUoKSxZPWFmKCgpPT57ZnVuY3Rpb24gZShlKXttPyhlLmlkPy5lbmRzV2l0aChcIi1mdWktb3B0aW9uXCIpJiYoZS5pZD1gJHthfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMTYpLnNsaWNlKDIsMTApfWApLFcoZS5pZCksQj8uZXZlbnRzLmVtaXQoXCJ2aXJ0dWFsZm9jdXNcIixlKSxrJiYoay5jdXJyZW50PWUpKTpsZihlLHtzeW5jOlouY3VycmVudCxwcmV2ZW50U2Nyb2xsOiEwfSl9bGV0IHQ9aS5jdXJyZW50W3ouY3VycmVudF0sbj1VLmN1cnJlbnQ7dCYmZSh0KSwoWi5jdXJyZW50P2U9PmUoKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUpKCgpPT57bGV0IHI9aS5jdXJyZW50W3ouY3VycmVudF18fHQ7aWYoIXIpcmV0dXJuO3R8fGUocik7bGV0IG89SC5jdXJyZW50O28mJlgmJihufHwhRC5jdXJyZW50KSYmci5zY3JvbGxJbnRvVmlldz8uKFwiYm9vbGVhblwiPT10eXBlb2Ygbz97YmxvY2s6XCJuZWFyZXN0XCIsaW5saW5lOlwibmVhcmVzdFwifTpvKX0pfSk7YXgoKCk9PntjJiYobiYmby5mbG9hdGluZz9JLmN1cnJlbnQmJm51bGwhPXUmJihVLmN1cnJlbnQ9ITAsei5jdXJyZW50PXUsTCgpKTpSLmN1cnJlbnQmJih6LmN1cnJlbnQ9LTEsTi5jdXJyZW50KCkpKX0sW2MsbixvLmZsb2F0aW5nLHUsTF0pLGF4KCgpPT57aWYoYyYmbiYmby5mbG9hdGluZylpZihudWxsPT1sKXtpZihaLmN1cnJlbnQ9ITEsbnVsbCE9Vi5jdXJyZW50KXJldHVybjtpZihSLmN1cnJlbnQmJih6LmN1cnJlbnQ9LTEsWSgpKSwoIU0uY3VycmVudHx8IVIuY3VycmVudCkmJkkuY3VycmVudCYmKG51bGwhPVQuY3VycmVudHx8ITA9PT1JLmN1cnJlbnQmJm51bGw9PVQuY3VycmVudCkpe2xldCBlPTAsdD0oKT0+e251bGw9PWkuY3VycmVudFswXT8oZTwyJiYoZT9yZXF1ZXN0QW5pbWF0aW9uRnJhbWU6cXVldWVNaWNyb3Rhc2spKHQpLGUrPTEpOih6LmN1cnJlbnQ9bnVsbD09VC5jdXJyZW50fHxsbShULmN1cnJlbnQsQSxoKXx8cD9sbChpLEYuY3VycmVudCk6bHMoaSxGLmN1cnJlbnQpLFQuY3VycmVudD1udWxsLEwoKSl9O3QoKX19ZWxzZSBsaShpLGwpfHwoei5jdXJyZW50PWwsWSgpLFUuY3VycmVudD0hMSl9LFtjLG4sby5mbG9hdGluZyxsLFYscCxpLEEsaCxMLFksRl0pLGF4KCgpPT57aWYoIWN8fG8uZmxvYXRpbmd8fCFCfHxtfHwhUi5jdXJyZW50KXJldHVybjtsZXQgZT1CLm5vZGVzUmVmLmN1cnJlbnQsdD1lLmZpbmQoZT0+ZS5pZD09PU8pPy5jb250ZXh0Py5lbGVtZW50cy5mbG9hdGluZyxuPWltKGliKG8uZmxvYXRpbmcpKSxyPWUuc29tZShlPT5lLmNvbnRleHQmJmlnKGUuY29udGV4dC5lbGVtZW50cy5mbG9hdGluZyxuKSk7dCYmIXImJkQuY3VycmVudCYmdC5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfSxbYyxvLmZsb2F0aW5nLEIsTyxtXSksYXgoKCk9PntOLmN1cnJlbnQ9TCxNLmN1cnJlbnQ9bixSLmN1cnJlbnQ9ISFvLmZsb2F0aW5nfSksYXgoKCk9PntufHwoVC5jdXJyZW50PW51bGwsSS5jdXJyZW50PWcpfSxbbixnXSk7bGV0IEs9bnVsbCE9bCxYPXgudXNlTWVtbygoKT0+e2Z1bmN0aW9uIGUoZSl7aWYoIXEuY3VycmVudClyZXR1cm47bGV0IHQ9aS5jdXJyZW50LmluZGV4T2YoZSk7LTEhPT10JiZ6LmN1cnJlbnQhPT10JiYoei5jdXJyZW50PXQsTCgpKX1yZXR1cm57b25Gb2N1cyh7Y3VycmVudFRhcmdldDp0fSl7Wi5jdXJyZW50PSEwLGUodCl9LG9uQ2xpY2s6KHtjdXJyZW50VGFyZ2V0OmV9KT0+ZS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLG9uTW91c2VNb3ZlKHtjdXJyZW50VGFyZ2V0OnR9KXtaLmN1cnJlbnQ9ITAsVS5jdXJyZW50PSExLHkmJmUodCl9LG9uUG9pbnRlckxlYXZlKHtwb2ludGVyVHlwZTplfSl7RC5jdXJyZW50JiZcInRvdWNoXCIhPT1lJiYoWi5jdXJyZW50PSEwLHkmJih6LmN1cnJlbnQ9LTEsTCgpLG18fFMuY3VycmVudD8uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSkpfX19LFtxLFMseSxpLEwsbV0pLEc9eC51c2VDYWxsYmFjaygoKT0+dz8/Qj8ubm9kZXNSZWYuY3VycmVudC5maW5kKGU9PmUuaWQ9PT1PKT8uY29udGV4dD8uZGF0YVJlZj8uY3VycmVudC5vcmllbnRhdGlvbixbTyxCLHddKSxRPWFmKGU9Pnt2YXIgdCxhLGwscyxjO2lmKEQuY3VycmVudD0hMSxaLmN1cnJlbnQ9ITAsMjI5PT09ZS53aGljaHx8IXEuY3VycmVudCYmZS5jdXJyZW50VGFyZ2V0PT09Uy5jdXJyZW50KXJldHVybjtpZihwJiYodD1lLmtleSxhPUEsbD1oLHM9QyxcImJvdGhcIj09PWF8fFwiaG9yaXpvbnRhbFwiPT09YSYmcyYmcz4xP1wiRXNjYXBlXCI9PT10OmxwKGEsbD90PT09aWQ6dD09PWl1LHQ9PT1pcCkpKXtsaChlLmtleSxHKCkpfHxpcihlKSxyKCExLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIiksYUQoby5kb21SZWZlcmVuY2UpJiYobT9CPy5ldmVudHMuZW1pdChcInZpcnR1YWxmb2N1c1wiLG8uZG9tUmVmZXJlbmNlKTpvLmRvbVJlZmVyZW5jZS5mb2N1cygpKTtyZXR1cm59bGV0IHU9ei5jdXJyZW50LGc9bGwoaSxiKSx5PWxzKGksYik7aWYoUHx8KFwiSG9tZVwiPT09ZS5rZXkmJihpcihlKSx6LmN1cnJlbnQ9ZyxMKCkpLFwiRW5kXCI9PT1lLmtleSYmKGlyKGUpLHouY3VycmVudD15LEwoKSkpLEM+MSl7bGV0IHQ9RXx8QXJyYXkuZnJvbSh7bGVuZ3RoOmkuY3VycmVudC5sZW5ndGh9LCgpPT4oe3dpZHRoOjEsaGVpZ2h0OjF9KSksbj1mdW5jdGlvbihlLHQsbil7bGV0IHI9W10sbz0wO3JldHVybiBlLmZvckVhY2goKHt3aWR0aDplLGhlaWdodDphfSxpKT0+e2xldCBsPSExO2ZvcihuJiYobz0wKTshbDspe2xldCBuPVtdO2ZvcihsZXQgcj0wO3I8ZTtyKz0xKWZvcihsZXQgZT0wO2U8YTtlKz0xKW4ucHVzaChvK3IrZSp0KTtvJXQrZTw9dCYmbi5ldmVyeShlPT5udWxsPT1yW2VdKT8obi5mb3JFYWNoKGU9PntyW2VdPWl9KSxsPSEwKTpvKz0xfX0pLFsuLi5yXX0odCxDLGopLHI9bi5maW5kSW5kZXgoZT0+bnVsbCE9ZSYmIWx1KGksZSxiKSksbz1uLnJlZHVjZSgoZSx0LG4pPT5udWxsPT10fHxsdShpLHQsYik/ZTpuLC0xKSxhPW5bZnVuY3Rpb24oZSx7ZXZlbnQ6dCxvcmllbnRhdGlvbjpuLGxvb3A6cixydGw6byxjb2xzOmEsZGlzYWJsZWRJbmRpY2VzOmksbWluSW5kZXg6bCxtYXhJbmRleDpzLHByZXZJbmRleDpjLHN0b3BFdmVudDp1PSExfSl7bGV0IGQ9YztpZih0LmtleT09PWlwKXtpZih1JiZpcih0KSwtMT09PWMpZD1zO2Vsc2UgaWYoZD1sYyhlLHtzdGFydGluZ0luZGV4OmQsYW1vdW50OmEsZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczppfSksciYmKGMtYTxsfHxkPDApKXtsZXQgZT1jJWEsdD1zJWEsbj1zLSh0LWUpO2Q9dD09PWU/czp0PmU/bjpuLWF9bGkoZSxkKSYmKGQ9Yyl9aWYodC5rZXk9PT1paCYmKHUmJmlyKHQpLC0xPT09Yz9kPWw6KGQ9bGMoZSx7c3RhcnRpbmdJbmRleDpjLGFtb3VudDphLGRpc2FibGVkSW5kaWNlczppfSksciYmYythPnMmJihkPWxjKGUse3N0YXJ0aW5nSW5kZXg6YyVhLWEsYW1vdW50OmEsZGlzYWJsZWRJbmRpY2VzOml9KSkpLGxpKGUsZCkmJihkPWMpKSxcImJvdGhcIj09PW4pe2xldCBuPWlYKGMvYSk7dC5rZXk9PT0obz9pdTppZCkmJih1JiZpcih0KSxjJWEhPWEtMT8oZD1sYyhlLHtzdGFydGluZ0luZGV4OmMsZGlzYWJsZWRJbmRpY2VzOml9KSxyJiZsYShkLGEsbikmJihkPWxjKGUse3N0YXJ0aW5nSW5kZXg6Yy1jJWEtMSxkaXNhYmxlZEluZGljZXM6aX0pKSk6ciYmKGQ9bGMoZSx7c3RhcnRpbmdJbmRleDpjLWMlYS0xLGRpc2FibGVkSW5kaWNlczppfSkpLGxhKGQsYSxuKSYmKGQ9YykpLHQua2V5PT09KG8/aWQ6aXUpJiYodSYmaXIodCksYyVhIT0wPyhkPWxjKGUse3N0YXJ0aW5nSW5kZXg6YyxkZWNyZW1lbnQ6ITAsZGlzYWJsZWRJbmRpY2VzOml9KSxyJiZsYShkLGEsbikmJihkPWxjKGUse3N0YXJ0aW5nSW5kZXg6YysoYS1jJWEpLGRlY3JlbWVudDohMCxkaXNhYmxlZEluZGljZXM6aX0pKSk6ciYmKGQ9bGMoZSx7c3RhcnRpbmdJbmRleDpjKyhhLWMlYSksZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczppfSkpLGxhKGQsYSxuKSYmKGQ9YykpO2xldCBsPWlYKHMvYSk9PT1uO2xpKGUsZCkmJihkPXImJmw/dC5rZXk9PT0obz9pZDppdSk/czpsYyhlLHtzdGFydGluZ0luZGV4OmMtYyVhLTEsZGlzYWJsZWRJbmRpY2VzOml9KTpjKX1yZXR1cm4gZH0oe2N1cnJlbnQ6bi5tYXAoZT0+bnVsbCE9ZT9pLmN1cnJlbnRbZV06bnVsbCl9LHtldmVudDplLG9yaWVudGF0aW9uOkEsbG9vcDpmLHJ0bDpoLGNvbHM6QyxkaXNhYmxlZEluZGljZXM6KGM9Wy4uLihcImZ1bmN0aW9uXCIhPXR5cGVvZiBiP2I6bnVsbCl8fGkuY3VycmVudC5tYXAoKGUsdCk9Pmx1KGksdCxiKT90OnZvaWQgMCksdm9pZCAwXSxuLmZsYXRNYXAoKGUsdCk9PmMuaW5jbHVkZXMoZSk/W3RdOltdKSksbWluSW5kZXg6cixtYXhJbmRleDpvLHByZXZJbmRleDpmdW5jdGlvbihlLHQsbixyLG8pe2lmKC0xPT09ZSlyZXR1cm4gLTE7bGV0IGE9bi5pbmRleE9mKGUpLGk9dFtlXTtzd2l0Y2gobyl7Y2FzZVwidGxcIjpyZXR1cm4gYTtjYXNlXCJ0clwiOmlmKCFpKXJldHVybiBhO3JldHVybiBhK2kud2lkdGgtMTtjYXNlXCJibFwiOmlmKCFpKXJldHVybiBhO3JldHVybiBhKyhpLmhlaWdodC0xKSpyO2Nhc2VcImJyXCI6cmV0dXJuIG4ubGFzdEluZGV4T2YoZSk7ZGVmYXVsdDpyZXR1cm4gLTF9fSh6LmN1cnJlbnQ+eT9nOnouY3VycmVudCx0LG4sQyxlLmtleT09PWloP1wiYmxcIjplLmtleT09PShoP2l1OmlkKT9cInRyXCI6XCJ0bFwiKSxzdG9wRXZlbnQ6ITB9KV07aWYobnVsbCE9YSYmKHouY3VycmVudD1hLEwoKSksXCJib3RoXCI9PT1BKXJldHVybn1pZihsaChlLmtleSxBKSl7aWYoaXIoZSksbiYmIW0mJmltKGUuY3VycmVudFRhcmdldC5vd25lckRvY3VtZW50KT09PWUuY3VycmVudFRhcmdldCl7ei5jdXJyZW50PWxtKGUua2V5LEEsaCk/Zzp5LEwoKTtyZXR1cm59bG0oZS5rZXksQSxoKT9mP3ouY3VycmVudD11Pj15P2QmJnUhPT1pLmN1cnJlbnQubGVuZ3RoPy0xOmc6bGMoaSx7c3RhcnRpbmdJbmRleDp1LGRpc2FibGVkSW5kaWNlczpifSk6ei5jdXJyZW50PU1hdGgubWluKHksbGMoaSx7c3RhcnRpbmdJbmRleDp1LGRpc2FibGVkSW5kaWNlczpifSkpOmY/ei5jdXJyZW50PXU8PWc/ZCYmLTEhPT11P2kuY3VycmVudC5sZW5ndGg6eTpsYyhpLHtzdGFydGluZ0luZGV4OnUsZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczpifSk6ei5jdXJyZW50PU1hdGgubWF4KGcsbGMoaSx7c3RhcnRpbmdJbmRleDp1LGRlY3JlbWVudDohMCxkaXNhYmxlZEluZGljZXM6Yn0pKSxsaShpLHouY3VycmVudCkmJih6LmN1cnJlbnQ9LTEpLEwoKX19KSxKPXgudXNlTWVtbygoKT0+bSYmbiYmSyYme1wiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCI6JH0sW20sbixLLCRdKSxlZT14LnVzZU1lbW8oKCk9Pih7XCJhcmlhLW9yaWVudGF0aW9uXCI6XCJib3RoXCI9PT1BP3ZvaWQgMDpBLC4uLiFQP0o6e30sb25LZXlEb3duKGUpe2lmKFwiVGFiXCI9PT1lLmtleSYmZS5zaGlmdEtleSYmbiYmIW0pe2lyKGUpLHIoITEsZS5uYXRpdmVFdmVudCxcImxpc3QtbmF2aWdhdGlvblwiKSxhRChvLmRvbVJlZmVyZW5jZSkmJm8uZG9tUmVmZXJlbmNlLmZvY3VzKCk7cmV0dXJufVEoZSl9LG9uUG9pbnRlck1vdmUoKXtELmN1cnJlbnQ9ITB9fSksW0osUSxBLFAscixuLG0sby5kb21SZWZlcmVuY2VdKSxldD14LnVzZU1lbW8oKCk9PntmdW5jdGlvbiBlKGUpe1wiYXV0b1wiPT09ZyYmaW8oZS5uYXRpdmVFdmVudCkmJihJLmN1cnJlbnQ9ITApfWZ1bmN0aW9uIHQoZSl7SS5jdXJyZW50PWcsXCJhdXRvXCI9PT1nJiZpYShlLm5hdGl2ZUV2ZW50KSYmKEkuY3VycmVudD0hMCl9cmV0dXJuey4uLkosb25LZXlEb3duKGUpe3ZhciB0LG87RC5jdXJyZW50PSExO2xldCBhPWUua2V5LnN0YXJ0c1dpdGgoXCJBcnJvd1wiKSxsPSh0PWUua2V5LG89RygpLGxwKG8saD90PT09aXU6dD09PWlkLHQ9PT1paCkpLHM9bGgoZS5rZXksQSksYz0ocD9sOnMpfHxcIkVudGVyXCI9PT1lLmtleXx8XCJcIj09PWUua2V5LnRyaW0oKTtpZihtJiZuKXJldHVybiBRKGUpO2lmKG58fHZ8fCFhKXtpZihjKXtsZXQgdD1saChlLmtleSxHKCkpO1QuY3VycmVudD1wJiZ0P251bGw6ZS5rZXl9aWYocCl7bCYmKGlyKGUpLG4/KHouY3VycmVudD1sbChpLEYuY3VycmVudCksTCgpKTpyKCEwLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIikpO3JldHVybn1zJiYobnVsbCE9dSYmKHouY3VycmVudD11KSxpcihlKSwhbiYmdj9yKCEwLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIik6UShlKSxuJiZMKCkpfX0sb25Gb2N1cygpe24mJiFtJiYoei5jdXJyZW50PS0xLEwoKSl9LG9uUG9pbnRlckRvd246dCxvblBvaW50ZXJFbnRlcjp0LG9uTW91c2VEb3duOmUsb25DbGljazplfX0sW0osUSxGLGcsaSxwLEwscixuLHYsQSxHLGgsdSxtXSk7cmV0dXJuIHgudXNlTWVtbygoKT0+Yz97cmVmZXJlbmNlOmV0LGZsb2F0aW5nOmVlLGl0ZW06WH06e30sW2MsZXQsZWUsWF0pfShlbSx7ZW5hYmxlZDohcyxsaXN0UmVmOlIsYWN0aXZlSW5kZXg6aixuZXN0ZWQ6dm9pZCAwIT09dC50eXBlLGxvb3A6dSxvcmllbnRhdGlvbjpkLHBhcmVudE9yaWVudGF0aW9uOlwibWVudWJhclwiPT09dC50eXBlP3QuY29udGV4dC5vcmllbnRhdGlvbjp2b2lkIDAscnRsOlwicnRsXCI9PT1leCxkaXNhYmxlZEluZGljZXM6bFYsb25OYXZpZ2F0ZTpTLG9wZW5PbkFycm93S2V5RG93bjpcImNvbnRleHQtbWVudVwiIT09dC50eXBlfSksZUM9eC51c2VSZWYoITEpLGVfPWZ1bmN0aW9uKGUsdCl7bGV0e29wZW46bixkYXRhUmVmOnJ9PWUse2xpc3RSZWY6byxhY3RpdmVJbmRleDphLG9uTWF0Y2g6aSxvblR5cGluZ0NoYW5nZTpsLGVuYWJsZWQ6cz0hMCxmaW5kTWF0Y2g6Yz1udWxsLHJlc2V0TXM6dT03NTAsaWdub3JlS2V5czpkPVtdLHNlbGVjdGVkSW5kZXg6Zj1udWxsfT10LHA9YWMoKSxoPXgudXNlUmVmKFwiXCIpLG09eC51c2VSZWYoZj8/YT8/LTEpLGc9eC51c2VSZWYobnVsbCkseT1hZihpKSx2PWFmKGwpLGI9YTAoYyksQT1hMChkKTtheCgoKT0+e24mJihwLmNsZWFyKCksZy5jdXJyZW50PW51bGwsaC5jdXJyZW50PVwiXCIpfSxbbixwXSksYXgoKCk9PntuJiZcIlwiPT09aC5jdXJyZW50JiYobS5jdXJyZW50PWY/P2E/Py0xKX0sW24sZixhXSk7bGV0IHc9YWYoZT0+e2U/ci5jdXJyZW50LnR5cGluZ3x8KHIuY3VycmVudC50eXBpbmc9ZSx2KGUpKTpyLmN1cnJlbnQudHlwaW5nJiYoci5jdXJyZW50LnR5cGluZz1lLHYoZSkpfSksQz1hZihlPT57ZnVuY3Rpb24gdChlLHQsbil7bGV0IHI9Yi5jdXJyZW50P2IuY3VycmVudCh0LG4pOnQuZmluZChlPT5lPy50b0xvY2FsZUxvd2VyQ2FzZSgpLmluZGV4T2Yobi50b0xvY2FsZUxvd2VyQ2FzZSgpKT09PTApO3JldHVybiByP2UuaW5kZXhPZihyKTotMX1sZXQgcj1vLmN1cnJlbnQ7aWYoaC5jdXJyZW50Lmxlbmd0aD4wJiZcIiBcIiE9PWguY3VycmVudFswXSYmKC0xPT09dChyLHIsaC5jdXJyZW50KT93KCExKTpcIiBcIj09PWUua2V5JiZpcihlKSksbnVsbD09cnx8QS5jdXJyZW50LmluY2x1ZGVzKGUua2V5KXx8MSE9PWUua2V5Lmxlbmd0aHx8ZS5jdHJsS2V5fHxlLm1ldGFLZXl8fGUuYWx0S2V5KXJldHVybjtuJiZcIiBcIiE9PWUua2V5JiYoaXIoZSksdyghMCkpLHIuZXZlcnkoZT0+IWV8fGVbMF0/LnRvTG9jYWxlTG93ZXJDYXNlKCkhPT1lWzFdPy50b0xvY2FsZUxvd2VyQ2FzZSgpKSYmaC5jdXJyZW50PT09ZS5rZXkmJihoLmN1cnJlbnQ9XCJcIixtLmN1cnJlbnQ9Zy5jdXJyZW50KSxoLmN1cnJlbnQrPWUua2V5LHAuc3RhcnQodSwoKT0+e2guY3VycmVudD1cIlwiLG0uY3VycmVudD1nLmN1cnJlbnQsdyghMSl9KTtsZXQgYT1tLmN1cnJlbnQsaT10KHIsWy4uLnIuc2xpY2UoKGF8fDApKzEpLC4uLnIuc2xpY2UoMCwoYXx8MCkrMSldLGguY3VycmVudCk7LTEhPT1pPyh5KGkpLGcuY3VycmVudD1pKTpcIiBcIiE9PWUua2V5JiYoaC5jdXJyZW50PVwiXCIsdyghMSkpfSksXz14LnVzZU1lbW8oKCk9Pih7b25LZXlEb3duOkN9KSxbQ10pLGs9eC51c2VNZW1vKCgpPT4oe29uS2V5RG93bjpDLG9uS2V5VXAoZSl7XCIgXCI9PT1lLmtleSYmdyghMSl9fSksW0Msd10pO3JldHVybiB4LnVzZU1lbW8oKCk9PnM/e3JlZmVyZW5jZTpfLGZsb2F0aW5nOmt9Ont9LFtzLF8sa10pfShlbSx7bGlzdFJlZjpNLGFjdGl2ZUluZGV4OmoscmVzZXRNczo1MDAsb25NYXRjaDplPT57WSYmZSE9PWomJlMoZSl9LG9uVHlwaW5nQ2hhbmdlOngudXNlQ2FsbGJhY2soZT0+e2VDLmN1cnJlbnQ9ZX0sW10pfSkse2dldFJlZmVyZW5jZVByb3BzOmVrLGdldEZsb2F0aW5nUHJvcHM6ZUUsZ2V0SXRlbVByb3BzOmVqfT1sZyhbZWcsZXYsZWIsZXksZUEsZXcsZV9dKSxlUz1mdW5jdGlvbihlKXtsZXR7ZW5hYmxlZDp0PSEwLG1vdXNlRG93bkFjdGlvbjpuLG9wZW46cn09ZSxvPXgudXNlUmVmKCExKTtyZXR1cm4geC51c2VNZW1vKCgpPT50P3tvbk1vdXNlRG93bjplPT57KFwib3BlblwiPT09biYmIXJ8fFwiY2xvc2VcIj09PW4mJnIpJiYoby5jdXJyZW50PSEwLGxFKGUuY3VycmVudFRhcmdldCkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsKCk9PntvLmN1cnJlbnQ9ITF9LHtvbmNlOiEwfSkpfSxvbkNsaWNrOmU9PntvLmN1cnJlbnQmJihvLmN1cnJlbnQ9ITEsZS5wcmV2ZW50QmFzZVVJSGFuZGxlcigpKX19OmlSLFt0LG4scl0pfSh7b3BlbjpZLGVuYWJsZWQ6XCJtZW51YmFyXCI9PT10LnR5cGUsbW91c2VEb3duQWN0aW9uOlwib3BlblwifSksZU89eC51c2VNZW1vKCgpPT57bGV0IGU9bE0oZWsoKSx7b25Nb3VzZUVudGVyKCl7RSghMCl9LG9uTW91c2VNb3ZlKCl7JCghMCl9fSxlcixlUyk7cmV0dXJuIGRlbGV0ZSBlLnJvbGUsZX0sW2VrLGVTLCQsZXJdKSxlQj14LnVzZU1lbW8oKCk9PmVFKHtvbk1vdXNlRW50ZXIoKXtXJiZcIm1lbnVcIiE9PXQudHlwZXx8RSghMSl9LG9uTW91c2VNb3ZlKCl7JCghMCl9LG9uQ2xpY2soKXtXJiZFKCExKX19KSxbZUUsVyx0LnR5cGUsJF0pLGVQPXgudXNlTWVtbygoKT0+ZWooKSxbZWpdKSxlST14LnVzZU1lbW8oKCk9Pih7YWN0aXZlSW5kZXg6aixzZXRBY3RpdmVJbmRleDpTLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6dC50eXBlP3QuY29udGV4dC5hbGxvd01vdXNlVXBUcmlnZ2VyUmVmOmwkLGZsb2F0aW5nUm9vdENvbnRleHQ6ZW0saXRlbVByb3BzOmVQLHBvcHVwUHJvcHM6ZUIsdHJpZ2dlclByb3BzOmVPLGl0ZW1Eb21FbGVtZW50czpSLGl0ZW1MYWJlbHM6TSxtb3VudGVkOkosb3BlbjpZLHBvcHVwUmVmOkwscG9zaXRpb25lclJlZjpOLHNldE9wZW46ZWgsc2V0UG9zaXRpb25lckVsZW1lbnQ6USx0cmlnZ2VyRWxlbWVudDp5LHNldFRyaWdnZXJFbGVtZW50OnYsdHJhbnNpdGlvblN0YXR1czpldCxsYXN0T3BlbkNoYW5nZVJlYXNvbjpPLGluc3RhbnRUeXBlOkMsb25PcGVuQ2hhbmdlQ29tcGxldGU6aSxzZXRIb3ZlckVuYWJsZWQ6RSx0eXBpbmdSZWY6ZUMsbW9kYWw6SCxkaXNhYmxlZDpzLHBhcmVudDp0LHJvb3RJZDpxLGFsbG93TW91c2VFbnRlcjpWLHNldEFsbG93TW91c2VFbnRlcjokfSksW2osZW0sZVAsZUIsZU8sUixNLEosWSxOLGVoLGV0LHksUSxPLEMsaSxILHMsdCxxLFYsJF0pLGV6PSgwLGIuanN4KShsYi5Qcm92aWRlcix7dmFsdWU6ZUksY2hpbGRyZW46cn0pO3JldHVybiB2b2lkIDA9PT10LnR5cGV8fFwiY29udGV4dC1tZW51XCI9PT10LnR5cGU/KDAsYi5qc3gpKGFqLHtjaGlsZHJlbjplen0pOmV6fTtmdW5jdGlvbiBsWShlLHQsbixyKXt2YXIgbyxhLGksbCxzO2xldCBjPWFhKGxLKS5jdXJyZW50O3JldHVybiBvPWMsYT1lLGk9dCxsPW4scz1yLChvLnJlZnNbMF0hPT1hfHxvLnJlZnNbMV0hPT1pfHxvLnJlZnNbMl0hPT1sfHxvLnJlZnNbM10hPT1zKSYmbFgoYyxbZSx0LG4scl0pLGMuY2FsbGJhY2t9ZnVuY3Rpb24gbEsoKXtyZXR1cm57Y2FsbGJhY2s6bnVsbCxjbGVhbnVwOm51bGwscmVmczpbXX19ZnVuY3Rpb24gbFgoZSx0KXtpZihlLnJlZnM9dCx0LmV2ZXJ5KGU9Pm51bGw9PWUpKXtlLmNhbGxiYWNrPW51bGw7cmV0dXJufWUuY2FsbGJhY2s9bj0+e2lmKGUuY2xlYW51cCYmKGUuY2xlYW51cCgpLGUuY2xlYW51cD1udWxsKSxudWxsIT1uKXtsZXQgcj1BcnJheSh0Lmxlbmd0aCkuZmlsbChudWxsKTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrPTEpe2xldCBvPXRbZV07aWYobnVsbCE9bylzd2l0Y2godHlwZW9mIG8pe2Nhc2VcImZ1bmN0aW9uXCI6e2xldCB0PW8obik7XCJmdW5jdGlvblwiPT10eXBlb2YgdCYmKHJbZV09dCk7YnJlYWt9Y2FzZVwib2JqZWN0XCI6by5jdXJyZW50PW59fWUuY2xlYW51cD0oKT0+e2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9MSl7bGV0IG49dFtlXTtpZihudWxsIT1uKXN3aXRjaCh0eXBlb2Ygbil7Y2FzZVwiZnVuY3Rpb25cIjp7bGV0IHQ9cltlXTtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QoKTpuKG51bGwpO2JyZWFrfWNhc2VcIm9iamVjdFwiOm4uY3VycmVudD1udWxsfX19fX19bGV0IGxHPWZ1bmN0aW9uKGUpe3JldHVybiBlLnN0YXJ0aW5nU3R5bGU9XCJkYXRhLXN0YXJ0aW5nLXN0eWxlXCIsZS5lbmRpbmdTdHlsZT1cImRhdGEtZW5kaW5nLXN0eWxlXCIsZX0oe30pLGxRPXtbbEcuc3RhcnRpbmdTdHlsZV06XCJcIn0sbEo9e1tsRy5lbmRpbmdTdHlsZV06XCJcIn0sbDA9e3RyYW5zaXRpb25TdGF0dXM6ZT0+XCJzdGFydGluZ1wiPT09ZT9sUTpcImVuZGluZ1wiPT09ZT9sSjpudWxsfSxsMT1mdW5jdGlvbihlKXtyZXR1cm4gZS5vcGVuPVwiZGF0YS1vcGVuXCIsZS5jbG9zZWQ9XCJkYXRhLWNsb3NlZFwiLGVbZS5zdGFydGluZ1N0eWxlPWxHLnN0YXJ0aW5nU3R5bGVdPVwic3RhcnRpbmdTdHlsZVwiLGVbZS5lbmRpbmdTdHlsZT1sRy5lbmRpbmdTdHlsZV09XCJlbmRpbmdTdHlsZVwiLGUuYW5jaG9ySGlkZGVuPVwiZGF0YS1hbmNob3ItaGlkZGVuXCIsZX0oe30pLGwyPWZ1bmN0aW9uKGUpe3JldHVybiBlLnBvcHVwT3Blbj1cImRhdGEtcG9wdXAtb3BlblwiLGUucHJlc3NlZD1cImRhdGEtcHJlc3NlZFwiLGV9KHt9KSxsND17W2wyLnBvcHVwT3Blbl06XCJcIn0sbDU9e1tsMi5wb3B1cE9wZW5dOlwiXCIsW2wyLnByZXNzZWRdOlwiXCJ9LGwzPXtbbDEub3Blbl06XCJcIn0sbDY9e1tsMS5jbG9zZWRdOlwiXCJ9LGw5PXtbbDEuYW5jaG9ySGlkZGVuXTpcIlwifSxsOD17b3BlbjplPT5lP2w0Om51bGx9LGw3PXtvcGVuOmU9PmU/bDU6bnVsbH0sc2U9e29wZW46ZT0+ZT9sMzpsNixhbmNob3JIaWRkZW46ZT0+ZT9sOTpudWxsfSxzdD1wYXJzZUludCh4LnZlcnNpb24sMTApO2Z1bmN0aW9uIHNuKGUsdCxuPXt9KXtsZXQgcj10LnJlbmRlcixvPWZ1bmN0aW9uKGUsdD17fSl7dmFyIG4scjtsZXQgbyx7Y2xhc3NOYW1lOmEscmVuZGVyOml9PWUse3N0YXRlOmw9aVIscmVmOnMscHJvcHM6YyxkaXNhYmxlU3R5bGVIb29rczp1LGN1c3RvbVN0eWxlSG9va01hcHBpbmc6ZCxlbmFibGVkOmY9ITB9PXQscD1mPyhuPWEscj1sLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bihyKTpuKTp2b2lkIDA7ITAhPT11JiYobz14LnVzZU1lbW8oKCk9PmY/ZnVuY3Rpb24oZSx0KXtsZXQgbj17fTtmb3IobGV0IHIgaW4gZSl7bGV0IG89ZVtyXTtpZih0Py5oYXNPd25Qcm9wZXJ0eShyKSl7bGV0IGU9dFtyXShvKTtudWxsIT1lJiZPYmplY3QuYXNzaWduKG4sZSk7Y29udGludWV9ITA9PT1vP25bYGRhdGEtJHtyLnRvTG93ZXJDYXNlKCl9YF09XCJcIjpvJiYobltgZGF0YS0ke3IudG9Mb3dlckNhc2UoKX1gXT1vLnRvU3RyaW5nKCkpfXJldHVybiBufShsLGQpOmlSLFtsLGQsZl0pKTtsZXQgaD1mP2xOKG8sQXJyYXkuaXNBcnJheShjKT9mdW5jdGlvbihlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIGxSO2lmKDE9PT1lLmxlbmd0aClyZXR1cm4gbEYoZVswXSxsUik7bGV0IHQ9ey4uLmxGKGVbMF0sbFIpfTtmb3IobGV0IG49MTtuPGUubGVuZ3RoO24rPTEpdD1sWih0LGVbbl0pO3JldHVybiB0fShjKTpjKT8/aVI6aVI7cmV0dXJuKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudCYmKGY/QXJyYXkuaXNBcnJheShzKT9oLnJlZj1mdW5jdGlvbihlKXt2YXIgdCxuO2xldCByPWFhKGxLKS5jdXJyZW50O3JldHVybiB0PXIsbj1lLCh0LnJlZnMubGVuZ3RoIT09bi5sZW5ndGh8fHQucmVmcy5zb21lKChlLHQpPT5lIT09blt0XSkpJiZsWChyLGUpLHIuY2FsbGJhY2t9KFtoLnJlZixzcihpKSwuLi5zXSk6aC5yZWY9bFkoaC5yZWYsc3IoaSkscyk6bFkobnVsbCxudWxsKSksZik/KHZvaWQgMCE9PXAmJihoLmNsYXNzTmFtZT1sSChoLmNsYXNzTmFtZSxwKSksaCk6aVJ9KHQsbik7cmV0dXJuITE9PT1uLmVuYWJsZWQ/bnVsbDpmdW5jdGlvbihlLHQsbixyKXtpZih0KXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KXJldHVybiB0KG4scik7bGV0IGU9bE0obix0LnByb3BzKTtyZXR1cm4gZS5yZWY9bi5yZWYseC5jbG9uZUVsZW1lbnQodCxlKX1pZihlJiZcInN0cmluZ1wiPT10eXBlb2YgZSl7dmFyIG8sYTtyZXR1cm4gbz1lLGE9bixcImJ1dHRvblwiPT09bz8oMCxiLmpzeCkoXCJidXR0b25cIix7dHlwZTpcImJ1dHRvblwiLC4uLmF9KTpcImltZ1wiPT09bz8oMCxiLmpzeCkoXCJpbWdcIix7YWx0OlwiXCIsLi4uYX0pOnguY3JlYXRlRWxlbWVudChvLGEpfXRocm93IEVycm9yKFwiQmFzZSBVSTogUmVuZGVyIGVsZW1lbnQgb3IgZnVuY3Rpb24gYXJlIG5vdCBkZWZpbmVkLlwiKX0oZSxyLG8sbi5zdGF0ZT8/aVIpfWZ1bmN0aW9uIHNyKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlP3N0Pj0xOT9lLnByb3BzLnJlZjplLnJlZjpudWxsfWxldCBzbz14LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBzYShlPSExKXtsZXQgdD14LnVzZUNvbnRleHQoc28pO2lmKHZvaWQgMD09PXQmJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogQ29tcG9zaXRlUm9vdENvbnRleHQgaXMgbWlzc2luZy4gQ29tcG9zaXRlIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8Q29tcG9zaXRlLlJvb3Q+LlwiKTtyZXR1cm4gdH1mdW5jdGlvbiBzaShlPXt9KXtsZXR7ZGlzYWJsZWQ6dD0hMSxmb2N1c2FibGVXaGVuRGlzYWJsZWQ6bix0YWJJbmRleDpyPTAsbmF0aXZlOm89ITB9PWUsYT14LnVzZVJlZihudWxsKSxpPXZvaWQgMCE9PXNhKCEwKSxsPWFmKCgpPT57bGV0IGU9YS5jdXJyZW50O3JldHVybiEhKGU/LnRhZ05hbWU9PT1cIkFcIiYmZT8uaHJlZil9KSx7cHJvcHM6c309ZnVuY3Rpb24oZSl7bGV0e2ZvY3VzYWJsZVdoZW5EaXNhYmxlZDp0LGRpc2FibGVkOm4sY29tcG9zaXRlOnI9ITEsdGFiSW5kZXg6bz0wLGlzTmF0aXZlQnV0dG9uOmF9PWUsaT1yJiYhMSE9PXQsbD1yJiYhMT09PXQ7cmV0dXJue3Byb3BzOngudXNlTWVtbygoKT0+e2xldCBlPXtvbktleURvd24oZSl7biYmdCYmXCJUYWJcIiE9PWUua2V5JiZlLnByZXZlbnREZWZhdWx0KCl9fTtyZXR1cm4gcnx8KGUudGFiSW5kZXg9bywhYSYmbiYmKGUudGFiSW5kZXg9dD9vOi0xKSksKGEmJih0fHxpKXx8IWEmJm4pJiYoZVtcImFyaWEtZGlzYWJsZWRcIl09biksYSYmKCF0fHxsKSYmKGUuZGlzYWJsZWQ9biksZX0sW3Isbix0LGksbCxhLG9dKX19KHtmb2N1c2FibGVXaGVuRGlzYWJsZWQ6bixkaXNhYmxlZDp0LGNvbXBvc2l0ZTppLHRhYkluZGV4OnIsaXNOYXRpdmVCdXR0b246b30pO3JldHVybiBheCgoKT0+e2xldCBlPWEuY3VycmVudDtlIGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQmJmkmJnQmJnZvaWQgMD09PXMuZGlzYWJsZWQmJmUuZGlzYWJsZWQmJihlLmRpc2FibGVkPSExKX0sW3Qscy5kaXNhYmxlZCxpXSkse2dldEJ1dHRvblByb3BzOngudXNlQ2FsbGJhY2soKGU9e30pPT57bGV0e29uQ2xpY2s6bixvbk1vdXNlRG93bjpyLG9uS2V5VXA6YSxvbktleURvd246aSxvblBvaW50ZXJEb3duOmMsLi4udX09ZTtyZXR1cm4gbE0oe3R5cGU6bz9cImJ1dHRvblwiOnZvaWQgMCxvbkNsaWNrKGUpe2lmKHQpcmV0dXJuIHZvaWQgZS5wcmV2ZW50RGVmYXVsdCgpO24/LihlKX0sb25Nb3VzZURvd24oZSl7dHx8cj8uKGUpfSxvbktleURvd24oZSl7aWYodHx8KGxxKGUpLGk/LihlKSksZS5iYXNlVUlIYW5kbGVyUHJldmVudGVkKXJldHVybjtsZXQgcj1lLnRhcmdldD09PWUuY3VycmVudFRhcmdldCYmIW8mJiFsKCkmJiF0LGE9XCJFbnRlclwiPT09ZS5rZXkscz1cIiBcIj09PWUua2V5O3ImJigoc3x8YSkmJmUucHJldmVudERlZmF1bHQoKSxhJiZuPy4oZSkpfSxvbktleVVwKGUpe3R8fChscShlKSxhPy4oZSkpLCFlLmJhc2VVSUhhbmRsZXJQcmV2ZW50ZWQmJihlLnRhcmdldCE9PWUuY3VycmVudFRhcmdldHx8b3x8dHx8XCIgXCIhPT1lLmtleXx8bj8uKGUpKX0sb25Qb2ludGVyRG93bihlKXtpZih0KXJldHVybiB2b2lkIGUucHJldmVudERlZmF1bHQoKTtjPy4oZSl9fSxvP3ZvaWQgMDp7cm9sZTpcImJ1dHRvblwifSxzLHUpfSxbdCxzLG8sbF0pLGJ1dHRvblJlZjphfX1sZXQgc2w9eC5jcmVhdGVDb250ZXh0KHtyZWdpc3RlcjooKT0+e30sdW5yZWdpc3RlcjooKT0+e30sc3Vic2NyaWJlTWFwQ2hhbmdlOigpPT4oKT0+e30sZWxlbWVudHNSZWY6e2N1cnJlbnQ6W119LG5leHRJbmRleFJlZjp7Y3VycmVudDowfX0pLHNzPWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuTm9uZT0wXT1cIk5vbmVcIixlW2UuR3Vlc3NGcm9tT3JkZXI9MV09XCJHdWVzc0Zyb21PcmRlclwiLGV9KHt9KTtmdW5jdGlvbiBzYyhlPXt9KXtsZXR7bGFiZWw6dCxtZXRhZGF0YTpuLHRleHRSZWY6cixpbmRleEd1ZXNzQmVoYXZpb3I6b309ZSx7cmVnaXN0ZXI6YSx1bnJlZ2lzdGVyOmksc3Vic2NyaWJlTWFwQ2hhbmdlOmwsZWxlbWVudHNSZWY6cyxsYWJlbHNSZWY6YyxuZXh0SW5kZXhSZWY6dX09eC51c2VDb250ZXh0KHNsKSxkPXgudXNlUmVmKC0xKSxbZixwXT14LnVzZVN0YXRlKG89PT1zcy5HdWVzc0Zyb21PcmRlcj8oKT0+e2lmKC0xPT09ZC5jdXJyZW50KXtsZXQgZT11LmN1cnJlbnQ7dS5jdXJyZW50Kz0xLGQuY3VycmVudD1lfXJldHVybiBkLmN1cnJlbnR9Oi0xKSxoPXgudXNlUmVmKG51bGwpLG09eC51c2VDYWxsYmFjayhlPT57aWYoaC5jdXJyZW50PWUsLTEhPT1mJiZudWxsIT09ZSYmKHMuY3VycmVudFtmXT1lLGMpKXtsZXQgbj12b2lkIDAhPT10O2MuY3VycmVudFtmXT1uP3Q6cj8uY3VycmVudD8udGV4dENvbnRlbnQ/P2UudGV4dENvbnRlbnR9fSxbZixzLGMsdCxyXSk7cmV0dXJuIGF4KCgpPT57bGV0IGU9aC5jdXJyZW50O2lmKGUpcmV0dXJuIGEoZSxuKSwoKT0+e2koZSl9fSxbYSxpLG5dKSxheCgoKT0+bChlPT57bGV0IHQ9aC5jdXJyZW50P2UuZ2V0KGguY3VycmVudCk/LmluZGV4Om51bGw7bnVsbCE9dCYmcCh0KX0pLFtsLHBdKSx4LnVzZU1lbW8oKCk9Pih7cmVmOm0saW5kZXg6Zn0pLFtmLG1dKX1mdW5jdGlvbiBzdShlKXtsZXR7cmVuZGVyOnQsY2xhc3NOYW1lOm4sc3RhdGU6cj1pUixwcm9wczpvPWlNLHJlZnM6YT1pTSxtZXRhZGF0YTppLGN1c3RvbVN0eWxlSG9va01hcHBpbmc6bCx0YWc6cz1cImRpdlwiLC4uLmN9PWUse2NvbXBvc2l0ZVByb3BzOnUsY29tcG9zaXRlUmVmOmR9PWZ1bmN0aW9uKGU9e30pe2xldHtoaWdobGlnaHRJdGVtT25Ib3Zlcjp0LGhpZ2hsaWdodGVkSW5kZXg6bixvbkhpZ2hsaWdodGVkSW5kZXhDaGFuZ2U6cn09c2EoKSx7cmVmOm8saW5kZXg6YX09c2MoZSksaT1uPT09YSxsPXgudXNlUmVmKG51bGwpLHM9bFkobyxsKTtyZXR1cm57Y29tcG9zaXRlUHJvcHM6eC51c2VNZW1vKCgpPT4oe3RhYkluZGV4Omk/MDotMSxvbkZvY3VzKCl7cihhKX0sb25Nb3VzZU1vdmUoKXtsZXQgZT1sLmN1cnJlbnQ7aWYoIXR8fCFlKXJldHVybjtsZXQgbj1lLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxcInRydWVcIj09PWUuYXJpYURpc2FibGVkO2l8fG58fGUuZm9jdXMoKX19KSxbaSxyLGEsdF0pLGNvbXBvc2l0ZVJlZjpzLGluZGV4OmF9fSh7bWV0YWRhdGE6aX0pO3JldHVybiBzbihzLGUse3N0YXRlOnIscmVmOlsuLi5hLGRdLHByb3BzOlt1LC4uLm8sY10sY3VzdG9tU3R5bGVIb29rTWFwcGluZzpsfSl9bGV0IHNkPXguZm9yd2FyZFJlZihmdW5jdGlvbihlLHQpe2xldHtyZW5kZXI6bixjbGFzc05hbWU6cixkaXNhYmxlZDpvPSExLG5hdGl2ZUJ1dHRvbjphPSEwLC4uLml9PWUse3RyaWdnZXJQcm9wczpsLGRpc2FibGVkOnMsc2V0VHJpZ2dlckVsZW1lbnQ6YyxvcGVuOnUsYWxsb3dNb3VzZVVwVHJpZ2dlclJlZjpkLHBvc2l0aW9uZXJSZWY6ZixwYXJlbnQ6cCxsYXN0T3BlbkNoYW5nZVJlYXNvbjpoLHJvb3RJZDptfT1sQSgpLGc9b3x8cyx5PXgudXNlUmVmKG51bGwpLHY9YWMoKSx7Z2V0QnV0dG9uUHJvcHM6QSxidXR0b25SZWY6d309c2koe2Rpc2FibGVkOmcsbmF0aXZlOmF9KSxDPWxZKHcsYykse2V2ZW50czpffT1haygpO3gudXNlRWZmZWN0KCgpPT57dXx8dm9pZCAwIT09cC50eXBlfHwoZC5jdXJyZW50PSExKX0sW2QsdSxwLnR5cGVdKTtsZXQgaz1hZihlPT57aWYoIXkuY3VycmVudClyZXR1cm47di5jbGVhcigpLGQuY3VycmVudD0hMTtsZXQgdD1lLnRhcmdldDtpZihpZyh5LmN1cnJlbnQsdCl8fGlnKGYuY3VycmVudCx0KXx8dD09PXkuY3VycmVudHx8bnVsbCE9dCYmZnVuY3Rpb24gZSh0KXtyZXR1cm4gYUQodCkmJnQuaGFzQXR0cmlidXRlKFwiZGF0YS1yb290b3duZXJpZFwiKT90LmdldEF0dHJpYnV0ZShcImRhdGEtcm9vdG93bmVyaWRcIik/P3ZvaWQgMDphWSh0KT92b2lkIDA6ZShhRyh0KSl9KHQpPT09bSlyZXR1cm47bGV0IG49ZnVuY3Rpb24oZSl7bGV0IHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUsXCI6OmJlZm9yZVwiKSxyPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUsXCI6OmFmdGVyXCIpO2lmKFwibm9uZVwiPT09bi5jb250ZW50JiZcIm5vbmVcIj09PXIuY29udGVudClyZXR1cm4gdDtsZXQgbz1wYXJzZUZsb2F0KG4ud2lkdGgpfHwwLGE9cGFyc2VGbG9hdChuLmhlaWdodCl8fDAsaT1wYXJzZUZsb2F0KHIud2lkdGgpfHwwLGw9cGFyc2VGbG9hdChyLmhlaWdodCl8fDAscz1NYXRoLm1heCh0LndpZHRoLG8saSksYz1NYXRoLm1heCh0LmhlaWdodCxhLGwpLHU9cy10LndpZHRoLGQ9Yy10LmhlaWdodDtyZXR1cm57bGVmdDp0LmxlZnQtdS8yLHJpZ2h0OnQucmlnaHQrdS8yLHRvcDp0LnRvcC1kLzIsYm90dG9tOnQuYm90dG9tK2QvMn19KHkuY3VycmVudCk7ZS5jbGllbnRYPj1uLmxlZnQtMiYmZS5jbGllbnRYPD1uLnJpZ2h0KzImJmUuY2xpZW50WT49bi50b3AtMiYmZS5jbGllbnRZPD1uLmJvdHRvbSsyfHxfLmVtaXQoXCJjbG9zZVwiLHtkb21FdmVudDplLHJlYXNvbjpcImNhbmNlbC1vcGVuXCJ9KX0pO3gudXNlRWZmZWN0KCgpPT57dSYmXCJ0cmlnZ2VyLWhvdmVyXCI9PT1oJiZsRSh5LmN1cnJlbnQpLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsayx7b25jZTohMH0pfSxbdSxrLGhdKTtsZXQgRT1cIm1lbnViYXJcIj09PXAudHlwZSxqPXgudXNlQ2FsbGJhY2soZT0+bE0oRT97cm9sZTpcIm1lbnVpdGVtXCJ9Ont9LHtcImFyaWEtaGFzcG9wdXBcIjpcIm1lbnVcIixyZWY6Qyxvbk1vdXNlRG93bjplPT57dXx8KHYuc3RhcnQoMjAwLCgpPT57ZC5jdXJyZW50PSEwfSksbEUoZS5jdXJyZW50VGFyZ2V0KS5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLGsse29uY2U6ITB9KSl9fSxlLEEpLFtBLEMsdSxkLHYsayxFXSksUz14LnVzZU1lbW8oKCk9Pih7ZGlzYWJsZWQ6ZyxvcGVuOnV9KSxbZyx1XSksTz1beSx0LHddLEI9W2wsaSxqXSxQPXNuKFwiYnV0dG9uXCIsZSx7ZW5hYmxlZDohRSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOmw3LHN0YXRlOlMscmVmOk8scHJvcHM6Qn0pO3JldHVybiBFPygwLGIuanN4KShzdSx7dGFnOlwiYnV0dG9uXCIscmVuZGVyOm4sY2xhc3NOYW1lOnIsc3RhdGU6UyxyZWZzOk8scHJvcHM6QixjdXN0b21TdHlsZUhvb2tNYXBwaW5nOmw3fSk6UH0pLHNmPXtjbGlwOlwicmVjdCgwIDAgMCAwKVwiLG92ZXJmbG93OlwiaGlkZGVuXCIsd2hpdGVTcGFjZTpcIm5vd3JhcFwiLHBvc2l0aW9uOlwiZml4ZWRcIix0b3A6MCxsZWZ0OjAsYm9yZGVyOjAscGFkZGluZzowLHdpZHRoOjEsaGVpZ2h0OjEsbWFyZ2luOi0xfSxzcD14LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXRbbixyXT14LnVzZVN0YXRlKCk7cmV0dXJuIGF4KCgpPT57YTgmJnIoXCJidXR0b25cIil9LFtdKSwoMCxiLmpzeCkoXCJzcGFuXCIsey4uLmUscmVmOnQsdGFiSW5kZXg6MCxyb2xlOm4sXCJhcmlhLWhpZGRlblwiOiFufHx2b2lkIDAsc3R5bGU6c2YsXCJkYXRhLWJhc2UtdWktZm9jdXMtZ3VhcmRcIjpcIlwifSl9KTt2YXIgc2g9J2lucHV0Om5vdChbaW5lcnRdKSxzZWxlY3Q6bm90KFtpbmVydF0pLHRleHRhcmVhOm5vdChbaW5lcnRdKSxhW2hyZWZdOm5vdChbaW5lcnRdKSxidXR0b246bm90KFtpbmVydF0pLFt0YWJpbmRleF06bm90KHNsb3QpOm5vdChbaW5lcnRdKSxhdWRpb1tjb250cm9sc106bm90KFtpbmVydF0pLHZpZGVvW2NvbnRyb2xzXTpub3QoW2luZXJ0XSksW2NvbnRlbnRlZGl0YWJsZV06bm90KFtjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiXSk6bm90KFtpbmVydF0pLGRldGFpbHM+c3VtbWFyeTpmaXJzdC1vZi10eXBlOm5vdChbaW5lcnRdKSxkZXRhaWxzOm5vdChbaW5lcnRdKScsc209XCJ1bmRlZmluZWRcIj09dHlwZW9mIEVsZW1lbnQsc2c9c20/ZnVuY3Rpb24oKXt9OkVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXN8fEVsZW1lbnQucHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yfHxFbGVtZW50LnByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3Isc3k9IXNtJiZFbGVtZW50LnByb3RvdHlwZS5nZXRSb290Tm9kZT9mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gbnVsbD09ZXx8bnVsbD09KHQ9ZS5nZXRSb290Tm9kZSk/dm9pZCAwOnQuY2FsbChlKX06ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/dm9pZCAwOmUub3duZXJEb2N1bWVudH0sc3Y9ZnVuY3Rpb24gZSh0LG4pe3ZvaWQgMD09PW4mJihuPSEwKTt2YXIgcixvPW51bGw9PXR8fG51bGw9PShyPXQuZ2V0QXR0cmlidXRlKT92b2lkIDA6ci5jYWxsKHQsXCJpbmVydFwiKTtyZXR1cm5cIlwiPT09b3x8XCJ0cnVlXCI9PT1vfHxuJiZ0JiZlKHQucGFyZW50Tm9kZSl9LHNiPWZ1bmN0aW9uKGUpe3ZhciB0LG49bnVsbD09ZXx8bnVsbD09KHQ9ZS5nZXRBdHRyaWJ1dGUpP3ZvaWQgMDp0LmNhbGwoZSxcImNvbnRlbnRlZGl0YWJsZVwiKTtyZXR1cm5cIlwiPT09bnx8XCJ0cnVlXCI9PT1ufSxzQT1mdW5jdGlvbihlLHQsbil7aWYoc3YoZSkpcmV0dXJuW107dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KGUucXVlcnlTZWxlY3RvckFsbChzaCkpO3JldHVybiB0JiZzZy5jYWxsKGUsc2gpJiZyLnVuc2hpZnQoZSkscj1yLmZpbHRlcihuKX0sc3g9ZnVuY3Rpb24gZSh0LG4scil7Zm9yKHZhciBvPVtdLGE9QXJyYXkuZnJvbSh0KTthLmxlbmd0aDspe3ZhciBpPWEuc2hpZnQoKTtpZighc3YoaSwhMSkpaWYoXCJTTE9UXCI9PT1pLnRhZ05hbWUpe3ZhciBsPWkuYXNzaWduZWRFbGVtZW50cygpLHM9ZShsLmxlbmd0aD9sOmkuY2hpbGRyZW4sITAscik7ci5mbGF0dGVuP28ucHVzaC5hcHBseShvLHMpOm8ucHVzaCh7c2NvcGVQYXJlbnQ6aSxjYW5kaWRhdGVzOnN9KX1lbHNle3NnLmNhbGwoaSxzaCkmJnIuZmlsdGVyKGkpJiYobnx8IXQuaW5jbHVkZXMoaSkpJiZvLnB1c2goaSk7dmFyIGM9aS5zaGFkb3dSb290fHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmdldFNoYWRvd1Jvb3QmJnIuZ2V0U2hhZG93Um9vdChpKSx1PSFzdihjLCExKSYmKCFyLnNoYWRvd1Jvb3RGaWx0ZXJ8fHIuc2hhZG93Um9vdEZpbHRlcihpKSk7aWYoYyYmdSl7dmFyIGQ9ZSghMD09PWM/aS5jaGlsZHJlbjpjLmNoaWxkcmVuLCEwLHIpO3IuZmxhdHRlbj9vLnB1c2guYXBwbHkobyxkKTpvLnB1c2goe3Njb3BlUGFyZW50OmksY2FuZGlkYXRlczpkfSl9ZWxzZSBhLnVuc2hpZnQuYXBwbHkoYSxpLmNoaWxkcmVuKX19cmV0dXJuIG99LHN3PWZ1bmN0aW9uKGUpe3JldHVybiFpc05hTihwYXJzZUludChlLmdldEF0dHJpYnV0ZShcInRhYmluZGV4XCIpLDEwKSl9LHNDPWZ1bmN0aW9uKGUpe2lmKCFlKXRocm93IEVycm9yKFwiTm8gbm9kZSBwcm92aWRlZFwiKTtyZXR1cm4gZS50YWJJbmRleDwwJiYoL14oQVVESU98VklERU98REVUQUlMUykkLy50ZXN0KGUudGFnTmFtZSl8fHNiKGUpKSYmIXN3KGUpPzA6ZS50YWJJbmRleH0sc189ZnVuY3Rpb24oZSx0KXt2YXIgbj1zQyhlKTtyZXR1cm4gbjwwJiZ0JiYhc3coZSk/MDpufSxzaz1mdW5jdGlvbihlLHQpe3JldHVybiBlLnRhYkluZGV4PT09dC50YWJJbmRleD9lLmRvY3VtZW50T3JkZXItdC5kb2N1bWVudE9yZGVyOmUudGFiSW5kZXgtdC50YWJJbmRleH0sc0U9ZnVuY3Rpb24oZSl7cmV0dXJuXCJJTlBVVFwiPT09ZS50YWdOYW1lfSxzaj1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWlmKGVbbl0uY2hlY2tlZCYmZVtuXS5mb3JtPT09dClyZXR1cm4gZVtuXX0sc1M9ZnVuY3Rpb24oZSl7aWYoIWUubmFtZSlyZXR1cm4hMDt2YXIgdCxuPWUuZm9ybXx8c3koZSkscj1mdW5jdGlvbihlKXtyZXR1cm4gbi5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIicrZSsnXCJdJyl9O2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5DU1MmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHdpbmRvdy5DU1MuZXNjYXBlKXQ9cih3aW5kb3cuQ1NTLmVzY2FwZShlLm5hbWUpKTtlbHNlIHRyeXt0PXIoZS5uYW1lKX1jYXRjaChlKXtyZXR1cm4gY29uc29sZS5lcnJvcihcIkxvb2tzIGxpa2UgeW91IGhhdmUgYSByYWRpbyBidXR0b24gd2l0aCBhIG5hbWUgYXR0cmlidXRlIGNvbnRhaW5pbmcgaW52YWxpZCBDU1Mgc2VsZWN0b3IgY2hhcmFjdGVycyBhbmQgbmVlZCB0aGUgQ1NTLmVzY2FwZSBwb2x5ZmlsbDogJXNcIixlLm1lc3NhZ2UpLCExfXZhciBvPXNqKHQsZS5mb3JtKTtyZXR1cm4hb3x8bz09PWV9LHNPPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBzRSh0PWUpJiZcInJhZGlvXCI9PT10LnR5cGUmJiFzUyhlKX0sc0I9ZnVuY3Rpb24oZSl7dmFyIHQsbixyLG8sYSxpLGwscz1lJiZzeShlKSxjPW51bGw9PSh0PXMpP3ZvaWQgMDp0Lmhvc3QsdT0hMTtpZihzJiZzIT09ZSlmb3IodT0hIShudWxsIT0obj1jKSYmbnVsbCE9KHI9bi5vd25lckRvY3VtZW50KSYmci5jb250YWlucyhjKXx8bnVsbCE9ZSYmbnVsbCE9KG89ZS5vd25lckRvY3VtZW50KSYmby5jb250YWlucyhlKSk7IXUmJmM7KXU9ISEobnVsbCE9KGk9Yz1udWxsPT0oYT1zPXN5KGMpKT92b2lkIDA6YS5ob3N0KSYmbnVsbCE9KGw9aS5vd25lckRvY3VtZW50KSYmbC5jb250YWlucyhjKSk7cmV0dXJuIHV9LHNQPWZ1bmN0aW9uKGUpe3ZhciB0PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj10LndpZHRoLHI9dC5oZWlnaHQ7cmV0dXJuIDA9PT1uJiYwPT09cn0sc0k9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmRpc3BsYXlDaGVjayxyPXQuZ2V0U2hhZG93Um9vdDtpZihcImhpZGRlblwiPT09Z2V0Q29tcHV0ZWRTdHlsZShlKS52aXNpYmlsaXR5KXJldHVybiEwO3ZhciBvPXNnLmNhbGwoZSxcImRldGFpbHM+c3VtbWFyeTpmaXJzdC1vZi10eXBlXCIpP2UucGFyZW50RWxlbWVudDplO2lmKHNnLmNhbGwobyxcImRldGFpbHM6bm90KFtvcGVuXSkgKlwiKSlyZXR1cm4hMDtpZihuJiZcImZ1bGxcIiE9PW4mJlwibGVnYWN5LWZ1bGxcIiE9PW4pe2lmKFwibm9uLXplcm8tYXJlYVwiPT09bilyZXR1cm4gc1AoZSl9ZWxzZXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiByKXtmb3IodmFyIGE9ZTtlOyl7dmFyIGk9ZS5wYXJlbnRFbGVtZW50LGw9c3koZSk7aWYoaSYmIWkuc2hhZG93Um9vdCYmITA9PT1yKGkpKXJldHVybiBzUChlKTtlPWUuYXNzaWduZWRTbG90P2UuYXNzaWduZWRTbG90Oml8fGw9PT1lLm93bmVyRG9jdW1lbnQ/aTpsLmhvc3R9ZT1hfWlmKHNCKGUpKXJldHVybiFlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoO2lmKFwibGVnYWN5LWZ1bGxcIiE9PW4pcmV0dXJuITB9cmV0dXJuITF9LHN6PWZ1bmN0aW9uKGUpe2lmKC9eKElOUFVUfEJVVFRPTnxTRUxFQ1R8VEVYVEFSRUEpJC8udGVzdChlLnRhZ05hbWUpKWZvcih2YXIgdD1lLnBhcmVudEVsZW1lbnQ7dDspe2lmKFwiRklFTERTRVRcIj09PXQudGFnTmFtZSYmdC5kaXNhYmxlZCl7Zm9yKHZhciBuPTA7bjx0LmNoaWxkcmVuLmxlbmd0aDtuKyspe3ZhciByPXQuY2hpbGRyZW4uaXRlbShuKTtpZihcIkxFR0VORFwiPT09ci50YWdOYW1lKXJldHVybiEhc2cuY2FsbCh0LFwiZmllbGRzZXRbZGlzYWJsZWRdICpcIil8fCFyLmNvbnRhaW5zKGUpfXJldHVybiEwfXQ9dC5wYXJlbnRFbGVtZW50fXJldHVybiExfSxzVD1mdW5jdGlvbihlLHQpe3ZhciBuLHI7cmV0dXJuISh0LmRpc2FibGVkfHxzdih0KXx8c0Uobj10KSYmXCJoaWRkZW5cIj09PW4udHlwZXx8c0kodCxlKXx8XCJERVRBSUxTXCI9PT0ocj10KS50YWdOYW1lJiZBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoci5jaGlsZHJlbikuc29tZShmdW5jdGlvbihlKXtyZXR1cm5cIlNVTU1BUllcIj09PWUudGFnTmFtZX0pfHxzeih0KSl9LHNEPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIShzTyh0KXx8MD5zQyh0KSkmJiEhc1QoZSx0KX0sc0w9ZnVuY3Rpb24oZSl7dmFyIHQ9cGFyc2VJbnQoZS5nZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKSwxMCk7cmV0dXJuISFpc05hTih0KXx8ISEodD49MCl9LHNOPWZ1bmN0aW9uIGUodCl7dmFyIG49W10scj1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQsbyl7dmFyIGE9ISF0LnNjb3BlUGFyZW50LGk9YT90LnNjb3BlUGFyZW50OnQsbD1zXyhpLGEpLHM9YT9lKHQuY2FuZGlkYXRlcyk6aTswPT09bD9hP24ucHVzaC5hcHBseShuLHMpOm4ucHVzaChpKTpyLnB1c2goe2RvY3VtZW50T3JkZXI6byx0YWJJbmRleDpsLGl0ZW06dCxpc1Njb3BlOmEsY29udGVudDpzfSl9KSxyLnNvcnQoc2spLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiB0LmlzU2NvcGU/ZS5wdXNoLmFwcGx5KGUsdC5jb250ZW50KTplLnB1c2godC5jb250ZW50KSxlfSxbXSkuY29uY2F0KG4pfSxzUj1mdW5jdGlvbihlLHQpe3JldHVybiBzTigodD10fHx7fSkuZ2V0U2hhZG93Um9vdD9zeChbZV0sdC5pbmNsdWRlQ29udGFpbmVyLHtmaWx0ZXI6c0QuYmluZChudWxsLHQpLGZsYXR0ZW46ITEsZ2V0U2hhZG93Um9vdDp0LmdldFNoYWRvd1Jvb3Qsc2hhZG93Um9vdEZpbHRlcjpzTH0pOnNBKGUsdC5pbmNsdWRlQ29udGFpbmVyLHNELmJpbmQobnVsbCx0KSkpfSxzTT1mdW5jdGlvbihlLHQpe3JldHVybih0PXR8fHt9KS5nZXRTaGFkb3dSb290P3N4KFtlXSx0LmluY2x1ZGVDb250YWluZXIse2ZpbHRlcjpzVC5iaW5kKG51bGwsdCksZmxhdHRlbjohMCxnZXRTaGFkb3dSb290OnQuZ2V0U2hhZG93Um9vdH0pOnNBKGUsdC5pbmNsdWRlQ29udGFpbmVyLHNULmJpbmQobnVsbCx0KSl9LHNaPWZ1bmN0aW9uKGUsdCl7aWYodD10fHx7fSwhZSl0aHJvdyBFcnJvcihcIk5vIG5vZGUgcHJvdmlkZWRcIik7cmV0dXJuITEhPT1zZy5jYWxsKGUsc2gpJiZzRCh0LGUpfTtsZXQgc1U9KCk9Pih7Z2V0U2hhZG93Um9vdDohMCxkaXNwbGF5Q2hlY2s6XCJmdW5jdGlvblwiPT10eXBlb2YgUmVzaXplT2JzZXJ2ZXImJlJlc2l6ZU9ic2VydmVyLnRvU3RyaW5nKCkuaW5jbHVkZXMoXCJbbmF0aXZlIGNvZGVdXCIpP1wiZnVsbFwiOlwibm9uZVwifSk7ZnVuY3Rpb24gc0YoZSx0KXtsZXQgbj1zUihlLHNVKCkpLHI9bi5sZW5ndGg7aWYoMD09PXIpcmV0dXJuO2xldCBvPWltKGliKGUpKSxhPW4uaW5kZXhPZihvKTtyZXR1cm4gblstMT09PWE/MT09PXQ/MDpyLTE6YSt0XX1mdW5jdGlvbiBzcShlKXtyZXR1cm4gc0YoaWIoZSkuYm9keSwxKXx8ZX1mdW5jdGlvbiBzSChlKXtyZXR1cm4gc0YoaWIoZSkuYm9keSwtMSl8fGV9ZnVuY3Rpb24gc1YoZSx0KXtsZXQgbj10fHxlLmN1cnJlbnRUYXJnZXQscj1lLnJlbGF0ZWRUYXJnZXQ7cmV0dXJuIXJ8fCFpZyhuLHIpfWZ1bmN0aW9uIHMkKGUpe3NSKGUsc1UoKSkuZm9yRWFjaChlPT57ZS5kYXRhc2V0LnRhYmluZGV4PWUuZ2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIil8fFwiXCIsZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiLTFcIil9KX1mdW5jdGlvbiBzVyhlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS10YWJpbmRleF1cIikuZm9yRWFjaChlPT57bGV0IHQ9ZS5kYXRhc2V0LnRhYmluZGV4O2RlbGV0ZSBlLmRhdGFzZXQudGFiaW5kZXgsdD9lLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsdCk6ZS5yZW1vdmVBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKX0pfWxldCBzWT14LmNyZWF0ZUNvbnRleHQobnVsbCksc0s9KCk9PngudXNlQ29udGV4dChzWSksc1g9aUMoXCJwb3J0YWxcIik7ZnVuY3Rpb24gc0coZT17fSl7bGV0e2lkOnQscm9vdDpufT1lLHI9YWIoKSxvPXNLKCksW2EsaV09eC51c2VTdGF0ZShudWxsKSxsPXgudXNlUmVmKG51bGwpO3JldHVybiBheCgoKT0+KCk9PnthPy5yZW1vdmUoKSxxdWV1ZU1pY3JvdGFzaygoKT0+e2wuY3VycmVudD1udWxsfSl9LFthXSksYXgoKCk9PntpZighcnx8bC5jdXJyZW50KXJldHVybjtsZXQgZT10P2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpOm51bGw7aWYoIWUpcmV0dXJuO2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7bi5pZD1yLG4uc2V0QXR0cmlidXRlKHNYLFwiXCIpLGUuYXBwZW5kQ2hpbGQobiksbC5jdXJyZW50PW4saShuKX0sW3Qscl0pLGF4KCgpPT57aWYobnVsbD09PW58fCFyfHxsLmN1cnJlbnQpcmV0dXJuO2xldCBlPW58fG8/LnBvcnRhbE5vZGU7ZSYmIWF6KGUpJiYoZT1lLmN1cnJlbnQpLGU9ZXx8ZG9jdW1lbnQuYm9keTtsZXQgYT1udWxsO3QmJigoYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5pZD10LGUuYXBwZW5kQ2hpbGQoYSkpO2xldCBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7cy5pZD1yLHMuc2V0QXR0cmlidXRlKHNYLFwiXCIpLChlPWF8fGUpLmFwcGVuZENoaWxkKHMpLGwuY3VycmVudD1zLGkocyl9LFt0LG4scixvXSksYX1mdW5jdGlvbiBzUShlKXtsZXR7Y2hpbGRyZW46dCxpZDpuLHJvb3Q6cixwcmVzZXJ2ZVRhYk9yZGVyOm89ITB9PWUsYT1zRyh7aWQ6bixyb290OnJ9KSxbaSxsXT14LnVzZVN0YXRlKG51bGwpLHM9eC51c2VSZWYobnVsbCksYz14LnVzZVJlZihudWxsKSx1PXgudXNlUmVmKG51bGwpLGQ9eC51c2VSZWYobnVsbCksZj1pPy5tb2RhbCxwPWk/Lm9wZW4saD0hIWkmJiFpLm1vZGFsJiZpLm9wZW4mJm8mJiEhKHJ8fGEpO3JldHVybiB4LnVzZUVmZmVjdCgoKT0+e2lmKGEmJm8mJiFmKXJldHVybiBhLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsZSwhMCksYS5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIixlLCEwKSwoKT0+e2EucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIixlLCEwKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLGUsITApfTtmdW5jdGlvbiBlKGUpe2lmKGEmJnNWKGUpKXtsZXQgdD1cImZvY3VzaW5cIj09PWUudHlwZTsodD9zVzpzJCkoYSl9fX0sW2EsbyxmXSkseC51c2VFZmZlY3QoKCk9PnthJiYocHx8c1coYSkpfSxbcCxhXSksKDAsYi5qc3hzKShzWS5Qcm92aWRlcix7dmFsdWU6eC51c2VNZW1vKCgpPT4oe3ByZXNlcnZlVGFiT3JkZXI6byxiZWZvcmVPdXRzaWRlUmVmOnMsYWZ0ZXJPdXRzaWRlUmVmOmMsYmVmb3JlSW5zaWRlUmVmOnUsYWZ0ZXJJbnNpZGVSZWY6ZCxwb3J0YWxOb2RlOmEsc2V0Rm9jdXNNYW5hZ2VyU3RhdGU6bH0pLFtvLGFdKSxjaGlsZHJlbjpbaCYmYSYmKDAsYi5qc3gpKHNwLHtcImRhdGEtdHlwZVwiOlwib3V0c2lkZVwiLHJlZjpzLG9uRm9jdXM6ZT0+e2lmKHNWKGUsYSkpdS5jdXJyZW50Py5mb2N1cygpO2Vsc2V7bGV0IGU9c0goaT9pLmRvbVJlZmVyZW5jZTpudWxsKTtlPy5mb2N1cygpfX19KSxoJiZhJiYoMCxiLmpzeCkoXCJzcGFuXCIse1wiYXJpYS1vd25zXCI6YS5pZCxzdHlsZTpzZn0pLGEmJmVmLmNyZWF0ZVBvcnRhbCh0LGEpLGgmJmEmJigwLGIuanN4KShzcCx7XCJkYXRhLXR5cGVcIjpcIm91dHNpZGVcIixyZWY6YyxvbkZvY3VzOmU9PntpZihzVihlLGEpKWQuY3VycmVudD8uZm9jdXMoKTtlbHNle2xldCB0PXNxKGk/aS5kb21SZWZlcmVuY2U6bnVsbCk7dD8uZm9jdXMoKSxpPy5jbG9zZU9uRm9jdXNPdXQmJmk/Lm9uT3BlbkNoYW5nZSghMSxlLm5hdGl2ZUV2ZW50LFwiZm9jdXMtb3V0XCIpfX19KV19KX1sZXQgc0o9eC5jcmVhdGVDb250ZXh0KHZvaWQgMCk7ZnVuY3Rpb24gczAoZSl7bGV0e2NoaWxkcmVuOnQsa2VlcE1vdW50ZWQ6bj0hMSxjb250YWluZXI6cn09ZSx7bW91bnRlZDpvfT1sQSgpO3JldHVybiBvfHxuPygwLGIuanN4KShzSi5Qcm92aWRlcix7dmFsdWU6bixjaGlsZHJlbjooMCxiLmpzeCkoc1Ese3Jvb3Q6cixjaGlsZHJlbjp0fSl9KTpudWxsfWxldCBzMT14LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBzMihlLHQsbil7bGV0IHIse3JlZmVyZW5jZTpvLGZsb2F0aW5nOmF9PWUsaT1pNih0KSxsPWk0KGk2KHQpKSxzPWk1KGwpLGM9aTEodCksdT1cInlcIj09PWksZD1vLngrby53aWR0aC8yLWEud2lkdGgvMixmPW8ueStvLmhlaWdodC8yLWEuaGVpZ2h0LzIscD1vW3NdLzItYVtzXS8yO3N3aXRjaChjKXtjYXNlXCJ0b3BcIjpyPXt4OmQseTpvLnktYS5oZWlnaHR9O2JyZWFrO2Nhc2VcImJvdHRvbVwiOnI9e3g6ZCx5Om8ueStvLmhlaWdodH07YnJlYWs7Y2FzZVwicmlnaHRcIjpyPXt4Om8ueCtvLndpZHRoLHk6Zn07YnJlYWs7Y2FzZVwibGVmdFwiOnI9e3g6by54LWEud2lkdGgseTpmfTticmVhaztkZWZhdWx0OnI9e3g6by54LHk6by55fX1zd2l0Y2goaTIodCkpe2Nhc2VcInN0YXJ0XCI6cltsXS09cCoobiYmdT8tMToxKTticmVhaztjYXNlXCJlbmRcIjpyW2xdKz1wKihuJiZ1Py0xOjEpfXJldHVybiByfWxldCBzND1hc3luYyhlLHQsbik9PntsZXR7cGxhY2VtZW50OnI9XCJib3R0b21cIixzdHJhdGVneTpvPVwiYWJzb2x1dGVcIixtaWRkbGV3YXJlOmE9W10scGxhdGZvcm06aX09bixsPWEuZmlsdGVyKEJvb2xlYW4pLHM9YXdhaXQgKG51bGw9PWkuaXNSVEw/dm9pZCAwOmkuaXNSVEwodCkpLGM9YXdhaXQgaS5nZXRFbGVtZW50UmVjdHMoe3JlZmVyZW5jZTplLGZsb2F0aW5nOnQsc3RyYXRlZ3k6b30pLHt4OnUseTpkfT1zMihjLHIscyksZj1yLHA9e30saD0wO2ZvcihsZXQgbj0wO248bC5sZW5ndGg7bisrKXtsZXR7bmFtZTphLGZuOm19PWxbbl0se3g6Zyx5OnksZGF0YTp2LHJlc2V0OmJ9PWF3YWl0IG0oe3g6dSx5OmQsaW5pdGlhbFBsYWNlbWVudDpyLHBsYWNlbWVudDpmLHN0cmF0ZWd5Om8sbWlkZGxld2FyZURhdGE6cCxyZWN0czpjLHBsYXRmb3JtOmksZWxlbWVudHM6e3JlZmVyZW5jZTplLGZsb2F0aW5nOnR9fSk7dT1udWxsIT1nP2c6dSxkPW51bGwhPXk/eTpkLHA9ey4uLnAsW2FdOnsuLi5wW2FdLC4uLnZ9fSxiJiZoPD01MCYmKGgrKyxcIm9iamVjdFwiPT10eXBlb2YgYiYmKGIucGxhY2VtZW50JiYoZj1iLnBsYWNlbWVudCksYi5yZWN0cyYmKGM9ITA9PT1iLnJlY3RzP2F3YWl0IGkuZ2V0RWxlbWVudFJlY3RzKHtyZWZlcmVuY2U6ZSxmbG9hdGluZzp0LHN0cmF0ZWd5Om99KTpiLnJlY3RzKSx7eDp1LHk6ZH09czIoYyxmLHMpKSxuPS0xKX1yZXR1cm57eDp1LHk6ZCxwbGFjZW1lbnQ6ZixzdHJhdGVneTpvLG1pZGRsZXdhcmVEYXRhOnB9fTthc3luYyBmdW5jdGlvbiBzNShlLHQpe3ZhciBuO3ZvaWQgMD09PXQmJih0PXt9KTtsZXR7eDpyLHk6byxwbGF0Zm9ybTphLHJlY3RzOmksZWxlbWVudHM6bCxzdHJhdGVneTpzfT1lLHtib3VuZGFyeTpjPVwiY2xpcHBpbmdBbmNlc3RvcnNcIixyb290Qm91bmRhcnk6dT1cInZpZXdwb3J0XCIsZWxlbWVudENvbnRleHQ6ZD1cImZsb2F0aW5nXCIsYWx0Qm91bmRhcnk6Zj0hMSxwYWRkaW5nOnA9MH09aTAodCxlKSxoPWxyKHApLG09bFtmP1wiZmxvYXRpbmdcIj09PWQ/XCJyZWZlcmVuY2VcIjpcImZsb2F0aW5nXCI6ZF0sZz1sbyhhd2FpdCBhLmdldENsaXBwaW5nUmVjdCh7ZWxlbWVudDpudWxsPT0obj1hd2FpdCAobnVsbD09YS5pc0VsZW1lbnQ/dm9pZCAwOmEuaXNFbGVtZW50KG0pKSl8fG4/bTptLmNvbnRleHRFbGVtZW50fHxhd2FpdCAobnVsbD09YS5nZXREb2N1bWVudEVsZW1lbnQ/dm9pZCAwOmEuZ2V0RG9jdW1lbnRFbGVtZW50KGwuZmxvYXRpbmcpKSxib3VuZGFyeTpjLHJvb3RCb3VuZGFyeTp1LHN0cmF0ZWd5OnN9KSkseT1cImZsb2F0aW5nXCI9PT1kP3t4OnIseTpvLHdpZHRoOmkuZmxvYXRpbmcud2lkdGgsaGVpZ2h0OmkuZmxvYXRpbmcuaGVpZ2h0fTppLnJlZmVyZW5jZSx2PWF3YWl0IChudWxsPT1hLmdldE9mZnNldFBhcmVudD92b2lkIDA6YS5nZXRPZmZzZXRQYXJlbnQobC5mbG9hdGluZykpLGI9YXdhaXQgKG51bGw9PWEuaXNFbGVtZW50P3ZvaWQgMDphLmlzRWxlbWVudCh2KSkmJmF3YWl0IChudWxsPT1hLmdldFNjYWxlP3ZvaWQgMDphLmdldFNjYWxlKHYpKXx8e3g6MSx5OjF9LEE9bG8oYS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdD9hd2FpdCBhLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KHtlbGVtZW50czpsLHJlY3Q6eSxvZmZzZXRQYXJlbnQ6dixzdHJhdGVneTpzfSk6eSk7cmV0dXJue3RvcDooZy50b3AtQS50b3AraC50b3ApL2IueSxib3R0b206KEEuYm90dG9tLWcuYm90dG9tK2guYm90dG9tKS9iLnksbGVmdDooZy5sZWZ0LUEubGVmdCtoLmxlZnQpL2IueCxyaWdodDooQS5yaWdodC1nLnJpZ2h0K2gucmlnaHQpL2IueH19ZnVuY3Rpb24gczMoZSx0KXtyZXR1cm57dG9wOmUudG9wLXQuaGVpZ2h0LHJpZ2h0OmUucmlnaHQtdC53aWR0aCxib3R0b206ZS5ib3R0b20tdC5oZWlnaHQsbGVmdDplLmxlZnQtdC53aWR0aH19ZnVuY3Rpb24gczYoZSl7cmV0dXJuIGkkLnNvbWUodD0+ZVt0XT49MCl9bGV0IHM5PW5ldyBTZXQoW1wibGVmdFwiLFwidG9wXCJdKTthc3luYyBmdW5jdGlvbiBzOChlLHQpe2xldHtwbGFjZW1lbnQ6bixwbGF0Zm9ybTpyLGVsZW1lbnRzOm99PWUsYT1hd2FpdCAobnVsbD09ci5pc1JUTD92b2lkIDA6ci5pc1JUTChvLmZsb2F0aW5nKSksaT1pMShuKSxsPWkyKG4pLHM9XCJ5XCI9PT1pNihuKSxjPXM5LmhhcyhpKT8tMToxLHU9YSYmcz8tMToxLGQ9aTAodCxlKSx7bWFpbkF4aXM6Zixjcm9zc0F4aXM6cCxhbGlnbm1lbnRBeGlzOmh9PVwibnVtYmVyXCI9PXR5cGVvZiBkP3ttYWluQXhpczpkLGNyb3NzQXhpczowLGFsaWdubWVudEF4aXM6bnVsbH06e21haW5BeGlzOmQubWFpbkF4aXN8fDAsY3Jvc3NBeGlzOmQuY3Jvc3NBeGlzfHwwLGFsaWdubWVudEF4aXM6ZC5hbGlnbm1lbnRBeGlzfTtyZXR1cm4gbCYmXCJudW1iZXJcIj09dHlwZW9mIGgmJihwPVwiZW5kXCI9PT1sPy0xKmg6aCkscz97eDpwKnUseTpmKmN9Ont4OmYqYyx5OnAqdX19ZnVuY3Rpb24gczcoZSl7bGV0IHQ9YUsoZSksbj1wYXJzZUZsb2F0KHQud2lkdGgpfHwwLHI9cGFyc2VGbG9hdCh0LmhlaWdodCl8fDAsbz1hRChlKSxhPW8/ZS5vZmZzZXRXaWR0aDpuLGk9bz9lLm9mZnNldEhlaWdodDpyLGw9aUsobikhPT1hfHxpSyhyKSE9PWk7cmV0dXJuIGwmJihuPWEscj1pKSx7d2lkdGg6bixoZWlnaHQ6ciwkOmx9fWZ1bmN0aW9uIGNlKGUpe3JldHVybiBhVChlKT9lOmUuY29udGV4dEVsZW1lbnR9ZnVuY3Rpb24gY3QoZSl7bGV0IHQ9Y2UoZSk7aWYoIWFEKHQpKXJldHVybiBpRygxKTtsZXQgbj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHt3aWR0aDpyLGhlaWdodDpvLCQ6YX09czcodCksaT0oYT9pSyhuLndpZHRoKTpuLndpZHRoKS9yLGw9KGE/aUsobi5oZWlnaHQpOm4uaGVpZ2h0KS9vO3JldHVybiBpJiZOdW1iZXIuaXNGaW5pdGUoaSl8fChpPTEpLGwmJk51bWJlci5pc0Zpbml0ZShsKXx8KGw9MSkse3g6aSx5Omx9fWxldCBjbj1pRygwKTtmdW5jdGlvbiBjcihlKXtsZXQgdD1hUChlKTtyZXR1cm4gYSQoKSYmdC52aXN1YWxWaWV3cG9ydD97eDp0LnZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQseTp0LnZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcH06Y259ZnVuY3Rpb24gY28oZSx0LG4scil7dmFyIG8sYSxpO3ZvaWQgMD09PXQmJih0PSExKSx2b2lkIDA9PT1uJiYobj0hMSk7bGV0IGw9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPWNlKGUpLGM9aUcoMSk7dCYmKHI/YVQocikmJihjPWN0KHIpKTpjPWN0KGUpKTtsZXQgdT0obz1zLHZvaWQgMD09PShhPW4pJiYoYT0hMSksKGk9cikmJighYXx8aT09PWFQKG8pKSYmYSk/Y3Iocyk6aUcoMCksZD0obC5sZWZ0K3UueCkvYy54LGY9KGwudG9wK3UueSkvYy55LHA9bC53aWR0aC9jLngsaD1sLmhlaWdodC9jLnk7aWYocyl7bGV0IGU9YVAocyksdD1yJiZhVChyKT9hUChyKTpyLG49ZSxvPWFKKG4pO2Zvcig7byYmciYmdCE9PW47KXtsZXQgZT1jdChvKSx0PW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1hSyhvKSxhPXQubGVmdCsoby5jbGllbnRMZWZ0K3BhcnNlRmxvYXQoci5wYWRkaW5nTGVmdCkpKmUueCxpPXQudG9wKyhvLmNsaWVudFRvcCtwYXJzZUZsb2F0KHIucGFkZGluZ1RvcCkpKmUueTtkKj1lLngsZio9ZS55LHAqPWUueCxoKj1lLnksZCs9YSxmKz1pLG89YUoobj1hUChvKSl9fXJldHVybiBsbyh7d2lkdGg6cCxoZWlnaHQ6aCx4OmQseTpmfSl9ZnVuY3Rpb24gY2EoZSx0KXtsZXQgbj1hWChlKS5zY3JvbGxMZWZ0O3JldHVybiB0P3QubGVmdCtuOmNvKGFJKGUpKS5sZWZ0K259ZnVuY3Rpb24gY2koZSx0LG4pe3ZvaWQgMD09PW4mJihuPSExKTtsZXQgcj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89ci5sZWZ0K3Quc2Nyb2xsTGVmdC0obj8wOmNhKGUscikpO3JldHVybnt4Om8seTpyLnRvcCt0LnNjcm9sbFRvcH19bGV0IGNsPW5ldyBTZXQoW1wiYWJzb2x1dGVcIixcImZpeGVkXCJdKTtmdW5jdGlvbiBjcyhlLHQsbil7bGV0IHI7aWYoXCJ2aWV3cG9ydFwiPT09dClyPWZ1bmN0aW9uKGUsdCl7bGV0IG49YVAoZSkscj1hSShlKSxvPW4udmlzdWFsVmlld3BvcnQsYT1yLmNsaWVudFdpZHRoLGk9ci5jbGllbnRIZWlnaHQsbD0wLHM9MDtpZihvKXthPW8ud2lkdGgsaT1vLmhlaWdodDtsZXQgZT1hJCgpOyghZXx8ZSYmXCJmaXhlZFwiPT09dCkmJihsPW8ub2Zmc2V0TGVmdCxzPW8ub2Zmc2V0VG9wKX1yZXR1cm57d2lkdGg6YSxoZWlnaHQ6aSx4OmwseTpzfX0oZSxuKTtlbHNlIGlmKFwiZG9jdW1lbnRcIj09PXQpcj1mdW5jdGlvbihlKXtsZXQgdD1hSShlKSxuPWFYKGUpLHI9ZS5vd25lckRvY3VtZW50LmJvZHksbz1pWSh0LnNjcm9sbFdpZHRoLHQuY2xpZW50V2lkdGgsci5zY3JvbGxXaWR0aCxyLmNsaWVudFdpZHRoKSxhPWlZKHQuc2Nyb2xsSGVpZ2h0LHQuY2xpZW50SGVpZ2h0LHIuc2Nyb2xsSGVpZ2h0LHIuY2xpZW50SGVpZ2h0KSxpPS1uLnNjcm9sbExlZnQrY2EoZSksbD0tbi5zY3JvbGxUb3A7cmV0dXJuXCJydGxcIj09PWFLKHIpLmRpcmVjdGlvbiYmKGkrPWlZKHQuY2xpZW50V2lkdGgsci5jbGllbnRXaWR0aCktbykse3dpZHRoOm8saGVpZ2h0OmEseDppLHk6bH19KGFJKGUpKTtlbHNlIGlmKGFUKHQpKXI9ZnVuY3Rpb24oZSx0KXtsZXQgbj1jbyhlLCEwLFwiZml4ZWRcIj09PXQpLHI9bi50b3ArZS5jbGllbnRUb3Asbz1uLmxlZnQrZS5jbGllbnRMZWZ0LGE9YUQoZSk/Y3QoZSk6aUcoMSksaT1lLmNsaWVudFdpZHRoKmEueCxsPWUuY2xpZW50SGVpZ2h0KmEueSxzPW8qYS54O3JldHVybnt3aWR0aDppLGhlaWdodDpsLHg6cyx5OnIqYS55fX0odCxuKTtlbHNle2xldCBuPWNyKGUpO3I9e3g6dC54LW4ueCx5OnQueS1uLnksd2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHR9fXJldHVybiBsbyhyKX1mdW5jdGlvbiBjYyhlKXtyZXR1cm5cInN0YXRpY1wiPT09YUsoZSkucG9zaXRpb259ZnVuY3Rpb24gY3UoZSx0KXtpZighYUQoZSl8fFwiZml4ZWRcIj09PWFLKGUpLnBvc2l0aW9uKXJldHVybiBudWxsO2lmKHQpcmV0dXJuIHQoZSk7bGV0IG49ZS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGFJKGUpPT09biYmKG49bi5vd25lckRvY3VtZW50LmJvZHkpLG59ZnVuY3Rpb24gY2QoZSx0KXt2YXIgbjtsZXQgcj1hUChlKTtpZihhVShlKSlyZXR1cm4gcjtpZighYUQoZSkpe2xldCB0PWFHKGUpO2Zvcig7dCYmIWFZKHQpOyl7aWYoYVQodCkmJiFjYyh0KSlyZXR1cm4gdDt0PWFHKHQpfXJldHVybiByfWxldCBvPWN1KGUsdCk7Zm9yKDtvJiYobj1vLGFNLmhhcyhhQihuKSkpJiZjYyhvKTspbz1jdShvLHQpO3JldHVybiBvJiZhWShvKSYmY2MobykmJiFhVihvKT9yOm98fGZ1bmN0aW9uKGUpe2xldCB0PWFHKGUpO2Zvcig7YUQodCkmJiFhWSh0KTspe2lmKGFWKHQpKXJldHVybiB0O2lmKGFVKHQpKWJyZWFrO3Q9YUcodCl9cmV0dXJuIG51bGx9KGUpfHxyfWxldCBjZj1hc3luYyBmdW5jdGlvbihlKXtsZXQgdD10aGlzLmdldE9mZnNldFBhcmVudHx8Y2Qsbj10aGlzLmdldERpbWVuc2lvbnMscj1hd2FpdCBuKGUuZmxvYXRpbmcpO3JldHVybntyZWZlcmVuY2U6ZnVuY3Rpb24oZSx0LG4pe2xldCByPWFEKHQpLG89YUkodCksYT1cImZpeGVkXCI9PT1uLGk9Y28oZSwhMCxhLHQpLGw9e3Njcm9sbExlZnQ6MCxzY3JvbGxUb3A6MH0scz1pRygwKTtpZihyfHwhciYmIWEpaWYoKFwiYm9keVwiIT09YUIodCl8fGFSKG8pKSYmKGw9YVgodCkpLHIpe2xldCBlPWNvKHQsITAsYSx0KTtzLng9ZS54K3QuY2xpZW50TGVmdCxzLnk9ZS55K3QuY2xpZW50VG9wfWVsc2UgbyYmKHMueD1jYShvKSk7YSYmIXImJm8mJihzLng9Y2EobykpO2xldCBjPSFvfHxyfHxhP2lHKDApOmNpKG8sbCksdT1pLmxlZnQrbC5zY3JvbGxMZWZ0LXMueC1jLng7cmV0dXJue3g6dSx5OmkudG9wK2wuc2Nyb2xsVG9wLXMueS1jLnksd2lkdGg6aS53aWR0aCxoZWlnaHQ6aS5oZWlnaHR9fShlLnJlZmVyZW5jZSxhd2FpdCB0KGUuZmxvYXRpbmcpLGUuc3RyYXRlZ3kpLGZsb2F0aW5nOnt4OjAseTowLHdpZHRoOnIud2lkdGgsaGVpZ2h0OnIuaGVpZ2h0fX19LGNwPXtjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdDpmdW5jdGlvbihlKXtsZXR7ZWxlbWVudHM6dCxyZWN0Om4sb2Zmc2V0UGFyZW50OnIsc3RyYXRlZ3k6b309ZSxhPVwiZml4ZWRcIj09PW8saT1hSShyKSxsPSEhdCYmYVUodC5mbG9hdGluZyk7aWYocj09PWl8fGwmJmEpcmV0dXJuIG47bGV0IHM9e3Njcm9sbExlZnQ6MCxzY3JvbGxUb3A6MH0sYz1pRygxKSx1PWlHKDApLGQ9YUQocik7aWYoKGR8fCFkJiYhYSkmJigoXCJib2R5XCIhPT1hQihyKXx8YVIoaSkpJiYocz1hWChyKSksYUQocikpKXtsZXQgZT1jbyhyKTtjPWN0KHIpLHUueD1lLngrci5jbGllbnRMZWZ0LHUueT1lLnkrci5jbGllbnRUb3B9bGV0IGY9IWl8fGR8fGE/aUcoMCk6Y2koaSxzLCEwKTtyZXR1cm57d2lkdGg6bi53aWR0aCpjLngsaGVpZ2h0Om4uaGVpZ2h0KmMueSx4Om4ueCpjLngtcy5zY3JvbGxMZWZ0KmMueCt1LngrZi54LHk6bi55KmMueS1zLnNjcm9sbFRvcCpjLnkrdS55K2YueX19LGdldERvY3VtZW50RWxlbWVudDphSSxnZXRDbGlwcGluZ1JlY3Q6ZnVuY3Rpb24oZSl7bGV0e2VsZW1lbnQ6dCxib3VuZGFyeTpuLHJvb3RCb3VuZGFyeTpyLHN0cmF0ZWd5Om99PWUsYT1bLi4uXCJjbGlwcGluZ0FuY2VzdG9yc1wiPT09bj9hVSh0KT9bXTpmdW5jdGlvbihlLHQpe2xldCBuPXQuZ2V0KGUpO2lmKG4pcmV0dXJuIG47bGV0IHI9YVEoZSxbXSwhMSkuZmlsdGVyKGU9PmFUKGUpJiZcImJvZHlcIiE9PWFCKGUpKSxvPW51bGwsYT1cImZpeGVkXCI9PT1hSyhlKS5wb3NpdGlvbixpPWE/YUcoZSk6ZTtmb3IoO2FUKGkpJiYhYVkoaSk7KXtsZXQgdD1hSyhpKSxuPWFWKGkpO258fFwiZml4ZWRcIiE9PXQucG9zaXRpb258fChvPW51bGwpLChhPyFuJiYhbzohbiYmXCJzdGF0aWNcIj09PXQucG9zaXRpb24mJiEhbyYmY2wuaGFzKG8ucG9zaXRpb24pfHxhUihpKSYmIW4mJmZ1bmN0aW9uIGUodCxuKXtsZXQgcj1hRyh0KTtyZXR1cm4hKHI9PT1ufHwhYVQocil8fGFZKHIpKSYmKFwiZml4ZWRcIj09PWFLKHIpLnBvc2l0aW9ufHxlKHIsbikpfShlLGkpKT9yPXIuZmlsdGVyKGU9PmUhPT1pKTpvPXQsaT1hRyhpKX1yZXR1cm4gdC5zZXQoZSxyKSxyfSh0LHRoaXMuX2MpOltdLmNvbmNhdChuKSxyXSxpPWFbMF0sbD1hLnJlZHVjZSgoZSxuKT0+e2xldCByPWNzKHQsbixvKTtyZXR1cm4gZS50b3A9aVkoci50b3AsZS50b3ApLGUucmlnaHQ9aVcoci5yaWdodCxlLnJpZ2h0KSxlLmJvdHRvbT1pVyhyLmJvdHRvbSxlLmJvdHRvbSksZS5sZWZ0PWlZKHIubGVmdCxlLmxlZnQpLGV9LGNzKHQsaSxvKSk7cmV0dXJue3dpZHRoOmwucmlnaHQtbC5sZWZ0LGhlaWdodDpsLmJvdHRvbS1sLnRvcCx4OmwubGVmdCx5OmwudG9wfX0sZ2V0T2Zmc2V0UGFyZW50OmNkLGdldEVsZW1lbnRSZWN0czpjZixnZXRDbGllbnRSZWN0czpmdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkuZnJvbShlLmdldENsaWVudFJlY3RzKCkpfSxnZXREaW1lbnNpb25zOmZ1bmN0aW9uKGUpe2xldHt3aWR0aDp0LGhlaWdodDpufT1zNyhlKTtyZXR1cm57d2lkdGg6dCxoZWlnaHQ6bn19LGdldFNjYWxlOmN0LGlzRWxlbWVudDphVCxpc1JUTDpmdW5jdGlvbihlKXtyZXR1cm5cInJ0bFwiPT09YUsoZSkuZGlyZWN0aW9ufX07ZnVuY3Rpb24gY2goZSx0KXtyZXR1cm4gZS54PT09dC54JiZlLnk9PT10LnkmJmUud2lkdGg9PT10LndpZHRoJiZlLmhlaWdodD09PXQuaGVpZ2h0fWZ1bmN0aW9uIGNtKGUsdCxuLHIpe2xldCBvO3ZvaWQgMD09PXImJihyPXt9KTtsZXR7YW5jZXN0b3JTY3JvbGw6YT0hMCxhbmNlc3RvclJlc2l6ZTppPSEwLGVsZW1lbnRSZXNpemU6bD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBSZXNpemVPYnNlcnZlcixsYXlvdXRTaGlmdDpzPVwiZnVuY3Rpb25cIj09dHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyLGFuaW1hdGlvbkZyYW1lOmM9ITF9PXIsdT1jZShlKSxkPWF8fGk/Wy4uLnU/YVEodSk6W10sLi4uYVEodCldOltdO2QuZm9yRWFjaChlPT57YSYmZS5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsbix7cGFzc2l2ZTohMH0pLGkmJmUuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLG4pfSk7bGV0IGY9dSYmcz9mdW5jdGlvbihlLHQpe2xldCBuLHI9bnVsbCxvPWFJKGUpO2Z1bmN0aW9uIGEoKXt2YXIgZTtjbGVhclRpbWVvdXQobiksbnVsbD09KGU9cil8fGUuZGlzY29ubmVjdCgpLHI9bnVsbH1yZXR1cm4hZnVuY3Rpb24gaShsLHMpe3ZvaWQgMD09PWwmJihsPSExKSx2b2lkIDA9PT1zJiYocz0xKSxhKCk7bGV0IGM9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx7bGVmdDp1LHRvcDpkLHdpZHRoOmYsaGVpZ2h0OnB9PWM7aWYobHx8dCgpLCFmfHwhcClyZXR1cm47bGV0IGg9aVgoZCksbT1pWChvLmNsaWVudFdpZHRoLSh1K2YpKSxnPWlYKG8uY2xpZW50SGVpZ2h0LShkK3ApKSx5PXtyb290TWFyZ2luOi1oK1wicHggXCIrLW0rXCJweCBcIistZytcInB4IFwiKy1pWCh1KStcInB4XCIsdGhyZXNob2xkOmlZKDAsaVcoMSxzKSl8fDF9LHY9ITA7ZnVuY3Rpb24gYih0KXtsZXQgcj10WzBdLmludGVyc2VjdGlvblJhdGlvO2lmKHIhPT1zKXtpZighdilyZXR1cm4gaSgpO3I/aSghMSxyKTpuPXNldFRpbWVvdXQoKCk9PntpKCExLDFlLTcpfSwxZTMpfTEhPT1yfHxjaChjLGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpfHxpKCksdj0hMX10cnl7cj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoYix7Li4ueSxyb290Om8ub3duZXJEb2N1bWVudH0pfWNhdGNoKGUpe3I9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGIseSl9ci5vYnNlcnZlKGUpfSghMCksYX0odSxuKTpudWxsLHA9LTEsaD1udWxsO2wmJihoPW5ldyBSZXNpemVPYnNlcnZlcihlPT57bGV0W3JdPWU7ciYmci50YXJnZXQ9PT11JiZoJiYoaC51bm9ic2VydmUodCksY2FuY2VsQW5pbWF0aW9uRnJhbWUocCkscD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt2YXIgZTtudWxsPT0oZT1oKXx8ZS5vYnNlcnZlKHQpfSkpLG4oKX0pLHUmJiFjJiZoLm9ic2VydmUodSksaC5vYnNlcnZlKHQpKTtsZXQgbT1jP2NvKGUpOm51bGw7cmV0dXJuIGMmJmZ1bmN0aW9uIHQoKXtsZXQgcj1jbyhlKTttJiYhY2gobSxyKSYmbigpLG09cixvPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0KX0oKSxuKCksKCk9Pnt2YXIgZTtkLmZvckVhY2goZT0+e2EmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLG4pLGkmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLG4pfSksbnVsbD09Znx8ZigpLG51bGw9PShlPWgpfHxlLmRpc2Nvbm5lY3QoKSxoPW51bGwsYyYmY2FuY2VsQW5pbWF0aW9uRnJhbWUobyl9fXZhciBjZz1cInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQsY3k9Y2c/eC51c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oKXt9O2Z1bmN0aW9uIGN2KGUsdCl7bGV0IG4scixvO2lmKGU9PT10KXJldHVybiEwO2lmKHR5cGVvZiBlIT10eXBlb2YgdClyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiZlLnRvU3RyaW5nKCk9PT10LnRvU3RyaW5nKCkpcmV0dXJuITA7aWYoZSYmdCYmXCJvYmplY3RcIj09dHlwZW9mIGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2lmKChuPWUubGVuZ3RoKSE9PXQubGVuZ3RoKXJldHVybiExO2ZvcihyPW47MCE9ci0tOylpZighY3YoZVtyXSx0W3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1pZigobj0obz1PYmplY3Qua2V5cyhlKSkubGVuZ3RoKSE9PU9iamVjdC5rZXlzKHQpLmxlbmd0aClyZXR1cm4hMTtmb3Iocj1uOzAhPXItLTspaWYoISh7fSkuaGFzT3duUHJvcGVydHkuY2FsbCh0LG9bcl0pKXJldHVybiExO2ZvcihyPW47MCE9ci0tOyl7bGV0IG49b1tyXTtpZigoXCJfb3duZXJcIiE9PW58fCFlLiQkdHlwZW9mKSYmIWN2KGVbbl0sdFtuXSkpcmV0dXJuITF9cmV0dXJuITB9cmV0dXJuIGUhPWUmJnQhPXR9ZnVuY3Rpb24gY2IoZSl7cmV0dXJuXCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdz8xOihlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZGV2aWNlUGl4ZWxSYXRpb3x8MX1mdW5jdGlvbiBjQShlLHQpe2xldCBuPWNiKGUpO3JldHVybiBNYXRoLnJvdW5kKHQqbikvbn1mdW5jdGlvbiBjeChlKXtsZXQgdD14LnVzZVJlZihlKTtyZXR1cm4gY3koKCk9Pnt0LmN1cnJlbnQ9ZX0pLHR9ZnVuY3Rpb24gY3coZSx0LG4pe2xldCByPVwiaW5saW5lLXN0YXJ0XCI9PT1lfHxcImlubGluZS1lbmRcIj09PWU7cmV0dXJuKHt0b3A6XCJ0b3BcIixyaWdodDpyP24/XCJpbmxpbmUtc3RhcnRcIjpcImlubGluZS1lbmRcIjpcInJpZ2h0XCIsYm90dG9tOlwiYm90dG9tXCIsbGVmdDpyP24/XCJpbmxpbmUtZW5kXCI6XCJpbmxpbmUtc3RhcnRcIjpcImxlZnRcIn0pW3RdfWZ1bmN0aW9uIGNDKGUsdCxuKXtsZXR7cmVjdHM6cixwbGFjZW1lbnQ6b309ZTtyZXR1cm57c2lkZTpjdyh0LGkxKG8pLG4pLGFsaWduOmkyKG8pfHxcImNlbnRlclwiLGFuY2hvcjp7d2lkdGg6ci5yZWZlcmVuY2Uud2lkdGgsaGVpZ2h0OnIucmVmZXJlbmNlLmhlaWdodH0scG9zaXRpb25lcjp7d2lkdGg6ci5mbG9hdGluZy53aWR0aCxoZWlnaHQ6ci5mbG9hdGluZy5oZWlnaHR9fX1mdW5jdGlvbiBjXyhlKXt2YXIgdCxuLHIsbyxhO2xldCBpLGwscyxjLHUsZCxmLHAsaCxtLGcseSx2LHthbmNob3I6Yixwb3NpdGlvbk1ldGhvZDpBPVwiYWJzb2x1dGVcIixzaWRlOnc9XCJib3R0b21cIixzaWRlT2Zmc2V0OkM9MCxhbGlnbjpfPVwiY2VudGVyXCIsYWxpZ25PZmZzZXQ6az0wLGNvbGxpc2lvbkJvdW5kYXJ5OkUsY29sbGlzaW9uUGFkZGluZzpqPTUsc3RpY2t5OlM9ITEsYXJyb3dQYWRkaW5nOk89NSx0cmFja0FuY2hvcjpCPSEwLGtlZXBNb3VudGVkOlA9ITEsZmxvYXRpbmdSb290Q29udGV4dDpJLG1vdW50ZWQ6eixjb2xsaXNpb25Bdm9pZGFuY2U6VCxzaGlmdENyb3NzQXhpczpEPSExLG5vZGVJZDpMLGFkYXB0aXZlT3JpZ2luOk59PWUsUj1ULnNpZGV8fFwiZmxpcFwiLE09VC5hbGlnbnx8XCJmbGlwXCIsWj1ULmZhbGxiYWNrQXhpc1NpZGV8fFwiZW5kXCIsVT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBiP2I6dm9pZCAwLEY9YWYoVSkscT1VP0Y6YixIPWEwKGIpLFY9XCJydGxcIj09PWxrKCksJD17dG9wOlwidG9wXCIscmlnaHQ6XCJyaWdodFwiLGJvdHRvbTpcImJvdHRvbVwiLGxlZnQ6XCJsZWZ0XCIsXCJpbmxpbmUtZW5kXCI6Vj9cImxlZnRcIjpcInJpZ2h0XCIsXCJpbmxpbmUtc3RhcnRcIjpWP1wicmlnaHRcIjpcImxlZnRcIn1bd10sVz1cImNlbnRlclwiPT09Xz8kOmAkeyR9LSR7X31gLFk9e2JvdW5kYXJ5OlwiY2xpcHBpbmctYW5jZXN0b3JzXCI9PT1FP1wiY2xpcHBpbmdBbmNlc3RvcnNcIjpFLHBhZGRpbmc6an0sSz14LnVzZVJlZihudWxsKSxYPWEwKEMpLEc9YTAoayksUT1cImZ1bmN0aW9uXCIhPXR5cGVvZiBDP0M6MCxKPVsoaT1lPT57bGV0IHQ9Y0MoZSx3LFYpLG49XCJmdW5jdGlvblwiPT10eXBlb2YgWC5jdXJyZW50P1guY3VycmVudCh0KTpYLmN1cnJlbnQscj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBHLmN1cnJlbnQ/Ry5jdXJyZW50KHQpOkcuY3VycmVudDtyZXR1cm57bWFpbkF4aXM6bixjcm9zc0F4aXM6cixhbGlnbm1lbnRBeGlzOnJ9fSxsPVtRLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGs/azowLFYsd10sey4uLih2b2lkIDA9PT0odD1pKSYmKHQ9MCkse25hbWU6XCJvZmZzZXRcIixvcHRpb25zOnQsYXN5bmMgZm4oZSl7dmFyIG4scjtsZXR7eDpvLHk6YSxwbGFjZW1lbnQ6aSxtaWRkbGV3YXJlRGF0YTpsfT1lLHM9YXdhaXQgczgoZSx0KTtyZXR1cm4gaT09PShudWxsPT0obj1sLm9mZnNldCk/dm9pZCAwOm4ucGxhY2VtZW50KSYmbnVsbCE9KHI9bC5hcnJvdykmJnIuYWxpZ25tZW50T2Zmc2V0P3t9Ont4Om8rcy54LHk6YStzLnksZGF0YTp7Li4ucyxwbGFjZW1lbnQ6aX19fX0pLG9wdGlvbnM6W2ksbF19KV0sZWU9XCJub25lXCI9PT1NJiZcInNoaWZ0XCIhPT1SLGV0PSFlZSYmKFN8fER8fFwic2hpZnRcIj09PVIpLGVuPVwibm9uZVwiPT09Uj9udWxsOnsuLi57bmFtZTpcImZsaXBcIixvcHRpb25zOm49cz17Li4uWSxtYWluQXhpczohRCYmXCJmbGlwXCI9PT1SLGNyb3NzQXhpczpcImZsaXBcIj09PU0mJlwiYWxpZ25tZW50XCIsZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbjpafSxhc3luYyBmbihlKXt2YXIgdCxyLG8sYSxpO2xldHtwbGFjZW1lbnQ6bCxtaWRkbGV3YXJlRGF0YTpzLHJlY3RzOmMsaW5pdGlhbFBsYWNlbWVudDp1LHBsYXRmb3JtOmQsZWxlbWVudHM6Zn09ZSx7bWFpbkF4aXM6cD0hMCxjcm9zc0F4aXM6aD0hMCxmYWxsYmFja1BsYWNlbWVudHM6bSxmYWxsYmFja1N0cmF0ZWd5Omc9XCJiZXN0Rml0XCIsZmFsbGJhY2tBeGlzU2lkZURpcmVjdGlvbjp5PVwibm9uZVwiLGZsaXBBbGlnbm1lbnQ6dj0hMCwuLi5ifT1pMChuLGUpO2lmKG51bGwhPSh0PXMuYXJyb3cpJiZ0LmFsaWdubWVudE9mZnNldClyZXR1cm57fTtsZXQgQT1pMShsKSx4PWk2KHUpLHc9aTEodSk9PT11LEM9YXdhaXQgKG51bGw9PWQuaXNSVEw/dm9pZCAwOmQuaXNSVEwoZi5mbG9hdGluZykpLF89bXx8KHd8fCF2P1tsbih1KV06ZnVuY3Rpb24oZSl7bGV0IHQ9bG4oZSk7cmV0dXJuW2k5KGUpLHQsaTkodCldfSh1KSksaz1cIm5vbmVcIiE9PXk7IW0mJmsmJl8ucHVzaCguLi5mdW5jdGlvbihlLHQsbixyKXtsZXQgbz1pMihlKSxhPWZ1bmN0aW9uKGUsdCxuKXtzd2l0Y2goZSl7Y2FzZVwidG9wXCI6Y2FzZVwiYm90dG9tXCI6aWYobilyZXR1cm4gdD9pNzppODtyZXR1cm4gdD9pODppNztjYXNlXCJsZWZ0XCI6Y2FzZVwicmlnaHRcIjpyZXR1cm4gdD9sZTpsdDtkZWZhdWx0OnJldHVybltdfX0oaTEoZSksXCJzdGFydFwiPT09bixyKTtyZXR1cm4gbyYmKGE9YS5tYXAoZT0+ZStcIi1cIitvKSx0JiYoYT1hLmNvbmNhdChhLm1hcChpOSkpKSksYX0odSx2LHksQykpO2xldCBFPVt1LC4uLl9dLGo9YXdhaXQgczUoZSxiKSxTPVtdLE89KG51bGw9PShyPXMuZmxpcCk/dm9pZCAwOnIub3ZlcmZsb3dzKXx8W107aWYocCYmUy5wdXNoKGpbQV0pLGgpe2xldCBlPWZ1bmN0aW9uKGUsdCxuKXt2b2lkIDA9PT1uJiYobj0hMSk7bGV0IHI9aTIoZSksbz1pNChpNihlKSksYT1pNShvKSxpPVwieFwiPT09bz9yPT09KG4/XCJlbmRcIjpcInN0YXJ0XCIpP1wicmlnaHRcIjpcImxlZnRcIjpcInN0YXJ0XCI9PT1yP1wiYm90dG9tXCI6XCJ0b3BcIjtyZXR1cm4gdC5yZWZlcmVuY2VbYV0+dC5mbG9hdGluZ1thXSYmKGk9bG4oaSkpLFtpLGxuKGkpXX0obCxjLEMpO1MucHVzaChqW2VbMF1dLGpbZVsxXV0pfWlmKE89Wy4uLk8se3BsYWNlbWVudDpsLG92ZXJmbG93czpTfV0sIVMuZXZlcnkoZT0+ZTw9MCkpe2xldCBlPSgobnVsbD09KG89cy5mbGlwKT92b2lkIDA6by5pbmRleCl8fDApKzEsdD1FW2VdO2lmKHQmJihcImFsaWdubWVudFwiIT09aHx8eD09PWk2KHQpfHxPLmV2ZXJ5KGU9Pmk2KGUucGxhY2VtZW50KSE9PXh8fGUub3ZlcmZsb3dzWzBdPjApKSlyZXR1cm57ZGF0YTp7aW5kZXg6ZSxvdmVyZmxvd3M6T30scmVzZXQ6e3BsYWNlbWVudDp0fX07bGV0IG49bnVsbD09KGE9Ty5maWx0ZXIoZT0+ZS5vdmVyZmxvd3NbMF08PTApLnNvcnQoKGUsdCk9PmUub3ZlcmZsb3dzWzFdLXQub3ZlcmZsb3dzWzFdKVswXSk/dm9pZCAwOmEucGxhY2VtZW50O2lmKCFuKXN3aXRjaChnKXtjYXNlXCJiZXN0Rml0XCI6e2xldCBlPW51bGw9PShpPU8uZmlsdGVyKGU9PntpZihrKXtsZXQgdD1pNihlLnBsYWNlbWVudCk7cmV0dXJuIHQ9PT14fHxcInlcIj09PXR9cmV0dXJuITB9KS5tYXAoZT0+W2UucGxhY2VtZW50LGUub3ZlcmZsb3dzLmZpbHRlcihlPT5lPjApLnJlZHVjZSgoZSx0KT0+ZSt0LDApXSkuc29ydCgoZSx0KT0+ZVsxXS10WzFdKVswXSk/dm9pZCAwOmlbMF07ZSYmKG49ZSk7YnJlYWt9Y2FzZVwiaW5pdGlhbFBsYWNlbWVudFwiOm49dX1pZihsIT09bilyZXR1cm57cmVzZXQ6e3BsYWNlbWVudDpufX19cmV0dXJue319fSxvcHRpb25zOltzLGNdfSxlcj1lZT9udWxsOih1PWU9Pnt2YXIgdDtsZXQgbixyLG89bEUoZS5lbGVtZW50cy5mbG9hdGluZykuZG9jdW1lbnRFbGVtZW50O3JldHVybnsuLi5ZLHJvb3RCb3VuZGFyeTpEP3t4OjAseTowLHdpZHRoOm8uY2xpZW50V2lkdGgsaGVpZ2h0Om8uY2xpZW50SGVpZ2h0fTp2b2lkIDAsbWFpbkF4aXM6XCJub25lXCIhPT1NLGNyb3NzQXhpczpldCxsaW1pdGVyOlN8fEQ/dm9pZCAwOnsuLi4odm9pZCAwPT09KHQ9bj0oKT0+e2lmKCFLLmN1cnJlbnQpcmV0dXJue307bGV0e2hlaWdodDplfT1LLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue29mZnNldDplLzIrKFwibnVtYmVyXCI9PXR5cGVvZiBqP2o6MCl9fSkmJih0PXt9KSx7b3B0aW9uczp0LGZuKGUpe2xldHt4Om4seTpyLHBsYWNlbWVudDpvLHJlY3RzOmEsbWlkZGxld2FyZURhdGE6aX09ZSx7b2Zmc2V0Omw9MCxtYWluQXhpczpzPSEwLGNyb3NzQXhpczpjPSEwfT1pMCh0LGUpLHU9e3g6bix5OnJ9LGQ9aTYobyksZj1pNChkKSxwPXVbZl0saD11W2RdLG09aTAobCxlKSxnPVwibnVtYmVyXCI9PXR5cGVvZiBtP3ttYWluQXhpczptLGNyb3NzQXhpczowfTp7bWFpbkF4aXM6MCxjcm9zc0F4aXM6MCwuLi5tfTtpZihzKXtsZXQgZT1cInlcIj09PWY/XCJoZWlnaHRcIjpcIndpZHRoXCIsdD1hLnJlZmVyZW5jZVtmXS1hLmZsb2F0aW5nW2VdK2cubWFpbkF4aXMsbj1hLnJlZmVyZW5jZVtmXSthLnJlZmVyZW5jZVtlXS1nLm1haW5BeGlzO3A8dD9wPXQ6cD5uJiYocD1uKX1pZihjKXt2YXIgeSx2O2xldCBlPVwieVwiPT09Zj9cIndpZHRoXCI6XCJoZWlnaHRcIix0PXM5LmhhcyhpMShvKSksbj1hLnJlZmVyZW5jZVtkXS1hLmZsb2F0aW5nW2VdKyh0JiYobnVsbD09KHk9aS5vZmZzZXQpP3ZvaWQgMDp5W2RdKXx8MCkrKHQ/MDpnLmNyb3NzQXhpcykscj1hLnJlZmVyZW5jZVtkXSthLnJlZmVyZW5jZVtlXSsodD8wOihudWxsPT0odj1pLm9mZnNldCk/dm9pZCAwOnZbZF0pfHwwKS0odD9nLmNyb3NzQXhpczowKTtoPG4/aD1uOmg+ciYmKGg9cil9cmV0dXJue1tmXTpwLFtkXTpofX19KSxvcHRpb25zOltuLHJdfX19LGQ9W1ksUyxELGosTV0sey4uLih2b2lkIDA9PT0ocj11KSYmKHI9e30pLHtuYW1lOlwic2hpZnRcIixvcHRpb25zOnIsYXN5bmMgZm4oZSl7bGV0e3g6dCx5Om4scGxhY2VtZW50Om99PWUse21haW5BeGlzOmE9ITAsY3Jvc3NBeGlzOmk9ITEsbGltaXRlcjpsPXtmbjplPT57bGV0e3g6dCx5Om59PWU7cmV0dXJue3g6dCx5Om59fX0sLi4uc309aTAocixlKSxjPXt4OnQseTpufSx1PWF3YWl0IHM1KGUscyksZD1pNihpMShvKSksZj1pNChkKSxwPWNbZl0saD1jW2RdO2lmKGEpe2xldCBlPVwieVwiPT09Zj9cInRvcFwiOlwibGVmdFwiLHQ9XCJ5XCI9PT1mP1wiYm90dG9tXCI6XCJyaWdodFwiLG49cCt1W2VdLHI9cC11W3RdO3A9aVkobixpVyhwLHIpKX1pZihpKXtsZXQgZT1cInlcIj09PWQ/XCJ0b3BcIjpcImxlZnRcIix0PVwieVwiPT09ZD9cImJvdHRvbVwiOlwicmlnaHRcIixuPWgrdVtlXSxyPWgtdVt0XTtoPWlZKG4saVcoaCxyKSl9bGV0IG09bC5mbih7Li4uZSxbZl06cCxbZF06aH0pO3JldHVybnsuLi5tLGRhdGE6e3g6bS54LXQseTptLnktbixlbmFibGVkOntbZl06YSxbZF06aX19fX19KSxvcHRpb25zOlt1LGRdfSk7XCJzaGlmdFwiPT09Unx8XCJzaGlmdFwiPT09TXx8XCJjZW50ZXJcIj09PV8/Si5wdXNoKGVyLGVuKTpKLnB1c2goZW4sZXIpLEoucHVzaCh7Li4ue25hbWU6XCJzaXplXCIsb3B0aW9uczpvPWY9ey4uLlksYXBwbHkoe2VsZW1lbnRzOntmbG9hdGluZzplfSxyZWN0czp7cmVmZXJlbmNlOnR9LGF2YWlsYWJsZVdpZHRoOm4sYXZhaWxhYmxlSGVpZ2h0OnJ9KXtPYmplY3QuZW50cmllcyh7XCItLWF2YWlsYWJsZS13aWR0aFwiOmAke259cHhgLFwiLS1hdmFpbGFibGUtaGVpZ2h0XCI6YCR7cn1weGAsXCItLWFuY2hvci13aWR0aFwiOmAke3Qud2lkdGh9cHhgLFwiLS1hbmNob3ItaGVpZ2h0XCI6YCR7dC5oZWlnaHR9cHhgfSkuZm9yRWFjaCgoW3Qsbl0pPT57ZS5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pfSl9fSxhc3luYyBmbihlKXt2YXIgdCxuO2xldCByLGEse3BsYWNlbWVudDppLHJlY3RzOmwscGxhdGZvcm06cyxlbGVtZW50czpjfT1lLHthcHBseTp1PSgpPT57fSwuLi5kfT1pMChvLGUpLGY9YXdhaXQgczUoZSxkKSxwPWkxKGkpLGg9aTIoaSksbT1cInlcIj09PWk2KGkpLHt3aWR0aDpnLGhlaWdodDp5fT1sLmZsb2F0aW5nO1widG9wXCI9PT1wfHxcImJvdHRvbVwiPT09cD8ocj1wLGE9aD09PShhd2FpdCAobnVsbD09cy5pc1JUTD92b2lkIDA6cy5pc1JUTChjLmZsb2F0aW5nKSk/XCJzdGFydFwiOlwiZW5kXCIpP1wibGVmdFwiOlwicmlnaHRcIik6KGE9cCxyPVwiZW5kXCI9PT1oP1widG9wXCI6XCJib3R0b21cIik7bGV0IHY9eS1mLnRvcC1mLmJvdHRvbSxiPWctZi5sZWZ0LWYucmlnaHQsQT1pVyh5LWZbcl0sdikseD1pVyhnLWZbYV0sYiksdz0hZS5taWRkbGV3YXJlRGF0YS5zaGlmdCxDPUEsXz14O2lmKG51bGwhPSh0PWUubWlkZGxld2FyZURhdGEuc2hpZnQpJiZ0LmVuYWJsZWQueCYmKF89YiksbnVsbCE9KG49ZS5taWRkbGV3YXJlRGF0YS5zaGlmdCkmJm4uZW5hYmxlZC55JiYoQz12KSx3JiYhaCl7bGV0IGU9aVkoZi5sZWZ0LDApLHQ9aVkoZi5yaWdodCwwKSxuPWlZKGYudG9wLDApLHI9aVkoZi5ib3R0b20sMCk7bT9fPWctMiooMCE9PWV8fDAhPT10P2UrdDppWShmLmxlZnQsZi5yaWdodCkpOkM9eS0yKigwIT09bnx8MCE9PXI/bityOmlZKGYudG9wLGYuYm90dG9tKSl9YXdhaXQgdSh7Li4uZSxhdmFpbGFibGVXaWR0aDpfLGF2YWlsYWJsZUhlaWdodDpDfSk7bGV0IGs9YXdhaXQgcy5nZXREaW1lbnNpb25zKGMuZmxvYXRpbmcpO3JldHVybiBnIT09ay53aWR0aHx8eSE9PWsuaGVpZ2h0P3tyZXNldDp7cmVjdHM6ITB9fTp7fX19LG9wdGlvbnM6W2YscF19LChoPSgpPT4oe2VsZW1lbnQ6Sy5jdXJyZW50fHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHBhZGRpbmc6TyxvZmZzZXRQYXJlbnQ6XCJmbG9hdGluZ1wifSksbT1bT10sey4uLntuYW1lOlwiYXJyb3dcIixvcHRpb25zOmc9aCxhc3luYyBmbihlKXtsZXR7eDp0LHk6bixwbGFjZW1lbnQ6cixyZWN0czpvLHBsYXRmb3JtOmEsZWxlbWVudHM6aSxtaWRkbGV3YXJlRGF0YTpsfT1lLHtlbGVtZW50OnMscGFkZGluZzpjPTAsb2Zmc2V0UGFyZW50OnU9XCJyZWFsXCJ9PWkwKGcsZSl8fHt9O2lmKG51bGw9PXMpcmV0dXJue307bGV0IGQ9bHIoYyksZj17eDp0LHk6bn0scD1pNChpNihyKSksaD1pNShwKSxtPWF3YWl0IGEuZ2V0RGltZW5zaW9ucyhzKSx5PVwieVwiPT09cCx2PXk/XCJjbGllbnRIZWlnaHRcIjpcImNsaWVudFdpZHRoXCIsYj1vLnJlZmVyZW5jZVtoXStvLnJlZmVyZW5jZVtwXS1mW3BdLW8uZmxvYXRpbmdbaF0sQT1mW3BdLW8ucmVmZXJlbmNlW3BdLHg9XCJyZWFsXCI9PT11P2F3YWl0IGEuZ2V0T2Zmc2V0UGFyZW50Py4ocyk6aS5mbG9hdGluZyx3PWkuZmxvYXRpbmdbdl18fG8uZmxvYXRpbmdbaF07dyYmYXdhaXQgYS5pc0VsZW1lbnQ/Lih4KXx8KHc9aS5mbG9hdGluZ1t2XXx8by5mbG9hdGluZ1toXSk7bGV0IEM9dy8yLW1baF0vMi0xLF89TWF0aC5taW4oZFt5P1widG9wXCI6XCJsZWZ0XCJdLEMpLGs9TWF0aC5taW4oZFt5P1wiYm90dG9tXCI6XCJyaWdodFwiXSxDKSxFPXctbVtoXS1rLGo9dy8yLW1baF0vMisoYi8yLUEvMiksUz1pWShfLGlXKGosRSkpLE89IWwuYXJyb3cmJm51bGwhPWkyKHIpJiZqIT09UyYmby5yZWZlcmVuY2VbaF0vMi0oajxfP186ayktbVtoXS8yPDAsQj1PP2o8Xz9qLV86ai1FOjA7cmV0dXJue1twXTpmW3BdK0IsZGF0YTp7W3BdOlMsY2VudGVyT2Zmc2V0OmotUy1CLC4uLk8mJnthbGlnbm1lbnRPZmZzZXQ6Qn19LHJlc2V0Ok99fX0sb3B0aW9uczpbaCxtXX0pLHsuLi4odm9pZCAwPT09KGE9eSkmJihhPXt9KSx7bmFtZTpcImhpZGVcIixvcHRpb25zOmEsYXN5bmMgZm4oZSl7bGV0e3JlY3RzOnR9PWUse3N0cmF0ZWd5Om49XCJyZWZlcmVuY2VIaWRkZW5cIiwuLi5yfT1pMChhLGUpO3N3aXRjaChuKXtjYXNlXCJyZWZlcmVuY2VIaWRkZW5cIjp7bGV0IG49czMoYXdhaXQgczUoZSx7Li4ucixlbGVtZW50Q29udGV4dDpcInJlZmVyZW5jZVwifSksdC5yZWZlcmVuY2UpO3JldHVybntkYXRhOntyZWZlcmVuY2VIaWRkZW5PZmZzZXRzOm4scmVmZXJlbmNlSGlkZGVuOnM2KG4pfX19Y2FzZVwiZXNjYXBlZFwiOntsZXQgbj1zMyhhd2FpdCBzNShlLHsuLi5yLGFsdEJvdW5kYXJ5OiEwfSksdC5mbG9hdGluZyk7cmV0dXJue2RhdGE6e2VzY2FwZWRPZmZzZXRzOm4sZXNjYXBlZDpzNihuKX19fWRlZmF1bHQ6cmV0dXJue319fX0pLG9wdGlvbnM6W3ksdl19LHtuYW1lOlwidHJhbnNmb3JtT3JpZ2luXCIsZm4oZSl7bGV0e2VsZW1lbnRzOnQsbWlkZGxld2FyZURhdGE6bixwbGFjZW1lbnQ6cixyZWN0czpvLHk6YX09ZSxpPWkxKHIpLGw9aTYoaSkscz1LLmN1cnJlbnQsYz1uLmFycm93Py54fHwwLHU9bi5hcnJvdz8ueXx8MCxkPXM/LmNsaWVudFdpZHRofHwwLGY9cz8uY2xpZW50SGVpZ2h0fHwwLHA9YytkLzIsaD11K2YvMixtPU1hdGguYWJzKG4uc2hpZnQ/Lnl8fDApLGc9by5yZWZlcmVuY2UuaGVpZ2h0LzIseT1tPihcImZ1bmN0aW9uXCI9PXR5cGVvZiBDP0MoY0MoZSx3LFYpKTpDKSx2PXt0b3A6YCR7cH1weCBjYWxjKDEwMCUgKyAke0N9cHgpYCxib3R0b206YCR7cH1weCAkey1DfXB4YCxsZWZ0OmBjYWxjKDEwMCUgKyAke0N9cHgpICR7aH1weGAscmlnaHQ6YCR7LUN9cHggJHtofXB4YH1baV0sYj1gJHtwfXB4ICR7by5yZWZlcmVuY2UueStnLWF9cHhgO3JldHVybiB0LmZsb2F0aW5nLnN0eWxlLnNldFByb3BlcnR5KFwiLS10cmFuc2Zvcm0tb3JpZ2luXCIsZXQmJlwieVwiPT09bCYmeT9iOnYpLHt9fX0sTik7bGV0IGVvPUk7IXomJkkmJihlbz17Li4uSSxlbGVtZW50czp7cmVmZXJlbmNlOm51bGwsZmxvYXRpbmc6bnVsbCxkb21SZWZlcmVuY2U6bnVsbH19KTtsZXQgZWE9eC51c2VNZW1vKCgpPT4oe2VsZW1lbnRSZXNpemU6QiYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFJlc2l6ZU9ic2VydmVyLGxheW91dFNoaWZ0OkImJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcn0pLFtCXSkse3JlZnM6ZWksZWxlbWVudHM6ZWwseDplcyx5OmVjLG1pZGRsZXdhcmVEYXRhOmV1LHVwZGF0ZTplZCxwbGFjZW1lbnQ6ZXAsY29udGV4dDplaCxpc1Bvc2l0aW9uZWQ6ZW0sZmxvYXRpbmdTdHlsZXM6ZWd9PWZ1bmN0aW9uKGU9e30pe2xldHtub2RlSWQ6dH09ZSxuPWFTKHsuLi5lLGVsZW1lbnRzOntyZWZlcmVuY2U6bnVsbCxmbG9hdGluZzpudWxsLC4uLmUuZWxlbWVudHN9fSkscj1lLnJvb3RDb250ZXh0fHxuLG89ci5lbGVtZW50cyxbYSxpXT14LnVzZVN0YXRlKG51bGwpLFtsLHNdPXgudXNlU3RhdGUobnVsbCksYz1vPy5kb21SZWZlcmVuY2V8fGEsdT14LnVzZVJlZihudWxsKSxkPWFrKCk7YXgoKCk9PntjJiYodS5jdXJyZW50PWMpfSxbY10pO2xldCBmPWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPXt9KTtsZXR7cGxhY2VtZW50OnQ9XCJib3R0b21cIixzdHJhdGVneTpuPVwiYWJzb2x1dGVcIixtaWRkbGV3YXJlOnI9W10scGxhdGZvcm06byxlbGVtZW50czp7cmVmZXJlbmNlOmEsZmxvYXRpbmc6aX09e30sdHJhbnNmb3JtOmw9ITAsd2hpbGVFbGVtZW50c01vdW50ZWQ6cyxvcGVuOmN9PWUsW3UsZF09eC51c2VTdGF0ZSh7eDowLHk6MCxzdHJhdGVneTpuLHBsYWNlbWVudDp0LG1pZGRsZXdhcmVEYXRhOnt9LGlzUG9zaXRpb25lZDohMX0pLFtmLHBdPXgudXNlU3RhdGUocik7Y3YoZixyKXx8cChyKTtsZXRbaCxtXT14LnVzZVN0YXRlKG51bGwpLFtnLHldPXgudXNlU3RhdGUobnVsbCksdj14LnVzZUNhbGxiYWNrKGU9PntlIT09Qy5jdXJyZW50JiYoQy5jdXJyZW50PWUsbShlKSl9LFtdKSxiPXgudXNlQ2FsbGJhY2soZT0+e2UhPT1fLmN1cnJlbnQmJihfLmN1cnJlbnQ9ZSx5KGUpKX0sW10pLEE9YXx8aCx3PWl8fGcsQz14LnVzZVJlZihudWxsKSxfPXgudXNlUmVmKG51bGwpLGs9eC51c2VSZWYodSksRT1udWxsIT1zLGo9Y3gocyksUz1jeChvKSxPPWN4KGMpLEI9eC51c2VDYWxsYmFjaygoKT0+e2lmKCFDLmN1cnJlbnR8fCFfLmN1cnJlbnQpcmV0dXJuO2xldCBlPXtwbGFjZW1lbnQ6dCxzdHJhdGVneTpuLG1pZGRsZXdhcmU6Zn07Uy5jdXJyZW50JiYoZS5wbGF0Zm9ybT1TLmN1cnJlbnQpLCgoZSx0LG4pPT57bGV0IHI9bmV3IE1hcCxvPXtwbGF0Zm9ybTpjcCwuLi5ufSxhPXsuLi5vLnBsYXRmb3JtLF9jOnJ9O3JldHVybiBzNChlLHQsey4uLm8scGxhdGZvcm06YX0pfSkoQy5jdXJyZW50LF8uY3VycmVudCxlKS50aGVuKGU9PntsZXQgdD17Li4uZSxpc1Bvc2l0aW9uZWQ6ITEhPT1PLmN1cnJlbnR9O1AuY3VycmVudCYmIWN2KGsuY3VycmVudCx0KSYmKGsuY3VycmVudD10LGVmLmZsdXNoU3luYygoKT0+e2QodCl9KSl9KX0sW2YsdCxuLFMsT10pO2N5KCgpPT57ITE9PT1jJiZrLmN1cnJlbnQuaXNQb3NpdGlvbmVkJiYoay5jdXJyZW50LmlzUG9zaXRpb25lZD0hMSxkKGU9Pih7Li4uZSxpc1Bvc2l0aW9uZWQ6ITF9KSkpfSxbY10pO2xldCBQPXgudXNlUmVmKCExKTtjeSgoKT0+KFAuY3VycmVudD0hMCwoKT0+e1AuY3VycmVudD0hMX0pLFtdKSxjeSgoKT0+e2lmKEEmJihDLmN1cnJlbnQ9QSksdyYmKF8uY3VycmVudD13KSxBJiZ3KXtpZihqLmN1cnJlbnQpcmV0dXJuIGouY3VycmVudChBLHcsQik7QigpfX0sW0EsdyxCLGosRV0pO2xldCBJPXgudXNlTWVtbygoKT0+KHtyZWZlcmVuY2U6QyxmbG9hdGluZzpfLHNldFJlZmVyZW5jZTp2LHNldEZsb2F0aW5nOmJ9KSxbdixiXSksej14LnVzZU1lbW8oKCk9Pih7cmVmZXJlbmNlOkEsZmxvYXRpbmc6d30pLFtBLHddKSxUPXgudXNlTWVtbygoKT0+e2xldCBlPXtwb3NpdGlvbjpuLGxlZnQ6MCx0b3A6MH07aWYoIXouZmxvYXRpbmcpcmV0dXJuIGU7bGV0IHQ9Y0Eoei5mbG9hdGluZyx1LngpLHI9Y0Eoei5mbG9hdGluZyx1LnkpO3JldHVybiBsP3suLi5lLHRyYW5zZm9ybTpcInRyYW5zbGF0ZShcIit0K1wicHgsIFwiK3IrXCJweClcIiwuLi5jYih6LmZsb2F0aW5nKT49MS41JiZ7d2lsbENoYW5nZTpcInRyYW5zZm9ybVwifX06e3Bvc2l0aW9uOm4sbGVmdDp0LHRvcDpyfX0sW24sbCx6LmZsb2F0aW5nLHUueCx1LnldKTtyZXR1cm4geC51c2VNZW1vKCgpPT4oey4uLnUsdXBkYXRlOkIscmVmczpJLGVsZW1lbnRzOnosZmxvYXRpbmdTdHlsZXM6VH0pLFt1LEIsSSx6LFRdKX0oey4uLmUsZWxlbWVudHM6ey4uLm8sLi4ubCYme3JlZmVyZW5jZTpsfX19KSxwPXgudXNlQ2FsbGJhY2soZT0+e2xldCB0PWFUKGUpP3tnZXRCb3VuZGluZ0NsaWVudFJlY3Q6KCk9PmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZ2V0Q2xpZW50UmVjdHM6KCk9PmUuZ2V0Q2xpZW50UmVjdHMoKSxjb250ZXh0RWxlbWVudDplfTplO3ModCksZi5yZWZzLnNldFJlZmVyZW5jZSh0KX0sW2YucmVmc10pLGg9eC51c2VDYWxsYmFjayhlPT57KGFUKGUpfHxudWxsPT09ZSkmJih1LmN1cnJlbnQ9ZSxpKGUpKSwoYVQoZi5yZWZzLnJlZmVyZW5jZS5jdXJyZW50KXx8bnVsbD09PWYucmVmcy5yZWZlcmVuY2UuY3VycmVudHx8bnVsbCE9PWUmJiFhVChlKSkmJmYucmVmcy5zZXRSZWZlcmVuY2UoZSl9LFtmLnJlZnNdKSxtPXgudXNlTWVtbygoKT0+KHsuLi5mLnJlZnMsc2V0UmVmZXJlbmNlOmgsc2V0UG9zaXRpb25SZWZlcmVuY2U6cCxkb21SZWZlcmVuY2U6dX0pLFtmLnJlZnMsaCxwXSksZz14LnVzZU1lbW8oKCk9Pih7Li4uZi5lbGVtZW50cyxkb21SZWZlcmVuY2U6Y30pLFtmLmVsZW1lbnRzLGNdKSx5PXgudXNlTWVtbygoKT0+KHsuLi5mLC4uLnIscmVmczptLGVsZW1lbnRzOmcsbm9kZUlkOnR9KSxbZixtLGcsdCxyXSk7cmV0dXJuIGF4KCgpPT57ci5kYXRhUmVmLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0PXk7bGV0IGU9ZD8ubm9kZXNSZWYuY3VycmVudC5maW5kKGU9PmUuaWQ9PT10KTtlJiYoZS5jb250ZXh0PXkpfSkseC51c2VNZW1vKCgpPT4oey4uLmYsY29udGV4dDp5LHJlZnM6bSxlbGVtZW50czpnfSksW2YsbSxnLHldKX0oe3Jvb3RDb250ZXh0OmVvLHBsYWNlbWVudDpXLG1pZGRsZXdhcmU6SixzdHJhdGVneTpBLHdoaWxlRWxlbWVudHNNb3VudGVkOlA/dm9pZCAwOiguLi5lKT0+Y20oLi4uZSxlYSksbm9kZUlkOkx9KSx7c2lkZVg6ZXksc2lkZVk6ZXZ9PWV1LmFkYXB0aXZlT3JpZ2lufHx7fSxlYj14LnVzZU1lbW8oKCk9Pk4/e3Bvc2l0aW9uOkEsW2V5XTpgJHtlc31weGAsW2V2XTpgJHtlY31weGB9OmVnLFtOLGV5LGV2LEEsZXMsZWMsZWddKSxlQT14LnVzZVJlZihudWxsKTtheCgoKT0+e2lmKCF6KXJldHVybjtsZXQgZT1ILmN1cnJlbnQsdD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UoKTplLG49KGNrKHQpP3QuY3VycmVudDp0KXx8bnVsbDtuIT09ZUEuY3VycmVudCYmKGVpLnNldFBvc2l0aW9uUmVmZXJlbmNlKG4pLGVBLmN1cnJlbnQ9bil9LFt6LGVpLHEsSF0pLHgudXNlRWZmZWN0KCgpPT57aWYoIXopcmV0dXJuO2xldCBlPUguY3VycmVudDtcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiZjayhlKSYmZS5jdXJyZW50IT09ZUEuY3VycmVudCYmKGVpLnNldFBvc2l0aW9uUmVmZXJlbmNlKGUuY3VycmVudCksZUEuY3VycmVudD1lLmN1cnJlbnQpfSxbeixlaSxxLEhdKSx4LnVzZUVmZmVjdCgoKT0+e2lmKFAmJnomJmVsLmRvbVJlZmVyZW5jZSYmZWwuZmxvYXRpbmcpcmV0dXJuIGNtKGVsLmRvbVJlZmVyZW5jZSxlbC5mbG9hdGluZyxlZCxlYSl9LFtQLHosZWwsZWQsZWFdKTtsZXQgZXg9Y3codyxpMShlcCksViksZXc9aTIoZXApfHxcImNlbnRlclwiLGVDPSEhZXUuaGlkZT8ucmVmZXJlbmNlSGlkZGVuLGVfPXgudXNlTWVtbygoKT0+KHtwb3NpdGlvbjpcImFic29sdXRlXCIsdG9wOmV1LmFycm93Py55LGxlZnQ6ZXUuYXJyb3c/Lnh9KSxbZXUuYXJyb3ddKSxlaz1ldS5hcnJvdz8uY2VudGVyT2Zmc2V0IT09MDtyZXR1cm4geC51c2VNZW1vKCgpPT4oe3Bvc2l0aW9uZXJTdHlsZXM6ZWIsYXJyb3dTdHlsZXM6ZV8sYXJyb3dSZWY6SyxhcnJvd1VuY2VudGVyZWQ6ZWssc2lkZTpleCxhbGlnbjpldyxhbmNob3JIaWRkZW46ZUMscmVmczplaSxjb250ZXh0OmVoLGlzUG9zaXRpb25lZDplbSx1cGRhdGU6ZWR9KSxbZWIsZV8sSyxlayxleCxldyxlQyxlaSxlaCxlbSxlZF0pfWZ1bmN0aW9uIGNrKGUpe3JldHVybiBudWxsIT1lJiZcImN1cnJlbnRcImluIGV9ZnVuY3Rpb24gY0UoZSl7bGV0e2NoaWxkcmVuOnQsZWxlbWVudHNSZWY6bixsYWJlbHNSZWY6cixvbk1hcENoYW5nZTpvfT1lLGE9eC51c2VSZWYoMCksaT1hYShjUykuY3VycmVudCxsPWFhKGNqKS5jdXJyZW50LFtzLGNdPXgudXNlU3RhdGUoMCksdT14LnVzZVJlZihzKSxkPWFmKChlLHQpPT57bC5zZXQoZSx0Pz9udWxsKSx1LmN1cnJlbnQrPTEsYyh1LmN1cnJlbnQpfSksZj1hZihlPT57bC5kZWxldGUoZSksdS5jdXJyZW50Kz0xLGModS5jdXJyZW50KX0pLHA9eC51c2VNZW1vKCgpPT57bGV0IGU9bmV3IE1hcDtyZXR1cm4gQXJyYXkuZnJvbShsLmtleXMoKSkuc29ydChjTykuZm9yRWFjaCgodCxuKT0+e2xldCByPWwuZ2V0KHQpPz97fTtlLnNldCh0LHsuLi5yLGluZGV4Om59KX0pLGV9LFtsLHNdKTtheCgoKT0+e3UuY3VycmVudD09PXMmJihuLmN1cnJlbnQubGVuZ3RoIT09cC5zaXplJiYobi5jdXJyZW50Lmxlbmd0aD1wLnNpemUpLHImJnIuY3VycmVudC5sZW5ndGghPT1wLnNpemUmJihyLmN1cnJlbnQubGVuZ3RoPXAuc2l6ZSkpLG8/LihwKX0sW28scCxuLHIscyx1XSk7bGV0IGg9YWYoZT0+KGkuYWRkKGUpLCgpPT57aS5kZWxldGUoZSl9KSk7YXgoKCk9PntpLmZvckVhY2goZT0+ZShwKSl9LFtpLHBdKTtsZXQgbT14LnVzZU1lbW8oKCk9Pih7cmVnaXN0ZXI6ZCx1bnJlZ2lzdGVyOmYsc3Vic2NyaWJlTWFwQ2hhbmdlOmgsZWxlbWVudHNSZWY6bixsYWJlbHNSZWY6cixuZXh0SW5kZXhSZWY6YX0pLFtkLGYsaCxuLHIsYV0pO3JldHVybigwLGIuanN4KShzbC5Qcm92aWRlcix7dmFsdWU6bSxjaGlsZHJlbjp0fSl9ZnVuY3Rpb24gY2ooKXtyZXR1cm4gbmV3IE1hcH1mdW5jdGlvbiBjUygpe3JldHVybiBuZXcgU2V0fWZ1bmN0aW9uIGNPKGUsdCl7bGV0IG49ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KTtyZXR1cm4gbiZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lOR3x8biZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWT8tMTpuJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HfHxuJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlM/MTowfWxldCBjQj14LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXQgbix7Y3V0b3V0OnIsLi4ub309ZTtpZihyKXtsZXQgZT1yPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtuPWBwb2x5Z29uKFxuICAgICAgMCUgMCUsXG4gICAgICAxMDAlIDAlLFxuICAgICAgMTAwJSAxMDAlLFxuICAgICAgMCUgMTAwJSxcbiAgICAgIDAlIDAlLFxuICAgICAgJHtlLmxlZnR9cHggJHtlLnRvcH1weCxcbiAgICAgICR7ZS5sZWZ0fXB4ICR7ZS5ib3R0b219cHgsXG4gICAgICAke2UucmlnaHR9cHggJHtlLmJvdHRvbX1weCxcbiAgICAgICR7ZS5yaWdodH1weCAke2UudG9wfXB4LFxuICAgICAgJHtlLmxlZnR9cHggJHtlLnRvcH1weFxuICAgIClgfXJldHVybigwLGIuanN4KShcImRpdlwiLHtyZWY6dCxyb2xlOlwicHJlc2VudGF0aW9uXCIsXCJkYXRhLWJhc2UtdWktaW5lcnRcIjpcIlwiLC4uLm8sc3R5bGU6e3Bvc2l0aW9uOlwiZml4ZWRcIixpbnNldDowLHVzZXJTZWxlY3Q6XCJub25lXCIsV2Via2l0VXNlclNlbGVjdDpcIm5vbmVcIixjbGlwUGF0aDpufX0pfSksY1A9eC5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7dmFyIG47bGV0e2FuY2hvcjpyLHBvc2l0aW9uTWV0aG9kOm89XCJhYnNvbHV0ZVwiLGNsYXNzTmFtZTphLHJlbmRlcjppLHNpZGU6bCxhbGlnbjpzLHNpZGVPZmZzZXQ6Yz0wLGFsaWduT2Zmc2V0OnU9MCxjb2xsaXNpb25Cb3VuZGFyeTpkPVwiY2xpcHBpbmctYW5jZXN0b3JzXCIsY29sbGlzaW9uUGFkZGluZzpmPTUsYXJyb3dQYWRkaW5nOnA9NSxzdGlja3k6aD0hMSx0cmFja0FuY2hvcjptPSEwLGNvbGxpc2lvbkF2b2lkYW5jZTpnPWlaLC4uLnl9PWUse29wZW46dixzZXRPcGVuOkEsZmxvYXRpbmdSb290Q29udGV4dDp3LHNldFBvc2l0aW9uZXJFbGVtZW50OkMsaXRlbURvbUVsZW1lbnRzOl8saXRlbUxhYmVsczprLG1vdW50ZWQ6RSxtb2RhbDpqLGxhc3RPcGVuQ2hhbmdlUmVhc29uOlMscGFyZW50Ok8sc2V0SG92ZXJFbmFibGVkOkIsdHJpZ2dlckVsZW1lbnQ6UH09bEEoKSxJPWZ1bmN0aW9uKCl7bGV0IGU9eC51c2VDb250ZXh0KHNKKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogPE1lbnUuUG9ydGFsPiBpcyBtaXNzaW5nLlwiKTtyZXR1cm4gZX0oKSx6PWZ1bmN0aW9uKGUpe2xldCB0PWFiKCksbj1haygpLHI9YV8oKSxvPXI7cmV0dXJuIGF4KCgpPT57aWYoIXQpcmV0dXJuO2xldCBlPXtpZDp0LHBhcmVudElkOm99O3JldHVybiBuPy5hZGROb2RlKGUpLCgpPT57bj8ucmVtb3ZlTm9kZShlKX19LFtuLHQsb10pLHR9KCksVD1hXygpLEQ9bEQoITApLEw9cixOPWMsUj11LE09cztcImNvbnRleHQtbWVudVwiPT09Ty50eXBlJiYoTD1PLmNvbnRleHQ/LmFuY2hvcj8/cixNPWUuYWxpZ24/P1wic3RhcnRcIixSPWUuYWxpZ25PZmZzZXQ/PzIsTj1lLnNpZGVPZmZzZXQ/Py01KTtsZXQgWj1sLFU9TTtcIm1lbnVcIj09PU8udHlwZT8oWj1aPz9cImlubGluZS1lbmRcIixVPVU/P1wic3RhcnRcIik6XCJtZW51YmFyXCI9PT1PLnR5cGUmJihaPVo/P1wiYm90dG9tXCIsVT1VPz9cInN0YXJ0XCIpO2xldCBGPVwiY29udGV4dC1tZW51XCI9PT1PLnR5cGUscT1jXyh7YW5jaG9yOkwsZmxvYXRpbmdSb290Q29udGV4dDp3LHBvc2l0aW9uTWV0aG9kOkQ/XCJmaXhlZFwiOm8sbW91bnRlZDpFLHNpZGU6WixzaWRlT2Zmc2V0Ok4sYWxpZ246VSxhbGlnbk9mZnNldDpSLGFycm93UGFkZGluZzpGPzA6cCxjb2xsaXNpb25Cb3VuZGFyeTpkLGNvbGxpc2lvblBhZGRpbmc6ZixzdGlja3k6aCxub2RlSWQ6eixrZWVwTW91bnRlZDpJLHRyYWNrQW5jaG9yOm0sY29sbGlzaW9uQXZvaWRhbmNlOmcsc2hpZnRDcm9zc0F4aXM6Rn0pLHtldmVudHM6SH09YWsoKSxWPXgudXNlTWVtbygoKT0+e2xldCBlPXt9O3JldHVybiB2fHwoZS5wb2ludGVyRXZlbnRzPVwibm9uZVwiKSx7cm9sZTpcInByZXNlbnRhdGlvblwiLGhpZGRlbjohRSxzdHlsZTp7Li4ucS5wb3NpdGlvbmVyU3R5bGVzLC4uLmV9fX0sW3YsRSxxLnBvc2l0aW9uZXJTdHlsZXNdKTt4LnVzZUVmZmVjdCgoKT0+e2Z1bmN0aW9uIGUoZSl7ZS5vcGVuPyhlLnBhcmVudE5vZGVJZD09PXomJkIoITEpLGUubm9kZUlkIT09eiYmZS5wYXJlbnROb2RlSWQ9PT1UJiZBKCExLHZvaWQgMCxcInNpYmxpbmctb3BlblwiKSk6ZS5wYXJlbnROb2RlSWQ9PT16JiZCKCEwKX1yZXR1cm4gSC5vbihcIm9wZW5jaGFuZ2VcIixlKSwoKT0+e0gub2ZmKFwib3BlbmNoYW5nZVwiLGUpfX0sW0gseixULEEsQl0pLHgudXNlRWZmZWN0KCgpPT57SC5lbWl0KFwib3BlbmNoYW5nZVwiLHtvcGVuOnYsbm9kZUlkOnoscGFyZW50Tm9kZUlkOlR9KX0sW0gsdix6LFRdKTtsZXQgJD14LnVzZU1lbW8oKCk9Pih7b3Blbjp2LHNpZGU6cS5zaWRlLGFsaWduOnEuYWxpZ24sYW5jaG9ySGlkZGVuOnEuYW5jaG9ySGlkZGVuLG5lc3RlZDpcIm1lbnVcIj09PU8udHlwZX0pLFt2LHEuc2lkZSxxLmFsaWduLHEuYW5jaG9ySGlkZGVuLE8udHlwZV0pLFc9eC51c2VNZW1vKCgpPT4oe3NpZGU6cS5zaWRlLGFsaWduOnEuYWxpZ24sYXJyb3dSZWY6cS5hcnJvd1JlZixhcnJvd1VuY2VudGVyZWQ6cS5hcnJvd1VuY2VudGVyZWQsYXJyb3dTdHlsZXM6cS5hcnJvd1N0eWxlcyxmbG9hdGluZ0NvbnRleHQ6cS5jb250ZXh0fSksW3Euc2lkZSxxLmFsaWduLHEuYXJyb3dSZWYscS5hcnJvd1VuY2VudGVyZWQscS5hcnJvd1N0eWxlcyxxLmNvbnRleHRdKSxZPXNuKFwiZGl2XCIsZSx7c3RhdGU6JCxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnNlLHJlZjpbdCxDXSxwcm9wczp7Li4uViwuLi55fX0pLEs9RSYmXCJtZW51XCIhPT1PLnR5cGUmJihcIm1lbnViYXJcIiE9PU8udHlwZSYmaiYmXCJ0cmlnZ2VyLWhvdmVyXCIhPT1TfHxcIm1lbnViYXJcIj09PU8udHlwZSYmTy5jb250ZXh0Lm1vZGFsKSxYPW51bGw7cmV0dXJuXCJtZW51YmFyXCI9PT1PLnR5cGU/WD1PLmNvbnRleHQuY29udGVudEVsZW1lbnQ6dm9pZCAwPT09Ty50eXBlJiYoWD1QKSwoMCxiLmpzeHMpKHMxLlByb3ZpZGVyLHt2YWx1ZTpXLGNoaWxkcmVuOltLJiYoMCxiLmpzeCkoY0Ise3JlZjpcImNvbnRleHQtbWVudVwiPT09Ty50eXBlfHxcIm5lc3RlZC1jb250ZXh0LW1lbnVcIj09PU8udHlwZT9PLmNvbnRleHQuaW50ZXJuYWxCYWNrZHJvcFJlZjpudWxsLGluZXJ0OihuPSF2LHN0Pj0xOT9uOm4/XCJ0cnVlXCI6dm9pZCAwKSxjdXRvdXQ6WH0pLCgwLGIuanN4KShhRSx7aWQ6eixjaGlsZHJlbjooMCxiLmpzeCkoY0Use2VsZW1lbnRzUmVmOl8sbGFiZWxzUmVmOmssY2hpbGRyZW46WX0pfSldfSl9KSxjST17aW5lcnQ6bmV3IFdlYWtNYXAsXCJhcmlhLWhpZGRlblwiOm5ldyBXZWFrTWFwLG5vbmU6bmV3IFdlYWtNYXB9O2Z1bmN0aW9uIGN6KGUpe3JldHVyblwiaW5lcnRcIj09PWU/Y0kuaW5lcnQ6XCJhcmlhLWhpZGRlblwiPT09ZT9jSVtcImFyaWEtaGlkZGVuXCJdOmNJLm5vbmV9bGV0IGNUPW5ldyBXZWFrU2V0LGNEPXt9LGNMPTAsY049ZT0+ZSYmKGUuaG9zdHx8Y04oZS5wYXJlbnROb2RlKSksY1I9W107ZnVuY3Rpb24gY00oKXtjUj1jUi5maWx0ZXIoZT0+ZS5pc0Nvbm5lY3RlZCl9ZnVuY3Rpb24gY1ooKXtyZXR1cm4gY00oKSxjUltjUi5sZW5ndGgtMV19ZnVuY3Rpb24gY1UoZSx0KXtpZighdC5jdXJyZW50LmluY2x1ZGVzKFwiZmxvYXRpbmdcIikmJiFlLmdldEF0dHJpYnV0ZShcInJvbGVcIik/LmluY2x1ZGVzKFwiZGlhbG9nXCIpKXJldHVybjtsZXQgbj1zVSgpLHI9c00oZSxuKS5maWx0ZXIoZT0+e2xldCB0PWUuZ2V0QXR0cmlidXRlKFwiZGF0YS10YWJpbmRleFwiKXx8XCJcIjtyZXR1cm4gc1ooZSxuKXx8ZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLXRhYmluZGV4XCIpJiYhdC5zdGFydHNXaXRoKFwiLVwiKX0pLG89ZS5nZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKTt0LmN1cnJlbnQuaW5jbHVkZXMoXCJmbG9hdGluZ1wiKXx8MD09PXIubGVuZ3RoP1wiMFwiIT09byYmZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiMFwiKTooXCItMVwiIT09b3x8ZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLXRhYmluZGV4XCIpJiZcIi0xXCIhPT1lLmdldEF0dHJpYnV0ZShcImRhdGEtdGFiaW5kZXhcIikpJiYoZS5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiLTFcIiksZS5zZXRBdHRyaWJ1dGUoXCJkYXRhLXRhYmluZGV4XCIsXCItMVwiKSl9ZnVuY3Rpb24gY0YoZSl7bGV0e2NvbnRleHQ6dCxjaGlsZHJlbjpuLGRpc2FibGVkOnI9ITEsb3JkZXI6bz1bXCJjb250ZW50XCJdLGluaXRpYWxGb2N1czphPTAscmV0dXJuRm9jdXM6aT0hMCxyZXN0b3JlRm9jdXM6bD0hMSxtb2RhbDpzPSEwLGNsb3NlT25Gb2N1c091dDpjPSEwLGdldEluc2lkZUVsZW1lbnRzOnU9KCk9PltdfT1lLHtvcGVuOmQsb25PcGVuQ2hhbmdlOmYsZXZlbnRzOnAsZGF0YVJlZjpoLGVsZW1lbnRzOntkb21SZWZlcmVuY2U6bSxmbG9hdGluZzpnfX09dCx5PWFmKCgpPT5oLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5ub2RlSWQpLHY9YWYodSksQT1cIm51bWJlclwiPT10eXBlb2YgYSYmYTwwLHc9aXgobSkmJkEsQz1hMChvKSxfPWEwKGEpLGs9YTAoaSksRT1haygpLGo9c0soKSxTPXgudXNlUmVmKG51bGwpLE89eC51c2VSZWYobnVsbCksQj14LnVzZVJlZighMSksUD14LnVzZVJlZighMSksST14LnVzZVJlZigtMSksej1hYygpLFQ9bnVsbCE9aixEPWl3KGcpLEw9YWYoKGU9RCk9PmU/c1IoZSxzVSgpKTpbXSksTj1hZihlPT57bGV0IHQ9TChlKTtyZXR1cm4gQy5jdXJyZW50Lm1hcCgoKT0+dCkuZmlsdGVyKEJvb2xlYW4pLmZsYXQoKX0pO3gudXNlRWZmZWN0KCgpPT57aWYocnx8IXMpcmV0dXJuO2Z1bmN0aW9uIGUoZSl7XCJUYWJcIj09PWUua2V5JiZpZyhELGltKGliKEQpKSkmJjA9PT1MKCkubGVuZ3RoJiYhdyYmaXIoZSl9bGV0IHQ9aWIoRCk7cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKX19LFtyLG0sRCxzLEMsdyxMLE5dKSx4LnVzZUVmZmVjdCgoKT0+e2lmKCFyJiZnKXJldHVybiBnLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsZSksKCk9PntnLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c2luXCIsZSl9O2Z1bmN0aW9uIGUoZSl7bGV0IHQ9aXkoZSksbj1MKCkuaW5kZXhPZih0KTstMSE9PW4mJihJLmN1cnJlbnQ9bil9fSxbcixnLExdKSx4LnVzZUVmZmVjdCgoKT0+e2lmKHJ8fCFjKXJldHVybjtmdW5jdGlvbiBlKCl7UC5jdXJyZW50PSEwfWZ1bmN0aW9uIHQoZSl7bGV0IHQ9ZS5yZWxhdGVkVGFyZ2V0LG49ZS5jdXJyZW50VGFyZ2V0LHI9aXkoZSk7cXVldWVNaWNyb3Rhc2soKCk9PntsZXQgbz15KCksYT0hKGlnKG0sdCl8fGlnKGcsdCl8fGlnKHQsZyl8fGlnKGo/LnBvcnRhbE5vZGUsdCl8fHQ/Lmhhc0F0dHJpYnV0ZShpQyhcImZvY3VzLWd1YXJkXCIpKXx8RSYmKGlTKEUubm9kZXNSZWYuY3VycmVudCxvKS5maW5kKGU9PmlnKGUuY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcsdCl8fGlnKGUuY29udGV4dD8uZWxlbWVudHMuZG9tUmVmZXJlbmNlLHQpKXx8aU8oRS5ub2Rlc1JlZi5jdXJyZW50LG8pLmZpbmQoZT0+W2UuY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcsaXcoZS5jb250ZXh0Py5lbGVtZW50cy5mbG9hdGluZyldLmluY2x1ZGVzKHQpfHxlLmNvbnRleHQ/LmVsZW1lbnRzLmRvbVJlZmVyZW5jZT09PXQpKSk7aWYobj09PW0mJkQmJmNVKEQsQyksbCYmbiE9PW0mJiFyPy5pc0Nvbm5lY3RlZCYmaW0oaWIoRCkpPT09aWIoRCkuYm9keSl7YUQoRCkmJkQuZm9jdXMoKTtsZXQgZT1JLmN1cnJlbnQsdD1MKCksbj10W2VdfHx0W3QubGVuZ3RoLTFdfHxEO2FEKG4pJiZuLmZvY3VzKCl9aWYoaC5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZSl7aC5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZT0hMTtyZXR1cm59aWYoUC5jdXJyZW50KXtQLmN1cnJlbnQ9ITE7cmV0dXJufSh3fHwhcykmJnQmJmEmJnQhPT1jWigpJiYoQi5jdXJyZW50PSEwLGYoITEsZSxcImZvY3VzLW91dFwiKSl9KX1sZXQgbj0hISghRSYmaik7ZnVuY3Rpb24gbygpe2guY3VycmVudC5pbnNpZGVSZWFjdFRyZWU9ITAsei5zdGFydCgwLCgpPT57aC5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZT0hMX0pfWlmKGcmJmFEKG0pKXJldHVybiBtLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLHQpLG0uYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsZSksZy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIix0KSxuJiZnLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLG8sITApLCgpPT57bS5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIix0KSxtLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLGUpLGcucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsdCksbiYmZy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIixvLCEwKX19LFtyLG0sZyxELHMsRSxqLGYsYyxsLEwsdyx5LEMsaCx6XSk7bGV0IFI9eC51c2VSZWYobnVsbCksTT14LnVzZVJlZihudWxsKSxaPWxZKFIsaj8uYmVmb3JlSW5zaWRlUmVmKSxVPWxZKE0saj8uYWZ0ZXJJbnNpZGVSZWYpO3gudXNlRWZmZWN0KCgpPT57aWYocnx8IWcpcmV0dXJuO2xldCBlPUFycmF5LmZyb20oaj8ucG9ydGFsTm9kZT8ucXVlcnlTZWxlY3RvckFsbChgWyR7aUMoXCJwb3J0YWxcIil9XWApfHxbXSksdD1FP2lPKEUubm9kZXNSZWYuY3VycmVudCx5KCkpOltdLG49ZnVuY3Rpb24oZSx0PSExLG49ITEpe2xldCByPWliKGVbMF0pLmJvZHk7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuLHIpe2xldCBvLGE9XCJkYXRhLWJhc2UtdWktaW5lcnRcIixpPXI/XCJpbmVydFwiOm4/XCJhcmlhLWhpZGRlblwiOm51bGwsbD0obz10LGUubWFwKGU9PntpZihvLmNvbnRhaW5zKGUpKXJldHVybiBlO2xldCB0PWNOKGUpO3JldHVybiBvLmNvbnRhaW5zKHQpP3Q6bnVsbH0pLmZpbHRlcihlPT5udWxsIT1lKSkscz1uZXcgU2V0LGM9bmV3IFNldChsKSx1PVtdO2NEW2FdfHwoY0RbYV09bmV3IFdlYWtNYXApO2xldCBkPWNEW2FdO3JldHVybiBsLmZvckVhY2goZnVuY3Rpb24gZSh0KXshKCF0fHxzLmhhcyh0KSkmJihzLmFkZCh0KSx0LnBhcmVudE5vZGUmJmUodC5wYXJlbnROb2RlKSl9KSxmdW5jdGlvbiBlKHQpeyF0fHxjLmhhcyh0KXx8W10uZm9yRWFjaC5jYWxsKHQuY2hpbGRyZW4sdD0+e2lmKFwic2NyaXB0XCIhPT1hQih0KSlpZihzLmhhcyh0KSllKHQpO2Vsc2V7bGV0IGU9aT90LmdldEF0dHJpYnV0ZShpKTpudWxsLG49bnVsbCE9PWUmJlwiZmFsc2VcIiE9PWUscj1jeihpKSxvPShyLmdldCh0KXx8MCkrMSxsPShkLmdldCh0KXx8MCkrMTtyLnNldCh0LG8pLGQuc2V0KHQsbCksdS5wdXNoKHQpLDE9PT1vJiZuJiZjVC5hZGQodCksMT09PWwmJnQuc2V0QXR0cmlidXRlKGEsXCJcIiksIW4mJmkmJnQuc2V0QXR0cmlidXRlKGksXCJpbmVydFwiPT09aT9cIlwiOlwidHJ1ZVwiKX19KX0odCkscy5jbGVhcigpLGNMKz0xLCgpPT57dS5mb3JFYWNoKGU9PntsZXQgdD1jeihpKSxuPSh0LmdldChlKXx8MCktMSxyPShkLmdldChlKXx8MCktMTt0LnNldChlLG4pLGQuc2V0KGUsciksbnx8KCFjVC5oYXMoZSkmJmkmJmUucmVtb3ZlQXR0cmlidXRlKGkpLGNULmRlbGV0ZShlKSkscnx8ZS5yZW1vdmVBdHRyaWJ1dGUoYSl9KSwoY0wtPTEpfHwoY0kuaW5lcnQ9bmV3IFdlYWtNYXAsY0lbXCJhcmlhLWhpZGRlblwiXT1uZXcgV2Vha01hcCxjSS5ub25lPW5ldyBXZWFrTWFwLGNUPW5ldyBXZWFrU2V0LGNEPXt9KX19KGUuY29uY2F0KEFycmF5LmZyb20oci5xdWVyeVNlbGVjdG9yQWxsKFwiW2FyaWEtbGl2ZV1cIikpKSxyLHQsbil9KFtnLHQuZmluZChlPT5peChlLmNvbnRleHQ/LmVsZW1lbnRzLmRvbVJlZmVyZW5jZXx8bnVsbCkpPy5jb250ZXh0Py5lbGVtZW50cy5kb21SZWZlcmVuY2UsLi4uZSwuLi52KCksUy5jdXJyZW50LE8uY3VycmVudCxSLmN1cnJlbnQsTS5jdXJyZW50LGo/LmJlZm9yZU91dHNpZGVSZWYuY3VycmVudCxqPy5hZnRlck91dHNpZGVSZWYuY3VycmVudCx3P206bnVsbF0uZmlsdGVyKGU9Pm51bGwhPWUpLHN8fHcpO3JldHVybigpPT57bigpfX0sW3IsbSxnLHMsQyxqLHcsRSx5LHZdKSxheCgoKT0+e2lmKHJ8fCFhRChEKSlyZXR1cm47bGV0IGU9aW0oaWIoRCkpO3F1ZXVlTWljcm90YXNrKCgpPT57bGV0IHQ9TihEKSxuPV8uY3VycmVudCxyPShcIm51bWJlclwiPT10eXBlb2Ygbj90W25dOm4uY3VycmVudCl8fEQsbz1pZyhELGUpO0F8fG98fCFkfHxsZihyLHtwcmV2ZW50U2Nyb2xsOnI9PT1EfSl9KX0sW3IsZCxELEEsTixfXSksYXgoKCk9Pnt2YXIgZTtpZihyfHwhRClyZXR1cm47bGV0IHQ9aWIoRCk7ZnVuY3Rpb24gbih7cmVhc29uOmUsZXZlbnQ6dCxuZXN0ZWQ6bn0pe2lmKFtcImhvdmVyXCIsXCJzYWZlLXBvbHlnb25cIl0uaW5jbHVkZXMoZSkmJlwibW91c2VsZWF2ZVwiPT09dC50eXBlJiYoQi5jdXJyZW50PSEwKSxcIm91dHNpZGUtcHJlc3NcIj09PWUpaWYobilCLmN1cnJlbnQ9ITE7ZWxzZSBpZihpbyh0KXx8aWEodCkpQi5jdXJyZW50PSExO2Vsc2V7bGV0IGU9ITE7ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5mb2N1cyh7Z2V0IHByZXZlbnRTY3JvbGwoKXtyZXR1cm4gZT0hMCwhMX19KSxlP0IuY3VycmVudD0hMTpCLmN1cnJlbnQ9ITB9fWU9aW0odCksY00oKSxlJiZcImJvZHlcIiE9PWFCKGUpJiYoY1IucHVzaChlKSxjUi5sZW5ndGg+MjAmJihjUj1jUi5zbGljZSgtMjApKSkscC5vbihcIm9wZW5jaGFuZ2VcIixuKTtsZXQgbz10LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO3JldHVybiBvLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCItMVwiKSxvLnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsXCJ0cnVlXCIpLE9iamVjdC5hc3NpZ24oby5zdHlsZSxzZiksVCYmbSYmbS5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJhZnRlcmVuZFwiLG8pLCgpPT57cC5vZmYoXCJvcGVuY2hhbmdlXCIsbik7bGV0IGU9aW0odCkscj1pZyhnLGUpfHxFJiZpUyhFLm5vZGVzUmVmLmN1cnJlbnQseSgpLCExKS5zb21lKHQ9PmlnKHQuY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcsZSkpLGE9ZnVuY3Rpb24oKXtpZihcImJvb2xlYW5cIj09dHlwZW9mIGsuY3VycmVudCl7bGV0IGU9bXx8Y1ooKTtyZXR1cm4gZSYmZS5pc0Nvbm5lY3RlZD9lOm99cmV0dXJuIGsuY3VycmVudC5jdXJyZW50fHxvfSgpO3F1ZXVlTWljcm90YXNrKCgpPT57bGV0IG49ZnVuY3Rpb24oZSl7bGV0IHQ9c1UoKTtyZXR1cm4gc1ooZSx0KT9lOnNSKGUsdClbMF18fGV9KGEpO2suY3VycmVudCYmIUIuY3VycmVudCYmYUQobikmJihuPT09ZXx8ZT09PXQuYm9keXx8cikmJm4uZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxvLnJlbW92ZSgpfSl9fSxbcixnLEQsayxoLHAsRSxULG0seV0pLHgudXNlRWZmZWN0KCgpPT57cXVldWVNaWNyb3Rhc2soKCk9PntCLmN1cnJlbnQ9ITF9KX0sW3JdKSx4LnVzZUVmZmVjdCgoKT0+e2lmKHJ8fCFkKXJldHVybjtmdW5jdGlvbiBlKGUpe2xldCB0PWl5KGUpO3Q/LmNsb3Nlc3QoXCJbZGF0YS1iYXNlLXVpLWNsaWNrLXRyaWdnZXJdXCIpJiYoUC5jdXJyZW50PSEwKX1sZXQgdD1pYihEKTtyZXR1cm4gdC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixlLCEwKSwoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsZSwhMCl9fSxbcixkLERdKSxheCgoKT0+e2lmKCFyJiZqKXJldHVybiBqLnNldEZvY3VzTWFuYWdlclN0YXRlKHttb2RhbDpzLGNsb3NlT25Gb2N1c091dDpjLG9wZW46ZCxvbk9wZW5DaGFuZ2U6Zixkb21SZWZlcmVuY2U6bX0pLCgpPT57ai5zZXRGb2N1c01hbmFnZXJTdGF0ZShudWxsKX19LFtyLGoscyxkLGYsYyxtXSksYXgoKCk9PntpZighciYmRClyZXR1cm4gY1UoRCxDKSwoKT0+e3F1ZXVlTWljcm90YXNrKGNNKX19LFtyLEQsQ10pO2xldCBGPSFyJiYoIXN8fCF3KSYmKFR8fHMpO3JldHVybigwLGIuanN4cykoeC5GcmFnbWVudCx7Y2hpbGRyZW46W0YmJigwLGIuanN4KShzcCx7XCJkYXRhLXR5cGVcIjpcImluc2lkZVwiLHJlZjpaLG9uRm9jdXM6ZT0+e2lmKHMpe2xldCBlPU4oKTtsZihlW2UubGVuZ3RoLTFdKX1lbHNlIGlmKGo/LnByZXNlcnZlVGFiT3JkZXImJmoucG9ydGFsTm9kZSlpZihCLmN1cnJlbnQ9ITEsc1YoZSxqLnBvcnRhbE5vZGUpKXtsZXQgZT1zcShtKTtlPy5mb2N1cygpfWVsc2Ugai5iZWZvcmVPdXRzaWRlUmVmLmN1cnJlbnQ/LmZvY3VzKCl9fSksbixGJiYoMCxiLmpzeCkoc3Ase1wiZGF0YS10eXBlXCI6XCJpbnNpZGVcIixyZWY6VSxvbkZvY3VzOmU9PntpZihzKWxmKE4oKVswXSk7ZWxzZSBpZihqPy5wcmVzZXJ2ZVRhYk9yZGVyJiZqLnBvcnRhbE5vZGUpaWYoYyYmKEIuY3VycmVudD0hMCksc1YoZSxqLnBvcnRhbE5vZGUpKXtsZXQgZT1zSChtKTtlPy5mb2N1cygpfWVsc2Ugai5hZnRlck91dHNpZGVSZWYuY3VycmVudD8uZm9jdXMoKX19KV19KX1sZXQgY3E9ey4uLnNlLC4uLmwwfSxjSD14LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXR7cmVuZGVyOm4sY2xhc3NOYW1lOnIsZmluYWxGb2N1czpvLC4uLmF9PWUse29wZW46aSxzZXRPcGVuOmwscG9wdXBSZWY6cyx0cmFuc2l0aW9uU3RhdHVzOmMscG9wdXBQcm9wczp1LG1vdW50ZWQ6ZCxpbnN0YW50VHlwZTpmLG9uT3BlbkNoYW5nZUNvbXBsZXRlOnAscGFyZW50OmgsbGFzdE9wZW5DaGFuZ2VSZWFzb246bSxyb290SWQ6Z309bEEoKSx7c2lkZTp5LGFsaWduOnYsZmxvYXRpbmdDb250ZXh0OkF9PWZ1bmN0aW9uKCl7bGV0IGU9eC51c2VDb250ZXh0KHMxKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogTWVudVBvc2l0aW9uZXJDb250ZXh0IGlzIG1pc3NpbmcuIE1lbnVQb3NpdGlvbmVyIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8TWVudS5Qb3NpdGlvbmVyPi5cIik7cmV0dXJuIGV9KCk7bEMoe29wZW46aSxyZWY6cyxvbkNvbXBsZXRlKCl7aSYmcD8uKCEwKX19KTtsZXR7ZXZlbnRzOnd9PWFrKCk7eC51c2VFZmZlY3QoKCk9PntmdW5jdGlvbiBlKGUpe2woITEsZS5kb21FdmVudCxlLnJlYXNvbil9cmV0dXJuIHcub24oXCJjbG9zZVwiLGUpLCgpPT57dy5vZmYoXCJjbG9zZVwiLGUpfX0sW3csbF0pO2xldCBDPXNuKFwiZGl2XCIsZSx7c3RhdGU6eC51c2VNZW1vKCgpPT4oe3RyYW5zaXRpb25TdGF0dXM6YyxzaWRlOnksYWxpZ246dixvcGVuOmksbmVzdGVkOlwibWVudVwiPT09aC50eXBlLGluc3RhbnQ6Zn0pLFtjLHksdixpLGgudHlwZSxmXSkscmVmOlt0LHNdLGN1c3RvbVN0eWxlSG9va01hcHBpbmc6Y3EscHJvcHM6W3UsXCJzdGFydGluZ1wiPT09Yz9pTjppUixhLHtcImRhdGEtcm9vdG93bmVyaWRcIjpnfV19KSxfPXZvaWQgMD09PWgudHlwZXx8XCJjb250ZXh0LW1lbnVcIj09PWgudHlwZTtyZXR1cm5cIm1lbnViYXJcIj09PWgudHlwZSYmXCJvdXRzaWRlLXByZXNzXCIhPT1tJiYoXz0hMCksKDAsYi5qc3gpKGNGLHtjb250ZXh0OkEsbW9kYWw6ITEsZGlzYWJsZWQ6IWQscmV0dXJuRm9jdXM6b3x8Xyxpbml0aWFsRm9jdXM6XCJtZW51XCI9PT1oLnR5cGU/LTE6MCxyZXN0b3JlRm9jdXM6ITAsY2hpbGRyZW46Q30pfSksY1Y9eC5jcmVhdGVDb250ZXh0KHZvaWQgMCksYyQ9eC5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7bGV0e3JlbmRlcjpuLGNsYXNzTmFtZTpyLC4uLm99PWUsW2EsaV09eC51c2VTdGF0ZSh2b2lkIDApLGw9eC51c2VNZW1vKCgpPT4oe3NldExhYmVsSWQ6aX0pLFtpXSkscz1zbihcImRpdlwiLGUse3JlZjp0LHByb3BzOntyb2xlOlwiZ3JvdXBcIixcImFyaWEtbGFiZWxsZWRieVwiOmEsLi4ub319KTtyZXR1cm4oMCxiLmpzeCkoY1YuUHJvdmlkZXIse3ZhbHVlOmwsY2hpbGRyZW46c30pfSk7ZnVuY3Rpb24gY1coZSl7cmV0dXJuIGFiKGUsXCJiYXNlLXVpXCIpfWxldCBjWT14LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXR7Y2xhc3NOYW1lOm4scmVuZGVyOnIsaWQ6bywuLi5hfT1lLGk9Y1cobykse3NldExhYmVsSWQ6bH09ZnVuY3Rpb24oKXtsZXQgZT14LnVzZUNvbnRleHQoY1YpO2lmKHZvaWQgMD09PWUpdGhyb3cgRXJyb3IoXCJCYXNlIFVJOiBNZW51R3JvdXBSb290Q29udGV4dCBpcyBtaXNzaW5nLiBNZW51IGdyb3VwIHBhcnRzIG11c3QgYmUgdXNlZCB3aXRoaW4gPE1lbnUuR3JvdXA+LlwiKTtyZXR1cm4gZX0oKTtyZXR1cm4gYXgoKCk9PihsKGkpLCgpPT57bCh2b2lkIDApfSksW2wsaV0pLHNuKFwiZGl2XCIsZSx7cmVmOnQscHJvcHM6e2lkOmkscm9sZTpcInByZXNlbnRhdGlvblwiLC4uLmF9fSl9KSxjSz17dHlwZTpcInJlZ3VsYXItaXRlbVwifSxjWD14Lm1lbW8oeC5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7bGV0e2NsYXNzTmFtZTpuLGNsb3NlT25DbGljazpyPSEwLGRpc2FibGVkOm89ITEsaGlnaGxpZ2h0ZWQ6YSxpZDppLG1lbnVFdmVudHM6bCxpdGVtUHJvcHM6cyxyZW5kZXI6YyxhbGxvd01vdXNlVXBUcmlnZ2VyUmVmOnUsdHlwaW5nUmVmOmQsbmF0aXZlQnV0dG9uOmYsLi4ucH09ZSx7Z2V0SXRlbVByb3BzOmgsaXRlbVJlZjptfT1mdW5jdGlvbihlKXtsZXR7Y2xvc2VPbkNsaWNrOnQsZGlzYWJsZWQ6bj0hMSxoaWdobGlnaHRlZDpyLGlkOm8sbWVudUV2ZW50czphLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6aSx0eXBpbmdSZWY6bCxuYXRpdmVCdXR0b246cyxpdGVtTWV0YWRhdGE6Y309ZSx1PXgudXNlUmVmKG51bGwpLHtnZXRCdXR0b25Qcm9wczpkLGJ1dHRvblJlZjpmfT1zaSh7ZGlzYWJsZWQ6bixmb2N1c2FibGVXaGVuRGlzYWJsZWQ6ITAsbmF0aXZlOnN9KSxwPXgudXNlQ2FsbGJhY2soZT0+bE0oe2lkOm8scm9sZTpcIm1lbnVpdGVtXCIsdGFiSW5kZXg6cj8wOi0xLG9uTW91c2VFbnRlcigpe1wic3VibWVudS10cmlnZ2VyXCI9PT1jLnR5cGUmJmMuc2V0QWN0aXZlKCl9LG9uS2V5VXA6ZT0+e1wiIFwiPT09ZS5rZXkmJmwuY3VycmVudCYmZS5wcmV2ZW50QmFzZVVJSGFuZGxlcigpfSxvbkNsaWNrOmU9Pnt0JiZhLmVtaXQoXCJjbG9zZVwiLHtkb21FdmVudDplLHJlYXNvbjpcIml0ZW0tcHJlc3NcIn0pfSxvbk1vdXNlVXA6KCk9Pnt1LmN1cnJlbnQmJmkuY3VycmVudCYmXCJyZWd1bGFyLWl0ZW1cIj09PWMudHlwZSYmdS5jdXJyZW50LmNsaWNrKCl9fSxlLGQpLFtvLHIsZCxsLHQsYSxpLGNdKSxoPWxZKHUsZik7cmV0dXJuIHgudXNlTWVtbygoKT0+KHtnZXRJdGVtUHJvcHM6cCxpdGVtUmVmOmh9KSxbcCxoXSl9KHtjbG9zZU9uQ2xpY2s6cixkaXNhYmxlZDpvLGhpZ2hsaWdodGVkOmEsaWQ6aSxtZW51RXZlbnRzOmwsYWxsb3dNb3VzZVVwVHJpZ2dlclJlZjp1LHR5cGluZ1JlZjpkLG5hdGl2ZUJ1dHRvbjpmLGl0ZW1NZXRhZGF0YTpjS30pO3JldHVybiBzbihcImRpdlwiLGUse3N0YXRlOngudXNlTWVtbygoKT0+KHtkaXNhYmxlZDpvLGhpZ2hsaWdodGVkOmF9KSxbbyxhXSkscmVmOlttLHRdLHByb3BzOltzLHAsaF19KX0pKSxjRz14LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXR7aWQ6bixsYWJlbDpyLG5hdGl2ZUJ1dHRvbjpvPSExLC4uLmF9PWUsaT14LnVzZVJlZihudWxsKSxsPXNjKHtsYWJlbDpyfSkscz1sWSh0LGwucmVmLGkpLHtpdGVtUHJvcHM6YyxhY3RpdmVJbmRleDp1LGFsbG93TW91c2VVcFRyaWdnZXJSZWY6ZCx0eXBpbmdSZWY6Zn09bEEoKSxwPWNXKG4pLGg9bC5pbmRleD09PXUse2V2ZW50czptfT1haygpO3JldHVybigwLGIuanN4KShjWCx7Li4uYSxpZDpwLHJlZjpzLGhpZ2hsaWdodGVkOmgsbWVudUV2ZW50czptLGl0ZW1Qcm9wczpjLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6ZCx0eXBpbmdSZWY6ZixuYXRpdmVCdXR0b246b30pfSk7dmFyIGNRPVwiX19uZXh0X2J1aWx0aW5fX1wiO2Z1bmN0aW9uIGNKKGUpe3JldHVybiBlLnJlcGxhY2UobmV3IFJlZ0V4cChcIl5cIi5jb25jYXQoY1EpKSxcIlwiKS5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcIi5jb25jYXQoXCJAYm91bmRhcnlcIixcIiRcIikpLFwiXCIpfXZhciBjMD1cImJvdW5kYXJ5OlwiO2Z1bmN0aW9uIGMxKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoYzApfWZ1bmN0aW9uIGMyKGUpe3JldHVybiBlLnJlcGxhY2UoYzAsXCJcIil9ZnVuY3Rpb24gYzQoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIGM1KGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiBjMyhlLHQpe3JldHVybiB0PW51bGwhPXQ/dDp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pKX0pLGV9ZnVuY3Rpb24gYzYoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGM0KGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIGM0KGUsdCl9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciBjOT1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9QXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGZ1bmN0aW9uKGUpe3QuZm9yRWFjaChmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QoZSk6dCYmKHQuY3VycmVudD1lKX0pfX07ZnVuY3Rpb24gYzgoZSl7dmFyIHQsbj1lLm5vZGVTdGF0ZSxyPWUuYm91bmRhcmllcyxvPW4ucGFnZVBhdGgsYT1uLmJvdW5kYXJ5VHlwZSxpPW4uc2V0Qm91bmRhcnlUeXBlLGw9YzYoKDAseC51c2VTdGF0ZSkoITEpLDIpLHM9bFswXSxjPWxbMV0sdT1kYSgpLnNoYWRvd1Jvb3QsZD0oMCx4LnVzZVJlZikobnVsbCksZj0oMCx4LnVzZVJlZikobnVsbCk7dDgoZixkLHMsZnVuY3Rpb24oKXtjKCExKX0sbnVsbD09KHQ9ZC5jdXJyZW50KT92b2lkIDA6dC5vd25lckRvY3VtZW50KTt2YXIgcD0oT2JqZWN0LnZhbHVlcyhyKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZX0pfHxcIlwiKS5zcGxpdChcIi5cIikucG9wKCl8fFwianNcIixoPSgwLHgudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLm1hcChmdW5jdGlvbihlKXt2YXIgdD1jNihlLDIpLG49dFswXSxyPWNKKCh0WzFdfHxcIlwiKS5zcGxpdChcIi9cIikucG9wKCl8fFwiXCIuY29uY2F0KG4sXCIuXCIpLmNvbmNhdChwKSk7cmV0dXJuW24scl19KSl9LFtyLHBdKSxtPShvfHxcIlwiKS5zcGxpdChcIi9cIikucG9wKCl8fFwiXCIsZz1jSihhP1wicGFnZS5cIi5jb25jYXQocCk6bXx8XCJwYWdlLlwiLmNvbmNhdChwKSkseT1be2xhYmVsOmgubG9hZGluZyx2YWx1ZTpcImxvYWRpbmdcIixpY29uOigwLGIuanN4KShjNyx7fSksZGlzYWJsZWQ6IXIubG9hZGluZ30se2xhYmVsOmguZXJyb3IsdmFsdWU6XCJlcnJvclwiLGljb246KDAsYi5qc3gpKHVlLHt9KSxkaXNhYmxlZDohci5lcnJvcn0se2xhYmVsOmhbXCJub3QtZm91bmRcIl0sdmFsdWU6XCJub3QtZm91bmRcIixpY29uOigwLGIuanN4KSh1dCx7fSksZGlzYWJsZWQ6IXJbXCJub3QtZm91bmRcIl19XSx2PXtsYWJlbDphP1wiUmVzZXRcIjpnLHZhbHVlOlwicmVzZXRcIixpY29uOigwLGIuanN4KSh1bix7fSksZGlzYWJsZWQ6bnVsbD09PWF9LEE9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyh7ZmlsZTplLmZpbGVQYXRoLGlzQXBwUmVsYXRpdmVQYXRoOlwiMVwifSk7ZmV0Y2goXCJcIi5jb25jYXQocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSHx8XCJcIixcIi9fX25leHRqc19sYXVuY2gtZWRpdG9yP1wiKS5jb25jYXQodC50b1N0cmluZygpKSkuY2F0Y2goY29uc29sZS53YXJuKX0sW10pLHc9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2VcIm5vdC1mb3VuZFwiOmNhc2VcImxvYWRpbmdcIjpjYXNlXCJlcnJvclwiOmkoZSk7YnJlYWs7Y2FzZVwicmVzZXRcIjppKG51bGwpO2JyZWFrO2Nhc2VcIm9wZW4tZWRpdG9yXCI6byYmQSh7ZmlsZVBhdGg6b30pfX0sW2ksbyxBXSksQz0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuXCJsYXlvdXRcIiE9PW4udHlwZSYmXCJ0ZW1wbGF0ZVwiIT09bi50eXBlJiZPYmplY3QudmFsdWVzKHIpLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lfSl9LFtuLnR5cGUscl0pO3JldHVybigwLGIuanN4cykobFcse2RlbGF5OjAsbW9kYWw6ITEsb3BlbjpzLG9uT3BlbkNoYW5nZTpjLGNoaWxkcmVuOlsoMCxiLmpzeCkoc2Qse2NsYXNzTmFtZTpcInNlZ21lbnQtYm91bmRhcnktdHJpZ2dlclwiLFwiZGF0YS1uZXh0anMtZGV2LW92ZXJsYXktc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLWJ1dHRvblwiOiEwLHJlbmRlcjpmdW5jdGlvbihlKXt2YXIgdD1jOShlLnJlZixkKTtyZXR1cm4oMCxiLmpzeCkodW8sYzMoYzUoe30sZSkse3JlZjp0fSkpfSxkaXNhYmxlZDohQ30pLCgwLGIuanN4KShzMCx7Y29udGFpbmVyOnUsY2hpbGRyZW46KDAsYi5qc3gpKGNQLHtjbGFzc05hbWU6XCJzZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLXBvc2l0aW9uZXJcIixzaWRlOlwiYm90dG9tXCIsYWxpZ246XCJjZW50ZXJcIixzaWRlT2Zmc2V0OjYsYXJyb3dQYWRkaW5nOjgscmVmOmYsY2hpbGRyZW46KDAsYi5qc3hzKShjSCx7Y2xhc3NOYW1lOlwic2VnbWVudC1ib3VuZGFyeS1kcm9wZG93blwiLGNoaWxkcmVuOlsoMCxiLmpzeHMpKGMkLHtjaGlsZHJlbjpbKDAsYi5qc3gpKGNZLHtjbGFzc05hbWU6XCJzZWdtZW50LWJvdW5kYXJ5LWdyb3VwLWxhYmVsXCIsY2hpbGRyZW46XCJUb2dnbGUgT3ZlcnJpZGVzXCJ9KSx5Lm1hcChmdW5jdGlvbihlKXtyZXR1cm4oMCxiLmpzeHMpKGNHLHtjbGFzc05hbWU6XCJzZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW1cIixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHcoZS52YWx1ZSl9LGRpc2FibGVkOmUuZGlzYWJsZWQsY2hpbGRyZW46W2UuaWNvbixlLmxhYmVsXX0sZS52YWx1ZSl9KV19KSwoMCxiLmpzeCkoYyQse2NoaWxkcmVuOigwLGIuanN4cykoY0cse2NsYXNzTmFtZTpcInNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24taXRlbVwiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gdyh2LnZhbHVlKX0sZGlzYWJsZWQ6di5kaXNhYmxlZCxjaGlsZHJlbjpbdi5pY29uLHYubGFiZWxdfSx2LnZhbHVlKX0pXX0pfSl9KV19KX1mdW5jdGlvbiBjNygpe3ZhciBlLHQsbj0oMCxBLmMpKDIpO3JldHVybiBuWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGU9KDAsYi5qc3gpKFwiZ1wiLHtjbGlwUGF0aDpcInVybCgjY2xpcDBfMjc1OV8xODY2KVwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xMCAzLjVDMTMuNTg5OSAzLjUgMTYuNSA2LjQxMDE1IDE2LjUgMTBDMTYuNSAxMy41ODk5IDEzLjU4OTkgMTYuNSAxMCAxNi41QzYuNDEwMTUgMTYuNSAzLjUgMTMuNTg5OSAzLjUgMTBDMy41IDYuNDEwMTUgNi40MTAxNSAzLjUgMTAgMy41Wk0yIDEwQzIgMTQuNDE4MyA1LjU4MTcyIDE4IDEwIDE4QzE0LjQxODMgMTggMTggMTQuNDE4MyAxOCAxMEMxOCA1LjU4MTcyIDE0LjQxODMgMiAxMCAyQzUuNTgxNzIgMiAyIDUuNTgxNzIgMiAxMFpNMTAuNzUgOS42MjQwMlY2SDkuMjVWOS44NzVDOS4yNSAxMC4xODk4IDkuMzk4NTggMTAuNDg2IDkuNjUwMzkgMTAuNjc0OEwxMS41NDk4IDEyLjA5OTZMMTIuMTUwNCAxMi41NDk4TDEzLjA0OTggMTEuMzQ5NkwxMi40NTAyIDEwLjkwMDRMMTAuNzUgOS42MjQwMlpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pLG5bMF09ZSk6ZT1uWzBdLG5bMV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxiLmpzeHMpKFwic3ZnXCIse3dpZHRoOlwiMjBweFwiLGhlaWdodDpcIjIwcHhcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46W2UsKDAsYi5qc3gpKFwiZGVmc1wiLHtjaGlsZHJlbjooMCxiLmpzeCkoXCJjbGlwUGF0aFwiLHtpZDpcImNsaXAwXzI3NTlfMTg2NlwiLGNoaWxkcmVuOigwLGIuanN4KShcInJlY3RcIix7d2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsZmlsbDpcIndoaXRlXCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDIgMilcIn0pfSl9KV19KSxuWzFdPXQpOnQ9blsxXSx0fWZ1bmN0aW9uIHVlKCl7dmFyIGUsdCxuPSgwLEEuYykoMik7cmV0dXJuIG5bMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxiLmpzeCkoXCJnXCIse2NsaXBQYXRoOlwidXJsKCNjbGlwMF8yNzU5XzE4ODEpXCIsY2hpbGRyZW46KDAsYi5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTMuNSA3LjMwNzYyVjEyLjY5MjRMNy4zMDc2MiAxNi41SDEyLjY5MjRMMTYuNSAxMi42OTI0VjcuMzA3NjJMMTIuNjkyNCAzLjVINy4zMDc2MkwzLjUgNy4zMDc2MlpNMTggMTIuODk5NEwxNy45OTUxIDEyLjk5OEMxNy45NzI0IDEzLjIyNzEgMTcuODcxMiAxMy40NDIzIDE3LjcwNyAxMy42MDY0TDEzLjYwNjQgMTcuNzA3TDEzLjUzMzIgMTcuNzczNEMxMy4zODA2IDE3Ljg5ODUgMTMuMTk0NCAxNy45NzU3IDEyLjk5OCAxNy45OTUxTDEyLjg5OTQgMThINy4xMDA1OUw3LjAwMTk1IDE3Ljk5NTFDNi44MDU2MiAxNy45NzU3IDYuNjE5NCAxNy44OTg1IDYuNDY2OCAxNy43NzM0TDYuMzkzNTUgMTcuNzA3TDIuMjkyOTcgMTMuNjA2NEMyLjEyODgzIDEzLjQ0MjMgMi4wMjc1NiAxMy4yMjcxIDIuMDA0ODggMTIuOTk4TDIgMTIuODk5NFY3LjEwMDU5QzIgNi44MzUzOSAyLjEwNTQ2IDYuNTgxMDkgMi4yOTI5NyA2LjM5MzU1TDYuMzkzNTUgMi4yOTI5N0M2LjU1NzcxIDIuMTI4ODMgNi43NzI5NCAyLjAyNzU2IDcuMDAxOTUgMi4wMDQ4OEw3LjEwMDU5IDJIMTIuODk5NEwxMi45OTggMi4wMDQ4OEMxMy4yMjcxIDIuMDI3NTYgMTMuNDQyMyAyLjEyODgzIDEzLjYwNjQgMi4yOTI5N0wxNy43MDcgNi4zOTM1NUMxNy44OTQ1IDYuNTgxMDkgMTggNi44MzUzOSAxOCA3LjEwMDU5VjEyLjg5OTRaTTkuMjUgNS43NUgxMC43NUwxMC43NSAxMC43NUg5LjI1TDkuMjUgNS43NVpNMTAgMTRDMTAuNTUyMyAxNCAxMSAxMy41NTIzIDExIDEzQzExIDEyLjQ0NzcgMTAuNTUyMyAxMiAxMCAxMkM5LjQ0NzcyIDEyIDkgMTIuNDQ3NyA5IDEzQzkgMTMuNTUyMyA5LjQ0NzcyIDE0IDEwIDE0WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksblswXT1lKTplPW5bMF0sblsxXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4cykoXCJzdmdcIix7d2lkdGg6XCIyMFwiLGhlaWdodDpcIjIwXCIsdmlld0JveDpcIjAgMCAyMCAyMFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOltlLCgwLGIuanN4KShcImRlZnNcIix7Y2hpbGRyZW46KDAsYi5qc3gpKFwiY2xpcFBhdGhcIix7aWQ6XCJjbGlwMF8yNzU5XzE4ODFcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJyZWN0XCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJ3aGl0ZVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgyIDIpXCJ9KX0pfSldfSksblsxXT10KTp0PW5bMV0sdH1mdW5jdGlvbiB1dCgpe3ZhciBlLHQ9KDAsQS5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLGIuanN4KShcInN2Z1wiLHt3aWR0aDpcIjIwcHhcIixoZWlnaHQ6XCIyMHB4XCIsdmlld0JveDpcIjAgMCAyMCAyMFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xMC41NTg2IDIuNUMxMS4xMzQxIDIuNTAwMDQgMTEuNjU4OCAyLjgyOTQgMTEuOTA5MSAzLjM0NzY2TDE3LjgwNzYgMTUuNTY1NEMxOC4xMjc4IDE2LjIyOTIgMTcuNjQ0MiAxNi45OTk3IDE2LjkwNzIgMTdIMy4wOTI3NEMyLjM1NTc0IDE2Ljk5OTcgMS44NzIxIDE2LjIyOTIgMi4xOTIzNSAxNS41NjU0TDguMDkwNzkgMy4zNDc2NkM4LjM0MTA5IDIuODI5NCA4Ljg2NTgzIDIuNTAwMDQgOS40NDEzNyAyLjVIMTAuNTU4NlpNMy44OTA1OSAxNS41SDE2LjEwOTNMMTAuNTU4NiA0SDkuNDQxMzdMMy44OTA1OSAxNS41Wk05LjI0OTk3IDYuNzVIMTAuNzVMMTAuNzUgMTAuNzVIOS4yNDk5N0w5LjI0OTk3IDYuNzVaTTkuOTk5OTcgMTRDMTAuNTUyMyAxNCAxMSAxMy41NTIzIDExIDEzQzExIDEyLjQ0NzcgMTAuNTUyMyAxMiA5Ljk5OTk3IDEyQzkuNDQ3NjggMTIgOC45OTk5NyAxMi40NDc3IDguOTk5OTcgMTNDOC45OTk5NyAxMy41NTIzIDkuNDQ3NjggMTQgOS45OTk5NyAxNFpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9ZnVuY3Rpb24gdW4oKXt2YXIgZSx0PSgwLEEuYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxiLmpzeCkoXCJzdmdcIix7d2lkdGg6XCIyMFwiLGhlaWdodDpcIjIwXCIsdmlld0JveDpcIjAgMCAyMCAyMFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZDpcIk05Ljk2NDg0IDNDMTMuODQ2MyAzLjAwMDE4IDE3IDYuMTMwMTIgMTcgMTBDMTcgMTMuODY5OSAxMy44NDYzIDE2Ljk5OTggOS45NjQ4NCAxN0M3LjYyNDA0IDE3IDUuNTQ4NzcgMTUuODYxNyA0LjI3MDUxIDE0LjExMjNMMy44MjgxMiAxMy41MDY4TDUuMDM5MDYgMTIuNjIyMUw1LjQ4MTQ1IDEzLjIyNzVDNi40ODgxNSAxNC42MDUzIDguMTIwOTIgMTUuNSA5Ljk2NDg0IDE1LjVDMTMuMDI1OSAxNS40OTk4IDE1LjUgMTMuMDMzNSAxNS41IDEwQzE1LjUgNi45NjY1NCAxMy4wMjU5IDQuNTAwMTggOS45NjQ4NCA0LjVDNy40MjkwNSA0LjUgNS4yOTU0NCA2LjE5NDI5IDQuNjM4NjcgOC41SDhWMTBIMi43NUMyLjMzNTc5IDEwIDIgOS42NjQyMSAyIDkuMjVWNEgzLjVWNy4yMzczQzQuNTc3ODEgNC43NDM3NiA3LjA2NzQ5IDMgOS45NjQ4NCAzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiB1cihlKXt2YXIgdCxuLHI9KDAsQS5jKSgzKTtyZXR1cm4gclswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk04LjcwNzEgMi4zOTY0NEM4LjMxNjU4IDIuMDA1OTIgNy42ODM0MSAyLjAwNTkyIDcuMjkyODkgMi4zOTY0NEw0LjQ2OTY2IDUuMjE5NjZMMy45MzkzMyA1Ljc0OTk5TDQuOTk5OTkgNi44MTA2NUw1LjUzMDMyIDYuMjgwMzJMNy45OTk5OSAzLjgxMDY1TDEwLjQ2OTcgNi4yODAzMkwxMSA2LjgxMDY1TDEyLjA2MDcgNS43NDk5OUwxMS41MzAzIDUuMjE5NjZMOC43MDcxIDIuMzk2NDRaTTUuNTMwMzIgOS43MTk2Nkw0Ljk5OTk5IDkuMTg5MzNMMy45MzkzMyAxMC4yNUw0LjQ2OTY2IDEwLjc4MDNMNy4yOTI4OSAxMy42MDM1QzcuNjgzNDEgMTMuOTk0MSA4LjMxNjU4IDEzLjk5NDEgOC43MDcxIDEzLjYwMzVMMTEuNTMwMyAxMC43ODAzTDEyLjA2MDcgMTAuMjVMMTEgOS4xODkzM0wxMC40Njk3IDkuNzE5NjZMNy45OTk5OSAxMi4xODkzTDUuNTMwMzIgOS43MTk2NlpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KSxyWzBdPXQpOnQ9clswXSxyWzFdIT09ZT8obj0oMCxiLmpzeCkoXCJzdmdcIixjMyhjNSh7c3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIn0sZSkse2NoaWxkcmVuOnR9KSksclsxXT1lLHJbMl09bik6bj1yWzJdLG59ZnVuY3Rpb24gdW8oZSl7dmFyIHQsbixyPSgwLEEuYykoMyk7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxiLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci10ZXh0XCIsY2hpbGRyZW46KDAsYi5qc3gpKHVyLHtjbGFzc05hbWU6XCJwbHVzLWljb25cIn0pfSksclswXT10KTp0PXJbMF0sclsxXSE9PWU/KG49KDAsYi5qc3gpKFwiYnV0dG9uXCIsYzMoYzUoe30sZSkse2NoaWxkcmVuOnR9KSksclsxXT1lLHJbMl09bik6bj1yWzJdLG59bGV0IHVhPXguY3JlYXRlQ29udGV4dCh2b2lkIDApO2Z1bmN0aW9uIHVpKCl7bGV0IGU9eC51c2VDb250ZXh0KHVhKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogVG9vbHRpcFJvb3RDb250ZXh0IGlzIG1pc3NpbmcuIFRvb2x0aXAgcGFydHMgbXVzdCBiZSBwbGFjZWQgd2l0aGluIDxUb29sdGlwLlJvb3Q+LlwiKTtyZXR1cm4gZX1sZXQgdWw9eC5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7bGV0e2NsYXNzTmFtZTpuLHJlbmRlcjpyLC4uLm99PWUse29wZW46YSxzZXRUcmlnZ2VyRWxlbWVudDppLHRyaWdnZXJQcm9wczpsfT11aSgpO3JldHVybiBzbihcImJ1dHRvblwiLGUse3N0YXRlOngudXNlTWVtbygoKT0+KHtvcGVuOmF9KSxbYV0pLHJlZjpbdCxpXSxwcm9wczpbbCxvXSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOmw4fSl9KSx1cz14LmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiB1Yygpe2xldCBlPXgudXNlQ29udGV4dCh1cyk7aWYodm9pZCAwPT09ZSl0aHJvdyBFcnJvcihcIkJhc2UgVUk6IFRvb2x0aXBQb3NpdGlvbmVyQ29udGV4dCBpcyBtaXNzaW5nLiBUb29sdGlwUG9zaXRpb25lciBwYXJ0cyBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gPFRvb2x0aXAuUG9zaXRpb25lcj4uXCIpO3JldHVybiBlfWxldCB1dT14LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXR7Y2xhc3NOYW1lOm4scmVuZGVyOnIsLi4ub309ZSx7b3BlbjphLGFycm93UmVmOmksc2lkZTpsLGFsaWduOnMsYXJyb3dVbmNlbnRlcmVkOmMsYXJyb3dTdHlsZXM6dX09dWMoKTtyZXR1cm4gc24oXCJkaXZcIixlLHtzdGF0ZTp4LnVzZU1lbW8oKCk9Pih7b3BlbjphLHNpZGU6bCxhbGlnbjpzLHVuY2VudGVyZWQ6Y30pLFthLGwscyxjXSkscmVmOlt0LGldLHByb3BzOlt7c3R5bGU6dSxcImFyaWEtaGlkZGVuXCI6ITB9LG9dLGN1c3RvbVN0eWxlSG9va01hcHBpbmc6c2V9KX0pLHVkPXsuLi5zZSwuLi5sMH0sdWY9eC5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsdCl7bGV0e2NsYXNzTmFtZTpuLHJlbmRlcjpyLC4uLm99PWUse29wZW46YSxpbnN0YW50VHlwZTppLHRyYW5zaXRpb25TdGF0dXM6bCxwb3B1cFByb3BzOnMscG9wdXBSZWY6Yyxvbk9wZW5DaGFuZ2VDb21wbGV0ZTp1fT11aSgpLHtzaWRlOmQsYWxpZ246Zn09dWMoKTtyZXR1cm4gbEMoe29wZW46YSxyZWY6YyxvbkNvbXBsZXRlKCl7YSYmdT8uKCEwKX19KSxzbihcImRpdlwiLGUse3N0YXRlOngudXNlTWVtbygoKT0+KHtvcGVuOmEsc2lkZTpkLGFsaWduOmYsaW5zdGFudDppLHRyYW5zaXRpb25TdGF0dXM6bH0pLFthLGQsZixpLGxdKSxyZWY6W3QsY10scHJvcHM6W3MsXCJzdGFydGluZ1wiPT09bD9pTjppUixvXSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnVkfSl9KSx1cD14LmNyZWF0ZUNvbnRleHQodm9pZCAwKSx1aD14LmZvcndhcmRSZWYoZnVuY3Rpb24oZSx0KXtsZXR7cmVuZGVyOm4sY2xhc3NOYW1lOnIsYW5jaG9yOm8scG9zaXRpb25NZXRob2Q6YT1cImFic29sdXRlXCIsc2lkZTppPVwidG9wXCIsYWxpZ246bD1cImNlbnRlclwiLHNpZGVPZmZzZXQ6cz0wLGFsaWduT2Zmc2V0OmM9MCxjb2xsaXNpb25Cb3VuZGFyeTp1PVwiY2xpcHBpbmctYW5jZXN0b3JzXCIsY29sbGlzaW9uUGFkZGluZzpkPTUsYXJyb3dQYWRkaW5nOmY9NSxzdGlja3k6cD0hMSx0cmFja0FuY2hvcjpoPSEwLGNvbGxpc2lvbkF2b2lkYW5jZTptPWlVLC4uLmd9PWUse29wZW46eSxzZXRQb3NpdGlvbmVyRWxlbWVudDp2LG1vdW50ZWQ6QSxmbG9hdGluZ1Jvb3RDb250ZXh0OncsdHJhY2tDdXJzb3JBeGlzOkMsaG92ZXJhYmxlOl99PXVpKCksaz1jXyh7YW5jaG9yOm8scG9zaXRpb25NZXRob2Q6YSxmbG9hdGluZ1Jvb3RDb250ZXh0OncsbW91bnRlZDpBLHNpZGU6aSxzaWRlT2Zmc2V0OnMsYWxpZ246bCxhbGlnbk9mZnNldDpjLGNvbGxpc2lvbkJvdW5kYXJ5OnUsY29sbGlzaW9uUGFkZGluZzpkLHN0aWNreTpwLGFycm93UGFkZGluZzpmLHRyYWNrQW5jaG9yOmgsa2VlcE1vdW50ZWQ6ZnVuY3Rpb24oKXtsZXQgZT14LnVzZUNvbnRleHQodXApO2lmKHZvaWQgMD09PWUpdGhyb3cgRXJyb3IoXCJCYXNlIFVJOiA8VG9vbHRpcC5Qb3J0YWw+IGlzIG1pc3NpbmcuXCIpO3JldHVybiBlfSgpLGNvbGxpc2lvbkF2b2lkYW5jZTptfSksRT14LnVzZU1lbW8oKCk9PntsZXQgZT17fTtyZXR1cm4geSYmXCJib3RoXCIhPT1DJiZffHwoZS5wb2ludGVyRXZlbnRzPVwibm9uZVwiKSx7cm9sZTpcInByZXNlbnRhdGlvblwiLGhpZGRlbjohQSxzdHlsZTp7Li4uay5wb3NpdGlvbmVyU3R5bGVzLC4uLmV9fX0sW3ksQyxfLEEsay5wb3NpdGlvbmVyU3R5bGVzXSksaj14LnVzZU1lbW8oKCk9Pih7cHJvcHM6RSwuLi5rfSksW0Usa10pLFM9eC51c2VNZW1vKCgpPT4oe29wZW46eSxzaWRlOmouc2lkZSxhbGlnbjpqLmFsaWduLGFuY2hvckhpZGRlbjpqLmFuY2hvckhpZGRlbn0pLFt5LGouc2lkZSxqLmFsaWduLGouYW5jaG9ySGlkZGVuXSksTz14LnVzZU1lbW8oKCk9Pih7Li4uUyxhcnJvd1JlZjpqLmFycm93UmVmLGFycm93U3R5bGVzOmouYXJyb3dTdHlsZXMsYXJyb3dVbmNlbnRlcmVkOmouYXJyb3dVbmNlbnRlcmVkfSksW1Msai5hcnJvd1JlZixqLmFycm93U3R5bGVzLGouYXJyb3dVbmNlbnRlcmVkXSksQj1zbihcImRpdlwiLGUse3N0YXRlOlMscHJvcHM6W2oucHJvcHMsZ10scmVmOlt0LHZdLGN1c3RvbVN0eWxlSG9va01hcHBpbmc6c2V9KTtyZXR1cm4oMCxiLmpzeCkodXMuUHJvdmlkZXIse3ZhbHVlOk8sY2hpbGRyZW46Qn0pfSk7ZnVuY3Rpb24gdW0oZSl7bGV0IHQ9c0coe3Jvb3Q6ZS5yb290fSk7cmV0dXJuIHQmJmVmLmNyZWF0ZVBvcnRhbChlLmNoaWxkcmVuLHQpfWZ1bmN0aW9uIHVnKGUpe2xldHtjaGlsZHJlbjp0LGtlZXBNb3VudGVkOm49ITEsY29udGFpbmVyOnJ9PWUse21vdW50ZWQ6b309dWkoKTtyZXR1cm4gb3x8bj8oMCxiLmpzeCkodXAuUHJvdmlkZXIse3ZhbHVlOm4sY2hpbGRyZW46KDAsYi5qc3gpKHVtLHtyb290OnIsY2hpbGRyZW46dH0pfSk6bnVsbH1sZXQgdXk9eC5jcmVhdGVDb250ZXh0KHtoYXNQcm92aWRlcjohMSx0aW1lb3V0TXM6MCxkZWxheVJlZjp7Y3VycmVudDowfSxpbml0aWFsRGVsYXlSZWY6e2N1cnJlbnQ6MH0sdGltZW91dDpuZXcgYXMsY3VycmVudElkUmVmOntjdXJyZW50Om51bGx9LGN1cnJlbnRDb250ZXh0UmVmOntjdXJyZW50Om51bGx9fSk7ZnVuY3Rpb24gdXYoZSl7bGV0e2NoaWxkcmVuOnQsZGVsYXk6bix0aW1lb3V0TXM6cj0wfT1lLG89eC51c2VSZWYobiksYT14LnVzZVJlZihuKSxpPXgudXNlUmVmKG51bGwpLGw9eC51c2VSZWYobnVsbCkscz1hYygpO3JldHVybigwLGIuanN4KSh1eS5Qcm92aWRlcix7dmFsdWU6eC51c2VNZW1vKCgpPT4oe2hhc1Byb3ZpZGVyOiEwLGRlbGF5UmVmOm8saW5pdGlhbERlbGF5UmVmOmEsY3VycmVudElkUmVmOmksdGltZW91dE1zOnIsY3VycmVudENvbnRleHRSZWY6bCx0aW1lb3V0OnN9KSxbcixzXSksY2hpbGRyZW46dH0pfWxldCB1Yj14LmNyZWF0ZUNvbnRleHQodm9pZCAwKSx1QT1mdW5jdGlvbihlKXtsZXR7ZGVsYXk6dCxjbG9zZURlbGF5Om4sdGltZW91dDpyPTQwMH09ZSxvPXgudXNlTWVtbygoKT0+KHtkZWxheTp0LGNsb3NlRGVsYXk6bn0pLFt0LG5dKSxhPXgudXNlTWVtbygoKT0+KHtvcGVuOnQsY2xvc2U6bn0pLFt0LG5dKTtyZXR1cm4oMCxiLmpzeCkodWIuUHJvdmlkZXIse3ZhbHVlOm8sY2hpbGRyZW46KDAsYi5qc3gpKHV2LHtkZWxheTphLHRpbWVvdXRNczpyLGNoaWxkcmVuOmUuY2hpbGRyZW59KX0pfTtmdW5jdGlvbiB1eChlKXtyZXR1cm4gbnVsbCE9ZSYmbnVsbCE9ZS5jbGllbnRYfWZ1bmN0aW9uIHV3KGUpe2xldHtkaXNhYmxlZDp0PSExLGRlZmF1bHRPcGVuOm49ITEsb25PcGVuQ2hhbmdlOnIsb3BlbjpvLGRlbGF5OmEsY2xvc2VEZWxheTppLGhvdmVyYWJsZTpsPSEwLHRyYWNrQ3Vyc29yQXhpczpzPVwibm9uZVwiLGFjdGlvbnNSZWY6Yyxvbk9wZW5DaGFuZ2VDb21wbGV0ZTp1fT1lLGQ9YT8/NjAwLGY9aT8/MCxbcCxoXT14LnVzZVN0YXRlKG51bGwpLFttLGddPXgudXNlU3RhdGUobnVsbCksW3ksdl09eC51c2VTdGF0ZSgpLEE9eC51c2VSZWYobnVsbCksW3csQ109YW0oe2NvbnRyb2xsZWQ6byxkZWZhdWx0Om4sbmFtZTpcIlRvb2x0aXBcIixzdGF0ZTpcIm9wZW5cIn0pLF89IXQmJnc7ZnVuY3Rpb24gayhlLHQsbil7bGV0IG89XCJ0cmlnZ2VyLWhvdmVyXCI9PT1uLGE9ZSYmXCJ0cmlnZ2VyLWZvY3VzXCI9PT1uLGk9IWUmJihcInRyaWdnZXItcHJlc3NcIj09PW58fFwiZXNjYXBlLWtleVwiPT09bik7ZnVuY3Rpb24gbCgpe3I/LihlLHQsbiksQyhlKX1vP2VmLmZsdXNoU3luYyhsKTpsKCksYXx8aT92KGE/XCJmb2N1c1wiOlwiZGlzbWlzc1wiKTpcInRyaWdnZXItaG92ZXJcIj09PW4mJnYodm9pZCAwKX1sZXQgRT1hZihrKTt3JiZ0JiZrKCExLHZvaWQgMCxcImRpc2FibGVkXCIpO2xldHttb3VudGVkOmosc2V0TW91bnRlZDpTLHRyYW5zaXRpb25TdGF0dXM6T309bHcoXyksQj1hZigoKT0+e1MoITEpLHU/LighMSl9KTtsQyh7ZW5hYmxlZDohYyxvcGVuOl8scmVmOkEsb25Db21wbGV0ZSgpe198fEIoKX19KSx4LnVzZUltcGVyYXRpdmVIYW5kbGUoYywoKT0+KHt1bm1vdW50OkJ9KSxbQl0pO2xldCBQPWFTKHtlbGVtZW50czp7cmVmZXJlbmNlOnAsZmxvYXRpbmc6bX0sb3BlbjpfLG9uT3BlbkNoYW5nZShlLHQsbil7RShlLHQsbHoobikpfX0pLEk9eC51c2VDb250ZXh0KHViKSx7ZGVsYXlSZWY6eixpc0luc3RhbnRQaGFzZTpULGhhc1Byb3ZpZGVyOkR9PWZ1bmN0aW9uKGUsdD17fSl7bGV0e29wZW46bixvbk9wZW5DaGFuZ2U6cixmbG9hdGluZ0lkOm99PWUse2VuYWJsZWQ6YT0hMH09dCx7Y3VycmVudElkUmVmOmksZGVsYXlSZWY6bCx0aW1lb3V0TXM6cyxpbml0aWFsRGVsYXlSZWY6YyxjdXJyZW50Q29udGV4dFJlZjp1LGhhc1Byb3ZpZGVyOmQsdGltZW91dDpmfT14LnVzZUNvbnRleHQodXkpLFtwLGhdPXgudXNlU3RhdGUoITEpO3JldHVybiBheCgoKT0+e2Z1bmN0aW9uIGUoKXtoKCExKSx1LmN1cnJlbnQ/LnNldElzSW5zdGFudFBoYXNlKCExKSxpLmN1cnJlbnQ9bnVsbCx1LmN1cnJlbnQ9bnVsbCxsLmN1cnJlbnQ9Yy5jdXJyZW50fWlmKGEmJmkuY3VycmVudCYmIW4mJmkuY3VycmVudD09PW8pe2lmKGgoITEpLHMpcmV0dXJuIGYuc3RhcnQocyxlKSwoKT0+e2YuY2xlYXIoKX07ZSgpfX0sW2EsbixvLGksbCxzLGMsdSxmXSksYXgoKCk9PntpZighYXx8IW4pcmV0dXJuO2xldCBlPXUuY3VycmVudCx0PWkuY3VycmVudDt1LmN1cnJlbnQ9e29uT3BlbkNoYW5nZTpyLHNldElzSW5zdGFudFBoYXNlOmh9LGkuY3VycmVudD1vLGwuY3VycmVudD17b3BlbjowLGNsb3NlOmlrKGMuY3VycmVudCxcImNsb3NlXCIpfSxudWxsIT09dCYmdCE9PW8/KGYuY2xlYXIoKSxoKCEwKSxlPy5zZXRJc0luc3RhbnRQaGFzZSghMCksZT8ub25PcGVuQ2hhbmdlKCExKSk6KGgoITEpLGU/LnNldElzSW5zdGFudFBoYXNlKCExKSl9LFthLG4sbyxyLGksbCxzLGMsdSxmXSksYXgoKCk9PigpPT57dS5jdXJyZW50PW51bGx9LFt1XSkseC51c2VNZW1vKCgpPT4oe2hhc1Byb3ZpZGVyOmQsZGVsYXlSZWY6bCxpc0luc3RhbnRQaGFzZTpwfSksW2QsbCxwXSl9KFApLEw9VD9cImRlbGF5XCI6eSxOPWlqKFAse2VuYWJsZWQ6IXQsbW91c2VPbmx5OiEwLG1vdmU6ITEsaGFuZGxlQ2xvc2U6bCYmXCJib3RoXCIhPT1zP2lQKCk6bnVsbCxyZXN0TXMoKXtsZXQgZT1JPy5kZWxheSx0PVwib2JqZWN0XCI9PXR5cGVvZiB6LmN1cnJlbnQ/ei5jdXJyZW50Lm9wZW46dm9pZCAwLG49ZDtyZXR1cm4gRCYmKG49MCE9PXQ/YT8/ZT8/ZDowKSxufSxkZWxheSgpe2xldCBlPVwib2JqZWN0XCI9PXR5cGVvZiB6LmN1cnJlbnQ/ei5jdXJyZW50LmNsb3NlOnZvaWQgMCx0PWY7cmV0dXJuIG51bGw9PWkmJkQmJih0PWUpLHtjbG9zZTp0fX19KSxSPWl6KFAse2VuYWJsZWQ6IXR9KSxNPWlIKFAse2VuYWJsZWQ6IXQscmVmZXJlbmNlUHJlc3M6ITB9KSx7Z2V0UmVmZXJlbmNlUHJvcHM6WixnZXRGbG9hdGluZ1Byb3BzOlV9PWxnKFtOLFIsTSxmdW5jdGlvbihlLHQ9e30pe2xldHtvcGVuOm4sZGF0YVJlZjpyLGVsZW1lbnRzOntmbG9hdGluZzpvLGRvbVJlZmVyZW5jZTphfSxyZWZzOml9PWUse2VuYWJsZWQ6bD0hMCxheGlzOnM9XCJib3RoXCIseDpjPW51bGwseTp1PW51bGx9PXQsZD14LnVzZVJlZighMSksZj14LnVzZVJlZihudWxsKSxbcCxoXT14LnVzZVN0YXRlKCksW20sZ109eC51c2VTdGF0ZShbXSkseT1hZigoZSx0KT0+e2lmKCFkLmN1cnJlbnQmJighci5jdXJyZW50Lm9wZW5FdmVudHx8dXgoci5jdXJyZW50Lm9wZW5FdmVudCkpKXt2YXIgbixvO2xldCBsLGMsdTtpLnNldFBvc2l0aW9uUmVmZXJlbmNlKChuPWEsbz17eDplLHk6dCxheGlzOnMsZGF0YVJlZjpyLHBvaW50ZXJUeXBlOnB9LGw9bnVsbCxjPW51bGwsdT0hMSx7Y29udGV4dEVsZW1lbnQ6bnx8dm9pZCAwLGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpe2xldCBlPW4/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfHx7d2lkdGg6MCxoZWlnaHQ6MCx4OjAseTowfSx0PVwieFwiPT09by5heGlzfHxcImJvdGhcIj09PW8uYXhpcyxyPVwieVwiPT09by5heGlzfHxcImJvdGhcIj09PW8uYXhpcyxhPVtcIm1vdXNlZW50ZXJcIixcIm1vdXNlbW92ZVwiXS5pbmNsdWRlcyhvLmRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQ/LnR5cGV8fFwiXCIpJiZcInRvdWNoXCIhPT1vLnBvaW50ZXJUeXBlLGk9ZS53aWR0aCxzPWUuaGVpZ2h0LGQ9ZS54LGY9ZS55O3JldHVybiBudWxsPT1sJiZvLngmJnQmJihsPWUueC1vLngpLG51bGw9PWMmJm8ueSYmciYmKGM9ZS55LW8ueSksZC09bHx8MCxmLT1jfHwwLGk9MCxzPTAsIXV8fGE/KGk9XCJ5XCI9PT1vLmF4aXM/ZS53aWR0aDowLHM9XCJ4XCI9PT1vLmF4aXM/ZS5oZWlnaHQ6MCxkPXQmJm51bGwhPW8ueD9vLng6ZCxmPXImJm51bGwhPW8ueT9vLnk6Zik6dSYmIWEmJihzPVwieFwiPT09by5heGlzP2UuaGVpZ2h0OnMsaT1cInlcIj09PW8uYXhpcz9lLndpZHRoOmkpLHU9ITAse3dpZHRoOmksaGVpZ2h0OnMseDpkLHk6Zix0b3A6ZixyaWdodDpkK2ksYm90dG9tOmYrcyxsZWZ0OmR9fX0pKX19KSx2PWFmKGU9PntudWxsPT1jJiZudWxsPT11JiYobj9mLmN1cnJlbnR8fGcoW10pOnkoZS5jbGllbnRYLGUuY2xpZW50WSkpfSksYj1paShwKT9vOm4sQT14LnVzZUNhbGxiYWNrKCgpPT57aWYoIWJ8fCFsfHxudWxsIT1jfHxudWxsIT11KXJldHVybjtsZXQgZT1hUChvKTtmdW5jdGlvbiB0KG4pe2lnKG8saXkobikpPyhlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIix0KSxmLmN1cnJlbnQ9bnVsbCk6eShuLmNsaWVudFgsbi5jbGllbnRZKX1pZighci5jdXJyZW50Lm9wZW5FdmVudHx8dXgoci5jdXJyZW50Lm9wZW5FdmVudCkpe2UuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLHQpO2xldCBuPSgpPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsdCksZi5jdXJyZW50PW51bGx9O3JldHVybiBmLmN1cnJlbnQ9bixufWkuc2V0UG9zaXRpb25SZWZlcmVuY2UoYSl9LFtiLGwsYyx1LG8scixpLGEseV0pO3gudXNlRWZmZWN0KCgpPT5BKCksW0EsbV0pLHgudXNlRWZmZWN0KCgpPT57bCYmIW8mJihkLmN1cnJlbnQ9ITEpfSxbbCxvXSkseC51c2VFZmZlY3QoKCk9PnshbCYmbiYmKGQuY3VycmVudD0hMCl9LFtsLG5dKSxheCgoKT0+e2wmJihudWxsIT1jfHxudWxsIT11KSYmKGQuY3VycmVudD0hMSx5KGMsdSkpfSxbbCxjLHUseV0pO2xldCB3PXgudXNlTWVtbygoKT0+e2Z1bmN0aW9uIGUoZSl7aChlLnBvaW50ZXJUeXBlKX1yZXR1cm57b25Qb2ludGVyRG93bjplLG9uUG9pbnRlckVudGVyOmUsb25Nb3VzZU1vdmU6dixvbk1vdXNlRW50ZXI6dn19LFt2XSk7cmV0dXJuIHgudXNlTWVtbygoKT0+bD97cmVmZXJlbmNlOnd9Ont9LFtsLHddKX0oUCx7ZW5hYmxlZDohdCYmXCJub25lXCIhPT1zLGF4aXM6XCJub25lXCI9PT1zP3ZvaWQgMDpzfSldKSxGPXgudXNlTWVtbygoKT0+KHtvcGVuOl8sc2V0T3BlbjpFLG1vdW50ZWQ6aixzZXRNb3VudGVkOlMsc2V0VHJpZ2dlckVsZW1lbnQ6aCxwb3NpdGlvbmVyRWxlbWVudDptLHNldFBvc2l0aW9uZXJFbGVtZW50OmcscG9wdXBSZWY6QSx0cmlnZ2VyUHJvcHM6WigpLHBvcHVwUHJvcHM6VSgpLGZsb2F0aW5nUm9vdENvbnRleHQ6UCxpbnN0YW50VHlwZTpMLHRyYW5zaXRpb25TdGF0dXM6Tyxvbk9wZW5DaGFuZ2VDb21wbGV0ZTp1fSksW18sRSxqLFMsaCxtLGcsQSxaLFUsUCxMLE8sdV0pLHE9eC51c2VNZW1vKCgpPT4oey4uLkYsZGVsYXk6ZCxjbG9zZURlbGF5OmYsdHJhY2tDdXJzb3JBeGlzOnMsaG92ZXJhYmxlOmx9KSxbRixkLGYscyxsXSk7cmV0dXJuKDAsYi5qc3gpKHVhLlByb3ZpZGVyLHt2YWx1ZTpxLGNoaWxkcmVuOmUuY2hpbGRyZW59KX12YXIgdUM9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jc3NcIiksdV89e307dV8uc3R5bGVUYWdUcmFuc2Zvcm09aCgpLHVfLnNldEF0dHJpYnV0ZXM9dSgpLHVfLmluc2VydD1zKCksdV8uZG9tQVBJPWkoKSx1Xy5pbnNlcnRTdHlsZUVsZW1lbnQ9ZigpLG8oKSh1Qy5aLHVfKSx1Qy5aJiZ1Qy5aLmxvY2FscyYmdUMuWi5sb2NhbHM7dmFyIHVrPSgwLHguZm9yd2FyZFJlZikoZnVuY3Rpb24oZSx0KXt2YXIgbixyLG8sYSxpLGwscyxjLHUsZCxmLHAsaD0oMCxBLmMpKDM1KSxtPWUuY2xhc3NOYW1lLGc9ZS5jaGlsZHJlbix5PWUudGl0bGUsdj1lLmRpcmVjdGlvbix4PWUuYXJyb3dTaXplLHc9ZS5vZmZzZXQsQz12b2lkIDA9PT12P1widG9wXCI6dixfPXZvaWQgMD09PXg/Njp4LGs9ZGEoKS5zaGFkb3dSb290O2lmKCF5KXJldHVybiBnO2hbMF0hPT1nPyhuPWZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuKDAsYi5qc3gpKFwic3BhblwiLCh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e30scj1PYmplY3Qua2V5cyhuKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG4pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1lLG89dCxhPW5bdF0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sZSksbj1uPXtjaGlsZHJlbjpnfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO24ucHVzaC5hcHBseShuLHIpfXJldHVybiBufSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pLHQpKX0saFswXT1nLGhbMV09bik6bj1oWzFdLGhbMl0hPT10fHxoWzNdIT09bj8ocj0oMCxiLmpzeCkodWwse3JlZjp0LHJlbmRlcjpufSksaFsyXT10LGhbM109bixoWzRdPXIpOnI9aFs0XTt2YXIgRT0odm9pZCAwPT09dz84OncpK18saj1cIlwiLmNvbmNhdChfLFwicHhcIiksUz1cIlwiLmNvbmNhdChfLFwicHhcIik7aFs1XSE9PWp8fGhbNl0hPT1TPyhvPXtcIi0tYW5jaG9yLXdpZHRoXCI6aixcIi0tYW5jaG9yLWhlaWdodFwiOlN9LGhbNV09aixoWzZdPVMsaFs3XT1vKTpvPWhbN107dmFyIE89bztoWzhdIT09bT8oYT1lRyhcInRvb2x0aXBcIixtKSxoWzhdPW0saFs5XT1hKTphPWhbOV07dmFyIEI9XCJcIi5jb25jYXQoXyxcInB4XCIpO2hbMTBdIT09Qj8oaT17XCItLWFycm93LXNpemVcIjpCfSxoWzEwXT1CLGhbMTFdPWkpOmk9aFsxMV07dmFyIFA9aSxJPVwidG9vbHRpcC1hcnJvdy0tXCIuY29uY2F0KEMpO2hbMTJdIT09ST8obD1lRyhcInRvb2x0aXAtYXJyb3dcIixJKSxoWzEyXT1JLGhbMTNdPWwpOmw9aFsxM107dmFyIHo9XCJcIi5jb25jYXQoXyxcInB4XCIpO2hbMTRdIT09ej8ocz17XCItLWFycm93LXNpemVcIjp6fSxoWzE0XT16LGhbMTVdPXMpOnM9aFsxNV07dmFyIFQ9cztyZXR1cm4gaFsxNl0hPT1sfHxoWzE3XSE9PVQ/KGM9KDAsYi5qc3gpKHV1LHtjbGFzc05hbWU6bCxzdHlsZTpUfSksaFsxNl09bCxoWzE3XT1ULGhbMThdPWMpOmM9aFsxOF0saFsxOV0hPT1hfHxoWzIwXSE9PVB8fGhbMjFdIT09Y3x8aFsyMl0hPT15Pyh1PSgwLGIuanN4cykodWYse2NsYXNzTmFtZTphLHN0eWxlOlAsY2hpbGRyZW46W3ksY119KSxoWzE5XT1hLGhbMjBdPVAsaFsyMV09YyxoWzIyXT15LGhbMjNdPXUpOnU9aFsyM10saFsyNF0hPT1DfHxoWzI1XSE9PU98fGhbMjZdIT09dXx8aFsyN10hPT1FPyhkPSgwLGIuanN4KSh1aCx7c2lkZTpDLHNpZGVPZmZzZXQ6RSxjbGFzc05hbWU6XCJ0b29sdGlwLXBvc2l0aW9uZXJcIixzdHlsZTpPLGNoaWxkcmVuOnV9KSxoWzI0XT1DLGhbMjVdPU8saFsyNl09dSxoWzI3XT1FLGhbMjhdPWQpOmQ9aFsyOF0saFsyOV0hPT1rfHxoWzMwXSE9PWQ/KGY9KDAsYi5qc3gpKHVnLHtjb250YWluZXI6ayxjaGlsZHJlbjpkfSksaFsyOV09ayxoWzMwXT1kLGhbMzFdPWYpOmY9aFszMV0saFszMl0hPT1mfHxoWzMzXSE9PXI/KHA9KDAsYi5qc3gpKHVBLHtjaGlsZHJlbjooMCxiLmpzeHMpKHV3LHtkZWxheTo0MDAsY2hpbGRyZW46W3IsZl19KX0pLGhbMzJdPWYsaFszM109cixoWzM0XT1wKTpwPWhbMzRdLHB9KTtmdW5jdGlvbiB1RShlKXt2YXIgdCxuLHI9KDAsQS5jKSgzKSxvPWUucG9zc2libGVFeHRlbnNpb24sYT1lLm1pc3NpbmdHbG9iYWxFcnJvcj9cIk5vIGdsb2JhbC1lcnJvci5cIi5jb25jYXQobyxcIiBmb3VuZDogQWRkIG9uZSB0byBlbnN1cmUgdXNlcnMgc2VlIGEgaGVscGZ1bCBtZXNzYWdlIHdoZW4gYW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cnMuXCIpOm51bGw7cmV0dXJuIHJbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxiLmpzeCkodUwse30pLHJbMF09dCk6dD1yWzBdLHJbMV0hPT1hPyhuPSgwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1zdWdnZXN0aW9uc1wiLGNoaWxkcmVuOigwLGIuanN4KSh1ayx7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1zdWdnZXN0aW9ucy10b29sdGlwXCIsdGl0bGU6YSxjaGlsZHJlbjp0fSl9KSxyWzFdPWEsclsyXT1uKTpuPXJbMl0sbn1mdW5jdGlvbiB1aihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LHI9T2JqZWN0LmtleXMobik7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsbyxhO3I9ZSxvPXQsYT1uW3RdLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gdVMoZSx0KXtyZXR1cm4gdD1udWxsIT10P3Q6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihuKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKSl9KSxlfXZhciB1Tz1mdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiEhKG51bGw9PSh0PWUudmFsdWUpP3ZvaWQgMDp0LnR5cGUpJiYhIShudWxsPT0obj1lLnZhbHVlKT92b2lkIDA6bi5wYWdlUGF0aCl9O2Z1bmN0aW9uIHVCKGUpe3ZhciB0LG4scj0oMCxBLmMpKDMpLG89ZS5wYWdlO3JldHVybiByWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9KDAsYi5qc3gpKHVOLHt9KSxyWzBdPXQpOnQ9clswXSxyWzFdIT09bz8obj0oMCxiLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItcGFnZS1yb3V0ZS1iYXJcIixjaGlsZHJlbjpbdCwoMCxiLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItcGFnZS1yb3V0ZS1iYXItcGF0aFwiLGNoaWxkcmVuOm99KV19KSxyWzFdPW8sclsyXT1uKTpuPXJbMl0sbn1mdW5jdGlvbiB1UChlKXt2YXIgdCxuLHIsbz0oMCxBLmMpKDkpLGE9ZS5hY3RpdmVCb3VuZGFyaWVzQ291bnQsaT1lLm9uR2xvYmFsUmVzZXQsbD1hPjAscz1cInNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJ1dHRvbiBcIi5jb25jYXQobD9cIlwiOlwic2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uLS1kaXNhYmxlZFwiKSxjPWw/aTp2b2lkIDAsdT0hbDtyZXR1cm4gb1swXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1mb290ZXItdGV4dFwiLGNoaWxkcmVuOlwiQ2xlYXIgU2VnbWVudCBPdmVycmlkZXNcIn0pLG9bMF09dCk6dD1vWzBdLG9bMV0hPT1hfHxvWzJdIT09bD8obj1sJiYoMCxiLmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJhZGdlXCIsY2hpbGRyZW46YX0pLG9bMV09YSxvWzJdPWwsb1szXT1uKTpuPW9bM10sb1s0XSE9PXN8fG9bNV0hPT1jfHxvWzZdIT09dXx8b1s3XSE9PW4/KHI9KDAsYi5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItZm9vdGVyXCIsY2hpbGRyZW46KDAsYi5qc3hzKShcImJ1dHRvblwiLHtjbGFzc05hbWU6cyxvbkNsaWNrOmMsZGlzYWJsZWQ6dSx0eXBlOlwiYnV0dG9uXCIsY2hpbGRyZW46W3Qsbl19KX0pLG9bNF09cyxvWzVdPWMsb1s2XT11LG9bN109bixvWzhdPXIpOnI9b1s4XSxyfWZ1bmN0aW9uIHVJKGUpe3ZhciB0LG4scixvLGEsaT0oMCxBLmMpKDE1KSxsPWUudHlwZSxzPWUuaXNCdWlsdGluLGM9ZS5pc092ZXJyaWRkZW4sdT1lLmZpbGVQYXRoLGQ9ZS5maWxlTmFtZSxmPVwic2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLS1cIi5jb25jYXQobCkscD1zJiZcInNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tYnVpbHRpblwiLGg9YyYmXCJzZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLW92ZXJyaWRkZW5cIjtyZXR1cm4gaVswXSE9PWZ8fGlbMV0hPT1wfHxpWzJdIT09aD8odD1lRyhcInNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbFwiLGYscCxoKSxpWzBdPWYsaVsxXT1wLGlbMl09aCxpWzNdPXQpOnQ9aVszXSxpWzRdIT09dT8obj1mdW5jdGlvbigpe3ZhciBlO2U9bmV3IFVSTFNlYXJjaFBhcmFtcyh7ZmlsZTp7ZmlsZVBhdGg6dX0uZmlsZVBhdGgsaXNBcHBSZWxhdGl2ZVBhdGg6XCIxXCJ9KSxmZXRjaChcIlwiLmNvbmNhdChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIfHxcIlwiLFwiL19fbmV4dGpzX2xhdW5jaC1lZGl0b3I/XCIpLmNvbmNhdChlLnRvU3RyaW5nKCkpKX0saVs0XT11LGlbNV09bik6bj1pWzVdLGlbNl0hPT1kPyhyPSgwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRleHRcIixjaGlsZHJlbjpkfSksaVs2XT1kLGlbN109cik6cj1pWzddLGlbOF0hPT1zPyhvPXM/KDAsYi5qc3gpKHVMLHt9KTooMCxiLmpzeCkodVIse2NsYXNzTmFtZTpcImNvZGUtaWNvblwifSksaVs4XT1zLGlbOV09byk6bz1pWzldLGlbMTBdIT09dHx8aVsxMV0hPT1ufHxpWzEyXSE9PXJ8fGlbMTNdIT09bz8oYT0oMCxiLmpzeHMpKFwic3BhblwiLHtjbGFzc05hbWU6dCxvbkNsaWNrOm4sY2hpbGRyZW46W3Isb119KSxpWzEwXT10LGlbMTFdPW4saVsxMl09cixpWzEzXT1vLGlbMTRdPWEpOmE9aVsxNF0sYX1mdW5jdGlvbiB1eihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdT0oMCxBLmMpKDE3KSxkPWUucGFnZSxmPSgwLHgudXNlU3luY0V4dGVybmFsU3RvcmUpKG82LG85LG84KTt1WzBdIT09Zj8obj1mdW5jdGlvbiBlKHQpe3ZhciBuLHI9MDtyZXR1cm4obnVsbD09KG49dC52YWx1ZSk/dm9pZCAwOm4uc2V0Qm91bmRhcnlUeXBlKSYmbnVsbCE9PXQudmFsdWUuYm91bmRhcnlUeXBlJiYhYzEodC52YWx1ZS50eXBlKSYmcisrLE9iamVjdC52YWx1ZXModC5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbih0KXt0JiYocis9ZSh0KSl9KSxyfShmKSx1WzBdPWYsdVsxXT1uKTpuPXVbMV0sdD1uLHVbMl0hPT1mPyhyPWZ1bmN0aW9uKCl7IWZ1bmN0aW9uIGUodCl7dmFyIG47KG51bGw9PShuPXQudmFsdWUpP3ZvaWQgMDpuLnNldEJvdW5kYXJ5VHlwZSkmJnQudmFsdWUuc2V0Qm91bmRhcnlUeXBlKG51bGwpLE9iamVjdC52YWx1ZXModC5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbih0KXt0JiZlKHQpfSl9KGYpfSx1WzJdPWYsdVszXT1yKTpyPXVbM107dmFyIHA9cjtyZXR1cm4gdVs0XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhvPXtkaXNwbGF5OlwiZmxleFwiLGZsZXhEaXJlY3Rpb246XCJjb2x1bW5cIixoZWlnaHQ6XCIxMDAlXCJ9LHVbNF09byk6bz11WzRdLHVbNV0hPT1kPyhhPSgwLGIuanN4KSh1Qix7cGFnZTpkfSksdVs1XT1kLHVbNl09YSk6YT11WzZdLHVbN109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oaT17ZmxleDpcIjEgMSBhdXRvXCIsb3ZlcmZsb3c6XCJhdXRvXCJ9LHVbN109aSk6aT11WzddLHVbOF0hPT1mPyhsPSgwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJzZWdtZW50LWV4cGxvcmVyLWNvbnRlbnRcIixcImRhdGEtbmV4dGpzLWRldnRvb2wtc2VnbWVudC1leHBsb3JlclwiOiEwLHN0eWxlOmksY2hpbGRyZW46KDAsYi5qc3gpKHVELHtub2RlOmYsbGV2ZWw6MCxzZWdtZW50OlwiXCJ9KX0pLHVbOF09Zix1WzldPWwpOmw9dVs5XSx1WzEwXSE9PXR8fHVbMTFdIT09cD8ocz0oMCxiLmpzeCkodVAse2FjdGl2ZUJvdW5kYXJpZXNDb3VudDp0LG9uR2xvYmFsUmVzZXQ6cH0pLHVbMTBdPXQsdVsxMV09cCx1WzEyXT1zKTpzPXVbMTJdLHVbMTNdIT09YXx8dVsxNF0hPT1sfHx1WzE1XSE9PXM/KGM9KDAsYi5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNlZ21lbnRzLWV4cGxvcmVyXCI6ITAsc3R5bGU6byxjaGlsZHJlbjpbYSxsLHNdfSksdVsxM109YSx1WzE0XT1sLHVbMTVdPXMsdVsxNl09Yyk6Yz11WzE2XSxjfXZhciB1VD1cImdsb2JhbC1lcnJvclwiO2Z1bmN0aW9uIHVEKGUpe3ZhciB0PWUuc2VnbWVudCxuPWUubm9kZSxyPWUubGV2ZWwsbz0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKG4uY2hpbGRyZW4pfSxbbi5jaGlsZHJlbl0pLGE9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiBvLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHI9bi5jaGlsZHJlblt0XTtpZihyJiZyLnZhbHVlKXt2YXIgbz1jMihyLnZhbHVlLnR5cGUpLGE9bz09PXVUOyhhJiYhci52YWx1ZS5wYWdlUGF0aC5zdGFydHNXaXRoKGNRKXx8IWEmJmMxKHIudmFsdWUudHlwZSkpJiZlLnB1c2gobyl9fSksMD09PXImJiFlLmluY2x1ZGVzKHVUKX0sW24uY2hpbGRyZW4sbyxyXSksaT1vLnNvcnQoZnVuY3Rpb24oZSx0KXt2YXIgcj1lLmluY2x1ZGVzKFwiLlwiKSxvPXQuaW5jbHVkZXMoXCIuXCIpO2lmKHImJiFvKXJldHVybiAtMTtpZighciYmbylyZXR1cm4gMTtpZihyJiZvKXt2YXIgYSxpLGwscyxjLHUsZCxmLHA9bnVsbD09KGk9bi5jaGlsZHJlbltlXSl8fG51bGw9PShhPWkudmFsdWUpP3ZvaWQgMDphLnR5cGUsaD1udWxsPT0ocz1uLmNoaWxkcmVuW3RdKXx8bnVsbD09KGw9cy52YWx1ZSk/dm9pZCAwOmwudHlwZSxtPWZ1bmN0aW9uKGUpe3JldHVybiBlP1wibGF5b3V0XCI9PT1lPzE6XCJ0ZW1wbGF0ZVwiPT09ZT8yOlwicGFnZVwiPT09ZT8zOmMxKGUpPzQ6NTo1fSxnPW0ocCkseT1tKGgpO2lmKGchPT15KXJldHVybiBnLXk7dmFyIHY9KG51bGw9PSh1PW4uY2hpbGRyZW5bZV0pfHxudWxsPT0oYz11LnZhbHVlKT92b2lkIDA6Yy5wYWdlUGF0aCl8fFwiXCIsYj0obnVsbD09KGY9bi5jaGlsZHJlblt0XSl8fG51bGw9PShkPWYudmFsdWUpP3ZvaWQgMDpkLnBhZ2VQYXRoKXx8XCJcIjtyZXR1cm4gdi5sb2NhbGVDb21wYXJlKGIpfXJldHVybiBlLmxvY2FsZUNvbXBhcmUodCl9KSxsPTAhPT1yfHx0P3Q6XCJhcHBcIixzPVtdLGM9W10sdT0hMCxkPSExLGY9dm9pZCAwO3RyeXtmb3IodmFyIHAsaD1pW1N5bWJvbC5pdGVyYXRvcl0oKTshKHU9KHA9aC5uZXh0KCkpLmRvbmUpO3U9ITApe3ZhciBtPXAudmFsdWUsZz1uLmNoaWxkcmVuW21dO2lmKGcpe2lmKHVPKGcpKXtjLnB1c2gobSk7Y29udGludWV9cy5wdXNoKG0pfX19Y2F0Y2goZSl7ZD0hMCxmPWV9ZmluYWxseXt0cnl7dXx8bnVsbD09aC5yZXR1cm58fGgucmV0dXJuKCl9ZmluYWxseXtpZihkKXRocm93IGZ9fWZvcih2YXIgeT1jSihjWzBdfHxcIlwiKS5zcGxpdChcIi5cIikucG9wKCl8fFwianNcIix2PW51bGwsQT1pLmxlbmd0aC0xO0E+PTA7QS0tKXt2YXIgdz1uLmNoaWxkcmVuW2lbQV1dO2lmKHcmJncudmFsdWUpe3ZhciBDPWMxKHcudmFsdWUudHlwZSk7aWYoIXYmJiFDKXt2PXc7YnJlYWt9fX12YXIgXz1udWxsLGs9ITAsRT0hMSxqPXZvaWQgMDt0cnl7Zm9yKHZhciBTLE89aVtTeW1ib2wuaXRlcmF0b3JdKCk7IShrPShTPU8ubmV4dCgpKS5kb25lKTtrPSEwKXt2YXIgQj1TLnZhbHVlLFA9bi5jaGlsZHJlbltCXTtpZihQJiZQLnZhbHVlJiZjMShQLnZhbHVlLnR5cGUpKXtfPVA7YnJlYWt9fX1jYXRjaChlKXtFPSEwLGo9ZX1maW5hbGx5e3RyeXtrfHxudWxsPT1PLnJldHVybnx8Ty5yZXR1cm4oKX1maW5hbGx5e2lmKEUpdGhyb3cgan19dj12fHxfO3ZhciBJPWMubGVuZ3RoPjAsej17XCJub3QtZm91bmRcIjpudWxsLGxvYWRpbmc6bnVsbCxlcnJvcjpudWxsLFwiZ2xvYmFsLWVycm9yXCI6bnVsbH07cmV0dXJuIGMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD1uLmNoaWxkcmVuW2VdO2lmKHQmJnQudmFsdWUmJmMxKHQudmFsdWUudHlwZSkpe3ZhciByPWMyKHQudmFsdWUudHlwZSk7ciBpbiB6JiYoeltyXT10LnZhbHVlLnBhZ2VQYXRofHxudWxsKX19KSwoMCxiLmpzeHMpKGIuRnJhZ21lbnQse2NoaWxkcmVuOltJJiYoMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1pdGVtXCIsXCJkYXRhLW5leHRqcy1kZXZ0b29sLXNlZ21lbnQtZXhwbG9yZXItc2VnbWVudFwiOnQrXCItXCIrcixjaGlsZHJlbjooMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1pdGVtLXJvd1wiLHN0eWxlOnVqKHt9LHtwYWRkaW5nTGVmdDpcIlwiLmNvbmNhdCgocisxKSo4LFwicHhcIil9KSxjaGlsZHJlbjooMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1pdGVtLXJvdy1tYWluXCIsY2hpbGRyZW46KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lXCIsY2hpbGRyZW46W2wmJigwLGIuanN4cykoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGhcIixjaGlsZHJlbjpbbCwoMCxiLmpzeCkoXCJzbWFsbFwiLHtjaGlsZHJlbjpcIi9cIn0pXX0pLGEmJigwLGIuanN4KSh1RSx7cG9zc2libGVFeHRlbnNpb246eSxtaXNzaW5nR2xvYmFsRXJyb3I6YX0pLGMubGVuZ3RoPjAmJigwLGIuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1maWxlc1wiLGNoaWxkcmVuOmMubWFwKGZ1bmN0aW9uKGUpe3ZhciB0PW4uY2hpbGRyZW5bZV07aWYoIXR8fCF0LnZhbHVlfHxjMSh0LnZhbHVlLnR5cGUpKXJldHVybiBudWxsO3ZhciByPXQudmFsdWUucGFnZVBhdGgsbz1yLnNwbGl0KFwiL1wiKS5wb3AoKXx8XCJcIixhPXIuc3RhcnRzV2l0aChjUSksaT1jSihvKSxsPWE/XCJUaGUgZGVmYXVsdCBOZXh0LmpzIFwiLmNvbmNhdCh0LnZhbHVlLnR5cGUsXCIgaXMgYmVpbmcgc2hvd24uIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgcGFnZSBieSBhZGRpbmcgeW91ciBvd24gXCIpLmNvbmNhdChpLFwiIGZpbGUgdG8gdGhlIGFwcC8gZGlyZWN0b3J5LlwiKTpudWxsLHM9bnVsbCE9PXQudmFsdWUuYm91bmRhcnlUeXBlO3JldHVybigwLGIuanN4KSh1ayx7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRvb2x0aXAtLVwiKyhhP1wibGdcIjpcInNtXCIpLGRpcmVjdGlvbjphP1wicmlnaHRcIjpcInRvcFwiLHRpdGxlOmwsb2Zmc2V0OjEyLGNoaWxkcmVuOigwLGIuanN4KSh1SSx7dHlwZTp0LnZhbHVlLnR5cGUsaXNCdWlsdGluOmEsaXNPdmVycmlkZGVuOnMsZmlsZVBhdGg6cixmaWxlTmFtZTppfSl9LGUpfSl9KSx2JiZ2LnZhbHVlJiYoMCxiLmpzeCkoYzgse25vZGVTdGF0ZTp2LnZhbHVlLGJvdW5kYXJpZXM6en0pXX0pfSl9KX0pLHMubWFwKGZ1bmN0aW9uKGUpe3ZhciBvPW4uY2hpbGRyZW5bZV07aWYoIW8pcmV0dXJuIG51bGw7dmFyIGE9ST9lOnQrXCIgLyBcIitlO3JldHVybigwLGIuanN4KSh1RCx7c2VnbWVudDphLG5vZGU6byxsZXZlbDpJP3IrMTpyfSxlKX0pXX0pfWZ1bmN0aW9uIHVMKGUpe3ZhciB0LG4scixvPSgwLEEuYykoNCk7cmV0dXJuIG9bMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odD0oMCxiLmpzeCkoXCJwYXRoXCIse2Q6XCJNMTQgOEMxNCAxMS4zMTM3IDExLjMxMzcgMTQgOCAxNEM0LjY4NjI5IDE0IDIgMTEuMzEzNyAyIDhDMiA0LjY4NjI5IDQuNjg2MjkgMiA4IDJDMTEuMzEzNyAyIDE0IDQuNjg2MjkgMTQgOFpcIixmaWxsOlwidmFyKC0tY29sb3ItZ3JheS00MDApXCJ9KSxuPSgwLGIuanN4KShcInBhdGhcIix7ZDpcIk03Ljc1IDdDOC4zMDIyOCA3LjAwMDAxIDguNzUgNy40NDc3MiA4Ljc1IDhWMTEuMjVINy4yNVY4LjVINi4yNVY3SDcuNzVaTTggNEM4LjU1MjI4IDQgOSA0LjQ0NzcyIDkgNUM5IDUuNTUyMjggOC41NTIyOCA2IDggNkM3LjQ0NzcyIDYgNyA1LjU1MjI4IDcgNUM3IDQuNDQ3NzIgNy40NDc3MiA0IDggNFpcIixmaWxsOlwidmFyKC0tY29sb3ItZ3JheS05MDApXCJ9KSxvWzBdPXQsb1sxXT1uKToodD1vWzBdLG49b1sxXSksb1syXSE9PWU/KHI9KDAsYi5qc3hzKShcInN2Z1wiLHVTKHVqKHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjpbdCxuXX0pKSxvWzJdPWUsb1szXT1yKTpyPW9bM10scn1mdW5jdGlvbiB1Tigpe3ZhciBlLHQ9KDAsQS5jKSgxKTtyZXR1cm4gdFswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhlPSgwLGIuanN4KShcInN2Z1wiLHt3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiMjBcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcInZhcigtLWNvbG9yLWdyYXktNjAwKVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCxiLmpzeCkoXCJwYXRoXCIse2Q6XCJNNC41IDExLjI1QzQuNSAxMS4zODgxIDQuNjExOTMgMTEuNSA0Ljc1IDExLjVIMTQuNDM5NUwxMS45Mzk1IDlMMTMgNy45Mzk0NUwxNi43ODAzIDExLjcxOTdMMTYuODMyIDExLjc3NjRDMTcuMDcyMyAxMi4wNzA5IDE3LjA1NDkgMTIuNTA1NyAxNi43ODAzIDEyLjc4MDNMMTMgMTYuNTYwNUwxMS45Mzk1IDE1LjVMMTQuNDM5NSAxM0g0Ljc1QzMuNzgzNSAxMyAzIDEyLjIxNjUgMyAxMS4yNVY0LjI1SDQuNVYxMS4yNVpcIn0pfSksdFswXT1lKTplPXRbMF0sZX1mdW5jdGlvbiB1UihlKXt2YXIgdCxuLHI9KDAsQS5jKSgzKTtyZXR1cm4gclswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk03LjIyNzYzIDE0LjE4MTlMMTAuMjI3NiAyLjE4MTkzTDEwLjQwOTUgMS40NTQzMkw4Ljk1NDMyIDEuMDkwNTJMOC43NzI0MiAxLjgxODEyTDUuNzcyNDIgMTMuODE4MUw1LjU5MDUxIDE0LjU0NTdMNy4wNDU3MyAxNC45MDk1TDcuMjI3NjMgMTQuMTgxOVpNMy43NTAwMiAxMi4wNjA3TDMuMjE5NjkgMTEuNTMwNEwwLjM5NjQ3IDguNzA3MTNDMC4wMDU5NDU1OSA4LjMxNjYxIDAuMDA1OTQ1NTkgNy42ODM0NCAwLjM5NjQ3IDcuMjkyOTJMMy4yMTk2OSA0LjQ2OTY5TDMuNzUwMDIgMy45MzkzNkw0LjgxMDY4IDUuMDAwMDJMNC4yODAzNSA1LjUzMDM1TDEuODEwNjggOC4wMDAwM0w0LjI4MDM1IDEwLjQ2OTdMNC44MTA2OCAxMUwzLjc1MDAyIDEyLjA2MDdaTTEyLjI1IDEyLjA2MDdMMTIuNzgwNCAxMS41MzA0TDE1LjYwMzYgOC43MDcxM0MxNS45OTQxIDguMzE2NjEgMTUuOTk0MSA3LjY4MzQ0IDE1LjYwMzYgNy4yOTI5MkwxMi43ODA0IDQuNDY5NjlMMTIuMjUgMy45MzkzNkwxMS4xODk0IDUuMDAwMDJMMTEuNzE5NyA1LjUzMDM1TDE0LjE4OTQgOC4wMDAwM0wxMS43MTk3IDEwLjQ2OTdMMTEuMTg5NCAxMUwxMi4yNSAxMi4wNjA3WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pLHJbMF09dCk6dD1yWzBdLHJbMV0hPT1lPyhuPSgwLGIuanN4KShcInN2Z1wiLHVTKHVqKHt3aWR0aDpcIjEyXCIsaGVpZ2h0OlwiMTJcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0sZSkse2NoaWxkcmVuOnR9KSksclsxXT1lLHJbMl09bik6bj1yWzJdLG59ZnVuY3Rpb24gdU0oKXt2YXIgZSx0LG49KGU9W1wiXFxuICAgICAgICAuZGV2LXRvb2xzLWluZm8tY2xvc2UtYnV0dG9uOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgICAgIH1cXG4gICAgICBcIl0sdHx8KHQ9ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9fSkpKTtyZXR1cm4gdU09ZnVuY3Rpb24oKXtyZXR1cm4gbn0sbn1mdW5jdGlvbiB1WihlKXt2YXIgdCxuLHIsbyxhLGksbCxzLGMsdSxkLGY9KDAsQS5jKSgxOCkscD1lLnRpdGxlLGg9ZS5jaGlsZHJlbixtPWUucmVmLGc9cjIoKS5zZXRQYW5lbCx5PSgwLHgudXNlUmVmKShudWxsKTtyZXR1cm4gZlswXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PWZ1bmN0aW9uKCl7dmFyIGU7bnVsbD09KGU9eS5jdXJyZW50KXx8ZS5mb2N1cygpfSxuPVtdLGZbMF09dCxmWzFdPW4pOih0PWZbMF0sbj1mWzFdKSwoMCx4LnVzZUxheW91dEVmZmVjdCkodCxuKSxmWzJdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHI9e3dpZHRoOlwiMTAwJVwiLGRpc3BsYXk6XCJmbGV4XCIsYWxpZ25JdGVtczpcImNlbnRlclwiLGp1c3RpZnlDb250ZW50Olwic3BhY2UtYmV0d2VlblwiLHBhZGRpbmc6XCI4cHggMjBweFwiLHVzZXJTZWxlY3Q6XCJub25lXCIsV2Via2l0VXNlclNlbGVjdDpcIm5vbmVcIixib3JkZXJCb3R0b206XCIxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApXCJ9LGZbMl09cik6cj1mWzJdLGZbM109PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8obz17bWFyZ2luOjAsZm9udFNpemU6XCIxNHB4XCIsY29sb3I6XCJ2YXIoLS1jb2xvci10ZXh0LXByaW1hcnkpXCIsZm9udFdlaWdodDpcIm5vcm1hbFwifSxmWzNdPW8pOm89ZlszXSxmWzRdIT09cD8oYT0oMCxiLmpzeCkoXCJoM1wiLHtzdHlsZTpvLGNoaWxkcmVuOnB9KSxmWzRdPXAsZls1XT1hKTphPWZbNV0sZls2XSE9PWc/KGk9ZnVuY3Rpb24oKXtnKFwicGFuZWwtc2VsZWN0b3JcIil9LGZbNl09ZyxmWzddPWkpOmk9Zls3XSxmWzhdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGw9e2JhY2tncm91bmQ6XCJub25lXCIsYm9yZGVyOlwibm9uZVwiLGN1cnNvcjpcInBvaW50ZXJcIixwYWRkaW5nOlwiNHB4XCIsZGlzcGxheTpcImZsZXhcIixhbGlnbkl0ZW1zOlwiY2VudGVyXCIsanVzdGlmeUNvbnRlbnQ6XCJjZW50ZXJcIixib3JkZXJSYWRpdXM6XCI0cHhcIixjb2xvcjpcInZhcigtLWNvbG9yLWdyYXktOTAwKVwifSxzPSgwLGIuanN4KSh1VSx7fSksZls4XT1sLGZbOV09cyk6KGw9Zls4XSxzPWZbOV0pLGZbMTBdIT09aT8oYz0oMCxiLmpzeCkoXCJidXR0b25cIix7cmVmOnksaWQ6XCJfbmV4dC1kZXZ0b29scy1wYW5lbC1jbG9zZVwiLGNsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNsb3NlLWJ1dHRvblwiLG9uQ2xpY2s6aSxcImFyaWEtbGFiZWxcIjpcIkNsb3NlIGRldnRvb2xzIHBhbmVsXCIsc3R5bGU6bCxjaGlsZHJlbjpzfSksZlsxMF09aSxmWzExXT1jKTpjPWZbMTFdLGZbMTJdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHU9KDAsYi5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZXModU0oKSl9KSxmWzEyXT11KTp1PWZbMTJdLGZbMTNdIT09aHx8ZlsxNF0hPT1tfHxmWzE1XSE9PWF8fGZbMTZdIT09Yz8oZD0oMCxiLmpzeHMpKFwiZGl2XCIse3N0eWxlOnIscmVmOm0sY2hpbGRyZW46W2EsaCxjLHVdfSksZlsxM109aCxmWzE0XT1tLGZbMTVdPWEsZlsxNl09YyxmWzE3XT1kKTpkPWZbMTddLGR9ZnVuY3Rpb24gdVUoZSl7dmFyIHQsbixyLG89KDAsQS5jKSg0KSxhPWUuc2l6ZSxpPXZvaWQgMD09PWE/MjI6YTtyZXR1cm4gb1swXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyh0PSgwLGIuanN4KShcInBhdGhcIix7ZDpcIk0xOCA2IDYgMThcIn0pLG49KDAsYi5qc3gpKFwicGF0aFwiLHtkOlwibTYgNiAxMiAxMlwifSksb1swXT10LG9bMV09bik6KHQ9b1swXSxuPW9bMV0pLG9bMl0hPT1pPyhyPSgwLGIuanN4cykoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOmksaGVpZ2h0Omksdmlld0JveDpcIjAgMCAyNCAyNFwiLGZpbGw6XCJub25lXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsc3Ryb2tlV2lkdGg6XCIyXCIsc3Ryb2tlTGluZWNhcDpcInJvdW5kXCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLGNoaWxkcmVuOlt0LG5dfSksb1syXT1pLG9bM109cik6cj1vWzNdLHJ9ZnVuY3Rpb24gdUYoKXt2YXIgZSx0PSgwLEEuYykoMSk7cmV0dXJuIHRbMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxiLmpzeCkoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMjAgMjBcIixmaWxsOlwibm9uZVwiLGNoaWxkcmVuOigwLGIuanN4KShcInBhdGhcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGQ6XCJtOS43IDMuNzM2LjA0NS0uMjM2aC41MWwuMDQ0LjIzNmEyLjAyNCAyLjAyNCAwIDAgMCAxLjMzNCAxLjUzNmMuMTkuMDY2LjM3NS4xNDMuNTU0LjIzLjYxOC4zMDEgMS4zOTguMjkgMi4wMy0uMTQzbC4xOTktLjEzNi4zNi4zNjEtLjEzNS4xOTlhMi4wMjQgMi4wMjQgMCAwIDAtLjE0MyAyLjAzYy4wODcuMTc5LjE2NC4zNjQuMjMuNTU0LjIyNC42NS43ODMgMS4xOTIgMS41MzYgMS4zMzRsLjIzNi4wNDR2LjUxbC0uMjM2LjA0NGEyLjAyNCAyLjAyNCAwIDAgMC0xLjUzNiAxLjMzNCA0Ljk1IDQuOTUgMCAwIDEtLjIzLjU1NCAyLjAyNCAyLjAyNCAwIDAgMCAuMTQzIDIuMDNsLjEzNi4xOTktLjM2MS4zNi0uMTk5LS4xMzVhMi4wMjQgMi4wMjQgMCAwIDAtMi4wMy0uMTQzYy0uMTc5LjA4Ny0uMzY0LjE2NC0uNTU0LjIzYTIuMDI0IDIuMDI0IDAgMCAwLTEuMzM0IDEuNTM2bC0uMDQ0LjIzNmgtLjUxbC0uMDQ0LS4yMzZhMi4wMjQgMi4wMjQgMCAwIDAtMS4zMzQtMS41MzYgNC45NTIgNC45NTIgMCAwIDEtLjU1NC0uMjMgMi4wMjQgMi4wMjQgMCAwIDAtMi4wMy4xNDNsLS4xOTkuMTM2LS4zNi0uMzYxLjEzNS0uMTk5YTIuMDI0IDIuMDI0IDAgMCAwIC4xNDMtMi4wMyA0Ljk1OCA0Ljk1OCAwIDAgMS0uMjMtLjU1NCAyLjAyNCAyLjAyNCAwIDAgMC0xLjUzNi0xLjMzNGwtLjIzNi0uMDQ0di0uNTFsLjIzNi0uMDQ0YTIuMDI0IDIuMDI0IDAgMCAwIDEuNTM2LTEuMzM0IDQuOTYgNC45NiAwIDAgMSAuMjMtLjU1NCAyLjAyNCAyLjAyNCAwIDAgMC0uMTQzLTIuMDNsLS4xMzYtLjE5OS4zNjEtLjM2LjE5OS4xMzVhMi4wMjQgMi4wMjQgMCAwIDAgMi4wMy4xNDNjLjE3OS0uMDg3LjM2NC0uMTY0LjU1NC0uMjNhMi4wMjQgMi4wMjQgMCAwIDAgMS4zMzQtMS41MzZaTTguNSAyaDNsLjI3NCAxLjQ2Yy4wMzQuMTg1LjE3LjMzMy4zNDguMzk0LjI0OC4wODYuNDkuMTg2LjcyMi4zLjE3LjA4Mi4zNy4wNzQuNTI2LS4wMzNsMS4yMjYtLjgzOSAyLjEyMiAyLjEyMi0uODQgMS4yMjZhLjUyNC41MjQgMCAwIDAtLjAzMi41MjZjLjExNC4yMzMuMjE0LjQ3NC4zLjcyMi4wNjEuMTc3LjIxLjMxNC4zOTQuMzQ4TDE4IDguNXYzbC0xLjQ2LjI3NGEuNTI0LjUyNCAwIDAgMC0uMzk0LjM0OCA2LjQ3IDYuNDcgMCAwIDEtLjMuNzIyLjUyNC41MjQgMCAwIDAgLjAzMy41MjZsLjgzOSAxLjIyNi0yLjEyMiAyLjEyMi0xLjIyNi0uODRhLjUyNC41MjQgMCAwIDAtLjUyNi0uMDMyIDYuNDc3IDYuNDc3IDAgMCAxLS43MjIuMy41MjQuNTI0IDAgMCAwLS4zNDguMzk0TDExLjUgMThoLTNsLS4yNzQtMS40NmEuNTI0LjUyNCAwIDAgMC0uMzQ4LS4zOTQgNi40NzcgNi40NzcgMCAwIDEtLjcyMi0uMy41MjQuNTI0IDAgMCAwLS41MjYuMDMzbC0xLjIyNi44MzktMi4xMjItMi4xMjIuODQtMS4yMjZhLjUyNC41MjQgMCAwIDAgLjAzMi0uNTI2IDYuNDUzIDYuNDUzIDAgMCAxLS4zLS43MjIuNTI0LjUyNCAwIDAgMC0uMzk0LS4zNDhMMiAxMS41di0zbDEuNDYtLjI3NGEuNTI0LjUyNCAwIDAgMCAuMzk0LS4zNDhjLjA4Ni0uMjQ4LjE4Ni0uNDkuMy0uNzIyYS41MjQuNTI0IDAgMCAwLS4wMzMtLjUyNmwtLjgzOS0xLjIyNiAyLjEyMi0yLjEyMiAxLjIyNi44NGEuNTI0LjUyNCAwIDAgMCAuNTI2LjAzMiA2LjQ2IDYuNDYgMCAwIDEgLjcyMi0uMy41MjQuNTI0IDAgMCAwIC4zNDgtLjM5NEw4LjUgMlptMyA4YTEuNSAxLjUgMCAxIDEtMyAwIDEuNSAxLjUgMCAwIDEgMyAwWm0xLjUgMGEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDBaXCIsY2xpcFJ1bGU6XCJldmVub2RkXCJ9KX0pLHRbMF09ZSk6ZT10WzBdLGV9dmFyIHVxPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvbWVudS9wYW5lbC1yb3V0ZXIuY3NzXCIpLHVIPXt9O3VILnN0eWxlVGFnVHJhbnNmb3JtPWgoKSx1SC5zZXRBdHRyaWJ1dGVzPXUoKSx1SC5pbnNlcnQ9cygpLHVILmRvbUFQST1pKCksdUguaW5zZXJ0U3R5bGVFbGVtZW50PWYoKSxvKCkodXEuWix1SCksdXEuWiYmdXEuWi5sb2NhbHMmJnVxLloubG9jYWxzO3ZhciB1Vj1mdW5jdGlvbigpe3ZhciBlLHQsbixyLG8sYSxpLGwscyxjLHUsZD0oMCxBLmMpKDMyKSxmPXIyKCkscD1mLnNldFBhbmVsLGg9Zi5zZXRTZWxlY3RlZEluZGV4LG09ZGEoKSxnPW0uc3RhdGUseT1tLmRpc3BhdGNoLHY9dTQoKS50b3RhbEVycm9yQ291bnQseD1cImFwcFwiPT09Zy5yb3V0ZXJUeXBlO2RbMF0hPT15fHxkWzFdIT09cHx8ZFsyXSE9PWh8fGRbM10hPT1nLmlzRXJyb3JPdmVybGF5T3Blbnx8ZFs0XSE9PXY/KGU9dj4wJiZ7dGl0bGU6XCJcIi5jb25jYXQodixcIiBcIikuY29uY2F0KDE9PT12P1wiaXNzdWVcIjpcImlzc3Vlc1wiLFwiIGZvdW5kLiBDbGljayB0byB2aWV3IGRldGFpbHMgaW4gdGhlIGRldiBvdmVybGF5LlwiKSxsYWJlbDpcIklzc3Vlc1wiLHZhbHVlOigwLGIuanN4KShveix7Y2hpbGRyZW46dn0pLG9uQ2xpY2s6ZnVuY3Rpb24oKXtpZihnLmlzRXJyb3JPdmVybGF5T3Blbil7eSh7dHlwZTpGfSkscChudWxsKTtyZXR1cm59cChudWxsKSxoKC0xKSx2PjAmJnkoe3R5cGU6VX0pfX0sZFswXT15LGRbMV09cCxkWzJdPWgsZFszXT1nLmlzRXJyb3JPdmVybGF5T3BlbixkWzRdPXYsZFs1XT1lKTplPWRbNV07dmFyIHc9XCJDdXJyZW50IHJvdXRlIGlzIFwiLmNvbmNhdChnLnN0YXRpY0luZGljYXRvcj9cInN0YXRpY1wiOlwiZHluYW1pY1wiLFwiLlwiKSxDPWcuc3RhdGljSW5kaWNhdG9yP1wiU3RhdGljXCI6XCJEeW5hbWljXCI7ZFs2XSE9PXA/KHQ9ZnVuY3Rpb24oKXtyZXR1cm4gcChcInJvdXRlLXR5cGVcIil9LGRbNl09cCxkWzddPXQpOnQ9ZFs3XTt2YXIgXz1nLnN0YXRpY0luZGljYXRvcj9cInN0YXRpY1wiOlwiZHluYW1pY1wiO3JldHVybiBkWzhdIT09Xz8obj17XCJkYXRhLW5leHRqcy1yb3V0ZS10eXBlXCI6X30sZFs4XT1fLGRbOV09bik6bj1kWzldLGRbMTBdIT09d3x8ZFsxMV0hPT1DfHxkWzEyXSE9PXR8fGRbMTNdIT09bj8ocj17dGl0bGU6dyxsYWJlbDpcIlJvdXRlXCIsdmFsdWU6QyxvbkNsaWNrOnQsYXR0cmlidXRlczpufSxkWzEwXT13LGRbMTFdPUMsZFsxMl09dCxkWzEzXT1uLGRbMTRdPXIpOnI9ZFsxNF0sZFsxNV0hPT1wPyhvPXByb2Nlc3MuZW52LlRVUkJPUEFDSz97dGl0bGU6XCJUdXJib3BhY2sgaXMgZW5hYmxlZC5cIixsYWJlbDpcIlR1cmJvcGFja1wiLHZhbHVlOlwiRW5hYmxlZFwifTp7dGl0bGU6XCJMZWFybiBhYm91dCBUdXJib3BhY2sgYW5kIGhvdyB0byBlbmFibGUgaXQgaW4geW91ciBhcHBsaWNhdGlvbi5cIixsYWJlbDpcIlRyeSBUdXJib3BhY2tcIix2YWx1ZTooMCxiLmpzeCkob1Qse30pLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gcChcInR1cmJvLWluZm9cIil9fSxkWzE1XT1wLGRbMTZdPW8pOm89ZFsxNl0sZFsxN10hPT14fHxkWzE4XSE9PXA/KGE9ISFwcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9TRUdNRU5UX0VYUExPUkVSJiZ4JiZ7bGFiZWw6XCJSb3V0ZSBJbmZvXCIsdmFsdWU6KDAsYi5qc3gpKG9ULHt9KSxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHAoXCJzZWdtZW50LWV4cGxvcmVyXCIpfSxhdHRyaWJ1dGVzOntcImRhdGEtc2VnbWVudC1leHBsb3JlclwiOiEwfX0sZFsxN109eCxkWzE4XT1wLGRbMTldPWEpOmE9ZFsxOV0sZFsyMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oaT0oMCxiLmpzeCkodUYse30pLGRbMjBdPWkpOmk9ZFsyMF0sZFsyMV0hPT1wPyhsPWZ1bmN0aW9uKCl7cmV0dXJuIHAoXCJwcmVmZXJlbmNlc1wiKX0sZFsyMV09cCxkWzIyXT1sKTpsPWRbMjJdLGRbMjNdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHM9e1wiZGF0YS1wcmVmZXJlbmNlc1wiOiEwfSxkWzIzXT1zKTpzPWRbMjNdLGRbMjRdIT09bD8oYz17bGFiZWw6XCJQcmVmZXJlbmNlc1wiLHZhbHVlOmksb25DbGljazpsLGZvb3RlcjohMCxhdHRyaWJ1dGVzOnN9LGRbMjRdPWwsZFsyNV09Yyk6Yz1kWzI1XSxkWzI2XSE9PWV8fGRbMjddIT09Y3x8ZFsyOF0hPT1yfHxkWzI5XSE9PW98fGRbMzBdIT09YT8odT0oMCxiLmpzeCkob1Ase2l0ZW1zOltlLHIsbyxhLGNdfSksZFsyNl09ZSxkWzI3XT1jLGRbMjhdPXIsZFsyOV09byxkWzMwXT1hLGRbMzFdPXUpOnU9ZFszMV0sdX0sdSQ9ZnVuY3Rpb24oKXt2YXIgZSx0PSgwLEEuYykoNCksbj1kYSgpLHI9bi5zdGF0ZSxvPW4uZGlzcGF0Y2gsYT1uLnNoYWRvd1Jvb3Q7cmV0dXJuIHRbMF0hPT1vfHx0WzFdIT09YXx8dFsyXSE9PXIuZGlzYWJsZURldkluZGljYXRvcj8oZT1mdW5jdGlvbigpe28oe3R5cGU6WixkaXNhYmxlZDohci5kaXNhYmxlRGV2SW5kaWNhdG9yfSk7dmFyIGU9YS5nZXRFbGVtZW50QnlJZChcInBhbmVsLXJvdXRlXCIpLHQ9YS5nZXRFbGVtZW50QnlJZChcImRhdGEtZGV2dG9vbHMtaW5kaWNhdG9yXCIpO2lmKGUmJmUuZmlyc3RFbGVtZW50Q2hpbGQpe3ZhciBuPWUuZmlyc3RFbGVtZW50Q2hpbGQsaT1cIm5vbmVcIj09PW4uc3R5bGUuZGlzcGxheTtuLnN0eWxlLmRpc3BsYXk9aT9cIlwiOlwibm9uZVwifWlmKHQpe3ZhciBsPVwibm9uZVwiPT09dC5zdHlsZS5kaXNwbGF5O3Quc3R5bGUuZGlzcGxheT1sP1wiXCI6XCJub25lXCJ9fSx0WzBdPW8sdFsxXT1hLHRbMl09ci5kaXNhYmxlRGV2SW5kaWNhdG9yLHRbM109ZSk6ZT10WzNdLGV9LHVXPWZ1bmN0aW9uKCl7dmFyIGUsdCxuLHIsbyxhLGksbCxzLGMsdSxkLGYscCxoLG0sZyx5LHYsdyxDLF8sayxFLGosUyxPPSgwLEEuYykoNDQpLEI9ZGEoKS5zdGF0ZSxQPXIyKCkudHJpZ2dlclJlZixJPXUkKCksej1cImFwcFwiPT09Qi5yb3V0ZXJUeXBlO09bMF0hPT1CLmhpZGVTaG9ydGN1dHx8T1sxXSE9PUk/KHM9Qi5oaWRlU2hvcnRjdXQ/KGU9e30sdD1CLmhpZGVTaG9ydGN1dCxuPUksdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZSk6e30sT1swXT1CLmhpZGVTaG9ydGN1dCxPWzFdPUksT1syXT1zKTpzPU9bMl0scj1zLG89UCwobD0oMCxBLmMpKDQpKVswXSE9PW98fGxbMV0hPT1yPyhhPWZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oZSl7aWYoISgobj10OSgodD1vKS5jdXJyZW50KSkmJihcInRydWVcIj09PW4uY29udGVudEVkaXRhYmxlfHxcIklOUFVUXCI9PT1uLnRhZ05hbWV8fFwiVEVYVEFSRUFcIj09PW4udGFnTmFtZXx8XCJTRUxFQ1RcIj09PW4udGFnTmFtZXx8XCJ0cnVlXCI9PT1uLmRhdGFzZXRbXCJzaG9ydGN1dC1yZWNvcmRlclwiXSkmJiFuLmhhc0F0dHJpYnV0ZShcInJlYWRvbmx5XCIpKSl7dmFyIHQsbixhPVtdO2UubWV0YUtleSYmYS5wdXNoKFwiTWV0YVwiKSxlLmN0cmxLZXkmJmEucHVzaChcIkNvbnRyb2xcIiksZS5hbHRLZXkmJmEucHVzaChcIkFsdFwiKSxlLnNoaWZ0S2V5JiZhLnB1c2goXCJTaGlmdFwiKSxcIk1ldGFcIiE9PWUua2V5JiZcIkNvbnRyb2xcIiE9PWUua2V5JiZcIkFsdFwiIT09ZS5rZXkmJlwiU2hpZnRcIiE9PWUua2V5JiZhLnB1c2goZS5jb2RlKTt2YXIgaT1hLmpvaW4oXCIrXCIpO3JbaV0mJihlLnByZXZlbnREZWZhdWx0KCkscltpXSgpKX19O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKSxmdW5jdGlvbigpe3JldHVybiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKX19LGk9W28scl0sbFswXT1vLGxbMV09cixsWzJdPWEsbFszXT1pKTooYT1sWzJdLGk9bFszXSksKDAseC51c2VFZmZlY3QpKGEsaSksT1szXT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhjPSgwLGIuanN4KSh1USx7bmFtZTpcInBhbmVsLXNlbGVjdG9yXCIsY2hpbGRyZW46KDAsYi5qc3gpKHVWLHt9KX0pLE9bM109Yyk6Yz1PWzNdO3ZhciBUPTUwMC9CLnNjYWxlO09bNF0hPT1UPyh1PXtraW5kOlwiZml4ZWRcIixoZWlnaHQ6VCx3aWR0aDo1MTJ9LE9bNF09VCxPWzVdPXUpOnU9T1s1XSxPWzZdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KGQ9KDAsYi5qc3gpKHVaLHt0aXRsZTpcIlByZWZlcmVuY2VzXCJ9KSxmPSgwLGIuanN4KSh1Syx7fSksT1s2XT1kLE9bN109Zik6KGQ9T1s2XSxmPU9bN10pLE9bOF0hPT11PyhwPSgwLGIuanN4KSh1USx7bmFtZTpcInByZWZlcmVuY2VzXCIsY2hpbGRyZW46KDAsYi5qc3gpKG8wLHtzaGFyZVBhbmVsU2l6ZUdsb2JhbGx5OiExLHNpemVDb25maWc6dSxjbG9zZU9uQ2xpY2tPdXRzaWRlOiEwLGhlYWRlcjpkLGNoaWxkcmVuOmZ9KX0pLE9bOF09dSxPWzldPXApOnA9T1s5XTt2YXIgRD1CLnN0YXRpY0luZGljYXRvcj9cInN0YXRpY1wiOlwiZHluYW1pY1wiLEw9Qi5zdGF0aWNJbmRpY2F0b3I/MzAwL0Iuc2NhbGU6MzI1L0Iuc2NhbGUsTj00MDAvQi5zY2FsZTtPWzEwXSE9PUx8fE9bMTFdIT09Tj8oaD17a2luZDpcImZpeGVkXCIsaGVpZ2h0Okwsd2lkdGg6Tn0sT1sxMF09TCxPWzExXT1OLE9bMTJdPWgpOmg9T1sxMl07dmFyIFI9XCJcIi5jb25jYXQoQi5zdGF0aWNJbmRpY2F0b3I/XCJTdGF0aWNcIjpcIkR5bmFtaWNcIixcIiBSb3V0ZVwiKTtPWzEzXSE9PVI/KG09KDAsYi5qc3gpKHVaLHt0aXRsZTpSfSksT1sxM109UixPWzE0XT1tKTptPU9bMTRdLE9bMTVdIT09Qi5yb3V0ZXJUeXBlfHxPWzE2XSE9PUIuc3RhdGljSW5kaWNhdG9yPyhnPSgwLGIuanN4KShuMSx7cm91dGVyVHlwZTpCLnJvdXRlclR5cGUsaXNTdGF0aWNSb3V0ZTpCLnN0YXRpY0luZGljYXRvcn0pLE9bMTVdPUIucm91dGVyVHlwZSxPWzE2XT1CLnN0YXRpY0luZGljYXRvcixPWzE3XT1nKTpnPU9bMTddO3ZhciBNPW4wW0Iucm91dGVyVHlwZV1bQi5zdGF0aWNJbmRpY2F0b3I/XCJzdGF0aWNcIjpcImR5bmFtaWNcIl07T1sxOF0hPT1NPyh5PSgwLGIuanN4KSh1WSx7aHJlZjpNfSksT1sxOF09TSxPWzE5XT15KTp5PU9bMTldLE9bMjBdIT09Z3x8T1syMV0hPT15Pyh2PSgwLGIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicGFuZWwtY29udGVudFwiLGNoaWxkcmVuOltnLHldfSksT1syMF09ZyxPWzIxXT15LE9bMjJdPXYpOnY9T1syMl0sT1syM10hPT1ofHxPWzI0XSE9PW18fE9bMjVdIT09dnx8T1syNl0hPT1EPyh3PSgwLGIuanN4KSh1USx7bmFtZTpcInJvdXRlLXR5cGVcIixjaGlsZHJlbjooMCxiLmpzeCkobzAse3NoYXJlUGFuZWxTaXplR2xvYmFsbHk6ITEsc2l6ZUNvbmZpZzpoLGNsb3NlT25DbGlja091dHNpZGU6ITAsaGVhZGVyOm0sY2hpbGRyZW46dn0sRCl9KSxPWzIzXT1oLE9bMjRdPW0sT1syNV09dixPWzI2XT1ELE9bMjddPXcpOnc9T1syN10sT1syOF0hPT16fHxPWzI5XSE9PUIucGFnZXx8T1szMF0hPT1CLnNjYWxlPyhDPXByb2Nlc3MuZW52Ll9fTkVYVF9ERVZUT09MX1NFR01FTlRfRVhQTE9SRVImJnomJigwLGIuanN4KSh1USx7bmFtZTpcInNlZ21lbnQtZXhwbG9yZXJcIixjaGlsZHJlbjooMCxiLmpzeCkobzAse3NoYXJlUGFuZWxTaXplR2xvYmFsbHk6ITEsc2hhcmVQYW5lbFBvc2l0aW9uR2xvYmFsbHk6ITEsZHJhZ2dhYmxlOiEwLHNpemVDb25maWc6e2tpbmQ6XCJyZXNpemFibGVcIixtYXhIZWlnaHQ6XCI5MHZoXCIsbWF4V2lkdGg6XCI5MHZ3XCIsbWluSGVpZ2h0OjIwMC9CLnNjYWxlLG1pbldpZHRoOjI1MC9CLnNjYWxlLGluaXRpYWxTaXplOntoZWlnaHQ6Mzc1L0Iuc2NhbGUsd2lkdGg6NDAwL0Iuc2NhbGV9fSxoZWFkZXI6KDAsYi5qc3gpKHVaLHt0aXRsZTpcIlJvdXRlIEluZm9cIn0pLGNoaWxkcmVuOigwLGIuanN4KSh1eix7cGFnZTpCLnBhZ2V9KX0pfSksT1syOF09eixPWzI5XT1CLnBhZ2UsT1szMF09Qi5zY2FsZSxPWzMxXT1DKTpDPU9bMzFdO3ZhciBaPTQ3MC9CLnNjYWxlLFU9NDAwL0Iuc2NhbGU7cmV0dXJuIE9bMzJdIT09Wnx8T1szM10hPT1VPyhfPXtraW5kOlwiZml4ZWRcIixoZWlnaHQ6Wix3aWR0aDpVfSxPWzMyXT1aLE9bMzNdPVUsT1szNF09Xyk6Xz1PWzM0XSxPWzM1XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhrPSgwLGIuanN4KSh1Wix7dGl0bGU6XCJUcnkgVHVyYm9wYWNrXCJ9KSxPWzM1XT1rKTprPU9bMzVdLE9bMzZdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KEU9KDAsYi5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwYW5lbC1jb250ZW50XCIsY2hpbGRyZW46WygwLGIuanN4KShuWSx7fSksKDAsYi5qc3gpKHVZLHtocmVmOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvdHVyYm9wYWNrXCJ9KV19KSxPWzM2XT1FKTpFPU9bMzZdLE9bMzddIT09Xz8oaj0oMCxiLmpzeCkodVEse25hbWU6XCJ0dXJiby1pbmZvXCIsY2hpbGRyZW46KDAsYi5qc3gpKG8wLHtzaGFyZVBhbmVsU2l6ZUdsb2JhbGx5OiExLHNpemVDb25maWc6XyxjbG9zZU9uQ2xpY2tPdXRzaWRlOiEwLGhlYWRlcjprLGNoaWxkcmVuOkV9KX0pLE9bMzddPV8sT1szOF09aik6aj1PWzM4XSxPWzM5XSE9PXd8fE9bNDBdIT09Q3x8T1s0MV0hPT1qfHxPWzQyXSE9PXA/KFM9KDAsYi5qc3hzKShiLkZyYWdtZW50LHtjaGlsZHJlbjpbYyxwLHcsQyxqXX0pLE9bMzldPXcsT1s0MF09QyxPWzQxXT1qLE9bNDJdPXAsT1s0M109Uyk6Uz1PWzQzXSxTfSx1WT1mdW5jdGlvbihlKXt2YXIgdCxuPSgwLEEuYykoMikscj1lLmhyZWY7cmV0dXJuIG5bMF0hPT1yPyh0PSgwLGIuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1idXR0b24tY29udGFpbmVyXCIsY2hpbGRyZW46KDAsYi5qc3gpKFwiYVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1sZWFybi1tb3JlLWJ1dHRvblwiLGhyZWY6cix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub3JlZmVycmVyIG5vb3BlbmVyXCIsY2hpbGRyZW46XCJMZWFybiBNb3JlXCJ9KX0pLG5bMF09cixuWzFdPXQpOnQ9blsxXSx0fSx1Sz1mdW5jdGlvbigpe3ZhciBlLHQsbixyLG89KDAsQS5jKSgxNyksYT1kYSgpLGk9YS5kaXNwYXRjaCxsPWEuc3RhdGUscz1yMigpLGM9cy5zZXRQYW5lbCx1PXMuc2V0U2VsZWN0ZWRJbmRleCxkPW93KCk7cmV0dXJuIG9bMF0hPT1pPyhlPWZ1bmN0aW9uKGUpe2koe3R5cGU6WCxzY2FsZTplfSl9LG9bMF09aSxvWzFdPWUpOmU9b1sxXSxvWzJdIT09aXx8b1szXSE9PWQ/KHQ9ZnVuY3Rpb24oZSl7aSh7dHlwZTpZLGRldlRvb2xzUG9zaXRpb246ZX0pLGQoZSl9LG9bMl09aSxvWzNdPWQsb1s0XT10KTp0PW9bNF0sb1s1XSE9PWl8fG9bNl0hPT1jfHxvWzddIT09dT8obj1mdW5jdGlvbigpe2koe3R5cGU6WixkaXNhYmxlZDohMH0pLHUoLTEpLGMobnVsbCksZmV0Y2goXCIvX19uZXh0anNfZGlzYWJsZV9kZXZfaW5kaWNhdG9yXCIse21ldGhvZDpcIlBPU1RcIn0pfSxvWzVdPWksb1s2XT1jLG9bN109dSxvWzhdPW4pOm49b1s4XSxvWzldIT09bC5kZXZUb29sc1Bvc2l0aW9ufHxvWzEwXSE9PWwuaGlkZVNob3J0Y3V0fHxvWzExXSE9PWwuc2NhbGV8fG9bMTJdIT09bC50aGVtZXx8b1sxM10hPT1lfHxvWzE0XSE9PXR8fG9bMTVdIT09bj8ocj0oMCxiLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwidXNlci1wcmVmZXJlbmNlcy13cmFwcGVyXCIsY2hpbGRyZW46KDAsYi5qc3gpKHJDLHt0aGVtZTpsLnRoZW1lLHBvc2l0aW9uOmwuZGV2VG9vbHNQb3NpdGlvbixzY2FsZTpsLnNjYWxlLHNldFNjYWxlOmUsc2V0UG9zaXRpb246dCxoaWRlU2hvcnRjdXQ6bC5oaWRlU2hvcnRjdXQsc2V0SGlkZVNob3J0Y3V0OnVKLGhpZGU6bn0pfSksb1s5XT1sLmRldlRvb2xzUG9zaXRpb24sb1sxMF09bC5oaWRlU2hvcnRjdXQsb1sxMV09bC5zY2FsZSxvWzEyXT1sLnRoZW1lLG9bMTNdPWUsb1sxNF09dCxvWzE1XT1uLG9bMTZdPXIpOnI9b1sxNl0scn0sdVg9ZnVuY3Rpb24oKXtyZXR1cm4oMCx4LnVzZUNvbnRleHQpKHVHKX0sdUc9KDAseC5jcmVhdGVDb250ZXh0KShudWxsKTtmdW5jdGlvbiB1UShlKXt2YXIgdCxuLHIsbyxhLGk9KDAsQS5jKSgxMiksbD1lLmNoaWxkcmVuLHM9ZS5uYW1lLGM9cjIoKS5wYW5lbDtpWzBdPT09U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9fY2FjaGVfc2VudGluZWxcIik/KHQ9e2VudGVyRGVsYXk6MCxleGl0RGVsYXk6MjAwfSxpWzBdPXQpOnQ9aVswXTt2YXIgdT1yRChzPT09Yyx0KSxkPXUubW91bnRlZCxmPXUucmVuZGVyZWQ7aWYoIWQpcmV0dXJuIG51bGw7aVsxXSE9PWR8fGlbMl0hPT1zPyhuPXtuYW1lOnMsbW91bnRlZDpkfSxpWzFdPWQsaVsyXT1zLGlbM109bik6bj1pWzNdO3ZhciBwPSshIWY7aVs0XSE9PXA/KHI9e1wiLS1wYW5lbC1vcGFjaXR5XCI6cCxcIi0tcGFuZWwtdHJhbnNpdGlvblwiOlwib3BhY2l0eSBcIi5jb25jYXQoMjAwLFwibXMgXCIpLmNvbmNhdCh0Nyl9LGlbNF09cCxpWzVdPXIpOnI9aVs1XTt2YXIgaD1yO3JldHVybiBpWzZdIT09bHx8aVs3XSE9PWg/KG89KDAsYi5qc3gpKFwiZGl2XCIse2lkOlwicGFuZWwtcm91dGVcIixjbGFzc05hbWU6XCJwYW5lbC1yb3V0ZVwiLHN0eWxlOmgsY2hpbGRyZW46bH0pLGlbNl09bCxpWzddPWgsaVs4XT1vKTpvPWlbOF0saVs5XSE9PW58fGlbMTBdIT09bz8oYT0oMCxiLmpzeCkodUcse3ZhbHVlOm4sY2hpbGRyZW46b30pLGlbOV09bixpWzEwXT1vLGlbMTFdPWEpOmE9aVsxMV0sYX1mdW5jdGlvbiB1SihlKXtyQSh7aGlkZVNob3J0Y3V0OmV9KX1mdW5jdGlvbiB1MChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdTEoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsdCl7dmFyIG4scixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0obj1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIXR8fGEubGVuZ3RoIT09dCk7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsdCl8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHUwKGUsdCk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbShuKTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIHUwKGUsdCl9fShlLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciB1Mj0oMCx4LmNyZWF0ZUNvbnRleHQpKG51bGwpLHU0PWZ1bmN0aW9uKCl7cmV0dXJuKDAseC51c2VDb250ZXh0KSh1Mil9O2Z1bmN0aW9uIHU1KCl7dmFyIGUsdCxuLHIsbz0oMCxBLmMpKDExKSxhPXUxKCgwLHgudXNlU3RhdGUpKG51bGwpLDIpLGk9YVswXSxsPWFbMV0scz11MSgoMCx4LnVzZVN0YXRlKSgtMSksMiksYz1zWzBdLHU9c1sxXSxkPWRhKCksZj1kLnN0YXRlLHA9ZC5kaXNwYXRjaCxoPWQuZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMsbT0oMCx4LnVzZVJlZikobnVsbCk7cmV0dXJuIG9bMF09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZT0oMCxiLmpzeCkociQse30pLHQ9KDAsYi5qc3gpKHJJLHt9KSxvWzBdPWUsb1sxXT10KTooZT1vWzBdLHQ9b1sxXSksb1syXSE9PXB8fG9bM10hPT1ofHxvWzRdIT09aXx8b1s1XSE9PWN8fG9bNl0hPT1mPyhuPWZ1bmN0aW9uKGUpe3ZhciB0PWUucnVudGltZUVycm9ycyxuPWUudG90YWxFcnJvckNvdW50O3JldHVybigwLGIuanN4KShiLkZyYWdtZW50LHtjaGlsZHJlbjpmLnNob3dJbmRpY2F0b3I/KDAsYi5qc3gpKGIuRnJhZ21lbnQse2NoaWxkcmVuOigwLGIuanN4KSh1Mix7dmFsdWU6e3J1bnRpbWVFcnJvcnM6dCx0b3RhbEVycm9yQ291bnQ6bn0sY2hpbGRyZW46KDAsYi5qc3hzKShyMSx7dmFsdWU6e3BhbmVsOmksc2V0UGFuZWw6bCx0cmlnZ2VyUmVmOm0sc2VsZWN0ZWRJbmRleDpjLHNldFNlbGVjdGVkSW5kZXg6dX0sY2hpbGRyZW46WygwLGIuanN4KShyUix7c3RhdGU6ZixkaXNwYXRjaDpwLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOmgscnVudGltZUVycm9yczp0LGVycm9yQ291bnQ6bn0pLCgwLGIuanN4KSh1Vyx7fSksKDAsYi5qc3gpKG94LHt9KV19KX0pfSk6bnVsbH0pfSxvWzJdPXAsb1szXT1oLG9bNF09aSxvWzVdPWMsb1s2XT1mLG9bN109bik6bj1vWzddLG9bOF0hPT1mfHxvWzldIT09bj8ocj0oMCxiLmpzeHMpKGVwLHtjaGlsZHJlbjpbZSx0LCgwLGIuanN4KShycSx7c3RhdGU6Zixpc0FwcERpcjohMCxjaGlsZHJlbjpufSldfSksb1s4XT1mLG9bOV09bixvWzEwXT1yKTpyPW9bMTBdLHJ9ZnVuY3Rpb24gdTMoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIHU2KGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiB1MyhlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWVbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZVtcIkBAaXRlcmF0b3JcIl0pcmV0dXJuIEFycmF5LmZyb20oZSl9KGUpfHx1OShlKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gdTkoZSx0KXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdTMoZSx0KTt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PW58fFwiU2V0XCI9PT1uKXJldHVybiBBcnJheS5mcm9tKG4pO2lmKFwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gdTMoZSx0KX19dmFyIHU4PW51bGwsdTc9W107ZnVuY3Rpb24gZGUoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsbj1BcnJheSh0KSxyPTA7cjx0O3IrKyluW3JdPWFyZ3VtZW50c1tyXTt1OD9lLmFwcGx5KHZvaWQgMCxbdThdLmNvbmNhdCh1NihuKSkpOnU3LnB1c2goZnVuY3Rpb24odCl7ZS5hcHBseSh2b2lkIDAsW3RdLmNvbmNhdCh1NihuKSkpfSl9fXZhciBkdD17b25CdWlsZE9rOmRlKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6UH0pfSksb25CdWlsZEVycm9yOmRlKGZ1bmN0aW9uKGUsdCl7ZSh7dHlwZTpJLG1lc3NhZ2U6dH0pfSksb25CZWZvcmVSZWZyZXNoOmRlKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6en0pfSksb25SZWZyZXNoOmRlKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6VH0pfSksb25WZXJzaW9uSW5mbzpkZShmdW5jdGlvbihlLHQpe2Uoe3R5cGU6RCx2ZXJzaW9uSW5mbzp0fSl9KSxvblN0YXRpY0luZGljYXRvcjpkZShmdW5jdGlvbihlLHQpe2Uoe3R5cGU6QixzdGF0aWNJbmRpY2F0b3I6dH0pfSksb25EZWJ1Z0luZm86ZGUoZnVuY3Rpb24oZSx0KXtlKHt0eXBlOlIsZGVidWdJbmZvOnR9KX0pLG9uRGV2SW5kaWNhdG9yOmRlKGZ1bmN0aW9uKGUsdCl7ZSh7dHlwZTpNLGRldkluZGljYXRvcjp0fSl9KSxvbkRldlRvb2xzQ29uZmlnOmRlKGZ1bmN0aW9uKGUsdCl7ZSh7dHlwZTpHLGRldlRvb2xzQ29uZmlnOnR9KX0pLG9uVW5oYW5kbGVkRXJyb3I6ZGUoZnVuY3Rpb24oZSx0KXtlKHt0eXBlOkwscmVhc29uOnR9KX0pLG9uVW5oYW5kbGVkUmVqZWN0aW9uOmRlKGZ1bmN0aW9uKGUsdCl7ZSh7dHlwZTpOLHJlYXNvbjp0fSl9KSxvcGVuRXJyb3JPdmVybGF5OmRlKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6VX0pfSksY2xvc2VFcnJvck92ZXJsYXk6ZGUoZnVuY3Rpb24oZSl7ZSh7dHlwZTpGfSl9KSx0b2dnbGVFcnJvck92ZXJsYXk6ZGUoZnVuY3Rpb24oZSl7ZSh7dHlwZTpxfSl9KSxidWlsZGluZ0luZGljYXRvckhpZGU6ZGUoZnVuY3Rpb24oZSl7ZSh7dHlwZTpWfSl9KSxidWlsZGluZ0luZGljYXRvclNob3c6ZGUoZnVuY3Rpb24oZSl7ZSh7dHlwZTpIfSl9KSxyZW5kZXJpbmdJbmRpY2F0b3JIaWRlOmRlKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6V30pfSkscmVuZGVyaW5nSW5kaWNhdG9yU2hvdzpkZShmdW5jdGlvbihlKXtlKHt0eXBlOiR9KX0pLHNlZ21lbnRFeHBsb3Jlck5vZGVBZGQ6ZGUoZnVuY3Rpb24oZSx0KXthZSh0KX0pLHNlZ21lbnRFeHBsb3Jlck5vZGVSZW1vdmU6ZGUoZnVuY3Rpb24oZSx0KXthdCh0KX0pLHNlZ21lbnRFeHBsb3JlclVwZGF0ZVJvdXRlU3RhdGU6ZGUoZnVuY3Rpb24oZSx0KXtlKHt0eXBlOmVuLHBhZ2U6dH0pfSl9O2Z1bmN0aW9uIGRuKGUpe3ZhciB0LG4scixvLGEsaSxsLHMsYyx1LGQsZixwLGgsbSxnLHksdix3LE89KDAsQS5jKSgxOCksUT1lLmdldE93bmVyU3RhY2ssSj1lLmdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzLGVlPWUuaXNSZWNvdmVyYWJsZUVycm9yLGV0PWUucm91dGVyVHlwZSxlcj1lLnNoYWRvd1Jvb3QsZWw9KHQ9ZXQsbj1RLHI9ZWUsKHM9KDAsQS5jKSg3KSlbMF0hPT1ufHxzWzFdIT09cj8oYT1mdW5jdGlvbihlLHQsbyl7dmFyIGEsaT1uKG8pLGw9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnByb2Nlc3MuZW52Ll9fTkVYVF9ESVNUX0RJUjtyZXR1cm4gZT8oZT1lLnNwbGl0KFwiXFxuXCIpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5pbmNsdWRlcyhcIihldmFsIFwiKSYmKGU9ZS5yZXBsYWNlKC9ldmFsIGNvZGUvZyxcImV2YWxcIikucmVwbGFjZSgvXFwoZXZhbCBhdCBbXigpXSogXFwoLyxcIihmaWxlOi8vXCIpLnJlcGxhY2UoL1xcKSwuKiQvZyxcIilcIikpLGV9KS5qb2luKFwiXFxuXCIpLCgwLEMucGFyc2UpKGUpLm1hcChmdW5jdGlvbihlKXt0cnl7dmFyIG49bmV3IFVSTChlLmZpbGUpLHI9Xy5leGVjKG4ucGF0aG5hbWUpO2lmKHIpe3ZhciBvLGE9bnVsbD09dHx8bnVsbD09KG89dC5yZXBsYWNlKC9cXFxcL2csXCIvXCIpKT92b2lkIDA6by5yZXBsYWNlKC9cXC8kLyxcIlwiKTthJiYoZS5maWxlPVwiZmlsZTovL1wiK2EuY29uY2F0KHIucG9wKCkpK24uc2VhcmNoKX19Y2F0Y2goZSl7fXJldHVybntmaWxlOmUuZmlsZSxsaW5lMTplLmxpbmVOdW1iZXIsY29sdW1uMTplLmNvbHVtbixtZXRob2ROYW1lOmUubWV0aG9kTmFtZSxhcmd1bWVudHM6ZS5hcmd1bWVudHN9fSkpOltdfSgoby5zdGFja3x8XCJcIikrKGl8fFwiXCIpKSxzPXtpZDp0LGVycm9yOm8sZnJhbWVzOmwsdHlwZTpyKG8pP1wicmVjb3ZlcmFibGVcIjooYT1vKSYmXCJORVhUX0NPTlNPTEVfRVJST1JcIj09PWFba10/XCJjb25zb2xlXCI6XCJydW50aW1lXCJ9LGM9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXJyb3Iuc3RhY2shPT1zLmVycm9yLnN0YWNrJiZlbyhlLmVycm9yLnN0YWNrKSE9PWVvKHMuZXJyb3Iuc3RhY2spfHxuKGUuZXJyb3IpIT09bihzLmVycm9yKX0pO3JldHVybiBjLmxlbmd0aD09PWUubGVuZ3RoPyhjLnB1c2gocyksYyk6ZX0sc1swXT1uLHNbMV09cixzWzJdPWEpOmE9c1syXSxjPWEsKHNbM10hPT1jPyhpPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHQudHlwZSl7Y2FzZSBSOnJldHVybiBTKGooe30sZSkse2RlYnVnSW5mbzp0LmRlYnVnSW5mb30pO2Nhc2UgQjpyZXR1cm4gUyhqKHt9LGUpLHtzdGF0aWNJbmRpY2F0b3I6dC5zdGF0aWNJbmRpY2F0b3J9KTtjYXNlIFA6cmV0dXJuIFMoaih7fSxlKSx7YnVpbGRFcnJvcjpudWxsfSk7Y2FzZSBJOnJldHVybiBTKGooe30sZSkse2J1aWxkRXJyb3I6dC5tZXNzYWdlfSk7Y2FzZSB6OnJldHVybiBTKGooe30sZSkse3JlZnJlc2hTdGF0ZTp7dHlwZTpcInBlbmRpbmdcIixlcnJvcnM6W119fSk7Y2FzZSBUOnJldHVybiBTKGooe30sZSkse2J1aWxkRXJyb3I6bnVsbCxlcnJvcnM6XCJwZW5kaW5nXCI9PT1lLnJlZnJlc2hTdGF0ZS50eXBlP2UucmVmcmVzaFN0YXRlLmVycm9yczpbXSxyZWZyZXNoU3RhdGU6e3R5cGU6XCJpZGxlXCJ9fSk7Y2FzZSBMOmNhc2UgTjpzd2l0Y2goZS5yZWZyZXNoU3RhdGUudHlwZSl7Y2FzZVwiaWRsZVwiOnJldHVybiBTKGooe30sZSkse25leHRJZDplLm5leHRJZCsxLGVycm9yczpjKGUuZXJyb3JzLGUubmV4dElkLHQucmVhc29uKX0pO2Nhc2VcInBlbmRpbmdcIjpyZXR1cm4gUyhqKHt9LGUpLHtuZXh0SWQ6ZS5uZXh0SWQrMSxyZWZyZXNoU3RhdGU6UyhqKHt9LGUucmVmcmVzaFN0YXRlKSx7ZXJyb3JzOmMoZS5lcnJvcnMsZS5uZXh0SWQsdC5yZWFzb24pfSl9KTtkZWZhdWx0OnJldHVybiBlfWNhc2UgRDpyZXR1cm4gUyhqKHt9LGUpLHt2ZXJzaW9uSW5mbzp0LnZlcnNpb25JbmZvfSk7Y2FzZSBaOnJldHVybiBTKGooe30sZSkse2Rpc2FibGVEZXZJbmRpY2F0b3I6dC5kaXNhYmxlZH0pO2Nhc2UgTTpyZXR1cm4gUyhqKHt9LGUpLHtzaG93SW5kaWNhdG9yOiEwLGRpc2FibGVEZXZJbmRpY2F0b3I6ZWF8fCEhdC5kZXZJbmRpY2F0b3IuZGlzYWJsZWRVbnRpbH0pO2Nhc2UgVTpyZXR1cm4gUyhqKHt9LGUpLHtpc0Vycm9yT3ZlcmxheU9wZW46ITB9KTtjYXNlIEY6cmV0dXJuIFMoaih7fSxlKSx7aXNFcnJvck92ZXJsYXlPcGVuOiExfSk7Y2FzZSBxOnJldHVybiBTKGooe30sZSkse2lzRXJyb3JPdmVybGF5T3BlbjohZS5pc0Vycm9yT3ZlcmxheU9wZW59KTtjYXNlIEg6cmV0dXJuIFMoaih7fSxlKSx7YnVpbGRpbmdJbmRpY2F0b3I6ITB9KTtjYXNlIFY6cmV0dXJuIFMoaih7fSxlKSx7YnVpbGRpbmdJbmRpY2F0b3I6ITF9KTtjYXNlICQ6cmV0dXJuIFMoaih7fSxlKSx7cmVuZGVyaW5nSW5kaWNhdG9yOiEwfSk7Y2FzZSBXOnJldHVybiBTKGooe30sZSkse3JlbmRlcmluZ0luZGljYXRvcjohMX0pO2Nhc2UgWTpyZXR1cm4gUyhqKHt9LGUpLHtkZXZUb29sc1Bvc2l0aW9uOnQuZGV2VG9vbHNQb3NpdGlvbn0pO2Nhc2UgSzpyZXR1cm4gUyhqKHt9LGUpLHtkZXZUb29sc1BhbmVsUG9zaXRpb246UyhqKHt9LGUuZGV2VG9vbHNQYW5lbFBvc2l0aW9uKSxFKHt9LHQua2V5LHQuZGV2VG9vbHNQYW5lbFBvc2l0aW9uKSl9KTtjYXNlIFg6cmV0dXJuIFMoaih7fSxlKSx7c2NhbGU6dC5zY2FsZX0pO2Nhc2UgZW46cmV0dXJuIFMoaih7fSxlKSx7cGFnZTp0LnBhZ2V9KTtjYXNlIEc6dmFyIG49dC5kZXZUb29sc0NvbmZpZyxyPW4udGhlbWUsbz1uLmRpc2FibGVEZXZJbmRpY2F0b3IsYT1uLmRldlRvb2xzUG9zaXRpb24saT1uLmRldlRvb2xzUGFuZWxQb3NpdGlvbixsPW4uZGV2VG9vbHNQYW5lbFNpemUscz1uLnNjYWxlLHU9bi5oaWRlU2hvcnRjdXQ7cmV0dXJuIFMoaih7fSxlKSx7dGhlbWU6bnVsbCE9cj9yOmUudGhlbWUsZGlzYWJsZURldkluZGljYXRvcjpudWxsIT1vP286ZS5kaXNhYmxlRGV2SW5kaWNhdG9yLGRldlRvb2xzUG9zaXRpb246bnVsbCE9YT9hOmUuZGV2VG9vbHNQb3NpdGlvbixkZXZUb29sc1BhbmVsUG9zaXRpb246bnVsbCE9aT9pOmUuZGV2VG9vbHNQYW5lbFBvc2l0aW9uLHNjYWxlOm51bGwhPXM/czplLnNjYWxlLGRldlRvb2xzUGFuZWxTaXplOm51bGwhPWw/bDplLmRldlRvb2xzUGFuZWxTaXplLGhpZGVTaG9ydGN1dDp2b2lkIDAhPT11P3U6ZS5oaWRlU2hvcnRjdXR9KTtkZWZhdWx0OnJldHVybiBlfX0sc1szXT1jLHNbNF09aSk6aT1zWzRdLHNbNV0hPT10KT8obz10LGw9UyhqKHt9LGVpKSx7aXNFcnJvck92ZXJsYXlPcGVuOlwicGFnZXNcIj09PW8scm91dGVyVHlwZTpvfSksc1s1XT10LHNbNl09bCk6bD1zWzZdLHU9KDAseC51c2VSZWR1Y2VyKShpLGwpLGQ9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfSh1KXx8ZnVuY3Rpb24oZSx0KXt2YXIgbixyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPShuPW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaChuLnZhbHVlKSxhLmxlbmd0aCE9PXQpO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fSh1LDIpfHx1OSh1LGQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxlcz1lbFswXSxlYz1lbFsxXTtyZXR1cm4gT1swXSE9PWVyLmhvc3R8fE9bMV0hPT1lcy50aGVtZT8oZj1mdW5jdGlvbigpe3ZhciBlPWVyLmhvc3Q7XCJkYXJrXCI9PT1lcy50aGVtZT8oZS5jbGFzc0xpc3QuYWRkKFwiZGFya1wiKSxlLmNsYXNzTGlzdC5yZW1vdmUoXCJsaWdodFwiKSk6XCJsaWdodFwiPT09ZXMudGhlbWU/KGUuY2xhc3NMaXN0LmFkZChcImxpZ2h0XCIpLGUuY2xhc3NMaXN0LnJlbW92ZShcImRhcmtcIikpOihlLmNsYXNzTGlzdC5yZW1vdmUoXCJkYXJrXCIpLGUuY2xhc3NMaXN0LnJlbW92ZShcImxpZ2h0XCIpKX0sT1swXT1lci5ob3N0LE9bMV09ZXMudGhlbWUsT1syXT1mKTpmPU9bMl0sT1szXSE9PWVyfHxPWzRdIT09ZXMudGhlbWU/KHA9W2VyLGVzLnRoZW1lXSxPWzNdPWVyLE9bNF09ZXMudGhlbWUsT1s1XT1wKTpwPU9bNV0sKDAseC51c2VMYXlvdXRFZmZlY3QpKGYscCksT1s2XSE9PWVjPyhoPWZ1bmN0aW9uKCl7dTg9ZWM7dmFyIGU9c2V0VGltZW91dChmdW5jdGlvbigpeyFmdW5jdGlvbihlKXt0cnl7dmFyIHQ9ITAsbj0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBvLGE9dTdbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0obz1hLm5leHQoKSkuZG9uZSk7dD0hMCkoMCxvLnZhbHVlKShlKX1jYXRjaChlKXtuPSEwLHI9ZX1maW5hbGx5e3RyeXt0fHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKG4pdGhyb3cgcn19fWZpbmFsbHl7dTcubGVuZ3RoPTB9fShlYyl9KTtyZXR1cm4gZnVuY3Rpb24oKXt1OD1udWxsLGNsZWFyVGltZW91dChlKX19LE9bNl09ZWMsT1s3XT1oKTpoPU9bN10sT1s4XT09PVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpPyhtPVtdLE9bOF09bSk6bT1PWzhdLCgwLHgudXNlSW5zZXJ0aW9uRWZmZWN0KShoLG0pLE9bOV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8oZz0oMCxiLmpzeCkoZXUse30pLE9bOV09Zyk6Zz1PWzldLE9bMTBdIT09ZWN8fE9bMTFdIT09Snx8T1sxMl0hPT1lcnx8T1sxM10hPT1lcz8oeT17ZGlzcGF0Y2g6ZWMsZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6SixzaGFkb3dSb290OmVyLHN0YXRlOmVzfSxPWzEwXT1lYyxPWzExXT1KLE9bMTJdPWVyLE9bMTNdPWVzLE9bMTRdPXkpOnk9T1sxNF0sT1sxNV09PT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKT8odj0oMCxiLmpzeCkodTUse30pLE9bMTVdPXYpOnY9T1sxNV0sT1sxNl0hPT15Pyh3PSgwLGIuanN4cykoYi5GcmFnbWVudCx7Y2hpbGRyZW46W2csKDAsYi5qc3gpKGRyLHt2YWx1ZTp5LGNoaWxkcmVuOnZ9KV19KSxPWzE2XT15LE9bMTddPXcpOnc9T1sxN10sd312YXIgZHI9KDAseC5jcmVhdGVDb250ZXh0KShudWxsKSxkYT1mdW5jdGlvbigpe3JldHVybigwLHgudXNlQ29udGV4dCkoZHIpfSxkaT0hMSxkbD0hMTtmdW5jdGlvbiBkcygpe3JldHVybiBudWxsfWZ1bmN0aW9uIGRjKGUsdCl7aWYoZGkpdGhyb3cgRXJyb3IoXCJOZXh0IERldlRvb2xzOiBQYWdlcyBEZXYgT3ZlcmxheSBpcyBhbHJlYWR5IG1vdW50ZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qc1wiKTtpZighZGwpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7bi5zdHlsZS5kaXNwbGF5PVwiYmxvY2tcIixuLnN0eWxlLnBvc2l0aW9uPVwiYWJzb2x1dGVcIixuLnNldEF0dHJpYnV0ZShcImRhdGEtbmV4dGpzLWRldi1vdmVybGF5XCIsXCJ0cnVlXCIpO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJuZXh0anMtcG9ydGFsXCIpO24uYXBwZW5kQ2hpbGQociksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKTt2YXIgbz0oMCxlbC5jcmVhdGVSb290KShyLHtpZGVudGlmaWVyUHJlZml4OlwibmR0LVwifSksYT1yLmF0dGFjaFNoYWRvdyh7bW9kZTpcIm9wZW5cIn0pOygwLHguc3RhcnRUcmFuc2l0aW9uKShmdW5jdGlvbigpe28ucmVuZGVyKCgwLGIuanN4KShkbix7Z2V0T3duZXJTdGFjazplLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOmRzLGlzUmVjb3ZlcmFibGVFcnJvcjp0LHJvdXRlclR5cGU6XCJhcHBcIixzaGFkb3dSb290OmF9KSl9KSxkbD0hMH19ZnVuY3Rpb24gZHUoZSx0LG4pe2lmKGRsKXRocm93IEVycm9yKFwiTmV4dCBEZXZUb29sczogQXBwIERldiBPdmVybGF5IGlzIGFscmVhZHkgbW91bnRlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzXCIpO2lmKCFkaSl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm5leHRqcy1wb3J0YWxcIik7ci5zdHlsZS5wb3NpdGlvbj1cImFic29sdXRlXCIsbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZSl7dmFyIHQ9ITAsbj0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciBhLGk9ZVtTeW1ib2wuaXRlcmF0b3JdKCk7ISh0PShhPWkubmV4dCgpKS5kb25lKTt0PSEwKXt2YXIgbD1hLnZhbHVlO2lmKFwiY2hpbGRMaXN0XCI9PT1sLnR5cGUpe3ZhciBzPSEwLGM9ITEsdT12b2lkIDA7dHJ5e2Zvcih2YXIgZCxmPWwucmVtb3ZlZE5vZGVzW1N5bWJvbC5pdGVyYXRvcl0oKTshKHM9KGQ9Zi5uZXh0KCkpLmRvbmUpO3M9ITApZC52YWx1ZT09PXImJmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocil9Y2F0Y2goZSl7Yz0hMCx1PWV9ZmluYWxseXt0cnl7c3x8bnVsbD09Zi5yZXR1cm58fGYucmV0dXJuKCl9ZmluYWxseXtpZihjKXRocm93IHV9fX19fWNhdGNoKGUpe249ITAsbz1lfWZpbmFsbHl7dHJ5e3R8fG51bGw9PWkucmV0dXJufHxpLnJldHVybigpfWZpbmFsbHl7aWYobil0aHJvdyBvfX19KS5vYnNlcnZlKGRvY3VtZW50LmJvZHkse2NoaWxkTGlzdDohMH0pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocik7dmFyIG89KDAsZWwuY3JlYXRlUm9vdCkocix7aWRlbnRpZmllclByZWZpeDpcIm5kdC1cIn0pLGE9ci5hdHRhY2hTaGFkb3coe21vZGU6XCJvcGVuXCJ9KTsoMCx4LnN0YXJ0VHJhbnNpdGlvbikoZnVuY3Rpb24oKXtvLnJlbmRlcigoMCxiLmpzeCkoZG4se2dldE93bmVyU3RhY2s6ZSxnZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlsczp0LGlzUmVjb3ZlcmFibGVFcnJvcjpuLHJvdXRlclR5cGU6XCJwYWdlc1wiLHNoYWRvd1Jvb3Q6YX0pKX0pLGRpPSEwfX19KSgpLGV4cG9ydHMuRGV2T3ZlcmxheUNvbnRleHQ9X193ZWJwYWNrX2V4cG9ydHNfXy5EZXZPdmVybGF5Q29udGV4dCxleHBvcnRzLmRpc3BhdGNoZXI9X193ZWJwYWNrX2V4cG9ydHNfXy5kaXNwYXRjaGVyLGV4cG9ydHMucmVuZGVyQXBwRGV2T3ZlcmxheT1fX3dlYnBhY2tfZXhwb3J0c19fLnJlbmRlckFwcERldk92ZXJsYXksZXhwb3J0cy5yZW5kZXJQYWdlc0Rldk92ZXJsYXk9X193ZWJwYWNrX2V4cG9ydHNfXy5yZW5kZXJQYWdlc0Rldk92ZXJsYXksZXhwb3J0cy51c2VEZXZPdmVybGF5Q29udGV4dD1fX3dlYnBhY2tfZXhwb3J0c19fLnVzZURldk92ZXJsYXlDb250ZXh0LF9fd2VicGFja19leHBvcnRzX18pLTE9PT1bXCJEZXZPdmVybGF5Q29udGV4dFwiLFwiZGlzcGF0Y2hlclwiLFwicmVuZGVyQXBwRGV2T3ZlcmxheVwiLFwicmVuZGVyUGFnZXNEZXZPdmVybGF5XCIsXCJ1c2VEZXZPdmVybGF5Q29udGV4dFwiXS5pbmRleE9mKF9fd2VicGFja19pX18pJiYoZXhwb3J0c1tfX3dlYnBhY2tfaV9fXT1fX3dlYnBhY2tfZXhwb3J0c19fW19fd2VicGFja19pX19dKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cyxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/compiled/safe-stable-stringify/index.js ***!
|
||
\************************************************************************/
|
||
/***/ ((module) => {
|
||
|
||
eval("(function(){\"use strict\";var e={879:function(e,t){const{hasOwnProperty:n}=Object.prototype;const r=configure();r.configure=configure;r.stringify=r;r.default=r;t.stringify=r;t.configure=configure;e.exports=r;const i=/[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]/;function strEscape(e){if(e.length<5e3&&!i.test(e)){return`\"${e}\"`}return JSON.stringify(e)}function sort(e,t){if(e.length>200||t){return e.sort(t)}for(let t=1;t<e.length;t++){const n=e[t];let r=t;while(r!==0&&e[r-1]>n){e[r]=e[r-1];r--}e[r]=n}return e}const f=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function isTypedArrayWithEntries(e){return f.call(e)!==undefined&&e.length!==0}function stringifyTypedArray(e,t,n){if(e.length<n){n=e.length}const r=t===\",\"?\"\":\" \";let i=`\"0\":${r}${e[0]}`;for(let f=1;f<n;f++){i+=`${t}\"${f}\":${r}${e[f]}`}return i}function getCircularValueOption(e){if(n.call(e,\"circularValue\")){const t=e.circularValue;if(typeof t===\"string\"){return`\"${t}\"`}if(t==null){return t}if(t===Error||t===TypeError){return{toString(){throw new TypeError(\"Converting circular structure to JSON\")}}}throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')}return'\"[Circular]\"'}function getDeterministicOption(e){let t;if(n.call(e,\"deterministic\")){t=e.deterministic;if(typeof t!==\"boolean\"&&typeof t!==\"function\"){throw new TypeError('The \"deterministic\" argument must be of type boolean or comparator function')}}return t===undefined?true:t}function getBooleanOption(e,t){let r;if(n.call(e,t)){r=e[t];if(typeof r!==\"boolean\"){throw new TypeError(`The \"${t}\" argument must be of type boolean`)}}return r===undefined?true:r}function getPositiveIntegerOption(e,t){let r;if(n.call(e,t)){r=e[t];if(typeof r!==\"number\"){throw new TypeError(`The \"${t}\" argument must be of type number`)}if(!Number.isInteger(r)){throw new TypeError(`The \"${t}\" argument must be an integer`)}if(r<1){throw new RangeError(`The \"${t}\" argument must be >= 1`)}}return r===undefined?Infinity:r}function getItemCount(e){if(e===1){return\"1 item\"}return`${e} items`}function getUniqueReplacerSet(e){const t=new Set;for(const n of e){if(typeof n===\"string\"||typeof n===\"number\"){t.add(String(n))}}return t}function getStrictOption(e){if(n.call(e,\"strict\")){const t=e.strict;if(typeof t!==\"boolean\"){throw new TypeError('The \"strict\" argument must be of type boolean')}if(t){return e=>{let t=`Object can not safely be stringified. Received type ${typeof e}`;if(typeof e!==\"function\")t+=` (${e.toString()})`;throw new Error(t)}}}}function configure(e){e={...e};const t=getStrictOption(e);if(t){if(e.bigint===undefined){e.bigint=false}if(!(\"circularValue\"in e)){e.circularValue=Error}}const n=getCircularValueOption(e);const r=getBooleanOption(e,\"bigint\");const i=getDeterministicOption(e);const f=typeof i===\"function\"?i:undefined;const u=getPositiveIntegerOption(e,\"maximumDepth\");const o=getPositiveIntegerOption(e,\"maximumBreadth\");function stringifyFnReplacer(e,s,l,c,a,g){let p=s[e];if(typeof p===\"object\"&&p!==null&&typeof p.toJSON===\"function\"){p=p.toJSON(e)}p=c.call(s,e,p);switch(typeof p){case\"string\":return strEscape(p);case\"object\":{if(p===null){return\"null\"}if(l.indexOf(p)!==-1){return n}let e=\"\";let t=\",\";const r=g;if(Array.isArray(p)){if(p.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(p);if(a!==\"\"){g+=a;e+=`\\n${g}`;t=`,\\n${g}`}const n=Math.min(p.length,o);let i=0;for(;i<n-1;i++){const n=stringifyFnReplacer(String(i),p,l,c,a,g);e+=n!==undefined?n:\"null\";e+=t}const f=stringifyFnReplacer(String(i),p,l,c,a,g);e+=f!==undefined?f:\"null\";if(p.length-1>o){const n=p.length-o-1;e+=`${t}\"... ${getItemCount(n)} not stringified\"`}if(a!==\"\"){e+=`\\n${r}`}l.pop();return`[${e}]`}let s=Object.keys(p);const y=s.length;if(y===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}let d=\"\";let h=\"\";if(a!==\"\"){g+=a;t=`,\\n${g}`;d=\" \"}const $=Math.min(y,o);if(i&&!isTypedArrayWithEntries(p)){s=sort(s,f)}l.push(p);for(let n=0;n<$;n++){const r=s[n];const i=stringifyFnReplacer(r,p,l,c,a,g);if(i!==undefined){e+=`${h}${strEscape(r)}:${d}${i}`;h=t}}if(y>o){const n=y-o;e+=`${h}\"...\":${d}\"${getItemCount(n)} not stringified\"`;h=t}if(a!==\"\"&&h.length>1){e=`\\n${g}${e}\\n${r}`}l.pop();return`{${e}}`}case\"number\":return isFinite(p)?String(p):t?t(p):\"null\";case\"boolean\":return p===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(p)}default:return t?t(p):undefined}}function stringifyArrayReplacer(e,i,f,s,l,c){if(typeof i===\"object\"&&i!==null&&typeof i.toJSON===\"function\"){i=i.toJSON(e)}switch(typeof i){case\"string\":return strEscape(i);case\"object\":{if(i===null){return\"null\"}if(f.indexOf(i)!==-1){return n}const e=c;let t=\"\";let r=\",\";if(Array.isArray(i)){if(i.length===0){return\"[]\"}if(u<f.length+1){return'\"[Array]\"'}f.push(i);if(l!==\"\"){c+=l;t+=`\\n${c}`;r=`,\\n${c}`}const n=Math.min(i.length,o);let a=0;for(;a<n-1;a++){const e=stringifyArrayReplacer(String(a),i[a],f,s,l,c);t+=e!==undefined?e:\"null\";t+=r}const g=stringifyArrayReplacer(String(a),i[a],f,s,l,c);t+=g!==undefined?g:\"null\";if(i.length-1>o){const e=i.length-o-1;t+=`${r}\"... ${getItemCount(e)} not stringified\"`}if(l!==\"\"){t+=`\\n${e}`}f.pop();return`[${t}]`}f.push(i);let a=\"\";if(l!==\"\"){c+=l;r=`,\\n${c}`;a=\" \"}let g=\"\";for(const e of s){const n=stringifyArrayReplacer(e,i[e],f,s,l,c);if(n!==undefined){t+=`${g}${strEscape(e)}:${a}${n}`;g=r}}if(l!==\"\"&&g.length>1){t=`\\n${c}${t}\\n${e}`}f.pop();return`{${t}}`}case\"number\":return isFinite(i)?String(i):t?t(i):\"null\";case\"boolean\":return i===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(i)}default:return t?t(i):undefined}}function stringifyIndent(e,s,l,c,a){switch(typeof s){case\"string\":return strEscape(s);case\"object\":{if(s===null){return\"null\"}if(typeof s.toJSON===\"function\"){s=s.toJSON(e);if(typeof s!==\"object\"){return stringifyIndent(e,s,l,c,a)}if(s===null){return\"null\"}}if(l.indexOf(s)!==-1){return n}const t=a;if(Array.isArray(s)){if(s.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(s);a+=c;let e=`\\n${a}`;const n=`,\\n${a}`;const r=Math.min(s.length,o);let i=0;for(;i<r-1;i++){const t=stringifyIndent(String(i),s[i],l,c,a);e+=t!==undefined?t:\"null\";e+=n}const f=stringifyIndent(String(i),s[i],l,c,a);e+=f!==undefined?f:\"null\";if(s.length-1>o){const t=s.length-o-1;e+=`${n}\"... ${getItemCount(t)} not stringified\"`}e+=`\\n${t}`;l.pop();return`[${e}]`}let r=Object.keys(s);const g=r.length;if(g===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}a+=c;const p=`,\\n${a}`;let y=\"\";let d=\"\";let h=Math.min(g,o);if(isTypedArrayWithEntries(s)){y+=stringifyTypedArray(s,p,o);r=r.slice(s.length);h-=s.length;d=p}if(i){r=sort(r,f)}l.push(s);for(let e=0;e<h;e++){const t=r[e];const n=stringifyIndent(t,s[t],l,c,a);if(n!==undefined){y+=`${d}${strEscape(t)}: ${n}`;d=p}}if(g>o){const e=g-o;y+=`${d}\"...\": \"${getItemCount(e)} not stringified\"`;d=p}if(d!==\"\"){y=`\\n${a}${y}\\n${t}`}l.pop();return`{${y}}`}case\"number\":return isFinite(s)?String(s):t?t(s):\"null\";case\"boolean\":return s===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(s)}default:return t?t(s):undefined}}function stringifySimple(e,s,l){switch(typeof s){case\"string\":return strEscape(s);case\"object\":{if(s===null){return\"null\"}if(typeof s.toJSON===\"function\"){s=s.toJSON(e);if(typeof s!==\"object\"){return stringifySimple(e,s,l)}if(s===null){return\"null\"}}if(l.indexOf(s)!==-1){return n}let t=\"\";const r=s.length!==undefined;if(r&&Array.isArray(s)){if(s.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(s);const e=Math.min(s.length,o);let n=0;for(;n<e-1;n++){const e=stringifySimple(String(n),s[n],l);t+=e!==undefined?e:\"null\";t+=\",\"}const r=stringifySimple(String(n),s[n],l);t+=r!==undefined?r:\"null\";if(s.length-1>o){const e=s.length-o-1;t+=`,\"... ${getItemCount(e)} not stringified\"`}l.pop();return`[${t}]`}let c=Object.keys(s);const a=c.length;if(a===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}let g=\"\";let p=Math.min(a,o);if(r&&isTypedArrayWithEntries(s)){t+=stringifyTypedArray(s,\",\",o);c=c.slice(s.length);p-=s.length;g=\",\"}if(i){c=sort(c,f)}l.push(s);for(let e=0;e<p;e++){const n=c[e];const r=stringifySimple(n,s[n],l);if(r!==undefined){t+=`${g}${strEscape(n)}:${r}`;g=\",\"}}if(a>o){const e=a-o;t+=`${g}\"...\":\"${getItemCount(e)} not stringified\"`}l.pop();return`{${t}}`}case\"number\":return isFinite(s)?String(s):t?t(s):\"null\";case\"boolean\":return s===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(s)}default:return t?t(s):undefined}}function stringify(e,t,n){if(arguments.length>1){let r=\"\";if(typeof n===\"number\"){r=\" \".repeat(Math.min(n,10))}else if(typeof n===\"string\"){r=n.slice(0,10)}if(t!=null){if(typeof t===\"function\"){return stringifyFnReplacer(\"\",{\"\":e},[],t,r,\"\")}if(Array.isArray(t)){return stringifyArrayReplacer(\"\",e,[],getUniqueReplacerSet(t),r,\"\")}}if(r.length!==0){return stringifyIndent(\"\",e,[],r,\"\")}}return stringifySimple(\"\",e,[])}return stringify}}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var i=t[n]={exports:{}};var f=true;try{e[n](i,i.exports,__nccwpck_require__);f=false}finally{if(f)delete t[n]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var n=__nccwpck_require__(879);module.exports=n})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3NhZmUtc3RhYmxlLXN0cmluZ2lmeS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxZQUFZLGFBQWEsT0FBTyxrQkFBa0IsTUFBTSxpQkFBaUIsa0JBQWtCLG9CQUFvQixzQkFBc0IsY0FBYyxZQUFZLGNBQWMsc0JBQXNCLFlBQVksbURBQW1ELHNCQUFzQiw2QkFBNkIsVUFBVSxFQUFFLEdBQUcseUJBQXlCLG1CQUFtQixvQkFBb0IsaUJBQWlCLFlBQVksV0FBVyxLQUFLLGFBQWEsUUFBUSx1QkFBdUIsWUFBWSxJQUFJLE9BQU8sU0FBUyw0SEFBNEgsb0NBQW9DLDJDQUEyQyxvQ0FBb0MsZUFBZSxXQUFXLHVCQUF1QixhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxJQUFJLEtBQUssTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxtQ0FBbUMsOEJBQThCLHdCQUF3Qix3QkFBd0IsVUFBVSxFQUFFLEdBQUcsWUFBWSxTQUFTLDZCQUE2QixPQUFPLFdBQVcsK0RBQStELDBHQUEwRyxxQkFBcUIsbUNBQW1DLE1BQU0sOEJBQThCLGtCQUFrQixnREFBZ0Qsb0dBQW9HLDRCQUE0QiwrQkFBK0IsTUFBTSxnQkFBZ0IsT0FBTyx5QkFBeUIsNEJBQTRCLEVBQUUsc0NBQXNDLDRCQUE0Qix1Q0FBdUMsTUFBTSxnQkFBZ0IsT0FBTyx3QkFBd0IsNEJBQTRCLEVBQUUsb0NBQW9DLHlCQUF5Qiw0QkFBNEIsRUFBRSxnQ0FBZ0MsUUFBUSw2QkFBNkIsRUFBRSwyQkFBMkIsZ0NBQWdDLHlCQUF5QixVQUFVLGVBQWUsU0FBUyxHQUFHLE9BQU8saUNBQWlDLGdCQUFnQixrQkFBa0IsNkNBQTZDLGtCQUFrQixTQUFTLDRCQUE0Qix1QkFBdUIsaUJBQWlCLHlCQUF5QixxRUFBcUUsTUFBTSxXQUFXLDZEQUE2RCxTQUFTLEVBQUUsaUNBQWlDLGFBQWEsR0FBRyxzQkFB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cnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3NhZmUtc3RhYmxlLXN0cmluZ2lmeS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgZT17ODc5OmZ1bmN0aW9uKGUsdCl7Y29uc3R7aGFzT3duUHJvcGVydHk6bn09T2JqZWN0LnByb3RvdHlwZTtjb25zdCByPWNvbmZpZ3VyZSgpO3IuY29uZmlndXJlPWNvbmZpZ3VyZTtyLnN0cmluZ2lmeT1yO3IuZGVmYXVsdD1yO3Quc3RyaW5naWZ5PXI7dC5jb25maWd1cmU9Y29uZmlndXJlO2UuZXhwb3J0cz1yO2NvbnN0IGk9L1tcXHUwMDAwLVxcdTAwMWZcXHUwMDIyXFx1MDA1Y1xcdWQ4MDAtXFx1ZGZmZl0vO2Z1bmN0aW9uIHN0ckVzY2FwZShlKXtpZihlLmxlbmd0aDw1ZTMmJiFpLnRlc3QoZSkpe3JldHVybmBcIiR7ZX1cImB9cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWZ1bmN0aW9uIHNvcnQoZSx0KXtpZihlLmxlbmd0aD4yMDB8fHQpe3JldHVybiBlLnNvcnQodCl9Zm9yKGxldCB0PTE7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XTtsZXQgcj10O3doaWxlKHIhPT0wJiZlW3ItMV0+bil7ZVtyXT1lW3ItMV07ci0tfWVbcl09bn1yZXR1cm4gZX1jb25zdCBmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LmdldFByb3RvdHlwZU9mKE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgSW50OEFycmF5KSksU3ltYm9sLnRvU3RyaW5nVGFnKS5nZXQ7ZnVuY3Rpb24gaXNUeXBlZEFycmF5V2l0aEVudHJpZXMoZSl7cmV0dXJuIGYuY2FsbChlKSE9PXVuZGVmaW5lZCYmZS5sZW5ndGghPT0wfWZ1bmN0aW9uIHN0cmluZ2lmeVR5cGVkQXJyYXkoZSx0LG4pe2lmKGUubGVuZ3RoPG4pe249ZS5sZW5ndGh9Y29uc3Qgcj10PT09XCIsXCI/XCJcIjpcIiBcIjtsZXQgaT1gXCIwXCI6JHtyfSR7ZVswXX1gO2ZvcihsZXQgZj0xO2Y8bjtmKyspe2krPWAke3R9XCIke2Z9XCI6JHtyfSR7ZVtmXX1gfXJldHVybiBpfWZ1bmN0aW9uIGdldENpcmN1bGFyVmFsdWVPcHRpb24oZSl7aWYobi5jYWxsKGUsXCJjaXJjdWxhclZhbHVlXCIpKXtjb25zdCB0PWUuY2lyY3VsYXJWYWx1ZTtpZih0eXBlb2YgdD09PVwic3RyaW5nXCIpe3JldHVybmBcIiR7dH1cImB9aWYodD09bnVsbCl7cmV0dXJuIHR9aWYodD09PUVycm9yfHx0PT09VHlwZUVycm9yKXtyZXR1cm57dG9TdHJpbmcoKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTlwiKX19fXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImNpcmN1bGFyVmFsdWVcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIHRoZSB2YWx1ZSBudWxsIG9yIHVuZGVmaW5lZCcpfXJldHVybidcIltDaXJjdWxhcl1cIid9ZnVuY3Rpb24gZ2V0RGV0ZXJtaW5pc3RpY09wdGlvbihlKXtsZXQgdDtpZihuLmNhbGwoZSxcImRldGVybWluaXN0aWNcIikpe3Q9ZS5kZXRlcm1pbmlzdGljO2lmKHR5cGVvZiB0IT09XCJib29sZWFuXCImJnR5cGVvZiB0IT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJkZXRlcm1pbmlzdGljXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4gb3IgY29tcGFyYXRvciBmdW5jdGlvbicpfX1yZXR1cm4gdD09PXVuZGVmaW5lZD90cnVlOnR9ZnVuY3Rpb24gZ2V0Qm9vbGVhbk9wdGlvbihlLHQpe2xldCByO2lmKG4uY2FsbChlLHQpKXtyPWVbdF07aWYodHlwZW9mIHIhPT1cImJvb2xlYW5cIil7dGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIFwiJHt0fVwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBib29sZWFuYCl9fXJldHVybiByPT09dW5kZWZpbmVkP3RydWU6cn1mdW5jdGlvbiBnZXRQb3NpdGl2ZUludGVnZXJPcHRpb24oZSx0KXtsZXQgcjtpZihuLmNhbGwoZSx0KSl7cj1lW3RdO2lmKHR5cGVvZiByIT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIFwiJHt0fVwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXJgKX1pZighTnVtYmVyLmlzSW50ZWdlcihyKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIFwiJHt0fVwiIGFyZ3VtZW50IG11c3QgYmUgYW4gaW50ZWdlcmApfWlmKHI8MSl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBcIiR7dH1cIiBhcmd1bWVudCBtdXN0IGJlID49IDFgKX19cmV0dXJuIHI9PT11bmRlZmluZWQ/SW5maW5pdHk6cn1mdW5jdGlvbiBnZXRJdGVtQ291bnQoZSl7aWYoZT09PTEpe3JldHVyblwiMSBpdGVtXCJ9cmV0dXJuYCR7ZX0gaXRlbXNgfWZ1bmN0aW9uIGdldFVuaXF1ZVJlcGxhY2VyU2V0KGUpe2NvbnN0IHQ9bmV3IFNldDtmb3IoY29uc3QgbiBvZiBlKXtpZih0eXBlb2Ygbj09PVwic3RyaW5nXCJ8fHR5cGVvZiBuPT09XCJudW1iZXJcIil7dC5hZGQoU3RyaW5nKG4pKX19cmV0dXJuIHR9ZnVuY3Rpb24gZ2V0U3RyaWN0T3B0aW9uKGUpe2lmKG4uY2FsbChlLFwic3RyaWN0XCIpKXtjb25zdCB0PWUuc3RyaWN0O2lmKHR5cGVvZiB0IT09XCJib29sZWFuXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcInN0cmljdFwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBib29sZWFuJyl9aWYodCl7cmV0dXJuIGU9PntsZXQgdD1gT2JqZWN0IGNhbiBub3Qgc2FmZWx5IGJlIHN0cmluZ2lmaWVkLiBSZWNlaXZlZCB0eXBlICR7dHlwZW9mIGV9YDtpZih0eXBlb2YgZSE9PVwiZnVuY3Rpb25cIil0Kz1gICgke2UudG9TdHJpbmcoKX0pYDt0aHJvdyBuZXcgRXJyb3IodCl9fX19ZnVuY3Rpb24gY29uZmlndXJlKGUpe2U9ey4uLmV9O2NvbnN0IHQ9Z2V0U3RyaWN0T3B0aW9uKGUpO2lmKHQpe2lmKGUuYmlnaW50PT09dW5kZWZpbmVkKXtlLmJpZ2ludD1mYWxzZX1pZighKFwiY2lyY3VsYXJWYWx1ZVwiaW4gZSkpe2UuY2lyY3VsYXJWYWx1ZT1FcnJvcn19Y29uc3Qgbj1nZXRDaXJjdWxhclZhbHVlT3B0aW9uKGUpO2NvbnN0IHI9Z2V0Qm9vbGVhbk9wdGlvbihlLFwiYmlnaW50XCIpO2NvbnN0IGk9Z2V0RGV0ZXJtaW5pc3RpY09wdGlvbihlKTtjb25zdCBmPXR5cGVvZiBpPT09XCJmdW5jdGlvblwiP2k6dW5kZWZpbmVkO2NvbnN0IHU9Z2V0UG9zaXRpdmVJbnRlZ2VyT3B0aW9uKGUsXCJtYXhpbXVtRGVwdGhcIik7Y29uc3Qgbz1nZXRQb3NpdGl2ZUludGVnZXJPcHRpb24oZSxcIm1heGltdW1CcmVhZHRoXCIpO2Z1bmN0aW9uIHN0cmluZ2lmeUZuUmVwbGFjZXIoZSxzLGwsYyxhLGcpe2xldCBwPXNbZV07aWYodHlwZW9mIHA9PT1cIm9iamVjdFwiJiZwIT09bnVsbCYmdHlwZW9mIHAudG9KU09OPT09XCJmdW5jdGlvblwiKXtwPXAudG9KU09OKGUpfXA9Yy5jYWxsKHMsZSxwKTtzd2l0Y2godHlwZW9mIHApe2Nhc2VcInN0cmluZ1wiOnJldHVybiBzdHJFc2NhcGUocCk7Y2FzZVwib2JqZWN0XCI6e2lmKHA9PT1udWxsKXtyZXR1cm5cIm51bGxcIn1pZihsLmluZGV4T2YocCkhPT0tMSl7cmV0dXJuIG59bGV0IGU9XCJcIjtsZXQgdD1cIixcIjtjb25zdCByPWc7aWYoQXJyYXkuaXNBcnJheShwKSl7aWYocC5sZW5ndGg9PT0wKXtyZXR1cm5cIltdXCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbQXJyYXldXCInfWwucHVzaChwKTtpZihhIT09XCJcIil7Zys9YTtlKz1gXFxuJHtnfWA7dD1gLFxcbiR7Z31gfWNvbnN0IG49TWF0aC5taW4ocC5sZW5ndGgsbyk7bGV0IGk9MDtmb3IoO2k8bi0xO2krKyl7Y29uc3Qgbj1zdHJpbmdpZnlGblJlcGxhY2VyKFN0cmluZyhpKSxwLGwsYyxhLGcpO2UrPW4hPT11bmRlZmluZWQ/bjpcIm51bGxcIjtlKz10fWNvbnN0IGY9c3RyaW5naWZ5Rm5SZXBsYWNlcihTdHJpbmcoaSkscCxsLGMsYSxnKTtlKz1mIT09dW5kZWZpbmVkP2Y6XCJudWxsXCI7aWYocC5sZW5ndGgtMT5vKXtjb25zdCBuPXAubGVuZ3RoLW8tMTtlKz1gJHt0fVwiLi4uICR7Z2V0SXRlbUNvdW50KG4pfSBub3Qgc3RyaW5naWZpZWRcImB9aWYoYSE9PVwiXCIpe2UrPWBcXG4ke3J9YH1sLnBvcCgpO3JldHVybmBbJHtlfV1gfWxldCBzPU9iamVjdC5rZXlzKHApO2NvbnN0IHk9cy5sZW5ndGg7aWYoeT09PTApe3JldHVyblwie31cIn1pZih1PGwubGVuZ3RoKzEpe3JldHVybidcIltPYmplY3RdXCInfWxldCBkPVwiXCI7bGV0IGg9XCJcIjtpZihhIT09XCJcIil7Zys9YTt0PWAsXFxuJHtnfWA7ZD1cIiBcIn1jb25zdCAkPU1hdGgubWluKHksbyk7aWYoaSYmIWlzVHlwZWRBcnJheVdpdGhFbnRyaWVzKHApKXtzPXNvcnQocyxmKX1sLnB1c2gocCk7Zm9yKGxldCBuPTA7bjwkO24rKyl7Y29uc3Qgcj1zW25dO2NvbnN0IGk9c3RyaW5naWZ5Rm5SZXBsYWNlcihyLHAsbCxjLGEsZyk7aWYoaSE9PXVuZGVmaW5lZCl7ZSs9YCR7aH0ke3N0ckVzY2FwZShyKX06JHtkfSR7aX1gO2g9dH19aWYoeT5vKXtjb25zdCBuPXktbztlKz1gJHtofVwiLi4uXCI6JHtkfVwiJHtnZXRJdGVtQ291bnQobil9IG5vdCBzdHJpbmdpZmllZFwiYDtoPXR9aWYoYSE9PVwiXCImJmgubGVuZ3RoPjEpe2U9YFxcbiR7Z30ke2V9XFxuJHtyfWB9bC5wb3AoKTtyZXR1cm5geyR7ZX19YH1jYXNlXCJudW1iZXJcIjpyZXR1cm4gaXNGaW5pdGUocCk/U3RyaW5nKHApOnQ/dChwKTpcIm51bGxcIjtjYXNlXCJib29sZWFuXCI6cmV0dXJuIHA9PT10cnVlP1widHJ1ZVwiOlwiZmFsc2VcIjtjYXNlXCJ1bmRlZmluZWRcIjpyZXR1cm4gdW5kZWZpbmVkO2Nhc2VcImJpZ2ludFwiOmlmKHIpe3JldHVybiBTdHJpbmcocCl9ZGVmYXVsdDpyZXR1cm4gdD90KHApOnVuZGVmaW5lZH19ZnVuY3Rpb24gc3RyaW5naWZ5QXJyYXlSZXBsYWNlcihlLGksZixzLGwsYyl7aWYodHlwZW9mIGk9PT1cIm9iamVjdFwiJiZpIT09bnVsbCYmdHlwZW9mIGkudG9KU09OPT09XCJmdW5jdGlvblwiKXtpPWkudG9KU09OKGUpfXN3aXRjaCh0eXBlb2YgaSl7Y2FzZVwic3RyaW5nXCI6cmV0dXJuIHN0ckVzY2FwZShpKTtjYXNlXCJvYmplY3RcIjp7aWYoaT09PW51bGwpe3JldHVyblwibnVsbFwifWlmKGYuaW5kZXhPZihpKSE9PS0xKXtyZXR1cm4gbn1jb25zdCBlPWM7bGV0IHQ9XCJcIjtsZXQgcj1cIixcIjtpZihBcnJheS5pc0FycmF5KGkpKXtpZihpLmxlbmd0aD09PTApe3JldHVyblwiW11cIn1pZih1PGYubGVuZ3RoKzEpe3JldHVybidcIltBcnJheV1cIid9Zi5wdXNoKGkpO2lmKGwhPT1cIlwiKXtjKz1sO3QrPWBcXG4ke2N9YDtyPWAsXFxuJHtjfWB9Y29uc3Qgbj1NYXRoLm1pbihpLmxlbmd0aCxvKTtsZXQgYT0wO2Zvcig7YTxuLTE7YSsrKXtjb25zdCBlPXN0cmluZ2lmeUFycmF5UmVwbGFjZXIoU3RyaW5nKGEpLGlbYV0sZixzLGwsYyk7dCs9ZSE9PXVuZGVmaW5lZD9lOlwibnVsbFwiO3QrPXJ9Y29uc3QgZz1zdHJpbmdpZnlBcnJheVJlcGxhY2VyKFN0cmluZyhhKSxpW2FdLGYscyxsLGMpO3QrPWchPT11bmRlZmluZWQ/ZzpcIm51bGxcIjtpZihpLmxlbmd0aC0xPm8pe2NvbnN0IGU9aS5sZW5ndGgtby0xO3QrPWAke3J9XCIuLi4gJHtnZXRJdGVtQ291bnQoZSl9IG5vdCBzdHJpbmdpZmllZFwiYH1pZihsIT09XCJcIil7dCs9YFxcbiR7ZX1gfWYucG9wKCk7cmV0dXJuYFske3R9XWB9Zi5wdXNoKGkpO2xldCBhPVwiXCI7aWYobCE9PVwiXCIpe2MrPWw7cj1gLFxcbiR7Y31gO2E9XCIgXCJ9bGV0IGc9XCJcIjtmb3IoY29uc3QgZSBvZiBzKXtjb25zdCBuPXN0cmluZ2lmeUFycmF5UmVwbGFjZXIoZSxpW2VdLGYscyxsLGMpO2lmKG4hPT11bmRlZmluZWQpe3QrPWAke2d9JHtzdHJFc2NhcGUoZSl9OiR7YX0ke259YDtnPXJ9fWlmKGwhPT1cIlwiJiZnLmxlbmd0aD4xKXt0PWBcXG4ke2N9JHt0fVxcbiR7ZX1gfWYucG9wKCk7cmV0dXJuYHske3R9fWB9Y2FzZVwibnVtYmVyXCI6cmV0dXJuIGlzRmluaXRlKGkpP1N0cmluZyhpKTp0P3QoaSk6XCJudWxsXCI7Y2FzZVwiYm9vbGVhblwiOnJldHVybiBpPT09dHJ1ZT9cInRydWVcIjpcImZhbHNlXCI7Y2FzZVwidW5kZWZpbmVkXCI6cmV0dXJuIHVuZGVmaW5lZDtjYXNlXCJiaWdpbnRcIjppZihyKXtyZXR1cm4gU3RyaW5nKGkpfWRlZmF1bHQ6cmV0dXJuIHQ/dChpKTp1bmRlZmluZWR9fWZ1bmN0aW9uIHN0cmluZ2lmeUluZGVudChlLHMsbCxjLGEpe3N3aXRjaCh0eXBlb2Ygcyl7Y2FzZVwic3RyaW5nXCI6cmV0dXJuIHN0ckVzY2FwZShzKTtjYXNlXCJvYmplY3RcIjp7aWYocz09PW51bGwpe3JldHVyblwibnVsbFwifWlmKHR5cGVvZiBzLnRvSlNPTj09PVwiZnVuY3Rpb25cIil7cz1zLnRvSlNPTihlKTtpZih0eXBlb2YgcyE9PVwib2JqZWN0XCIpe3JldHVybiBzdHJpbmdpZnlJbmRlbnQoZSxzLGwsYyxhKX1pZihzPT09bnVsbCl7cmV0dXJuXCJudWxsXCJ9fWlmKGwuaW5kZXhPZihzKSE9PS0xKXtyZXR1cm4gbn1jb25zdCB0PWE7aWYoQXJyYXkuaXNBcnJheShzKSl7aWYocy5sZW5ndGg9PT0wKXtyZXR1cm5cIltdXCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbQXJyYXldXCInfWwucHVzaChzKTthKz1jO2xldCBlPWBcXG4ke2F9YDtjb25zdCBuPWAsXFxuJHthfWA7Y29uc3Qgcj1NYXRoLm1pbihzLmxlbmd0aCxvKTtsZXQgaT0wO2Zvcig7aTxyLTE7aSsrKXtjb25zdCB0PXN0cmluZ2lmeUluZGVudChTdHJpbmcoaSksc1tpXSxsLGMsYSk7ZSs9dCE9PXVuZGVmaW5lZD90OlwibnVsbFwiO2UrPW59Y29uc3QgZj1zdHJpbmdpZnlJbmRlbnQoU3RyaW5nKGkpLHNbaV0sbCxjLGEpO2UrPWYhPT11bmRlZmluZWQ/ZjpcIm51bGxcIjtpZihzLmxlbmd0aC0xPm8pe2NvbnN0IHQ9cy5sZW5ndGgtby0xO2UrPWAke259XCIuLi4gJHtnZXRJdGVtQ291bnQodCl9IG5vdCBzdHJpbmdpZmllZFwiYH1lKz1gXFxuJHt0fWA7bC5wb3AoKTtyZXR1cm5gWyR7ZX1dYH1sZXQgcj1PYmplY3Qua2V5cyhzKTtjb25zdCBnPXIubGVuZ3RoO2lmKGc9PT0wKXtyZXR1cm5cInt9XCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbT2JqZWN0XVwiJ31hKz1jO2NvbnN0IHA9YCxcXG4ke2F9YDtsZXQgeT1cIlwiO2xldCBkPVwiXCI7bGV0IGg9TWF0aC5taW4oZyxvKTtpZihpc1R5cGVkQXJyYXlXaXRoRW50cmllcyhzKSl7eSs9c3RyaW5naWZ5VHlwZWRBcnJheShzLHAsbyk7cj1yLnNsaWNlKHMubGVuZ3RoKTtoLT1zLmxlbmd0aDtkPXB9aWYoaSl7cj1zb3J0KHIsZil9bC5wdXNoKHMpO2ZvcihsZXQgZT0wO2U8aDtlKyspe2NvbnN0IHQ9cltlXTtjb25zdCBuPXN0cmluZ2lmeUluZGVudCh0LHNbdF0sbCxjLGEpO2lmKG4hPT11bmRlZmluZWQpe3krPWAke2R9JHtzdHJFc2NhcGUodCl9OiAke259YDtkPXB9fWlmKGc+byl7Y29uc3QgZT1nLW87eSs9YCR7ZH1cIi4uLlwiOiBcIiR7Z2V0SXRlbUNvdW50KGUpfSBub3Qgc3RyaW5naWZpZWRcImA7ZD1wfWlmKGQhPT1cIlwiKXt5PWBcXG4ke2F9JHt5fVxcbiR7dH1gfWwucG9wKCk7cmV0dXJuYHske3l9fWB9Y2FzZVwibnVtYmVyXCI6cmV0dXJuIGlzRmluaXRlKHMpP1N0cmluZyhzKTp0P3Qocyk6XCJudWxsXCI7Y2FzZVwiYm9vbGVhblwiOnJldHVybiBzPT09dHJ1ZT9cInRydWVcIjpcImZhbHNlXCI7Y2FzZVwidW5kZWZpbmVkXCI6cmV0dXJuIHVuZGVmaW5lZDtjYXNlXCJiaWdpbnRcIjppZihyKXtyZXR1cm4gU3RyaW5nKHMpfWRlZmF1bHQ6cmV0dXJuIHQ/dChzKTp1bmRlZmluZWR9fWZ1bmN0aW9uIHN0cmluZ2lmeVNpbXBsZShlLHMsbCl7c3dpdGNoKHR5cGVvZiBzKXtjYXNlXCJzdHJpbmdcIjpyZXR1cm4gc3RyRXNjYXBlKHMpO2Nhc2VcIm9iamVjdFwiOntpZihzPT09bnVsbCl7cmV0dXJuXCJudWxsXCJ9aWYodHlwZW9mIHMudG9KU09OPT09XCJmdW5jdGlvblwiKXtzPXMudG9KU09OKGUpO2lmKHR5cGVvZiBzIT09XCJvYmplY3RcIil7cmV0dXJuIHN0cmluZ2lmeVNpbXBsZShlLHMsbCl9aWYocz09PW51bGwpe3JldHVyblwibnVsbFwifX1pZihsLmluZGV4T2YocykhPT0tMSl7cmV0dXJuIG59bGV0IHQ9XCJcIjtjb25zdCByPXMubGVuZ3RoIT09dW5kZWZpbmVkO2lmKHImJkFycmF5LmlzQXJyYXkocykpe2lmKHMubGVuZ3RoPT09MCl7cmV0dXJuXCJbXVwifWlmKHU8bC5sZW5ndGgrMSl7cmV0dXJuJ1wiW0FycmF5XVwiJ31sLnB1c2gocyk7Y29uc3QgZT1NYXRoLm1pbihzLmxlbmd0aCxvKTtsZXQgbj0wO2Zvcig7bjxlLTE7bisrKXtjb25zdCBlPXN0cmluZ2lmeVNpbXBsZShTdHJpbmcobiksc1tuXSxsKTt0Kz1lIT09dW5kZWZpbmVkP2U6XCJudWxsXCI7dCs9XCIsXCJ9Y29uc3Qgcj1zdHJpbmdpZnlTaW1wbGUoU3RyaW5nKG4pLHNbbl0sbCk7dCs9ciE9PXVuZGVmaW5lZD9yOlwibnVsbFwiO2lmKHMubGVuZ3RoLTE+byl7Y29uc3QgZT1zLmxlbmd0aC1vLTE7dCs9YCxcIi4uLiAke2dldEl0ZW1Db3VudChlKX0gbm90IHN0cmluZ2lmaWVkXCJgfWwucG9wKCk7cmV0dXJuYFske3R9XWB9bGV0IGM9T2JqZWN0LmtleXMocyk7Y29uc3QgYT1jLmxlbmd0aDtpZihhPT09MCl7cmV0dXJuXCJ7fVwifWlmKHU8bC5sZW5ndGgrMSl7cmV0dXJuJ1wiW09iamVjdF1cIid9bGV0IGc9XCJcIjtsZXQgcD1NYXRoLm1pbihhLG8pO2lmKHImJmlzVHlwZWRBcnJheVdpdGhFbnRyaWVzKHMpKXt0Kz1zdHJpbmdpZnlUeXBlZEFycmF5KHMsXCIsXCIsbyk7Yz1jLnNsaWNlKHMubGVuZ3RoKTtwLT1zLmxlbmd0aDtnPVwiLFwifWlmKGkpe2M9c29ydChjLGYpfWwucHVzaChzKTtmb3IobGV0IGU9MDtlPHA7ZSsrKXtjb25zdCBuPWNbZV07Y29uc3Qgcj1zdHJpbmdpZnlTaW1wbGUobixzW25dLGwpO2lmKHIhPT11bmRlZmluZWQpe3QrPWAke2d9JHtzdHJFc2NhcGUobil9OiR7cn1gO2c9XCIsXCJ9fWlmKGE+byl7Y29uc3QgZT1hLW87dCs9YCR7Z31cIi4uLlwiOlwiJHtnZXRJdGVtQ291bnQoZSl9IG5vdCBzdHJpbmdpZmllZFwiYH1sLnBvcCgpO3JldHVybmB7JHt0fX1gfWNhc2VcIm51bWJlclwiOnJldHVybiBpc0Zpbml0ZShzKT9TdHJpbmcocyk6dD90KHMpOlwibnVsbFwiO2Nhc2VcImJvb2xlYW5cIjpyZXR1cm4gcz09PXRydWU/XCJ0cnVlXCI6XCJmYWxzZVwiO2Nhc2VcInVuZGVmaW5lZFwiOnJldHVybiB1bmRlZmluZWQ7Y2FzZVwiYmlnaW50XCI6aWYocil7cmV0dXJuIFN0cmluZyhzKX1kZWZhdWx0OnJldHVybiB0P3Qocyk6dW5kZWZpbmVkfX1mdW5jdGlvbiBzdHJpbmdpZnkoZSx0LG4pe2lmKGFyZ3VtZW50cy5sZW5ndGg+MSl7bGV0IHI9XCJcIjtpZih0eXBlb2Ygbj09PVwibnVtYmVyXCIpe3I9XCIgXCIucmVwZWF0KE1hdGgubWluKG4sMTApKX1lbHNlIGlmKHR5cGVvZiBuPT09XCJzdHJpbmdcIil7cj1uLnNsaWNlKDAsMTApfWlmKHQhPW51bGwpe2lmKHR5cGVvZiB0PT09XCJmdW5jdGlvblwiKXtyZXR1cm4gc3RyaW5naWZ5Rm5SZXBsYWNlcihcIlwiLHtcIlwiOmV9LFtdLHQscixcIlwiKX1pZihBcnJheS5pc0FycmF5KHQpKXtyZXR1cm4gc3RyaW5naWZ5QXJyYXlSZXBsYWNlcihcIlwiLGUsW10sZ2V0VW5pcXVlUmVwbGFjZXJTZXQodCkscixcIlwiKX19aWYoci5sZW5ndGghPT0wKXtyZXR1cm4gc3RyaW5naWZ5SW5kZW50KFwiXCIsZSxbXSxyLFwiXCIpfX1yZXR1cm4gc3RyaW5naWZ5U2ltcGxlKFwiXCIsZSxbXSl9cmV0dXJuIHN0cmluZ2lmeX19fTt2YXIgdD17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKG4pe3ZhciByPXRbbl07aWYociE9PXVuZGVmaW5lZCl7cmV0dXJuIHIuZXhwb3J0c312YXIgaT10W25dPXtleHBvcnRzOnt9fTt2YXIgZj10cnVlO3RyeXtlW25dKGksaS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO2Y9ZmFsc2V9ZmluYWxseXtpZihmKWRlbGV0ZSB0W25dfXJldHVybiBpLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBuPV9fbmNjd3Bja19yZXF1aXJlX18oODc5KTttb2R1bGUuZXhwb3J0cz1ufSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/safe-stable-stringify/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("\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2kvaW5kZXguanMiLCJtYXBwaW5ncyI6IjtBQUFDO0lBQUs7SUFBYSxJQUFJQSxJQUFFO1FBQUMsS0FBSUEsQ0FBQUE7WUFBSUEsRUFBRUMsT0FBTyxHQUFDLENBQUMsRUFBQ0MsV0FBVUYsSUFBRSxLQUFLLEVBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUksTUFBTUcsSUFBRTtvQkFBQztvQkFBK0g7aUJBQTJELENBQUNDLElBQUksQ0FBQztnQkFBSyxPQUFPLElBQUlDLE9BQU9GLEdBQUVILElBQUVNLFlBQVU7WUFBSTtRQUFDO1FBQUUsS0FBSSxDQUFDTixHQUFFRyxHQUFFSTtZQUFLLE1BQU1DLElBQUVELEVBQUU7WUFBS1AsRUFBRUMsT0FBTyxHQUFDRCxDQUFBQSxJQUFHLE9BQU9BLE1BQUksV0FBU0EsRUFBRVMsT0FBTyxDQUFDRCxLQUFJLE1BQUlSO1FBQUM7SUFBQztJQUFFLElBQUlHLElBQUUsQ0FBQztJQUFFLFNBQVNPLG9CQUFvQkgsQ0FBQztRQUFFLElBQUlDLElBQUVMLENBQUMsQ0FBQ0ksRUFBRTtRQUFDLElBQUdDLE1BQUlGLFdBQVU7WUFBQyxPQUFPRSxFQUFFUCxPQUFPO1FBQUE7UUFBQyxJQUFJVSxJQUFFUixDQUFDLENBQUNJLEVBQUUsR0FBQztZQUFDTixTQUFRLENBQUM7UUFBQztRQUFFLElBQUlXLElBQUU7UUFBSyxJQUFHO1lBQUNaLENBQUMsQ0FBQ08sRUFBRSxDQUFDSSxHQUFFQSxFQUFFVixPQUFPLEVBQUNTO1lBQXFCRSxJQUFFO1FBQUssU0FBUTtZQUFDLElBQUdBLEdBQUUsT0FBT1QsQ0FBQyxDQUFDSSxFQUFFO1FBQUE7UUFBQyxPQUFPSSxFQUFFVixPQUFPO0lBQUE7SUFBQyxJQUFHLE9BQU9TLHdCQUFzQixhQUFZQSxvQkFBb0JHLEVBQUUsR0FBQ0MsWUFBVTtJQUFJLElBQUlQLElBQUVHLG9CQUFvQjtJQUFLSyxPQUFPZCxPQUFPLEdBQUNNO0FBQUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgZT17NTExOmU9PntlLmV4cG9ydHM9KHtvbmx5Rmlyc3Q6ZT1mYWxzZX09e30pPT57Y29uc3Qgcj1bXCJbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT9cXFxcdTAwMDcpXCIsXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKVwiXS5qb2luKFwifFwiKTtyZXR1cm4gbmV3IFJlZ0V4cChyLGU/dW5kZWZpbmVkOlwiZ1wiKX19LDUzMjooZSxyLF8pPT57Y29uc3QgdD1fKDUxMSk7ZS5leHBvcnRzPWU9PnR5cGVvZiBlPT09XCJzdHJpbmdcIj9lLnJlcGxhY2UodCgpLFwiXCIpOmV9fTt2YXIgcj17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKF8pe3ZhciB0PXJbX107aWYodCE9PXVuZGVmaW5lZCl7cmV0dXJuIHQuZXhwb3J0c312YXIgYT1yW19dPXtleHBvcnRzOnt9fTt2YXIgbj10cnVlO3RyeXtlW19dKGEsYS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO249ZmFsc2V9ZmluYWxseXtpZihuKWRlbGV0ZSByW19dfXJldHVybiBhLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBfPV9fbmNjd3Bja19yZXF1aXJlX18oNTMyKTttb2R1bGUuZXhwb3J0cz1ffSkoKTsiXSwibmFtZXMiOlsiZSIsImV4cG9ydHMiLCJvbmx5Rmlyc3QiLCJyIiwiam9pbiIsIlJlZ0V4cCIsInVuZGVmaW5lZCIsIl8iLCJ0IiwicmVwbGFjZSIsIl9fbmNjd3Bja19yZXF1aXJlX18iLCJhIiwibiIsImFiIiwiX19kaXJuYW1lIiwibW9kdWxlIl0sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/lib/framework/boundary-components.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/framework/boundary-components.js ***!
|
||
\*********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \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 MetadataBoundary: function() {\n return MetadataBoundary;\n },\n OutletBoundary: function() {\n return OutletBoundary;\n },\n RootLayoutBoundary: function() {\n return RootLayoutBoundary;\n },\n ViewportBoundary: function() {\n return ViewportBoundary;\n }\n});\nconst _boundaryconstants = __webpack_require__(/*! ./boundary-constants */ \"(ssr)/./node_modules/next/dist/lib/framework/boundary-constants.js\");\n// We use a namespace object to allow us to recover the name of the function\n// at runtime even when production bundling/minification is used.\nconst NameSpace = {\n [_boundaryconstants.METADATA_BOUNDARY_NAME]: function({ children }) {\n return children;\n },\n [_boundaryconstants.VIEWPORT_BOUNDARY_NAME]: function({ children }) {\n return children;\n },\n [_boundaryconstants.OUTLET_BOUNDARY_NAME]: function({ children }) {\n return children;\n },\n [_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME]: function({ children }) {\n return children;\n }\n};\nconst MetadataBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_boundaryconstants.METADATA_BOUNDARY_NAME.slice(0)];\nconst ViewportBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_boundaryconstants.VIEWPORT_BOUNDARY_NAME.slice(0)];\nconst OutletBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_boundaryconstants.OUTLET_BOUNDARY_NAME.slice(0)];\nconst RootLayoutBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]; //# sourceMappingURL=boundary-components.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29tcG9uZW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUErQmFBLGdCQUFnQjtlQUFoQkE7O0lBVUFDLGNBQWM7ZUFBZEE7O0lBS0FDLGtCQUFrQjtlQUFsQkE7O0lBVkFDLGdCQUFnQjtlQUFoQkE7OzsrQ0E1Qk47QUFFUCw0RUFBNEU7QUFDNUUsaUVBQWlFO0FBQ2pFLE1BQU1DLFlBQVk7SUFDaEIsQ0FBQ0MsbUJBQUFBLHNCQUFzQixDQUFDLEVBQUUsU0FBVSxFQUFFQyxRQUFRLEVBQTJCO1FBQ3ZFLE9BQU9BO0lBQ1Q7SUFDQSxDQUFDQyxtQkFBQUEsc0JBQXNCLENBQUMsRUFBRSxTQUFVLEVBQUVELFFBQVEsRUFBMkI7UUFDdkUsT0FBT0E7SUFDVDtJQUNBLENBQUNFLG1CQUFBQSxvQkFBb0IsQ0FBQyxFQUFFLFNBQVUsRUFBRUYsUUFBUSxFQUEyQjtRQUNyRSxPQUFPQTtJQUNUO0lBQ0EsQ0FBQ0csbUJBQUFBLHlCQUF5QixDQUFDLEVBQUUsU0FBVSxFQUNyQ0gsUUFBUSxFQUdUO1FBQ0MsT0FBT0E7SUFDVDtBQUNGO0FBRU8sTUFBTU4sbUJBQ1gsNERBQzREO0FBQzVESSxTQUFTLENBQUNDLG1CQUFBQSxzQkFBc0IsQ0FBQ0ssS0FBSyxDQUFDLEdBQW9DO0FBRXRFLE1BQU1QLG1CQUNYLDREQUM0RDtBQUM1REMsU0FBUyxDQUFDRyxtQkFBQUEsc0JBQXNCLENBQUNHLEtBQUssQ0FBQyxHQUFvQztBQUV0RSxNQUFNVCxpQkFDWCw0REFDNEQ7QUFDNURHLFNBQVMsQ0FBQ0ksbUJBQUFBLG9CQUFvQixDQUFDRSxLQUFLLENBQUMsR0FBa0M7QUFFbEUsTUFBTVIscUJBQ1gsNERBQzREO0FBQzVERSxTQUFTLENBQ1BLLG1CQUFBQSx5QkFBeUIsQ0FBQ0MsS0FBSyxDQUFDLEdBQ2pDIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvbGliL2ZyYW1ld29yay9ib3VuZGFyeS1jb21wb25lbnRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIE1FVEFEQVRBX0JPVU5EQVJZX05BTUUsXG4gIFZJRVdQT1JUX0JPVU5EQVJZX05BTUUsXG4gIE9VVExFVF9CT1VOREFSWV9OQU1FLFxuICBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FLFxufSBmcm9tICcuL2JvdW5kYXJ5LWNvbnN0YW50cydcblxuLy8gV2UgdXNlIGEgbmFtZXNwYWNlIG9iamVjdCB0byBhbGxvdyB1cyB0byByZWNvdmVyIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvblxuLy8gYXQgcnVudGltZSBldmVuIHdoZW4gcHJvZHVjdGlvbiBidW5kbGluZy9taW5pZmljYXRpb24gaXMgdXNlZC5cbmNvbnN0IE5hbWVTcGFjZSA9IHtcbiAgW01FVEFEQVRBX0JPVU5EQVJZX05BTUVdOiBmdW5jdGlvbiAoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfSkge1xuICAgIHJldHVybiBjaGlsZHJlblxuICB9LFxuICBbVklFV1BPUlRfQk9VTkRBUllfTkFNRV06IGZ1bmN0aW9uICh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuXG4gIH0sXG4gIFtPVVRMRVRfQk9VTkRBUllfTkFNRV06IGZ1bmN0aW9uICh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuXG4gIH0sXG4gIFtST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FXTogZnVuY3Rpb24gKHtcbiAgICBjaGlsZHJlbixcbiAgfToge1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGVcbiAgfSkge1xuICAgIHJldHVybiBjaGlsZHJlblxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgTWV0YWRhdGFCb3VuZGFyeSA9XG4gIC8vIFdlIHVzZSBzbGljZSgwKSB0byB0cmljayB0aGUgYnVuZGxlciBpbnRvIG5vdCBpbmxpbmluZy9taW5pZnlpbmcgdGhlIGZ1bmN0aW9uXG4gIC8vIHNvIGl0IHJldGFpbnMgdGhlIG5hbWUgaW5mZXJyZWQgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdFxuICBOYW1lU3BhY2VbTUVUQURBVEFfQk9VTkRBUllfTkFNRS5zbGljZSgwKSBhcyB0eXBlb2YgTUVUQURBVEFfQk9VTkRBUllfTkFNRV1cblxuZXhwb3J0IGNvbnN0IFZpZXdwb3J0Qm91bmRhcnkgPVxuICAvLyBXZSB1c2Ugc2xpY2UoMCkgdG8gdHJpY2sgdGhlIGJ1bmRsZXIgaW50byBub3QgaW5saW5pbmcvbWluaWZ5aW5nIHRoZSBmdW5jdGlvblxuICAvLyBzbyBpdCByZXRhaW5zIHRoZSBuYW1lIGluZmVycmVkIGZyb20gdGhlIG5hbWVzcGFjZSBvYmplY3RcbiAgTmFtZVNwYWNlW1ZJRVdQT1JUX0JPVU5EQVJZX05BTUUuc2xpY2UoMCkgYXMgdHlwZW9mIFZJRVdQT1JUX0JPVU5EQVJZX05BTUVdXG5cbmV4cG9ydCBjb25zdCBPdXRsZXRCb3VuZGFyeSA9XG4gIC8vIFdlIHVzZSBzbGljZSgwKSB0byB0cmljayB0aGUgYnVuZGxlciBpbnRvIG5vdCBpbmxpbmluZy9taW5pZnlpbmcgdGhlIGZ1bmN0aW9uXG4gIC8vIHNvIGl0IHJldGFpbnMgdGhlIG5hbWUgaW5mZXJyZWQgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdFxuICBOYW1lU3BhY2VbT1VUTEVUX0JPVU5EQVJZX05BTUUuc2xpY2UoMCkgYXMgdHlwZW9mIE9VVExFVF9CT1VOREFSWV9OQU1FXVxuXG5leHBvcnQgY29uc3QgUm9vdExheW91dEJvdW5kYXJ5ID1cbiAgLy8gV2UgdXNlIHNsaWNlKDApIHRvIHRyaWNrIHRoZSBidW5kbGVyIGludG8gbm90IGlubGluaW5nL21pbmlmeWluZyB0aGUgZnVuY3Rpb25cbiAgLy8gc28gaXQgcmV0YWlucyB0aGUgbmFtZSBpbmZlcnJlZCBmcm9tIHRoZSBuYW1lc3BhY2Ugb2JqZWN0XG4gIE5hbWVTcGFjZVtcbiAgICBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FLnNsaWNlKDApIGFzIHR5cGVvZiBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FXG4gIF1cbiJdLCJuYW1lcyI6WyJNZXRhZGF0YUJvdW5kYXJ5IiwiT3V0bGV0Qm91bmRhcnkiLCJSb290TGF5b3V0Qm91bmRhcnkiLCJWaWV3cG9ydEJvdW5kYXJ5IiwiTmFtZVNwYWNlIiwiTUVUQURBVEFfQk9VTkRBUllfTkFNRSIsImNoaWxkcmVuIiwiVklFV1BPUlRfQk9VTkRBUllfTkFNRSIsIk9VVExFVF9CT1VOREFSWV9OQU1FIiwiUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRSIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/framework/boundary-components.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/lib/framework/boundary-constants.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/framework/boundary-constants.js ***!
|
||
\********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 METADATA_BOUNDARY_NAME: function() {\n return METADATA_BOUNDARY_NAME;\n },\n OUTLET_BOUNDARY_NAME: function() {\n return OUTLET_BOUNDARY_NAME;\n },\n ROOT_LAYOUT_BOUNDARY_NAME: function() {\n return ROOT_LAYOUT_BOUNDARY_NAME;\n },\n VIEWPORT_BOUNDARY_NAME: function() {\n return VIEWPORT_BOUNDARY_NAME;\n }\n});\nconst METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';\nconst VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';\nconst OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';\nconst ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__';\n\n//# sourceMappingURL=boundary-constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvZnJhbWV3b3JrL2JvdW5kYXJ5LWNvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgT1VUTEVUX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRTogbnVsbCxcbiAgICBWSUVXUE9SVF9CT1VOREFSWV9OQU1FOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTUVUQURBVEFfQk9VTkRBUllfTkFNRTtcbiAgICB9LFxuICAgIE9VVExFVF9CT1VOREFSWV9OQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE9VVExFVF9CT1VOREFSWV9OQU1FO1xuICAgIH0sXG4gICAgUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FO1xuICAgIH0sXG4gICAgVklFV1BPUlRfQk9VTkRBUllfTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBWSUVXUE9SVF9CT1VOREFSWV9OQU1FO1xuICAgIH1cbn0pO1xuY29uc3QgTUVUQURBVEFfQk9VTkRBUllfTkFNRSA9ICdfX25leHRfbWV0YWRhdGFfYm91bmRhcnlfXyc7XG5jb25zdCBWSUVXUE9SVF9CT1VOREFSWV9OQU1FID0gJ19fbmV4dF92aWV3cG9ydF9ib3VuZGFyeV9fJztcbmNvbnN0IE9VVExFVF9CT1VOREFSWV9OQU1FID0gJ19fbmV4dF9vdXRsZXRfYm91bmRhcnlfXyc7XG5jb25zdCBST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FID0gJ19fbmV4dF9yb290X2xheW91dF9ib3VuZGFyeV9fJztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym91bmRhcnktY29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/framework/boundary-constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/lib/is-error.js":
|
||
/*!************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/is-error.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 /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(ssr)/./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\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 Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsbUJBQU8sQ0FBQyxtR0FBK0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgZ2V0UHJvcGVyRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBOZXh0RXJyb3IuXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByaW50IGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIHdpdGggcHJvcGVydGllcyBsaWtlIGBjb2RlYCAmIGBkaWdlc3RgLlxuICovIGRlZmF1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNFcnJvcjtcbiAgICB9LFxuICAgIGdldFByb3BlckVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFByb3BlckVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2lzcGxhaW5vYmplY3QgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3RcIik7XG5mdW5jdGlvbiBpc0Vycm9yKGVycikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIgIT09IG51bGwgJiYgJ25hbWUnIGluIGVyciAmJiAnbWVzc2FnZScgaW4gZXJyO1xufVxuZnVuY3Rpb24gc2FmZVN0cmluZ2lmeShvYmopIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFdlYWtTZXQoKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCAoX2tleSwgdmFsdWUpPT57XG4gICAgICAgIC8vIElmIHZhbHVlIGlzIGFuIG9iamVjdCBhbmQgYWxyZWFkeSBzZWVuLCByZXBsYWNlIHdpdGggXCJbQ2lyY3VsYXJdXCJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tDaXJjdWxhcl0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGdldFByb3BlckVycm9yKGVycikge1xuICAgIGlmIChpc0Vycm9yKGVycikpIHtcbiAgICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIHByb3ZpZGUgYmV0dGVyIGVycm9yIGZvciBjYXNlIHdoZXJlIGB0aHJvdyB1bmRlZmluZWRgXG4gICAgICAgIC8vIGlzIGNhbGxlZCBpbiBkZXZlbG9wbWVudFxuICAgICAgICBpZiAodHlwZW9mIGVyciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdBbiB1bmRlZmluZWQgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTk4XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignQSBudWxsIGVycm9yIHdhcyB0aHJvd24sICcgKyAnc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzMzZcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCgwLCBfaXNwbGFpbm9iamVjdC5pc1BsYWluT2JqZWN0KShlcnIpID8gc2FmZVN0cmluZ2lmeShlcnIpIDogZXJyICsgJycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/is-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/metadata/generate/icon-mark.js ***!
|
||
\*******************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"IconMark\", ({\n enumerable: true,\n get: function() {\n return IconMark;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst IconMark = ()=>{\n if (false) {}\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"\\xabnxt-icon\\xbb\"\n });\n}; //# sourceMappingURL=icon-mark.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs0Q0FRYUE7OztlQUFBQTs7OztBQUFOLE1BQU1BLFdBQVc7SUFDdEIsSUFBSSxLQUE2QixFQUFFLEVBRWxDO0lBQ0QscUJBQU8scUJBQUNFLFFBQUFBO1FBQUtDLE1BQUs7O0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG4vLyBUaGlzIGlzIGEgY2xpZW50IGNvbXBvbmVudCB0aGF0IG9ubHkgcmVuZGVycyBkdXJpbmcgU1NSLFxuLy8gYnV0IHdpbGwgYmUgcmVwbGFjZWQgZHVyaW5nIHN0cmVhbWluZyB3aXRoIGFuIGljb24gaW5zZXJ0aW9uIHNjcmlwdCB0YWcuXG4vLyBXZSBkb24ndCB3YW50IGl0IHRvIGJlIHByZXNlbnRlZCBhbnl3aGVyZSBzbyBpdCdzIG9ubHkgdmlzaWJsZSBkdXJpbmcgc3RyZWFtaW5nLFxuLy8gcmlnaHQgYWZ0ZXIgdGhlIGljb24gbWV0YSB0YWdzIHNvIHRoYXQgYnJvd3NlciBjYW4gcGljayBpdCB1cCBhcyBzb29uIGFzIGl0J3MgcmVuZGVyZWQuXG4vLyBOb3RlOiB3ZSBkb24ndCBqdXN0IGVtaXQgdGhlIHNjcmlwdCBoZXJlIGJlY2F1c2Ugd2Ugb25seSBuZWVkIHRoZSBzY3JpcHQgaWYgaXQncyBub3QgaW4gdGhlIGhlYWQsXG4vLyBhbmQgd2UgbmVlZCBpdCB0byBiZSBob2lzdGFibGUgYWxvbmdzaWRlIHRoZSBvdGhlciBtZXRhZGF0YSBidXQgc3luYyBzY3JpcHRzIGFyZSBub3QgaG9pc3RhYmxlLlxuZXhwb3J0IGNvbnN0IEljb25NYXJrID0gKCkgPT4ge1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiA8bWV0YSBuYW1lPVwiwqtueHQtaWNvbsK7XCIgLz5cbn1cbiJdLCJuYW1lcyI6WyJJY29uTWFyayIsIndpbmRvdyIsIm1ldGEiLCJuYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/lib/scheduler.js":
|
||
/*!*************************************************!*\
|
||
!*** ./node_modules/next/dist/lib/scheduler.js ***!
|
||
\*************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst 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 if (false) {} else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (false) {} else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (false) {} else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNWO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvc2NoZWR1bGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IG51bGwsXG4gICAgc2NoZWR1bGVJbW1lZGlhdGU6IG51bGwsXG4gICAgc2NoZWR1bGVPbk5leHRUaWNrOiBudWxsLFxuICAgIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGF0TGVhc3RPbmVUYXNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGF0TGVhc3RPbmVUYXNrO1xuICAgIH0sXG4gICAgc2NoZWR1bGVJbW1lZGlhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVJbW1lZGlhdGU7XG4gICAgfSxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVPbk5leHRUaWNrO1xuICAgIH0sXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s7XG4gICAgfVxufSk7XG5jb25zdCBzY2hlZHVsZU9uTmV4dFRpY2sgPSAoY2IpPT57XG4gICAgLy8gV2UgdXNlIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKSBoZXJlIHNvIHRoYXQgdGhlIG9wZXJhdGlvbiBpcyBzY2hlZHVsZWQgYXRcbiAgICAvLyB0aGUgZW5kIG9mIHRoZSBwcm9taXNlIGpvYiBxdWV1ZSwgd2UgdGhlbiBhZGQgaXQgdG8gdGhlIG5leHQgcHJvY2VzcyB0aWNrXG4gICAgLy8gdG8gZW5zdXJlIGl0J3MgZXZhbHVhdGVkIGFmdGVyd2FyZHMuXG4gICAgLy9cbiAgICAvLyBUaGlzIHdhcyBpbnNwaXJlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIERhdGFMb2FkZXIgaW50ZXJmYWNlOiBodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC9kYXRhbG9hZGVyL2Jsb2IvZDMzNmJkMTUyODI2NjRlMGJlNGI0YTY1N2NiNzk2ZjA5YmFmYmM2Yi9zcmMvaW5kZXguanMjTDIxMy1MMjU1XG4gICAgLy9cbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICAgICAgc2V0VGltZW91dChjYiwgMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGNiKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IHNjaGVkdWxlSW1tZWRpYXRlID0gKGNiKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZXRJbW1lZGlhdGUoY2IpO1xuICAgIH1cbn07XG5mdW5jdGlvbiBhdExlYXN0T25lVGFzaygpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpPT5zY2hlZHVsZUltbWVkaWF0ZShyZXNvbHZlKSk7XG59XG5mdW5jdGlvbiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaygpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyKT0+c2V0VGltZW91dChyLCAwKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyKT0+c2V0SW1tZWRpYXRlKHIpKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjaGVkdWxlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/scheduler.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/shared/console-error.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/shared/console-error.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// To distinguish from React error.digest, we use a different symbol here to determine if the error is from console.error or unhandled promise rejection.\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 createConsoleError: function() {\n return createConsoleError;\n },\n isConsoleError: function() {\n return isConsoleError;\n }\n});\nconst digestSym = Symbol.for('next.console.error.digest');\nfunction createConsoleError(message, environmentName) {\n const error = typeof message === 'string' ? Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n }) : message;\n error[digestSym] = 'NEXT_CONSOLE_ERROR';\n if (environmentName && !error.environmentName) {\n error.environmentName = environmentName;\n }\n return error;\n}\nconst isConsoleError = (error)=>{\n return error && error[digestSym] === 'NEXT_CONSOLE_ERROR';\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=console-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvc2hhcmVkL2NvbnNvbGUtZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvc2hhcmVkL2NvbnNvbGUtZXJyb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVG8gZGlzdGluZ3Vpc2ggZnJvbSBSZWFjdCBlcnJvci5kaWdlc3QsIHdlIHVzZSBhIGRpZmZlcmVudCBzeW1ib2wgaGVyZSB0byBkZXRlcm1pbmUgaWYgdGhlIGVycm9yIGlzIGZyb20gY29uc29sZS5lcnJvciBvciB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24uXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUNvbnNvbGVFcnJvcjogbnVsbCxcbiAgICBpc0NvbnNvbGVFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVDb25zb2xlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlQ29uc29sZUVycm9yO1xuICAgIH0sXG4gICAgaXNDb25zb2xlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNDb25zb2xlRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBkaWdlc3RTeW0gPSBTeW1ib2wuZm9yKCduZXh0LmNvbnNvbGUuZXJyb3IuZGlnZXN0Jyk7XG5mdW5jdGlvbiBjcmVhdGVDb25zb2xlRXJyb3IobWVzc2FnZSwgZW52aXJvbm1lbnROYW1lKSB7XG4gICAgY29uc3QgZXJyb3IgPSB0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKG1lc3NhZ2UpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSkgOiBtZXNzYWdlO1xuICAgIGVycm9yW2RpZ2VzdFN5bV0gPSAnTkVYVF9DT05TT0xFX0VSUk9SJztcbiAgICBpZiAoZW52aXJvbm1lbnROYW1lICYmICFlcnJvci5lbnZpcm9ubWVudE5hbWUpIHtcbiAgICAgICAgZXJyb3IuZW52aXJvbm1lbnROYW1lID0gZW52aXJvbm1lbnROYW1lO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3I7XG59XG5jb25zdCBpc0NvbnNvbGVFcnJvciA9IChlcnJvcik9PntcbiAgICByZXR1cm4gZXJyb3IgJiYgZXJyb3JbZGlnZXN0U3ltXSA9PT0gJ05FWFRfQ09OU09MRV9FUlJPUic7XG59O1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zb2xlLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/shared/console-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js ***!
|
||
\****************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 UNDEFINED_MARKER: function() {\n return UNDEFINED_MARKER;\n },\n patchConsoleMethod: function() {\n return patchConsoleMethod;\n }\n});\nconst UNDEFINED_MARKER = '__next_tagged_undefined';\nfunction patchConsoleMethod(methodName, wrapper) {\n const descriptor = Object.getOwnPropertyDescriptor(console, methodName);\n if (descriptor && (descriptor.configurable || descriptor.writable) && typeof descriptor.value === 'function') {\n const originalMethod = descriptor.value;\n const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name');\n const wrapperMethod = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n wrapper(methodName, ...args);\n originalMethod.apply(this, args);\n };\n if (originalName) {\n Object.defineProperty(wrapperMethod, 'name', originalName);\n }\n Object.defineProperty(console, methodName, {\n value: wrapperMethod\n });\n return ()=>{\n Object.defineProperty(console, methodName, {\n value: originalMethod,\n writable: descriptor.writable,\n configurable: descriptor.configurable\n });\n };\n }\n return ()=>{};\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=forward-logs-shared.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvc2hhcmVkL2ZvcndhcmQtbG9ncy1zaGFyZWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0UsYUFBYTtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvc2hhcmVkL2ZvcndhcmQtbG9ncy1zaGFyZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBVTkRFRklORURfTUFSS0VSOiBudWxsLFxuICAgIHBhdGNoQ29uc29sZU1ldGhvZDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBVTkRFRklORURfTUFSS0VSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFVOREVGSU5FRF9NQVJLRVI7XG4gICAgfSxcbiAgICBwYXRjaENvbnNvbGVNZXRob2Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGF0Y2hDb25zb2xlTWV0aG9kO1xuICAgIH1cbn0pO1xuY29uc3QgVU5ERUZJTkVEX01BUktFUiA9ICdfX25leHRfdGFnZ2VkX3VuZGVmaW5lZCc7XG5mdW5jdGlvbiBwYXRjaENvbnNvbGVNZXRob2QobWV0aG9kTmFtZSwgd3JhcHBlcikge1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbnNvbGUsIG1ldGhvZE5hbWUpO1xuICAgIGlmIChkZXNjcmlwdG9yICYmIChkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSB8fCBkZXNjcmlwdG9yLndyaXRhYmxlKSAmJiB0eXBlb2YgZGVzY3JpcHRvci52YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsTmFtZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob3JpZ2luYWxNZXRob2QsICduYW1lJyk7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJNZXRob2QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGZvcih2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKXtcbiAgICAgICAgICAgICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JhcHBlcihtZXRob2ROYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgICAgIG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAob3JpZ2luYWxOYW1lKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod3JhcHBlck1ldGhvZCwgJ25hbWUnLCBvcmlnaW5hbE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25zb2xlLCBtZXRob2ROYW1lLCB7XG4gICAgICAgICAgICB2YWx1ZTogd3JhcHBlck1ldGhvZFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uc29sZSwgbWV0aG9kTmFtZSwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBvcmlnaW5hbE1ldGhvZCxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZGVzY3JpcHRvci53cml0YWJsZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuICgpPT57fTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9yd2FyZC1sb2dzLXNoYXJlZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js":
|
||
/*!**********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js ***!
|
||
\**********************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AppDevOverlayErrorBoundary\", ({\n enumerable: true,\n get: function() {\n return AppDevOverlayErrorBoundary;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ../../../client/dev/runtime-error-handler */ \"(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js\");\nconst _errorboundary = __webpack_require__(/*! ../../../client/components/error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _globalerror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../client/components/builtin/global-error */ \"(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js\"));\nconst _segmentexplorernode = __webpack_require__(/*! ./segment-explorer-node */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\nfunction ErroredHtml(param) {\n let { globalError: [GlobalError, globalErrorStyles], error } = param;\n if (!error) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"html\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"head\", {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"body\", {})\n ]\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_errorboundary.ErrorBoundary, {\n errorComponent: _globalerror.default,\n children: [\n globalErrorStyles,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(GlobalError, {\n error: error\n })\n ]\n });\n}\nclass AppDevOverlayErrorBoundary extends _react.PureComponent {\n static getDerivedStateFromError(error) {\n _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError = true;\n return {\n reactError: error\n };\n }\n componentDidCatch(err) {\n if ( true && err.message === _segmentexplorernode.SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE) {\n return;\n }\n _nextdevtools.dispatcher.openErrorOverlay();\n }\n render() {\n const { children, globalError } = this.props;\n const { reactError } = this.state;\n const fallback = /*#__PURE__*/ (0, _jsxruntime.jsx)(ErroredHtml, {\n globalError: globalError,\n error: reactError\n });\n return reactError !== null ? fallback : children;\n }\n constructor(...args){\n super(...args), this.state = {\n reactError: null\n };\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=app-dev-overlay-error-boundary.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9hcHAtZGV2LW92ZXJsYXktZXJyb3ItYm91bmRhcnkuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw4REFBNkQ7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixpQ0FBaUMsbUJBQU8sQ0FBQyxrSEFBeUM7QUFDbEYsb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLGVBQWUsbUJBQU8sQ0FBQyxpR0FBTztBQUM5QixzQkFBc0IsbUJBQU8sQ0FBQyx3R0FBa0M7QUFDaEUsNkJBQTZCLG1CQUFPLENBQUMscUhBQTJDO0FBQ2hGLHVCQUF1QixtQkFBTyxDQUFDLHFIQUEyQztBQUMxRSw4REFBOEQsbUJBQU8sQ0FBQyxpSUFBaUQ7QUFDdkgsNkJBQTZCLG1CQUFPLENBQUMsb0hBQXlCO0FBQzlEO0FBQ0EsVUFBVSx1REFBdUQ7QUFDakU7QUFDQTtBQUNBO0FBQ0EsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RDtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQXNDO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isd0JBQXdCO0FBQ3hDLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9hcHAtZGV2LW92ZXJsYXktZXJyb3ItYm91bmRhcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJBcHBEZXZPdmVybGF5RXJyb3JCb3VuZGFyeVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnk7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfbmV4dGRldnRvb2xzID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9uZXh0LWRldnRvb2xzXCIpO1xuY29uc3QgX3J1bnRpbWVlcnJvcmhhbmRsZXIgPSByZXF1aXJlKFwiLi4vLi4vLi4vY2xpZW50L2Rldi9ydW50aW1lLWVycm9yLWhhbmRsZXJcIik7XG5jb25zdCBfZXJyb3Jib3VuZGFyeSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeVwiKTtcbmNvbnN0IF9nbG9iYWxlcnJvciA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0Ll8ocmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yXCIpKTtcbmNvbnN0IF9zZWdtZW50ZXhwbG9yZXJub2RlID0gcmVxdWlyZShcIi4vc2VnbWVudC1leHBsb3Jlci1ub2RlXCIpO1xuZnVuY3Rpb24gRXJyb3JlZEh0bWwocGFyYW0pIHtcbiAgICBsZXQgeyBnbG9iYWxFcnJvcjogW0dsb2JhbEVycm9yLCBnbG9iYWxFcnJvclN0eWxlc10sIGVycm9yIH0gPSBwYXJhbTtcbiAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShcImh0bWxcIiwge1xuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwiaGVhZFwiLCB7fSksXG4gICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImJvZHlcIiwge30pXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4cykoX2Vycm9yYm91bmRhcnkuRXJyb3JCb3VuZGFyeSwge1xuICAgICAgICBlcnJvckNvbXBvbmVudDogX2dsb2JhbGVycm9yLmRlZmF1bHQsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBnbG9iYWxFcnJvclN0eWxlcyxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoR2xvYmFsRXJyb3IsIHtcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn1cbmNsYXNzIEFwcERldk92ZXJsYXlFcnJvckJvdW5kYXJ5IGV4dGVuZHMgX3JlYWN0LlB1cmVDb21wb25lbnQge1xuICAgIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgX3J1bnRpbWVlcnJvcmhhbmRsZXIuUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IgPSB0cnVlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVhY3RFcnJvcjogZXJyb3JcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29tcG9uZW50RGlkQ2F0Y2goZXJyKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBlcnIubWVzc2FnZSA9PT0gX3NlZ21lbnRleHBsb3Jlcm5vZGUuU0VHTUVOVF9FWFBMT1JFUl9TSU1VTEFURURfRVJST1JfTUVTU0FHRSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIF9uZXh0ZGV2dG9vbHMuZGlzcGF0Y2hlci5vcGVuRXJyb3JPdmVybGF5KCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBjaGlsZHJlbiwgZ2xvYmFsRXJyb3IgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IHsgcmVhY3RFcnJvciB9ID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgY29uc3QgZmFsbGJhY2sgPSAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKEVycm9yZWRIdG1sLCB7XG4gICAgICAgICAgICBnbG9iYWxFcnJvcjogZ2xvYmFsRXJyb3IsXG4gICAgICAgICAgICBlcnJvcjogcmVhY3RFcnJvclxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlYWN0RXJyb3IgIT09IG51bGwgPyBmYWxsYmFjayA6IGNoaWxkcmVuO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzKXtcbiAgICAgICAgc3VwZXIoLi4uYXJncyksIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICByZWFjdEVycm9yOiBudWxsXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtZGV2LW92ZXJsYXktZXJyb3ItYm91bmRhcnkuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js":
|
||
/*!*********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js ***!
|
||
\*********************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ReplaySsrOnlyErrors\", ({\n enumerable: true,\n get: function() {\n return ReplaySsrOnlyErrors;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _useerrorhandler = __webpack_require__(/*! ./use-error-handler */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js\");\nconst _isnextroutererror = __webpack_require__(/*! ../../../../client/components/is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _constants = __webpack_require__(/*! ../../../../shared/lib/errors/constants */ \"(ssr)/./node_modules/next/dist/shared/lib/errors/constants.js\");\nfunction readSsrError() {\n if (typeof document === 'undefined') {\n return null;\n }\n const ssrErrorTemplateTag = document.querySelector('template[data-next-error-message]');\n if (ssrErrorTemplateTag) {\n const message = ssrErrorTemplateTag.getAttribute('data-next-error-message');\n const stack = ssrErrorTemplateTag.getAttribute('data-next-error-stack');\n const digest = ssrErrorTemplateTag.getAttribute('data-next-error-digest');\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n if (digest) {\n ;\n error.digest = digest;\n }\n // Skip Next.js SSR'd internal errors that which will be handled by the error boundaries.\n if ((0, _isnextroutererror.isNextRouterError)(error)) {\n return null;\n }\n error.stack = stack || '';\n return error;\n }\n return null;\n}\nfunction ReplaySsrOnlyErrors(param) {\n let { onBlockingError } = param;\n if (true) {\n // Need to read during render. The attributes will be gone after commit.\n const ssrError = readSsrError();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, _react.useEffect)(()=>{\n if (ssrError !== null) {\n // TODO(veil): Include original Owner Stack (NDX-905)\n // TODO(veil): Mark as recoverable error\n // TODO(veil): console.error\n (0, _useerrorhandler.handleClientError)(ssrError);\n // If it's missing root tags, we can't recover, make it blocking.\n if (ssrError.digest === _constants.MISSING_ROOT_TAGS_ERROR) {\n onBlockingError();\n }\n }\n }, [\n ssrError,\n onBlockingError\n ]);\n }\n return null;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=replay-ssr-only-errors.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvcmVwbGF5LXNzci1vbmx5LWVycm9ycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHVEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLGVBQWUsbUJBQU8sQ0FBQyxpR0FBTztBQUM5Qix5QkFBeUIsbUJBQU8sQ0FBQyxtSEFBcUI7QUFDdEQsMkJBQTJCLG1CQUFPLENBQUMsb0lBQW9EO0FBQ3ZGLG1CQUFtQixtQkFBTyxDQUFDLDhHQUF5QztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxrQkFBa0I7QUFDNUIsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvZXJyb3JzL3JlcGxheS1zc3Itb25seS1lcnJvcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZXBsYXlTc3JPbmx5RXJyb3JzXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXBsYXlTc3JPbmx5RXJyb3JzO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3QgX3VzZWVycm9yaGFuZGxlciA9IHJlcXVpcmUoXCIuL3VzZS1lcnJvci1oYW5kbGVyXCIpO1xuY29uc3QgX2lzbmV4dHJvdXRlcmVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2Vycm9ycy9jb25zdGFudHNcIik7XG5mdW5jdGlvbiByZWFkU3NyRXJyb3IoKSB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHNzckVycm9yVGVtcGxhdGVUYWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0ZW1wbGF0ZVtkYXRhLW5leHQtZXJyb3ItbWVzc2FnZV0nKTtcbiAgICBpZiAoc3NyRXJyb3JUZW1wbGF0ZVRhZykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gc3NyRXJyb3JUZW1wbGF0ZVRhZy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbmV4dC1lcnJvci1tZXNzYWdlJyk7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gc3NyRXJyb3JUZW1wbGF0ZVRhZy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbmV4dC1lcnJvci1zdGFjaycpO1xuICAgICAgICBjb25zdCBkaWdlc3QgPSBzc3JFcnJvclRlbXBsYXRlVGFnLmdldEF0dHJpYnV0ZSgnZGF0YS1uZXh0LWVycm9yLWRpZ2VzdCcpO1xuICAgICAgICBjb25zdCBlcnJvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IobWVzc2FnZSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkaWdlc3QpIHtcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIGVycm9yLmRpZ2VzdCA9IGRpZ2VzdDtcbiAgICAgICAgfVxuICAgICAgICAvLyBTa2lwIE5leHQuanMgU1NSJ2QgaW50ZXJuYWwgZXJyb3JzIHRoYXQgd2hpY2ggd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBlcnJvciBib3VuZGFyaWVzLlxuICAgICAgICBpZiAoKDAsIF9pc25leHRyb3V0ZXJlcnJvci5pc05leHRSb3V0ZXJFcnJvcikoZXJyb3IpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlcnJvci5zdGFjayA9IHN0YWNrIHx8ICcnO1xuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gUmVwbGF5U3NyT25seUVycm9ycyhwYXJhbSkge1xuICAgIGxldCB7IG9uQmxvY2tpbmdFcnJvciB9ID0gcGFyYW07XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgLy8gTmVlZCB0byByZWFkIGR1cmluZyByZW5kZXIuIFRoZSBhdHRyaWJ1dGVzIHdpbGwgYmUgZ29uZSBhZnRlciBjb21taXQuXG4gICAgICAgIGNvbnN0IHNzckVycm9yID0gcmVhZFNzckVycm9yKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcbiAgICAgICAgICAgIGlmIChzc3JFcnJvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE8odmVpbCk6IEluY2x1ZGUgb3JpZ2luYWwgT3duZXIgU3RhY2sgKE5EWC05MDUpXG4gICAgICAgICAgICAgICAgLy8gVE9ETyh2ZWlsKTogTWFyayBhcyByZWNvdmVyYWJsZSBlcnJvclxuICAgICAgICAgICAgICAgIC8vIFRPRE8odmVpbCk6IGNvbnNvbGUuZXJyb3JcbiAgICAgICAgICAgICAgICAoMCwgX3VzZWVycm9yaGFuZGxlci5oYW5kbGVDbGllbnRFcnJvcikoc3NyRXJyb3IpO1xuICAgICAgICAgICAgICAgIC8vIElmIGl0J3MgbWlzc2luZyByb290IHRhZ3MsIHdlIGNhbid0IHJlY292ZXIsIG1ha2UgaXQgYmxvY2tpbmcuXG4gICAgICAgICAgICAgICAgaWYgKHNzckVycm9yLmRpZ2VzdCA9PT0gX2NvbnN0YW50cy5NSVNTSU5HX1JPT1RfVEFHU19FUlJPUikge1xuICAgICAgICAgICAgICAgICAgICBvbkJsb2NraW5nRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtcbiAgICAgICAgICAgIHNzckVycm9yLFxuICAgICAgICAgICAgb25CbG9ja2luZ0Vycm9yXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVwbGF5LXNzci1vbmx5LWVycm9ycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js ***!
|
||
\*************************************************************************************/
|
||
/***/ ((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 coerceError: function() {\n return coerceError;\n },\n decorateDevError: function() {\n return decorateDevError;\n },\n getOwnerStack: function() {\n return getOwnerStack;\n },\n setOwnerStack: function() {\n return setOwnerStack;\n },\n setOwnerStackIfAvailable: function() {\n return setOwnerStackIfAvailable;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../lib/is-error */ \"(ssr)/./node_modules/next/dist/lib/is-error.js\"));\nconst ownerStacks = new WeakMap();\nfunction getOwnerStack(error) {\n return ownerStacks.get(error);\n}\nfunction setOwnerStack(error, stack) {\n ownerStacks.set(error, stack);\n}\nfunction coerceError(value) {\n return (0, _iserror.default)(value) ? value : Object.defineProperty(new Error('' + value), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\nfunction setOwnerStackIfAvailable(error) {\n // React 18 and prod does not have `captureOwnerStack`\n if ('captureOwnerStack' in _react.default) {\n setOwnerStack(error, _react.default.captureOwnerStack());\n }\n}\nfunction decorateDevError(thrownValue) {\n const error = coerceError(thrownValue);\n setOwnerStackIfAvailable(error);\n return error;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=stitched-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvc3RpdGNoZWQtZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUNBQWlDLG1CQUFPLENBQUMsa0hBQXlDO0FBQ2xGLHdEQUF3RCxtQkFBTyxDQUFDLGlHQUFPO0FBQ3ZFLDBEQUEwRCxtQkFBTyxDQUFDLGdGQUEwQjtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvc3RpdGNoZWQtZXJyb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjb2VyY2VFcnJvcjogbnVsbCxcbiAgICBkZWNvcmF0ZURldkVycm9yOiBudWxsLFxuICAgIGdldE93bmVyU3RhY2s6IG51bGwsXG4gICAgc2V0T3duZXJTdGFjazogbnVsbCxcbiAgICBzZXRPd25lclN0YWNrSWZBdmFpbGFibGU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY29lcmNlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29lcmNlRXJyb3I7XG4gICAgfSxcbiAgICBkZWNvcmF0ZURldkVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRlY29yYXRlRGV2RXJyb3I7XG4gICAgfSxcbiAgICBnZXRPd25lclN0YWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldE93bmVyU3RhY2s7XG4gICAgfSxcbiAgICBzZXRPd25lclN0YWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNldE93bmVyU3RhY2s7XG4gICAgfSxcbiAgICBzZXRPd25lclN0YWNrSWZBdmFpbGFibGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2V0T3duZXJTdGFja0lmQXZhaWxhYmxlO1xuICAgIH1cbn0pO1xuY29uc3QgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gcmVxdWlyZShcIkBzd2MvaGVscGVycy9fL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdFwiKTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0Ll8ocmVxdWlyZShcInJlYWN0XCIpKTtcbmNvbnN0IF9pc2Vycm9yID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuXyhyZXF1aXJlKFwiLi4vLi4vLi4vLi4vbGliL2lzLWVycm9yXCIpKTtcbmNvbnN0IG93bmVyU3RhY2tzID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIGdldE93bmVyU3RhY2soZXJyb3IpIHtcbiAgICByZXR1cm4gb3duZXJTdGFja3MuZ2V0KGVycm9yKTtcbn1cbmZ1bmN0aW9uIHNldE93bmVyU3RhY2soZXJyb3IsIHN0YWNrKSB7XG4gICAgb3duZXJTdGFja3Muc2V0KGVycm9yLCBzdGFjayk7XG59XG5mdW5jdGlvbiBjb2VyY2VFcnJvcih2YWx1ZSkge1xuICAgIHJldHVybiAoMCwgX2lzZXJyb3IuZGVmYXVsdCkodmFsdWUpID8gdmFsdWUgOiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCcnICsgdmFsdWUpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBzZXRPd25lclN0YWNrSWZBdmFpbGFibGUoZXJyb3IpIHtcbiAgICAvLyBSZWFjdCAxOCBhbmQgcHJvZCBkb2VzIG5vdCBoYXZlIGBjYXB0dXJlT3duZXJTdGFja2BcbiAgICBpZiAoJ2NhcHR1cmVPd25lclN0YWNrJyBpbiBfcmVhY3QuZGVmYXVsdCkge1xuICAgICAgICBzZXRPd25lclN0YWNrKGVycm9yLCBfcmVhY3QuZGVmYXVsdC5jYXB0dXJlT3duZXJTdGFjaygpKTtcbiAgICB9XG59XG5mdW5jdGlvbiBkZWNvcmF0ZURldkVycm9yKHRocm93blZhbHVlKSB7XG4gICAgY29uc3QgZXJyb3IgPSBjb2VyY2VFcnJvcih0aHJvd25WYWx1ZSk7XG4gICAgc2V0T3duZXJTdGFja0lmQXZhaWxhYmxlKGVycm9yKTtcbiAgICByZXR1cm4gZXJyb3I7XG59XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0aXRjaGVkLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js":
|
||
/*!****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js ***!
|
||
\****************************************************************************************/
|
||
/***/ ((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 handleClientError: function() {\n return handleClientError;\n },\n handleConsoleError: function() {\n return handleConsoleError;\n },\n handleGlobalErrors: function() {\n return handleGlobalErrors;\n },\n useErrorHandler: function() {\n return useErrorHandler;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _isnextroutererror = __webpack_require__(/*! ../../../../client/components/is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _console = __webpack_require__(/*! ../../../../client/lib/console */ \"(ssr)/./node_modules/next/dist/client/lib/console.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../lib/is-error */ \"(ssr)/./node_modules/next/dist/lib/is-error.js\"));\nconst _consoleerror = __webpack_require__(/*! ../../../shared/console-error */ \"(ssr)/./node_modules/next/dist/next-devtools/shared/console-error.js\");\nconst _stitchederror = __webpack_require__(/*! ./stitched-error */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\");\nconst _forwardlogs = __webpack_require__(/*! ../forward-logs */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\");\nconst queueMicroTask = globalThis.queueMicrotask || ((cb)=>Promise.resolve().then(cb));\nconst errorQueue = [];\nconst errorHandlers = [];\nconst rejectionQueue = [];\nconst rejectionHandlers = [];\nfunction handleConsoleError(originError, consoleErrorArgs) {\n let error;\n const { environmentName } = (0, _console.parseConsoleArgs)(consoleErrorArgs);\n if ((0, _iserror.default)(originError)) {\n error = (0, _consoleerror.createConsoleError)(originError, environmentName);\n } else {\n error = (0, _consoleerror.createConsoleError)((0, _console.formatConsoleArgs)(consoleErrorArgs), environmentName);\n }\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n errorQueue.push(error);\n for (const handler of errorHandlers){\n // Delayed the error being passed to React Dev Overlay,\n // avoid the state being synchronously updated in the component.\n queueMicroTask(()=>{\n handler(error);\n });\n }\n}\nfunction handleClientError(error) {\n errorQueue.push(error);\n for (const handler of errorHandlers){\n // Delayed the error being passed to React Dev Overlay,\n // avoid the state being synchronously updated in the component.\n queueMicroTask(()=>{\n handler(error);\n });\n }\n}\nfunction useErrorHandler(handleOnUnhandledError, handleOnUnhandledRejection) {\n (0, _react.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 // Reset error queues.\n errorQueue.splice(0, errorQueue.length);\n rejectionQueue.splice(0, rejectionQueue.length);\n };\n }, [\n handleOnUnhandledError,\n handleOnUnhandledRejection\n ]);\n}\nfunction onUnhandledError(event) {\n const thrownValue = event.error;\n if ((0, _isnextroutererror.isNextRouterError)(thrownValue)) {\n event.preventDefault();\n return false;\n }\n // When there's an error property present, we log the error to error overlay.\n // Otherwise we don't do anything as it's not logging in the console either.\n if (thrownValue) {\n const error = (0, _stitchederror.coerceError)(thrownValue);\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n handleClientError(error);\n if (_forwardlogs.isTerminalLoggingEnabled) {\n (0, _forwardlogs.forwardUnhandledError)(error);\n }\n }\n}\nfunction onUnhandledRejection(ev) {\n const reason = ev == null ? void 0 : ev.reason;\n if ((0, _isnextroutererror.isNextRouterError)(reason)) {\n ev.preventDefault();\n return;\n }\n const error = (0, _stitchederror.coerceError)(reason);\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n rejectionQueue.push(error);\n for (const handler of rejectionHandlers){\n handler(error);\n }\n if (_forwardlogs.isTerminalLoggingEnabled) {\n (0, _forwardlogs.logUnhandledRejection)(reason);\n }\n}\nfunction handleGlobalErrors() {\n if (typeof window !== 'undefined') {\n try {\n // Increase the number of stack frames on the client\n Error.stackTraceLimit = 50;\n } catch (e) {}\n window.addEventListener('error', onUnhandledError);\n window.addEventListener('unhandledrejection', onUnhandledRejection);\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=use-error-handler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWVycm9yLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlDQUFpQyxtQkFBTyxDQUFDLGtIQUF5QztBQUNsRixlQUFlLG1CQUFPLENBQUMsaUdBQU87QUFDOUIsMkJBQTJCLG1CQUFPLENBQUMsb0lBQW9EO0FBQ3ZGLGlCQUFpQixtQkFBTyxDQUFDLDRGQUFnQztBQUN6RCwwREFBMEQsbUJBQU8sQ0FBQyxnRkFBMEI7QUFDNUYsc0JBQXNCLG1CQUFPLENBQUMsMkdBQStCO0FBQzdELHVCQUF1QixtQkFBTyxDQUFDLDZHQUFrQjtBQUNqRCxxQkFBcUIsbUJBQU8sQ0FBQyxtR0FBaUI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGtCQUFrQjtBQUM5QjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvZXJyb3JzL3VzZS1lcnJvci1oYW5kbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaGFuZGxlQ2xpZW50RXJyb3I6IG51bGwsXG4gICAgaGFuZGxlQ29uc29sZUVycm9yOiBudWxsLFxuICAgIGhhbmRsZUdsb2JhbEVycm9yczogbnVsbCxcbiAgICB1c2VFcnJvckhhbmRsZXI6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaGFuZGxlQ2xpZW50RXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaGFuZGxlQ2xpZW50RXJyb3I7XG4gICAgfSxcbiAgICBoYW5kbGVDb25zb2xlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaGFuZGxlQ29uc29sZUVycm9yO1xuICAgIH0sXG4gICAgaGFuZGxlR2xvYmFsRXJyb3JzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZUdsb2JhbEVycm9ycztcbiAgICB9LFxuICAgIHVzZUVycm9ySGFuZGxlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB1c2VFcnJvckhhbmRsZXI7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3QgX2lzbmV4dHJvdXRlcmVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yXCIpO1xuY29uc3QgX2NvbnNvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY2xpZW50L2xpYi9jb25zb2xlXCIpO1xuY29uc3QgX2lzZXJyb3IgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9saWIvaXMtZXJyb3JcIikpO1xuY29uc3QgX2NvbnNvbGVlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvY29uc29sZS1lcnJvclwiKTtcbmNvbnN0IF9zdGl0Y2hlZGVycm9yID0gcmVxdWlyZShcIi4vc3RpdGNoZWQtZXJyb3JcIik7XG5jb25zdCBfZm9yd2FyZGxvZ3MgPSByZXF1aXJlKFwiLi4vZm9yd2FyZC1sb2dzXCIpO1xuY29uc3QgcXVldWVNaWNyb1Rhc2sgPSBnbG9iYWxUaGlzLnF1ZXVlTWljcm90YXNrIHx8ICgoY2IpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKGNiKSk7XG5jb25zdCBlcnJvclF1ZXVlID0gW107XG5jb25zdCBlcnJvckhhbmRsZXJzID0gW107XG5jb25zdCByZWplY3Rpb25RdWV1ZSA9IFtdO1xuY29uc3QgcmVqZWN0aW9uSGFuZGxlcnMgPSBbXTtcbmZ1bmN0aW9uIGhhbmRsZUNvbnNvbGVFcnJvcihvcmlnaW5FcnJvciwgY29uc29sZUVycm9yQXJncykge1xuICAgIGxldCBlcnJvcjtcbiAgICBjb25zdCB7IGVudmlyb25tZW50TmFtZSB9ID0gKDAsIF9jb25zb2xlLnBhcnNlQ29uc29sZUFyZ3MpKGNvbnNvbGVFcnJvckFyZ3MpO1xuICAgIGlmICgoMCwgX2lzZXJyb3IuZGVmYXVsdCkob3JpZ2luRXJyb3IpKSB7XG4gICAgICAgIGVycm9yID0gKDAsIF9jb25zb2xlZXJyb3IuY3JlYXRlQ29uc29sZUVycm9yKShvcmlnaW5FcnJvciwgZW52aXJvbm1lbnROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvciA9ICgwLCBfY29uc29sZWVycm9yLmNyZWF0ZUNvbnNvbGVFcnJvcikoKDAsIF9jb25zb2xlLmZvcm1hdENvbnNvbGVBcmdzKShjb25zb2xlRXJyb3JBcmdzKSwgZW52aXJvbm1lbnROYW1lKTtcbiAgICB9XG4gICAgKDAsIF9zdGl0Y2hlZGVycm9yLnNldE93bmVyU3RhY2tJZkF2YWlsYWJsZSkoZXJyb3IpO1xuICAgIGVycm9yUXVldWUucHVzaChlcnJvcik7XG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIGVycm9ySGFuZGxlcnMpe1xuICAgICAgICAvLyBEZWxheWVkIHRoZSBlcnJvciBiZWluZyBwYXNzZWQgdG8gUmVhY3QgRGV2IE92ZXJsYXksXG4gICAgICAgIC8vIGF2b2lkIHRoZSBzdGF0ZSBiZWluZyBzeW5jaHJvbm91c2x5IHVwZGF0ZWQgaW4gdGhlIGNvbXBvbmVudC5cbiAgICAgICAgcXVldWVNaWNyb1Rhc2soKCk9PntcbiAgICAgICAgICAgIGhhbmRsZXIoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBoYW5kbGVDbGllbnRFcnJvcihlcnJvcikge1xuICAgIGVycm9yUXVldWUucHVzaChlcnJvcik7XG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIGVycm9ySGFuZGxlcnMpe1xuICAgICAgICAvLyBEZWxheWVkIHRoZSBlcnJvciBiZWluZyBwYXNzZWQgdG8gUmVhY3QgRGV2IE92ZXJsYXksXG4gICAgICAgIC8vIGF2b2lkIHRoZSBzdGF0ZSBiZWluZyBzeW5jaHJvbm91c2x5IHVwZGF0ZWQgaW4gdGhlIGNvbXBvbmVudC5cbiAgICAgICAgcXVldWVNaWNyb1Rhc2soKCk9PntcbiAgICAgICAgICAgIGhhbmRsZXIoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiB1c2VFcnJvckhhbmRsZXIoaGFuZGxlT25VbmhhbmRsZWRFcnJvciwgaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pIHtcbiAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcbiAgICAgICAgLy8gSGFuZGxlIHF1ZXVlZCBlcnJvcnMuXG4gICAgICAgIGVycm9yUXVldWUuZm9yRWFjaChoYW5kbGVPblVuaGFuZGxlZEVycm9yKTtcbiAgICAgICAgcmVqZWN0aW9uUXVldWUuZm9yRWFjaChoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbik7XG4gICAgICAgIC8vIExpc3RlbiB0byBuZXcgZXJyb3JzLlxuICAgICAgICBlcnJvckhhbmRsZXJzLnB1c2goaGFuZGxlT25VbmhhbmRsZWRFcnJvcik7XG4gICAgICAgIHJlamVjdGlvbkhhbmRsZXJzLnB1c2goaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIC8vIFJlbW92ZSBsaXN0ZW5lcnMuXG4gICAgICAgICAgICBlcnJvckhhbmRsZXJzLnNwbGljZShlcnJvckhhbmRsZXJzLmluZGV4T2YoaGFuZGxlT25VbmhhbmRsZWRFcnJvciksIDEpO1xuICAgICAgICAgICAgcmVqZWN0aW9uSGFuZGxlcnMuc3BsaWNlKHJlamVjdGlvbkhhbmRsZXJzLmluZGV4T2YoaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pLCAxKTtcbiAgICAgICAgICAgIC8vIFJlc2V0IGVycm9yIHF1ZXVlcy5cbiAgICAgICAgICAgIGVycm9yUXVldWUuc3BsaWNlKDAsIGVycm9yUXVldWUubGVuZ3RoKTtcbiAgICAgICAgICAgIHJlamVjdGlvblF1ZXVlLnNwbGljZSgwLCByZWplY3Rpb25RdWV1ZS5sZW5ndGgpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgaGFuZGxlT25VbmhhbmRsZWRFcnJvcixcbiAgICAgICAgaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb25cbiAgICBdKTtcbn1cbmZ1bmN0aW9uIG9uVW5oYW5kbGVkRXJyb3IoZXZlbnQpIHtcbiAgICBjb25zdCB0aHJvd25WYWx1ZSA9IGV2ZW50LmVycm9yO1xuICAgIGlmICgoMCwgX2lzbmV4dHJvdXRlcmVycm9yLmlzTmV4dFJvdXRlckVycm9yKSh0aHJvd25WYWx1ZSkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBXaGVuIHRoZXJlJ3MgYW4gZXJyb3IgcHJvcGVydHkgcHJlc2VudCwgd2UgbG9nIHRoZSBlcnJvciB0byBlcnJvciBvdmVybGF5LlxuICAgIC8vIE90aGVyd2lzZSB3ZSBkb24ndCBkbyBhbnl0aGluZyBhcyBpdCdzIG5vdCBsb2dnaW5nIGluIHRoZSBjb25zb2xlIGVpdGhlci5cbiAgICBpZiAodGhyb3duVmFsdWUpIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSAoMCwgX3N0aXRjaGVkZXJyb3IuY29lcmNlRXJyb3IpKHRocm93blZhbHVlKTtcbiAgICAgICAgKDAsIF9zdGl0Y2hlZGVycm9yLnNldE93bmVyU3RhY2tJZkF2YWlsYWJsZSkoZXJyb3IpO1xuICAgICAgICBoYW5kbGVDbGllbnRFcnJvcihlcnJvcik7XG4gICAgICAgIGlmIChfZm9yd2FyZGxvZ3MuaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAoMCwgX2ZvcndhcmRsb2dzLmZvcndhcmRVbmhhbmRsZWRFcnJvcikoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gb25VbmhhbmRsZWRSZWplY3Rpb24oZXYpIHtcbiAgICBjb25zdCByZWFzb24gPSBldiA9PSBudWxsID8gdm9pZCAwIDogZXYucmVhc29uO1xuICAgIGlmICgoMCwgX2lzbmV4dHJvdXRlcmVycm9yLmlzTmV4dFJvdXRlckVycm9yKShyZWFzb24pKSB7XG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXJyb3IgPSAoMCwgX3N0aXRjaGVkZXJyb3IuY29lcmNlRXJyb3IpKHJlYXNvbik7XG4gICAgKDAsIF9zdGl0Y2hlZGVycm9yLnNldE93bmVyU3RhY2tJZkF2YWlsYWJsZSkoZXJyb3IpO1xuICAgIHJlamVjdGlvblF1ZXVlLnB1c2goZXJyb3IpO1xuICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiByZWplY3Rpb25IYW5kbGVycyl7XG4gICAgICAgIGhhbmRsZXIoZXJyb3IpO1xuICAgIH1cbiAgICBpZiAoX2ZvcndhcmRsb2dzLmlzVGVybWluYWxMb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICAoMCwgX2ZvcndhcmRsb2dzLmxvZ1VuaGFuZGxlZFJlamVjdGlvbikocmVhc29uKTtcbiAgICB9XG59XG5mdW5jdGlvbiBoYW5kbGVHbG9iYWxFcnJvcnMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBJbmNyZWFzZSB0aGUgbnVtYmVyIG9mIHN0YWNrIGZyYW1lcyBvbiB0aGUgY2xpZW50XG4gICAgICAgICAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSA1MDtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25VbmhhbmRsZWRFcnJvcik7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBvblVuaGFuZGxlZFJlamVjdGlvbik7XG4gICAgfVxufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2UtZXJyb3ItaGFuZGxlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js":
|
||
/*!**********************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js ***!
|
||
\**********************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useForwardConsoleLog\", ({\n enumerable: true,\n get: function() {\n return useForwardConsoleLog;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _forwardlogs = __webpack_require__(/*! ../forward-logs */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\");\nconst useForwardConsoleLog = (socketRef)=>{\n (0, _react.useEffect)(()=>{\n if (!_forwardlogs.isTerminalLoggingEnabled) {\n return;\n }\n const socket = socketRef.current;\n if (!socket) {\n return;\n }\n const onOpen = ()=>{\n _forwardlogs.logQueue.onSocketReady(socket);\n };\n socket.addEventListener('open', onOpen);\n return ()=>{\n socket.removeEventListener('open', onOpen);\n };\n }, [\n socketRef\n ]);\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=use-forward-console-log.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWZvcndhcmQtY29uc29sZS1sb2cuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix3REFBdUQ7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixlQUFlLG1CQUFPLENBQUMsaUdBQU87QUFDOUIscUJBQXFCLG1CQUFPLENBQUMsbUdBQWlCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvZXJyb3JzL3VzZS1mb3J3YXJkLWNvbnNvbGUtbG9nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwidXNlRm9yd2FyZENvbnNvbGVMb2dcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVzZUZvcndhcmRDb25zb2xlTG9nO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3QgX2ZvcndhcmRsb2dzID0gcmVxdWlyZShcIi4uL2ZvcndhcmQtbG9nc1wiKTtcbmNvbnN0IHVzZUZvcndhcmRDb25zb2xlTG9nID0gKHNvY2tldFJlZik9PntcbiAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcbiAgICAgICAgaWYgKCFfZm9yd2FyZGxvZ3MuaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc29ja2V0ID0gc29ja2V0UmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICghc29ja2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb25PcGVuID0gKCk9PntcbiAgICAgICAgICAgIF9mb3J3YXJkbG9ncy5sb2dRdWV1ZS5vblNvY2tldFJlYWR5KHNvY2tldCk7XG4gICAgICAgIH07XG4gICAgICAgIHNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdvcGVuJywgb25PcGVuKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBzb2NrZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3BlbicsIG9uT3Blbik7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBzb2NrZXRSZWZcbiAgICBdKTtcbn07XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1mb3J3YXJkLWNvbnNvbGUtbG9nLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js":
|
||
/*!****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js ***!
|
||
\****************************************************************************/
|
||
/***/ ((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 PROMISE_MARKER: function() {\n return PROMISE_MARKER;\n },\n UNAVAILABLE_MARKER: function() {\n return UNAVAILABLE_MARKER;\n },\n forwardErrorLog: function() {\n return forwardErrorLog;\n },\n forwardUnhandledError: function() {\n return forwardUnhandledError;\n },\n initializeDebugLogForwarding: function() {\n return initializeDebugLogForwarding;\n },\n isTerminalLoggingEnabled: function() {\n return isTerminalLoggingEnabled;\n },\n logQueue: function() {\n return logQueue;\n },\n logStringify: function() {\n return logStringify;\n },\n logUnhandledRejection: function() {\n return logUnhandledRejection;\n },\n preLogSerializationClone: function() {\n return preLogSerializationClone;\n }\n});\nconst _safestablestringify = __webpack_require__(/*! next/dist/compiled/safe-stable-stringify */ \"(ssr)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js\");\nconst _stitchederror = __webpack_require__(/*! ./errors/stitched-error */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\");\nconst _errorsource = __webpack_require__(/*! ../../../shared/lib/error-source */ \"(ssr)/./node_modules/next/dist/shared/lib/error-source.js\");\nconst _terminalloggingconfig = __webpack_require__(/*! ./terminal-logging-config */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js\");\nconst _forwardlogsshared = __webpack_require__(/*! ../../shared/forward-logs-shared */ \"(ssr)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js\");\nconst terminalLoggingConfig = (0, _terminalloggingconfig.getTerminalLoggingConfig)();\nconst PROMISE_MARKER = 'Promise {}';\nconst UNAVAILABLE_MARKER = '[Unable to view]';\nconst maximumDepth = typeof terminalLoggingConfig === 'object' && terminalLoggingConfig.depthLimit ? terminalLoggingConfig.depthLimit : 5;\nconst maximumBreadth = typeof terminalLoggingConfig === 'object' && terminalLoggingConfig.edgeLimit ? terminalLoggingConfig.edgeLimit : 100;\nconst stringify = (0, _safestablestringify.configure)({\n maximumDepth,\n maximumBreadth\n});\nconst isTerminalLoggingEnabled = (0, _terminalloggingconfig.getIsTerminalLoggingEnabled)();\nconst methods = [\n 'log',\n 'info',\n 'warn',\n 'debug',\n 'table',\n 'assert',\n 'dir',\n 'dirxml',\n 'group',\n 'groupCollapsed',\n 'groupEnd',\n 'trace'\n];\nfunction preLogSerializationClone(value, seen) {\n if (seen === void 0) seen = new WeakMap();\n if (value === undefined) return _forwardlogsshared.UNDEFINED_MARKER;\n if (value === null || typeof value !== 'object') return value;\n if (seen.has(value)) return seen.get(value);\n try {\n Object.keys(value);\n } catch (e) {\n return UNAVAILABLE_MARKER;\n }\n try {\n if (typeof value.then === 'function') return PROMISE_MARKER;\n } catch (e) {\n return UNAVAILABLE_MARKER;\n }\n if (Array.isArray(value)) {\n const out = [];\n seen.set(value, out);\n for (const item of value){\n try {\n out.push(preLogSerializationClone(item, seen));\n } catch (e) {\n out.push(UNAVAILABLE_MARKER);\n }\n }\n return out;\n }\n const proto = Object.getPrototypeOf(value);\n if (proto === Object.prototype || proto === null) {\n const out = {};\n seen.set(value, out);\n for (const key of Object.keys(value)){\n try {\n out[key] = preLogSerializationClone(value[key], seen);\n } catch (e) {\n out[key] = UNAVAILABLE_MARKER;\n }\n }\n return out;\n }\n return Object.prototype.toString.call(value);\n}\nconst logStringify = (data)=>{\n try {\n const result = stringify(data);\n return result != null ? result : '\"' + UNAVAILABLE_MARKER + '\"';\n } catch (e) {\n return '\"' + UNAVAILABLE_MARKER + '\"';\n }\n};\nconst afterThisFrame = (cb)=>{\n let timeout;\n const rafId = requestAnimationFrame(()=>{\n timeout = setTimeout(()=>{\n cb();\n });\n });\n return ()=>{\n cancelAnimationFrame(rafId);\n clearTimeout(timeout);\n };\n};\nlet isPatched = false;\nconst serializeEntries = (entries)=>entries.map((clientEntry)=>{\n switch(clientEntry.kind){\n case 'any-logged-error':\n case 'console':\n {\n return {\n ...clientEntry,\n args: clientEntry.args.map(stringifyUserArg)\n };\n }\n case 'formatted-error':\n {\n return clientEntry;\n }\n default:\n {\n return null;\n }\n }\n });\nconst logQueue = {\n entries: [],\n flushScheduled: false,\n cancelFlush: null,\n socket: null,\n sourceType: undefined,\n router: null,\n scheduleLogSend: (entry)=>{\n logQueue.entries.push(entry);\n if (logQueue.flushScheduled) {\n return;\n }\n // safe to deref and use in setTimeout closure since we cancel on new socket\n const socket = logQueue.socket;\n if (!socket) {\n return;\n }\n // we probably dont need this\n logQueue.flushScheduled = true;\n // non blocking log flush, runs at most once per frame\n logQueue.cancelFlush = afterThisFrame(()=>{\n logQueue.flushScheduled = false;\n // just incase\n try {\n const payload = JSON.stringify({\n event: 'browser-logs',\n entries: serializeEntries(logQueue.entries),\n router: logQueue.router,\n // needed for source mapping, we just assign the sourceType from the last error for the whole batch\n sourceType: logQueue.sourceType\n });\n socket.send(payload);\n logQueue.entries = [];\n logQueue.sourceType = undefined;\n } catch (e) {\n // error (make sure u don't infinite loop)\n /* noop */ }\n });\n },\n onSocketReady: (socket)=>{\n if (socket.readyState !== WebSocket.OPEN) {\n // invariant\n return;\n }\n // incase an existing timeout was going to run with a stale socket\n logQueue.cancelFlush == null ? void 0 : logQueue.cancelFlush.call(logQueue);\n logQueue.socket = socket;\n try {\n const payload = JSON.stringify({\n event: 'browser-logs',\n entries: serializeEntries(logQueue.entries),\n router: logQueue.router,\n sourceType: logQueue.sourceType\n });\n socket.send(payload);\n logQueue.entries = [];\n logQueue.sourceType = undefined;\n } catch (e) {\n /** noop just incase */ }\n }\n};\nconst stringifyUserArg = (arg)=>{\n if (arg.kind !== 'arg') {\n return arg;\n }\n return {\n ...arg,\n data: logStringify(arg.data)\n };\n};\nconst createErrorArg = (error)=>{\n const stack = stackWithOwners(error);\n return {\n kind: 'formatted-error-arg',\n prefix: error.message ? error.name + \": \" + error.message : \"\" + error.name,\n stack\n };\n};\nconst createLogEntry = (level, args)=>{\n // do not abstract this, it implicitly relies on which functions call it. forcing the inlined implementation makes you think about callers\n // error capture stack trace maybe\n const stack = stackWithOwners(new Error());\n const stackLines = stack == null ? void 0 : stack.split('\\n');\n const cleanStack = stackLines == null ? void 0 : stackLines.slice(3).join('\\n') // this is probably ignored anyways\n ;\n const entry = {\n kind: 'console',\n consoleMethodStack: cleanStack != null ? cleanStack : null,\n method: level,\n args: args.map((arg)=>{\n if (arg instanceof Error) {\n return createErrorArg(arg);\n }\n return {\n kind: 'arg',\n data: preLogSerializationClone(arg)\n };\n })\n };\n logQueue.scheduleLogSend(entry);\n};\nconst forwardErrorLog = (args)=>{\n const errorObjects = args.filter((arg)=>arg instanceof Error);\n const first = errorObjects.at(0);\n if (first) {\n const source = (0, _errorsource.getErrorSource)(first);\n if (source) {\n logQueue.sourceType = source;\n }\n }\n /**\n * browser shows stack regardless of type of data passed to console.error, so we should do the same\n *\n * do not abstract this, it implicitly relies on which functions call it. forcing the inlined implementation makes you think about callers\n */ const stack = stackWithOwners(new Error());\n const stackLines = stack == null ? void 0 : stack.split('\\n');\n const cleanStack = stackLines == null ? void 0 : stackLines.slice(3).join('\\n');\n const entry = {\n kind: 'any-logged-error',\n method: 'error',\n consoleErrorStack: cleanStack != null ? cleanStack : '',\n args: args.map((arg)=>{\n if (arg instanceof Error) {\n return createErrorArg(arg);\n }\n return {\n kind: 'arg',\n data: preLogSerializationClone(arg)\n };\n })\n };\n logQueue.scheduleLogSend(entry);\n};\nconst createUncaughtErrorEntry = (errorName, errorMessage, fullStack)=>{\n const entry = {\n kind: 'formatted-error',\n prefix: \"Uncaught \" + errorName + \": \" + errorMessage,\n stack: fullStack,\n method: 'error'\n };\n logQueue.scheduleLogSend(entry);\n};\nconst stackWithOwners = (error)=>{\n let ownerStack = '';\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n ownerStack = (0, _stitchederror.getOwnerStack)(error) || '';\n const stack = (error.stack || '') + ownerStack;\n return stack;\n};\nfunction logUnhandledRejection(reason) {\n if (reason instanceof Error) {\n createUnhandledRejectionErrorEntry(reason, stackWithOwners(reason));\n return;\n }\n createUnhandledRejectionNonErrorEntry(reason);\n}\nconst createUnhandledRejectionErrorEntry = (error, fullStack)=>{\n const source = (0, _errorsource.getErrorSource)(error);\n if (source) {\n logQueue.sourceType = source;\n }\n const entry = {\n kind: 'formatted-error',\n prefix: \"⨯ unhandledRejection: \" + error.name + \": \" + error.message,\n stack: fullStack,\n method: 'error'\n };\n logQueue.scheduleLogSend(entry);\n};\nconst createUnhandledRejectionNonErrorEntry = (reason)=>{\n const entry = {\n kind: 'any-logged-error',\n // we can't access the stack since the event is dispatched async and creating an inline error would be meaningless\n consoleErrorStack: '',\n method: 'error',\n args: [\n {\n kind: 'arg',\n data: \"⨯ unhandledRejection:\",\n isRejectionMessage: true\n },\n {\n kind: 'arg',\n data: preLogSerializationClone(reason)\n }\n ]\n };\n logQueue.scheduleLogSend(entry);\n};\nconst isHMR = (args)=>{\n const firstArg = args[0];\n if (typeof firstArg !== 'string') {\n return false;\n }\n if (firstArg.startsWith('[Fast Refresh]')) {\n return true;\n }\n if (firstArg.startsWith('[HMR]')) {\n return true;\n }\n return false;\n};\nconst isIgnoredLog = (args)=>{\n if (args.length < 3) {\n return false;\n }\n const [format, styles, label] = args;\n if (typeof format !== 'string' || typeof styles !== 'string' || typeof label !== 'string') {\n return false;\n }\n // kinda hacky, we should define a common format for these strings so we can safely ignore\n return format.startsWith('%c%s%c') && styles.includes('background:');\n};\nfunction forwardUnhandledError(error) {\n createUncaughtErrorEntry(error.name, error.message, stackWithOwners(error));\n}\nconst initializeDebugLogForwarding = (router)=>{\n // probably don't need this\n if (isPatched) {\n return;\n }\n // TODO(rob): why does this break rendering on server, important to know incase the same bug appears in browser\n if (typeof window === 'undefined') {\n return;\n }\n // better to be safe than sorry\n try {\n methods.forEach((method)=>(0, _forwardlogsshared.patchConsoleMethod)(method, function(_) {\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 if (isHMR(args)) {\n return;\n }\n if (isIgnoredLog(args)) {\n return;\n }\n createLogEntry(method, args);\n }));\n } catch (e) {}\n logQueue.router = router;\n isPatched = true;\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=forward-logs.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9mb3J3YXJkLWxvZ3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBV0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDZCQUE2QixtQkFBTyxDQUFDLHdIQUEwQztBQUMvRSx1QkFBdUIsbUJBQU8sQ0FBQyxvSEFBeUI7QUFDeEQscUJBQXFCLG1CQUFPLENBQUMsbUdBQWtDO0FBQy9ELCtCQUErQixtQkFBTyxDQUFDLHdIQUEyQjtBQUNsRSwyQkFBMkIsbUJBQU8sQ0FBQyxvSEFBa0M7QUFDckU7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0dBQXNHLGFBQWE7QUFDbkg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQsYUFBYTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2ZvcndhcmQtbG9ncy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIFBST01JU0VfTUFSS0VSOiBudWxsLFxuICAgIFVOQVZBSUxBQkxFX01BUktFUjogbnVsbCxcbiAgICBmb3J3YXJkRXJyb3JMb2c6IG51bGwsXG4gICAgZm9yd2FyZFVuaGFuZGxlZEVycm9yOiBudWxsLFxuICAgIGluaXRpYWxpemVEZWJ1Z0xvZ0ZvcndhcmRpbmc6IG51bGwsXG4gICAgaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkOiBudWxsLFxuICAgIGxvZ1F1ZXVlOiBudWxsLFxuICAgIGxvZ1N0cmluZ2lmeTogbnVsbCxcbiAgICBsb2dVbmhhbmRsZWRSZWplY3Rpb246IG51bGwsXG4gICAgcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFBST01JU0VfTUFSS0VSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBST01JU0VfTUFSS0VSO1xuICAgIH0sXG4gICAgVU5BVkFJTEFCTEVfTUFSS0VSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFVOQVZBSUxBQkxFX01BUktFUjtcbiAgICB9LFxuICAgIGZvcndhcmRFcnJvckxvZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkRXJyb3JMb2c7XG4gICAgfSxcbiAgICBmb3J3YXJkVW5oYW5kbGVkRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZm9yd2FyZFVuaGFuZGxlZEVycm9yO1xuICAgIH0sXG4gICAgaW5pdGlhbGl6ZURlYnVnTG9nRm9yd2FyZGluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbml0aWFsaXplRGVidWdMb2dGb3J3YXJkaW5nO1xuICAgIH0sXG4gICAgaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzVGVybWluYWxMb2dnaW5nRW5hYmxlZDtcbiAgICB9LFxuICAgIGxvZ1F1ZXVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGxvZ1F1ZXVlO1xuICAgIH0sXG4gICAgbG9nU3RyaW5naWZ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGxvZ1N0cmluZ2lmeTtcbiAgICB9LFxuICAgIGxvZ1VuaGFuZGxlZFJlamVjdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBsb2dVbmhhbmRsZWRSZWplY3Rpb247XG4gICAgfSxcbiAgICBwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lO1xuICAgIH1cbn0pO1xuY29uc3QgX3NhZmVzdGFibGVzdHJpbmdpZnkgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3NhZmUtc3RhYmxlLXN0cmluZ2lmeVwiKTtcbmNvbnN0IF9zdGl0Y2hlZGVycm9yID0gcmVxdWlyZShcIi4vZXJyb3JzL3N0aXRjaGVkLWVycm9yXCIpO1xuY29uc3QgX2Vycm9yc291cmNlID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvZXJyb3Itc291cmNlXCIpO1xuY29uc3QgX3Rlcm1pbmFsbG9nZ2luZ2NvbmZpZyA9IHJlcXVpcmUoXCIuL3Rlcm1pbmFsLWxvZ2dpbmctY29uZmlnXCIpO1xuY29uc3QgX2ZvcndhcmRsb2dzc2hhcmVkID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9mb3J3YXJkLWxvZ3Mtc2hhcmVkXCIpO1xuY29uc3QgdGVybWluYWxMb2dnaW5nQ29uZmlnID0gKDAsIF90ZXJtaW5hbGxvZ2dpbmdjb25maWcuZ2V0VGVybWluYWxMb2dnaW5nQ29uZmlnKSgpO1xuY29uc3QgUFJPTUlTRV9NQVJLRVIgPSAnUHJvbWlzZSB7fSc7XG5jb25zdCBVTkFWQUlMQUJMRV9NQVJLRVIgPSAnW1VuYWJsZSB0byB2aWV3XSc7XG5jb25zdCBtYXhpbXVtRGVwdGggPSB0eXBlb2YgdGVybWluYWxMb2dnaW5nQ29uZmlnID09PSAnb2JqZWN0JyAmJiB0ZXJtaW5hbExvZ2dpbmdDb25maWcuZGVwdGhMaW1pdCA/IHRlcm1pbmFsTG9nZ2luZ0NvbmZpZy5kZXB0aExpbWl0IDogNTtcbmNvbnN0IG1heGltdW1CcmVhZHRoID0gdHlwZW9mIHRlcm1pbmFsTG9nZ2luZ0NvbmZpZyA9PT0gJ29iamVjdCcgJiYgdGVybWluYWxMb2dnaW5nQ29uZmlnLmVkZ2VMaW1pdCA/IHRlcm1pbmFsTG9nZ2luZ0NvbmZpZy5lZGdlTGltaXQgOiAxMDA7XG5jb25zdCBzdHJpbmdpZnkgPSAoMCwgX3NhZmVzdGFibGVzdHJpbmdpZnkuY29uZmlndXJlKSh7XG4gICAgbWF4aW11bURlcHRoLFxuICAgIG1heGltdW1CcmVhZHRoXG59KTtcbmNvbnN0IGlzVGVybWluYWxMb2dnaW5nRW5hYmxlZCA9ICgwLCBfdGVybWluYWxsb2dnaW5nY29uZmlnLmdldElzVGVybWluYWxMb2dnaW5nRW5hYmxlZCkoKTtcbmNvbnN0IG1ldGhvZHMgPSBbXG4gICAgJ2xvZycsXG4gICAgJ2luZm8nLFxuICAgICd3YXJuJyxcbiAgICAnZGVidWcnLFxuICAgICd0YWJsZScsXG4gICAgJ2Fzc2VydCcsXG4gICAgJ2RpcicsXG4gICAgJ2RpcnhtbCcsXG4gICAgJ2dyb3VwJyxcbiAgICAnZ3JvdXBDb2xsYXBzZWQnLFxuICAgICdncm91cEVuZCcsXG4gICAgJ3RyYWNlJ1xuXTtcbmZ1bmN0aW9uIHByZUxvZ1NlcmlhbGl6YXRpb25DbG9uZSh2YWx1ZSwgc2Vlbikge1xuICAgIGlmIChzZWVuID09PSB2b2lkIDApIHNlZW4gPSBuZXcgV2Vha01hcCgpO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gX2ZvcndhcmRsb2dzc2hhcmVkLlVOREVGSU5FRF9NQVJLRVI7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiB2YWx1ZTtcbiAgICBpZiAoc2Vlbi5oYXModmFsdWUpKSByZXR1cm4gc2Vlbi5nZXQodmFsdWUpO1xuICAgIHRyeSB7XG4gICAgICAgIE9iamVjdC5rZXlzKHZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBVTkFWQUlMQUJMRV9NQVJLRVI7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIFBST01JU0VfTUFSS0VSO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIFVOQVZBSUxBQkxFX01BUktFUjtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IG91dCA9IFtdO1xuICAgICAgICBzZWVuLnNldCh2YWx1ZSwgb3V0KTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKXtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgb3V0LnB1c2gocHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKGl0ZW0sIHNlZW4pKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBvdXQucHVzaChVTkFWQUlMQUJMRV9NQVJLRVIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuICAgIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKTtcbiAgICBpZiAocHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUgfHwgcHJvdG8gPT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgIHNlZW4uc2V0KHZhbHVlLCBvdXQpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZSkpe1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvdXRba2V5XSA9IHByZUxvZ1NlcmlhbGl6YXRpb25DbG9uZSh2YWx1ZVtrZXldLCBzZWVuKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBvdXRba2V5XSA9IFVOQVZBSUxBQkxFX01BUktFUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTtcbn1cbmNvbnN0IGxvZ1N0cmluZ2lmeSA9IChkYXRhKT0+e1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCAhPSBudWxsID8gcmVzdWx0IDogJ1wiJyArIFVOQVZBSUxBQkxFX01BUktFUiArICdcIic7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gJ1wiJyArIFVOQVZBSUxBQkxFX01BUktFUiArICdcIic7XG4gICAgfVxufTtcbmNvbnN0IGFmdGVyVGhpc0ZyYW1lID0gKGNiKT0+e1xuICAgIGxldCB0aW1lb3V0O1xuICAgIGNvbnN0IHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57XG4gICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICBjYigpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gKCk9PntcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgfTtcbn07XG5sZXQgaXNQYXRjaGVkID0gZmFsc2U7XG5jb25zdCBzZXJpYWxpemVFbnRyaWVzID0gKGVudHJpZXMpPT5lbnRyaWVzLm1hcCgoY2xpZW50RW50cnkpPT57XG4gICAgICAgIHN3aXRjaChjbGllbnRFbnRyeS5raW5kKXtcbiAgICAgICAgICAgIGNhc2UgJ2FueS1sb2dnZWQtZXJyb3InOlxuICAgICAgICAgICAgY2FzZSAnY29uc29sZSc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY2xpZW50RW50cnksXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBjbGllbnRFbnRyeS5hcmdzLm1hcChzdHJpbmdpZnlVc2VyQXJnKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2Zvcm1hdHRlZC1lcnJvcic6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2xpZW50RW50cnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuY29uc3QgbG9nUXVldWUgPSB7XG4gICAgZW50cmllczogW10sXG4gICAgZmx1c2hTY2hlZHVsZWQ6IGZhbHNlLFxuICAgIGNhbmNlbEZsdXNoOiBudWxsLFxuICAgIHNvY2tldDogbnVsbCxcbiAgICBzb3VyY2VUeXBlOiB1bmRlZmluZWQsXG4gICAgcm91dGVyOiBudWxsLFxuICAgIHNjaGVkdWxlTG9nU2VuZDogKGVudHJ5KT0+e1xuICAgICAgICBsb2dRdWV1ZS5lbnRyaWVzLnB1c2goZW50cnkpO1xuICAgICAgICBpZiAobG9nUXVldWUuZmx1c2hTY2hlZHVsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBzYWZlIHRvIGRlcmVmIGFuZCB1c2UgaW4gc2V0VGltZW91dCBjbG9zdXJlIHNpbmNlIHdlIGNhbmNlbCBvbiBuZXcgc29ja2V0XG4gICAgICAgIGNvbnN0IHNvY2tldCA9IGxvZ1F1ZXVlLnNvY2tldDtcbiAgICAgICAgaWYgKCFzb2NrZXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyB3ZSBwcm9iYWJseSBkb250IG5lZWQgdGhpc1xuICAgICAgICBsb2dRdWV1ZS5mbHVzaFNjaGVkdWxlZCA9IHRydWU7XG4gICAgICAgIC8vIG5vbiBibG9ja2luZyBsb2cgZmx1c2gsIHJ1bnMgYXQgbW9zdCBvbmNlIHBlciBmcmFtZVxuICAgICAgICBsb2dRdWV1ZS5jYW5jZWxGbHVzaCA9IGFmdGVyVGhpc0ZyYW1lKCgpPT57XG4gICAgICAgICAgICBsb2dRdWV1ZS5mbHVzaFNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8ganVzdCBpbmNhc2VcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ6ICdicm93c2VyLWxvZ3MnLFxuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzOiBzZXJpYWxpemVFbnRyaWVzKGxvZ1F1ZXVlLmVudHJpZXMpLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZXI6IGxvZ1F1ZXVlLnJvdXRlcixcbiAgICAgICAgICAgICAgICAgICAgLy8gbmVlZGVkIGZvciBzb3VyY2UgbWFwcGluZywgd2UganVzdCBhc3NpZ24gdGhlIHNvdXJjZVR5cGUgZnJvbSB0aGUgbGFzdCBlcnJvciBmb3IgdGhlIHdob2xlIGJhdGNoXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZVR5cGU6IGxvZ1F1ZXVlLnNvdXJjZVR5cGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzb2NrZXQuc2VuZChwYXlsb2FkKTtcbiAgICAgICAgICAgICAgICBsb2dRdWV1ZS5lbnRyaWVzID0gW107XG4gICAgICAgICAgICAgICAgbG9nUXVldWUuc291cmNlVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIGVycm9yIChtYWtlIHN1cmUgdSBkb24ndCBpbmZpbml0ZSBsb29wKVxuICAgICAgICAgICAgLyogbm9vcCAqLyB9XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgb25Tb2NrZXRSZWFkeTogKHNvY2tldCk9PntcbiAgICAgICAgaWYgKHNvY2tldC5yZWFkeVN0YXRlICE9PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgICAgICAgLy8gaW52YXJpYW50XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gaW5jYXNlIGFuIGV4aXN0aW5nIHRpbWVvdXQgd2FzIGdvaW5nIHRvIHJ1biB3aXRoIGEgc3RhbGUgc29ja2V0XG4gICAgICAgIGxvZ1F1ZXVlLmNhbmNlbEZsdXNoID09IG51bGwgPyB2b2lkIDAgOiBsb2dRdWV1ZS5jYW5jZWxGbHVzaC5jYWxsKGxvZ1F1ZXVlKTtcbiAgICAgICAgbG9nUXVldWUuc29ja2V0ID0gc29ja2V0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBldmVudDogJ2Jyb3dzZXItbG9ncycsXG4gICAgICAgICAgICAgICAgZW50cmllczogc2VyaWFsaXplRW50cmllcyhsb2dRdWV1ZS5lbnRyaWVzKSxcbiAgICAgICAgICAgICAgICByb3V0ZXI6IGxvZ1F1ZXVlLnJvdXRlcixcbiAgICAgICAgICAgICAgICBzb3VyY2VUeXBlOiBsb2dRdWV1ZS5zb3VyY2VUeXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNvY2tldC5zZW5kKHBheWxvYWQpO1xuICAgICAgICAgICAgbG9nUXVldWUuZW50cmllcyA9IFtdO1xuICAgICAgICAgICAgbG9nUXVldWUuc291cmNlVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvKiogbm9vcCBqdXN0IGluY2FzZSAqLyB9XG4gICAgfVxufTtcbmNvbnN0IHN0cmluZ2lmeVVzZXJBcmcgPSAoYXJnKT0+e1xuICAgIGlmIChhcmcua2luZCAhPT0gJ2FyZycpIHtcbiAgICAgICAgcmV0dXJuIGFyZztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYXJnLFxuICAgICAgICBkYXRhOiBsb2dTdHJpbmdpZnkoYXJnLmRhdGEpXG4gICAgfTtcbn07XG5jb25zdCBjcmVhdGVFcnJvckFyZyA9IChlcnJvcik9PntcbiAgICBjb25zdCBzdGFjayA9IHN0YWNrV2l0aE93bmVycyhlcnJvcik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogJ2Zvcm1hdHRlZC1lcnJvci1hcmcnLFxuICAgICAgICBwcmVmaXg6IGVycm9yLm1lc3NhZ2UgPyBlcnJvci5uYW1lICsgXCI6IFwiICsgZXJyb3IubWVzc2FnZSA6IFwiXCIgKyBlcnJvci5uYW1lLFxuICAgICAgICBzdGFja1xuICAgIH07XG59O1xuY29uc3QgY3JlYXRlTG9nRW50cnkgPSAobGV2ZWwsIGFyZ3MpPT57XG4gICAgLy8gZG8gbm90IGFic3RyYWN0IHRoaXMsIGl0IGltcGxpY2l0bHkgcmVsaWVzIG9uIHdoaWNoIGZ1bmN0aW9ucyBjYWxsIGl0LiBmb3JjaW5nIHRoZSBpbmxpbmVkIGltcGxlbWVudGF0aW9uIG1ha2VzIHlvdSB0aGluayBhYm91dCBjYWxsZXJzXG4gICAgLy8gZXJyb3IgY2FwdHVyZSBzdGFjayB0cmFjZSBtYXliZVxuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tXaXRoT3duZXJzKG5ldyBFcnJvcigpKTtcbiAgICBjb25zdCBzdGFja0xpbmVzID0gc3RhY2sgPT0gbnVsbCA/IHZvaWQgMCA6IHN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCBjbGVhblN0YWNrID0gc3RhY2tMaW5lcyA9PSBudWxsID8gdm9pZCAwIDogc3RhY2tMaW5lcy5zbGljZSgzKS5qb2luKCdcXG4nKSAvLyB0aGlzIGlzIHByb2JhYmx5IGlnbm9yZWQgYW55d2F5c1xuICAgIDtcbiAgICBjb25zdCBlbnRyeSA9IHtcbiAgICAgICAga2luZDogJ2NvbnNvbGUnLFxuICAgICAgICBjb25zb2xlTWV0aG9kU3RhY2s6IGNsZWFuU3RhY2sgIT0gbnVsbCA/IGNsZWFuU3RhY2sgOiBudWxsLFxuICAgICAgICBtZXRob2Q6IGxldmVsLFxuICAgICAgICBhcmdzOiBhcmdzLm1hcCgoYXJnKT0+e1xuICAgICAgICAgICAgaWYgKGFyZyBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUVycm9yQXJnKGFyZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGtpbmQ6ICdhcmcnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHByZUxvZ1NlcmlhbGl6YXRpb25DbG9uZShhcmcpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgIH07XG4gICAgbG9nUXVldWUuc2NoZWR1bGVMb2dTZW5kKGVudHJ5KTtcbn07XG5jb25zdCBmb3J3YXJkRXJyb3JMb2cgPSAoYXJncyk9PntcbiAgICBjb25zdCBlcnJvck9iamVjdHMgPSBhcmdzLmZpbHRlcigoYXJnKT0+YXJnIGluc3RhbmNlb2YgRXJyb3IpO1xuICAgIGNvbnN0IGZpcnN0ID0gZXJyb3JPYmplY3RzLmF0KDApO1xuICAgIGlmIChmaXJzdCkge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSAoMCwgX2Vycm9yc291cmNlLmdldEVycm9yU291cmNlKShmaXJzdCk7XG4gICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgIGxvZ1F1ZXVlLnNvdXJjZVR5cGUgPSBzb3VyY2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAqIGJyb3dzZXIgc2hvd3Mgc3RhY2sgcmVnYXJkbGVzcyBvZiB0eXBlIG9mIGRhdGEgcGFzc2VkIHRvIGNvbnNvbGUuZXJyb3IsIHNvIHdlIHNob3VsZCBkbyB0aGUgc2FtZVxuICAgKlxuICAgKiBkbyBub3QgYWJzdHJhY3QgdGhpcywgaXQgaW1wbGljaXRseSByZWxpZXMgb24gd2hpY2ggZnVuY3Rpb25zIGNhbGwgaXQuIGZvcmNpbmcgdGhlIGlubGluZWQgaW1wbGVtZW50YXRpb24gbWFrZXMgeW91IHRoaW5rIGFib3V0IGNhbGxlcnNcbiAgICovIGNvbnN0IHN0YWNrID0gc3RhY2tXaXRoT3duZXJzKG5ldyBFcnJvcigpKTtcbiAgICBjb25zdCBzdGFja0xpbmVzID0gc3RhY2sgPT0gbnVsbCA/IHZvaWQgMCA6IHN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCBjbGVhblN0YWNrID0gc3RhY2tMaW5lcyA9PSBudWxsID8gdm9pZCAwIDogc3RhY2tMaW5lcy5zbGljZSgzKS5qb2luKCdcXG4nKTtcbiAgICBjb25zdCBlbnRyeSA9IHtcbiAgICAgICAga2luZDogJ2FueS1sb2dnZWQtZXJyb3InLFxuICAgICAgICBtZXRob2Q6ICdlcnJvcicsXG4gICAgICAgIGNvbnNvbGVFcnJvclN0YWNrOiBjbGVhblN0YWNrICE9IG51bGwgPyBjbGVhblN0YWNrIDogJycsXG4gICAgICAgIGFyZ3M6IGFyZ3MubWFwKChhcmcpPT57XG4gICAgICAgICAgICBpZiAoYXJnIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRXJyb3JBcmcoYXJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAga2luZDogJ2FyZycsXG4gICAgICAgICAgICAgICAgZGF0YTogcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKGFyZylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgfTtcbiAgICBsb2dRdWV1ZS5zY2hlZHVsZUxvZ1NlbmQoZW50cnkpO1xufTtcbmNvbnN0IGNyZWF0ZVVuY2F1Z2h0RXJyb3JFbnRyeSA9IChlcnJvck5hbWUsIGVycm9yTWVzc2FnZSwgZnVsbFN0YWNrKT0+e1xuICAgIGNvbnN0IGVudHJ5ID0ge1xuICAgICAgICBraW5kOiAnZm9ybWF0dGVkLWVycm9yJyxcbiAgICAgICAgcHJlZml4OiBcIlVuY2F1Z2h0IFwiICsgZXJyb3JOYW1lICsgXCI6IFwiICsgZXJyb3JNZXNzYWdlLFxuICAgICAgICBzdGFjazogZnVsbFN0YWNrLFxuICAgICAgICBtZXRob2Q6ICdlcnJvcidcbiAgICB9O1xuICAgIGxvZ1F1ZXVlLnNjaGVkdWxlTG9nU2VuZChlbnRyeSk7XG59O1xuY29uc3Qgc3RhY2tXaXRoT3duZXJzID0gKGVycm9yKT0+e1xuICAgIGxldCBvd25lclN0YWNrID0gJyc7XG4gICAgKDAsIF9zdGl0Y2hlZGVycm9yLnNldE93bmVyU3RhY2tJZkF2YWlsYWJsZSkoZXJyb3IpO1xuICAgIG93bmVyU3RhY2sgPSAoMCwgX3N0aXRjaGVkZXJyb3IuZ2V0T3duZXJTdGFjaykoZXJyb3IpIHx8ICcnO1xuICAgIGNvbnN0IHN0YWNrID0gKGVycm9yLnN0YWNrIHx8ICcnKSArIG93bmVyU3RhY2s7XG4gICAgcmV0dXJuIHN0YWNrO1xufTtcbmZ1bmN0aW9uIGxvZ1VuaGFuZGxlZFJlamVjdGlvbihyZWFzb24pIHtcbiAgICBpZiAocmVhc29uIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY3JlYXRlVW5oYW5kbGVkUmVqZWN0aW9uRXJyb3JFbnRyeShyZWFzb24sIHN0YWNrV2l0aE93bmVycyhyZWFzb24pKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjcmVhdGVVbmhhbmRsZWRSZWplY3Rpb25Ob25FcnJvckVudHJ5KHJlYXNvbik7XG59XG5jb25zdCBjcmVhdGVVbmhhbmRsZWRSZWplY3Rpb25FcnJvckVudHJ5ID0gKGVycm9yLCBmdWxsU3RhY2spPT57XG4gICAgY29uc3Qgc291cmNlID0gKDAsIF9lcnJvcnNvdXJjZS5nZXRFcnJvclNvdXJjZSkoZXJyb3IpO1xuICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgbG9nUXVldWUuc291cmNlVHlwZSA9IHNvdXJjZTtcbiAgICB9XG4gICAgY29uc3QgZW50cnkgPSB7XG4gICAgICAgIGtpbmQ6ICdmb3JtYXR0ZWQtZXJyb3InLFxuICAgICAgICBwcmVmaXg6IFwi4qivIHVuaGFuZGxlZFJlamVjdGlvbjogXCIgKyBlcnJvci5uYW1lICsgXCI6IFwiICsgZXJyb3IubWVzc2FnZSxcbiAgICAgICAgc3RhY2s6IGZ1bGxTdGFjayxcbiAgICAgICAgbWV0aG9kOiAnZXJyb3InXG4gICAgfTtcbiAgICBsb2dRdWV1ZS5zY2hlZHVsZUxvZ1NlbmQoZW50cnkpO1xufTtcbmNvbnN0IGNyZWF0ZVVuaGFuZGxlZFJlamVjdGlvbk5vbkVycm9yRW50cnkgPSAocmVhc29uKT0+e1xuICAgIGNvbnN0IGVudHJ5ID0ge1xuICAgICAgICBraW5kOiAnYW55LWxvZ2dlZC1lcnJvcicsXG4gICAgICAgIC8vIHdlIGNhbid0IGFjY2VzcyB0aGUgc3RhY2sgc2luY2UgdGhlIGV2ZW50IGlzIGRpc3BhdGNoZWQgYXN5bmMgYW5kIGNyZWF0aW5nIGFuIGlubGluZSBlcnJvciB3b3VsZCBiZSBtZWFuaW5nbGVzc1xuICAgICAgICBjb25zb2xlRXJyb3JTdGFjazogJycsXG4gICAgICAgIG1ldGhvZDogJ2Vycm9yJyxcbiAgICAgICAgYXJnczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtpbmQ6ICdhcmcnLFxuICAgICAgICAgICAgICAgIGRhdGE6IFwi4qivIHVuaGFuZGxlZFJlamVjdGlvbjpcIixcbiAgICAgICAgICAgICAgICBpc1JlamVjdGlvbk1lc3NhZ2U6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2luZDogJ2FyZycsXG4gICAgICAgICAgICAgICAgZGF0YTogcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKHJlYXNvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH07XG4gICAgbG9nUXVldWUuc2NoZWR1bGVMb2dTZW5kKGVudHJ5KTtcbn07XG5jb25zdCBpc0hNUiA9IChhcmdzKT0+e1xuICAgIGNvbnN0IGZpcnN0QXJnID0gYXJnc1swXTtcbiAgICBpZiAodHlwZW9mIGZpcnN0QXJnICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChmaXJzdEFyZy5zdGFydHNXaXRoKCdbRmFzdCBSZWZyZXNoXScpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoZmlyc3RBcmcuc3RhcnRzV2l0aCgnW0hNUl0nKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcbmNvbnN0IGlzSWdub3JlZExvZyA9IChhcmdzKT0+e1xuICAgIGlmIChhcmdzLmxlbmd0aCA8IDMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBbZm9ybWF0LCBzdHlsZXMsIGxhYmVsXSA9IGFyZ3M7XG4gICAgaWYgKHR5cGVvZiBmb3JtYXQgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBzdHlsZXMgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBsYWJlbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBraW5kYSBoYWNreSwgd2Ugc2hvdWxkIGRlZmluZSBhIGNvbW1vbiBmb3JtYXQgZm9yIHRoZXNlIHN0cmluZ3Mgc28gd2UgY2FuIHNhZmVseSBpZ25vcmVcbiAgICByZXR1cm4gZm9ybWF0LnN0YXJ0c1dpdGgoJyVjJXMlYycpICYmIHN0eWxlcy5pbmNsdWRlcygnYmFja2dyb3VuZDonKTtcbn07XG5mdW5jdGlvbiBmb3J3YXJkVW5oYW5kbGVkRXJyb3IoZXJyb3IpIHtcbiAgICBjcmVhdGVVbmNhdWdodEVycm9yRW50cnkoZXJyb3IubmFtZSwgZXJyb3IubWVzc2FnZSwgc3RhY2tXaXRoT3duZXJzKGVycm9yKSk7XG59XG5jb25zdCBpbml0aWFsaXplRGVidWdMb2dGb3J3YXJkaW5nID0gKHJvdXRlcik9PntcbiAgICAvLyBwcm9iYWJseSBkb24ndCBuZWVkIHRoaXNcbiAgICBpZiAoaXNQYXRjaGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gVE9ETyhyb2IpOiB3aHkgZG9lcyB0aGlzIGJyZWFrIHJlbmRlcmluZyBvbiBzZXJ2ZXIsIGltcG9ydGFudCB0byBrbm93IGluY2FzZSB0aGUgc2FtZSBidWcgYXBwZWFycyBpbiBicm93c2VyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gYmV0dGVyIHRvIGJlIHNhZmUgdGhhbiBzb3JyeVxuICAgIHRyeSB7XG4gICAgICAgIG1ldGhvZHMuZm9yRWFjaCgobWV0aG9kKT0+KDAsIF9mb3J3YXJkbG9nc3NoYXJlZC5wYXRjaENvbnNvbGVNZXRob2QpKG1ldGhvZCwgZnVuY3Rpb24oXykge1xuICAgICAgICAgICAgICAgIGZvcih2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNITVIoYXJncykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNJZ25vcmVkTG9nKGFyZ3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3JlYXRlTG9nRW50cnkobWV0aG9kLCBhcmdzKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICAgIGxvZ1F1ZXVlLnJvdXRlciA9IHJvdXRlcjtcbiAgICBpc1BhdGNoZWQgPSB0cnVlO1xufTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9yd2FyZC1sb2dzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js":
|
||
/*!*************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js ***!
|
||
\*************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \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 SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE: function() {\n return SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE;\n },\n SegmentBoundaryTriggerNode: function() {\n return SegmentBoundaryTriggerNode;\n },\n SegmentStateProvider: function() {\n return SegmentStateProvider;\n },\n SegmentViewNode: function() {\n return SegmentViewNode;\n },\n SegmentViewStateNode: function() {\n return SegmentViewStateNode;\n },\n useSegmentState: function() {\n return useSegmentState;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _notfound = __webpack_require__(/*! ../../../client/components/not-found */ \"(ssr)/./node_modules/next/dist/client/components/not-found.js\");\nconst SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE = 'NEXT_DEVTOOLS_SIMULATED_ERROR';\nfunction SegmentTrieNode(param) {\n let { type, pagePath } = param;\n const { boundaryType, setBoundaryType } = useSegmentState();\n const nodeState = (0, _react.useMemo)(()=>{\n return {\n type,\n pagePath,\n boundaryType,\n setBoundaryType\n };\n }, [\n type,\n pagePath,\n boundaryType,\n setBoundaryType\n ]);\n // Use `useLayoutEffect` to ensure the state is updated during suspense.\n // `useEffect` won't work as the state is preserved during suspense.\n (0, _react.useLayoutEffect)(()=>{\n _nextdevtools.dispatcher.segmentExplorerNodeAdd(nodeState);\n return ()=>{\n _nextdevtools.dispatcher.segmentExplorerNodeRemove(nodeState);\n };\n }, [\n nodeState\n ]);\n return null;\n}\nfunction NotFoundSegmentNode() {\n (0, _notfound.notFound)();\n}\nfunction ErrorSegmentNode() {\n throw Object.defineProperty(new Error(SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\nconst forever = new Promise(()=>{});\nfunction LoadingSegmentNode() {\n (0, _react.use)(forever);\n return null;\n}\nfunction SegmentViewStateNode(param) {\n let { page } = param;\n (0, _react.useLayoutEffect)(()=>{\n _nextdevtools.dispatcher.segmentExplorerUpdateRouteState(page);\n return ()=>{\n _nextdevtools.dispatcher.segmentExplorerUpdateRouteState('');\n };\n }, [\n page\n ]);\n return null;\n}\nfunction SegmentBoundaryTriggerNode() {\n const { boundaryType } = useSegmentState();\n let segmentNode = null;\n if (boundaryType === 'loading') {\n segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingSegmentNode, {});\n } else if (boundaryType === 'not-found') {\n segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(NotFoundSegmentNode, {});\n } else if (boundaryType === 'error') {\n segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorSegmentNode, {});\n }\n return segmentNode;\n}\nfunction SegmentViewNode(param) {\n let { type, pagePath, children } = param;\n const segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentTrieNode, {\n type: type,\n pagePath: pagePath\n }, type);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n segmentNode,\n children\n ]\n });\n}\nconst SegmentStateContext = /*#__PURE__*/ (0, _react.createContext)({\n boundaryType: null,\n setBoundaryType: ()=>{}\n});\nfunction SegmentStateProvider(param) {\n let { children } = param;\n const [boundaryType, setBoundaryType] = (0, _react.useState)(null);\n const [errorBoundaryKey, setErrorBoundaryKey] = (0, _react.useState)(0);\n const reloadBoundary = (0, _react.useCallback)(()=>setErrorBoundaryKey((prev)=>prev + 1), []);\n const setBoundaryTypeAndReload = (0, _react.useCallback)((type)=>{\n if (type === null) {\n reloadBoundary();\n }\n setBoundaryType(type);\n }, [\n reloadBoundary\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentStateContext.Provider, {\n value: {\n boundaryType,\n setBoundaryType: setBoundaryTypeAndReload\n },\n children: children\n }, errorBoundaryKey);\n}\nfunction useSegmentState() {\n return (0, _react.useContext)(SegmentStateContext);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=segment-explorer-node.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBcUJhQSx3Q0FBd0M7ZUFBeENBOztJQStER0MsMEJBQTBCO2VBQTFCQTs7SUEwQ0FDLG9CQUFvQjtlQUFwQkE7O0lBN0JBQyxlQUFlO2VBQWZBOztJQXZCQUMsb0JBQW9CO2VBQXBCQTs7SUFzRkFDLGVBQWU7ZUFBZkE7Ozs7bUNBdEpUOzBDQUVvQjtzQ0FDRjtBQVFsQixNQUFNTCwyQ0FDWDtBQVNGLFNBQVNNLGdCQUFnQixLQU14QjtJQU53QixNQUN2QkMsSUFBSSxFQUNKQyxRQUFRLEVBSVQsR0FOd0I7SUFPdkIsTUFBTSxFQUFFQyxZQUFZLEVBQUVDLGVBQWUsRUFBRSxHQUFHTDtJQUMxQyxNQUFNTSxZQUE4QkMsQ0FBQUEsR0FBQUEsT0FBQUEsT0FBQUEsRUFBUTtRQUMxQyxPQUFPO1lBQ0xMO1lBQ0FDO1lBQ0FDO1lBQ0FDO1FBQ0Y7SUFDRixHQUFHO1FBQUNIO1FBQU1DO1FBQVVDO1FBQWNDO0tBQWdCO0lBRWxELHdFQUF3RTtJQUN4RSxvRUFBb0U7SUFDcEVHLENBQUFBLEdBQUFBLE9BQUFBLGVBQUFBLEVBQWdCO1FBQ2RDLGNBQUFBLFVBQVUsQ0FBQ0Msc0JBQXNCLENBQUNKO1FBQ2xDLE9BQU87WUFDTEcsY0FBQUEsVUFBVSxDQUFDRSx5QkFBeUIsQ0FBQ0w7UUFDdkM7SUFDRixHQUFHO1FBQUNBO0tBQVU7SUFFZCxPQUFPO0FBQ1Q7QUFFQSxTQUFTTTtJQUNQQyxDQUFBQSxHQUFBQSxVQUFBQSxRQUFBQTtBQUNGO0FBRUEsU0FBU0M7SUFDUCxNQUFNLHFCQUFtRCxDQUFuRCxJQUFJQyxNQUFNcEIsMkNBQVY7ZUFBQTtvQkFBQTtzQkFBQTtJQUFrRDtBQUMxRDtBQUVBLE1BQU1xQixVQUFVLElBQUlDLFFBQVEsS0FBTztBQUNuQyxTQUFTQztJQUNQQyxDQUFBQSxHQUFBQSxPQUFBQSxHQUFBQSxFQUFJSDtJQUNKLE9BQU87QUFDVDtBQUVPLFNBQVNqQixxQkFBcUIsS0FBMEI7SUFBMUIsTUFBRXFCLElBQUksRUFBb0IsR0FBMUI7SUFDbkNaLENBQUFBLEdBQUFBLE9BQUFBLGVBQUFBLEVBQWdCO1FBQ2RDLGNBQUFBLFVBQVUsQ0FBQ1ksK0JBQStCLENBQUNEO1FBQzNDLE9BQU87WUFDTFgsY0FBQUEsVUFBVSxDQUFDWSwrQkFBK0IsQ0FBQztRQUM3QztJQUNGLEdBQUc7UUFBQ0Q7S0FBSztJQUNULE9BQU87QUFDVDtBQUVPLFNBQVN4QjtJQUNkLE1BQU0sRUFBRVEsWUFBWSxFQUFFLEdBQUdKO0lBQ3pCLElBQUlzQixjQUErQjtJQUNuQyxJQUFJbEIsaUJBQWlCLFdBQVc7UUFDOUJrQixjQUFBQSxXQUFBQSxHQUFjLHFCQUFDSixvQkFBQUEsQ0FBQUE7SUFDakIsT0FBTyxJQUFJZCxpQkFBaUIsYUFBYTtRQUN2Q2tCLGNBQUFBLFdBQUFBLEdBQWMscUJBQUNWLHFCQUFBQSxDQUFBQTtJQUNqQixPQUFPLElBQUlSLGlCQUFpQixTQUFTO1FBQ25Da0IsY0FBYyxXQUFkQSxHQUFjLHFCQUFDUixrQkFBQUEsQ0FBQUE7SUFDakI7SUFDQSxPQUFPUTtBQUNUO0FBRU8sU0FBU3hCLGdCQUFnQixLQVEvQjtJQVIrQixNQUM5QkksSUFBSSxFQUNKQyxRQUFRLEVBQ1JvQixRQUFRLEVBS1QsR0FSK0I7SUFTOUIsTUFBTUQsY0FDSixXQURJQSxHQUNKLHFCQUFDckIsaUJBQUFBO1FBQTJCQyxNQUFNQTtRQUFNQyxVQUFVQTtPQUE1QkQ7SUFHeEIscUJBQ0U7O1lBQ0dvQjtZQUNBQzs7O0FBR1A7QUFFQSxNQUFNQyxzQkFBQUEsV0FBQUEsR0FBc0JDLENBQUFBLEdBQUFBLE9BQUFBLGFBQUFBLEVBR3pCO0lBQ0RyQixjQUFjO0lBQ2RDLGlCQUFpQixLQUFPO0FBQzFCO0FBRU8sU0FBU1IscUJBQXFCLEtBQXFDO0lBQXJDLE1BQUUwQixRQUFRLEVBQTJCLEdBQXJDO0lBQ25DLE1BQU0sQ0FBQ25CLGNBQWNDLGdCQUFnQixHQUFHcUIsQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFDdEM7SUFHRixNQUFNLENBQUNDLGtCQUFrQkMsb0JBQW9CLEdBQUdGLENBQUFBLEdBQUFBLE9BQUFBLFFBQUFBLEVBQVM7SUFDekQsTUFBTUcsaUJBQWlCQyxDQUFBQSxHQUFBQSxPQUFBQSxXQUFBQSxFQUNyQixJQUFNRixvQkFBb0IsQ0FBQ0csT0FBU0EsT0FBTyxJQUMzQyxFQUFFO0lBR0osTUFBTUMsMkJBQTJCRixDQUFBQSxHQUFBQSxPQUFBQSxXQUFBQSxFQUMvQixDQUFDNUI7UUFDQyxJQUFJQSxTQUFTLE1BQU07WUFDakIyQjtRQUNGO1FBQ0F4QixnQkFBZ0JIO0lBQ2xCLEdBQ0E7UUFBQzJCO0tBQWU7SUFHbEIscUJBQ0UscUJBQUNMLG9CQUFvQlMsUUFBUTtRQUUzQkMsT0FBTztZQUNMOUI7WUFDQUMsaUJBQWlCMkI7UUFDbkI7a0JBRUNUO09BTklJO0FBU1g7QUFFTyxTQUFTM0I7SUFDZCxPQUFPbUMsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV1g7QUFDcEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICB1c2VTdGF0ZSxcbiAgY3JlYXRlQ29udGV4dCxcbiAgdXNlQ29udGV4dCxcbiAgdXNlLFxuICB1c2VNZW1vLFxuICB1c2VDYWxsYmFjayxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGRpc3BhdGNoZXIgfSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1kZXZ0b29scydcbmltcG9ydCB7IG5vdEZvdW5kIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kJ1xuXG5leHBvcnQgdHlwZSBTZWdtZW50Qm91bmRhcnlUeXBlID1cbiAgfCAnbm90LWZvdW5kJ1xuICB8ICdlcnJvcidcbiAgfCAnbG9hZGluZydcbiAgfCAnZ2xvYmFsLWVycm9yJ1xuXG5leHBvcnQgY29uc3QgU0VHTUVOVF9FWFBMT1JFUl9TSU1VTEFURURfRVJST1JfTUVTU0FHRSA9XG4gICdORVhUX0RFVlRPT0xTX1NJTVVMQVRFRF9FUlJPUidcblxuZXhwb3J0IHR5cGUgU2VnbWVudE5vZGVTdGF0ZSA9IHtcbiAgdHlwZTogc3RyaW5nXG4gIHBhZ2VQYXRoOiBzdHJpbmdcbiAgYm91bmRhcnlUeXBlOiBzdHJpbmcgfCBudWxsXG4gIHNldEJvdW5kYXJ5VHlwZTogKHR5cGU6IFNlZ21lbnRCb3VuZGFyeVR5cGUgfCBudWxsKSA9PiB2b2lkXG59XG5cbmZ1bmN0aW9uIFNlZ21lbnRUcmllTm9kZSh7XG4gIHR5cGUsXG4gIHBhZ2VQYXRoLFxufToge1xuICB0eXBlOiBzdHJpbmdcbiAgcGFnZVBhdGg6IHN0cmluZ1xufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHsgYm91bmRhcnlUeXBlLCBzZXRCb3VuZGFyeVR5cGUgfSA9IHVzZVNlZ21lbnRTdGF0ZSgpXG4gIGNvbnN0IG5vZGVTdGF0ZTogU2VnbWVudE5vZGVTdGF0ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlLFxuICAgICAgcGFnZVBhdGgsXG4gICAgICBib3VuZGFyeVR5cGUsXG4gICAgICBzZXRCb3VuZGFyeVR5cGUsXG4gICAgfVxuICB9LCBbdHlwZSwgcGFnZVBhdGgsIGJvdW5kYXJ5VHlwZSwgc2V0Qm91bmRhcnlUeXBlXSlcblxuICAvLyBVc2UgYHVzZUxheW91dEVmZmVjdGAgdG8gZW5zdXJlIHRoZSBzdGF0ZSBpcyB1cGRhdGVkIGR1cmluZyBzdXNwZW5zZS5cbiAgLy8gYHVzZUVmZmVjdGAgd29uJ3Qgd29yayBhcyB0aGUgc3RhdGUgaXMgcHJlc2VydmVkIGR1cmluZyBzdXNwZW5zZS5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaGVyLnNlZ21lbnRFeHBsb3Jlck5vZGVBZGQobm9kZVN0YXRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkaXNwYXRjaGVyLnNlZ21lbnRFeHBsb3Jlck5vZGVSZW1vdmUobm9kZVN0YXRlKVxuICAgIH1cbiAgfSwgW25vZGVTdGF0ZV0pXG5cbiAgcmV0dXJuIG51bGxcbn1cblxuZnVuY3Rpb24gTm90Rm91bmRTZWdtZW50Tm9kZSgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBub3RGb3VuZCgpXG59XG5cbmZ1bmN0aW9uIEVycm9yU2VnbWVudE5vZGUoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgdGhyb3cgbmV3IEVycm9yKFNFR01FTlRfRVhQTE9SRVJfU0lNVUxBVEVEX0VSUk9SX01FU1NBR0UpXG59XG5cbmNvbnN0IGZvcmV2ZXIgPSBuZXcgUHJvbWlzZSgoKSA9PiB7fSlcbmZ1bmN0aW9uIExvYWRpbmdTZWdtZW50Tm9kZSgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICB1c2UoZm9yZXZlcilcbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNlZ21lbnRWaWV3U3RhdGVOb2RlKHsgcGFnZSB9OiB7IHBhZ2U6IHN0cmluZyB9KSB7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2hlci5zZWdtZW50RXhwbG9yZXJVcGRhdGVSb3V0ZVN0YXRlKHBhZ2UpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRpc3BhdGNoZXIuc2VnbWVudEV4cGxvcmVyVXBkYXRlUm91dGVTdGF0ZSgnJylcbiAgICB9XG4gIH0sIFtwYWdlXSlcbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlKCkge1xuICBjb25zdCB7IGJvdW5kYXJ5VHlwZSB9ID0gdXNlU2VnbWVudFN0YXRlKClcbiAgbGV0IHNlZ21lbnROb2RlOiBSZWFjdC5SZWFjdE5vZGUgPSBudWxsXG4gIGlmIChib3VuZGFyeVR5cGUgPT09ICdsb2FkaW5nJykge1xuICAgIHNlZ21lbnROb2RlID0gPExvYWRpbmdTZWdtZW50Tm9kZSAvPlxuICB9IGVsc2UgaWYgKGJvdW5kYXJ5VHlwZSA9PT0gJ25vdC1mb3VuZCcpIHtcbiAgICBzZWdtZW50Tm9kZSA9IDxOb3RGb3VuZFNlZ21lbnROb2RlIC8+XG4gIH0gZWxzZSBpZiAoYm91bmRhcnlUeXBlID09PSAnZXJyb3InKSB7XG4gICAgc2VnbWVudE5vZGUgPSA8RXJyb3JTZWdtZW50Tm9kZSAvPlxuICB9XG4gIHJldHVybiBzZWdtZW50Tm9kZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2VnbWVudFZpZXdOb2RlKHtcbiAgdHlwZSxcbiAgcGFnZVBhdGgsXG4gIGNoaWxkcmVuLFxufToge1xuICB0eXBlOiBzdHJpbmdcbiAgcGFnZVBhdGg6IHN0cmluZ1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHNlZ21lbnROb2RlID0gKFxuICAgIDxTZWdtZW50VHJpZU5vZGUga2V5PXt0eXBlfSB0eXBlPXt0eXBlfSBwYWdlUGF0aD17cGFnZVBhdGh9IC8+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7c2VnbWVudE5vZGV9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIClcbn1cblxuY29uc3QgU2VnbWVudFN0YXRlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8e1xuICBib3VuZGFyeVR5cGU6IFNlZ21lbnRCb3VuZGFyeVR5cGUgfCBudWxsXG4gIHNldEJvdW5kYXJ5VHlwZTogKHR5cGU6IFNlZ21lbnRCb3VuZGFyeVR5cGUgfCBudWxsKSA9PiB2b2lkXG59Pih7XG4gIGJvdW5kYXJ5VHlwZTogbnVsbCxcbiAgc2V0Qm91bmRhcnlUeXBlOiAoKSA9PiB7fSxcbn0pXG5cbmV4cG9ydCBmdW5jdGlvbiBTZWdtZW50U3RhdGVQcm92aWRlcih7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IFtib3VuZGFyeVR5cGUsIHNldEJvdW5kYXJ5VHlwZV0gPSB1c2VTdGF0ZTxTZWdtZW50Qm91bmRhcnlUeXBlIHwgbnVsbD4oXG4gICAgbnVsbFxuICApXG5cbiAgY29uc3QgW2Vycm9yQm91bmRhcnlLZXksIHNldEVycm9yQm91bmRhcnlLZXldID0gdXNlU3RhdGUoMClcbiAgY29uc3QgcmVsb2FkQm91bmRhcnkgPSB1c2VDYWxsYmFjayhcbiAgICAoKSA9PiBzZXRFcnJvckJvdW5kYXJ5S2V5KChwcmV2KSA9PiBwcmV2ICsgMSksXG4gICAgW11cbiAgKVxuXG4gIGNvbnN0IHNldEJvdW5kYXJ5VHlwZUFuZFJlbG9hZCA9IHVzZUNhbGxiYWNrKFxuICAgICh0eXBlOiBTZWdtZW50Qm91bmRhcnlUeXBlIHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgICAgcmVsb2FkQm91bmRhcnkoKVxuICAgICAgfVxuICAgICAgc2V0Qm91bmRhcnlUeXBlKHR5cGUpXG4gICAgfSxcbiAgICBbcmVsb2FkQm91bmRhcnldXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTZWdtZW50U3RhdGVDb250ZXh0LlByb3ZpZGVyXG4gICAgICBrZXk9e2Vycm9yQm91bmRhcnlLZXl9XG4gICAgICB2YWx1ZT17e1xuICAgICAgICBib3VuZGFyeVR5cGUsXG4gICAgICAgIHNldEJvdW5kYXJ5VHlwZTogc2V0Qm91bmRhcnlUeXBlQW5kUmVsb2FkLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9TZWdtZW50U3RhdGVDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWdtZW50U3RhdGUoKSB7XG4gIHJldHVybiB1c2VDb250ZXh0KFNlZ21lbnRTdGF0ZUNvbnRleHQpXG59XG4iXSwibmFtZXMiOlsiU0VHTUVOVF9FWFBMT1JFUl9TSU1VTEFURURfRVJST1JfTUVTU0FHRSIsIlNlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlIiwiU2VnbWVudFN0YXRlUHJvdmlkZXIiLCJTZWdtZW50Vmlld05vZGUiLCJTZWdtZW50Vmlld1N0YXRlTm9kZSIsInVzZVNlZ21lbnRTdGF0ZSIsIlNlZ21lbnRUcmllTm9kZSIsInR5cGUiLCJwYWdlUGF0aCIsImJvdW5kYXJ5VHlwZSIsInNldEJvdW5kYXJ5VHlwZSIsIm5vZGVTdGF0ZSIsInVzZU1lbW8iLCJ1c2VMYXlvdXRFZmZlY3QiLCJkaXNwYXRjaGVyIiwic2VnbWVudEV4cGxvcmVyTm9kZUFkZCIsInNlZ21lbnRFeHBsb3Jlck5vZGVSZW1vdmUiLCJOb3RGb3VuZFNlZ21lbnROb2RlIiwibm90Rm91bmQiLCJFcnJvclNlZ21lbnROb2RlIiwiRXJyb3IiLCJmb3JldmVyIiwiUHJvbWlzZSIsIkxvYWRpbmdTZWdtZW50Tm9kZSIsInVzZSIsInBhZ2UiLCJzZWdtZW50RXhwbG9yZXJVcGRhdGVSb3V0ZVN0YXRlIiwic2VnbWVudE5vZGUiLCJjaGlsZHJlbiIsIlNlZ21lbnRTdGF0ZUNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwidXNlU3RhdGUiLCJlcnJvckJvdW5kYXJ5S2V5Iiwic2V0RXJyb3JCb3VuZGFyeUtleSIsInJlbG9hZEJvdW5kYXJ5IiwidXNlQ2FsbGJhY2siLCJwcmV2Iiwic2V0Qm91bmRhcnlUeXBlQW5kUmVsb2FkIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInVzZUNvbnRleHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js":
|
||
/*!***************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js ***!
|
||
\***************************************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"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 getIsTerminalLoggingEnabled: function() {\n return getIsTerminalLoggingEnabled;\n },\n getTerminalLoggingConfig: function() {\n return getTerminalLoggingConfig;\n }\n});\nfunction getTerminalLoggingConfig() {\n try {\n return JSON.parse(\"false\" || 0);\n } catch (e) {\n return false;\n }\n}\nfunction getIsTerminalLoggingEnabled() {\n const config = getTerminalLoggingConfig();\n return Boolean(config);\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=terminal-logging-config.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC90ZXJtaW5hbC1sb2dnaW5nLWNvbmZpZy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsMEJBQTBCLE9BQWlELElBQUksQ0FBTztBQUN0RixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQsYUFBYTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3Rlcm1pbmFsLWxvZ2dpbmctY29uZmlnLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZ2V0SXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkOiBudWxsLFxuICAgIGdldFRlcm1pbmFsTG9nZ2luZ0NvbmZpZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRJc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0SXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkO1xuICAgIH0sXG4gICAgZ2V0VGVybWluYWxMb2dnaW5nQ29uZmlnOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFRlcm1pbmFsTG9nZ2luZ0NvbmZpZztcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGdldFRlcm1pbmFsTG9nZ2luZ0NvbmZpZygpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShwcm9jZXNzLmVudi5fX05FWFRfQlJPV1NFUl9ERUJVR19JTkZPX0lOX1RFUk1JTkFMIHx8ICdmYWxzZScpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGdldElzVGVybWluYWxMb2dnaW5nRW5hYmxlZCgpIHtcbiAgICBjb25zdCBjb25maWcgPSBnZXRUZXJtaW5hbExvZ2dpbmdDb25maWcoKTtcbiAgICByZXR1cm4gQm9vbGVhbihjb25maWcpO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10ZXJtaW5hbC1sb2dnaW5nLWNvbmZpZy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js":
|
||
/*!*******************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js ***!
|
||
\*******************************************************************************************/
|
||
/***/ ((module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useAppDevRenderingIndicator\", ({\n enumerable: true,\n get: function() {\n return useAppDevRenderingIndicator;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst useAppDevRenderingIndicator = ()=>{\n const [isPending, startTransition] = (0, _react.useTransition)();\n (0, _react.useEffect)(()=>{\n if (isPending) {\n _nextdevtools.dispatcher.renderingIndicatorShow();\n } else {\n _nextdevtools.dispatcher.renderingIndicatorHide();\n }\n }, [\n isPending\n ]);\n return startTransition;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-app-dev-rendering-indicator.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL3VzZS1hcHAtZGV2LXJlbmRlcmluZy1pbmRpY2F0b3IuanMiLCJtYXBwaW5ncyI6Ijs7OzsrREFLYUE7OztlQUFBQTs7O21DQUg0QjswQ0FDZDtBQUVwQixNQUFNQSw4QkFBOEI7SUFDekMsTUFBTSxDQUFDQyxXQUFXQyxnQkFBZ0IsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsYUFBQUE7SUFFckNDLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixJQUFJSCxXQUFXO1lBQ2JJLGNBQUFBLFVBQVUsQ0FBQ0Msc0JBQXNCO1FBQ25DLE9BQU87WUFDTEQsY0FBQUEsVUFBVSxDQUFDRSxzQkFBc0I7UUFDbkM7SUFDRixHQUFHO1FBQUNOO0tBQVU7SUFFZCxPQUFPQztBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvdXNlLWFwcC1kZXYtcmVuZGVyaW5nLWluZGljYXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlVHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZGlzcGF0Y2hlciB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LWRldnRvb2xzJ1xuXG5leHBvcnQgY29uc3QgdXNlQXBwRGV2UmVuZGVyaW5nSW5kaWNhdG9yID0gKCkgPT4ge1xuICBjb25zdCBbaXNQZW5kaW5nLCBzdGFydFRyYW5zaXRpb25dID0gdXNlVHJhbnNpdGlvbigpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNQZW5kaW5nKSB7XG4gICAgICBkaXNwYXRjaGVyLnJlbmRlcmluZ0luZGljYXRvclNob3coKVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaGVyLnJlbmRlcmluZ0luZGljYXRvckhpZGUoKVxuICAgIH1cbiAgfSwgW2lzUGVuZGluZ10pXG5cbiAgcmV0dXJuIHN0YXJ0VHJhbnNpdGlvblxufVxuIl0sIm5hbWVzIjpbInVzZUFwcERldlJlbmRlcmluZ0luZGljYXRvciIsImlzUGVuZGluZyIsInN0YXJ0VHJhbnNpdGlvbiIsInVzZVRyYW5zaXRpb24iLCJ1c2VFZmZlY3QiLCJkaXNwYXRjaGVyIiwicmVuZGVyaW5nSW5kaWNhdG9yU2hvdyIsInJlbmRlcmluZ0luZGljYXRvckhpZGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/app-render/dynamic-rendering.js ***!
|
||
\***********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\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 Postpone: function() {\n return Postpone;\n },\n PreludeState: function() {\n return PreludeState;\n },\n abortAndThrowOnSynchronousRequestDataAccess: function() {\n return abortAndThrowOnSynchronousRequestDataAccess;\n },\n abortOnSynchronousPlatformIOAccess: function() {\n return abortOnSynchronousPlatformIOAccess;\n },\n accessedDynamicData: function() {\n return accessedDynamicData;\n },\n annotateDynamicAccess: function() {\n return annotateDynamicAccess;\n },\n consumeDynamicAccess: function() {\n return consumeDynamicAccess;\n },\n createDynamicTrackingState: function() {\n return createDynamicTrackingState;\n },\n createDynamicValidationState: function() {\n return createDynamicValidationState;\n },\n createHangingInputAbortSignal: function() {\n return createHangingInputAbortSignal;\n },\n createRenderInBrowserAbortSignal: function() {\n return createRenderInBrowserAbortSignal;\n },\n delayUntilRuntimeStage: function() {\n return delayUntilRuntimeStage;\n },\n formatDynamicAPIAccesses: function() {\n return formatDynamicAPIAccesses;\n },\n getFirstDynamicReason: function() {\n return getFirstDynamicReason;\n },\n isDynamicPostpone: function() {\n return isDynamicPostpone;\n },\n isPrerenderInterruptedError: function() {\n return isPrerenderInterruptedError;\n },\n logDisallowedDynamicError: function() {\n return logDisallowedDynamicError;\n },\n markCurrentScopeAsDynamic: function() {\n return markCurrentScopeAsDynamic;\n },\n postponeWithTracking: function() {\n return postponeWithTracking;\n },\n throwIfDisallowedDynamic: function() {\n return throwIfDisallowedDynamic;\n },\n throwToInterruptStaticGeneration: function() {\n return throwToInterruptStaticGeneration;\n },\n trackAllowedDynamicAccess: function() {\n return trackAllowedDynamicAccess;\n },\n trackDynamicDataInDynamicRender: function() {\n return trackDynamicDataInDynamicRender;\n },\n trackSynchronousPlatformIOAccessInDev: function() {\n return trackSynchronousPlatformIOAccessInDev;\n },\n trackSynchronousRequestDataAccessInDev: function() {\n return trackSynchronousRequestDataAccessInDev;\n },\n useDynamicRouteParams: function() {\n return useDynamicRouteParams;\n },\n warnOnSyncDynamicError: function() {\n return warnOnSyncDynamicError;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ./work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _boundaryconstants = __webpack_require__(/*! ../../lib/framework/boundary-constants */ \"(ssr)/./node_modules/next/dist/lib/framework/boundary-constants.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(ssr)/./node_modules/next/dist/lib/scheduler.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst hasPostpone = typeof _react.default.unstable_postpone === 'function';\nfunction createDynamicTrackingState(isDebugDynamicAccesses) {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null\n };\n}\nfunction createDynamicValidationState() {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: []\n };\n}\nfunction getFirstDynamicReason(trackingState) {\n var _trackingState_dynamicAccesses_;\n return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;\n}\nfunction markCurrentScopeAsDynamic(store, workUnitStore, expression) {\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return;\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return;\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n break;\n default:\n workUnitStore;\n }\n }\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return;\n if (store.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E553\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender-ppr':\n return postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);\n case 'prerender-legacy':\n workUnitStore.revalidate = 0;\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E550\",\n enumerable: false,\n configurable: true\n });\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n case 'request':\n if (true) {\n workUnitStore.usedDynamic = true;\n }\n break;\n default:\n workUnitStore;\n }\n }\n}\nfunction throwToInterruptStaticGeneration(expression, store, prerenderStore) {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E558\",\n enumerable: false,\n configurable: true\n });\n prerenderStore.revalidate = 0;\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n}\nfunction trackDynamicDataInDynamicRender(workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return;\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return;\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n break;\n case 'request':\n if (true) {\n workUnitStore.usedDynamic = true;\n }\n break;\n default:\n workUnitStore;\n }\n}\nfunction abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;\n const error = createPrerenderInterruptedError(reason);\n prerenderStore.controller.abort(error);\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n}\nfunction trackSynchronousPlatformIOAccessInDev(requestStore) {\n // We don't actually have a controller to abort but we do the semantic equivalent by\n // advancing the request store out of prerender mode\n requestStore.prerenderPhase = false;\n}\nfunction abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {\n const prerenderSignal = prerenderStore.controller.signal;\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n }\n throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);\n}\nfunction warnOnSyncDynamicError(dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack) {\n // the server did something sync dynamic, likely\n // leading to an early termination of the prerender.\n console.error(dynamicTracking.syncDynamicErrorWithStack);\n }\n}\nconst trackSynchronousRequestDataAccessInDev = trackSynchronousPlatformIOAccessInDev;\nfunction Postpone({ reason, route }) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;\n postponeWithTracking(route, reason, dynamicTracking);\n}\nfunction postponeWithTracking(route, expression, dynamicTracking) {\n assertPostpone();\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n _react.default.unstable_postpone(createPostponeReason(route, expression));\n}\nfunction createPostponeReason(route, expression) {\n return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `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}\nfunction isDynamicPostpone(err) {\n if (typeof err === 'object' && err !== null && typeof err.message === 'string') {\n return isDynamicPostponeReason(err.message);\n }\n return false;\n}\nfunction isDynamicPostponeReason(reason) {\n return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');\n}\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E296\",\n enumerable: false,\n configurable: true\n });\n}\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';\nfunction createPrerenderInterruptedError(message) {\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = NEXT_PRERENDER_INTERRUPTED;\n return error;\n}\nfunction isPrerenderInterruptedError(error) {\n return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;\n}\nfunction accessedDynamicData(dynamicAccesses) {\n return dynamicAccesses.length > 0;\n}\nfunction consumeDynamicAccess(serverDynamic, clientDynamic) {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);\n return serverDynamic.dynamicAccesses;\n}\nfunction formatDynamicAPIAccesses(dynamicAccesses) {\n return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{\n stack = stack.split('\\n') // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4).filter((line)=>{\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false;\n }\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false;\n }\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false;\n }\n return true;\n }).join('\\n');\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`;\n });\n}\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), \"__NEXT_ERROR_CODE\", {\n value: \"E224\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction createRenderInBrowserAbortSignal() {\n const controller = new AbortController();\n controller.abort(Object.defineProperty(new _bailouttocsr.BailoutToCSRError('Render in Browser'), \"__NEXT_ERROR_CODE\", {\n value: \"E721\",\n enumerable: false,\n configurable: true\n }));\n return controller.signal;\n}\nfunction createHangingInputAbortSignal(workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController();\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(()=>{\n controller.abort();\n });\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const runtimeStagePromise = (0, _workunitasyncstorageexternal.getRuntimeStagePromise)(workUnitStore);\n if (runtimeStagePromise) {\n runtimeStagePromise.then(()=>(0, _scheduler.scheduleOnNextTick)(()=>controller.abort()));\n } else {\n (0, _scheduler.scheduleOnNextTick)(()=>controller.abort());\n }\n }\n return controller.signal;\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return undefined;\n default:\n workUnitStore;\n }\n}\nfunction annotateDynamicAccess(expression, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction useDynamicRouteParams(expression) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workStore && workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender-client':\n case 'prerender':\n {\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression));\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);\n }\n break;\n }\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError(`\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E771\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError(`\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E745\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n}\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/;\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6';\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense (<anonymous>)\n// at SomeComponent (<anonymous>)\n// at __next_root_layout_boundary__ (<anonymous>)\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\\\n\\\\s+at Suspense \\\\(<anonymous>\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(<anonymous>\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`);\nconst hasMetadataRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasViewportRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${_boundaryconstants.OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`);\nfunction trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return;\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true;\n return;\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true;\n return;\n } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true;\n dynamicValidation.hasSuspenseAboveBody = true;\n return;\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true;\n return;\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);\n return;\n } else {\n const message = `Route \"${workStore.route}\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`;\n const error = createErrorWithComponentOrOwnerStack(message, componentStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n }\n}\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */ function createErrorWithComponentOrOwnerStack(message, componentStack) {\n const ownerStack = true && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null;\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = error.name + ': ' + message + (ownerStack ?? componentStack);\n return error;\n}\nvar PreludeState = /*#__PURE__*/ function(PreludeState) {\n PreludeState[PreludeState[\"Full\"] = 0] = \"Full\";\n PreludeState[PreludeState[\"Empty\"] = 1] = \"Empty\";\n PreludeState[PreludeState[\"Errored\"] = 2] = \"Errored\";\n return PreludeState;\n}({});\nfunction logDisallowedDynamicError(workStore, error) {\n console.error(error);\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`);\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`);\n }\n }\n}\nfunction throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) {\n if (prelude !== 0) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return;\n }\n if (serverDynamic.syncDynamicErrorWithStack) {\n // There is no shell and the server did something sync dynamic likely\n // leading to an early termination of the prerender before the shell\n // could be completed. We terminate the build/validating render.\n logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length > 0) {\n for(let i = 0; i < dynamicErrors.length; i++){\n logDisallowedDynamicError(workStore, dynamicErrors[i]);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(`Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (prelude === 1) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(`Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n } else {\n if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {\n console.error(`Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n }\n}\nfunction delayUntilRuntimeStage(prerenderStore, result) {\n if (prerenderStore.runtimeStagePromise) {\n return prerenderStore.runtimeStagePromise.then(()=>result);\n }\n return result;\n} //# sourceMappingURL=dynamic-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CQzs7Ozs7Ozs7Ozs7O0lBNlZlQSxRQUFRO2VBQVJBOztJQTRYSkMsWUFBWTtlQUFaQTs7SUFwYklDLDJDQUEyQztlQUEzQ0E7O0lBckNBQyxrQ0FBa0M7ZUFBbENBOztJQXVMQUMsbUJBQW1CO2VBQW5CQTs7SUFrSUFDLHFCQUFxQjtlQUFyQkE7O0lBNUhBQyxvQkFBb0I7ZUFBcEJBOztJQXJYQUMsMEJBQTBCO2VBQTFCQTs7SUFVQUMsNEJBQTRCO2VBQTVCQTs7SUFtYkFDLDZCQUE2QjtlQUE3QkE7O0lBWEFDLGdDQUFnQztlQUFoQ0E7O0lBOFRBQyxzQkFBc0I7ZUFBdEJBOztJQWhYQUMsd0JBQXdCO2VBQXhCQTs7SUE1V0FDLHFCQUFxQjtlQUFyQkE7O0lBc1NBQyxpQkFBaUI7ZUFBakJBOztJQXdDQUMsMkJBQTJCO2VBQTNCQTs7SUFxVEFDLHlCQUF5QjtlQUF6QkE7O0lBdG5CQUMseUJBQXlCO2VBQXpCQTs7SUE2UEFDLG9CQUFvQjtlQUFwQkE7O0lBNFlBQyx3QkFBd0I7ZUFBeEJBOztJQS9qQkFDLGdDQUFnQztlQUFoQ0E7O0lBdWVBQyx5QkFBeUI7ZUFBekJBOztJQTljQUMsK0JBQStCO2VBQS9CQTs7SUF1RUFDLHFDQUFxQztlQUFyQ0E7O0lBZ0VIQyxzQ0FBc0M7ZUFBdENBOztJQXFQR0MscUJBQXFCO2VBQXJCQTs7SUE5UEFDLHNCQUFzQjtlQUF0QkE7OzswRUE5VEU7Z0RBRWlCO3FEQUNHOzBEQUkvQjtzREFDMEI7bURBQ0U7K0NBTTVCO3VDQUM0QjswQ0FDRDs0Q0FDSDs7Ozs7O0FBRS9CLE1BQU1DLGNBQWMsT0FBT0MsT0FBQUEsT0FBSyxDQUFDQyxpQkFBaUIsS0FBSztBQXdDaEQsU0FBU3RCLDJCQUNkdUIsc0JBQTJDO0lBRTNDLE9BQU87UUFD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ZW5nMTAxOC9zcmMvc2VydmVyL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgZnVuY3Rpb25zIHByb3ZpZGVkIGJ5IHRoaXMgbW9kdWxlIGFyZSB1c2VkIHRvIGNvbW11bmljYXRlIGNlcnRhaW4gcHJvcGVydGllc1xuICogYWJvdXQgdGhlIGN1cnJlbnRseSBydW5uaW5nIGNvZGUgc28gdGhhdCBOZXh0LmpzIGNhbiBtYWtlIGRlY2lzaW9ucyBvbiBob3cgdG8gaGFuZGxlXG4gKiB0aGUgY3VycmVudCBleGVjdXRpb24gaW4gZGlmZmVyZW50IHJlbmRlcmluZyBtb2RlcyBzdWNoIGFzIHByZS1yZW5kZXJpbmcsIHJlc3VtaW5nLCBhbmQgU1NSLlxuICpcbiAqIFRvZGF5IE5leHQuanMgdHJlYXRzIGFsbCBjb2RlIGFzIHBvdGVudGlhbGx5IHN0YXRpYy4gQ2VydGFpbiBBUElzIG1heSBvbmx5IG1ha2Ugc2Vuc2Ugd2hlbiBkeW5hbWljYWxseSByZW5kZXJpbmcuXG4gKiBUcmFkaXRpb25hbGx5IHRoaXMgbWVhbnQgZGVvcHRpbmcgdGhlIGVudGlyZSByZW5kZXIgdG8gZHluYW1pYyBob3dldmVyIHdpdGggUFBSIHdlIGNhbiBub3cgZGVvcHQgcGFydHNcbiAqIG9mIGEgUmVhY3QgdHJlZSBhcyBkeW5hbWljIHdoaWxlIHN0aWxsIGtlZXBpbmcgb3RoZXIgcGFydHMgc3RhdGljLiBUaGVyZSBhcmUgcmVhbGx5IHR3byBkaWZmZXJlbnQga2luZHMgb2ZcbiAqIER5bmFtaWMgaW5kaWNhdGlvbnMuXG4gKlxuICogVGhlIGZpcnN0IGlzIHNpbXBseSBhbiBpbnRlbnRpb24gdG8gYmUgZHluYW1pYy4gdW5zdGFibGVfbm9TdG9yZSBpcyBhbiBleGFtcGxlIG9mIHRoaXMgd2hlcmVcbiAqIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIGNvZGUgc2ltcGx5IGRlY2xhcmVzIHRoYXQgdGhlIGN1cnJlbnQgc2NvcGUgaXMgZHluYW1pYyBidXQgaWYgeW91IHVzZSBpdFxuICogaW5zaWRlIHVuc3RhYmxlX2NhY2hlIGl0IGNhbiBzdGlsbCBiZSBjYWNoZWQuIFRoaXMgdHlwZSBvZiBpbmRpY2F0aW9uIGNhbiBiZSByZW1vdmVkIGlmIHdlIGV2ZXJcbiAqIG1ha2UgdGhlIGRlZmF1bHQgZHluYW1pYyB0byBiZWdpbiB3aXRoIGJlY2F1c2UgdGhlIG9ubHkgd2F5IHlvdSB3b3VsZCBldmVyIGJlIHN0YXRpYyBpcyBpbnNpZGVcbiAqIGEgY2FjaGUgc2NvcGUgd2hpY2ggdGhpcyBpbmRpY2F0aW9uIGRvZXMgbm90IGFmZmVjdC5cbiAqXG4gKiBUaGUgc2Vjb25kIGlzIGFuIGluZGljYXRpb24gdGhhdCBhIGR5bmFtaWMgZGF0YSBzb3VyY2Ugd2FzIHJlYWQuIFRoaXMgaXMgYSBzdHJvbmdlciBmb3JtIG9mIGR5bmFtaWNcbiAqIGJlY2F1c2UgaXQgbWVhbnMgdGhhdCBpdCBpcyBpbmFwcHJvcHJpYXRlIHRvIGNhY2hlIHRoaXMgYXQgYWxsLiB1c2luZyBhIGR5bmFtaWMgZGF0YSBzb3VyY2UgaW5zaWRlXG4gKiB1bnN0YWJsZV9jYWNoZSBzaG91bGQgZXJyb3IuIElmIHlvdSB3YW50IHRvIHVzZSBzb21lIGR5bmFtaWMgZGF0YSBpbnNpZGUgdW5zdGFibGVfY2FjaGUgeW91IHNob3VsZFxuICogcmVhZCB0aGF0IGRhdGEgb3V0c2lkZSB0aGUgY2FjaGUgYW5kIHBhc3MgaXQgaW4gYXMgYW4gYXJndW1lbnQgdG8gdGhlIGNhY2hlZCBmdW5jdGlvbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFdvcmtTdG9yZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHR5cGUge1xuICBXb3JrVW5pdFN0b3JlLFxuICBSZXF1ZXN0U3RvcmUsXG4gIFByZXJlbmRlclN0b3JlTGVnYWN5LFxuICBQcmVyZW5kZXJTdG9yZU1vZGVybixcbiAgUHJlcmVuZGVyU3RvcmVNb2Rlcm5SdW50aW1lLFxufSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuXG4vLyBPbmNlIHBvc3Rwb25lIGlzIGluIHN0YWJsZSB3ZSBzaG91bGQgc3dpdGNoIHRvIGltcG9ydGluZyB0aGUgcG9zdHBvbmUgZXhwb3J0IGRpcmVjdGx5XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IER5bmFtaWNTZXJ2ZXJFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0J1xuaW1wb3J0IHsgU3RhdGljR2VuQmFpbG91dEVycm9yIH0gZnJvbSAnLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dCdcbmltcG9ydCB7XG4gIGdldFJ1bnRpbWVTdGFnZVByb21pc2UsXG4gIHdvcmtVbml0QXN5bmNTdG9yYWdlLFxufSBmcm9tICcuL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgd29ya0FzeW5jU3RvcmFnZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgbWFrZUhhbmdpbmdQcm9taXNlIH0gZnJvbSAnLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHMnXG5pbXBvcnQge1xuICBNRVRBREFUQV9CT1VOREFSWV9OQU1FLFxuICBWSUVXUE9SVF9CT1VOREFSWV9OQU1FLFxuICBPVVRMRVRfQk9VTkRBUllfTkFNRSxcbiAgUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRSxcbn0gZnJvbSAnLi4vLi4vbGliL2ZyYW1ld29yay9ib3VuZGFyeS1jb25zdGFudHMnXG5pbXBvcnQgeyBzY2hlZHVsZU9uTmV4dFRpY2sgfSBmcm9tICcuLi8uLi9saWIvc2NoZWR1bGVyJ1xuaW1wb3J0IHsgQmFpbG91dFRvQ1NSRXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2xhenktZHluYW1pYy9iYWlsb3V0LXRvLWNzcidcbmltcG9ydCB7IEludmFyaWFudEVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3InXG5cbmNvbnN0IGhhc1Bvc3Rwb25lID0gdHlwZW9mIFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lID09PSAnZnVuY3Rpb24nXG5cbmV4cG9ydCB0eXBlIER5bmFtaWNBY2Nlc3MgPSB7XG4gIC8qKlxuICAgKiBJZiBkZWJ1Z2dpbmcsIHRoaXMgd2lsbCBjb250YWluIHRoZSBzdGFjayB0cmFjZSBvZiB3aGVyZSB0aGUgZHluYW1pYyBhY2Nlc3NcbiAgICogb2NjdXJyZWQuIFRoaXMgaXMgdXNlZCB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIgYWJvdXQgd2h5XG4gICAqIHRoZWlyIHBhZ2UgaXMgYmVpbmcgcmVuZGVyZWQgZHluYW1pY2FsbHkuXG4gICAqL1xuICBzdGFjaz86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgZXhwcmVzc2lvbiB0aGF0IHdhcyBhY2Nlc3NlZCBkeW5hbWljYWxseS5cbiAgICovXG4gIGV4cHJlc3Npb246IHN0cmluZ1xufVxuXG4vLyBTdG9yZXMgZHluYW1pYyByZWFzb25zIHVzZWQgZHVyaW5nIGFuIFJTQyByZW5kZXIuXG5leHBvcnQgdHlwZSBEeW5hbWljVHJhY2tpbmdTdGF0ZSA9IHtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgc3RhY2sgaW5mb3JtYXRpb24gd2lsbCBhbHNvIGJlIHRyYWNrZWQgZHVyaW5nIGR5bmFtaWMgYWNjZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlczogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBUaGUgZHluYW1pYyBhY2Nlc3NlcyB0aGF0IG9jY3VycmVkIGR1cmluZyB0aGUgcmVuZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1pY0FjY2Vzc2VzOiBBcnJheTxEeW5hbWljQWNjZXNzPlxuXG4gIHN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2s6IG51bGwgfCBFcnJvclxufVxuXG4vLyBTdG9yZXMgZHluYW1pYyByZWFzb25zIHVzZWQgZHVyaW5nIGFuIFNTUiByZW5kZXIuXG5leHBvcnQgdHlwZSBEeW5hbWljVmFsaWRhdGlvblN0YXRlID0ge1xuICBoYXNTdXNwZW5zZUFib3ZlQm9keTogYm9vbGVhblxuICBoYXNEeW5hbWljTWV0YWRhdGE6IGJvb2xlYW5cbiAgaGFzRHluYW1pY1ZpZXdwb3J0OiBib29sZWFuXG4gIGhhc0FsbG93ZWREeW5hbWljOiBib29sZWFuXG4gIGR5bmFtaWNFcnJvcnM6IEFycmF5PEVycm9yPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY1RyYWNraW5nU3RhdGUoXG4gIGlzRGVidWdEeW5hbWljQWNjZXNzZXM6IGJvb2xlYW4gfCB1bmRlZmluZWRcbik6IER5bmFtaWNUcmFja2luZ1N0YXRlIHtcbiAgcmV0dXJuIHtcbiAgICBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzLFxuICAgIGR5bmFtaWNBY2Nlc3NlczogW10sXG4gICAgc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjazogbnVsbCxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSgpOiBEeW5hbWljVmFsaWRhdGlvblN0YXRlIHtcbiAgcmV0dXJuIHtcbiAgICBoYXNTdXNwZW5zZUFib3ZlQm9keTogZmFsc2UsXG4gICAgaGFzRHluYW1pY01ldGFkYXRhOiBmYWxzZSxcbiAgICBoYXNEeW5hbWljVmlld3BvcnQ6IGZhbHNlLFxuICAgIGhhc0FsbG93ZWREeW5hbWljOiBmYWxzZSxcbiAgICBkeW5hbWljRXJyb3JzOiBbXSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3REeW5hbWljUmVhc29uKFxuICB0cmFja2luZ1N0YXRlOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKTogdW5kZWZpbmVkIHwgc3RyaW5nIHtcbiAgcmV0dXJuIHRyYWNraW5nU3RhdGUuZHluYW1pY0FjY2Vzc2VzWzBdPy5leHByZXNzaW9uXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBjb21tdW5pY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBzY29wZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBkeW5hbWljLlxuICpcbiAqIEluIG1vc3QgY2FzZXMgdGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wIGJ1dCBpZiBjYWxsZWQgZHVyaW5nXG4gKiBhIFBQUiBwcmVyZW5kZXIgaXQgd2lsbCBwb3N0cG9uZSB0aGUgY3VycmVudCBzdWItdHJlZSBhbmQgY2FsbGluZ1xuICogaXQgZHVyaW5nIGEgbm9ybWFsIHByZXJlbmRlciB3aWxsIGNhdXNlIHRoZSBlbnRpcmUgcHJlcmVuZGVyIHRvIGFib3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljKFxuICBzdG9yZTogV29ya1N0b3JlLFxuICB3b3JrVW5pdFN0b3JlOiB1bmRlZmluZWQgfCBFeGNsdWRlPFdvcmtVbml0U3RvcmUsIFByZXJlbmRlclN0b3JlTW9kZXJuPixcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiB2b2lkIHtcbiAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICBzd2l0Y2ggKHdvcmtVbml0U3RvcmUudHlwZSkge1xuICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgICAvLyBJbnNpZGUgY2FjaGUgc2NvcGVzLCBtYXJraW5nIGEgc2NvcGUgYXMgZHluYW1pYyBoYXMgbm8gZWZmZWN0LFxuICAgICAgICAvLyBiZWNhdXNlIHRoZSBvdXRlciBjYWNoZSBzY29wZSBjcmVhdGVzIGEgY2FjaGUgYm91bmRhcnkuIFRoaXMgaXNcbiAgICAgICAgLy8gc3VidGx5IGRpZmZlcmVudCBmcm9tIHJlYWRpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlLCB3aGljaCBpc1xuICAgICAgICAvLyBmb3JiaWRkZW4gaW5zaWRlIGEgY2FjaGUgc2NvcGUuXG4gICAgICAgIHJldHVyblxuICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgIC8vIEEgcHJpdmF0ZSBjYWNoZSBzY29wZSBpcyBhbHJlYWR5IGR5bmFtaWMgYnkgZGVmaW5pdGlvbi5cbiAgICAgICAgcmV0dXJuXG4gICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmcgZHluYW1pYyByZW5kZXJpbmcgb3Igd2UncmUgZm9yY2luZyBzdGF0aWMgcmVuZGVyaW5nLCB3ZVxuICAvLyBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nIGhlcmUgYmVjYXVzZSB0aGUgZW50aXJlIHBhZ2UgaXMgYWxyZWFkeSBkeW5hbWljXG4gIC8vIG9yIGl0J3Mgc3RhdGljIGFuZCBpdCBzaG91bGQgbm90IHRocm93IG9yIHBvc3Rwb25lIGhlcmUuXG4gIGlmIChzdG9yZS5mb3JjZUR5bmFtaWMgfHwgc3RvcmUuZm9yY2VTdGF0aWMpIHJldHVyblxuXG4gIGlmIChzdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKFxuICAgICAgYFJvdXRlICR7c3RvcmUucm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcXGAke2V4cHJlc3Npb259XFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gICAgKVxuICB9XG5cbiAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICBzd2l0Y2ggKHdvcmtVbml0U3RvcmUudHlwZSkge1xuICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgIHJldHVybiBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgICAgICAgICBzdG9yZS5yb3V0ZSxcbiAgICAgICAgICBleHByZXNzaW9uLFxuICAgICAgICAgIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICAgIClcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICB3b3JrVW5pdFN0b3JlLnJldmFsaWRhdGUgPSAwXG5cbiAgICAgICAgLy8gV2UgYXJlbid0IHByZXJlbmRlcmluZywgYnV0IHdlIGFyZSBnZW5lcmF0aW5nIGEgc3RhdGljIHBhZ2UuIFdlIG5lZWRcbiAgICAgICAgLy8gdG8gYmFpbCBvdXQgb2Ygc3RhdGljIGdlbmVyYXRpb24uXG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBEeW5hbWljU2VydmVyRXJyb3IoXG4gICAgICAgICAgYFJvdXRlICR7c3RvcmUucm91dGV9IGNvdWxkbid0IGJlIHJlbmRlcmVkIHN0YXRpY2FsbHkgYmVjYXVzZSBpdCB1c2VkICR7ZXhwcmVzc2lvbn0uIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZHluYW1pYy1zZXJ2ZXItZXJyb3JgXG4gICAgICAgIClcbiAgICAgICAgc3RvcmUuZHluYW1pY1VzYWdlRGVzY3JpcHRpb24gPSBleHByZXNzaW9uXG4gICAgICAgIHN0b3JlLmR5bmFtaWNVc2FnZVN0YWNrID0gZXJyLnN0YWNrXG5cbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICB3b3JrVW5pdFN0b3JlLnVzZWREeW5hbWljID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbWVhbnQgdG8gYmUgdXNlZCB3aGVuIHByZXJlbmRlcmluZyB3aXRob3V0IGNhY2hlQ29tcG9uZW50cyBvciBQUFIuXG4gKiBXaGVuIGNhbGxlZCBkdXJpbmcgYSBidWlsZCBpdCB3aWxsIGNhdXNlIE5leHQuanMgdG8gY29uc2lkZXIgdGhlIHJvdXRlIGFzIGR5bmFtaWMuXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbihcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBzdG9yZTogV29ya1N0b3JlLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVMZWdhY3lcbik6IG5ldmVyIHtcbiAgLy8gV2UgYXJlbid0IHByZXJlbmRlcmluZyBidXQgd2UgYXJlIGdlbmVyYXRpbmcgYSBzdGF0aWMgcGFnZS4gV2UgbmVlZCB0byBiYWlsIG91dCBvZiBzdGF0aWMgZ2VuZXJhdGlvblxuICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKFxuICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcXGAke2V4cHJlc3Npb259XFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2R5bmFtaWMtc2VydmVyLWVycm9yYFxuICApXG5cbiAgcHJlcmVuZGVyU3RvcmUucmV2YWxpZGF0ZSA9IDBcblxuICBzdG9yZS5keW5hbWljVXNhZ2VEZXNjcmlwdGlvbiA9IGV4cHJlc3Npb25cbiAgc3RvcmUuZHluYW1pY1VzYWdlU3RhY2sgPSBlcnIuc3RhY2tcblxuICB0aHJvdyBlcnJcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHRvIHRyYWNrIHdoZXRoZXIgc29tZXRoaW5nIGR5bmFtaWMgaGFwcGVuZWQgZXZlbiB3aGVuXG4gKiB3ZSBhcmUgaW4gYSBkeW5hbWljIHJlbmRlci4gVGhpcyBpcyB1c2VmdWwgZm9yIERldiB3aGVyZSBhbGwgcmVuZGVycyBhcmUgZHluYW1pYyBidXRcbiAqIHdlIHN0aWxsIHRyYWNrIHdoZXRoZXIgZHluYW1pYyBBUElzIHdlcmUgYWNjZXNzZWQgZm9yIGhlbHBmdWwgbWVzc2FnaW5nXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKHdvcmtVbml0U3RvcmU6IFdvcmtVbml0U3RvcmUpIHtcbiAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICBjYXNlICdjYWNoZSc6XG4gICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgLy8gSW5zaWRlIGNhY2hlIHNjb3BlcywgbWFya2luZyBhIHNjb3BlIGFzIGR5bmFtaWMgaGFzIG5vIGVmZmVjdCxcbiAgICAgIC8vIGJlY2F1c2UgdGhlIG91dGVyIGNhY2hlIHNjb3BlIGNyZWF0ZXMgYSBjYWNoZSBib3VuZGFyeS4gVGhpcyBpc1xuICAgICAgLy8gc3VidGx5IGRpZmZlcmVudCBmcm9tIHJlYWRpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlLCB3aGljaCBpc1xuICAgICAgLy8gZm9yYmlkZGVuIGluc2lkZSBhIGNhY2hlIHNjb3BlLlxuICAgICAgcmV0dXJuXG4gICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAvLyBBIHByaXZhdGUgY2FjaGUgc2NvcGUgaXMgYWxyZWFkeSBkeW5hbWljIGJ5IGRlZmluaXRpb24uXG4gICAgICByZXR1cm5cbiAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3b3JrVW5pdFN0b3JlLnVzZWREeW5hbWljID0gdHJ1ZVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICBkZWZhdWx0OlxuICAgICAgd29ya1VuaXRTdG9yZSBzYXRpc2ZpZXMgbmV2ZXJcbiAgfVxufVxuXG5mdW5jdGlvbiBhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2VzcyhcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVNb2Rlcm5cbik6IHZvaWQge1xuICBjb25zdCByZWFzb24gPSBgUm91dGUgJHtyb3V0ZX0gbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkICR7ZXhwcmVzc2lvbn0uYFxuXG4gIGNvbnN0IGVycm9yID0gY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihyZWFzb24pXG5cbiAgcHJlcmVuZGVyU3RvcmUuY29udHJvbGxlci5hYm9ydChlcnJvcilcblxuICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPSBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgIGR5bmFtaWNUcmFja2luZy5keW5hbWljQWNjZXNzZXMucHVzaCh7XG4gICAgICAvLyBXaGVuIHdlIGFyZW4ndCBkZWJ1Z2dpbmcsIHdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGFub3RoZXIgZXJyb3IgZm9yIHRoZVxuICAgICAgLy8gc3RhY2sgdHJhY2UuXG4gICAgICBzdGFjazogZHluYW1pY1RyYWNraW5nLmlzRGVidWdEeW5hbWljQWNjZXNzZXNcbiAgICAgICAgPyBuZXcgRXJyb3IoKS5zdGFja1xuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGV4cHJlc3Npb24sXG4gICAgfSlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWJvcnRPblN5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2VzcyhcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBlcnJvcldpdGhTdGFjazogRXJyb3IsXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblxuKTogdm9pZCB7XG4gIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICBhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpXG4gIC8vIEl0IGlzIGltcG9ydGFudCB0aGF0IHdlIHNldCB0aGlzIHRyYWNraW5nIHZhbHVlIGFmdGVyIGFib3J0aW5nLiBBYm9ydHMgYXJlIGV4ZWN1dGVkXG4gIC8vIHN5bmNocm9ub3VzbHkgZXhjZXB0IGZvciB0aGUgY2FzZSB3aGVyZSB5b3UgYWJvcnQgZHVyaW5nIHJlbmRlciBpdHNlbGYuIEJ5IHNldHRpbmcgdGhpc1xuICAvLyB2YWx1ZSBsYXRlIHdlIGNhbiB1c2UgaXQgdG8gZGV0ZXJtaW5lIGlmIGFueSBvZiB0aGUgYWJvcnRlZCB0YXNrcyBhcmUgdGhlIHRhc2sgdGhhdFxuICAvLyBjYWxsZWQgdGhlIHN5bmMgSU8gZXhwcmVzc2lvbiBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICBpZiAoZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2sgPT09IG51bGwpIHtcbiAgICAgIGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrID0gZXJyb3JXaXRoU3RhY2tcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzSW5EZXYoXG4gIHJlcXVlc3RTdG9yZTogUmVxdWVzdFN0b3JlXG4pOiB2b2lkIHtcbiAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIGNvbnRyb2xsZXIgdG8gYWJvcnQgYnV0IHdlIGRvIHRoZSBzZW1hbnRpYyBlcXVpdmFsZW50IGJ5XG4gIC8vIGFkdmFuY2luZyB0aGUgcmVxdWVzdCBzdG9yZSBvdXQgb2YgcHJlcmVuZGVyIG1vZGVcbiAgcmVxdWVzdFN0b3JlLnByZXJlbmRlclBoYXNlID0gZmFsc2Vcbn1cblxuLyoqXG4gKiB1c2UgdGhpcyBmdW5jdGlvbiB3aGVuIHByZXJlbmRlcmluZyB3aXRoIGNhY2hlQ29tcG9uZW50cy4gSWYgd2UgYXJlIGRvaW5nIGFcbiAqIHByb3NwZWN0aXZlIHByZXJlbmRlciB3ZSBkb24ndCBhY3R1YWxseSBhYm9ydCBiZWNhdXNlIHdlIHdhbnQgdG8gZGlzY292ZXJcbiAqIGFsbCBjYWNoZXMgZm9yIHRoZSBzaGVsbC4gSWYgdGhpcyBpcyB0aGUgYWN0dWFsIHByZXJlbmRlciB3ZSBkbyBhYm9ydC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGFjY2VwdHMgYSBwcmVyZW5kZXJTdG9yZSBidXQgdGhlIGNhbGxlciBzaG91bGQgZW5zdXJlIHdlJ3JlXG4gKiBhY3R1YWxseSBydW5uaW5nIGluIGNhY2hlQ29tcG9uZW50cyBtb2RlLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWJvcnRBbmRUaHJvd09uU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2VzcyhcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBlcnJvcldpdGhTdGFjazogRXJyb3IsXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblxuKTogbmV2ZXIge1xuICBjb25zdCBwcmVyZW5kZXJTaWduYWwgPSBwcmVyZW5kZXJTdG9yZS5jb250cm9sbGVyLnNpZ25hbFxuICBpZiAocHJlcmVuZGVyU2lnbmFsLmFib3J0ZWQgPT09IGZhbHNlKSB7XG4gICAgLy8gVE9ETyBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gbW92ZSB0aGlzIGFib3J0ZWQgY2hlY2sgaW50byB0aGUgY2FsbHNpdGUgc28gd2UgY2FuIGF2b2lkIG1ha2luZ1xuICAgIC8vIHRoZSBlcnJvciBvYmplY3Qgd2hlbiBpdCBpc24ndCByZWxldmFudCB0byB0aGUgYWJvcnRpbmcgb2YgdGhlIHByZXJlbmRlciBob3dldmVyXG4gICAgLy8gc2luY2Ugd2UgbmVlZCB0aGUgdGhyb3cgc2VtYW50aWNzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB3ZSBhYm9ydCBpdCBpcyBlYXNpZXIgdG8gbGFuZFxuICAgIC8vIHRoaXMgd2F5LiBTZWUgaG93IHRoaXMgd2FzIGhhbmRsZWQgd2l0aCBgYWJvcnRPblN5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc2AgZm9yIGEgY2xvc2VyXG4gICAgLy8gdG8gaWRlYWwgaW1wbGVtZW50YXRpb25cbiAgICBhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpXG4gICAgLy8gSXQgaXMgaW1wb3J0YW50IHRoYXQgd2Ugc2V0IHRoaXMgdHJhY2tpbmcgdmFsdWUgYWZ0ZXIgYWJvcnRpbmcuIEFib3J0cyBhcmUgZXhlY3V0ZWRcbiAgICAvLyBzeW5jaHJvbm91c2x5IGV4Y2VwdCBmb3IgdGhlIGNhc2Ugd2hlcmUgeW91IGFib3J0IGR1cmluZyByZW5kZXIgaXRzZWxmLiBCeSBzZXR0aW5nIHRoaXNcbiAgICAvLyB2YWx1ZSBsYXRlIHdlIGNhbiB1c2UgaXQgdG8gZGV0ZXJtaW5lIGlmIGFueSBvZiB0aGUgYWJvcnRlZCB0YXNrcyBhcmUgdGhlIHRhc2sgdGhhdFxuICAgIC8vIGNhbGxlZCB0aGUgc3luYyBJTyBleHByZXNzaW9uIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPSBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgICBpZiAoZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2sgPT09IG51bGwpIHtcbiAgICAgICAgZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2sgPSBlcnJvcldpdGhTdGFja1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB0aHJvdyBjcmVhdGVQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKFxuICAgIGBSb3V0ZSAke3JvdXRlfSBuZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS5gXG4gIClcbn1cblxuLyoqXG4gKiBVc2UgdGhpcyBmdW5jdGlvbiB3aGVuIGR5bmFtaWNhbGx5IHByZXJlbmRlcmluZyB3aXRoIGR5bmFtaWNJTy5cbiAqIFdlIGRvbid0IHdhbnQgdG8gZXJyb3IsIGJlY2F1c2UgaXQncyBiZXR0ZXIgdG8gcmV0dXJuIHNvbWV0aGluZ1xuICogKGFuZCB3ZSd2ZSBhbHJlYWR5IGFib3J0ZWQgdGhlIHJlbmRlciBhdCB0aGUgcG9pbnQgd2hlcmUgdGhlIHN5bmMgZHluYW1pYyBlcnJvciBvY2N1cmVkKSxcbiAqIGJ1dCB3ZSBzaG91bGQgbG9nIGFuIGVycm9yIHNlcnZlci1zaWRlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3YXJuT25TeW5jRHluYW1pY0Vycm9yKGR5bmFtaWNUcmFja2luZzogRHluYW1pY1RyYWNraW5nU3RhdGUpIHtcbiAgaWYgKGR5bmFtaWNUcmFja2luZy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKSB7XG4gICAgLy8gdGhlIHNlcnZlciBkaWQgc29tZXRoaW5nIHN5bmMgZHluYW1pYywgbGlrZWx5XG4gICAgLy8gbGVhZGluZyB0byBhbiBlYXJseSB0ZXJtaW5hdGlvbiBvZiB0aGUgcHJlcmVuZGVyLlxuICAgIGNvbnNvbGUuZXJyb3IoZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spXG4gIH1cbn1cblxuLy8gRm9yIG5vdyB0aGVzZSBpbXBsZW1lbnRhdGlvbnMgYXJlIHRoZSBzYW1lIHNvIHdlIGp1c3QgcmVleHBvcnRcbmV4cG9ydCBjb25zdCB0cmFja1N5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3NJbkRldiA9XG4gIHRyYWNrU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzSW5EZXZcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCB3aWxsIGNhbGwgYFJlYWN0LnBvc3Rwb25lYCB0aGF0IHRocm93cyB0aGUgcG9zdHBvbmVkIGVycm9yLlxuICovXG50eXBlIFBvc3Rwb25lUHJvcHMgPSB7XG4gIHJlYXNvbjogc3RyaW5nXG4gIHJvdXRlOiBzdHJpbmdcbn1cbmV4cG9ydCBmdW5jdGlvbiBQb3N0cG9uZSh7IHJlYXNvbiwgcm91dGUgfTogUG9zdHBvbmVQcm9wcyk6IG5ldmVyIHtcbiAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9XG4gICAgcHJlcmVuZGVyU3RvcmUgJiYgcHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInXG4gICAgICA/IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgICAgOiBudWxsXG4gIHBvc3Rwb25lV2l0aFRyYWNraW5nKHJvdXRlLCByZWFzb24sIGR5bmFtaWNUcmFja2luZylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc3Rwb25lV2l0aFRyYWNraW5nKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4gIGR5bmFtaWNUcmFja2luZzogbnVsbCB8IER5bmFtaWNUcmFja2luZ1N0YXRlXG4pOiBuZXZlciB7XG4gIGFzc2VydFBvc3Rwb25lKClcbiAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgIGR5bmFtaWNUcmFja2luZy5keW5hbWljQWNjZXNzZXMucHVzaCh7XG4gICAgICAvLyBXaGVuIHdlIGFyZW4ndCBkZWJ1Z2dpbmcsIHdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGFub3RoZXIgZXJyb3IgZm9yIHRoZVxuICAgICAgLy8gc3RhY2sgdHJhY2UuXG4gICAgICBzdGFjazogZHluYW1pY1RyYWNraW5nLmlzRGVidWdEeW5hbWljQWNjZXNzZXNcbiAgICAgICAgPyBuZXcgRXJyb3IoKS5zdGFja1xuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGV4cHJlc3Npb24sXG4gICAgfSlcbiAgfVxuXG4gIFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lKGNyZWF0ZVBvc3Rwb25lUmVhc29uKHJvdXRlLCBleHByZXNzaW9uKSlcbn1cblxuZnVuY3Rpb24gY3JlYXRlUG9zdHBvbmVSZWFzb24ocm91dGU6IHN0cmluZywgZXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gIHJldHVybiAoXG4gICAgYFJvdXRlICR7cm91dGV9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBgICtcbiAgICBgUmVhY3QgdGhyb3dzIHRoaXMgc3BlY2lhbCBvYmplY3QgdG8gaW5kaWNhdGUgd2hlcmUuIEl0IHNob3VsZCBub3QgYmUgY2F1Z2h0IGJ5IGAgK1xuICAgIGB5b3VyIG93biB0cnkvY2F0Y2guIExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3Bwci1jYXVnaHQtZXJyb3JgXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRHluYW1pY1Bvc3Rwb25lKGVycjogdW5rbm93bikge1xuICBpZiAoXG4gICAgdHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiZcbiAgICBlcnIgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgKGVyciBhcyBhbnkpLm1lc3NhZ2UgPT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBpc0R5bmFtaWNQb3N0cG9uZVJlYXNvbigoZXJyIGFzIGFueSkubWVzc2FnZSlcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gaXNEeW5hbWljUG9zdHBvbmVSZWFzb24ocmVhc29uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChcbiAgICByZWFzb24uaW5jbHVkZXMoXG4gICAgICAnbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkJ1xuICAgICkgJiZcbiAgICByZWFzb24uaW5jbHVkZXMoXG4gICAgICAnTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHByLWNhdWdodC1lcnJvcidcbiAgICApXG4gIClcbn1cblxuaWYgKGlzRHluYW1pY1Bvc3Rwb25lUmVhc29uKGNyZWF0ZVBvc3Rwb25lUmVhc29uKCclJSUnLCAnXl5eJykpID09PSBmYWxzZSkge1xuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ0ludmFyaWFudDogaXNEeW5hbWljUG9zdHBvbmUgbWlzaWRlbnRpZmllZCBhIHBvc3Rwb25lIHJlYXNvbi4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzJ1xuICApXG59XG5cbmNvbnN0IE5FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEID0gJ05FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEJ1xuXG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IEVycm9yIHtcbiAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSlcbiAgOyhlcnJvciBhcyBhbnkpLmRpZ2VzdCA9IE5FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEXG4gIHJldHVybiBlcnJvclxufVxuXG50eXBlIERpZ2VzdEVycm9yID0gRXJyb3IgJiB7XG4gIGRpZ2VzdDogc3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXJlbmRlckludGVycnVwdGVkRXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBEaWdlc3RFcnJvciB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJlxuICAgIGVycm9yICE9PSBudWxsICYmXG4gICAgKGVycm9yIGFzIGFueSkuZGlnZXN0ID09PSBORVhUX1BSRVJFTkRFUl9JTlRFUlJVUFRFRCAmJlxuICAgICduYW1lJyBpbiBlcnJvciAmJlxuICAgICdtZXNzYWdlJyBpbiBlcnJvciAmJlxuICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3JcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWNjZXNzZWREeW5hbWljRGF0YShcbiAgZHluYW1pY0FjY2Vzc2VzOiBBcnJheTxEeW5hbWljQWNjZXNzPlxuKTogYm9vbGVhbiB7XG4gIHJldHVybiBkeW5hbWljQWNjZXNzZXMubGVuZ3RoID4gMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3VtZUR5bmFtaWNBY2Nlc3MoXG4gIHNlcnZlckR5bmFtaWM6IER5bmFtaWNUcmFja2luZ1N0YXRlLFxuICBjbGllbnREeW5hbWljOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKTogRHluYW1pY1RyYWNraW5nU3RhdGVbJ2R5bmFtaWNBY2Nlc3NlcyddIHtcbiAgLy8gV2UgbXV0YXRlIGJlY2F1c2Ugd2Ugb25seSBjYWxsIHRoaXMgb25jZSB3ZSBhcmUgbm8gbG9uZ2VyIHdyaXRpbmdcbiAgLy8gdG8gdGhlIGR5bmFtaWNUcmFja2luZ1N0YXRlIGFuZCBpdCdzIG1vcmUgZWZmaWNpZW50IHRoYW4gY3JlYXRpbmcgYSBuZXdcbiAgLy8gYXJyYXkuXG4gIHNlcnZlckR5bmFtaWMuZHluYW1pY0FjY2Vzc2VzLnB1c2goLi4uY2xpZW50RHluYW1pYy5keW5hbWljQWNjZXNzZXMpXG4gIHJldHVybiBzZXJ2ZXJEeW5hbWljLmR5bmFtaWNBY2Nlc3Nlc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RHluYW1pY0FQSUFjY2Vzc2VzKFxuICBkeW5hbWljQWNjZXNzZXM6IEFycmF5PER5bmFtaWNBY2Nlc3M+XG4pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBkeW5hbWljQWNjZXNzZXNcbiAgICAuZmlsdGVyKFxuICAgICAgKGFjY2Vzcyk6IGFjY2VzcyBpcyBSZXF1aXJlZDxEeW5hbWljQWNjZXNzPiA9PlxuICAgICAgICB0eXBlb2YgYWNjZXNzLnN0YWNrID09PSAnc3RyaW5nJyAmJiBhY2Nlc3Muc3RhY2subGVuZ3RoID4gMFxuICAgIClcbiAgICAubWFwKCh7IGV4cHJlc3Npb24sIHN0YWNrIH0pID0+IHtcbiAgICAgIHN0YWNrID0gc3RhY2tcbiAgICAgICAgLnNwbGl0KCdcXG4nKVxuICAgICAgICAvLyBSZW1vdmUgdGhlIFwiRXJyb3I6IFwiIHByZWZpeCBmcm9tIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBzdGFjayB0cmFjZSBhc1xuICAgICAgICAvLyB3ZWxsIGFzIHRoZSBmaXJzdCA0IGxpbmVzIG9mIHRoZSBzdGFjayB0cmFjZSB3aGljaCBpcyB0aGUgZGlzdGFuY2VcbiAgICAgICAgLy8gZnJvbSB0aGUgdXNlciBjb2RlIGFuZCB0aGUgYG5ldyBFcnJvcigpLnN0YWNrYCBjYWxsLlxuICAgICAgICAuc2xpY2UoNClcbiAgICAgICAgLmZpbHRlcigobGluZSkgPT4ge1xuICAgICAgICAgIC8vIEV4Y2x1ZGUgTmV4dC5qcyBpbnRlcm5hbHMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgaWYgKGxpbmUuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcy9uZXh0LycpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBFeGNsdWRlIGFub255bW91cyBmdW5jdGlvbnMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgaWYgKGxpbmUuaW5jbHVkZXMoJyAoPGFub255bW91cz4pJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEV4Y2x1ZGUgTm9kZS5qcyBpbnRlcm5hbHMgZnJvbSB0aGUgc3RhY2sgdHJhY2UuXG4gICAgICAgICAgaWYgKGxpbmUuaW5jbHVkZXMoJyAobm9kZTonKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJ1xcbicpXG4gICAgICByZXR1cm4gYER5bmFtaWMgQVBJIFVzYWdlIERlYnVnIC0gJHtleHByZXNzaW9ufTpcXG4ke3N0YWNrfWBcbiAgICB9KVxufVxuXG5mdW5jdGlvbiBhc3NlcnRQb3N0cG9uZSgpIHtcbiAgaWYgKCFoYXNQb3N0cG9uZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhcmlhbnQ6IFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lIGlzIG5vdCBkZWZpbmVkLiBUaGlzIHN1Z2dlc3RzIHRoZSB3cm9uZyB2ZXJzaW9uIG9mIFJlYWN0IHdhcyBsb2FkZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qc2BcbiAgICApXG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGlzIGEgYml0IG9mIGEgaGFjayB0byBhbGxvdyB1cyB0byBhYm9ydCBhIHJlbmRlciB1c2luZyBhIFBvc3Rwb25lIGluc3RhbmNlIGluc3RlYWQgb2YgYW4gRXJyb3Igd2hpY2ggY2hhbmdlcyBSZWFjdCdzXG4gKiBhYm9ydCBzZW1hbnRpY3Mgc2xpZ2h0bHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZW5kZXJJbkJyb3dzZXJBYm9ydFNpZ25hbCgpOiBBYm9ydFNpZ25hbCB7XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcbiAgY29udHJvbGxlci5hYm9ydChuZXcgQmFpbG91dFRvQ1NSRXJyb3IoJ1JlbmRlciBpbiBCcm93c2VyJykpXG4gIHJldHVybiBjb250cm9sbGVyLnNpZ25hbFxufVxuXG4vKipcbiAqIEluIGEgcHJlcmVuZGVyLCB3ZSBtYXkgZW5kIHVwIHdpdGggaGFuZ2luZyBQcm9taXNlcyBhcyBpbnB1dHMgZHVlIHRoZW1cbiAqIHN0YWxsaW5nIG9uIGNvbm5lY3Rpb24oKSBvciBiZWNhdXNlIHRoZXkncmUgbG9hZGluZyBkeW5hbWljIGRhdGEuIEluIHRoYXRcbiAqIGNhc2Ugd2UgbmVlZCB0byBhYm9ydCB0aGUgZW5jb2Rpbmcgb2YgYXJndW1lbnRzIHNpbmNlIHRoZXknbGwgbmV2ZXIgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVIYW5naW5nSW5wdXRBYm9ydFNpZ25hbChcbiAgd29ya1VuaXRTdG9yZTogV29ya1VuaXRTdG9yZVxuKTogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKHdvcmtVbml0U3RvcmUudHlwZSkge1xuICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKVxuXG4gICAgICBpZiAod29ya1VuaXRTdG9yZS5jYWNoZVNpZ25hbCkge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgY2FjaGVTaWduYWwgaXQgbWVhbnMgd2UncmUgaW4gYSBwcm9zcGVjdGl2ZSByZW5kZXIuIElmXG4gICAgICAgIC8vIHRoZSBpbnB1dCB3ZSdyZSB3YWl0aW5nIG9uIGlzIGNvbWluZyBmcm9tIGFub3RoZXIgY2FjaGUsIHdlIGRvIHdhbnRcbiAgICAgICAgLy8gdG8gd2FpdCBmb3IgaXQgc28gdGhhdCB3ZSBjYW4gcmVzb2x2ZSB0aGlzIGNhY2hlIGVudHJ5IHRvby5cbiAgICAgICAgd29ya1VuaXRTdG9yZS5jYWNoZVNpZ25hbC5pbnB1dFJlYWR5KCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgY29udHJvbGxlci5hYm9ydCgpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2Ugd2UncmUgaW4gdGhlIGZpbmFsIHJlbmRlciBhbmQgd2Ugc2hvdWxkIGFscmVhZHkgaGF2ZSBhbGxcbiAgICAgICAgLy8gb3VyIGNhY2hlcyBmaWxsZWQuXG4gICAgICAgIC8vIElmIHRoZSBwcmVyZW5kZXIgdXNlcyBzdGFnZXMsIHdlIGhhdmUgd2FpdCB1bnRpbCB0aGUgcnVudGltZSBzdGFnZSxcbiAgICAgICAgLy8gYXQgd2hpY2ggcG9pbnQgYWxsIHJ1bnRpbWUgaW5wdXRzIHdpbGwgYmUgcmVzb2x2ZWQuXG4gICAgICAgIC8vIChvdGhlcndpc2UsIGEgcnVudGltZSBwcmVyZW5kZXIgbWlnaHQgY29uc2lkZXIgYGNvb2tpZXMoKWAgaGFuZ2luZ1xuICAgICAgICAvLyAgZXZlbiB0aG91Z2ggdGhleSdkIHJlc29sdmUgaW4gdGhlIG5leHQgdGFzay4pXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFdlIG1pZ2h0IHN0aWxsIGJlIHdhaXRpbmcgb24gc29tZSBtaWNyb3Rhc2tzIHNvIHdlXG4gICAgICAgIC8vIHdhaXQgb25lIHRpY2sgYmVmb3JlIGdpdmluZyB1cC4gV2hlbiB3ZSBnaXZlIHVwLCB3ZSBzdGlsbCB3YW50IHRvXG4gICAgICAgIC8vIHJlbmRlciB0aGUgY29udGVudCBvZiB0aGlzIGNhY2hlIGFzIGRlZXBseSBhcyB3ZSBjYW4gc28gdGhhdCB3ZSBjYW5cbiAgICAgICAgLy8gc3VzcGVuZCBhcyBkZWVwbHkgYXMgcG9zc2libGUgaW4gdGhlIHRyZWUgb3Igbm90IGF0IGFsbCBpZiB3ZSBkb24ndFxuICAgICAgICAvLyBlbmQgdXAgd2FpdGluZyBmb3IgdGhlIGlucHV0LlxuICAgICAgICBjb25zdCBydW50aW1lU3RhZ2VQcm9taXNlID0gZ2V0UnVudGltZVN0YWdlUHJvbWlzZSh3b3JrVW5pdFN0b3JlKVxuICAgICAgICBpZiAocnVudGltZVN0YWdlUHJvbWlzZSkge1xuICAgICAgICAgIHJ1bnRpbWVTdGFnZVByb21pc2UudGhlbigoKSA9PlxuICAgICAgICAgICAgc2NoZWR1bGVPbk5leHRUaWNrKCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSlcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2NoZWR1bGVPbk5leHRUaWNrKCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udHJvbGxlci5zaWduYWxcbiAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICBjYXNlICdjYWNoZSc6XG4gICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGRlZmF1bHQ6XG4gICAgICB3b3JrVW5pdFN0b3JlIHNhdGlzZmllcyBuZXZlclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbm5vdGF0ZUR5bmFtaWNBY2Nlc3MoXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pIHtcbiAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICBkeW5hbWljVHJhY2tpbmcuZHluYW1pY0FjY2Vzc2VzLnB1c2goe1xuICAgICAgc3RhY2s6IGR5bmFtaWNUcmFja2luZy5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzXG4gICAgICAgID8gbmV3IEVycm9yKCkuc3RhY2tcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBleHByZXNzaW9uLFxuICAgIH0pXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUR5bmFtaWNSb3V0ZVBhcmFtcyhleHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgY29uc3Qgd29ya1N0b3JlID0gd29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGNvbnN0IHdvcmtVbml0U3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGlmICh3b3JrU3RvcmUgJiYgd29ya1VuaXRTdG9yZSkge1xuICAgIHN3aXRjaCAod29ya1VuaXRTdG9yZS50eXBlKSB7XG4gICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgIGNhc2UgJ3ByZXJlbmRlcic6IHtcbiAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXNcbiAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zICYmIGZhbGxiYWNrUGFyYW1zLnNpemUgPiAwKSB7XG4gICAgICAgICAgLy8gV2UgYXJlIGluIGEgcHJlcmVuZGVyIHdpdGggY2FjaGVDb21wb25lbnRzIHNlbWFudGljcy4gV2UgYXJlIGdvaW5nIHRvXG4gICAgICAgICAgLy8gaGFuZyBoZXJlIGFuZCBuZXZlciByZXNvbHZlLiBUaGlzIHdpbGwgY2F1c2UgdGhlIGN1cnJlbnRseVxuICAgICAgICAgIC8vIHJlbmRlcmluZyBjb21wb25lbnQgdG8gZWZmZWN0aXZlbHkgYmUgYSBkeW5hbWljIGhvbGUuXG4gICAgICAgICAgUmVhY3QudXNlKFxuICAgICAgICAgICAgbWFrZUhhbmdpbmdQcm9taXNlKFxuICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCxcbiAgICAgICAgICAgICAgd29ya1N0b3JlLnJvdXRlLFxuICAgICAgICAgICAgICBleHByZXNzaW9uXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdwcmVyZW5kZXItcHByJzoge1xuICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtVbml0U3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtc1xuICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMgJiYgZmFsbGJhY2tQYXJhbXMuc2l6ZSA+IDApIHtcbiAgICAgICAgICByZXR1cm4gcG9zdHBvbmVXaXRoVHJhY2tpbmcoXG4gICAgICAgICAgICB3b3JrU3RvcmUucm91dGUsXG4gICAgICAgICAgICBleHByZXNzaW9uLFxuICAgICAgICAgICAgd29ya1VuaXRTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAgIGBcXGAke2V4cHJlc3Npb259XFxgIHdhcyBjYWxsZWQgZHVyaW5nIGEgcnVudGltZSBwcmVyZW5kZXIuIE5leHQuanMgc2hvdWxkIGJlIHByZXZlbnRpbmcgJHtleHByZXNzaW9ufSBmcm9tIGJlaW5nIGluY2x1ZGVkIGluIHNlcnZlciBjb21wb25lbnRzIHN0YXRpY2FsbHksIGJ1dCBkaWQgbm90IGluIHRoaXMgY2FzZS5gXG4gICAgICAgIClcbiAgICAgIGNhc2UgJ2NhY2hlJzpcbiAgICAgIGNhc2UgJ3ByaXZhdGUtY2FjaGUnOlxuICAgICAgICB0aHJvdyBuZXcgSW52YXJpYW50RXJyb3IoXG4gICAgICAgICAgYFxcYCR7ZXhwcmVzc2lvbn1cXGAgd2FzIGNhbGxlZCBpbnNpZGUgYSBjYWNoZSBzY29wZS4gTmV4dC5qcyBzaG91bGQgYmUgcHJldmVudGluZyAke2V4cHJlc3Npb259IGZyb20gYmVpbmcgaW5jbHVkZWQgaW4gc2VydmVyIGNvbXBvbmVudHMgc3RhdGljYWxseSwgYnV0IGRpZCBub3QgaW4gdGhpcyBjYXNlLmBcbiAgICAgICAgKVxuICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHdvcmtVbml0U3RvcmUgc2F0aXNmaWVzIG5ldmVyXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGhhc1N1c3BlbnNlUmVnZXggPSAvXFxuXFxzK2F0IFN1c3BlbnNlIFxcKDxhbm9ueW1vdXM+XFwpL1xuXG4vLyBDb21tb24gaW1wbGljaXQgYm9keSB0YWdzIHRoYXQgUmVhY3Qgd2lsbCB0cmVhdCBhcyBib2R5IHdoZW4gcGxhY2VkIGRpcmVjdGx5IGluIGh0bWxcbmNvbnN0IGJvZHlBbmRJbXBsaWNpdFRhZ3MgPVxuICAnYm9keXxkaXZ8bWFpbnxzZWN0aW9ufGFydGljbGV8YXNpZGV8aGVhZGVyfGZvb3RlcnxuYXZ8Zm9ybXxwfHNwYW58aDF8aDJ8aDN8aDR8aDV8aDYnXG5cbi8vIERldGVjdHMgd2hlbiBSb290TGF5b3V0Qm91bmRhcnkgKG91ciBmcmFtZXdvcmsgbWFya2VyIGNvbXBvbmVudCkgYXBwZWFyc1xuLy8gYWZ0ZXIgU3VzcGVuc2UgaW4gdGhlIGNvbXBvbmVudCBzdGFjaywgaW5kaWNhdGluZyB0aGUgcm9vdCBsYXlvdXQgaXMgd3JhcHBlZFxuLy8gd2l0aGluIGEgU3VzcGVuc2UgYm91bmRhcnkuIEVuc3VyZXMgbm8gYm9keS9odG1sL2ltcGxpY2l0LWJvZHkgY29tcG9uZW50cyBhcmUgaW4gYmV0d2Vlbi5cbi8vXG4vLyBFeGFtcGxlIG1hdGNoZXM6XG4vLyAgIGF0IFN1c3BlbnNlICg8YW5vbnltb3VzPilcbi8vICAgYXQgX19uZXh0X3Jvb3RfbGF5b3V0X2JvdW5kYXJ5X18gKDxhbm9ueW1vdXM+KVxuLy9cbi8vIE9yIHdpdGggb3RoZXIgY29tcG9uZW50cyBpbiBiZXR3ZWVuIChidXQgbm90IGJvZHkvaHRtbC9pbXBsaWNpdC1ib2R5KTpcbi8vICAgYXQgU3VzcGVuc2UgKDxhbm9ueW1vdXM+KVxuLy8gICBhdCBTb21lQ29tcG9uZW50ICg8YW5vbnltb3VzPilcbi8vICAgYXQgX19uZXh0X3Jvb3RfbGF5b3V0X2JvdW5kYXJ5X18gKDxhbm9ueW1vdXM+KVxuY29uc3QgaGFzU3VzcGVuc2VCZWZvcmVSb290TGF5b3V0V2l0aG91dEJvZHlPckltcGxpY2l0Qm9keVJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgYFxcXFxuXFxcXHMrYXQgU3VzcGVuc2UgXFxcXCg8YW5vbnltb3VzPlxcXFwpKD86KD8hXFxcXG5cXFxccythdCAoPzoke2JvZHlBbmRJbXBsaWNpdFRhZ3N9KSBcXFxcKDxhbm9ueW1vdXM+XFxcXCkpW1xcXFxzXFxcXFNdKSo/XFxcXG5cXFxccythdCAke1JPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUV9IFxcXFwoW15cXFxcbl0qXFxcXClgXG4pXG5cbmNvbnN0IGhhc01ldGFkYXRhUmVnZXggPSBuZXcgUmVnRXhwKFxuICBgXFxcXG5cXFxccythdCAke01FVEFEQVRBX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYFxuKVxuY29uc3QgaGFzVmlld3BvcnRSZWdleCA9IG5ldyBSZWdFeHAoXG4gIGBcXFxcblxcXFxzK2F0ICR7VklFV1BPUlRfQk9VTkRBUllfTkFNRX1bXFxcXG5cXFxcc11gXG4pXG5jb25zdCBoYXNPdXRsZXRSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxuXFxcXHMrYXQgJHtPVVRMRVRfQk9VTkRBUllfTkFNRX1bXFxcXG5cXFxcc11gKVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tBbGxvd2VkRHluYW1pY0FjY2VzcyhcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGNvbXBvbmVudFN0YWNrOiBzdHJpbmcsXG4gIGR5bmFtaWNWYWxpZGF0aW9uOiBEeW5hbWljVmFsaWRhdGlvblN0YXRlLFxuICBjbGllbnREeW5hbWljOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKSB7XG4gIGlmIChoYXNPdXRsZXRSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gdHJhY2sgdGhhdCB0aGlzIGlzIGR5bmFtaWMuIEl0IGlzIG9ubHkgc28gd2hlbiBzb21ldGhpbmcgZWxzZSBpcyBhbHNvIGR5bmFtaWMuXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoaGFzTWV0YWRhdGFSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNNZXRhZGF0YSA9IHRydWVcbiAgICByZXR1cm5cbiAgfSBlbHNlIGlmIChoYXNWaWV3cG9ydFJlZ2V4LnRlc3QoY29tcG9uZW50U3RhY2spKSB7XG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY1ZpZXdwb3J0ID0gdHJ1ZVxuICAgIHJldHVyblxuICB9IGVsc2UgaWYgKFxuICAgIGhhc1N1c3BlbnNlQmVmb3JlUm9vdExheW91dFdpdGhvdXRCb2R5T3JJbXBsaWNpdEJvZHlSZWdleC50ZXN0KFxuICAgICAgY29tcG9uZW50U3RhY2tcbiAgICApXG4gICkge1xuICAgIC8vIEZvciBTdXNwZW5zZSB3aXRoaW4gYm9keSwgdGhlIHByZWx1ZGUgd291bGRuJ3QgYmUgZW1wdHkgc28gaXQgd291bGRuJ3QgdmlvbGF0ZSB0aGUgZW1wdHkgc3RhdGljIHNoZWxscyBydWxlLlxuICAgIC8vIEJ1dCBpZiB5b3UgaGF2ZSBTdXNwZW5zZSBhYm92ZSBib2R5LCB0aGUgcHJlbHVkZSBpcyBlbXB0eSBidXQgd2UgYWxsb3cgdGhhdCBiZWNhdXNlIGhhdmluZyBTdXNwZW5zZVxuICAgIC8vIGlzIGFuIGV4cGxpY2l0IHNpZ25hbCBmcm9tIHRoZSB1c2VyIHRoYXQgdGhleSBhY2tub3dsZWRnZSB0aGUgZW1wdHkgc2hlbGwgYW5kIHdhbnQgZHluYW1pYyByZW5kZXJpbmcuXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzQWxsb3dlZER5bmFtaWMgPSB0cnVlXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzU3VzcGVuc2VBYm92ZUJvZHkgPSB0cnVlXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoaGFzU3VzcGVuc2VSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIC8vIHRoaXMgZXJyb3IgaGFkIGEgU3VzcGVuc2UgYm91bmRhcnkgYWJvdmUgaXQgc28gd2UgZG9uJ3QgbmVlZCB0byByZXBvcnQgaXQgYXMgYSBzb3VyY2VcbiAgICAvLyBvZiBkaXNhbGxvd2VkXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzQWxsb3dlZER5bmFtaWMgPSB0cnVlXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoY2xpZW50RHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKSB7XG4gICAgLy8gVGhpcyB0YXNrIHdhcyB0aGUgdGFzayB0aGF0IGNhbGxlZCB0aGUgc3luYyBlcnJvci5cbiAgICBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzLnB1c2goXG4gICAgICBjbGllbnREeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2tcbiAgICApXG4gICAgcmV0dXJuXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBSb3V0ZSBcIiR7d29ya1N0b3JlLnJvdXRlfVwiOiBBIGNvbXBvbmVudCBhY2Nlc3NlZCBkYXRhLCBoZWFkZXJzLCBwYXJhbXMsIHNlYXJjaFBhcmFtcywgb3IgYSBzaG9ydC1saXZlZCBjYWNoZSB3aXRob3V0IGEgU3VzcGVuc2UgYm91bmRhcnkgbm9yIGEgXCJ1c2UgY2FjaGVcIiBhYm92ZSBpdC4gU2VlIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1wcmVyZW5kZXItbWlzc2luZy1zdXNwZW5zZWBcbiAgICBjb25zdCBlcnJvciA9IGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudE9yT3duZXJTdGFjayhtZXNzYWdlLCBjb21wb25lbnRTdGFjaylcbiAgICBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzLnB1c2goZXJyb3IpXG4gICAgcmV0dXJuXG4gIH1cbn1cblxuLyoqXG4gKiBJbiBkZXYgbW9kZSwgd2UgcHJlZmVyIHVzaW5nIHRoZSBvd25lciBzdGFjaywgb3RoZXJ3aXNlIHRoZSBwcm92aWRlZFxuICogY29tcG9uZW50IHN0YWNrIGlzIHVzZWQuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudE9yT3duZXJTdGFjayhcbiAgbWVzc2FnZTogc3RyaW5nLFxuICBjb21wb25lbnRTdGFjazogc3RyaW5nXG4pIHtcbiAgY29uc3Qgb3duZXJTdGFjayA9XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBSZWFjdC5jYXB0dXJlT3duZXJTdGFja1xuICAgICAgPyBSZWFjdC5jYXB0dXJlT3duZXJTdGFjaygpXG4gICAgICA6IG51bGxcblxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKVxuICBlcnJvci5zdGFjayA9IGVycm9yLm5hbWUgKyAnOiAnICsgbWVzc2FnZSArIChvd25lclN0YWNrID8/IGNvbXBvbmVudFN0YWNrKVxuICByZXR1cm4gZXJyb3Jcbn1cblxuZXhwb3J0IGVudW0gUHJlbHVkZVN0YXRlIHtcbiAgRnVsbCA9IDAsXG4gIEVtcHR5ID0gMSxcbiAgRXJyb3JlZCA9IDIsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dEaXNhbGxvd2VkRHluYW1pY0Vycm9yKFxuICB3b3JrU3RvcmU6IFdvcmtTdG9yZSxcbiAgZXJyb3I6IEVycm9yXG4pOiB2b2lkIHtcbiAgY29uc29sZS5lcnJvcihlcnJvcilcblxuICBpZiAoIXdvcmtTdG9yZS5kZXYpIHtcbiAgICBpZiAod29ya1N0b3JlLmhhc1JlYWRhYmxlRXJyb3JTdGFja3MpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBUbyBnZXQgYSBtb3JlIGRldGFpbGVkIHN0YWNrIHRyYWNlIGFuZCBwaW5wb2ludCB0aGUgaXNzdWUsIHN0YXJ0IHRoZSBhcHAgaW4gZGV2ZWxvcG1lbnQgbW9kZSBieSBydW5uaW5nIFxcYG5leHQgZGV2XFxgLCB0aGVuIG9wZW4gXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBpbiB5b3VyIGJyb3dzZXIgdG8gaW52ZXN0aWdhdGUgdGhlIGVycm9yLmBcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgVG8gZ2V0IGEgbW9yZSBkZXRhaWxlZCBzdGFjayB0cmFjZSBhbmQgcGlucG9pbnQgdGhlIGlzc3VlLCB0cnkgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4gIC0gU3RhcnQgdGhlIGFwcCBpbiBkZXZlbG9wbWVudCBtb2RlIGJ5IHJ1bm5pbmcgXFxgbmV4dCBkZXZcXGAsIHRoZW4gb3BlbiBcIiR7d29ya1N0b3JlLnJvdXRlfVwiIGluIHlvdXIgYnJvd3NlciB0byBpbnZlc3RpZ2F0ZSB0aGUgZXJyb3IuXG4gIC0gUmVydW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQgd2l0aCBcXGBuZXh0IGJ1aWxkIC0tZGVidWctcHJlcmVuZGVyXFxgIHRvIGdlbmVyYXRlIGJldHRlciBzdGFjayB0cmFjZXMuYClcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93SWZEaXNhbGxvd2VkRHluYW1pYyhcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIHByZWx1ZGU6IFByZWx1ZGVTdGF0ZSxcbiAgZHluYW1pY1ZhbGlkYXRpb246IER5bmFtaWNWYWxpZGF0aW9uU3RhdGUsXG4gIHNlcnZlckR5bmFtaWM6IER5bmFtaWNUcmFja2luZ1N0YXRlXG4pOiB2b2lkIHtcbiAgaWYgKHByZWx1ZGUgIT09IFByZWx1ZGVTdGF0ZS5GdWxsKSB7XG4gICAgaWYgKGR5bmFtaWNWYWxpZGF0aW9uLmhhc1N1c3BlbnNlQWJvdmVCb2R5KSB7XG4gICAgICAvLyBUaGlzIHJvdXRlIGhhcyBvcHRlZCBpbnRvIGFsbG93aW5nIGZ1bGx5IGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAvLyBieSBpbmNsdWRpbmcgYSBTdXNwZW5zZSBib3VuZGFyeSBhYm92ZSB0aGUgYm9keS4gSW4gdGhpcyBjYXNlXG4gICAgICAvLyBhIGxhY2sgb2YgYSBzaGVsbCBpcyBub3QgY29uc2lkZXJlZCBkaXNhbGxvd2VkIHNvIHdlIHNpbXBseSByZXR1cm5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzZXJ2ZXJEeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spIHtcbiAgICAgIC8vIFRoZXJlIGlzIG5vIHNoZWxsIGFuZCB0aGUgc2VydmVyIGRpZCBzb21ldGhpbmcgc3luYyBkeW5hbWljIGxpa2VseVxuICAgICAgLy8gbGVhZGluZyB0byBhbiBlYXJseSB0ZXJtaW5hdGlvbiBvZiB0aGUgcHJlcmVuZGVyIGJlZm9yZSB0aGUgc2hlbGxcbiAgICAgIC8vIGNvdWxkIGJlIGNvbXBsZXRlZC4gV2UgdGVybWluYXRlIHRoZSBidWlsZC92YWxpZGF0aW5nIHJlbmRlci5cbiAgICAgIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3IoXG4gICAgICAgIHdvcmtTdG9yZSxcbiAgICAgICAgc2VydmVyRHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrXG4gICAgICApXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG5cbiAgICAvLyBXZSBkaWRuJ3QgaGF2ZSBhbnkgc3luYyBiYWlsb3V0cyBidXQgdGhlcmUgbWF5IGJlIHVzZXIgY29kZSB3aGljaFxuICAgIC8vIGJsb2NrZWQgdGhlIHJvb3QuIFdlIHdvdWxkIGhhdmUgY2FwdHVyZWQgdGhlc2UgZHVyaW5nIHRoZSBwcmVyZW5kZXJcbiAgICAvLyBhbmQgY2FuIGxvZyB0aGVtIGhlcmUgYW5kIHRoZW4gdGVybWluYXRlIHRoZSBidWlsZC92YWxpZGF0aW5nIHJlbmRlclxuICAgIGNvbnN0IGR5bmFtaWNFcnJvcnMgPSBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzXG4gICAgaWYgKGR5bmFtaWNFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkeW5hbWljRXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3Iod29ya1N0b3JlLCBkeW5hbWljRXJyb3JzW2ldKVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBnb3QgdGhpcyBmYXIgdGhlbiB0aGUgb25seSBvdGhlciB0aGluZyB0aGF0IGNvdWxkIGJlIGJsb2NraW5nXG4gICAgLy8gdGhlIHJvb3QgaXMgZHluYW1pYyBWaWV3cG9ydC4gSWYgdGhpcyBpcyBkeW5hbWljIHRoZW5cbiAgICAvLyB5b3UgbmVlZCB0byBvcHQgaW50byB0aGF0IGJ5IGFkZGluZyBhIFN1c3BlbnNlIGJvdW5kYXJ5IGFib3ZlIHRoZSBib2R5XG4gICAgLy8gdG8gaW5kaWNhdGUgeW91ciBhcmUgb2sgd2l0aCBmdWxseSBkeW5hbWljIHJlbmRlcmluZy5cbiAgICBpZiAoZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY1ZpZXdwb3J0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgUm91dGUgXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBoYXMgYSBcXGBnZW5lcmF0ZVZpZXdwb3J0XFxgIHRoYXQgZGVwZW5kcyBvbiBSZXF1ZXN0IGRhdGEgKFxcYGNvb2tpZXMoKVxcYCwgZXRjLi4uKSBvciB1bmNhY2hlZCBleHRlcm5hbCBkYXRhIChcXGBmZXRjaCguLi4pXFxgLCBldGMuLi4pIHdpdGhvdXQgZXhwbGljaXRseSBhbGxvd2luZyBmdWxseSBkeW5hbWljIHJlbmRlcmluZy4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXByZXJlbmRlci1keW5hbWljLXZpZXdwb3J0YFxuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuXG4gICAgaWYgKHByZWx1ZGUgPT09IFByZWx1ZGVTdGF0ZS5FbXB0eSkge1xuICAgICAgLy8gSWYgd2UgZXZlciBnZXQgdGhpcyBmYXIgdGhlbiB3ZSBtZXNzZWQgdXAgdGhlIHRyYWNraW5nIG9mIGludmFsaWQgZHluYW1pYy5cbiAgICAgIC8vIFdlIHN0aWxsIGFkaGVyZSB0byB0aGUgY29uc3RyYWludCB0aGF0IHlvdSBtdXN0IHByb2R1Y2UgYSBzaGVsbCBidXQgaW52aXRlIHRoZVxuICAgICAgLy8gdXNlciB0byByZXBvcnQgdGhpcyBhcyBhIGJ1ZyBpbiBOZXh0LmpzLlxuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFJvdXRlIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgZGlkIG5vdCBwcm9kdWNlIGEgc3RhdGljIHNoZWxsIGFuZCBOZXh0LmpzIHdhcyB1bmFibGUgdG8gZGV0ZXJtaW5lIGEgcmVhc29uLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuYFxuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChcbiAgICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0FsbG93ZWREeW5hbWljID09PSBmYWxzZSAmJlxuICAgICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY01ldGFkYXRhXG4gICAgKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgUm91dGUgXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBoYXMgYSBcXGBnZW5lcmF0ZU1ldGFkYXRhXFxgIHRoYXQgZGVwZW5kcyBvbiBSZXF1ZXN0IGRhdGEgKFxcYGNvb2tpZXMoKVxcYCwgZXRjLi4uKSBvciB1bmNhY2hlZCBleHRlcm5hbCBkYXRhIChcXGBmZXRjaCguLi4pXFxgLCBldGMuLi4pIHdoZW4gdGhlIHJlc3Qgb2YgdGhlIHJvdXRlIGRvZXMgbm90LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLWR5bmFtaWMtbWV0YWRhdGFgXG4gICAgICApXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5VW50aWxSdW50aW1lU3RhZ2U8VD4oXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblJ1bnRpbWUsXG4gIHJlc3VsdDogUHJvbWlzZTxUPlxuKTogUHJvbWlzZTxUPiB7XG4gIGlmIChwcmVyZW5kZXJTdG9yZS5ydW50aW1lU3RhZ2VQcm9taXNlKSB7XG4gICAgcmV0dXJuIHByZXJlbmRlclN0b3JlLnJ1bnRpbWVTdGFnZVByb21pc2UudGhlbigoKSA9PiByZXN1bHQpXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbIlBvc3Rwb25lIiwiUHJlbHVkZVN0YXRlIiwiYWJvcnRBbmRUaHJvd09uU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2VzcyIsImFib3J0T25TeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3MiLCJhY2Nlc3NlZER5bmFtaWNEYXRhIiwiYW5ub3RhdGVEeW5hbWljQWNjZXNzIiwiY29uc3VtZUR5bmFtaWNBY2Nlc3MiLCJjcmVhdGVEeW5hbWljVHJhY2tpbmdTdGF0ZSIsImNyZWF0ZUR5bmFtaWNWYWxpZGF0aW9uU3RhdGUiLCJjcmVhdGVIYW5naW5nSW5wdXRBYm9ydFNpZ25hbCIsImNyZWF0ZVJlbmRlckluQnJvd3NlckFib3J0U2lnbmFsIiwiZGVsYXlVbnRpbFJ1bnRpbWVTdGFnZSIsImZvcm1hdER5bmFtaWNBUElBY2Nlc3NlcyIsImdldEZpcnN0RHluYW1pY1JlYXNvbiIsImlzRHluYW1pY1Bvc3Rwb25lIiwiaXNQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yIiwibG9nRGlzYWxsb3dlZER5bmFtaWNFcnJvciIsIm1hcmtDdXJyZW50U2NvcGVBc0R5bmFtaWMiLCJwb3N0cG9uZVdpdGhUcmFja2luZyIsInRocm93SWZEaXNhbGxvd2VkRHluYW1pYyIsInRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uIiwidHJhY2tBbGxvd2VkRHluYW1pY0FjY2VzcyIsInRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIiLCJ0cmFja1N5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2Vzc0luRGV2IiwidHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYiLCJ1c2VEeW5hbWljUm91dGVQYXJhbXMiLCJ3YXJuT25TeW5jRHluYW1pY0Vycm9yIiwiaGFzUG9zdHBvbmUiLCJSZWFjdCIsInVuc3RhYmxlX3Bvc3Rwb25lIiwiaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcyIsImR5bmFtaWNBY2Nlc3NlcyIsInN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2siLCJoYXNTdXNwZW5zZUFib3ZlQm9keSIsImhhc0R5bmFtaWNNZXRhZGF0YSIsImhhc0R5bmFtaWNWaWV3cG9ydCIsImhhc0FsbG93ZWREeW5hbWljIiwiZHluYW1pY0Vycm9ycyIsInRyYWNraW5nU3RhdGUiLCJleHByZXNzaW9uIiwic3RvcmUiLCJ3b3JrVW5pdFN0b3JlIiwidHlwZSIsImZvcmNlRHluYW1pYyIsImZvcmNlU3RhdGljIiwiZHluYW1pY1Nob3VsZEVycm9yIiwiU3RhdGljR2VuQmFpbG91dEVycm9yIiwicm91dGUiLCJkeW5hbWljVHJhY2tpbmciLCJyZXZhbGlkYXRlIiwiZXJyIiwiRHluYW1pY1NlcnZlckVycm9yIiwiZHluYW1pY1VzYWdlRGVzY3JpcHRpb24iLCJkeW5hbWljVXNhZ2VTdGFjayIsInN0YWNrIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlZER5bmFtaWMiLCJwcmVyZW5kZXJTdG9yZSIsImFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzIiwicmVhc29uIiwiZXJyb3IiLCJjcmVhdGVQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yIiwiY29udHJvbGxlciIsImFib3J0IiwicHVzaCIsIkVycm9yIiwidW5kZWZpbmVkIiwiZXJyb3JXaXRoU3RhY2siLCJyZXF1ZXN0U3RvcmUiLCJwcmVyZW5kZXJQaGFzZSIsInByZXJlbmRlclNpZ25hbCIsInNpZ25hbCIsImFib3J0ZWQiLCJjb25zb2xlIiwid29ya1VuaXRBc3luY1N0b3JhZ2UiLCJnZXRTdG9yZSIsImFzc2VydFBvc3Rwb25lIiwiY3JlYXRlUG9zdHBvbmVSZWFzb24iLCJtZXNzYWdlIiwiaXNEeW5hbWljUG9zdHBvbmVSZWFzb24iLCJpbmNsdWRlcyIsIk5FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEIiwiZGlnZXN0IiwibGVuZ3RoIiwic2VydmVyRHluYW1pYyIsImNsaWVudER5bmFtaWMiLCJmaWx0ZXIiLCJhY2Nlc3MiLCJtYXAiLCJzcGxpdCIsInNsaWNlIiwibGluZSIsImpvaW4iLCJBYm9ydENvbnRyb2xsZXIiLCJCYWlsb3V0VG9DU1JFcnJvciIsImNhY2hlU2lnbmFsIiwiaW5wdXRSZWFkeSIsInRoZW4iLCJydW50aW1lU3RhZ2VQcm9taXNlIiwiZ2V0UnVudGltZVN0YWdlUHJvbWlzZSIsInNjaGVkdWxlT25OZXh0VGljayIsIndvcmtTdG9yZSIsIndvcmtBc3luY1N0b3JhZ2UiLCJmYWxsYmFja1BhcmFtcyIsImZhbGxiYWNrUm91dGVQYXJhbXMiLCJzaXplIiwidXNlIiwibWFrZUhhbmdpbmdQcm9taXNlIiwicmVuZGVyU2lnbmFsIiwiSW52YXJpYW50RXJyb3IiLCJoYXNTdXNwZW5zZVJlZ2V4IiwiYm9keUFuZEltcGxpY2l0VGFncyIsImhhc1N1c3BlbnNlQmVmb3JlUm9vdExheW91dFdpdGhvdXRCb2R5T3JJbXBsaWNpdEJvZHlSZWdleCIsIlJlZ0V4cCIsIlJPT1RfTEFZT1VUX0JPVU5EQVJZX05BTUUiLCJoYXNNZXRhZGF0YVJlZ2V4IiwiTUVUQURBVEFfQk9VTkRBUllfTkFNRSIsImhhc1ZpZXdwb3J0UmVnZXgiLCJWSUVXUE9SVF9CT1VOREFSWV9OQU1FIiwiaGFzT3V0bGV0UmVnZXgiLCJPVVRMRVRfQk9VTkRBUllfTkFNRSIsImNvbXBvbmVudFN0YWNrIiwiZHluYW1pY1ZhbGlkYXRpb24iLCJ0ZXN0IiwiY3JlYXRlRXJyb3JXaXRoQ29tcG9uZW50T3JPd25lclN0YWNrIiwib3duZXJTdGFjayIsImNhcHR1cmVPd25lclN0YWNrIiwibmFtZSIsImRldiIsImhhc1JlYWRhYmxlRXJyb3JTdGFja3MiLCJwcmVsdWRlIiwiaSIsInJlc3VsdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js":
|
||
/*!*****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js ***!
|
||
\*****************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createDedupedByCallsiteServerErrorLoggerDev\", ({\n enumerable: true,\n get: function() {\n return createDedupedByCallsiteServerErrorLoggerDev;\n }\n}));\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nconst errorRef = {\n current: null\n};\n// React.cache is currently only available in canary/experimental React channels.\nconst cache = typeof _react.cache === 'function' ? _react.cache : (fn)=>fn;\n// When Cache Components is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = false ? 0 : console.warn;\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n(key)=>{\n try {\n logErrorOrWarn(errorRef.current);\n } finally{\n errorRef.current = null;\n }\n});\nfunction createDedupedByCallsiteServerErrorLoggerDev(getMessage) {\n return function logDedupedError(...args) {\n const message = getMessage(...args);\n if (true) {\n var _stack;\n const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split('\\n');\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message);\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4];\n errorRef.current = message;\n flushCurrentErrorIfNew(key);\n }\n } else {}\n };\n}\n\n//# sourceMappingURL=create-deduped-by-callsite-server-error-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0VBQThFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLE1BQW1DLEdBQUcsQ0FBYTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsS0FBSyxFQUVOO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXZcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXY7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuY29uc3QgZXJyb3JSZWYgPSB7XG4gICAgY3VycmVudDogbnVsbFxufTtcbi8vIFJlYWN0LmNhY2hlIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBjYW5hcnkvZXhwZXJpbWVudGFsIFJlYWN0IGNoYW5uZWxzLlxuY29uc3QgY2FjaGUgPSB0eXBlb2YgX3JlYWN0LmNhY2hlID09PSAnZnVuY3Rpb24nID8gX3JlYWN0LmNhY2hlIDogKGZuKT0+Zm47XG4vLyBXaGVuIENhY2hlIENvbXBvbmVudHMgaXMgZW5hYmxlZCwgd2UgcmVjb3JkIHRoZXNlIGFzIGVycm9ycyBzbyB0aGF0IHRoZXlcbi8vIGFyZSBjYXB0dXJlZCBieSB0aGUgZGV2IG92ZXJsYXkgYXMgaXQncyBtb3JlIGNyaXRpY2FsIHRvIGZpeCB0aGVzZVxuLy8gd2hlbiBlbmFibGVkLlxuY29uc3QgbG9nRXJyb3JPcldhcm4gPSBwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUyA/IGNvbnNvbGUuZXJyb3IgOiBjb25zb2xlLndhcm47XG4vLyBXZSBkb24ndCB3YW50IHRvIGRlZHVwZSBhY3Jvc3MgcmVxdWVzdHMuXG4vLyBUaGUgZGV2ZWxvcGVyIG1pZ2h0J3ZlIGp1c3QgYXR0ZW1wdGVkIHRvIGZpeCB0aGUgd2FybmluZyBzbyB3ZSBzaG91bGQgd2FybiBhZ2FpbiBpZiBpdCBzdGlsbCBoYXBwZW5zLlxuY29uc3QgZmx1c2hDdXJyZW50RXJyb3JJZk5ldyA9IGNhY2hlKC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gY2FjaGUga2V5XG4oa2V5KT0+e1xuICAgIHRyeSB7XG4gICAgICAgIGxvZ0Vycm9yT3JXYXJuKGVycm9yUmVmLmN1cnJlbnQpO1xuICAgIH0gZmluYWxseXtcbiAgICAgICAgZXJyb3JSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBjcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KGdldE1lc3NhZ2UpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gbG9nRGVkdXBlZEVycm9yKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGdldE1lc3NhZ2UoLi4uYXJncyk7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgX3N0YWNrO1xuICAgICAgICAgICAgY29uc3QgY2FsbFN0YWNrRnJhbWVzID0gKF9zdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgIGlmIChjYWxsU3RhY2tGcmFtZXMgPT09IHVuZGVmaW5lZCB8fCBjYWxsU3RhY2tGcmFtZXMubGVuZ3RoIDwgNCkge1xuICAgICAgICAgICAgICAgIGxvZ0Vycm9yT3JXYXJuKG1lc3NhZ2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBFcnJvcjpcbiAgICAgICAgICAgICAgICAvLyAgIGxvZ0RlZHVwZWRFcnJvclxuICAgICAgICAgICAgICAgIC8vICAgYXN5bmNBcGlCZWluZ0FjY2Vzc2VkU3luY2hyb25vdXNseVxuICAgICAgICAgICAgICAgIC8vICAgPHVzZXJsYW5kIGNhbGxzaXRlPlxuICAgICAgICAgICAgICAgIC8vIFRPRE86IFRoaXMgYnJlYWtzIGlmIHNvdXJjZW1hcHMgd2l0aCBpZ25vcmUgbGlzdHMgYXJlIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gY2FsbFN0YWNrRnJhbWVzWzRdO1xuICAgICAgICAgICAgICAgIGVycm9yUmVmLmN1cnJlbnQgPSBtZXNzYWdlO1xuICAgICAgICAgICAgICAgIGZsdXNoQ3VycmVudEVycm9ySWZOZXcoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvZ0Vycm9yT3JXYXJuKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/dev/hot-reloader-types.js ***!
|
||
\*****************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HMR_ACTIONS_SENT_TO_BROWSER\", ({\n enumerable: true,\n get: function() {\n return HMR_ACTIONS_SENT_TO_BROWSER;\n }\n}));\nvar HMR_ACTIONS_SENT_TO_BROWSER = /*#__PURE__*/ 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[\"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[\"ISR_MANIFEST\"] = \"isrManifest\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEV_INDICATOR\"] = \"devIndicator\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEVTOOLS_CONFIG\"] = \"devtoolsConfig\";\n return HMR_ACTIONS_SENT_TO_BROWSER;\n}({});\n\n//# sourceMappingURL=hot-reloader-types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0RBQThEO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUjtcbiAgICB9XG59KTtcbnZhciBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUikge1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkFEREVEX1BBR0VcIl0gPSBcImFkZGVkUGFnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlJFTU9WRURfUEFHRVwiXSA9IFwicmVtb3ZlZFBhZ2VcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJSRUxPQURfUEFHRVwiXSA9IFwicmVsb2FkUGFnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFU1wiXSA9IFwic2VydmVyQ29tcG9uZW50Q2hhbmdlc1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIk1JRERMRVdBUkVfQ0hBTkdFU1wiXSA9IFwibWlkZGxld2FyZUNoYW5nZXNcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJDTElFTlRfQ0hBTkdFU1wiXSA9IFwiY2xpZW50Q2hhbmdlc1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlNFUlZFUl9PTkxZX0NIQU5HRVNcIl0gPSBcInNlcnZlck9ubHlDaGFuZ2VzXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU1lOQ1wiXSA9IFwic3luY1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkJVSUxUXCJdID0gXCJidWlsdFwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkJVSUxESU5HXCJdID0gXCJidWlsZGluZ1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkRFVl9QQUdFU19NQU5JRkVTVF9VUERBVEVcIl0gPSBcImRldlBhZ2VzTWFuaWZlc3RVcGRhdGVcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJUVVJCT1BBQ0tfTUVTU0FHRVwiXSA9IFwidHVyYm9wYWNrLW1lc3NhZ2VcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJTRVJWRVJfRVJST1JcIl0gPSBcInNlcnZlckVycm9yXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiVFVSQk9QQUNLX0NPTk5FQ1RFRFwiXSA9IFwidHVyYm9wYWNrLWNvbm5lY3RlZFwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIklTUl9NQU5JRkVTVFwiXSA9IFwiaXNyTWFuaWZlc3RcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJERVZfSU5ESUNBVE9SXCJdID0gXCJkZXZJbmRpY2F0b3JcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJERVZUT09MU19DT05GSUdcIl0gPSBcImRldnRvb2xzQ29uZmlnXCI7XG4gICAgcmV0dXJuIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUjtcbn0oe30pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob3QtcmVsb2FkZXItdHlwZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/dynamic-rendering-utils.js ***!
|
||
\******************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 isHangingPromiseRejectionError: function() {\n return isHangingPromiseRejectionError;\n },\n makeDevtoolsIOAwarePromise: function() {\n return makeDevtoolsIOAwarePromise;\n },\n makeHangingPromise: function() {\n return makeHangingPromise;\n }\n});\nfunction isHangingPromiseRejectionError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === HANGING_PROMISE_REJECTION;\n}\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';\nclass HangingPromiseRejectionError extends Error {\n constructor(route, expression){\n super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;\n }\n}\nconst abortListenersBySignal = new WeakMap();\nfunction makeHangingPromise(signal, route, expression) {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression));\n } else {\n const hangingPromise = new Promise((_, reject)=>{\n const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression));\n let currentListeners = abortListenersBySignal.get(signal);\n if (currentListeners) {\n currentListeners.push(boundRejection);\n } else {\n const listeners = [\n boundRejection\n ];\n abortListenersBySignal.set(signal, listeners);\n signal.addEventListener('abort', ()=>{\n for(let i = 0; i < listeners.length; i++){\n listeners[i]();\n }\n }, {\n once: true\n });\n }\n });\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject);\n return hangingPromise;\n }\n}\nfunction ignoreReject() {}\nfunction makeDevtoolsIOAwarePromise(underlying) {\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise((resolve)=>{\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(()=>{\n resolve(underlying);\n }, 0);\n });\n}\n\n//# sourceMappingURL=dynamic-rendering-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9keW5hbWljLXJlbmRlcmluZy11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxZQUFZLHNHQUFzRyxZQUFZLCtLQUErSyxNQUFNO0FBQ3pWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsc0JBQXNCO0FBQ3pEO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvZHluYW1pYy1yZW5kZXJpbmctdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3I6IG51bGwsXG4gICAgbWFrZURldnRvb2xzSU9Bd2FyZVByb21pc2U6IG51bGwsXG4gICAgbWFrZUhhbmdpbmdQcm9taXNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3I7XG4gICAgfSxcbiAgICBtYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBtYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZTtcbiAgICB9LFxuICAgIG1ha2VIYW5naW5nUHJvbWlzZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBtYWtlSGFuZ2luZ1Byb21pc2U7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3IoZXJyKSB7XG4gICAgaWYgKHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8IGVyciA9PT0gbnVsbCB8fCAhKCdkaWdlc3QnIGluIGVycikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZXJyLmRpZ2VzdCA9PT0gSEFOR0lOR19QUk9NSVNFX1JFSkVDVElPTjtcbn1cbmNvbnN0IEhBTkdJTkdfUFJPTUlTRV9SRUpFQ1RJT04gPSAnSEFOR0lOR19QUk9NSVNFX1JFSkVDVElPTic7XG5jbGFzcyBIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHJvdXRlLCBleHByZXNzaW9uKXtcbiAgICAgICAgc3VwZXIoYER1cmluZyBwcmVyZW5kZXJpbmcsICR7ZXhwcmVzc2lvbn0gcmVqZWN0cyB3aGVuIHRoZSBwcmVyZW5kZXIgaXMgY29tcGxldGUuIFR5cGljYWxseSB0aGVzZSBlcnJvcnMgYXJlIGhhbmRsZWQgYnkgUmVhY3QgYnV0IGlmIHlvdSBtb3ZlICR7ZXhwcmVzc2lvbn0gdG8gYSBkaWZmZXJlbnQgY29udGV4dCBieSB1c2luZyBcXGBzZXRUaW1lb3V0XFxgLCBcXGBhZnRlclxcYCwgb3Igc2ltaWxhciBmdW5jdGlvbnMgeW91IG1heSBvYnNlcnZlIHRoaXMgZXJyb3IgYW5kIHlvdSBzaG91bGQgaGFuZGxlIGl0IGluIHRoYXQgY29udGV4dC4gVGhpcyBvY2N1cnJlZCBhdCByb3V0ZSBcIiR7cm91dGV9XCIuYCksIHRoaXMucm91dGUgPSByb3V0ZSwgdGhpcy5leHByZXNzaW9uID0gZXhwcmVzc2lvbiwgdGhpcy5kaWdlc3QgPSBIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OO1xuICAgIH1cbn1cbmNvbnN0IGFib3J0TGlzdGVuZXJzQnlTaWduYWwgPSBuZXcgV2Vha01hcCgpO1xuZnVuY3Rpb24gbWFrZUhhbmdpbmdQcm9taXNlKHNpZ25hbCwgcm91dGUsIGV4cHJlc3Npb24pIHtcbiAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yKHJvdXRlLCBleHByZXNzaW9uKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaGFuZ2luZ1Byb21pc2UgPSBuZXcgUHJvbWlzZSgoXywgcmVqZWN0KT0+e1xuICAgICAgICAgICAgY29uc3QgYm91bmRSZWplY3Rpb24gPSByZWplY3QuYmluZChudWxsLCBuZXcgSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbikpO1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRMaXN0ZW5lcnMgPSBhYm9ydExpc3RlbmVyc0J5U2lnbmFsLmdldChzaWduYWwpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRMaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50TGlzdGVuZXJzLnB1c2goYm91bmRSZWplY3Rpb24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ZW5lcnMgPSBbXG4gICAgICAgICAgICAgICAgICAgIGJvdW5kUmVqZWN0aW9uXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBhYm9ydExpc3RlbmVyc0J5U2lnbmFsLnNldChzaWduYWwsIGxpc3RlbmVycyk7XG4gICAgICAgICAgICAgICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgKCk9PntcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnNbaV0oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gV2UgYXJlIGZpbmUgaWYgbm8gb25lIGFjdHVhbGx5IGF3YWl0cyB0aGlzIHByb21pc2UuIFdlIHNob3VsZG4ndCBjb25zaWRlciB0aGlzIGFuIHVuaGFuZGxlZCByZWplY3Rpb24gc29cbiAgICAgICAgLy8gd2UgYXR0YWNoIGEgbm9vcCBjYXRjaCBoYW5kbGVyIGhlcmUgdG8gc3VwcHJlc3MgdGhpcyB3YXJuaW5nLiBJZiB5b3UgYWN0dWFsbHkgYXdhaXQgc29tZXdoZXJlIG9yIGNvbnN0cnVjdFxuICAgICAgICAvLyB5b3VyIG93biBwcm9taXNlIG91dCBvZiBpdCB5b3UnbGwgbmVlZCB0byBlbnN1cmUgeW91IGhhbmRsZSB0aGUgZXJyb3Igd2hlbiBpdCByZWplY3RzLlxuICAgICAgICBoYW5naW5nUHJvbWlzZS5jYXRjaChpZ25vcmVSZWplY3QpO1xuICAgICAgICByZXR1cm4gaGFuZ2luZ1Byb21pc2U7XG4gICAgfVxufVxuZnVuY3Rpb24gaWdub3JlUmVqZWN0KCkge31cbmZ1bmN0aW9uIG1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKHVuZGVybHlpbmcpIHtcbiAgICAvLyBpbiBSZWFjdCBEZXZUb29scyBpZiB3ZSByZXNvbHZlIGluIGEgc2V0VGltZW91dCB3ZSB3aWxsIG9ic2VydmVcbiAgICAvLyB0aGUgcHJvbWlzZSByZXNvbHV0aW9uIGFzIHNvbWV0aGluZyB0aGF0IGNhbiBzdXNwZW5kIGEgYm91bmRhcnkgb3Igcm9vdC5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpPT57XG4gICAgICAgIC8vIE11c3QgdXNlIHNldFRpbWVvdXQgdG8gYmUgY29uc2lkZXJlZCBJTyBSZWFjdCBEZXZUb29scy4gc2V0SW1tZWRpYXRlIHdpbGwgbm90IHdvcmsuXG4gICAgICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgIHJlc29sdmUodW5kZXJseWluZyk7XG4gICAgICAgIH0sIDApO1xuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1keW5hbWljLXJlbmRlcmluZy11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/lib/router-utils/is-postpone.js ***!
|
||
\***********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isPostpone\", ({\n enumerable: true,\n get: function() {\n return isPostpone;\n }\n}));\nconst REACT_POSTPONE_TYPE = Symbol.for('react.postpone');\nfunction isPostpone(error) {\n return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE;\n}\n\n//# sourceMappingURL=is-postpone.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOENBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9yb3V0ZXItdXRpbHMvaXMtcG9zdHBvbmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc1Bvc3Rwb25lXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1Bvc3Rwb25lO1xuICAgIH1cbn0pO1xuY29uc3QgUkVBQ1RfUE9TVFBPTkVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnBvc3Rwb25lJyk7XG5mdW5jdGlvbiBpc1Bvc3Rwb25lKGVycm9yKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgZXJyb3IuJCR0eXBlb2YgPT09IFJFQUNUX1BPU1RQT05FX1RZUEU7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXBvc3Rwb25lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/request/params.js":
|
||
/*!*********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/request/params.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 createParamsFromClient: function() {\n return createParamsFromClient;\n },\n createPrerenderParamsForClientSegment: function() {\n return createPrerenderParamsForClientSegment;\n },\n createServerParamsForMetadata: function() {\n return createServerParamsForMetadata;\n },\n createServerParamsForRoute: function() {\n return createServerParamsForRoute;\n },\n createServerParamsForServerSegment: function() {\n return createServerParamsForServerSegment;\n }\n});\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _dynamicaccessasyncstorageexternal = __webpack_require__(/*! ../app-render/dynamic-access-async-storage.external */ \"../app-render/dynamic-access-async-storage.external\");\nfunction createParamsFromClient(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E736\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createParamsFromClient should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E770\",\n enumerable: false,\n configurable: true\n });\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nconst createServerParamsForMetadata = createServerParamsForServerSegment;\nfunction createServerParamsForRoute(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForRoute should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E738\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderParams(underlyingParams, workUnitStore);\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createServerParamsForServerSegment(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerParamsForServerSegment should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E743\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderParams(underlyingParams, workUnitStore);\n case 'request':\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n const devFallbackParams = workUnitStore.devFallbackParams;\n return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore);\n } else {}\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createPrerenderParamsForClientSegment(underlyingParams) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing workStore in createPrerenderParamsForClientSegment'), \"__NEXT_ERROR_CODE\", {\n value: \"E773\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams) {\n for(let key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object \"dynamic\". Since\n // we are in cacheComponents mode we encode this as a promise that never\n // resolves.\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`params`');\n }\n }\n }\n break;\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderParamsForClientSegment should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E734\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'prerender-runtime':\n case 'request':\n break;\n default:\n workUnitStore;\n }\n }\n // We're prerendering in a mode that does not abort. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve(underlyingParams);\n}\nfunction createStaticPrerenderParams(underlyingParams, workStore, prerenderStore) {\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object \"dynamic\". Since\n // we are in cacheComponents mode we encode this as a promise that never\n // resolves.\n return makeHangingParams(underlyingParams, workStore, prerenderStore);\n }\n }\n }\n break;\n }\n case 'prerender-ppr':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n return makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n }\n break;\n }\n case 'prerender-legacy':\n break;\n default:\n prerenderStore;\n }\n if (false) {} else {\n return makeUntrackedExoticParams(underlyingParams);\n }\n}\nfunction createRuntimePrerenderParams(underlyingParams, workUnitStore) {\n return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, false ? 0 : makeUntrackedExoticParams(underlyingParams));\n}\nfunction createRenderParamsInProd(underlyingParams) {\n if (false) {}\n return makeUntrackedExoticParams(underlyingParams);\n}\nfunction createRenderParamsInDev(underlyingParams, devFallbackParams, workStore) {\n let hasFallbackParams = false;\n if (devFallbackParams) {\n for(let key in underlyingParams){\n if (devFallbackParams.has(key)) {\n hasFallbackParams = true;\n break;\n }\n }\n }\n if (false) {}\n return makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, hasFallbackParams, workStore);\n}\nconst CachedParams = new WeakMap();\nconst fallbackParamsProxyHandler = {\n get: function get(target, prop, receiver) {\n if (prop === 'then' || prop === 'catch' || prop === 'finally') {\n const originalMethod = _reflect.ReflectAdapter.get(target, prop, receiver);\n return ({\n [prop]: (...args)=>{\n const store = _dynamicaccessasyncstorageexternal.dynamicAccessAsyncStorage.getStore();\n if (store) {\n store.abortController.abort(Object.defineProperty(new Error(`Accessed fallback \\`params\\` during prerendering.`), \"__NEXT_ERROR_CODE\", {\n value: \"E691\",\n enumerable: false,\n configurable: true\n }));\n }\n return new Proxy(originalMethod.apply(target, args), fallbackParamsProxyHandler);\n }\n })[prop];\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n};\nfunction makeHangingParams(underlyingParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = new Proxy((0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`params`'), fallbackParamsProxyHandler);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const augmentedUnderlying = {\n ...underlyingParams\n };\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(augmentedUnderlying);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n if (fallbackParams.has(prop)) {\n Object.defineProperty(augmentedUnderlying, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when cacheComponents is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n enumerable: true\n });\n Object.defineProperty(promise, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when cacheComponents is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n }\n });\n return promise;\n}\nfunction makeUntrackedExoticParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n });\n return promise;\n}\nfunction makeUntrackedParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, hasFallbackParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = hasFallbackParams ? (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingParams) : Promise.resolve(underlyingParams);\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n promise[prop] = underlyingParams[prop];\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticParamsWithDevWarnings`, but just\n// logging the sync access without actually defining the params on the promise.\nfunction makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, hasFallbackParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = hasFallbackParams ? (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingParams) : Promise.resolve(underlyingParams);\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n if (workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev, we need to advance out of\n // the Prerender environment when we read Request data synchronously.\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore);\n }\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createParamsAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createParamsAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E307\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E482\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQ0FBa0MsbUJBQU8sQ0FBQyxnRkFBMkM7QUFDckYsaUJBQWlCLG1CQUFPLENBQUMsNEhBQXdDO0FBQ2pFLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxzQ0FBc0MsbUJBQU8sQ0FBQywwRkFBZ0Q7QUFDOUYsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFLHNCQUFzQixtQkFBTyxDQUFDLDhHQUFzQztBQUNwRSwrQkFBK0IsbUJBQU8sQ0FBQyxvR0FBNEI7QUFDbkUsa0RBQWtELG1CQUFPLENBQUMsa0pBQW1EO0FBQzdHLDJDQUEyQyxtQkFBTyxDQUFDLGdIQUFxRDtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0Esb0JBQW9CLElBQXNDO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsS0FBSyxFQUVOO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFD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YyxXQUFXLGNBQWM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDJCQUEyQjtBQUMxRCx3Q0FBd0MsY0FBYztBQUN0RDtBQUNBLDBDQUEwQyxrQ0FBa0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QvcGFyYW1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlUGFyYW1zRnJvbUNsaWVudDogbnVsbCxcbiAgICBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50OiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY3JlYXRlUGFyYW1zRnJvbUNsaWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50O1xuICAgIH0sXG4gICAgY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50O1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDtcbiAgICB9XG59KTtcbmNvbnN0IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuY29uc3QgX3JlZmxlY3R1dGlscyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3JlZmxlY3QtdXRpbHNcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzID0gcmVxdWlyZShcIi4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzXCIpO1xuY29uc3QgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIgPSByZXF1aXJlKFwiLi4vY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlclwiKTtcbmNvbnN0IF9keW5hbWljYWNjZXNzYXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLWFjY2Vzcy1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuZnVuY3Rpb24gY3JlYXRlUGFyYW1zRnJvbUNsaWVudCh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YXRpY1ByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVBhcmFtc0Zyb21DbGllbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzM2XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIHJ1bnRpbWUgcHJlcmVuZGVyLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc3MFwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2VtYW50aWNhbGx5IHdlIG9ubHkgbmVlZCB0aGUgZGV2IHRyYWNraW5nIHdoZW4gcnVubmluZyBpbiBgbmV4dCBkZXZgXG4gICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBzaW5jZSB5b3Ugd291bGQgbmV2ZXIgdXNlIG5leHQgZGV2IHdpdGggcHJvZHVjdGlvbiBOT0RFX0VOViB3ZSB1c2UgdGhpc1xuICAgICAgICAgICAgICAgICAgICAvLyBhcyBhIHByb3h5IHNvIHdlIGNhbiBzdGF0aWNhbGx5IGV4Y2x1ZGUgdGhpcyBjb2RlIGZyb20gcHJvZHVjdGlvbiBidWlsZHMuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRldkZhbGxiYWNrUGFyYW1zID0gd29ya1VuaXRTdG9yZS5kZXZGYWxsYmFja1BhcmFtcztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclBhcmFtc0luRGV2KHVuZGVybHlpbmdQYXJhbXMsIGRldkZhbGxiYWNrUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXNJblByb2QodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgICgwLCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKTtcbn1cbmNvbnN0IGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhID0gY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDtcbmZ1bmN0aW9uIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhdGljUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGUgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzM4XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUnVudGltZVByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyBTZW1hbnRpY2FsbHkgd2Ugb25seSBuZWVkIHRoZSBkZXYgdHJhY2tpbmcgd2hlbiBydW5uaW5nIGluIGBuZXh0IGRldmBcbiAgICAgICAgICAgICAgICAgICAgLy8gYnV0IHNpbmNlIHlvdSB3b3VsZCBuZXZlciB1c2UgbmV4dCBkZXYgd2l0aCBwcm9kdWN0aW9uIE5PREVfRU5WIHdlIHVzZSB0aGlzXG4gICAgICAgICAgICAgICAgICAgIC8vIGFzIGEgcHJveHkgc28gd2UgY2FuIHN0YXRpY2FsbHkgZXhjbHVkZSB0aGlzIGNvZGUgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGV2RmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmRldkZhbGxiYWNrUGFyYW1zO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zSW5EZXYodW5kZXJseWluZ1BhcmFtcywgZGV2RmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclBhcmFtc0luUHJvZCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpO1xufVxuZnVuY3Rpb24gY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudCh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVN0YXRpY1ByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzQzXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUnVudGltZVByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyBTZW1hbnRpY2FsbHkgd2Ugb25seSBuZWVkIHRoZSBkZXYgdHJhY2tpbmcgd2hlbiBydW5uaW5nIGluIGBuZXh0IGRldmBcbiAgICAgICAgICAgICAgICAgICAgLy8gYnV0IHNpbmNlIHlvdSB3b3VsZCBuZXZlciB1c2UgbmV4dCBkZXYgd2l0aCBwcm9kdWN0aW9uIE5PREVfRU5WIHdlIHVzZSB0aGlzXG4gICAgICAgICAgICAgICAgICAgIC8vIGFzIGEgcHJveHkgc28gd2UgY2FuIHN0YXRpY2FsbHkgZXhjbHVkZSB0aGlzIGNvZGUgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGV2RmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmRldkZhbGxiYWNrUGFyYW1zO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zSW5EZXYodW5kZXJseWluZ1BhcmFtcywgZGV2RmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclBhcmFtc0luUHJvZCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLnRocm93SW52YXJpYW50Rm9yTWlzc2luZ1N0b3JlKSgpO1xufVxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudCh1bmRlcmx5aW5nUGFyYW1zKSB7XG4gICAgY29uc3Qgd29ya1N0b3JlID0gX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKCF3b3JrU3RvcmUpIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ01pc3Npbmcgd29ya1N0b3JlIGluIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICB2YWx1ZTogXCJFNzczXCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSB3b3JrVW5pdFN0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXM7XG4gICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcihsZXQga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBwYXJhbXMgb2JqZWN0IGhhcyBvbmUgb3IgbW9yZSBmYWxsYmFjayBwYXJhbXMsIHNvIHdlIG5lZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBjb25zaWRlciB0aGUgYXdhaXRpbmcgb2YgdGhpcyBwYXJhbXMgb2JqZWN0IFwiZHluYW1pY1wiLiBTaW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBpbiBjYWNoZUNvbXBvbmVudHMgbW9kZSB3ZSBlbmNvZGUgdGhpcyBhcyBhIHByb21pc2UgdGhhdCBuZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlc29sdmVzLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHdvcmtVbml0U3RvcmUucmVuZGVyU2lnbmFsLCB3b3JrU3RvcmUucm91dGUsICdgcGFyYW1zYCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzM0XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICBjYXNlICdyZXF1ZXN0JzpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgZG9lcyBub3QgYWJvcnQuIFdlIHJlc29sdmUgdGhlIHByb21pc2Ugd2l0aG91dFxuICAgIC8vIGFueSB0cmFja2luZyBiZWNhdXNlIHdlJ3JlIGp1c3QgdHJhbnNwb3J0aW5nIGEgdmFsdWUgZnJvbSBzZXJ2ZXIgdG8gY2xpZW50IHdoZXJlIHRoZSB0cmFja2luZ1xuICAgIC8vIHdpbGwgYmUgYXBwbGllZC5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xufVxuZnVuY3Rpb24gY3JlYXRlU3RhdGljUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBzd2l0Y2gocHJlcmVuZGVyU3RvcmUudHlwZSl7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrUGFyYW1zID0gcHJlcmVuZGVyU3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtcztcbiAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yKGNvbnN0IGtleSBpbiB1bmRlcmx5aW5nUGFyYW1zKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgcGFyYW1zIG9iamVjdCBoYXMgb25lIG9yIG1vcmUgZmFsbGJhY2sgcGFyYW1zLCBzbyB3ZSBuZWVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gY29uc2lkZXIgdGhlIGF3YWl0aW5nIG9mIHRoaXMgcGFyYW1zIG9iamVjdCBcImR5bmFtaWNcIi4gU2luY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgaW4gY2FjaGVDb21wb25lbnRzIG1vZGUgd2UgZW5jb2RlIHRoaXMgYXMgYSBwcm9taXNlIHRoYXQgbmV2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXNvbHZlcy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZUhhbmdpbmdQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrUGFyYW1zID0gcHJlcmVuZGVyU3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtcztcbiAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yKGNvbnN0IGtleSBpbiB1bmRlcmx5aW5nUGFyYW1zKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcywgZmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmU7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUykge1xuICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZFBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVSdW50aW1lUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtVbml0U3RvcmUpIHtcbiAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5nLmRlbGF5VW50aWxSdW50aW1lU3RhZ2UpKHdvcmtVbml0U3RvcmUsIHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTID8gbWFrZVVudHJhY2tlZFBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSA6IG1ha2VVbnRyYWNrZWRFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcykpO1xufVxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGFyYW1zSW5Qcm9kKHVuZGVybHlpbmdQYXJhbXMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NBQ0hFX0NPTVBPTkVOVFMpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRQYXJhbXModW5kZXJseWluZ1BhcmFtcyk7XG4gICAgfVxuICAgIHJldHVybiBtYWtlVW50cmFja2VkRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpO1xufVxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGFyYW1zSW5EZXYodW5kZXJseWluZ1BhcmFtcywgZGV2RmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGxldCBoYXNGYWxsYmFja1BhcmFtcyA9IGZhbHNlO1xuICAgIGlmIChkZXZGYWxsYmFja1BhcmFtcykge1xuICAgICAgICBmb3IobGV0IGtleSBpbiB1bmRlcmx5aW5nUGFyYW1zKXtcbiAgICAgICAgICAgIGlmIChkZXZGYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGhhc0ZhbGxiYWNrUGFyYW1zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NBQ0hFX0NPTVBPTkVOVFMpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VEeW5hbWljYWxseVRyYWNrZWRQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgaGFzRmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgfVxuICAgIHJldHVybiBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdQYXJhbXMsIGhhc0ZhbGxiYWNrUGFyYW1zLCB3b3JrU3RvcmUpO1xufVxuY29uc3QgQ2FjaGVkUGFyYW1zID0gbmV3IFdlYWtNYXAoKTtcbmNvbnN0IGZhbGxiYWNrUGFyYW1zUHJveHlIYW5kbGVyID0ge1xuICAgIGdldDogZnVuY3Rpb24gZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgaWYgKHByb3AgPT09ICd0aGVuJyB8fCBwcm9wID09PSAnY2F0Y2gnIHx8IHByb3AgPT09ICdmaW5hbGx5Jykge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICByZXR1cm4gKHtcbiAgICAgICAgICAgICAgICBbcHJvcF06ICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdG9yZSA9IF9keW5hbWljYWNjZXNzYXN5bmNzdG9yYWdlZXh0ZXJuYWwuZHluYW1pY0FjY2Vzc0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLmFib3J0Q29udHJvbGxlci5hYm9ydChPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBBY2Nlc3NlZCBmYWxsYmFjayBcXGBwYXJhbXNcXGAgZHVyaW5nIHByZXJlbmRlcmluZy5gKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTY5MVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJveHkob3JpZ2luYWxNZXRob2QuYXBwbHkodGFyZ2V0LCBhcmdzKSwgZmFsbGJhY2tQYXJhbXNQcm94eUhhbmRsZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pW3Byb3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgfVxufTtcbmZ1bmN0aW9uIG1ha2VIYW5naW5nUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm94eSgoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHByZXJlbmRlclN0b3JlLnJlbmRlclNpZ25hbCwgd29ya1N0b3JlLnJvdXRlLCAnYHBhcmFtc2AnKSwgZmFsbGJhY2tQYXJhbXNQcm94eUhhbmRsZXIpO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlRXJyb3JpbmdFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcywgZmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgYXVnbWVudGVkVW5kZXJseWluZyA9IHtcbiAgICAgICAgLi4udW5kZXJseWluZ1BhcmFtc1xuICAgIH07XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShhdWdtZW50ZWRVbmRlcmx5aW5nKTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXVnbWVudGVkVW5kZXJseWluZywgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdwYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIG1vc3QgZHluYW1pYyBBUElzIHdlIGFsc28gdGhyb3cgaWYgYGR5bmFtaWMgPSBcImVycm9yXCJgIGhvd2V2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBwYXJhbXMgaXMgb25seSBkeW5hbWljIHdoZW4gd2UncmUgZ2VuZXJhdGluZyBhIGZhbGxiYWNrIHNoZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgZXZlbiB3aGVuIGBkeW5hbWljID0gXCJlcnJvclwiYCB3ZSBzdGlsbCBzdXBwb3J0IGdlbmVyYXRpbmcgZHluYW1pY1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFsbGJhY2sgc2hlbGxzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIGNvbW1lbnQgd2hlbiBjYWNoZUNvbXBvbmVudHMgaXMgdGhlIGRlZmF1bHQgc2luY2UgdGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgbm8gYGR5bmFtaWMgPSBcImVycm9yXCJgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gbW9zdCBkeW5hbWljIEFQSXMgd2UgYWxzbyB0aHJvdyBpZiBgZHluYW1pYyA9IFwiZXJyb3JcImAgaG93ZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHBhcmFtcyBpcyBvbmx5IGR5bmFtaWMgd2hlbiB3ZSdyZSBnZW5lcmF0aW5nIGEgZmFsbGJhY2sgc2hlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBldmVuIHdoZW4gYGR5bmFtaWMgPSBcImVycm9yXCJgIHdlIHN0aWxsIHN1cHBvcnQgZ2VuZXJhdGluZyBkeW5hbWljXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsYmFjayBzaGVsbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHRoaXMgY29tbWVudCB3aGVuIGNhY2hlQ29tcG9uZW50cyBpcyB0aGUgZGVmYXVsdCBzaW5jZSB0aGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSBubyBgZHluYW1pYyA9IFwiZXJyb3JcImBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBjYWNoZUNvbXBvbmVudHMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZFBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgaGFzRmFsbGJhY2tQYXJhbXMsIHN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBoYXNGYWxsYmFja1BhcmFtcyA/ICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKSh1bmRlcmx5aW5nUGFyYW1zKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgICAgICB1bnByb3hpZWRQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5hZGQocHJvcCk7XG4gICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IHdhcyBwcm94aWVkIHRvIHRoZSBwcm9taXNlIGluc3RhbmNlXG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgncGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYC4uLnBhcmFtc2Agb3Igc2ltaWxhciBleHByZXNzaW9uJztcbiAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgdW5wcm94aWVkUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG4vLyBTaW1pbGFyIHRvIGBtYWtlRHluYW1pY2FsbHlUcmFja2VkRXhvdGljUGFyYW1zV2l0aERldldhcm5pbmdzYCwgYnV0IGp1c3Rcbi8vIGxvZ2dpbmcgdGhlIHN5bmMgYWNjZXNzIHdpdGhvdXQgYWN0dWFsbHkgZGVmaW5pbmcgdGhlIHBhcmFtcyBvbiB0aGUgcHJvbWlzZS5cbmZ1bmN0aW9uIG1ha2VEeW5hbWljYWxseVRyYWNrZWRQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgaGFzRmFsbGJhY2tQYXJhbXMsIHN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBoYXNGYWxsYmFja1BhcmFtcyA/ICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VEZXZ0b29sc0lPQXdhcmVQcm9taXNlKSh1bmRlcmx5aW5nUGFyYW1zKSA6IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgICAgICB1bnByb3hpZWRQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5hZGQocHJvcCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICgvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCB3YXMgcHJveGllZCB0byB0aGUgcHJvbWlzZSBpbnN0YW5jZVxuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICB3YXJuRm9yU3luY0FjY2VzcyhzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYC4uLnBhcmFtc2Agb3Igc2ltaWxhciBleHByZXNzaW9uJztcbiAgICAgICAgICAgIHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24oc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcykge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUucHJlcmVuZGVyUGhhc2UgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSdyZSByZW5kZXJpbmcgZHluYW1pY2FsbHkgaW4gZGV2LCB3ZSBuZWVkIHRvIGFkdmFuY2Ugb3V0IG9mXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBQcmVyZW5kZXIgZW52aXJvbm1lbnQgd2hlbiB3ZSByZWFkIFJlcXVlc3QgZGF0YSBzeW5jaHJvbm91c2x5LlxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYpKHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBJbiBhbGwgY2FzZXMgd2Ugd2FybiBub3JtYWxseVxuICAgIGlmIChtaXNzaW5nUHJvcGVydGllcyAmJiBtaXNzaW5nUHJvcGVydGllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24ocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB3YXJuRm9yU3luY0FjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgfVxufVxuY29uc3Qgd2FybkZvclN5bmNBY2Nlc3MgPSAoMCwgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIuY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldikoY3JlYXRlUGFyYW1zQWNjZXNzRXJyb3IpO1xuY29uc3Qgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbiA9ICgwLCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlci5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcik7XG5mdW5jdGlvbiBjcmVhdGVQYXJhbXNBY2Nlc3NFcnJvcihyb3V0ZSwgZXhwcmVzc2lvbikge1xuICAgIGNvbnN0IHByZWZpeCA9IHJvdXRlID8gYFJvdXRlIFwiJHtyb3V0ZX1cIiBgIDogJ1RoaXMgcm91dGUgJztcbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgJHtwcmVmaXh9dXNlZCAke2V4cHJlc3Npb259LiBgICsgYFxcYHBhcmFtc1xcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHByb3BlcnRpZXMuIGAgKyBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUzMDdcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlSW5jb21wbGV0ZUVudW1lcmF0aW9uRXJyb3Iocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgKyBgXFxgcGFyYW1zXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgcHJvcGVydGllcy4gYCArIGBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgd2VyZSBub3QgYXZhaWxhYmxlIHRocm91Z2ggZW51bWVyYXRpb24gYCArIGBiZWNhdXNlIHRoZXkgY29uZmxpY3Qgd2l0aCBidWlsdGluIHByb3BlcnR5IG5hbWVzOiBgICsgYCR7ZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzKG1pc3NpbmdQcm9wZXJ0aWVzKX0uIGAgKyBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkU0ODJcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzKHByb3BlcnRpZXMpIHtcbiAgICBzd2l0Y2gocHJvcGVydGllcy5sZW5ndGgpe1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignRXhwZWN0ZWQgZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzIHRvIGJlIGNhbGxlZCB3aXRoIGEgbm9uLWVtcHR5IGxpc3Qgb2Ygc3RyaW5ncy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTUzMVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYGA7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYCBhbmQgXFxgJHtwcm9wZXJ0aWVzWzFdfVxcYGA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoIC0gMTsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYFxcYCR7cHJvcGVydGllc1tpXX1cXGAsIGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICs9IGAsIGFuZCBcXGAke3Byb3BlcnRpZXNbcHJvcGVydGllcy5sZW5ndGggLSAxXX1cXGBgO1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcmFtcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/request/params.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/request/search-params.js":
|
||
/*!****************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/request/search-params.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 createPrerenderSearchParamsForClientPage: function() {\n return createPrerenderSearchParamsForClientPage;\n },\n createSearchParamsFromClient: function() {\n return createSearchParamsFromClient;\n },\n createServerSearchParamsForMetadata: function() {\n return createServerSearchParamsForMetadata;\n },\n createServerSearchParamsForServerPage: function() {\n return createServerSearchParamsForServerPage;\n },\n makeErroringSearchParamsForUseCache: function() {\n return makeErroringSearchParamsForUseCache;\n }\n});\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(ssr)/./node_modules/next/dist/server/request/utils.js\");\nfunction createSearchParamsFromClient(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderSearchParams(workStore, workUnitStore);\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E769\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createSearchParamsFromClient should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E739\",\n enumerable: false,\n configurable: true\n });\n case 'request':\n return createRenderSearchParams(underlyingSearchParams, workStore);\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nconst createServerSearchParamsForMetadata = createServerSearchParamsForServerPage;\nfunction createServerSearchParamsForServerPage(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createStaticPrerenderSearchParams(workStore, workUnitStore);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E747\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-runtime':\n return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore);\n case 'request':\n return createRenderSearchParams(underlyingSearchParams, workStore);\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createPrerenderSearchParamsForClientPage(workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n // We're prerendering in a mode that aborts (cacheComponents) and should stall\n // the promise to ensure the RSC side is considered dynamic\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, '`searchParams`');\n case 'prerender-runtime':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), \"__NEXT_ERROR_CODE\", {\n value: \"E768\",\n enumerable: false,\n configurable: true\n });\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), \"__NEXT_ERROR_CODE\", {\n value: \"E746\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n return Promise.resolve({});\n default:\n workUnitStore;\n }\n }\n (0, _workunitasyncstorageexternal.throwInvariantForMissingStore)();\n}\nfunction createStaticPrerenderSearchParams(workStore, prerenderStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n // We are in a cacheComponents (PPR or otherwise) prerender\n return makeHangingSearchParams(workStore, prerenderStore);\n case 'prerender-ppr':\n case 'prerender-legacy':\n // We are in a legacy static generation and need to interrupt the\n // prerender when search params are accessed.\n return makeErroringExoticSearchParams(workStore, prerenderStore);\n default:\n return prerenderStore;\n }\n}\nfunction createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) {\n return (0, _dynamicrendering.delayUntilRuntimeStage)(workUnitStore, false ? 0 : makeUntrackedExoticSearchParams(underlyingSearchParams));\n}\nfunction createRenderSearchParams(underlyingSearchParams, workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n } else {\n if (true) {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n if (false) {}\n return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore);\n } else {}\n }\n}\nconst CachedSearchParams = new WeakMap();\nconst CachedSearchParamsForUseCache = new WeakMap();\nfunction makeHangingSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(prerenderStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, workStore.route, '`searchParams`');\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n default:\n {\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n }\n });\n CachedSearchParams.set(prerenderStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringExoticSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const underlyingSearchParams = {};\n // For search params we don't construct a ReactPromise because we want to interrupt\n // rendering on any property access that was not set from outside and so we only want\n // to have properties like value and status if React sets them.\n const promise = Promise.resolve(underlyingSearchParams);\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n default:\n {\n if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n },\n has (target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests trigger dynamic. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string') {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return false;\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys () {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no cacheComponents)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n });\n CachedSearchParams.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringSearchParamsForUseCache(workStore) {\n const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve({});\n const proxiedPromise = new Proxy(promise, {\n get: function get(target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it. We know it\n // isn't a dynamic access because it can only be something that was\n // previously written to the promise and thus not an underlying\n // searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get);\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has: function has(target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests throw an error. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has);\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys: function ownKeys() {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys);\n }\n });\n CachedSearchParamsForUseCache.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeUntrackedExoticSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (!_reflectutils.wellKnownProperties.has(prop)) {\n Object.defineProperty(promise, prop, {\n get () {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore);\n }\n return underlyingSearchParams[prop];\n },\n set (value) {\n Object.defineProperty(promise, prop, {\n value,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n return promise;\n}\nfunction makeUntrackedSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying\n // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender\n // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking\n // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger\n // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce\n // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise.\n let promiseInitialized = false;\n const proxiedUnderlying = new Proxy(underlyingSearchParams, {\n get (target, prop, receiver) {\n if (typeof prop === 'string' && promiseInitialized) {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workUnitStore);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n if (store.dynamicShouldError) {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n return Reflect.ownKeys(target);\n }\n });\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams);\n promise.then(()=>{\n promiseInitialized = true;\n });\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n Object.defineProperty(promise, prop, {\n get () {\n return proxiedUnderlying[prop];\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (prop === 'then' && store.dynamicShouldError) {\n const expression = '`searchParams.then`';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but\n// just logging the sync access without actually defining the search params on\n// the promise.\nfunction makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n const promise = (0, _dynamicrenderingutils.makeDevtoolsIOAwarePromise)(underlyingSearchParams);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n if (workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev, we need to advance out of\n // the Prerender environment when we read Request data synchronously.\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(workUnitStore);\n }\n break;\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n break;\n default:\n workUnitStore;\n }\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createSearchAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E249\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E2\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=search-params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsNEhBQXdDO0FBQ2pFLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxzQ0FBc0MsbUJBQU8sQ0FBQywwRkFBZ0Q7QUFDOUYsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxrREFBa0QsbUJBQU8sQ0FBQyxrSkFBbUQ7QUFDN0csc0JBQXNCLG1CQUFPLENBQUMsOEdBQXNDO0FBQ3BFLGVBQWUsbUJBQU8sQ0FBQyx1RUFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFD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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0Esc0NBQXNDLGdCQUFnQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0MsOENBQThDLE9BQU8sT0FBTyxXQUFXO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0MsOENBQThDLE9BQU8sT0FBTyxXQUFXLHlOQUF5TiwrQ0FBK0M7QUFDL1U7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBLHdCQUF3QixjQUFjLFdBQVcsY0FBYztBQUMvRDtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsMkJBQTJCO0FBQzFELHdDQUF3QyxjQUFjO0FBQ3REO0FBQ0EsMENBQTBDLGtDQUFrQztBQUM1RTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC9zZWFyY2gtcGFyYW1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTogbnVsbCxcbiAgICBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50OiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U6IG51bGwsXG4gICAgbWFrZUVycm9yaW5nU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGU6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlO1xuICAgIH0sXG4gICAgY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50O1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yTWV0YWRhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U7XG4gICAgfSxcbiAgICBtYWtlRXJyb3JpbmdTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZTtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWZsZWN0ID0gcmVxdWlyZShcIi4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0XCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZ1wiKTtcbmNvbnN0IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzID0gcmVxdWlyZShcIi4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzXCIpO1xuY29uc3QgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIgPSByZXF1aXJlKFwiLi4vY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlclwiKTtcbmNvbnN0IF9yZWZsZWN0dXRpbHMgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi91dGlscy9yZWZsZWN0LXV0aWxzXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG5mdW5jdGlvbiBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhdGljUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gYSBydW50aW1lIHByZXJlbmRlci4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3NjlcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ2NyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzM5XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgd29ya1VuaXRTdG9yZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAoMCwgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCk7XG59XG5jb25zdCBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YSA9IGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlU3RhdGljUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3NDdcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXJ1bnRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVSdW50aW1lUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgICgwLCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2Uod29ya1N0b3JlKSB7XG4gICAgaWYgKHdvcmtTdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAgIC8vIGRpY3Rpb25hcnkgb2JqZWN0LlxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgLy8gV2UncmUgcHJlcmVuZGVyaW5nIGluIGEgbW9kZSB0aGF0IGFib3J0cyAoY2FjaGVDb21wb25lbnRzKSBhbmQgc2hvdWxkIHN0YWxsXG4gICAgICAgICAgICAgICAgLy8gdGhlIHByb21pc2UgdG8gZW5zdXJlIHRoZSBSU0Mgc2lkZSBpcyBjb25zaWRlcmVkIGR5bmFtaWNcbiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgd29ya1N0b3JlLnJvdXRlLCAnYHNlYXJjaFBhcmFtc2AnKTtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1ydW50aW1lJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIHJ1bnRpbWUgcHJlcmVuZGVyLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTc2OFwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdjYWNoZSc6XG4gICAgICAgICAgICBjYXNlICdwcml2YXRlLWNhY2hlJzpcbiAgICAgICAgICAgIGNhc2UgJ3Vuc3RhYmxlLWNhY2hlJzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU3NDZcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB3b3JrVW5pdFN0b3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgICgwLCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVN0YXRpY1ByZXJlbmRlclNlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgaWYgKHdvcmtTdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAgIC8vIGRpY3Rpb25hcnkgb2JqZWN0LlxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9XG4gICAgc3dpdGNoKHByZXJlbmRlclN0b3JlLnR5cGUpe1xuICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIC8vIFdlIGFyZSBpbiBhIGNhY2hlQ29tcG9uZW50cyAoUFBSIG9yIG90aGVyd2lzZSkgcHJlcmVuZGVyXG4gICAgICAgICAgICByZXR1cm4gbWFrZUhhbmdpbmdTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgIC8vIFdlIGFyZSBpbiBhIGxlZ2FjeSBzdGF0aWMgZ2VuZXJhdGlvbiBhbmQgbmVlZCB0byBpbnRlcnJ1cHQgdGhlXG4gICAgICAgICAgICAvLyBwcmVyZW5kZXIgd2hlbiBzZWFyY2ggcGFyYW1zIGFyZSBhY2Nlc3NlZC5cbiAgICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdFeG90aWNTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gcHJlcmVuZGVyU3RvcmU7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlUnVudGltZVByZXJlbmRlclNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrVW5pdFN0b3JlKSB7XG4gICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZy5kZWxheVVudGlsUnVudGltZVN0YWdlKSh3b3JrVW5pdFN0b3JlLCBwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUyA/IG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykgOiBtYWtlVW50cmFja2VkRXhvdGljU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBpZiAod29ya1N0b3JlLmZvcmNlU3RhdGljKSB7XG4gICAgICAgIC8vIFdoZW4gdXNpbmcgZm9yY2VTdGF0aWMgd2Ugb3ZlcnJpZGUgYWxsIG90aGVyIGxvZ2ljIGFuZCBhbHdheXMganVzdCByZXR1cm4gYW4gZW1wdHlcbiAgICAgICAgLy8gZGljdGlvbmFyeSBvYmplY3QuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgLy8gU2VtYW50aWNhbGx5IHdlIG9ubHkgbmVlZCB0aGUgZGV2IHRyYWNraW5nIHdoZW4gcnVubmluZyBpbiBgbmV4dCBkZXZgXG4gICAgICAgICAgICAvLyBidXQgc2luY2UgeW91IHdvdWxkIG5ldmVyIHVzZSBuZXh0IGRldiB3aXRoIHByb2R1Y3Rpb24gTk9ERV9FTlYgd2UgdXNlIHRoaXNcbiAgICAgICAgICAgIC8vIGFzIGEgcHJveHkgc28gd2UgY2FuIHN0YXRpY2FsbHkgZXhjbHVkZSB0aGlzIGNvZGUgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcy5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUykge1xuICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmNvbnN0IENhY2hlZFNlYXJjaFBhcmFtcyA9IG5ldyBXZWFrTWFwKCk7XG5jb25zdCBDYWNoZWRTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZSA9IG5ldyBXZWFrTWFwKCk7XG5mdW5jdGlvbiBtYWtlSGFuZ2luZ1NlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldChwcmVyZW5kZXJTdG9yZSk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsIHdvcmtTdG9yZS5yb3V0ZSwgJ2BzZWFyY2hQYXJhbXNgJyk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKHByb21pc2UsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByb21pc2UgaGFzIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuIHdlIG11c3QgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgaXQgaXNuJ3QgYSBkeW5hbWljIGFjY2VzcyBiZWNhdXNlIGl0IGNhbiBvbmx5IGJlIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHByZXZpb3VzbHkgd3JpdHRlbiB0byB0aGUgcHJvbWlzZSBhbmQgdGh1cyBub3QgYW4gdW5kZXJseWluZyBzZWFyY2hQYXJhbSB2YWx1ZVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGF3YWl0IHNlYXJjaFBhcmFtc2AsIGBzZWFyY2hQYXJhbXMudGhlbmAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLmFubm90YXRlRHluYW1pY0FjY2VzcykoZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0YXR1cyc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHVzZShzZWFyY2hQYXJhbXMpYCwgYHNlYXJjaFBhcmFtcy5zdGF0dXNgLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5hbm5vdGF0ZUR5bmFtaWNBY2Nlc3MpKGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHByZXJlbmRlclN0b3JlLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUVycm9yaW5nRXhvdGljU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHdvcmtTdG9yZSk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCB1bmRlcmx5aW5nU2VhcmNoUGFyYW1zID0ge307XG4gICAgLy8gRm9yIHNlYXJjaCBwYXJhbXMgd2UgZG9uJ3QgY29uc3RydWN0IGEgUmVhY3RQcm9taXNlIGJlY2F1c2Ugd2Ugd2FudCB0byBpbnRlcnJ1cHRcbiAgICAvLyByZW5kZXJpbmcgb24gYW55IHByb3BlcnR5IGFjY2VzcyB0aGF0IHdhcyBub3Qgc2V0IGZyb20gb3V0c2lkZSBhbmQgc28gd2Ugb25seSB3YW50XG4gICAgLy8gdG8gaGF2ZSBwcm9wZXJ0aWVzIGxpa2UgdmFsdWUgYW5kIHN0YXR1cyBpZiBSZWFjdCBzZXRzIHRoZW0uXG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5oYXNPd24ocHJvbWlzZSwgcHJvcCkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgcHJvbWlzZSBoYXMgdGhpcyBwcm9wZXJ0eSBkaXJlY3RseS4gd2UgbXVzdCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgLy8gV2Uga25vdyBpdCBpc24ndCBhIGR5bmFtaWMgYWNjZXNzIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgLy8gdGhhdCB3YXMgcHJldmlvdXNseSB3cml0dGVuIHRvIHRoZSBwcm9taXNlIGFuZCB0aHVzIG5vdCBhbiB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtIHZhbHVlXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN3aXRjaChwcm9wKXtcbiAgICAgICAgICAgICAgICBjYXNlICd0aGVuJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgYXdhaXQgc2VhcmNoUGFyYW1zYCwgYHNlYXJjaFBhcmFtcy50aGVuYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGNhY2hlQ29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdzdGF0dXMnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2B1c2Uoc2VhcmNoUGFyYW1zKWAsIGBzZWFyY2hQYXJhbXMuc3RhdHVzYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGNhY2hlQ29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnICYmICFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGNhY2hlQ29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGV4cGVjdCBrZXkgY2hlY2tpbmcgdG8gYmUgdXNlZCBleGNlcHQgZm9yIHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvZlxuICAgICAgICAgICAgLy8gc2VhcmNoUGFyYW1zIHNvIHdlIG1ha2UgYWxsIGhhcyB0ZXN0cyB0cmlnZ2VyIGR5bmFtaWMuIHRoaXMgbWVhbnMgdGhhdCBgcHJvbWlzZS50aGVuYFxuICAgICAgICAgICAgLy8gY2FuIHJlc29sdmUgdG8gdGhlIHRoZW4gZnVuY3Rpb24gb24gdGhlIFByb21pc2UgcHJvdG90eXBlIGJ1dCAndGhlbicgaW4gcHJvbWlzZSB3aWxsIGFzc3VtZVxuICAgICAgICAgICAgLy8geW91IGFyZSB0ZXN0aW5nIHdoZXRoZXIgdGhlIHNlYXJjaFBhcmFtcyBoYXMgYSAndGhlbicgcHJvcGVydHkuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSkoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gY2FjaGVDb21wb25lbnRzKVxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAoKSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2B7Li4uc2VhcmNoUGFyYW1zfWAsIGBPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGNhY2hlQ29tcG9uZW50cylcbiAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHdvcmtTdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZXhwcmVzc2lvbiwgd29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHdvcmtTdG9yZSwgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ1NlYXJjaFBhcmFtc0ZvclVzZUNhY2hlKHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtc0ZvclVzZUNhY2hlLmdldCh3b3JrU3RvcmUpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihwcm9taXNlLCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBwcm9taXNlIGhhcyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5LiB3ZSBtdXN0IHJldHVybiBpdC4gV2Uga25vdyBpdFxuICAgICAgICAgICAgICAgIC8vIGlzbid0IGEgZHluYW1pYyBhY2Nlc3MgYmVjYXVzZSBpdCBjYW4gb25seSBiZSBzb21ldGhpbmcgdGhhdCB3YXNcbiAgICAgICAgICAgICAgICAvLyBwcmV2aW91c2x5IHdyaXR0ZW4gdG8gdGhlIHByb21pc2UgYW5kIHRodXMgbm90IGFuIHVuZGVybHlpbmdcbiAgICAgICAgICAgICAgICAvLyBzZWFyY2hQYXJhbSB2YWx1ZVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnICYmIChwcm9wID09PSAndGhlbicgfHwgIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpKSB7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGUpKHdvcmtTdG9yZSwgZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhczogZnVuY3Rpb24gaGFzKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgZXhwZWN0IGtleSBjaGVja2luZyB0byBiZSB1c2VkIGV4Y2VwdCBmb3IgdGVzdGluZyB0aGUgZXhpc3RlbmNlIG9mXG4gICAgICAgICAgICAvLyBzZWFyY2hQYXJhbXMgc28gd2UgbWFrZSBhbGwgaGFzIHRlc3RzIHRocm93IGFuIGVycm9yLiB0aGlzIG1lYW5zIHRoYXQgYHByb21pc2UudGhlbmBcbiAgICAgICAgICAgIC8vIGNhbiByZXNvbHZlIHRvIHRoZSB0aGVuIGZ1bmN0aW9uIG9uIHRoZSBQcm9taXNlIHByb3RvdHlwZSBidXQgJ3RoZW4nIGluIHByb21pc2Ugd2lsbCBhc3N1bWVcbiAgICAgICAgICAgIC8vIHlvdSBhcmUgdGVzdGluZyB3aGV0aGVyIHRoZSBzZWFyY2hQYXJhbXMgaGFzIGEgJ3RoZW4nIHByb3BlcnR5LlxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiAocHJvcCA9PT0gJ3RoZW4nIHx8ICFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSkge1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dGb3JTZWFyY2hQYXJhbXNBY2Nlc3NJblVzZUNhY2hlKSh3b3JrU3RvcmUsIGhhcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXM6IGZ1bmN0aW9uIG93bktleXMoKSB7XG4gICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZSkod29ya1N0b3JlLCBvd25LZXlzKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtc0ZvclVzZUNhY2hlLnNldCh3b3JrU3RvcmUsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlVW50cmFja2VkRXhvdGljU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2Ugc2VhcmNoUGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHByb21pc2UpO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmICghX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy50cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKSh3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZXJseWluZ1NlYXJjaFBhcmFtc1twcm9wXTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHByb21pc2UpO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgLy8gV2UgaGF2ZSBhbiB1bmZvcnR1bmF0ZSBzZXF1ZW5jZSBvZiBldmVudHMgdGhhdCByZXF1aXJlcyB0aGlzIGluaXRpYWxpemF0aW9uIGxvZ2ljLiBXZSB3YW50IHRvIGluc3RydW1lbnQgdGhlIHVuZGVybHlpbmdcbiAgICAvLyBzZWFyY2hQYXJhbXMgb2JqZWN0IHRvIGRldGVjdCBpZiB5b3UgYXJlIGFjY2Vzc2luZyB2YWx1ZXMgaW4gZGV2LiBUaGlzIGlzIHVzZWQgZm9yIHdhcm5pbmdzIGFuZCBmb3IgdGhpbmdzIGxpa2UgdGhlIHN0YXRpYyBwcmVyZW5kZXJcbiAgICAvLyBpbmRpY2F0b3IuIEhvd2V2ZXIgd2hlbiB3ZSBwYXNzIHRoaXMgcHJveHkgdG8gb3VyIFByb21pc2UucmVzb2x2ZSgpIGJlbG93IHRoZSBWTSBjaGVja3MgaWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzIGEgcHJvbWlzZSBieSBsb29raW5nXG4gICAgLy8gYXQgdGhlIGAudGhlbmAgcHJvcGVydHkuIFRvIG91ciBkeW5hbWljIHRyYWNraW5nIGxvZ2ljIHRoaXMgaXMgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBhIGB0aGVuYCBzZWFyY2hQYXJhbSBhbmQgc28gd2Ugd291bGQgbm9ybWFsbHkgdHJpZ2dlclxuICAgIC8vIGR5bmFtaWMgdHJhY2tpbmcuIEhvd2V2ZXIgd2Uga25vdyB0aGF0IHRoaXMgLnRoZW4gaXMgbm90IHJlYWwgZHluYW1pYyBhY2Nlc3MsIGl0J3MganVzdCBob3cgdGhlbmFibGVzIHJlc29sdmUgaW4gc2VxdWVuY2UuIFNvIHdlIGludHJvZHVjZVxuICAgIC8vIHRoaXMgaW5pdGlhbGl6YXRpb24gY29uY2VwdCBzbyB3ZSBvbWl0IHRoZSBkeW5hbWljIGNoZWNrIHVudGlsIGFmdGVyIHdlJ3ZlIGNvbnN0cnVjdGVkIG91ciByZXNvbHZlZCBwcm9taXNlLlxuICAgIGxldCBwcm9taXNlSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBwcm94aWVkVW5kZXJseWluZyA9IG5ldyBQcm94eSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiBwcm9taXNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIpKHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgey4uLnNlYXJjaFBhcmFtc31gLCBgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHNlYXJjaFBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZSkodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgcHJvbWlzZS50aGVuKCgpPT57XG4gICAgICAgIHByb21pc2VJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgICAgICB1bnByb3hpZWRQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5hZGQocHJvcCk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm94aWVkVW5kZXJseWluZ1twcm9wXTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldCAobmV3VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ3RoZW4nICYmIHN0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYHNlYXJjaFBhcmFtcy50aGVuYCc7XG4gICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICghX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJiAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8IC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgICAgIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCkgPT09IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5kZWxldGUocHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBoYXMgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICghX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJiAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8IC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgICAgIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCkgPT09IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHN5bmNJT0RldihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuLy8gU2ltaWxhciB0byBgbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5nc2AsIGJ1dFxuLy8ganVzdCBsb2dnaW5nIHRoZSBzeW5jIGFjY2VzcyB3aXRob3V0IGFjdHVhbGx5IGRlZmluaW5nIHRoZSBzZWFyY2ggcGFyYW1zIG9uXG4vLyB0aGUgcHJvbWlzZS5cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgc3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJveGllZFByb3BlcnRpZXMgPSBuZXcgU2V0KCk7XG4gICAgY29uc3QgdW5wcm94aWVkUHJvcGVydGllcyA9IFtdO1xuICAgIGNvbnN0IHByb21pc2UgPSAoMCwgX2R5bmFtaWNyZW5kZXJpbmd1dGlscy5tYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZSkodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKF9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgICAgICB1bnByb3hpZWRQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5hZGQocHJvcCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICghX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJiAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8IC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgICAgIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCkgPT09IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICB3YXJuRm9yU3luY0FjY2VzcyhzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0ICh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApICYmIChwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkgfHwgLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgZG9lc24ndCBleGlzdCBvbiB0aGUgcHJvbWlzZSBub3JcbiAgICAgICAgICAgICAgICAvLyB0aGUgdW5kZXJseWluZyBzZWFyY2hQYXJhbXMuXG4gICAgICAgICAgICAgICAgUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKSA9PT0gZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgd2FybkZvclN5bmNBY2Nlc3Moc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgdW5wcm94aWVkUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKSB7XG4gICAgLy8gSW4gYWxsIGNhc2VzIHdlIHdhcm4gbm9ybWFsbHlcbiAgICBpZiAobWlzc2luZ1Byb3BlcnRpZXMgJiYgbWlzc2luZ1Byb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICB3YXJuRm9ySW5jb21wbGV0ZUVudW1lcmF0aW9uKHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgd2FybkZvclN5bmNBY2Nlc3Mocm91dGUsIGV4cHJlc3Npb24pO1xuICAgIH1cbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnByZXJlbmRlclBoYXNlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UncmUgcmVuZGVyaW5nIGR5bmFtaWNhbGx5IGluIGRldiwgd2UgbmVlZCB0byBhZHZhbmNlIG91dCBvZlxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgUHJlcmVuZGVyIGVudmlyb25tZW50IHdoZW4gd2UgcmVhZCBSZXF1ZXN0IGRhdGEgc3luY2hyb25vdXNseS5cbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2KSh3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcnVudGltZSc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICAgICAgY2FzZSAncHJpdmF0ZS1jYWNoZSc6XG4gICAgICAgICAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdvcmtVbml0U3RvcmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5jb25zdCB3YXJuRm9yU3luY0FjY2VzcyA9ICgwLCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlci5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShjcmVhdGVTZWFyY2hBY2Nlc3NFcnJvcik7XG5jb25zdCB3YXJuRm9ySW5jb21wbGV0ZUVudW1lcmF0aW9uID0gKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKTtcbmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaEFjY2Vzc0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgKyBgXFxgc2VhcmNoUGFyYW1zXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgcHJvcGVydGllcy4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTI0OVwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBzZWFyY2hQYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB3ZXJlIG5vdCBhdmFpbGFibGUgdGhyb3VnaCBlbnVtZXJhdGlvbiBgICsgYGJlY2F1c2UgdGhleSBjb25mbGljdCB3aXRoIGJ1aWx0aW4gb3Igd2VsbC1rbm93biBwcm9wZXJ0eSBuYW1lczogYCArIGAke2Rlc2NyaWJlTGlzdE9mUHJvcGVydHlOYW1lcyhtaXNzaW5nUHJvcGVydGllcyl9LiBgICsgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMlwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMocHJvcGVydGllcykge1xuICAgIHN3aXRjaChwcm9wZXJ0aWVzLmxlbmd0aCl7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdFeHBlY3RlZCBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMgdG8gYmUgY2FsbGVkIHdpdGggYSBub24tZW1wdHkgbGlzdCBvZiBzdHJpbmdzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTMxXCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgYDtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgIGFuZCBcXGAke3Byb3BlcnRpZXNbMV19XFxgYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgXFxgJHtwcm9wZXJ0aWVzW2ldfVxcYCwgYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYCwgYW5kIFxcYCR7cHJvcGVydGllc1twcm9wZXJ0aWVzLmxlbmd0aCAtIDFdfVxcYGA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VhcmNoLXBhcmFtcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/request/search-params.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/request/utils.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/next/dist/server/request/utils.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 isRequestAPICallableInsideAfter: function() {\n return isRequestAPICallableInsideAfter;\n },\n throwForSearchParamsAccessInUseCache: function() {\n return throwForSearchParamsAccessInUseCache;\n },\n throwWithStaticGenerationBailoutError: function() {\n return throwWithStaticGenerationBailoutError;\n },\n throwWithStaticGenerationBailoutErrorWithDynamicError: function() {\n return throwWithStaticGenerationBailoutErrorWithDynamicError;\n }\n});\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _aftertaskasyncstorageexternal = __webpack_require__(/*! ../app-render/after-task-async-storage.external */ \"../app-render/after-task-async-storage.external\");\nfunction throwWithStaticGenerationBailoutError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E576\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E543\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwForSearchParamsAccessInUseCache(workStore, constructorOpt) {\n const error = Object.defineProperty(new Error(`Route ${workStore.route} used \"searchParams\" inside \"use cache\". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \"searchParams\" outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E779\",\n enumerable: false,\n configurable: true\n });\n Error.captureStackTrace(error, constructorOpt);\n workStore.invalidDynamicUsageError ??= error;\n throw error;\n}\nfunction isRequestAPICallableInsideAfter() {\n const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore();\n return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action';\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW9DZ0JBLCtCQUErQjtlQUEvQkE7O0lBZEFDLG9DQUFvQztlQUFwQ0E7O0lBbEJBQyxxQ0FBcUM7ZUFBckNBOztJQVNBQyxxREFBcUQ7ZUFBckRBOzs7cURBYnNCOzJEQUNBO0FBRy9CLFNBQVNELHNDQUNkRSxLQUFhLEVBQ2JDLFVBQWtCO0lBRWxCLE1BQU0scUJBRUwsQ0FGSyxJQUFJQyx5QkFBQUEscUJBQXFCLENBQzdCLENBQUMsTUFBTSxFQUFFRixNQUFNLGlEQUFpRCxFQUFFQyxXQUFXLDBIQUEwSCxDQUFDLEdBRHBNO2VBQUE7b0JBQUE7c0JBQUE7SUFFTjtBQUNGO0FBRU8sU0FBU0Ysc0RBQ2RDLEtBQWEsRUFDYkMsVUFBa0I7SUFFbEIsTUFBTSxxQkFFTCxDQUZLLElBQUlDLHlCQUFBQSxxQkFBcUIsQ0FDN0IsQ0FBQyxNQUFNLEVBQUVGLE1BQU0sNEVBQTRFLEVBQUVDLFdBQVcsMEhBQTBILENBQUMsR0FEL047ZUFBQTtvQkFBQTtzQkFBQTtJQUVOO0FBQ0Y7QUFFTyxTQUFTSixxQ0FDZE0sU0FBb0IsRUFDcEJDLGNBQXdCO0lBRXhCLE1BQU1DLFFBQVEscUJBRWIsQ0FGYSxJQUFJQyxNQUNoQixDQUFDLE1BQU0sRUFBRUgsVUFBVUgsS0FBSyxDQUFDLHVYQUF1WCxDQUFDLEdBRHJZO2VBQUE7b0JBQUE7c0JBQUE7SUFFZDtJQUVBTSxNQUFNQyxpQkFBaUIsQ0FBQ0YsT0FBT0Q7SUFDL0JELFVBQVVLLHdCQUF3QixLQUFLSDtJQUV2QyxNQUFNQTtBQUNSO0FBRU8sU0FBU1Q7SUFDZCxNQUFNYSxpQkFBaUJDLCtCQUFBQSxxQkFBcUIsQ0FBQ0MsUUFBUTtJQUNyRCxPQUFPRixDQUFBQSxrQkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsZUFBZ0JHLGtCQUFBQSxNQUF1QjtBQUNoRCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL3NlcnZlci9yZXF1ZXN0L3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRpY0dlbkJhaWxvdXRFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQnXG5pbXBvcnQgeyBhZnRlclRhc2tBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL2FmdGVyLXRhc2stYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB0eXBlIHsgV29ya1N0b3JlIH0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmdcbik6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICBgUm91dGUgJHtyb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcihcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiBuZXZlciB7XG4gIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gICAgYFJvdXRlICR7cm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZShcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGNvbnN0cnVjdG9yT3B0OiBGdW5jdGlvblxuKTogbmV2ZXIge1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJzZWFyY2hQYXJhbXNcIiBpbnNpZGUgXCJ1c2UgY2FjaGVcIi4gQWNjZXNzaW5nIGR5bmFtaWMgcmVxdWVzdCBkYXRhIGluc2lkZSBhIGNhY2hlIHNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQuIElmIHlvdSBuZWVkIHNvbWUgc2VhcmNoIHBhcmFtcyBpbnNpZGUgYSBjYWNoZWQgZnVuY3Rpb24gYXdhaXQgXCJzZWFyY2hQYXJhbXNcIiBvdXRzaWRlIG9mIHRoZSBjYWNoZWQgZnVuY3Rpb24gYW5kIHBhc3Mgb25seSB0aGUgcmVxdWlyZWQgc2VhcmNoIHBhcmFtcyBhcyBhcmd1bWVudHMgdG8gdGhlIGNhY2hlZCBmdW5jdGlvbi4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXJlcXVlc3QtaW4tdXNlLWNhY2hlYFxuICApXG5cbiAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyb3IsIGNvbnN0cnVjdG9yT3B0KVxuICB3b3JrU3RvcmUuaW52YWxpZER5bmFtaWNVc2FnZUVycm9yID8/PSBlcnJvclxuXG4gIHRocm93IGVycm9yXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyKCkge1xuICBjb25zdCBhZnRlclRhc2tTdG9yZSA9IGFmdGVyVGFza0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIHJldHVybiBhZnRlclRhc2tTdG9yZT8ucm9vdFRhc2tTcGF3blBoYXNlID09PSAnYWN0aW9uJ1xufVxuIl0sIm5hbWVzIjpbImlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIiLCJ0aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGUiLCJ0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yIiwidGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IiLCJyb3V0ZSIsImV4cHJlc3Npb24iLCJTdGF0aWNHZW5CYWlsb3V0RXJyb3IiLCJ3b3JrU3RvcmUiLCJjb25zdHJ1Y3Rvck9wdCIsImVycm9yIiwiRXJyb3IiLCJjYXB0dXJlU3RhY2tUcmFjZSIsImludmFsaWREeW5hbWljVXNhZ2VFcnJvciIsImFmdGVyVGFza1N0b3JlIiwiYWZ0ZXJUYXNrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJyb290VGFza1NwYXduUGhhc2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/request/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/module.compiled.js ***!
|
||
\*********************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nif (false) {} else {\n if (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/app-page.runtime.dev.js */ \"next/dist/compiled/next-server/app-page.runtime.dev.js\");\n }\n } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZC5qcz82YTRkIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLEtBQXFDLEVBQUUsRUFjMUMsQ0FBQztBQUNOLFlBQVksSUFBc0M7QUFDbEQsZ0JBQWdCLEtBQXFCLEVBQUUsRUFFMUIsQ0FBQztBQUNkLGdCQUFnQiw0SkFBa0Y7QUFDbEc7QUFDQSxVQUFVLEtBQUssRUFNTjtBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmpzJyk7XG59IGVsc2Uge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX1JFQUNUKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLWV4cGVyaW1lbnRhbC5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS1leHBlcmltZW50YWwucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS10dXJiby1leHBlcmltZW50YWwucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UtdHVyYm8ucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/module.compiled.js ***!
|
||
\*********************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nif (false) {} else {\n if (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/app-page.runtime.dev.js */ \"next/dist/compiled/next-server/app-page.runtime.dev.js\");\n }\n } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZC5qcz9kM2M0IiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLEtBQXFDLEVBQUUsRUFjMUMsQ0FBQztBQUNOLFlBQVksSUFBc0M7QUFDbEQsZ0JBQWdCLEtBQXFCLEVBQUUsRUFFMUIsQ0FBQztBQUNkLGdCQUFnQiw0SkFBa0Y7QUFDbEc7QUFDQSxVQUFVLEtBQUssRUFNTjtBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmpzJyk7XG59IGVsc2Uge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX1JFQUNUKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLWV4cGVyaW1lbnRhbC5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS1leHBlcmltZW50YWwucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS10dXJiby1leHBlcmltZW50YWwucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UtdHVyYm8ucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js":
|
||
/*!******************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js ***!
|
||
\******************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored.contexts.AppRouterContext;\n\n//# sourceMappingURL=app-router-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2FwcC1yb3V0ZXItY29udGV4dC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDRMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvY29udGV4dHMvYXBwLXJvdXRlci1jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsnY29udGV4dHMnXS5BcHBSb3V0ZXJDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcm91dGVyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js":
|
||
/*!********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js ***!
|
||
\********************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored.contexts.HooksClientContext;\n\n//# sourceMappingURL=hooks-client-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2hvb2tzLWNsaWVudC1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9ob29rcy1jbGllbnQtY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uSG9va3NDbGllbnRDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob29rcy1jbGllbnQtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js":
|
||
/*!********************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js ***!
|
||
\********************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored.contexts.ServerInsertedHtml;\n\n//# sourceMappingURL=server-inserted-html.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL3NlcnZlci1pbnNlcnRlZC1odG1sLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9zZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uU2VydmVySW5zZXJ0ZWRIdG1sO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js":
|
||
/*!****************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js ***!
|
||
\****************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored[\"react-ssr\"].ReactDOM;\n\n//# sourceMappingURL=react-dom.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1kb20uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix3TEFBZ0Y7O0FBRWhGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1kb20uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1zc3InXS5SZWFjdERPTTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtZG9tLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js":
|
||
/*!****************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js ***!
|
||
\****************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored[\"react-ssr\"].ReactJsxDevRuntime;\n\n//# sourceMappingURL=react-jsx-dev-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixrTUFBMEY7O0FBRTFGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9jb2RlL2RyYW1hbGluZy12b2NhYi1sZWFybmluZy9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1zc3InXS5SZWFjdEpzeERldlJ1bnRpbWU7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWpzeC1kZXYtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js":
|
||
/*!************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js ***!
|
||
\************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored[\"react-ssr\"].ReactJsxRuntime;\n\n//# sourceMappingURL=react-jsx-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLCtMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvc3NyL3JlYWN0LWpzeC1ydW50aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3Qtc3NyJ10uUmVhY3RKc3hSdW50aW1lO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1qc3gtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js":
|
||
/*!**************************************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js ***!
|
||
\**************************************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored[\"react-ssr\"].ReactServerDOMWebpackClient;\n\n//# sourceMappingURL=react-server-dom-webpack-client.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMk1BQW1HOztBQUVuRyIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9zc3IvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ3JlYWN0LXNzciddLlJlYWN0U2VydmVyRE9NV2VicGFja0NsaWVudDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js":
|
||
/*!************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js ***!
|
||
\************************************************************************************/
|
||
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?d3c4\").vendored[\"react-ssr\"].React;\n\n//# sourceMappingURL=react.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLHFMQUE2RTs7QUFFN0UiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L2NvZGUvZHJhbWFsaW5nLXZvY2FiLWxlYXJuaW5nL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvc3NyL3JlYWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3Qtc3NyJ10uUmVhY3Q7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js ***!
|
||
\******************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ReflectAdapter\", ({\n enumerable: true,\n get: function() {\n return ReflectAdapter;\n }\n}));\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}\n\n//# sourceMappingURL=reflect.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvY29kZS9kcmFtYWxpbmctdm9jYWItbGVhcm5pbmcvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlZmxlY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWZsZWN0QWRhcHRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXI7XG4gICAgfVxufSk7XG5jbGFzcyBSZWZsZWN0QWRhcHRlciB7XG4gICAgc3RhdGljIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5iaW5kKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBzdGF0aWMgc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgfVxuICAgIHN0YXRpYyBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgIH1cbiAgICBzdGF0aWMgZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KHRhcmdldCwgcHJvcCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWZsZWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/error-source.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/error-source.js ***!
|
||
\***********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 decorateServerError: function() {\n return decorateServerError;\n },\n getErrorSource: function() {\n return getErrorSource;\n }\n});\nconst symbolError = Symbol.for('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} //# sourceMappingURL=error-source.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3Itc291cmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVFnQkEsbUJBQW1CO2VBQW5CQTs7SUFOQUMsY0FBYztlQUFkQTs7O0FBRmhCLE1BQU1DLGNBQWNDLE9BQU9DLEdBQUcsQ0FBQztBQUV4QixTQUFTSCxlQUFlSSxLQUFZO0lBQ3pDLE9BQVFBLEtBQWEsQ0FBQ0gsWUFBWSxJQUFJO0FBQ3hDO0FBSU8sU0FBU0Ysb0JBQW9CSyxLQUFZLEVBQUVDLElBQXFCO0lBQ3JFQyxPQUFPQyxjQUFjLENBQUNILE9BQU9ILGFBQWE7UUFDeENPLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxjQUFjO1FBQ2RDLE9BQU9OO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL3NoYXJlZC9saWIvZXJyb3Itc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHN5bWJvbEVycm9yID0gU3ltYm9sLmZvcignTmV4dGpzRXJyb3InKVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JTb3VyY2UoZXJyb3I6IEVycm9yKTogJ3NlcnZlcicgfCAnZWRnZS1zZXJ2ZXInIHwgbnVsbCB7XG4gIHJldHVybiAoZXJyb3IgYXMgYW55KVtzeW1ib2xFcnJvcl0gfHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBFcnJvclNvdXJjZVR5cGUgPSAnZWRnZS1zZXJ2ZXInIHwgJ3NlcnZlcidcblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29yYXRlU2VydmVyRXJyb3IoZXJyb3I6IEVycm9yLCB0eXBlOiBFcnJvclNvdXJjZVR5cGUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycm9yLCBzeW1ib2xFcnJvciwge1xuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiB0eXBlLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImRlY29yYXRlU2VydmVyRXJyb3IiLCJnZXRFcnJvclNvdXJjZSIsInN5bWJvbEVycm9yIiwiU3ltYm9sIiwiZm9yIiwiZXJyb3IiLCJ0eXBlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ3cml0YWJsZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ2YWx1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/error-source.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/errors/constants.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/errors/constants.js ***!
|
||
\***************************************************************/
|
||
/***/ ((module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"MISSING_ROOT_TAGS_ERROR\", ({\n enumerable: true,\n get: function() {\n return MISSING_ROOT_TAGS_ERROR;\n }\n}));\nconst MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7OzJEQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSwwQkFBMEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvc2hhcmVkL2xpYi9lcnJvcnMvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBNSVNTSU5HX1JPT1RfVEFHU19FUlJPUiA9ICdORVhUX01JU1NJTkdfUk9PVF9UQUdTJ1xuIl0sIm5hbWVzIjpbIk1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/errors/constants.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/format-webpack-messages.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/format-webpack-messages.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("/**\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*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return formatWebpackMessages;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\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 (0, _stripansi.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 ? (0, _stripansi.default)(message.moduleName) + '\\n' : '') + (message.file ? (0, _stripansi.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].startsWith('Module not found: ')) {\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 occurred 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkE7Ozs7MkNBaUtBOzs7ZUFBd0JBOzs7O2dGQWhLRjtBQUN0QixxS0FBcUs7QUFDckssMERBQTBEO0FBRTFELE1BQU1DLDJCQUEyQjtBQUVqQyxNQUFNQyxvQ0FDSjtBQUVGLFNBQVNDLHFCQUFxQkMsT0FBZTtJQUMzQyxPQUFPQyxDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxTQUFTRSxRQUFRLENBQUNMO0FBQ3JDO0FBRUEsSUFBSU0sc0JBQXNCO0FBRTFCLG9DQUFvQztBQUNwQyxTQUFTQyxjQUNQSixPQUFZLEVBQ1pLLE9BQWlCLEVBQ2pCQyxlQUF5QjtJQUV6Qiw4Q0FBOEM7SUFDOUMsSUFBSSxPQUFPTixZQUFZLFlBQVlBLFFBQVFBLE9BQU8sRUFBRTtRQUNsRCxNQUFNTyxzQkFDSlAsUUFBUVEsV0FBVyxJQUNuQlIsUUFBUVEsV0FBVyxDQUFDQyxNQUFNLENBQ3hCLENBQUNDLFFBQ0MsQ0FBQyxnRUFBZ0VDLElBQUksQ0FDbkVELE1BQU1FLFVBQVU7UUFJeEIsSUFBSUMsT0FBT2IsUUFBUUEsT0FBTztRQUMxQixNQUFNYyxzQkFBc0JELEtBQUtFLE9BQU8sQ0FBQ2pCO1FBQ3pDLElBQUlnQix1QkFBdUIsR0FBRztZQUM1QkQsT0FBT0EsS0FBS0csS0FBSyxDQUFDLEdBQUdGO1FBQ3ZCO1FBRUFkLFVBQ0dBLENBQUFBLFFBQVFpQixVQUFVLEdBQUdoQixDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxRQUFRaUIsVUFBVSxJQUFJLE9BQU8sR0FBQyxHQUM3RGpCLENBQUFBLFFBQVFrQixJQUFJLEdBQUdqQixDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxRQUFRa0IsSUFBSSxJQUFJLE9BQU8sR0FBQyxHQUNsREwsT0FDQ2IsQ0FBQUEs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QUNELEtBQUssQ0FBQyxFQUFFO0lBQ2xDO0lBRUEsTUFBTUUsU0FBUztRQUNiLEdBQUdWLElBQUk7UUFDUEUsUUFBUUQ7UUFDUkksVUFBVUQ7SUFDWjtJQUNBLElBQUksQ0FBQ3ZDLFdBQVc2QyxPQUFPUixNQUFNLENBQUNTLElBQUksQ0FBQ3BELHVCQUF1QjtRQUN4RCxrREFBa0Q7UUFDbERtRCxPQUFPUixNQUFNLEdBQUdRLE9BQU9SLE1BQU0sQ0FBQ2pDLE1BQU0sQ0FBQ1Y7UUFDckNtRCxPQUFPTCxRQUFRLEdBQUcsRUFBRTtJQUN0QjtJQUNBLE9BQU9LO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9zaGFyZWQvbGliL2Zvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuTUlUIExpY2Vuc2VcblxuQ29weXJpZ2h0IChjKSAyMDE1LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG5jb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG5JTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG5TT0ZUV0FSRS5cbiovXG5pbXBvcnQgc3RyaXBBbnNpIGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpJ1xuLy8gVGhpcyBmaWxlIGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL2Jsb2IvN2IxYTMyYmU2ZWM5Zjk5YTZjOWEzYzY2ODEzZjNhYzA5YzQ3MzZiOS9wYWNrYWdlcy9yZWFjdC1kZXYtdXRpbHMvZm9ybWF0V2VicGFja01lc3NhZ2VzLmpzXG4vLyBJdCdzIGJlZW4gZWRpdGVkIHRvIHJlbW92ZSBjaGFsayBhbmQgQ1JBLXNwZWNpZmljIGxvZ2ljXG5cbmNvbnN0IGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCA9ICdTeW50YXggZXJyb3I6J1xuXG5jb25zdCBXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMgPVxuICAnXFxuXFxuQlJFQUtJTkcgQ0hBTkdFOiB3ZWJwYWNrIDwgNSB1c2VkIHRvIGluY2x1ZGUgcG9seWZpbGxzIGZvciBub2RlLmpzIGNvcmUgbW9kdWxlcyBieSBkZWZhdWx0LidcblxuZnVuY3Rpb24gaXNMaWtlbHlBU3ludGF4RXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpcEFuc2kobWVzc2FnZSkuaW5jbHVkZXMoZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsKVxufVxuXG5sZXQgaGFkTWlzc2luZ1Nhc3NFcnJvciA9IGZhbHNlXG5cbi8vIENsZWFucyB1cCB3ZWJwYWNrIGVycm9yIG1lc3NhZ2VzLlxuZnVuY3Rpb24gZm9ybWF0TWVzc2FnZShcbiAgbWVzc2FnZTogYW55LFxuICB2ZXJib3NlPzogYm9vbGVhbixcbiAgaW1wb3J0VHJhY2VOb3RlPzogYm9vbGVhblxuKSB7XG4gIC8vIFRPRE86IFJlcGxhY2UgdGhpcyBvbmNlIHdlYnBhY2sgNSBpcyBzdGFibGVcbiAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnb2JqZWN0JyAmJiBtZXNzYWdlLm1lc3NhZ2UpIHtcbiAgICBjb25zdCBmaWx0ZXJlZE1vZHVsZVRyYWNlID1cbiAgICAgIG1lc3NhZ2UubW9kdWxlVHJhY2UgJiZcbiAgICAgIG1lc3NhZ2UubW9kdWxlVHJhY2UuZmlsdGVyKFxuICAgICAgICAodHJhY2U6IGFueSkgPT5cbiAgICAgICAgICAhL25leHQtKG1pZGRsZXdhcmV8Y2xpZW50LXBhZ2VzfHJvdXRlfGVkZ2UtZnVuY3Rpb24pLWxvYWRlclxcLmpzLy50ZXN0KFxuICAgICAgICAgICAgdHJhY2Uub3JpZ2luTmFtZVxuICAgICAgICAgIClcbiAgICAgIClcblxuICAgIGxldCBib2R5ID0gbWVzc2FnZS5tZXNzYWdlXG4gICAgY29uc3QgYnJlYWtpbmdDaGFuZ2VJbmRleCA9IGJvZHkuaW5kZXhPZihXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMpXG4gICAgaWYgKGJyZWFraW5nQ2hhbmdlSW5kZXggPj0gMCkge1xuICAgICAgYm9keSA9IGJvZHkuc2xpY2UoMCwgYnJlYWtpbmdDaGFuZ2VJbmRleClcbiAgICB9XG5cbiAgICBtZXNzYWdlID1cbiAgICAgIChtZXNzYWdlLm1vZHVsZU5hbWUgPyBzdHJpcEFuc2kobWVzc2FnZS5tb2R1bGVOYW1lKSArICdcXG4nIDogJycpICtcbiAgICAgIChtZXNzYWdlLmZpbGUgPyBzdHJpcEFuc2kobWVzc2FnZS5maWxlKSArICdcXG4nIDogJycpICtcbiAgICAgIGJvZHkgK1xuICAgICAgKG1lc3NhZ2UuZGV0YWlscyAmJiB2ZXJib3NlID8gJ1xcbicgKyBtZXNzYWdlLmRldGFpbHMgOiAnJykgK1xuICAgICAgKGZpbHRlcmVkTW9kdWxlVHJhY2UgJiYgZmlsdGVyZWRNb2R1bGVUcmFjZS5sZW5ndGhcbiAgICAgICAgPyAoaW1wb3J0VHJhY2VOb3RlIHx8ICdcXG5cXG5JbXBvcnQgdHJhY2UgZm9yIHJlcXVlc3RlZCBtb2R1bGU6JykgK1xuICAgICAgICAgIGZpbHRlcmVkTW9kdWxlVHJhY2VcbiAgICAgICAgICAgIC5tYXAoKHRyYWNlOiBhbnkpID0+IGBcXG4ke3RyYWNlLm1vZHVsZU5hbWV9YClcbiAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICA6ICcnKSArXG4gICAgICAobWVzc2FnZS5zdGFjayAmJiB2ZXJib3NlID8gJ1xcbicgKyBtZXNzYWdlLnN0YWNrIDogJycpXG4gIH1cbiAgbGV0IGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJylcblxuICAvLyBTdHJpcCBXZWJwYWNrLWFkZGVkIGhlYWRlcnMgb2ZmIGVycm9ycy93YXJuaW5nc1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvbWFzdGVyL2xpYi9Nb2R1bGVFcnJvci5qc1xuICBsaW5lcyA9IGxpbmVzLmZpbHRlcigobGluZTogc3RyaW5nKSA9PiAhL01vZHVsZSBbQS16IF0rXFwoZnJvbS8udGVzdChsaW5lKSlcblxuICAvLyBUcmFuc2Zvcm0gcGFyc2luZyBlcnJvciBpbnRvIHN5bnRheCBlcnJvclxuICAvLyBUT0RPOiBtb3ZlIHRoaXMgdG8gb3VyIEVTTGludCBmb3JtYXR0ZXI/XG4gIGxpbmVzID0gbGluZXMubWFwKChsaW5lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBwYXJzaW5nRXJyb3IgPSAvTGluZSAoXFxkKyk6KD86KFxcZCspOik/XFxzKlBhcnNpbmcgZXJyb3I6ICguKykkLy5leGVjKFxuICAgICAgbGluZVxuICAgIClcbiAgICBpZiAoIXBhcnNpbmdFcnJvcikge1xuICAgICAgcmV0dXJuIGxpbmVcbiAgICB9XG4gICAgY29uc3QgWywgZXJyb3JMaW5lLCBlcnJvckNvbHVtbiwgZXJyb3JNZXNzYWdlXSA9IHBhcnNpbmdFcnJvclxuICAgIHJldHVybiBgJHtmcmllbmRseVN5bnRheEVycm9yTGFiZWx9ICR7ZXJyb3JNZXNzYWdlfSAoJHtlcnJvckxpbmV9OiR7ZXJyb3JDb2x1bW59KWBcbiAgfSlcblxuICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJylcbiAgLy8gU21vb3NoIHN5bnRheCBlcnJvcnMgKGNvbW1vbmx5IGZvdW5kIGluIENTUylcbiAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAvU3ludGF4RXJyb3JcXHMrXFwoKFxcZCspOihcXGQrKVxcKVxccyooLis/KVxcbi9nLFxuICAgIGAke2ZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbH0gJDMgKCQxOiQyKVxcbmBcbiAgKVxuICAvLyBDbGVhbiB1cCBleHBvcnQgZXJyb3JzXG4gIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgL14uKmV4cG9ydCAnKC4rPyknIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSxcbiAgICBgQXR0ZW1wdGVkIGltcG9ydCBlcnJvcjogJyQxJyBpcyBub3QgZXhwb3J0ZWQgZnJvbSAnJDInLmBcbiAgKVxuICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgIC9eLipleHBvcnQgJ2RlZmF1bHQnIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLFxuICAgIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDInIGRvZXMgbm90IGNvbnRhaW4gYSBkZWZhdWx0IGV4cG9ydCAoaW1wb3J0ZWQgYXMgJyQxJykuYFxuICApXG4gIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgL14uKmV4cG9ydCAnKC4rPyknIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLFxuICAgIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDEnIGlzIG5vdCBleHBvcnRlZCBmcm9tICckMycgKGltcG9ydGVkIGFzICckMicpLmBcbiAgKVxuICBsaW5lcyA9IG1lc3NhZ2Uuc3BsaXQoJ1xcbicpXG5cbiAgLy8gUmVtb3ZlIGxlYWRpbmcgbmV3bGluZVxuICBpZiAobGluZXMubGVuZ3RoID4gMiAmJiBsaW5lc1sxXS50cmltKCkgPT09ICcnKSB7XG4gICAgbGluZXMuc3BsaWNlKDEsIDEpXG4gIH1cblxuICAvLyBDbGVhbnMgdXAgdmVyYm9zZSBcIm1vZHVsZSBub3QgZm91bmRcIiBtZXNzYWdlcyBmb3IgZmlsZXMgYW5kIHBhY2thZ2VzLlxuICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0uc3RhcnRzV2l0aCgnTW9kdWxlIG5vdCBmb3VuZDogJykpIHtcbiAgICBsaW5lcyA9IFtcbiAgICAgIGxpbmVzWzBdLFxuICAgICAgbGluZXNbMV1cbiAgICAgICAgLnJlcGxhY2UoJ0Vycm9yOiAnLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJ01vZHVsZSBub3QgZm91bmQ6IENhbm5vdCBmaW5kIGZpbGU6JywgJ0Nhbm5vdCBmaW5kIGZpbGU6JyksXG4gICAgICAuLi5saW5lcy5zbGljZSgyKSxcbiAgICBdXG4gIH1cblxuICAvLyBBZGQgaGVscGZ1bCBtZXNzYWdlIGZvciB1c2VycyB0cnlpbmcgdG8gdXNlIFNhc3MgZm9yIHRoZSBmaXJzdCB0aW1lXG4gIGlmIChsaW5lc1sxXSAmJiBsaW5lc1sxXS5tYXRjaCgvQ2Fubm90IGZpbmQgbW9kdWxlLitzYXNzLykpIHtcbiAgICAvLyAuL2ZpbGUubW9kdWxlLnNjc3MgKDw8bG9hZGVyIGluZm8+PikgPT4gLi9maWxlLm1vZHVsZS5zY3NzXG4gICAgY29uc3QgZmlyc3RMaW5lID0gbGluZXNbMF0uc3BsaXQoJyEnKVxuICAgIGxpbmVzWzBdID0gZmlyc3RMaW5lW2ZpcnN0TGluZS5sZW5ndGggLSAxXVxuXG4gICAgbGluZXNbMV0gPVxuICAgICAgXCJUbyB1c2UgTmV4dC5qcycgYnVpbHQtaW4gU2FzcyBzdXBwb3J0LCB5b3UgZmlyc3QgbmVlZCB0byBpbnN0YWxsIGBzYXNzYC5cXG5cIlxuICAgIGxpbmVzWzFdICs9ICdSdW4gYG5wbSBpIHNhc3NgIG9yIGB5YXJuIGFkZCBzYXNzYCBpbnNpZGUgeW91ciB3b3Jrc3BhY2UuXFxuJ1xuICAgIGxpbmVzWzFdICs9ICdcXG5MZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnN0YWxsLXNhc3MnXG5cbiAgICAvLyBkaXNwb3NlIG9mIHVuaGVscGZ1bCBzdGFjayB0cmFjZVxuICAgIGxpbmVzID0gbGluZXMuc2xpY2UoMCwgMilcbiAgICBoYWRNaXNzaW5nU2Fzc0Vycm9yID0gdHJ1ZVxuICB9IGVsc2UgaWYgKFxuICAgIGhhZE1pc3NpbmdTYXNzRXJyb3IgJiZcbiAgICBtZXNzYWdlLm1hdGNoKC8oc2Fzcy1sb2FkZXJ8cmVzb2x2ZS11cmwtbG9hZGVyOiBDU1MgZXJyb3IpLylcbiAgKSB7XG4gICAgLy8gZGlzcG9zZSBvZiB1bmhlbHBmdWwgc3RhY2sgdHJhY2UgZm9sbG93aW5nIG1pc3Npbmcgc2FzcyBtb2R1bGVcbiAgICBsaW5lcyA9IFtdXG4gIH1cblxuICBpZiAoIXZlcmJvc2UpIHtcbiAgICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJylcbiAgICAvLyBJbnRlcm5hbCBzdGFja3MgYXJlIGdlbmVyYWxseSB1c2VsZXNzIHNvIHdlIHN0cmlwIHRoZW0uLi4gd2l0aCB0aGVcbiAgICAvLyBleGNlcHRpb24gb2Ygc3RhY2tzIGNvbnRhaW5pbmcgYHdlYnBhY2s6YCBiZWNhdXNlIHRoZXkncmUgbm9ybWFsbHlcbiAgICAvLyBmcm9tIHVzZXIgY29kZSBnZW5lcmF0ZWQgYnkgV2VicGFjay4gRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2NyZWF0ZS1yZWFjdC1hcHAvcHVsbC8xMDUwXG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgIC9eXFxzKmF0XFxzKCg/IXdlYnBhY2s6KS4pKjpcXGQrOlxcZCtbXFxzKV0qKFxcbnwkKS9nbSxcbiAgICAgICcnXG4gICAgKSAvLyBhdCAuLi4gLi4uOng6eVxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL15cXHMqYXRcXHM8YW5vbnltb3VzPihcXG58JCkvZ20sICcnKSAvLyBhdCA8YW5vbnltb3VzPlxuXG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgIC9GaWxlIHdhcyBwcm9jZXNzZWQgd2l0aCB0aGVzZSBsb2FkZXJzOlxcbiguK1tcXFxcL10obmV4dFtcXFxcL11kaXN0W1xcXFwvXS4rfEBuZXh0W1xcXFwvXXJlYWN0LXJlZnJlc2gtdXRpbHNbXFxcXC9dbG9hZGVyKVxcLmpzXFxuKSpZb3UgbWF5IG5lZWQgYW4gYWRkaXRpb25hbCBsb2FkZXIgdG8gaGFuZGxlIHRoZSByZXN1bHQgb2YgdGhlc2UgbG9hZGVycy5cXG4vZyxcbiAgICAgICcnXG4gICAgKVxuXG4gICAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKVxuICB9XG5cbiAgLy8gUmVtb3ZlIGR1cGxpY2F0ZWQgbmV3bGluZXNcbiAgbGluZXMgPSAobGluZXMgYXMgc3RyaW5nW10pLmZpbHRlcihcbiAgICAobGluZSwgaW5kZXgsIGFycikgPT5cbiAgICAgIGluZGV4ID09PSAwIHx8IGxpbmUudHJpbSgpICE9PSAnJyB8fCBsaW5lLnRyaW0oKSAhPT0gYXJyW2luZGV4IC0gMV0udHJpbSgpXG4gIClcblxuICAvLyBSZWFzc2VtYmxlIHRoZSBtZXNzYWdlXG4gIG1lc3NhZ2UgPSBsaW5lcy5qb2luKCdcXG4nKVxuICByZXR1cm4gbWVzc2FnZS50cmltKClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0V2VicGFja01lc3NhZ2VzKGpzb246IGFueSwgdmVyYm9zZT86IGJvb2xlYW4pIHtcbiAgY29uc3QgZm9ybWF0dGVkRXJyb3JzID0ganNvbi5lcnJvcnMubWFwKChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICBjb25zdCBpc1Vua25vd25OZXh0Rm9udEVycm9yID0gbWVzc2FnZS5tZXNzYWdlLmluY2x1ZGVzKFxuICAgICAgJ0FuIGVycm9yIG9jY3VycmVkIGluIGBuZXh0L2ZvbnRgLidcbiAgICApXG4gICAgcmV0dXJuIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgaXNVbmtub3duTmV4dEZvbnRFcnJvciB8fCB2ZXJib3NlKVxuICB9KVxuICBjb25zdCBmb3JtYXR0ZWRXYXJuaW5ncyA9IGpzb24ud2FybmluZ3MubWFwKChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICByZXR1cm4gZm9ybWF0TWVzc2FnZShtZXNzYWdlLCB2ZXJib3NlKVxuICB9KVxuXG4gIC8vIFJlb3JkZXIgZXJyb3JzIHRvIHB1dCB0aGUgbW9zdCByZWxldmFudCBvbmVzIGZpcnN0LlxuICBsZXQgcmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgPSAtMVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkRXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgZXJyb3IgPSBmb3JtYXR0ZWRFcnJvcnNbaV1cbiAgICBpZiAoZXJyb3IuaW5jbHVkZXMoJ1JlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yJykpIHtcbiAgICAgIHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yID0gaVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIHRoZSByZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciB0byB0aGUgdG9wIGlmIGl0IGV4aXN0c1xuICBpZiAocmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgIT09IC0xKSB7XG4gICAgY29uc3QgZXJyb3IgPSBmb3JtYXR0ZWRFcnJvcnMuc3BsaWNlKHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yLCAxKVxuICAgIGZvcm1hdHRlZEVycm9ycy51bnNoaWZ0KGVycm9yWzBdKVxuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLmpzb24sXG4gICAgZXJyb3JzOiBmb3JtYXR0ZWRFcnJvcnMsXG4gICAgd2FybmluZ3M6IGZvcm1hdHRlZFdhcm5pbmdzLFxuICB9XG4gIGlmICghdmVyYm9zZSAmJiByZXN1bHQuZXJyb3JzLnNvbWUoaXNMaWtlbHlBU3ludGF4RXJyb3IpKSB7XG4gICAgLy8gSWYgdGhlcmUgYXJlIGFueSBzeW50YXggZXJyb3JzLCBzaG93IGp1c3QgdGhlbS5cbiAgICByZXN1bHQuZXJyb3JzID0gcmVzdWx0LmVycm9ycy5maWx0ZXIoaXNMaWtlbHlBU3ludGF4RXJyb3IpXG4gICAgcmVzdWx0Lndhcm5pbmdzID0gW11cbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsiZm9ybWF0V2VicGFja01lc3NhZ2VzIiwiZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsIiwiV0VCUEFDS19CUkVBS0lOR19DSEFOR0VfUE9MWUZJTExTIiwiaXNMaWtlbHlBU3ludGF4RXJyb3IiLCJtZXNzYWdlIiwic3RyaXBBbnNpIiwiaW5jbHVkZXMiLCJoYWRNaXNzaW5nU2Fzc0Vycm9yIiwiZm9ybWF0TWVzc2FnZSIsInZlcmJvc2UiLCJpbXBvcnRUcmFjZU5vdGUiLCJmaWx0ZXJlZE1vZHVsZVRyYWNlIiwibW9kdWxlVHJhY2UiLCJmaWx0ZXIiLCJ0cmFjZSIsInRlc3QiLCJvcmlnaW5OYW1lIiwiYm9keSIsImJyZWFraW5nQ2hhbmdlSW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJtb2R1bGVOYW1lIiwiZmlsZSIsImRldGFpbHMiLCJsZW5ndGgiLCJtYXAiLCJqb2luIiwic3RhY2siLCJsaW5lcyIsInNwbGl0IiwibGluZSIsInBhcnNpbmdFcnJvciIsImV4ZWMiLCJlcnJvckxpbmUiLCJlcnJvckNvbHVtbiIsImVycm9yTWVzc2FnZSIsInJlcGxhY2UiLCJ0cmltIiwic3BsaWNlIiwic3RhcnRzV2l0aCIsIm1hdGNoIiwiZmlyc3RMaW5lIiwiaW5kZXgiLCJhcnIiLCJqc29uIiwiZm9ybWF0dGVkRXJyb3JzIiwiZXJyb3JzIiwiaXNVbmtub3duTmV4dEZvbnRFcnJvciIsImZvcm1hdHRlZFdhcm5pbmdzIiwid2FybmluZ3MiLCJyZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciIsImkiLCJlcnJvciIsInVuc2hpZnQiLCJyZXN1bHQiLCJzb21lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/format-webpack-messages.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/hash.js":
|
||
/*!***************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/hash.js ***!
|
||
\***************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// 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.\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 djb2Hash: function() {\n return djb2Hash;\n },\n hexHash: function() {\n return hexHash;\n }\n});\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsNENBQTRDO0FBQzVDLGlIQUFpSDtBQUNqSCx3RkFBd0Y7QUFDeEYsZ0dBQWdHO0FBQ2hHLHdIQUF3SDtBQUN4SCx3REFBd0Q7Ozs7Ozs7Ozs7Ozs7SUFDeENBLFFBQVE7ZUFBUkE7O0lBU0FDLE9BQU87ZUFBUEE7OztBQVRULFNBQVNELFNBQVNFLEdBQVc7SUFDbEMsSUFBSUMsT0FBTztJQUNYLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJRixJQUFJRyxNQUFNLEVBQUVELElBQUs7UUFDbkMsTUFBTUUsT0FBT0osSUFBSUssVUFBVSxDQUFDSDtRQUM1QkQsT0FBU0EsQ0FBQUEsU0FBUSxJQUFLQSxPQUFPRyxPQUFRO0lBQ3ZDO0lBQ0EsT0FBT0gsU0FBUztBQUNsQjtBQUVPLFNBQVNGLFFBQVFDLEdBQVc7SUFDakMsT0FBT0YsU0FBU0UsS0FBS00sUUFBUSxDQUFDLElBQUlDLEtBQUssQ0FBQyxHQUFHO0FBQzdDIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9oYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHA6Ly93d3cuY3NlLnlvcmt1LmNhL35vei9oYXNoLmh0bWxcbi8vIE1vcmUgc3BlY2lmaWNhbGx5LCAzMi1iaXQgaGFzaCB2aWEgZGpieG9yXG4vLyAocmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9lcGxhd2xlc3MvNTI4MTNiMWQ4YWQ5YWY1MTBkODU/cGVybWFsaW5rX2NvbW1lbnRfaWQ9MzM2Nzc2NSNnaXN0Y29tbWVudC0zMzY3NzY1KVxuLy8gVGhpcyBpcyBkdWUgdG8gbnVtYmVyIHR5cGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBydXN0IGZvciB0dXJib3BhY2sgdG8ganMgbnVtYmVyIHR5cGVzLFxuLy8gd2hlcmUgcnVzdCBkb2VzIG5vdCBoYXZlIGVhc3kgd2F5IHRvIHJlcHJlZXNudCBqcydzIDUzLWJpdCBmbG9hdCBudW1iZXIgdHlwZSBmb3IgdGhlIG1hdGNoaW5nXG4vLyBvdmVyZmxvdyBiZWhhdmlvci4gVGhpcyBpcyBtb3JlIGBjb3JyZWN0YCBpbiB0ZXJtcyBvZiBoYXZpbmcgY2Fub25pY2FsIGhhc2ggYWNyb3NzIGRpZmZlcmVudCBydW50aW1lIC8gaW1wbGVtZW50YXRpb25cbi8vIGFzIGNhbiBnYXVyYW50ZWUgZGV0ZXJtaW5zdGljIG91dHB1dCBmcm9tIDMyYml0IGhhc2guXG5leHBvcnQgZnVuY3Rpb24gZGpiMkhhc2goc3RyOiBzdHJpbmcpIHtcbiAgbGV0IGhhc2ggPSA1MzgxXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGFzaCA9ICgoaGFzaCA8PCA1KSArIGhhc2ggKyBjaGFyKSAmIDB4ZmZmZmZmZmZcbiAgfVxuICByZXR1cm4gaGFzaCA+Pj4gMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGV4SGFzaChzdHI6IHN0cmluZykge1xuICByZXR1cm4gZGpiMkhhc2goc3RyKS50b1N0cmluZygzNikuc2xpY2UoMCwgNSlcbn1cbiJdLCJuYW1lcyI6WyJkamIySGFzaCIsImhleEhhc2giLCJzdHIiLCJoYXNoIiwiaSIsImxlbmd0aCIsImNoYXIiLCJjaGFyQ29kZUF0IiwidG9TdHJpbmciLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/hash.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/invariant-error.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"InvariantError\", ({\n enumerable: true,\n get: function() {\n return InvariantError;\n }\n}));\nclass InvariantError extends Error {\n constructor(message, options){\n super(\"Invariant: \" + (message.endsWith('.') ? message : message + '.') + \" This is a bug in Next.js.\", options);\n this.name = 'InvariantError';\n }\n} //# sourceMappingURL=invariant-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHVCQUF1QkM7SUFDbENDLFlBQVlDLE9BQWUsRUFBRUMsT0FBc0IsQ0FBRTtRQUNuRCxLQUFLLENBQ0YsZ0JBQWFELENBQUFBLFFBQVFFLFFBQVEsQ0FBQyxPQUFPRixVQUFVQSxVQUFVLElBQUUsR0FBRSw4QkFDOURDO1FBRUYsSUFBSSxDQUFDRSxJQUFJLEdBQUc7SUFDZDtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEludmFyaWFudEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBFcnJvck9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIGBJbnZhcmlhbnQ6ICR7bWVzc2FnZS5lbmRzV2l0aCgnLicpID8gbWVzc2FnZSA6IG1lc3NhZ2UgKyAnLid9IFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcy5gLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgICB0aGlzLm5hbWUgPSAnSW52YXJpYW50RXJyb3InXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJJbnZhcmlhbnRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwib3B0aW9ucyIsImVuZHNXaXRoIiwibmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/is-plain-object.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFnQkEsbUJBQW1CO2VBQW5CQTs7SUFJQUMsYUFBYTtlQUFiQTs7O0FBSlQsU0FBU0Qsb0JBQW9CRSxLQUFVO0lBQzVDLE9BQU9DLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNKO0FBQ3hDO0FBRU8sU0FBU0QsY0FBY0MsS0FBVTtJQUN0QyxJQUFJRixvQkFBb0JFLFdBQVcsbUJBQW1CO1FBQ3BELE9BQU87SUFDVDtJQUVBLE1BQU1FLFlBQVlELE9BQU9JLGNBQWMsQ0FBQ0w7SUFFeEM7Ozs7Ozs7O0dBUUMsR0FDRCxPQUFPRSxjQUFjLFFBQVFBLFVBQVVJLGNBQWMsQ0FBQztBQUN4RCIsInNvdXJjZXMiOlsiL1VzZXJzL2pldHRjaGVuZzEwMTgvc3JjL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/is-plain-object.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js":
|
||
/*!**********************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/is-thenable.js ***!
|
||
\**********************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0M7Ozs7OENBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQ2RDLE9BQXVCO0lBRXZCLE9BQ0VBLFlBQVksUUFDWixPQUFPQSxZQUFZLFlBQ25CLFVBQVVBLFdBQ1YsT0FBT0EsUUFBUUMsSUFBSSxLQUFLO0FBRTVCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIHRvIHNlZSBpZiBhIHZhbHVlIGlzIFRoZW5hYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9taXNlIHRoZSBtYXliZS10aGVuYWJsZSB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdGhlbmFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGU8VCA9IHVua25vd24+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+IHwgVFxuKTogcHJvbWlzZSBpcyBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9taXNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHByb21pc2UgPT09ICdvYmplY3QnICYmXG4gICAgJ3RoZW4nIGluIHByb21pc2UgJiZcbiAgICB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc1RoZW5hYmxlIiwicHJvbWlzZSIsInRoZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js":
|
||
/*!**************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js ***!
|
||
\**************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// This has to be a shared module which is shared between client component error boundary and dynamic component\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 BailoutToCSRError: function() {\n return BailoutToCSRError;\n },\n isBailoutToCSRError: function() {\n return isBailoutToCSRError;\n }\n});\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';\nclass BailoutToCSRError extends Error {\n constructor(reason){\n super(\"Bail out to client-side rendering: \" + reason), this.reason = reason, this.digest = BAILOUT_TO_CSR;\n }\n}\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtHQUErRzs7Ozs7Ozs7Ozs7OztJQUlsR0EsaUJBQWlCO2VBQWpCQTs7SUFTR0MsbUJBQW1CO2VBQW5CQTs7O0FBWmhCLE1BQU1DLGlCQUFpQjtBQUdoQixNQUFNRiwwQkFBMEJHO0lBR3JDQyxZQUE0QkMsTUFBYyxDQUFFO1FBQzFDLEtBQUssQ0FBRSx3Q0FBcUNBLFNBQUFBLElBQUFBLENBRGxCQSxNQUFBQSxHQUFBQSxRQUFBQSxJQUFBQSxDQUZaQyxNQUFBQSxHQUFTSjtJQUl6QjtBQUNGO0FBR08sU0FBU0Qsb0JBQW9CTSxHQUFZO0lBQzlDLElBQUksT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsQ0FBRSxhQUFZQSxHQUFBQSxDQUFFLEVBQUk7UUFDakUsT0FBTztJQUNUO0lBRUEsT0FBT0EsSUFBSUQsTUFBTSxLQUFLSjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9zaGFyZWQvbGliL2xhenktZHluYW1pYy9iYWlsb3V0LXRvLWNzci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGhhcyB0byBiZSBhIHNoYXJlZCBtb2R1bGUgd2hpY2ggaXMgc2hhcmVkIGJldHdlZW4gY2xpZW50IGNvbXBvbmVudCBlcnJvciBib3VuZGFyeSBhbmQgZHluYW1pYyBjb21wb25lbnRcbmNvbnN0IEJBSUxPVVRfVE9fQ1NSID0gJ0JBSUxPVVRfVE9fQ0xJRU5UX1NJREVfUkVOREVSSU5HJ1xuXG4vKiogQW4gZXJyb3IgdGhhdCBzaG91bGQgYmUgdGhyb3duIHdoZW4gd2Ugd2FudCB0byBiYWlsIG91dCB0byBjbGllbnQtc2lkZSByZW5kZXJpbmcuICovXG5leHBvcnQgY2xhc3MgQmFpbG91dFRvQ1NSRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBkaWdlc3QgPSBCQUlMT1VUX1RPX0NTUlxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSByZWFzb246IHN0cmluZykge1xuICAgIHN1cGVyKGBCYWlsIG91dCB0byBjbGllbnQtc2lkZSByZW5kZXJpbmc6ICR7cmVhc29ufWApXG4gIH1cbn1cblxuLyoqIENoZWNrcyBpZiBhIHBhc3NlZCBhcmd1bWVudCBpcyBhbiBlcnJvciB0aGF0IGlzIHRocm93biBpZiB3ZSB3YW50IHRvIGJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JhaWxvdXRUb0NTUkVycm9yKGVycjogdW5rbm93bik6IGVyciBpcyBCYWlsb3V0VG9DU1JFcnJvciB7XG4gIGlmICh0eXBlb2YgZXJyICE9PSAnb2JqZWN0JyB8fCBlcnIgPT09IG51bGwgfHwgISgnZGlnZXN0JyBpbiBlcnIpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gZXJyLmRpZ2VzdCA9PT0gQkFJTE9VVF9UT19DU1Jcbn1cbiJdLCJuYW1lcyI6WyJCYWlsb3V0VG9DU1JFcnJvciIsImlzQmFpbG91dFRvQ1NSRXJyb3IiLCJCQUlMT1VUX1RPX0NTUiIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJyZWFzb24iLCJkaWdlc3QiLCJlcnIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/normalized-asset-prefix.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizedAssetPrefix\", ({\n enumerable: true,\n get: function() {\n return normalizedAssetPrefix;\n }\n}));\nfunction normalizedAssetPrefix(assetPrefix) {\n // remove all leading slashes and trailing slashes\n const escapedAssetPrefix = (assetPrefix == null ? void 0 : assetPrefix.replace(/^\\/+|\\/+$/g, '')) || false;\n // if an assetPrefix was '/', we return empty string\n // because it could be an unnecessary trailing slash\n if (!escapedAssetPrefix) {\n return '';\n }\n if (URL.canParse(escapedAssetPrefix)) {\n const url = new URL(escapedAssetPrefix).toString();\n return url.endsWith('/') ? url.slice(0, -1) : url;\n }\n // assuming assetPrefix here is a pathname-style,\n // restore the leading slash\n return \"/\" + escapedAssetPrefix;\n} //# sourceMappingURL=normalized-asset-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbm9ybWFsaXplZC1hc3NldC1wcmVmaXguanMiLCJtYXBwaW5ncyI6Ijs7Ozt5REFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHNCQUFzQkMsV0FBK0I7SUFDbkUsa0RBQWtEO0lBQ2xELE1BQU1DLHFCQUFxQkQsQ0FBQUEsZUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsWUFBYUUsT0FBTyxDQUFDLGNBQWMsUUFBTztJQUVyRSxvREFBb0Q7SUFDcEQsb0RBQW9EO0lBQ3BELElBQUksQ0FBQ0Qsb0JBQW9CO1FBQ3ZCLE9BQU87SUFDVDtJQUVBLElBQUlFLElBQUlDLFFBQVEsQ0FBQ0gscUJBQXFCO1FBQ3BDLE1BQU1JLE1BQU0sSUFBSUYsSUFBSUYsb0JBQW9CSyxRQUFRO1FBQ2hELE9BQU9ELElBQUlFLFFBQVEsQ0FBQyxPQUFPRixJQUFJRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUtIO0lBQ2hEO0lBRUEsaURBQWlEO0lBQ2pELDRCQUE0QjtJQUM1QixPQUFRLE1BQUdKO0FBQ2IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9zaGFyZWQvbGliL25vcm1hbGl6ZWQtYXNzZXQtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVkQXNzZXRQcmVmaXgoYXNzZXRQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIC8vIHJlbW92ZSBhbGwgbGVhZGluZyBzbGFzaGVzIGFuZCB0cmFpbGluZyBzbGFzaGVzXG4gIGNvbnN0IGVzY2FwZWRBc3NldFByZWZpeCA9IGFzc2V0UHJlZml4Py5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJykgfHwgZmFsc2VcblxuICAvLyBpZiBhbiBhc3NldFByZWZpeCB3YXMgJy8nLCB3ZSByZXR1cm4gZW1wdHkgc3RyaW5nXG4gIC8vIGJlY2F1c2UgaXQgY291bGQgYmUgYW4gdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hcbiAgaWYgKCFlc2NhcGVkQXNzZXRQcmVmaXgpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmIChVUkwuY2FuUGFyc2UoZXNjYXBlZEFzc2V0UHJlZml4KSkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoZXNjYXBlZEFzc2V0UHJlZml4KS50b1N0cmluZygpXG4gICAgcmV0dXJuIHVybC5lbmRzV2l0aCgnLycpID8gdXJsLnNsaWNlKDAsIC0xKSA6IHVybFxuICB9XG5cbiAgLy8gYXNzdW1pbmcgYXNzZXRQcmVmaXggaGVyZSBpcyBhIHBhdGhuYW1lLXN0eWxlLFxuICAvLyByZXN0b3JlIHRoZSBsZWFkaW5nIHNsYXNoXG4gIHJldHVybiBgLyR7ZXNjYXBlZEFzc2V0UHJlZml4fWBcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVkQXNzZXRQcmVmaXgiLCJhc3NldFByZWZpeCIsImVzY2FwZWRBc3NldFByZWZpeCIsInJlcGxhY2UiLCJVUkwiLCJjYW5QYXJzZSIsInVybCIsInRvU3RyaW5nIiwiZW5kc1dpdGgiLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js":
|
||
/*!*****************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***!
|
||
\*****************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQW1CQyxJQUFZO0lBQzdDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQyxPQUFPRCxPQUFRLE1BQUdBO0FBQzNDIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9yIGEgZ2l2ZW4gcGFnZSBwYXRoLCB0aGlzIGZ1bmN0aW9uIGVuc3VyZXMgdGhhdCB0aGVyZSBpcyBhIGxlYWRpbmcgc2xhc2guXG4gKiBJZiB0aGVyZSBpcyBub3QgYSBsZWFkaW5nIHNsYXNoLCBvbmUgaXMgYWRkZWQsIG90aGVyd2lzZSBpdCBpcyBub29wLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTGVhZGluZ1NsYXNoKHBhdGg6IHN0cmluZykge1xuICByZXR1cm4gcGF0aC5zdGFydHNXaXRoKCcvJykgPyBwYXRoIDogYC8ke3BhdGh9YFxufVxuIl0sIm5hbWVzIjpbImVuc3VyZUxlYWRpbmdTbGFzaCIsInBhdGgiLCJzdGFydHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU1nQkE7OztlQUFBQTs7O3VDQU5VO0FBTW5CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVDLFNBQVNFLFdBQVdDLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogQWRkcyB0aGUgcHJvdmlkZWQgcHJlZml4IHRvIHRoZSBnaXZlbiBwYXRoLiBJdCBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHBhdGhcbiAqIGlzIGluZGVlZCBzdGFydGluZyB3aXRoIGEgc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4Pzogc3RyaW5nKSB7XG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgIXByZWZpeCkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBgJHtwcmVmaXh9JHtwYXRobmFtZX0ke3F1ZXJ5fSR7aGFzaH1gXG59XG4iXSwibmFtZXMiOlsiYWRkUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giLCJwYXJzZVBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.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 normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(ssr)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.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.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}\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFzQmdCQSxnQkFBZ0I7ZUFBaEJBOztJQW1DQUMsZUFBZTtlQUFmQTs7O2dEQXpEbUI7cUNBQ0o7QUFxQnhCLFNBQVNELGlCQUFpQkUsS0FBYTtJQUM1QyxPQUFPQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQ0xELE1BQU1FLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDakQsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNaLE9BQU9EO1FBQ1Q7UUFFQSxzQkFBc0I7UUFDdEIsSUFBSUksQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZUgsVUFBVTtZQUMzQixPQUFPRDtRQUNUO1FBRUEsaUNBQWlDO1FBQ2pDLElBQUlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSztZQUN0QixPQUFPRDtRQUNUO1FBRUEsdURBQXVEO1FBQ3ZELElBQ0dDLENBQUFBLFlBQVksVUFBVUEsWUFBWSxRQUFNLElBQ3pDQyxVQUFVQyxTQUFTRSxNQUFNLEdBQUcsR0FDNUI7WUFDQSxPQUFPTDtRQUNUO1FBRUEsT0FBVUEsV0FBUyxNQUFHQztJQUN4QixHQUFHO0FBRVA7QUFNTyxTQUFTTixnQkFBZ0JXLEdBQVc7SUFDekMsT0FBT0EsSUFBSUMsT0FBTyxDQUNoQixlQUNBO0FBR0oiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZUxlYWRpbmdTbGFzaCB9IGZyb20gJy4uLy4uL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaCdcbmltcG9ydCB7IGlzR3JvdXBTZWdtZW50IH0gZnJvbSAnLi4vLi4vc2VnbWVudCdcblxuLyoqXG4gKiBOb3JtYWxpemVzIGFuIGFwcCByb3V0ZSBzbyBpdCByZXByZXNlbnRzIHRoZSBhY3R1YWwgcmVxdWVzdCBwYXRoLiBFc3NlbnRpYWxseVxuICogcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uczpcbiAqXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9wYWdlYCB0byBgL2BcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9yb3V0ZWAgdG8gYC9gXG4gKiAtIGAvYCB0byBgL2BcbiAqXG4gKiBAcGFyYW0gcm91dGUgdGhlIGFwcCByb3V0ZSB0byBub3JtYWxpemVcbiAqIEByZXR1cm5zIHRoZSBub3JtYWxpemVkIHBhdGhuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBcHBQYXRoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGVuc3VyZUxlYWRpbmdTbGFzaChcbiAgICByb3V0ZS5zcGxpdCgnLycpLnJlZHVjZSgocGF0aG5hbWUsIHNlZ21lbnQsIGluZGV4LCBzZWdtZW50cykgPT4ge1xuICAgICAgLy8gRW1wdHkgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoIXNlZ21lbnQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIEdyb3VwcyBhcmUgaWdub3JlZC5cbiAgICAgIGlmIChpc0dyb3VwU2VnbWVudChzZWdtZW50KSkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gUGFyYWxsZWwgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoc2VnbWVudFswXSA9PT0gJ0AnKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBzZWdtZW50IChpZiBpdCdzIGEgbGVhZikgc2hvdWxkIGJlIGlnbm9yZWQuXG4gICAgICBpZiAoXG4gICAgICAgIChzZWdtZW50ID09PSAncGFnZScgfHwgc2VnbWVudCA9PT0gJ3JvdXRlJykgJiZcbiAgICAgICAgaW5kZXggPT09IHNlZ21lbnRzLmxlbmd0aCAtIDFcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAke3BhdGhuYW1lfS8ke3NlZ21lbnR9YFxuICAgIH0sICcnKVxuICApXG59XG5cbi8qKlxuICogU3RyaXBzIHRoZSBgLnJzY2AgZXh0ZW5zaW9uIGlmIGl0J3MgaW4gdGhlIHBhdGhuYW1lLlxuICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9uIGZ1bGwgdXJscyBpdCBjaGVja3MgYD9gIGZvciBzZWFyY2hQYXJhbXMgaGFuZGxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSc2NVUkwodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHVybC5yZXBsYWNlKFxuICAgIC9cXC5yc2MoJHxcXD8pLyxcbiAgICAvLyAkMSBlbnN1cmVzIGA/YCBpcyBwcmVzZXJ2ZWRcbiAgICAnJDEnXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVBcHBQYXRoIiwibm9ybWFsaXplUnNjVVJMIiwicm91dGUiLCJlbnN1cmVMZWFkaW5nU2xhc2giLCJzcGxpdCIsInJlZHVjZSIsInBhdGhuYW1lIiwic2VnbWVudCIsImluZGV4Iiwic2VnbWVudHMiLCJpc0dyb3VwU2VnbWVudCIsImxlbmd0aCIsInVybCIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js":
|
||
/*!**************************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js ***!
|
||
\**************************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"computeCacheBustingSearchParam\", ({\n enumerable: true,\n get: function() {\n return computeCacheBustingSearchParam;\n }\n}));\nconst _hash = __webpack_require__(/*! ../../hash */ \"(ssr)/./node_modules/next/dist/shared/lib/hash.js\");\nfunction computeCacheBustingSearchParam(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader) {\n if ((prefetchHeader === undefined || prefetchHeader === '0') && segmentPrefetchHeader === undefined && stateTreeHeader === undefined && nextUrlHeader === undefined) {\n return '';\n }\n return (0, _hash.hexHash)([\n prefetchHeader || '0',\n segmentPrefetchHeader || '0',\n stateTreeHeader || '0',\n nextUrlHeader || '0'\n ].join(','));\n} //# sourceMappingURL=cache-busting-search-param.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2NhY2hlLWJ1c3Rpbmctc2VhcmNoLXBhcmFtLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0VBRWdCQTs7O2VBQUFBOzs7a0NBRlE7QUFFakIsU0FBU0EsK0JBQ2RDLGNBQTJDLEVBQzNDQyxxQkFBb0QsRUFDcERDLGVBQThDLEVBQzlDQyxhQUE0QztJQUU1QyxJQUNHSCxDQUFBQSxtQkFBbUJJLGFBQWFKLG1CQUFtQixJQUFFLElBQ3REQywwQkFBMEJHLGFBQzFCRixvQkFBb0JFLGFBQ3BCRCxrQkFBa0JDLFdBQ2xCO1FBQ0EsT0FBTztJQUNUO0lBQ0EsT0FBT0MsQ0FBQUEsR0FBQUEsTUFBQUEsT0FBQUEsRUFDTDtRQUNFTCxrQkFBa0I7UUFDbEJDLHlCQUF5QjtRQUN6QkMsbUJBQW1CO1FBQ25CQyxpQkFBaUI7S0FDbEIsQ0FBQ0csSUFBSSxDQUFDO0FBRVgiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvY2FjaGUtYnVzdGluZy1zZWFyY2gtcGFyYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGV4SGFzaCB9IGZyb20gJy4uLy4uL2hhc2gnXG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlQ2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0oXG4gIHByZWZldGNoSGVhZGVyOiAnMScgfCAnMicgfCAnMCcgfCB1bmRlZmluZWQsXG4gIHNlZ21lbnRQcmVmZXRjaEhlYWRlcjogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gIHN0YXRlVHJlZUhlYWRlcjogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gIG5leHRVcmxIZWFkZXI6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4pOiBzdHJpbmcge1xuICBpZiAoXG4gICAgKHByZWZldGNoSGVhZGVyID09PSB1bmRlZmluZWQgfHwgcHJlZmV0Y2hIZWFkZXIgPT09ICcwJykgJiZcbiAgICBzZWdtZW50UHJlZmV0Y2hIZWFkZXIgPT09IHVuZGVmaW5lZCAmJlxuICAgIHN0YXRlVHJlZUhlYWRlciA9PT0gdW5kZWZpbmVkICYmXG4gICAgbmV4dFVybEhlYWRlciA9PT0gdW5kZWZpbmVkXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG4gIHJldHVybiBoZXhIYXNoKFxuICAgIFtcbiAgICAgIHByZWZldGNoSGVhZGVyIHx8ICcwJyxcbiAgICAgIHNlZ21lbnRQcmVmZXRjaEhlYWRlciB8fCAnMCcsXG4gICAgICBzdGF0ZVRyZWVIZWFkZXIgfHwgJzAnLFxuICAgICAgbmV4dFVybEhlYWRlciB8fCAnMCcsXG4gICAgXS5qb2luKCcsJylcbiAgKVxufVxuIl0sIm5hbWVzIjpbImNvbXB1dGVDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbSIsInByZWZldGNoSGVhZGVyIiwic2VnbWVudFByZWZldGNoSGVhZGVyIiwic3RhdGVUcmVlSGVhZGVyIiwibmV4dFVybEhlYWRlciIsInVuZGVmaW5lZCIsImhleEhhc2giLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js ***!
|
||
\*********************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"disableSmoothScrollDuringRouteTransition\", ({\n enumerable: true,\n get: function() {\n return disableSmoothScrollDuringRouteTransition;\n }\n}));\nconst _warnonce = __webpack_require__(/*! ../../utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction disableSmoothScrollDuringRouteTransition(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 hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth';\n // Since this is a breaking change, this is temporarily flagged\n // and will be false by default.\n // In the next major (v16), this will be automatically enabled\n if (false) {} else {\n // Old behavior: always manipulate styles, but warn about upcoming change\n // Warn if smooth scrolling is detected but no data attribute is present\n if ( true && !hasDataAttribute && getComputedStyle(htmlElement).scrollBehavior === 'smooth') {\n (0, _warnonce.warnOnce)('Detected `scroll-behavior: smooth` on the `<html>` element. In a future version, ' + 'Next.js will no longer automatically disable smooth scrolling during route transitions. ' + 'To prepare for this change, add `data-scroll-behavior=\"smooth\"` to your <html> element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior');\n }\n }\n // Proceed with temporarily disabling smooth scrolling\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=disable-smooth-scroll.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Rpc2FibGUtc21vb3RoLXNjcm9sbC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRFQU1nQkE7OztlQUFBQTs7O3NDQU5TO0FBTWxCLFNBQVNBLHlDQUNkQyxFQUFjLEVBQ2RDLE9BQXFFO0lBQXJFQSxJQUFBQSxZQUFBQSxLQUFBQSxHQUFBQSxVQUFtRSxDQUFDO0lBRXBFLHlFQUF5RTtJQUN6RSw2RkFBNkY7SUFDN0YsSUFBSUEsUUFBUUMsY0FBYyxFQUFFO1FBQzFCRjtRQUNBO0lBQ0Y7SUFFQSxNQUFNRyxjQUFjQyxTQUFTQyxlQUFlO0lBQzVDLE1BQU1DLG1CQUFtQkgsWUFBWUksT0FBTyxDQUFDQyxjQUFjLEtBQUs7SUFFaEUsK0RBQStEO0lBQy9ELGdDQUFnQztJQUNoQyw4REFBOEQ7SUFDOUQsSUFBSUMsS0FBeUMsRUFBRSxFQU05QyxNQUFNO1FBQ0wseUVBQXlFO1FBRXpFLHdFQUF3RTtRQUN4RSxJQUNFQSxLQUFvQixJQUNwQixDQUFDSCxvQkFDRE8saUJBQWlCVixhQUFhSyxjQUFjLEtBQUssVUFDakQ7WUFDQU0sQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRSxzRkFDRSw2RkFDQSw2RkFDQTtRQUVOO0lBQ0Y7SUFFQSxzREFBc0Q7SUFDdEQsTUFBTUMsV0FBV1osWUFBWWEsS0FBSyxDQUFDUixjQUFjO0lBQ2pETCxZQUFZYSxLQUFLLENBQUNSLGNBQWMsR0FBRztJQUNuQyxJQUFJLENBQUNQLFFBQVFnQixlQUFlLEVBQUU7UUFDNUIsOEVBQThFO1FBQzlFLDREQUE0RDtRQUM1RCx5RkFBeUY7UUFDekZkLFlBQVllLGNBQWM7SUFDNUI7SUFDQWxCO0lBQ0FHLFlBQVlhLEtBQUssQ0FBQ1IsY0FBYyxHQUFHTztBQUNyQyIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9kaXNhYmxlLXNtb290aC1zY3JvbGwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuLi8uLi91dGlscy93YXJuLW9uY2UnXG5cbi8qKlxuICogUnVuIGZ1bmN0aW9uIHdpdGggYHNjcm9sbC1iZWhhdmlvcjogYXV0b2AgYXBwbGllZCB0byBgPGh0bWwvPmAuXG4gKiBUaGlzIGNzcyBjaGFuZ2Ugd2lsbCBiZSByZXZlcnRlZCBhZnRlciB0aGUgZnVuY3Rpb24gZmluaXNoZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uKFxuICBmbjogKCkgPT4gdm9pZCxcbiAgb3B0aW9uczogeyBkb250Rm9yY2VMYXlvdXQ/OiBib29sZWFuOyBvbmx5SGFzaENoYW5nZT86IGJvb2xlYW4gfSA9IHt9XG4pIHtcbiAgLy8gaWYgb25seSB0aGUgaGFzaCBpcyBjaGFuZ2VkLCB3ZSBkb24ndCBuZWVkIHRvIGRpc2FibGUgc21vb3RoIHNjcm9sbGluZ1xuICAvLyB3ZSBvbmx5IGNhcmUgdG8gcHJldmVudCBzbW9vdGggc2Nyb2xsaW5nIHdoZW4gbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlIHRvIGF2b2lkIGphcnJpbmcgVVhcbiAgaWYgKG9wdGlvbnMub25seUhhc2hDaGFuZ2UpIHtcbiAgICBmbigpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICBjb25zdCBoYXNEYXRhQXR0cmlidXRlID0gaHRtbEVsZW1lbnQuZGF0YXNldC5zY3JvbGxCZWhhdmlvciA9PT0gJ3Ntb290aCdcblxuICAvLyBTaW5jZSB0aGlzIGlzIGEgYnJlYWtpbmcgY2hhbmdlLCB0aGlzIGlzIHRlbXBvcmFyaWx5IGZsYWdnZWRcbiAgLy8gYW5kIHdpbGwgYmUgZmFsc2UgYnkgZGVmYXVsdC5cbiAgLy8gSW4gdGhlIG5leHQgbWFqb3IgKHYxNiksIHRoaXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGVuYWJsZWRcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9ST1VURVJfU0NST0xMKSB7XG4gICAgaWYgKCFoYXNEYXRhQXR0cmlidXRlKSB7XG4gICAgICAvLyBObyBzbW9vdGggc2Nyb2xsaW5nIGNvbmZpZ3VyZWQsIHJ1biBkaXJlY3RseSB3aXRob3V0IHN0eWxlIG1hbmlwdWxhdGlvblxuICAgICAgZm4oKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIE9sZCBiZWhhdmlvcjogYWx3YXlzIG1hbmlwdWxhdGUgc3R5bGVzLCBidXQgd2FybiBhYm91dCB1cGNvbWluZyBjaGFuZ2VcblxuICAgIC8vIFdhcm4gaWYgc21vb3RoIHNjcm9sbGluZyBpcyBkZXRlY3RlZCBidXQgbm8gZGF0YSBhdHRyaWJ1dGUgaXMgcHJlc2VudFxuICAgIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmXG4gICAgICAhaGFzRGF0YUF0dHJpYnV0ZSAmJlxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShodG1sRWxlbWVudCkuc2Nyb2xsQmVoYXZpb3IgPT09ICdzbW9vdGgnXG4gICAgKSB7XG4gICAgICB3YXJuT25jZShcbiAgICAgICAgJ0RldGVjdGVkIGBzY3JvbGwtYmVoYXZpb3I6IHNtb290aGAgb24gdGhlIGA8aHRtbD5gIGVsZW1lbnQuIEluIGEgZnV0dXJlIHZlcnNpb24sICcgK1xuICAgICAgICAgICdOZXh0LmpzIHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgZGlzYWJsZSBzbW9vdGggc2Nyb2xsaW5nIGR1cmluZyByb3V0ZSB0cmFuc2l0aW9ucy4gJyArXG4gICAgICAgICAgJ1RvIHByZXBhcmUgZm9yIHRoaXMgY2hhbmdlLCBhZGQgYGRhdGEtc2Nyb2xsLWJlaGF2aW9yPVwic21vb3RoXCJgIHRvIHlvdXIgPGh0bWw+IGVsZW1lbnQuICcgK1xuICAgICAgICAgICdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taXNzaW5nLWRhdGEtc2Nyb2xsLWJlaGF2aW9yJ1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIC8vIFByb2NlZWQgd2l0aCB0ZW1wb3JhcmlseSBkaXNhYmxpbmcgc21vb3RoIHNjcm9sbGluZ1xuICBjb25zdCBleGlzdGluZyA9IGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yXG4gIGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nXG4gIGlmICghb3B0aW9ucy5kb250Rm9yY2VMYXlvdXQpIHtcbiAgICAvLyBJbiBDaHJvbWUtYmFzZWQgYnJvd3NlcnMgd2UgbmVlZCB0byBmb3JjZSByZWZsb3cgYmVmb3JlIGNhbGxpbmcgYHNjcm9sbFRvYC5cbiAgICAvLyBPdGhlcndpc2UgaXQgd2lsbCBub3QgcGlja3VwIHRoZSBjaGFuZ2UgaW4gc2Nyb2xsQmVoYXZpb3JcbiAgICAvLyBNb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2lzc3Vlcy80MDcxOSNpc3N1ZWNvbW1lbnQtMTMzNjI0ODA0MlxuICAgIGh0bWxFbGVtZW50LmdldENsaWVudFJlY3RzKClcbiAgfVxuICBmbigpXG4gIGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gZXhpc3Rpbmdcbn1cbiJdLCJuYW1lcyI6WyJkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uIiwiZm4iLCJvcHRpb25zIiwib25seUhhc2hDaGFuZ2UiLCJodG1sRWxlbWVudCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiaGFzRGF0YUF0dHJpYnV0ZSIsImRhdGFzZXQiLCJzY3JvbGxCZWhhdmlvciIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfT1BUSU1JWkVfUk9VVEVSX1NDUk9MTCIsIk5PREVfRU5WIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsIndhcm5PbmNlIiwiZXhpc3RpbmciLCJzdHlsZSIsImRvbnRGb3JjZUxheW91dCIsImdldENsaWVudFJlY3RzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/format-url.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("// Format function modified from nodejs\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.\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 formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || '';\n let pathname = urlObj.pathname || '';\n let hash = urlObj.hash || '';\n let query = urlObj.query || '';\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n if (query && typeof query === 'object') {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || '';\n if (protocol && !protocol.endsWith(':')) protocol += ':';\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes'\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBQ3ZDLHNEQUFzRDtBQUN0RCxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLGdFQUFnRTtBQUNoRSxzRUFBc0U7QUFDdEUsc0VBQXNFO0FBQ3RFLDRFQUE0RTtBQUM1RSxxRUFBcUU7QUFDckUsd0JBQXdCO0FBQ3hCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsNkRBQTZEO0FBQzdELDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RSx5Q0FBeUM7Ozs7Ozs7Ozs7Ozs7SUFRekJBLFNBQVM7ZUFBVEE7O0lBNkRBQyxvQkFBb0I7ZUFBcEJBOztJQWZIQyxhQUFhO2VBQWJBOzs7O21GQWxEZ0I7QUFFN0IsTUFBTUMsbUJBQW1CO0FBRWxCLFNBQVNILFVBQVVJLE1BQWlCO0lBQ3pDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUUsR0FBR0Y7SUFDekIsSUFBSUcsV0FBV0gsT0FBT0csUUFBUSxJQUFJO0lBQ2xDLElBQUlDLFdBQVdKLE9BQU9JLFFBQVEsSUFBSTtJQUNsQyxJQUFJQyxPQUFPTCxPQUFPSyxJQUFJLElBQUk7SUFDMUIsSUFBSUMsUUFBUU4sT0FBT00sS0FBSyxJQUFJO0lBQzVCLElBQUlDLE9BQXVCO0lBRTNCTixPQUFPQSxPQUFPTyxtQkFBbUJQLE1BQU1RLE9BQU8sQ0FBQyxRQUFRLE9BQU8sTUFBTTtJQUVwRSxJQUFJVCxPQUFPTyxJQUFJLEVBQUU7UUFDZkEsT0FBT04sT0FBT0QsT0FBT08sSUFBSTtJQUMzQixPQUFPLElBQUlMLFVBQVU7UUFDbkJLLE9BQU9OLE9BQVEsRUFBQ0MsU0FBU1EsT0FBTyxDQUFDLE9BQVEsTUFBR1IsV0FBUyxNQUFLQSxRQUFBQSxDQUFPO1FBQ2pFLElBQUlGLE9BQU9XLElBQUksRUFBRTtZQUNmSixRQUFRLE1BQU1QLE9BQU9XLElBQUk7UUFDM0I7SUFDRjtJQUVBLElBQUlMLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3RDQSxRQUFRTSxPQUFPQyxhQUFZQyxzQkFBc0IsQ0FBQ1I7SUFDcEQ7SUFFQSxJQUFJUyxTQUFTZixPQUFPZSxNQUFNLElBQUtULFNBQVUsTUFBR0EsU0FBWTtJQUV4RCxJQUFJSCxZQUFZLENBQUNBLFNBQVNhLFFBQVEsQ0FBQyxNQUFNYixZQUFZO0lBRXJELElBQ0VILE9BQU9pQixPQUFPLElBQ1osRUFBQ2QsWUFBWUosaUJBQWlCbUIsSUFBSSxDQUFDZixTQUFBQSxDQUFRLElBQU1JLFNBQVMsT0FDNUQ7UUFDQUEsT0FBTyxPQUFRQSxDQUFBQSxRQUFRLEdBQUM7UUFDeEIsSUFBSUgsWUFBWUEsUUFBUSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxXQUFXLE1BQU1BO0lBQ3hELE9BQU8sSUFBSSxDQUFDRyxNQUFNO1FBQ2hCQSxPQUFPO0lBQ1Q7SUFFQSxJQUFJRixRQUFRQSxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUtBLE9BQU8sTUFBTUE7SUFDMUMsSUFBSVUsVUFBVUEsTUFBTSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxTQUFTLE1BQU1BO0lBRWhEWCxXQUFXQSxTQUFTSyxPQUFPLENBQUMsU0FBU0Q7SUFDckNPLFNBQVNBLE9BQU9OLE9BQU8sQ0FBQyxLQUFLO0lBRTdCLE9BQVEsS0FBRU4sV0FBV0ksT0FBT0gsV0FBV1csU0FBU1Y7QUFDbEQ7QUFFTyxNQUFNUCxnQkFBZ0I7SUFDM0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRCxxQkFBcUJzQixHQUFjO0lBQ2pELElBQUlDLElBQW9CLEVBQW9CO1FBQzFDLElBQUlELFFBQVEsUUFBUSxPQUFPQSxRQUFRLFVBQVU7WUFDM0NJLE9BQU9DLElBQUksQ0FBQ0wsS0FBS00sT0FBTyxDQUFDLENBQUNDO2dCQUN4QixJQUFJLENBQUM1QixjQUFjNkIsUUFBUSxDQUFDRCxNQUFNO29CQUNoQ0UsUUFBUUMsSUFBSSxDQUNULHVEQUFvREg7Z0JBRXpEO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBTzlCLFVBQVV1QjtBQUNuQiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEZvcm1hdCBmdW5jdGlvbiBtb2RpZmllZCBmcm9tIG5vZGVqc1xuLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB0eXBlIHsgVXJsT2JqZWN0IH0gZnJvbSAndXJsJ1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAnLi9xdWVyeXN0cmluZydcblxuY29uc3Qgc2xhc2hlZFByb3RvY29scyA9IC9odHRwcz98ZnRwfGdvcGhlcnxmaWxlL1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iajogVXJsT2JqZWN0KSB7XG4gIGxldCB7IGF1dGgsIGhvc3RuYW1lIH0gPSB1cmxPYmpcbiAgbGV0IHByb3RvY29sID0gdXJsT2JqLnByb3RvY29sIHx8ICcnXG4gIGxldCBwYXRobmFtZSA9IHVybE9iai5wYXRobmFtZSB8fCAnJ1xuICBsZXQgaGFzaCA9IHVybE9iai5oYXNoIHx8ICcnXG4gIGxldCBxdWVyeSA9IHVybE9iai5xdWVyeSB8fCAnJ1xuICBsZXQgaG9zdDogc3RyaW5nIHwgZmFsc2UgPSBmYWxzZVxuXG4gIGF1dGggPSBhdXRoID8gZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgpLnJlcGxhY2UoLyUzQS9pLCAnOicpICsgJ0AnIDogJydcblxuICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICBob3N0ID0gYXV0aCArIHVybE9iai5ob3N0XG4gIH0gZWxzZSBpZiAoaG9zdG5hbWUpIHtcbiAgICBob3N0ID0gYXV0aCArICh+aG9zdG5hbWUuaW5kZXhPZignOicpID8gYFske2hvc3RuYW1lfV1gIDogaG9zdG5hbWUpXG4gICAgaWYgKHVybE9iai5wb3J0KSB7XG4gICAgICBob3N0ICs9ICc6JyArIHVybE9iai5wb3J0XG4gICAgfVxuICB9XG5cbiAgaWYgKHF1ZXJ5ICYmIHR5cGVvZiBxdWVyeSA9PT0gJ29iamVjdCcpIHtcbiAgICBxdWVyeSA9IFN0cmluZyhxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5IGFzIFBhcnNlZFVybFF1ZXJ5KSlcbiAgfVxuXG4gIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IChxdWVyeSAmJiBgPyR7cXVlcnl9YCkgfHwgJydcblxuICBpZiAocHJvdG9jb2wgJiYgIXByb3RvY29sLmVuZHNXaXRoKCc6JykpIHByb3RvY29sICs9ICc6J1xuXG4gIGlmIChcbiAgICB1cmxPYmouc2xhc2hlcyB8fFxuICAgICgoIXByb3RvY29sIHx8IHNsYXNoZWRQcm90b2NvbHMudGVzdChwcm90b2NvbCkpICYmIGhvc3QgIT09IGZhbHNlKVxuICApIHtcbiAgICBob3N0ID0gJy8vJyArIChob3N0IHx8ICcnKVxuICAgIGlmIChwYXRobmFtZSAmJiBwYXRobmFtZVswXSAhPT0gJy8nKSBwYXRobmFtZSA9ICcvJyArIHBhdGhuYW1lXG4gIH0gZWxzZSBpZiAoIWhvc3QpIHtcbiAgICBob3N0ID0gJydcbiAgfVxuXG4gIGlmIChoYXNoICYmIGhhc2hbMF0gIT09ICcjJykgaGFzaCA9ICcjJyArIGhhc2hcbiAgaWYgKHNlYXJjaCAmJiBzZWFyY2hbMF0gIT09ICc/Jykgc2VhcmNoID0gJz8nICsgc2VhcmNoXG5cbiAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9bPyNdL2csIGVuY29kZVVSSUNvbXBvbmVudClcbiAgc2VhcmNoID0gc2VhcmNoLnJlcGxhY2UoJyMnLCAnJTIzJylcblxuICByZXR1cm4gYCR7cHJvdG9jb2x9JHtob3N0fSR7cGF0aG5hbWV9JHtzZWFyY2h9JHtoYXNofWBcbn1cblxuZXhwb3J0IGNvbnN0IHVybE9iamVjdEtleXMgPSBbXG4gICdhdXRoJyxcbiAgJ2hhc2gnLFxuICAnaG9zdCcsXG4gICdob3N0bmFtZScsXG4gICdocmVmJyxcbiAgJ3BhdGgnLFxuICAncGF0aG5hbWUnLFxuICAncG9ydCcsXG4gICdwcm90b2NvbCcsXG4gICdxdWVyeScsXG4gICdzZWFyY2gnLFxuICAnc2xhc2hlcycsXG5dXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRXaXRoVmFsaWRhdGlvbih1cmw6IFVybE9iamVjdCk6IHN0cmluZyB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGlmICh1cmwgIT09IG51bGwgJiYgdHlwZW9mIHVybCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIE9iamVjdC5rZXlzKHVybCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmICghdXJsT2JqZWN0S2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFVua25vd24ga2V5IHBhc3NlZCB2aWEgdXJsT2JqZWN0IGludG8gdXJsLmZvcm1hdDogJHtrZXl9YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZm9ybWF0VXJsKHVybClcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXRVcmwiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybE9iamVjdEtleXMiLCJzbGFzaGVkUHJvdG9jb2xzIiwidXJsT2JqIiwiYXV0aCIsImhvc3RuYW1lIiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImhhc2giLCJxdWVyeSIsImhvc3QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiaW5kZXhPZiIsInBvcnQiLCJTdHJpbmciLCJxdWVyeXN0cmluZyIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJlbmRzV2l0aCIsInNsYXNoZXMiLCJ0ZXN0IiwidXJsIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJpbmNsdWRlcyIsImNvbnNvbGUiLCJ3YXJuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/html-bots.js ***!
|
||
\*********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n// Note: The pattern [\\w-]+-Google captures all Google crawlers with \"-Google\" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google)\n// as well as crawlers starting with \"Google-\" (e.g., Google-PageRenderer, Google-InspectionTool)\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTML_LIMITED_BOT_UA_RE\", ({\n enumerable: true,\n get: function() {\n return HTML_LIMITED_BOT_UA_RE;\n }\n}));\nconst HTML_LIMITED_BOT_UA_RE = /[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2h0bWwtYm90cy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2R0FBNkc7QUFDN0csc0tBQXNLO0FBQ3RLLGtKQUFrSjtBQUNsSixpR0FBaUc7Ozs7OzBEQUNwRkE7OztlQUFBQTs7O0FBQU4sTUFBTUEseUJBQ1giLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaHRtbC1ib3RzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgcmVnZXggY29udGFpbnMgdGhlIGJvdHMgdGhhdCB3ZSBuZWVkIHRvIGRvIGEgYmxvY2tpbmcgcmVuZGVyIGZvciBhbmQgY2FuJ3Qgc2FmZWx5IHN0cmVhbSB0aGUgcmVzcG9uc2Vcbi8vIGR1ZSB0byBob3cgdGhleSBwYXJzZSB0aGUgRE9NLiBGb3IgZXhhbXBsZSwgdGhleSBtaWdodCBleHBsaWNpdGx5IGNoZWNrIGZvciBtZXRhZGF0YSBpbiB0aGUgYGhlYWRgIHRhZywgc28gd2UgY2FuJ3Qgc3RyZWFtIG1ldGFkYXRhIHRhZ3MgYWZ0ZXIgdGhlIGBoZWFkYCB3YXMgc2VudC5cbi8vIE5vdGU6IFRoZSBwYXR0ZXJuIFtcXHctXSstR29vZ2xlIGNhcHR1cmVzIGFsbCBHb29nbGUgY3Jhd2xlcnMgd2l0aCBcIi1Hb29nbGVcIiBzdWZmaXggKGUuZy4sIE1lZGlhcGFydG5lcnMtR29vZ2xlLCBBZHNCb3QtR29vZ2xlLCBTdG9yZWJvdC1Hb29nbGUpXG4vLyBhcyB3ZWxsIGFzIGNyYXdsZXJzIHN0YXJ0aW5nIHdpdGggXCJHb29nbGUtXCIgKGUuZy4sIEdvb2dsZS1QYWdlUmVuZGVyZXIsIEdvb2dsZS1JbnNwZWN0aW9uVG9vbClcbmV4cG9ydCBjb25zdCBIVE1MX0xJTUlURURfQk9UX1VBX1JFID1cbiAgL1tcXHctXSstR29vZ2xlfEdvb2dsZS1bXFx3LV0rfENocm9tZS1MaWdodGhvdXNlfFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8cmVkZGl0Ym90fGlhX2FyY2hpdmVyfEJpbmdib3R8QmluZ1ByZXZpZXd8YXBwbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxMaW5rZWRJbkJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlld3xZZXRpfGdvb2dsZXdlYmxpZ2h0L2lcbiJdLCJuYW1lcyI6WyJIVE1MX0xJTUlURURfQk9UX1VBX1JFIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.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 INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\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 ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.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 Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2FBLDBCQUEwQjtlQUExQkE7O0lBa0JHQyxtQ0FBbUM7ZUFBbkNBOztJQVhBQywwQkFBMEI7ZUFBMUJBOzs7c0NBVmlCO0FBRzFCLE1BQU1GLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sU0FBU0UsMkJBQTJCQyxJQUFZO0lBQ3JELHdDQUF3QztJQUN4QyxPQUNFQSxLQUNHQyxLQUFLLENBQUMsS0FDTkMsSUFBSSxDQUFDLENBQUNDLFVBQ0xOLDJCQUEyQkssSUFBSSxDQUFDLENBQUNFLElBQU1ELFFBQVFFLFVBQVUsQ0FBQ0QsU0FDdERFO0FBRVo7QUFFTyxTQUFTUixvQ0FBb0NFLElBQVk7SUFDOUQsSUFBSU8sbUJBQ0ZDLFFBQ0FDO0lBRUYsS0FBSyxNQUFNTixXQUFXSCxLQUFLQyxLQUFLLENBQUMsS0FBTTtRQUNyQ08sU0FBU1gsMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRDtRQUNuRSxJQUFJSSxRQUFROztZQUNULENBQUNELG1CQUFtQkUsaUJBQWlCLEdBQUdULEtBQUtDLEtBQUssQ0FBQ08sUUFBUTtZQUM1RDtRQUNGO0lBQ0Y7SUFFQSxJQUFJLENBQUNELHFCQUFxQixDQUFDQyxVQUFVLENBQUNDLGtCQUFrQjtRQUN0RCxNQUFNLHFCQUVMLENBRkssSUFBSUMsTUFDUCxpQ0FBOEJWLE9BQUssc0ZBRGhDO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRjtJQUVBTyxvQkFBb0JJLENBQUFBLEdBQUFBLFVBQUFBLGdCQUFBQSxFQUFpQkosbUJBQW1CLGlEQUFpRDs7SUFFekcsT0FBUUM7UUFDTixLQUFLO1lBQ0gsb0lBQW9JO1lBQ3BJLElBQUlELHNCQUFzQixLQUFLO2dCQUM3QkUsbUJBQW9CLE1BQUdBO1lBQ3pCLE9BQU87Z0JBQ0xBLG1CQUFtQkYsb0JBQW9CLE1BQU1FO1lBQy9DO1lBQ0E7UUFDRixLQUFLO1lBQ0gsdUhBQXVIO1lBQ3ZILElBQUlGLHNCQUFzQixLQUFLO2dCQUM3QixNQUFNLHFCQUVMLENBRkssSUFBSUcsTUFDUCxpQ0FBOEJWLE9BQUssaUVBRGhDOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7WUFDQVMsbUJBQW1CRixrQkFDaEJOLEtBQUssQ0FBQyxLQUNOVyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0YsS0FBSztZQUNILGtJQUFrSTtZQUNsSUwsbUJBQW1CLE1BQU1BO1lBQ3pCO1FBQ0YsS0FBSztZQUNILGlJQUFpSTtZQUVqSSxNQUFNTSx5QkFBeUJSLGtCQUFrQk4sS0FBSyxDQUFDO1lBQ3ZELElBQUljLHVCQUF1QkMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3RDLE1BQU0scUJBRUwsQ0FGSyxJQUFJTixNQUNQLGlDQUE4QlYsT0FBSyxvRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBUyxtQkFBbUJNLHVCQUNoQkgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUNWQyxNQUFNLENBQUNKLGtCQUNQSyxJQUFJLENBQUM7WUFDUjtRQUNGO1lBQ0UsTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUosTUFBTSxpQ0FBVjt1QkFBQTs0QkFBQTs4QkFBQTtZQUF3QztJQUNsRDtJQUVBLE9BQU87UUFBRUg7UUFBbUJFO0lBQWlCO0FBQy9DIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gJy4vYXBwLXBhdGhzJ1xuXG4vLyBvcmRlciBtYXR0ZXJzIGhlcmUsIHRoZSBmaXJzdCBtYXRjaCB3aWxsIGJlIHVzZWRcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyA9IFtcbiAgJyguLikoLi4pJyxcbiAgJyguKScsXG4gICcoLi4pJyxcbiAgJyguLi4pJyxcbl0gYXMgY29uc3RcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KCcvJylcbiAgICAgIC5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgobSkpXG4gICAgICApICE9PSB1bmRlZmluZWRcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocGF0aDogc3RyaW5nKSB7XG4gIGxldCBpbnRlcmNlcHRpbmdSb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG1hcmtlcjogKHR5cGVvZiBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUylbbnVtYmVyXSB8IHVuZGVmaW5lZCxcbiAgICBpbnRlcmNlcHRlZFJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aC5zcGxpdCgnLycpKSB7XG4gICAgbWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSkgPT4gc2VnbWVudC5zdGFydHNXaXRoKG0pKVxuICAgIGlmIChtYXJrZXIpIHtcbiAgICAgIDtbaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGVdID0gcGF0aC5zcGxpdChtYXJrZXIsIDIpXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICghaW50ZXJjZXB0aW5nUm91dGUgfHwgIW1hcmtlciB8fCAhaW50ZXJjZXB0ZWRSb3V0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmBcbiAgICApXG4gIH1cblxuICBpbnRlcmNlcHRpbmdSb3V0ZSA9IG5vcm1hbGl6ZUFwcFBhdGgoaW50ZXJjZXB0aW5nUm91dGUpIC8vIG5vcm1hbGl6ZSB0aGUgcGF0aCwgZS5nLiAvKGJsb2cpL2ZlZWQgLT4gL2ZlZWRcblxuICBzd2l0Y2ggKG1hcmtlcikge1xuICAgIGNhc2UgJyguKSc6XG4gICAgICAvLyAoLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIHdpdGggc2libGluZyByb3V0ZXMsIHNvIHdlIGp1c3QgbmVlZCB0byBhcHBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlIHRvIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyAnLycgKyBpbnRlcmNlcHRlZFJvdXRlXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLiknOlxuICAgICAgLy8gKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgb25lIGxldmVsIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwsIHVzZSAoLikgaW5zdGVhZC5gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZVxuICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAgIC5jb25jYXQoaW50ZXJjZXB0ZWRSb3V0ZSlcbiAgICAgICAgLmpvaW4oJy8nKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4uKSc6XG4gICAgICAvLyAoLi4uKSB3aWxsIG1hdGNoIHRoZSByb3V0ZSBzZWdtZW50IGluIHRoZSByb290IGRpcmVjdG9yeSwgc28gd2UgbmVlZCB0byB1c2UgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlXG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gJy8nICsgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4pKC4uKSc6XG4gICAgICAvLyAoLi4pKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgdHdvIGxldmVscyB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3QgdHdvIHNlZ21lbnRzIG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcblxuICAgICAgY29uc3Qgc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KCcvJylcbiAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsIG9yIG9uZSBsZXZlbCB1cC5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGVcbiAgICAgICAgLnNsaWNlKDAsIC0yKVxuICAgICAgICAuY29uY2F0KGludGVyY2VwdGVkUm91dGUpXG4gICAgICAgIC5qb2luKCcvJylcbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlcicpXG4gIH1cblxuICByZXR1cm4geyBpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZSB9XG59XG4iXSwibmFtZXMiOlsiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoIiwicGF0aCIsInNwbGl0IiwiZmluZCIsInNlZ21lbnQiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsImludGVyY2VwdGluZ1JvdXRlIiwibWFya2VyIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsIkVycm9yIiwibm9ybWFsaXplQXBwUGF0aCIsInNsaWNlIiwiY29uY2F0Iiwiam9pbiIsInNwbGl0SW50ZXJjZXB0aW5nUm91dGUiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.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 HTML_LIMITED_BOT_UA_RE: function() {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE;\n },\n HTML_LIMITED_BOT_UA_RE_STRING: function() {\n return HTML_LIMITED_BOT_UA_RE_STRING;\n },\n getBotType: function() {\n return getBotType;\n },\n isBot: function() {\n return isBot;\n }\n});\nconst _htmlbots = __webpack_require__(/*! ./html-bots */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\");\n// Bot crawler that will spin up a headless browser and execute JS.\n// Only the main Googlebot search crawler executes JavaScript, not other Google crawlers.\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\n// This regex specifically matches \"Googlebot\" but NOT \"Mediapartners-Google\", \"AdsBot-Google\", etc.\nconst HEADLESS_BROWSER_BOT_UA_RE = /Googlebot(?!-)|Googlebot$/i;\nconst HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source;\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nfunction isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nfunction getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n} //# sourceMappingURL=is-bot.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFVU0Esc0JBQXNCO2VBQXRCQSxVQUFBQSxzQkFBc0I7O0lBRmxCQyw2QkFBNkI7ZUFBN0JBOztJQWdCR0MsVUFBVTtlQUFWQTs7SUFKQUMsS0FBSztlQUFMQTs7O3NDQXBCdUI7QUFFdkMsbUVBQW1FO0FBQ25FLHlGQUF5RjtBQUN6Riw0RkFBNEY7QUFDNUYsb0dBQW9HO0FBQ3BHLE1BQU1DLDZCQUE2QjtBQUU1QixNQUFNSCxnQ0FBZ0NELFVBQUFBLHNCQUFzQixDQUFDSyxNQUFNO0FBSTFFLFNBQVNDLFdBQVdDLFNBQWlCO0lBQ25DLE9BQU9ILDJCQUEyQkksSUFBSSxDQUFDRDtBQUN6QztBQUVBLFNBQVNFLG1CQUFtQkYsU0FBaUI7SUFDM0MsT0FBT1AsVUFBQUEsc0JBQXNCLENBQUNRLElBQUksQ0FBQ0Q7QUFDckM7QUFFTyxTQUFTSixNQUFNSSxTQUFpQjtJQUNyQyxPQUFPRCxXQUFXQyxjQUFjRSxtQkFBbUJGO0FBQ3JEO0FBRU8sU0FBU0wsV0FBV0ssU0FBaUI7SUFDMUMsSUFBSUQsV0FBV0MsWUFBWTtRQUN6QixPQUFPO0lBQ1Q7SUFDQSxJQUFJRSxtQkFBbUJGLFlBQVk7UUFDakMsT0FBTztJQUNUO0lBQ0EsT0FBT0c7QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSB9IGZyb20gJy4vaHRtbC1ib3RzJ1xuXG4vLyBCb3QgY3Jhd2xlciB0aGF0IHdpbGwgc3BpbiB1cCBhIGhlYWRsZXNzIGJyb3dzZXIgYW5kIGV4ZWN1dGUgSlMuXG4vLyBPbmx5IHRoZSBtYWluIEdvb2dsZWJvdCBzZWFyY2ggY3Jhd2xlciBleGVjdXRlcyBKYXZhU2NyaXB0LCBub3Qgb3RoZXIgR29vZ2xlIGNyYXdsZXJzLlxuLy8geC1yZWY6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3NlYXJjaC9kb2NzL2NyYXdsaW5nLWluZGV4aW5nL2dvb2dsZS1jb21tb24tY3Jhd2xlcnNcbi8vIFRoaXMgcmVnZXggc3BlY2lmaWNhbGx5IG1hdGNoZXMgXCJHb29nbGVib3RcIiBidXQgTk9UIFwiTWVkaWFwYXJ0bmVycy1Hb29nbGVcIiwgXCJBZHNCb3QtR29vZ2xlXCIsIGV0Yy5cbmNvbnN0IEhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFID0gL0dvb2dsZWJvdCg/IS0pfEdvb2dsZWJvdCQvaVxuXG5leHBvcnQgY29uc3QgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRV9TVFJJTkcgPSBIVE1MX0xJTUlURURfQk9UX1VBX1JFLnNvdXJjZVxuXG5leHBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH1cblxuZnVuY3Rpb24gaXNEb21Cb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUudGVzdCh1c2VyQWdlbnQpXG59XG5cbmZ1bmN0aW9uIGlzSHRtbExpbWl0ZWRCb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSFRNTF9MSU1JVEVEX0JPVF9VQV9SRS50ZXN0KHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm90KHVzZXJBZ2VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0RvbUJvdFVBKHVzZXJBZ2VudCkgfHwgaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdFR5cGUodXNlckFnZW50OiBzdHJpbmcpOiAnZG9tJyB8ICdodG1sJyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc0RvbUJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2RvbSdcbiAgfVxuICBpZiAoaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2h0bWwnXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuIl0sIm5hbWVzIjpbIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiLCJIVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORyIsImdldEJvdFR5cGUiLCJpc0JvdCIsIkhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFIiwic291cmNlIiwiaXNEb21Cb3RVQSIsInVzZXJBZ2VudCIsInRlc3QiLCJpc0h0bWxMaW1pdGVkQm90VUEiLCJ1bmRlZmluZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js":
|
||
/*!************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/is-local-url.js ***!
|
||
\************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isLocalURL\", ({\n enumerable: true,\n get: function() {\n return isLocalURL;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(ssr)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../../client/has-base-path */ \"(ssr)/./node_modules/next/dist/client/has-base-path.js\");\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!(0, _utils.isAbsoluteUrl)(url)) return true;\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = (0, _utils.getLocationOrigin)();\n const resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && (0, _hasbasepath.hasBasePath)(resolved.pathname);\n } catch (_) {\n return false;\n }\n} //# sourceMappingURL=is-local-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7OzhDQU1nQkE7OztlQUFBQTs7O21DQU5pQzt5Q0FDckI7QUFLckIsU0FBU0EsV0FBV0MsR0FBVztJQUNwQyxnRUFBZ0U7SUFDaEUsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxPQUFBQSxhQUFBQSxFQUFjRCxNQUFNLE9BQU87SUFDaEMsSUFBSTtRQUNGLDREQUE0RDtRQUM1RCxNQUFNRSxpQkFBaUJDLENBQUFBLEdBQUFBLE9BQUFBLGlCQUFBQTtRQUN2QixNQUFNQyxXQUFXLElBQUlDLElBQUlMLEtBQUtFO1FBQzlCLE9BQU9FLFNBQVNFLE1BQU0sS0FBS0osa0JBQWtCSyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZSCxTQUFTSSxRQUFRO0lBQzVFLEVBQUUsT0FBT0MsR0FBRztRQUNWLE9BQU87SUFDVDtBQUNGIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Fic29sdXRlVXJsLCBnZXRMb2NhdGlvbk9yaWdpbiB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tICcuLi8uLi8uLi8uLi9jbGllbnQvaGFzLWJhc2UtcGF0aCdcblxuLyoqXG4gKiBEZXRlY3RzIHdoZXRoZXIgYSBnaXZlbiB1cmwgaXMgcm91dGFibGUgYnkgdGhlIE5leHQuanMgcm91dGVyIChicm93c2VyIG9ubHkpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNMb2NhbFVSTCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBwcmV2ZW50IGEgaHlkcmF0aW9uIG1pc21hdGNoIG9uIGhyZWYgZm9yIHVybCB3aXRoIGFuY2hvciByZWZzXG4gIGlmICghaXNBYnNvbHV0ZVVybCh1cmwpKSByZXR1cm4gdHJ1ZVxuICB0cnkge1xuICAgIC8vIGFic29sdXRlIHVybHMgY2FuIGJlIGxvY2FsIGlmIHRoZXkgYXJlIG9uIHRoZSBzYW1lIG9yaWdpblxuICAgIGNvbnN0IGxvY2F0aW9uT3JpZ2luID0gZ2V0TG9jYXRpb25PcmlnaW4oKVxuICAgIGNvbnN0IHJlc29sdmVkID0gbmV3IFVSTCh1cmwsIGxvY2F0aW9uT3JpZ2luKVxuICAgIHJldHVybiByZXNvbHZlZC5vcmlnaW4gPT09IGxvY2F0aW9uT3JpZ2luICYmIGhhc0Jhc2VQYXRoKHJlc29sdmVkLnBhdGhuYW1lKVxuICB9IGNhdGNoIChfKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpc0xvY2FsVVJMIiwidXJsIiwiaXNBYnNvbHV0ZVVybCIsImxvY2F0aW9uT3JpZ2luIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJyZXNvbHZlZCIsIlVSTCIsIm9yaWdpbiIsImhhc0Jhc2VQYXRoIiwicGF0aG5hbWUiLCJfIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js":
|
||
/*!**********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***!
|
||
\**********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQzs7Ozs2Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsVUFBVUMsSUFBWTtJQUNwQyxNQUFNQyxZQUFZRCxLQUFLRSxPQUFPLENBQUM7SUFDL0IsTUFBTUMsYUFBYUgsS0FBS0UsT0FBTyxDQUFDO0lBQ2hDLE1BQU1FLFdBQVdELGFBQWEsQ0FBQyxLQUFNRixDQUFBQSxZQUFZLEtBQUtFLGFBQWFGLFNBQUFBLENBQVE7SUFFM0UsSUFBSUcsWUFBWUgsWUFBWSxDQUFDLEdBQUc7UUFDOUIsT0FBTztZQUNMSSxVQUFVTCxLQUFLTSxTQUFTLENBQUMsR0FBR0YsV0FBV0QsYUFBYUY7WUFDcERNLE9BQU9ILFdBQ0hKLEtBQUtNLFNBQVMsQ0FBQ0gsWUFBWUYsWUFBWSxDQUFDLElBQUlBLFlBQVlPLGFBQ3hEO1lBQ0pDLE1BQU1SLFlBQVksQ0FBQyxJQUFJRCxLQUFLVSxLQUFLLENBQUNULGFBQWE7UUFDakQ7SUFDRjtJQUVBLE9BQU87UUFBRUksVUFBVUw7UUFBTU8sT0FBTztRQUFJRSxNQUFNO0lBQUc7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdpdmVuIGEgcGF0aCB0aGlzIGZ1bmN0aW9uIHdpbGwgZmluZCB0aGUgcGF0aG5hbWUsIHF1ZXJ5IGFuZCBoYXNoIGFuZCByZXR1cm5cbiAqIHRoZW0uIFRoaXMgaXMgdXNlZnVsIHRvIHBhcnNlIGZ1bGwgcGF0aHMgb24gdGhlIGNsaWVudCBzaWRlLlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIHBhcnNlIGUuZy4gL2Zvby9iYXI/aWQ9MSNoYXNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc2hJbmRleCA9IHBhdGguaW5kZXhPZignIycpXG4gIGNvbnN0IHF1ZXJ5SW5kZXggPSBwYXRoLmluZGV4T2YoJz8nKVxuICBjb25zdCBoYXNRdWVyeSA9IHF1ZXJ5SW5kZXggPiAtMSAmJiAoaGFzaEluZGV4IDwgMCB8fCBxdWVyeUluZGV4IDwgaGFzaEluZGV4KVxuXG4gIGlmIChoYXNRdWVyeSB8fCBoYXNoSW5kZXggPiAtMSkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXRobmFtZTogcGF0aC5zdWJzdHJpbmcoMCwgaGFzUXVlcnkgPyBxdWVyeUluZGV4IDogaGFzaEluZGV4KSxcbiAgICAgIHF1ZXJ5OiBoYXNRdWVyeVxuICAgICAgICA/IHBhdGguc3Vic3RyaW5nKHF1ZXJ5SW5kZXgsIGhhc2hJbmRleCA+IC0xID8gaGFzaEluZGV4IDogdW5kZWZpbmVkKVxuICAgICAgICA6ICcnLFxuICAgICAgaGFzaDogaGFzaEluZGV4ID4gLTEgPyBwYXRoLnNsaWNlKGhhc2hJbmRleCkgOiAnJyxcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBwYXRobmFtZTogcGF0aCwgcXVlcnk6ICcnLCBoYXNoOiAnJyB9XG59XG4iXSwibmFtZXMiOlsicGFyc2VQYXRoIiwicGF0aCIsImhhc2hJbmRleCIsImluZGV4T2YiLCJxdWVyeUluZGV4IiwiaGFzUXVlcnkiLCJwYXRobmFtZSIsInN1YnN0cmluZyIsInF1ZXJ5IiwidW5kZWZpbmVkIiwiaGFzaCIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js":
|
||
/*!***************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***!
|
||
\***************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQVNnQkE7OztlQUFBQTs7O3VDQVRVO0FBU25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBYztJQUN4RCxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUM1QixPQUFPO0lBQ1Q7SUFFQSxNQUFNLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVSDtJQUMvQixPQUFPRSxhQUFhRCxVQUFVQyxTQUFTRSxVQUFVLENBQUNILFNBQVM7QUFDN0QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBwYXRoIHN0YXJ0cyB3aXRoIGEgZ2l2ZW4gcHJlZml4LiBJdCBlbnN1cmVzIGl0IG1hdGNoZXNcbiAqIGV4YWN0bHkgd2l0aG91dCBjb250YWluaW5nIGV4dHJhIGNoYXJzLiBlLmcuIHByZWZpeCAvZG9jcyBzaG91bGQgcmVwbGFjZVxuICogZm9yIC9kb2NzLCAvZG9jcy8sIC9kb2NzL2EgYnV0IG5vdCAvZG9jc3NzXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBjaGVjayBhZ2FpbnN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aEhhc1ByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUgfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gcGF0aG5hbWUgPT09IHByZWZpeCB8fCBwYXRobmFtZS5zdGFydHNXaXRoKHByZWZpeCArICcvJylcbn1cbiJdLCJuYW1lcyI6WyJwYXRoSGFzUHJlZml4IiwicGF0aCIsInByZWZpeCIsInBhdGhuYW1lIiwicGFyc2VQYXRoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/querystring.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***!
|
||
\***********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n for (const [key, value] of searchParams.entries()){\n const existing = query[key];\n if (typeof existing === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n query[key] = [\n existing,\n value\n ];\n }\n }\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string') {\n return param;\n }\n if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)){\n if (Array.isArray(value)) {\n for (const item of value){\n searchParams.append(key, stringifyUrlQueryParam(item));\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value));\n }\n }\n return searchParams;\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 for (const searchParams of searchParamsList){\n for (const key of searchParams.keys()){\n target.delete(key);\n }\n for (const [key, value] of searchParams.entries()){\n target.append(key, value);\n }\n }\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdEZ0JBLE1BQU07ZUFBTkE7O0lBOUNBQyxzQkFBc0I7ZUFBdEJBOztJQWdDQUMsc0JBQXNCO2VBQXRCQTs7O0FBaENULFNBQVNELHVCQUNkRSxZQUE2QjtJQUU3QixNQUFNQyxRQUF3QixDQUFDO0lBQy9CLEtBQUssTUFBTSxDQUFDQyxLQUFLQyxNQUFNLElBQUlILGFBQWFJLE9BQU8sR0FBSTtRQUNqRCxNQUFNQyxXQUFXSixLQUFLLENBQUNDLElBQUk7UUFDM0IsSUFBSSxPQUFPRyxhQUFhLGFBQWE7WUFDbkNKLEtBQUssQ0FBQ0MsSUFBSSxHQUFHQztRQUNmLE9BQU8sSUFBSUcsTUFBTUMsT0FBTyxDQUFDRixXQUFXO1lBQ2xDQSxTQUFTRyxJQUFJLENBQUNMO1FBQ2hCLE9BQU87WUFDTEYsS0FBSyxDQUFDQyxJQUFJLEdBQUc7Z0JBQUNHO2dCQUFVRjthQUFNO1FBQ2hDO0lBQ0Y7SUFDQSxPQUFPRjtBQUNUO0FBRUEsU0FBU1EsdUJBQXVCQyxLQUFjO0lBQzVDLElBQUksT0FBT0EsVUFBVSxVQUFVO1FBQzdCLE9BQU9BO0lBQ1Q7SUFFQSxJQUNHLE9BQU9BLFVBQVUsWUFBWSxDQUFDQyxNQUFNRCxVQUNyQyxPQUFPQSxVQUFVLFdBQ2pCO1FBQ0EsT0FBT0UsT0FBT0Y7SUFDaEIsT0FBTztRQUNMLE9BQU87SUFDVDtBQUNGO0FBRU8sU0FBU1gsdUJBQXVCRSxLQUFxQjtJQUMxRCxNQUFNRCxlQUFlLElBQUlhO0lBQ3pCLEtBQUssTUFBTSxDQUFDWCxLQUFLQyxNQUFNLElBQUlXLE9BQU9WLE9BQU8sQ0FBQ0gsT0FBUTtRQUNoRCxJQUFJSyxNQUFNQyxPQUFPLENBQUNKLFFBQVE7WUFDeEIsS0FBSyxNQUFNWSxRQUFRWixNQUFPO2dCQUN4QkgsYUFBYWdCLE1BQU0sQ0FBQ2QsS0FBS08sdUJBQXVCTTtZQUNsRDtRQUNGLE9BQU87WUFDTGYsYUFBYWlCLEdBQUcsQ0FBQ2YsS0FBS08sdUJBQXVCTjtRQUMvQztJQUNGO0lBQ0EsT0FBT0g7QUFDVDtBQUVPLFNBQVNILE9BQ2RxQixNQUF1QjtJQUN2QixpQ0FBR0MsbUJBQUg7UUFBR0EsZ0JBQUFBLENBQUgsMkJBQXNDOztJQUV0QyxLQUFLLE1BQU1uQixnQkFBZ0JtQixpQkFBa0I7UUFDM0MsS0FBSyxNQUFNakIsT0FBT0YsYUFBYW9CLElBQUksR0FBSTtZQUNyQ0YsT0FBT0csTUFBTSxDQUFDbkI7UUFDaEI7UUFFQSxLQUFLLE1BQU0sQ0FBQ0EsS0FBS0MsTUFBTSxJQUFJSCxhQUFhSSxPQUFPLEdBQUk7WUFDakRjLE9BQU9GLE1BQU0sQ0FBQ2QsS0FBS0M7UUFDckI7SUFDRjtJQUVBLE9BQU9lO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShcbiAgc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXNcbik6IFBhcnNlZFVybFF1ZXJ5IHtcbiAgY29uc3QgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5ID0ge31cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2Ygc2VhcmNoUGFyYW1zLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gcXVlcnlba2V5XVxuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBxdWVyeVtrZXldID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpKSB7XG4gICAgICBleGlzdGluZy5wdXNoKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWVyeVtrZXldID0gW2V4aXN0aW5nLCB2YWx1ZV1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHF1ZXJ5XG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0ocGFyYW06IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHBhcmFtID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJhbVxuICB9XG5cbiAgaWYgKFxuICAgICh0eXBlb2YgcGFyYW0gPT09ICdudW1iZXInICYmICFpc05hTihwYXJhbSkpIHx8XG4gICAgdHlwZW9mIHBhcmFtID09PSAnYm9vbGVhbidcbiAgKSB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gJydcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhxdWVyeTogUGFyc2VkVXJsUXVlcnkpOiBVUkxTZWFyY2hQYXJhbXMge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocXVlcnkpKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0oaXRlbSkpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlYXJjaFBhcmFtcy5zZXQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHZhbHVlKSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNlYXJjaFBhcmFtc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKFxuICB0YXJnZXQ6IFVSTFNlYXJjaFBhcmFtcyxcbiAgLi4uc2VhcmNoUGFyYW1zTGlzdDogVVJMU2VhcmNoUGFyYW1zW11cbik6IFVSTFNlYXJjaFBhcmFtcyB7XG4gIGZvciAoY29uc3Qgc2VhcmNoUGFyYW1zIG9mIHNlYXJjaFBhcmFtc0xpc3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBzZWFyY2hQYXJhbXMua2V5cygpKSB7XG4gICAgICB0YXJnZXQuZGVsZXRlKGtleSlcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzZWFyY2hQYXJhbXMuZW50cmllcygpKSB7XG4gICAgICB0YXJnZXQuYXBwZW5kKGtleSwgdmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldFxufVxuIl0sIm5hbWVzIjpbImFzc2lnbiIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJrZXkiLCJ2YWx1ZSIsImVudHJpZXMiLCJleGlzdGluZyIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwicGFyYW0iLCJpc05hTiIsIlN0cmluZyIsIlVSTFNlYXJjaFBhcmFtcyIsIk9iamVjdCIsIml0ZW0iLCJhcHBlbmQiLCJzZXQiLCJ0YXJnZXQiLCJzZWFyY2hQYXJhbXNMaXN0Iiwia2V5cyIsImRlbGV0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js":
|
||
/*!*********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***!
|
||
\*********************************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("/**\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 */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0NBTUM7Ozs7dURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUFvQkMsS0FBYTtJQUMvQyxPQUFPQSxNQUFNQyxPQUFPLENBQUMsT0FBTyxPQUFPO0FBQ3JDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIGZvciBhIGdpdmVuIHJvdXRlIG9yIHBhZ2UgcGF0aC4gUHJlc2VydmVzIHRoZVxuICogcm9vdCBwYWdlLiBFeGFtcGxlczpcbiAqICAgLSBgL2Zvby9iYXIvYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9mb28vYmFyYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9gIC0+IGAvYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiByb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpIHx8ICcvJ1xufVxuIl0sIm5hbWVzIjpbInJlbW92ZVRyYWlsaW5nU2xhc2giLCJyb3V0ZSIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js":
|
||
/*!***********************************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.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 ROOT_SEGMENT_CACHE_KEY: function() {\n return ROOT_SEGMENT_CACHE_KEY;\n },\n ROOT_SEGMENT_REQUEST_KEY: function() {\n return ROOT_SEGMENT_REQUEST_KEY;\n },\n appendSegmentCacheKeyPart: function() {\n return appendSegmentCacheKeyPart;\n },\n appendSegmentRequestKeyPart: function() {\n return appendSegmentRequestKeyPart;\n },\n convertSegmentPathToStaticExportFilename: function() {\n return convertSegmentPathToStaticExportFilename;\n },\n createSegmentCacheKeyPart: function() {\n return createSegmentCacheKeyPart;\n },\n createSegmentRequestKeyPart: function() {\n return createSegmentRequestKeyPart;\n }\n});\nconst _segment = __webpack_require__(/*! ../segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst ROOT_SEGMENT_REQUEST_KEY = '';\nconst ROOT_SEGMENT_CACHE_KEY = '';\nfunction createSegmentRequestKeyPart(segment) {\n if (typeof segment === 'string') {\n if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n // The Flight Router State type sometimes includes the search params in\n // the page segment. However, the Segment Cache tracks this as a separate\n // key. So, we strip the search params here, and then add them back when\n // the cache entry is turned back into a FlightRouterState. This is an\n // unfortunate consequence of the FlightRouteState being used both as a\n // transport type and as a cache key; we'll address this once more of the\n // Segment Cache implementation has settled.\n // TODO: We should hoist the search params out of the FlightRouterState\n // type entirely, This is our plan for dynamic route params, too.\n return _segment.PAGE_SEGMENT_KEY;\n }\n const safeName = // But params typically don't include the leading slash. We should use\n // a different encoding to avoid this special case.\n segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment);\n // Since this is not a dynamic segment, it's fully encoded. It does not\n // need to be \"hydrated\" with a param value.\n return safeName;\n }\n const name = segment[0];\n const paramType = segment[2];\n const safeName = encodeToFilesystemAndURLSafeString(name);\n const encodedName = '$' + paramType + '$' + safeName;\n return encodedName;\n}\nfunction appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) {\n // Aside from being filesystem safe, segment keys are also designed so that\n // each segment and parallel route creates its own subdirectory. Roughly in\n // the same shape as the source app directory. This is mostly just for easier\n // debugging (you can open up the build folder and navigate the output); if\n // we wanted to do we could just use a flat structure.\n // Omit the parallel route key for children, since this is the most\n // common case. Saves some bytes (and it's what the app directory does).\n const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : \"@\" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + \"/\" + childRequestKeyPart;\n return parentRequestKey + '/' + slotKey;\n}\nfunction createSegmentCacheKeyPart(requestKeyPart, segment) {\n if (typeof segment === 'string') {\n return requestKeyPart;\n }\n const paramValue = segment[1];\n const safeValue = encodeToFilesystemAndURLSafeString(paramValue);\n return requestKeyPart + '$' + safeValue;\n}\nfunction appendSegmentCacheKeyPart(parentSegmentKey, parallelRouteKey, childCacheKeyPart) {\n const slotKey = parallelRouteKey === 'children' ? childCacheKeyPart : \"@\" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + \"/\" + childCacheKeyPart;\n return parentSegmentKey + '/' + slotKey;\n}\n// Define a regex pattern to match the most common characters found in a route\n// param. It excludes anything that might not be cross-platform filesystem\n// compatible, like |. It does not need to be precise because the fallback is to\n// just base64url-encode the whole parameter, which is fine; we just don't do it\n// by default for compactness, and for easier debugging.\nconst simpleParamValueRegex = /^[a-zA-Z0-9\\-_@]+$/;\nfunction encodeToFilesystemAndURLSafeString(value) {\n if (simpleParamValueRegex.test(value)) {\n return value;\n }\n // If there are any unsafe characters, base64url-encode the entire value.\n // We also add a ! prefix so it doesn't collide with the simple case.\n const base64url = btoa(value).replace(/\\+/g, '-') // Replace '+' with '-'\n .replace(/\\//g, '_') // Replace '/' with '_'\n .replace(/=+$/, '') // Remove trailing '='\n ;\n return '!' + base64url;\n}\nfunction convertSegmentPathToStaticExportFilename(segmentPath) {\n return \"__next\" + segmentPath.replace(/\\//g, '.') + \".txt\";\n} //# sourceMappingURL=segment-value-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9zZWdtZW50LXZhbHVlLWVuY29kaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVlhQSxzQkFBc0I7ZUFBdEJBOztJQURBQyx3QkFBd0I7ZUFBeEJBOztJQXVFR0MseUJBQXlCO2VBQXpCQTs7SUFoQ0FDLDJCQUEyQjtlQUEzQkE7O0lBZ0VBQyx3Q0FBd0M7ZUFBeENBOztJQTVDQUMseUJBQXlCO2VBQXpCQTs7SUF4REFDLDJCQUEyQjtlQUEzQkE7OztxQ0FkaUI7QUFXMUIsTUFBTUwsMkJBQTJCO0FBQ2pDLE1BQU1ELHlCQUF5QjtBQUUvQixTQUFTTSw0QkFDZEMsT0FBaUM7SUFFakMsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsSUFBSUEsUUFBUUMsVUFBVSxDQUFDQyxTQUFBQSxnQkFBZ0IsR0FBRztZQUN4Qyx1RUFBdUU7WUFDdkUseUVBQXlFO1lBQ3pFLHdFQUF3RTtZQUN4RSxzRUFBc0U7WUFDdEUsdUVBQXVFO1lBQ3ZFLHlFQUF5RTtZQUN6RSw0Q0FBNEM7WUFDNUMsdUVBQXVFO1lBQ3ZFLGlFQUFpRTtZQUNqRSxPQUFPQSxTQUFBQSxnQkFBZ0I7UUFDekI7UUFDQSxNQUFNQyxXQUNKLHFFQUFxRSxDQUNDO1FBQ3RFLG1EQUFtRDtRQUNuREgsWUFBWSxnQkFDUixlQUNBSSxtQ0FBbUNKO1FBQ3pDLHVFQUF1RTtRQUN2RSw0Q0FBNEM7UUFDNUMsT0FBT0c7SUFDVDtJQUVBLE1BQU1FLE9BQU9MLE9BQU8sQ0FBQyxFQUFFO0lBQ3ZCLE1BQU1NLFlBQVlOLE9BQU8sQ0FBQyxFQUFFO0lBQzVCLE1BQU1HLFdBQVdDLG1DQUFtQ0M7SUFFcEQsTUFBTUUsY0FBYyxNQUFNRCxZQUFZLE1BQU1IO0lBQzVDLE9BQU9JO0FBQ1Q7QUFFTyxTQUFTWCw0QkFDZFksZ0JBQW1DLEVBQ25DQyxnQkFBd0IsRUFDeEJDLG1CQUEwQztJQUUxQywyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDZFQUE2RTtJQUM3RSwyRUFBMkU7SUFDM0Usc0RBQXNEO0lBRXRELG1FQUFtRTtJQUNuRSx3RUFBd0U7SUFDeEUsTUFBTUMsVUFDSkYscUJBQXFCLGFBQ2pCQyxzQkFDQyxNQUFHTixtQ0FBbUNLLG9CQUFrQixNQUFHQztJQUNsRSxPQUFRRixtQkFBbUIsTUFBTUc7QUFDbkM7QUFFTyxTQUFTYiwwQkFDZGMsY0FBcUMsRUFDckNaLE9BQWlDO0lBRWpDLElBQUksT0FBT0EsWUFBWSxVQUFVO1FBQy9CLE9BQU9ZO0lBQ1Q7SUFDQSxNQUFNQyxhQUFhYixPQUFPLENBQUMsRUFBRTtJQUM3QixNQUFNYyxZQUFZVixtQ0FBbUNTO0lBQ3JELE9BQVFELGlCQUFpQixNQUFNRTtBQUNqQztBQUVPLFNBQVNuQiwwQkFDZG9CLGdCQUFpQyxFQUNqQ04sZ0JBQXdCLEVBQ3hCTyxpQkFBc0M7SUFFdEMsTUFBTUwsVUFDSkYscUJBQXFCLGFBQ2pCTyxvQkFDQyxNQUFHWixtQ0FBbUNLLG9CQUFrQixNQUFHTztJQUNsRSxPQUFRRCxtQkFBbUIsTUFBTUo7QUFDbkM7QUFFQSw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBQzFFLGdGQUFnRjtBQUNoRixnRkFBZ0Y7QUFDaEYsd0RBQXdEO0FBQ3hELE1BQU1NLHdCQUF3QjtBQUU5QixTQUFTYixtQ0FBbUNjLEtBQWE7SUFDdkQsSUFBSUQsc0JBQXNCRSxJQUFJLENBQUNELFFBQVE7UUFDckMsT0FBT0E7SUFDVDtJQUNBLHlFQUF5RTtJQUN6RSxxRUFBcUU7SUFDckUsTUFBTUUsWUFBWUMsS0FBS0gsT0FDcEJJLE9BQU8sQ0FBQyxPQUFPLEtBQUssdUJBQXVCO0tBQzNDQSxPQUFPLENBQUMsT0FBTyxLQUFLLHVCQUF1QjtLQUMzQ0EsT0FBTyxDQUFDLE9BQU8sSUFBSSxzQkFBc0I7O0lBQzVDLE9BQU8sTUFBTUY7QUFDZjtBQUVPLFNBQVN2Qix5Q0FDZDBCLFdBQW1CO0lBRW5CLE9BQVEsV0FBUUEsWUFBWUQsT0FBTyxDQUFDLE9BQU8sT0FBSztBQUNsRCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9zaGFyZWQvbGliL3NlZ21lbnQtY2FjaGUvc2VnbWVudC12YWx1ZS1lbmNvZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZIH0gZnJvbSAnLi4vc2VnbWVudCdcbmltcG9ydCB0eXBlIHsgU2VnbWVudCBhcyBGbGlnaHRSb3V0ZXJTdGF0ZVNlZ21lbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuLy8gVHlwZVNjcmlwdCB0cmljayB0byBzaW11bGF0ZSBvcGFxdWUgdHlwZXMsIGxpa2UgaW4gRmxvdy5cbnR5cGUgT3BhcXVlPEssIFQ+ID0gVCAmIHsgX19icmFuZDogSyB9XG5cbmV4cG9ydCB0eXBlIFNlZ21lbnRSZXF1ZXN0S2V5UGFydCA9IE9wYXF1ZTwnU2VnbWVudFJlcXVlc3RLZXlQYXJ0Jywgc3RyaW5nPlxuZXhwb3J0IHR5cGUgU2VnbWVudFJlcXVlc3RLZXkgPSBPcGFxdWU8J1NlZ21lbnRSZXF1ZXN0S2V5Jywgc3RyaW5nPlxuZXhwb3J0IHR5cGUgU2VnbWVudENhY2hlS2V5UGFydCA9IE9wYXF1ZTwnU2VnbWVudENhY2hlS2V5UGFydCcsIHN0cmluZz5cbmV4cG9ydCB0eXBlIFNlZ21lbnRDYWNoZUtleSA9IE9wYXF1ZTwnU2VnbWVudENhY2hlS2V5Jywgc3RyaW5nPlxuXG5leHBvcnQgY29uc3QgUk9PVF9TRUdNRU5UX1JFUVVFU1RfS0VZID0gJycgYXMgU2VnbWVudFJlcXVlc3RLZXlcbmV4cG9ydCBjb25zdCBST09UX1NFR01FTlRfQ0FDSEVfS0VZID0gJycgYXMgU2VnbWVudENhY2hlS2V5XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWdtZW50UmVxdWVzdEtleVBhcnQoXG4gIHNlZ21lbnQ6IEZsaWdodFJvdXRlclN0YXRlU2VnbWVudFxuKTogU2VnbWVudFJlcXVlc3RLZXlQYXJ0IHtcbiAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoUEFHRV9TRUdNRU5UX0tFWSkpIHtcbiAgICAgIC8vIFRoZSBGbGlnaHQgUm91dGVyIFN0YXRlIHR5cGUgc29tZXRpbWVzIGluY2x1ZGVzIHRoZSBzZWFyY2ggcGFyYW1zIGluXG4gICAgICAvLyB0aGUgcGFnZSBzZWdtZW50LiBIb3dldmVyLCB0aGUgU2VnbWVudCBDYWNoZSB0cmFja3MgdGhpcyBhcyBhIHNlcGFyYXRlXG4gICAgICAvLyBrZXkuIFNvLCB3ZSBzdHJpcCB0aGUgc2VhcmNoIHBhcmFtcyBoZXJlLCBhbmQgdGhlbiBhZGQgdGhlbSBiYWNrIHdoZW5cbiAgICAgIC8vIHRoZSBjYWNoZSBlbnRyeSBpcyB0dXJuZWQgYmFjayBpbnRvIGEgRmxpZ2h0Um91dGVyU3RhdGUuIFRoaXMgaXMgYW5cbiAgICAgIC8vIHVuZm9ydHVuYXRlIGNvbnNlcXVlbmNlIG9mIHRoZSBGbGlnaHRSb3V0ZVN0YXRlIGJlaW5nIHVzZWQgYm90aCBhcyBhXG4gICAgICAvLyB0cmFuc3BvcnQgdHlwZSBhbmQgYXMgYSBjYWNoZSBrZXk7IHdlJ2xsIGFkZHJlc3MgdGhpcyBvbmNlIG1vcmUgb2YgdGhlXG4gICAgICAvLyBTZWdtZW50IENhY2hlIGltcGxlbWVudGF0aW9uIGhhcyBzZXR0bGVkLlxuICAgICAgLy8gVE9ETzogV2Ugc2hvdWxkIGhvaXN0IHRoZSBzZWFyY2ggcGFyYW1zIG91dCBvZiB0aGUgRmxpZ2h0Um91dGVyU3RhdGVcbiAgICAgIC8vIHR5cGUgZW50aXJlbHksIFRoaXMgaXMgb3VyIHBsYW4gZm9yIGR5bmFtaWMgcm91dGUgcGFyYW1zLCB0b28uXG4gICAgICByZXR1cm4gUEFHRV9TRUdNRU5UX0tFWSBhcyBTZWdtZW50UmVxdWVzdEtleVBhcnRcbiAgICB9XG4gICAgY29uc3Qgc2FmZU5hbWUgPVxuICAgICAgLy8gVE9ETzogRmxpZ2h0Um91dGVyU3RhdGUgZW5jb2RlcyBOb3QgRm91bmQgcm91dGVzIGFzIFwiL19ub3QtZm91bmRcIi5cbiAgICAgIC8vIEJ1dCBwYXJhbXMgdHlwaWNhbGx5IGRvbid0IGluY2x1ZGUgdGhlIGxlYWRpbmcgc2xhc2guIFdlIHNob3VsZCB1c2VcbiAgICAgIC8vIGEgZGlmZmVyZW50IGVuY29kaW5nIHRvIGF2b2lkIHRoaXMgc3BlY2lhbCBjYXNlLlxuICAgICAgc2VnbWVudCA9PT0gJy9fbm90LWZvdW5kJ1xuICAgICAgICA/ICdfbm90LWZvdW5kJ1xuICAgICAgICA6IGVuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcoc2VnbWVudClcbiAgICAvLyBTaW5jZSB0aGlzIGlzIG5vdCBhIGR5bmFtaWMgc2VnbWVudCwgaXQncyBmdWxseSBlbmNvZGVkLiBJdCBkb2VzIG5vdFxuICAgIC8vIG5lZWQgdG8gYmUgXCJoeWRyYXRlZFwiIHdpdGggYSBwYXJhbSB2YWx1ZS5cbiAgICByZXR1cm4gc2FmZU5hbWUgYXMgU2VnbWVudFJlcXVlc3RLZXlQYXJ0XG4gIH1cblxuICBjb25zdCBuYW1lID0gc2VnbWVudFswXVxuICBjb25zdCBwYXJhbVR5cGUgPSBzZWdtZW50WzJdXG4gIGNvbnN0IHNhZmVOYW1lID0gZW5jb2RlVG9GaWxlc3lzdGVtQW5kVVJMU2FmZVN0cmluZyhuYW1lKVxuXG4gIGNvbnN0IGVuY29kZWROYW1lID0gJyQnICsgcGFyYW1UeXBlICsgJyQnICsgc2FmZU5hbWVcbiAgcmV0dXJuIGVuY29kZWROYW1lIGFzIFNlZ21lbnRSZXF1ZXN0S2V5UGFydFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kU2VnbWVudFJlcXVlc3RLZXlQYXJ0KFxuICBwYXJlbnRSZXF1ZXN0S2V5OiBTZWdtZW50UmVxdWVzdEtleSxcbiAgcGFyYWxsZWxSb3V0ZUtleTogc3RyaW5nLFxuICBjaGlsZFJlcXVlc3RLZXlQYXJ0OiBTZWdtZW50UmVxdWVzdEtleVBhcnRcbik6IFNlZ21lbnRSZXF1ZXN0S2V5IHtcbiAgLy8gQXNpZGUgZnJvbSBiZWluZyBmaWxlc3lzdGVtIHNhZmUsIHNlZ21lbnQga2V5cyBhcmUgYWxzbyBkZXNpZ25lZCBzbyB0aGF0XG4gIC8vIGVhY2ggc2VnbWVudCBhbmQgcGFyYWxsZWwgcm91dGUgY3JlYXRlcyBpdHMgb3duIHN1YmRpcmVjdG9yeS4gUm91Z2hseSBpblxuICAvLyB0aGUgc2FtZSBzaGFwZSBhcyB0aGUgc291cmNlIGFwcCBkaXJlY3RvcnkuIFRoaXMgaXMgbW9zdGx5IGp1c3QgZm9yIGVhc2llclxuICAvLyBkZWJ1Z2dpbmcgKHlvdSBjYW4gb3BlbiB1cCB0aGUgYnVpbGQgZm9sZGVyIGFuZCBuYXZpZ2F0ZSB0aGUgb3V0cHV0KTsgaWZcbiAgLy8gd2Ugd2FudGVkIHRvIGRvIHdlIGNvdWxkIGp1c3QgdXNlIGEgZmxhdCBzdHJ1Y3R1cmUuXG5cbiAgLy8gT21pdCB0aGUgcGFyYWxsZWwgcm91dGUga2V5IGZvciBjaGlsZHJlbiwgc2luY2UgdGhpcyBpcyB0aGUgbW9zdFxuICAvLyBjb21tb24gY2FzZS4gU2F2ZXMgc29tZSBieXRlcyAoYW5kIGl0J3Mgd2hhdCB0aGUgYXBwIGRpcmVjdG9yeSBkb2VzKS5cbiAgY29uc3Qgc2xvdEtleSA9XG4gICAgcGFyYWxsZWxSb3V0ZUtleSA9PT0gJ2NoaWxkcmVuJ1xuICAgICAgPyBjaGlsZFJlcXVlc3RLZXlQYXJ0XG4gICAgICA6IGBAJHtlbmNvZGVUb0ZpbGVzeXN0ZW1BbmRVUkxTYWZlU3RyaW5nKHBhcmFsbGVsUm91dGVLZXkpfS8ke2NoaWxkUmVxdWVzdEtleVBhcnR9YFxuICByZXR1cm4gKHBhcmVudFJlcXVlc3RLZXkgKyAnLycgKyBzbG90S2V5KSBhcyBTZWdtZW50UmVxdWVzdEtleVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VnbWVudENhY2hlS2V5UGFydChcbiAgcmVxdWVzdEtleVBhcnQ6IFNlZ21lbnRSZXF1ZXN0S2V5UGFydCxcbiAgc2VnbWVudDogRmxpZ2h0Um91dGVyU3RhdGVTZWdtZW50XG4pOiBTZWdtZW50Q2FjaGVLZXlQYXJ0IHtcbiAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiByZXF1ZXN0S2V5UGFydCBhcyBhbnkgYXMgU2VnbWVudENhY2hlS2V5UGFydFxuICB9XG4gIGNvbnN0IHBhcmFtVmFsdWUgPSBzZWdtZW50WzFdXG4gIGNvbnN0IHNhZmVWYWx1ZSA9IGVuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcocGFyYW1WYWx1ZSlcbiAgcmV0dXJuIChyZXF1ZXN0S2V5UGFydCArICckJyArIHNhZmVWYWx1ZSkgYXMgU2VnbWVudENhY2hlS2V5UGFydFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kU2VnbWVudENhY2hlS2V5UGFydChcbiAgcGFyZW50U2VnbWVudEtleTogU2VnbWVudENhY2hlS2V5LFxuICBwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmcsXG4gIGNoaWxkQ2FjaGVLZXlQYXJ0OiBTZWdtZW50Q2FjaGVLZXlQYXJ0XG4pOiBTZWdtZW50Q2FjaGVLZXkge1xuICBjb25zdCBzbG90S2V5ID1cbiAgICBwYXJhbGxlbFJvdXRlS2V5ID09PSAnY2hpbGRyZW4nXG4gICAgICA/IGNoaWxkQ2FjaGVLZXlQYXJ0XG4gICAgICA6IGBAJHtlbmNvZGVUb0ZpbGVzeXN0ZW1BbmRVUkxTYWZlU3RyaW5nKHBhcmFsbGVsUm91dGVLZXkpfS8ke2NoaWxkQ2FjaGVLZXlQYXJ0fWBcbiAgcmV0dXJuIChwYXJlbnRTZWdtZW50S2V5ICsgJy8nICsgc2xvdEtleSkgYXMgU2VnbWVudENhY2hlS2V5XG59XG5cbi8vIERlZmluZSBhIHJlZ2V4IHBhdHRlcm4gdG8gbWF0Y2ggdGhlIG1vc3QgY29tbW9uIGNoYXJhY3RlcnMgZm91bmQgaW4gYSByb3V0ZVxuLy8gcGFyYW0uIEl0IGV4Y2x1ZGVzIGFueXRoaW5nIHRoYXQgbWlnaHQgbm90IGJlIGNyb3NzLXBsYXRmb3JtIGZpbGVzeXN0ZW1cbi8vIGNvbXBhdGlibGUsIGxpa2UgfC4gSXQgZG9lcyBub3QgbmVlZCB0byBiZSBwcmVjaXNlIGJlY2F1c2UgdGhlIGZhbGxiYWNrIGlzIHRvXG4vLyBqdXN0IGJhc2U2NHVybC1lbmNvZGUgdGhlIHdob2xlIHBhcmFtZXRlciwgd2hpY2ggaXMgZmluZTsgd2UganVzdCBkb24ndCBkbyBpdFxuLy8gYnkgZGVmYXVsdCBmb3IgY29tcGFjdG5lc3MsIGFuZCBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbmNvbnN0IHNpbXBsZVBhcmFtVmFsdWVSZWdleCA9IC9eW2EtekEtWjAtOVxcLV9AXSskL1xuXG5mdW5jdGlvbiBlbmNvZGVUb0ZpbGVzeXN0ZW1BbmRVUkxTYWZlU3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcbiAgaWYgKHNpbXBsZVBhcmFtVmFsdWVSZWdleC50ZXN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG4gIC8vIElmIHRoZXJlIGFyZSBhbnkgdW5zYWZlIGNoYXJhY3RlcnMsIGJhc2U2NHVybC1lbmNvZGUgdGhlIGVudGlyZSB2YWx1ZS5cbiAgLy8gV2UgYWxzbyBhZGQgYSAhIHByZWZpeCBzbyBpdCBkb2Vzbid0IGNvbGxpZGUgd2l0aCB0aGUgc2ltcGxlIGNhc2UuXG4gIGNvbnN0IGJhc2U2NHVybCA9IGJ0b2EodmFsdWUpXG4gICAgLnJlcGxhY2UoL1xcKy9nLCAnLScpIC8vIFJlcGxhY2UgJysnIHdpdGggJy0nXG4gICAgLnJlcGxhY2UoL1xcLy9nLCAnXycpIC8vIFJlcGxhY2UgJy8nIHdpdGggJ18nXG4gICAgLnJlcGxhY2UoLz0rJC8sICcnKSAvLyBSZW1vdmUgdHJhaWxpbmcgJz0nXG4gIHJldHVybiAnIScgKyBiYXNlNjR1cmxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTZWdtZW50UGF0aFRvU3RhdGljRXhwb3J0RmlsZW5hbWUoXG4gIHNlZ21lbnRQYXRoOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIHJldHVybiBgX19uZXh0JHtzZWdtZW50UGF0aC5yZXBsYWNlKC9cXC8vZywgJy4nKX0udHh0YFxufVxuIl0sIm5hbWVzIjpbIlJPT1RfU0VHTUVOVF9DQUNIRV9LRVkiLCJST09UX1NFR01FTlRfUkVRVUVTVF9LRVkiLCJhcHBlbmRTZWdtZW50Q2FjaGVLZXlQYXJ0IiwiYXBwZW5kU2VnbWVudFJlcXVlc3RLZXlQYXJ0IiwiY29udmVydFNlZ21lbnRQYXRoVG9TdGF0aWNFeHBvcnRGaWxlbmFtZSIsImNyZWF0ZVNlZ21lbnRDYWNoZUtleVBhcnQiLCJjcmVhdGVTZWdtZW50UmVxdWVzdEtleVBhcnQiLCJzZWdtZW50Iiwic3RhcnRzV2l0aCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJzYWZlTmFtZSIsImVuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmciLCJuYW1lIiwicGFyYW1UeXBlIiwiZW5jb2RlZE5hbWUiLCJwYXJlbnRSZXF1ZXN0S2V5IiwicGFyYWxsZWxSb3V0ZUtleSIsImNoaWxkUmVxdWVzdEtleVBhcnQiLCJzbG90S2V5IiwicmVxdWVzdEtleVBhcnQiLCJwYXJhbVZhbHVlIiwic2FmZVZhbHVlIiwicGFyZW50U2VnbWVudEtleSIsImNoaWxkQ2FjaGVLZXlQYXJ0Iiwic2ltcGxlUGFyYW1WYWx1ZVJlZ2V4IiwidmFsdWUiLCJ0ZXN0IiwiYmFzZTY0dXJsIiwiYnRvYSIsInJlcGxhY2UiLCJzZWdtZW50UGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/segment.js":
|
||
/*!******************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/segment.js ***!
|
||
\******************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi9zZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/segment.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/server-reference-info.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/server-reference-info.js ***!
|
||
\********************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 extractInfoFromServerReferenceId: function() {\n return extractInfoFromServerReferenceId;\n },\n omitUnusedArgs: function() {\n return omitUnusedArgs;\n }\n});\nfunction extractInfoFromServerReferenceId(id) {\n const infoByte = parseInt(id.slice(0, 2), 16);\n const typeBit = infoByte >> 7 & 0x1;\n const argMask = infoByte >> 1 & 0x3f;\n const restArgs = infoByte & 0x1;\n const usedArgs = Array(6);\n for(let index = 0; index < 6; index++){\n const bitPosition = 5 - index;\n const bit = argMask >> bitPosition & 0x1;\n usedArgs[index] = bit === 1;\n }\n return {\n type: typeBit === 1 ? 'use-cache' : 'server-action',\n usedArgs: usedArgs,\n hasRestArgs: restArgs === 1\n };\n}\nfunction omitUnusedArgs(args, info) {\n const filteredArgs = new Array(args.length);\n for(let index = 0; index < args.length; index++){\n if (index < 6 && info.usedArgs[index] || // This assumes that the server reference info byte has the restArgs bit\n // set to 1 if there are more than 6 args.\n index >= 6 && info.hasRestArgs) {\n filteredArgs[index] = args[index];\n }\n }\n return filteredArgs;\n} //# sourceMappingURL=server-reference-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VydmVyLXJlZmVyZW5jZS1pbmZvLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTBCZ0JBLGdDQUFnQztlQUFoQ0E7O0lBaUNBQyxjQUFjO2VBQWRBOzs7QUFqQ1QsU0FBU0QsaUNBQ2RFLEVBQVU7SUFFVixNQUFNQyxXQUFXQyxTQUFTRixHQUFHRyxLQUFLLENBQUMsR0FBRyxJQUFJO0lBQzFDLE1BQU1DLFVBQVdILFlBQVksSUFBSztJQUNsQyxNQUFNSSxVQUFXSixZQUFZLElBQUs7SUFDbEMsTUFBTUssV0FBV0wsV0FBVztJQUM1QixNQUFNTSxXQUFXQyxNQUFNO0lBRXZCLElBQUssSUFBSUMsUUFBUSxHQUFHQSxRQUFRLEdBQUdBLFFBQVM7UUFDdEMsTUFBTUMsY0FBYyxJQUFJRDtRQUN4QixNQUFNRSxNQUFPTixXQUFXSyxjQUFlO1FBQ3ZDSCxRQUFRLENBQUNFLE1BQU0sR0FBR0UsUUFBUTtJQUM1QjtJQUVBLE9BQU87UUFDTEMsTUFBTVIsWUFBWSxJQUFJLGNBQWM7UUFDcENHLFVBQVVBO1FBUVZNLGFBQWFQLGFBQWE7SUFDNUI7QUFDRjtBQU1PLFNBQVNQLGVBQ2RlLElBQWUsRUFDZkMsSUFBeUI7SUFFekIsTUFBTUMsZUFBZSxJQUFJUixNQUFNTSxLQUFLRyxNQUFNO0lBRTFDLElBQUssSUFBSVIsUUFBUSxHQUFHQSxRQUFRSyxLQUFLRyxNQUFNLEVBQUVSLFFBQVM7UUFDaEQsSUFDR0EsUUFBUSxLQUFLTSxLQUFLUixRQUFRLENBQUNFLE1BQU0sSUFDbEMsd0VBQXdFO1FBQ3hFLDBDQUEwQztRQUN6Q0EsU0FBUyxLQUFLTSxLQUFLRixXQUFXLEVBQy9CO1lBQ0FHLFlBQVksQ0FBQ1AsTUFBTSxHQUFHSyxJQUFJLENBQUNMLE1BQU07UUFDbkM7SUFDRjtJQUVBLE9BQU9PO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qZXR0Y2hlbmcxMDE4L3NyYy9zaGFyZWQvbGliL3NlcnZlci1yZWZlcmVuY2UtaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNlcnZlclJlZmVyZW5jZUluZm8ge1xuICB0eXBlOiAnc2VydmVyLWFjdGlvbicgfCAndXNlLWNhY2hlJ1xuICB1c2VkQXJnczogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dXG4gIGhhc1Jlc3RBcmdzOiBib29sZWFuXG59XG5cbi8qKlxuICogRXh0cmFjdHMgaW5mbyBhYm91dCB0aGUgc2VydmVyIHJlZmVyZW5jZSBmb3IgdGhlIGdpdmVuIHNlcnZlciByZWZlcmVuY2UgSUQgYnlcbiAqIHBhcnNpbmcgdGhlIGZpcnN0IGJ5dGUgb2YgdGhlIGhleC1lbmNvZGVkIElELlxuICpcbiAqIGBgYFxuICogQml0IHBvc2l0aW9uczogWzddICAgICAgWzZdIFs1XSBbNF0gWzNdIFsyXSBbMV0gIFswXVxuICogQml0czogICAgICAgICAgdHlwZUJpdCAgYXJnTWFzayAgICAgICAgICAgICAgICAgIHJlc3RBcmdzXG4gKiBgYGBcbiAqXG4gKiBJZiB0aGUgYHR5cGVCaXRgIGlzIGAxYCB0aGUgc2VydmVyIHJlZmVyZW5jZSByZXByZXNlbnRzIGEgYFwidXNlIGNhY2hlXCJgXG4gKiBmdW5jdGlvbiwgb3RoZXJ3aXNlIGEgc2VydmVyIGFjdGlvbi5cbiAqXG4gKiBUaGUgYGFyZ01hc2tgIGVuY29kZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gdXNlcyB0aGUgYXJndW1lbnQgYXQgdGhlXG4gKiByZXNwZWN0aXZlIHBvc2l0aW9uLlxuICpcbiAqIFRoZSBgcmVzdEFyZ3NgIGJpdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gdXNlcyBhIHJlc3QgcGFyYW1ldGVyLiBJdCdzXG4gKiBhbHNvIHNldCB0byAxIGlmIHRoZSBmdW5jdGlvbiBoYXMgbW9yZSB0aGFuIDYgYXJncy5cbiAqXG4gKiBAcGFyYW0gaWQgaGV4LWVuY29kZWQgc2VydmVyIHJlZmVyZW5jZSBJRFxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEluZm9Gcm9tU2VydmVyUmVmZXJlbmNlSWQoXG4gIGlkOiBzdHJpbmdcbik6IFNlcnZlclJlZmVyZW5jZUluZm8ge1xuICBjb25zdCBpbmZvQnl0ZSA9IHBhcnNlSW50KGlkLnNsaWNlKDAsIDIpLCAxNilcbiAgY29uc3QgdHlwZUJpdCA9IChpbmZvQnl0ZSA+PiA3KSAmIDB4MVxuICBjb25zdCBhcmdNYXNrID0gKGluZm9CeXRlID4+IDEpICYgMHgzZlxuICBjb25zdCByZXN0QXJncyA9IGluZm9CeXRlICYgMHgxXG4gIGNvbnN0IHVzZWRBcmdzID0gQXJyYXkoNilcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgNjsgaW5kZXgrKykge1xuICAgIGNvbnN0IGJpdFBvc2l0aW9uID0gNSAtIGluZGV4XG4gICAgY29uc3QgYml0ID0gKGFyZ01hc2sgPj4gYml0UG9zaXRpb24pICYgMHgxXG4gICAgdXNlZEFyZ3NbaW5kZXhdID0gYml0ID09PSAxXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6IHR5cGVCaXQgPT09IDEgPyAndXNlLWNhY2hlJyA6ICdzZXJ2ZXItYWN0aW9uJyxcbiAgICB1c2VkQXJnczogdXNlZEFyZ3MgYXMgW1xuICAgICAgYm9vbGVhbixcbiAgICAgIGJvb2xlYW4sXG4gICAgICBib29sZWFuLFxuICAgICAgYm9vbGVhbixcbiAgICAgIGJvb2xlYW4sXG4gICAgICBib29sZWFuLFxuICAgIF0sXG4gICAgaGFzUmVzdEFyZ3M6IHJlc3RBcmdzID09PSAxLFxuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHNwYXJzZSBhcnJheSBjb250YWluaW5nIG9ubHkgdGhlIHVzZWQgYXJndW1lbnRzIGJhc2VkIG9uIHRoZVxuICogcHJvdmlkZWQgYWN0aW9uIGluZm8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbWl0VW51c2VkQXJncyhcbiAgYXJnczogdW5rbm93bltdLFxuICBpbmZvOiBTZXJ2ZXJSZWZlcmVuY2VJbmZvXG4pOiB1bmtub3duW10ge1xuICBjb25zdCBmaWx0ZXJlZEFyZ3MgPSBuZXcgQXJyYXkoYXJncy5sZW5ndGgpXG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFyZ3MubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgaWYgKFxuICAgICAgKGluZGV4IDwgNiAmJiBpbmZvLnVzZWRBcmdzW2luZGV4XSkgfHxcbiAgICAgIC8vIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSBzZXJ2ZXIgcmVmZXJlbmNlIGluZm8gYnl0ZSBoYXMgdGhlIHJlc3RBcmdzIGJpdFxuICAgICAgLy8gc2V0IHRvIDEgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiA2IGFyZ3MuXG4gICAgICAoaW5kZXggPj0gNiAmJiBpbmZvLmhhc1Jlc3RBcmdzKVxuICAgICkge1xuICAgICAgZmlsdGVyZWRBcmdzW2luZGV4XSA9IGFyZ3NbaW5kZXhdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZpbHRlcmVkQXJnc1xufVxuIl0sIm5hbWVzIjpbImV4dHJhY3RJbmZvRnJvbVNlcnZlclJlZmVyZW5jZUlkIiwib21pdFVudXNlZEFyZ3MiLCJpZCIsImluZm9CeXRlIiwicGFyc2VJbnQiLCJzbGljZSIsInR5cGVCaXQiLCJhcmdNYXNrIiwicmVzdEFyZ3MiLCJ1c2VkQXJncyIsIkFycmF5IiwiaW5kZXgiLCJiaXRQb3NpdGlvbiIsImJpdCIsInR5cGUiLCJoYXNSZXN0QXJncyIsImFyZ3MiLCJpbmZvIiwiZmlsdGVyZWRBcmdzIiwibGVuZ3RoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/server-reference-info.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/utils.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/utils.js ***!
|
||
\****************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"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 DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction 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 Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\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 Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb2FhQSxXQUFXO2VBQVhBOztJQW9CQUMsdUJBQXVCO2VBQXZCQTs7SUFQQUMsaUJBQWlCO2VBQWpCQTs7SUFaQUMsY0FBYztlQUFkQTs7SUFDQUMsaUJBQWlCO2VBQWpCQTs7SUFUQUMsRUFBRTtlQUFGQTs7SUFDQUMsRUFBRTtlQUFGQTs7SUFsWEFDLFVBQVU7ZUFBVkE7O0lBc1FHQyxRQUFRO2VBQVJBOztJQStCQUMsY0FBYztlQUFkQTs7SUFYQUMsaUJBQWlCO2VBQWpCQTs7SUFLQUMsTUFBTTtlQUFOQTs7SUFQSEMsYUFBYTtlQUFiQTs7SUFtQkdDLFNBQVM7ZUFBVEE7O0lBa0JNQyxtQkFBbUI7ZUFBbkJBOztJQWROQyx3QkFBd0I7ZUFBeEJBOztJQStHQUMsY0FBYztlQUFkQTs7O0FBOVpULE1BQU1ULGFBQWE7SUFBQztJQUFPO0lBQU87SUFBTztJQUFPO0lBQU87Q0FBTztBQXNROUQsU0FBU0MsU0FDZFMsRUFBSztJQUVMLElBQUlDLE9BQU87SUFDWCxJQUFJQztJQUVKLE9BQVE7eUNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1lBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztRQUNWLElBQUksQ0FBQ0YsTUFBTTtZQUNUQSxPQUFPO1lBQ1BDLFNBQVNGLE1BQU1HO1FBQ2pCO1FBQ0EsT0FBT0Q7SUFDVDtBQUNGO0FBRUEsMERBQTBEO0FBQzFELGdFQUFnRTtBQUNoRSxNQUFNRSxxQkFBcUI7QUFDcEIsTUFBTVQsZ0JBQWdCLENBQUNVLE1BQWdCRCxtQkFBbUJFLElBQUksQ0FBQ0Q7QUFFL0QsU0FBU1o7SUFDZCxNQUFNLEVBQUVjLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsT0FBT0MsUUFB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QUFJLENBQUM5QixJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNpQixPQUFPLEdBQUksa0NBQStCWTtJQUNqRDtBQUNGO0FBRU8sTUFBTTlELDBCQUEwQm1EO0lBQ3JDVSxZQUFZQyxJQUFZLEVBQUVaLE9BQWUsQ0FBRTtRQUN6QyxLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUksMENBQXVDWSxPQUFLLE1BQUdaO0lBQ2pFO0FBQ0Y7QUFFTyxNQUFNbkQsZ0NBQWdDb0Q7SUFFM0NVLGFBQWM7UUFDWixLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNiLE9BQU8sR0FBSTtJQUNsQjtBQUNGO0FBV08sU0FBU3BDLGVBQWVrRCxLQUFZO0lBQ3pDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUFFaEIsU0FBU2MsTUFBTWQsT0FBTztRQUFFaUIsT0FBT0gsTUFBTUcsS0FBSztJQUFDO0FBQ3JFIiwic291cmNlcyI6WyIvVXNlcnMvamV0dGNoZW5nMTAxOC9zcmMvc2hhcmVkL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4vaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRW52IH0gZnJvbSAnQG5leHQvZW52J1xuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ09NUElMRVJfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIGZzIGZyb20gJ2ZzJ1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQ29udGV4dCBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJbml0aWFsUHJvcHMgPSB7fSxcbiAgUHJvcHMgPSB7fSxcbj4gPSBDb21wb25lbnRUeXBlPFByb3BzPiAmIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGluaXRpYWwgcGFnZSBsb2FkIGRhdGEgcG9wdWxhdGlvbi4gRGF0YSByZXR1cm5lZCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgIGlzIHNlcmlhbGl6ZWQgd2hlbiBzZXJ2ZXIgcmVuZGVyZWQuXG4gICAqIE1ha2Ugc3VyZSB0byByZXR1cm4gcGxhaW4gYE9iamVjdGAgd2l0aG91dCB1c2luZyBgRGF0ZWAsIGBNYXBgLCBgU2V0YC5cbiAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQ29udGV4dCk6IEluaXRpYWxQcm9wcyB8IFByb21pc2U8SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wc1xuPlxuXG5leHBvcnQgdHlwZSBBcHBUeXBlPFAgPSB7fT4gPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIFAsXG4gIEFwcFByb3BzVHlwZTxhbnksIFA+XG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9WSVRBTFMgPSBbJ0NMUycsICdGQ1AnLCAnRklEJywgJ0lOUCcsICdMQ1AnLCAnVFRGQiddIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOZXh0V2ViVml0YWxzTWV0cmljID0ge1xuICBpZDogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIHZhbHVlOiBudW1iZXJcbiAgYXR0cmlidXRpb24/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbDogJ3dlYi12aXRhbCdcbiAgICAgIG5hbWU6ICh0eXBlb2YgV0VCX1ZJVEFMUylbbnVtYmVyXVxuICAgIH1cbiAgfCB7XG4gICAgICBsYWJlbDogJ2N1c3RvbSdcbiAgICAgIG5hbWU6XG4gICAgICAgIHwgJ05leHQuanMtaHlkcmF0aW9uJ1xuICAgICAgICB8ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInXG4gICAgICAgIHwgJ05leHQuanMtcmVuZGVyJ1xuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgRW5oYW5jZXI8Qz4gPSAoQ29tcG9uZW50OiBDKSA9PiBDXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHNFbmhhbmNlciA9XG4gIHwge1xuICAgICAgZW5oYW5jZUFwcD86IEVuaGFuY2VyPEFwcFR5cGU+XG4gICAgICBlbmhhbmNlQ29tcG9uZW50PzogRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG4gICAgfVxuICB8IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlUmVzdWx0ID0ge1xuICBodG1sOiBzdHJpbmdcbiAgaGVhZD86IEFycmF5PEpTWC5FbGVtZW50IHwgbnVsbD5cbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZSA9IChcbiAgb3B0aW9ucz86IENvbXBvbmVudHNFbmhhbmNlclxuKSA9PiBEb2N1bWVudEluaXRpYWxQcm9wcyB8IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcGFnZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBidWlsZElkOiBzdHJpbmdcbiAgYXNzZXRQcmVmaXg/OiBzdHJpbmdcbiAgcnVudGltZUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgbmV4dEV4cG9ydD86IGJvb2xlYW5cbiAgYXV0b0V4cG9ydD86IGJvb2xlYW5cbiAgaXNGYWxsYmFjaz86IGJvb2xlYW5cbiAgaXNFeHBlcmltZW50YWxDb21waWxlPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICBlcnI/OiBFcnJvciAmIHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyXG4gICAgc291cmNlPzogdHlwZW9mIENPTVBJTEVSX05BTUVTLnNlcnZlciB8IHR5cGVvZiBDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXG4gIH1cbiAgZ3NwPzogYm9vbGVhblxuICBnc3NwPzogYm9vbGVhblxuICBjdXN0b21TZXJ2ZXI/OiBib29sZWFuXG4gIGdpcD86IGJvb2xlYW5cbiAgYXBwR2lwPzogYm9vbGVhblxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgZG9tYWluTG9jYWxlcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdXG4gIHNjcmlwdExvYWRlcj86IGFueVtdXG4gIGlzUHJldmlldz86IGJvb2xlYW5cbiAgbm90Rm91bmRTcmNQYWdlPzogc3RyaW5nXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUNvbnRleHQge1xuICAvKipcbiAgICogRXJyb3Igb2JqZWN0IGlmIGVuY291bnRlcmVkIGR1cmluZyByZW5kZXJpbmdcbiAgICovXG4gIGVycj86IChFcnJvciAmIHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSB8IG51bGxcbiAgLyoqXG4gICAqIGBIVFRQYCByZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIHJlcT86IEluY29taW5nTWVzc2FnZVxuICAvKipcbiAgICogYEhUVFBgIHJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIC8qKlxuICAgKiBQYXRoIHNlY3Rpb24gb2YgYFVSTGAuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmcgc2VjdGlvbiBvZiBgVVJMYCBwYXJzZWQgYXMgYW4gb2JqZWN0LlxuICAgKi9cbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIC8qKlxuICAgKiBgU3RyaW5nYCBvZiB0aGUgYWN0dWFsIHBhdGggaW5jbHVkaW5nIHF1ZXJ5LlxuICAgKi9cbiAgYXNQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGVcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogQWxsIGNvbmZpZ3VyZWQgbG9jYWxlc1xuICAgKi9cbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBkZWZhdWx0IGxvY2FsZVxuICAgKi9cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8Um91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXI+ID0ge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dD5cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbiAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgcm91dGVyOiBSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcyA9IGFueT4gPSB7XG4gIHBhZ2VQcm9wczogUGFnZVByb3BzXG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUm91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXIsXG4gIFBhZ2VQcm9wcyA9IHt9LFxuPiA9IEFwcEluaXRpYWxQcm9wczxQYWdlUHJvcHM+ICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBhbnk+XG4gIHJvdXRlcjogUm91dGVyXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50Q29udGV4dCA9IE5leHRQYWdlQ29udGV4dCAmIHtcbiAgcmVuZGVyUGFnZTogUmVuZGVyUGFnZVxuICBkZWZhdWx0R2V0SW5pdGlhbFByb3BzKFxuICAgIGN0eDogRG9jdW1lbnRDb250ZXh0LFxuICAgIG9wdGlvbnM/OiB7IG5vbmNlPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT4gfCBKU1guRWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFByb3BzID0gRG9jdW1lbnRJbml0aWFsUHJvcHMgJiBIdG1sUHJvcHNcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXVxuICB9PlxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczogUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH0+XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBkcmFmdE1vZGU/OiBib29sZWFuXG5cbiAgcHJldmlldz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZXZpZXcgZGF0YSBzZXQgb24gdGhlIHJlcXVlc3QsIGlmIGFueVxuICAgKiAqL1xuICBwcmV2aWV3RGF0YT86IFByZXZpZXdEYXRhXG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8RGF0YSA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPERhdGE+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8RGF0YT5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFNldCBkcmFmdCBtb2RlXG4gICAqL1xuICBzZXREcmFmdE1vZGU6IChvcHRpb25zOiB7IGVuYWJsZTogYm9vbGVhbiB9KSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIHNldFByZXZpZXdEYXRhOiAoXG4gICAgZGF0YTogb2JqZWN0IHwgc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIChpbiBzZWNvbmRzKSBmb3IgdGhlIHByZXZpZXcgc2Vzc2lvbiB0byBsYXN0IGZvci5cbiAgICAgICAqIFRoZSBnaXZlbiBudW1iZXIgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBieSByb3VuZGluZyBkb3duLlxuICAgICAgICogQnkgZGVmYXVsdCwgbm8gbWF4aW11bSBhZ2UgaXMgc2V0IGFuZCB0aGUgcHJldmlldyBzZXNzaW9uIGZpbmlzaGVzXG4gICAgICAgKiB3aGVuIHRoZSBjbGllbnQgc2h1dHMgZG93biAoYnJvd3NlciBpcyBjbG9zZWQpLlxuICAgICAgICovXG4gICAgICBtYXhBZ2U/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBwYXRoIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIHdvcmsgdW5kZXIuIEJ5IGRlZmF1bHQsXG4gICAgICAgKiB0aGUgcGF0aCBpcyBjb25zaWRlcmVkIHRoZSBcImRlZmF1bHQgcGF0aFwiLCBpLmUuLCBhbnkgcGFnZXMgdW5kZXIgXCIvXCIuXG4gICAgICAgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmdcbiAgICB9XG4gICkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIENsZWFyIHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIGNsZWFyUHJldmlld0RhdGE6IChvcHRpb25zPzogeyBwYXRoPzogc3RyaW5nIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIGEgc3BlY2lmaWMgcGFnZSBhbmQgcmVnZW5lcmF0ZSBpdCB1c2luZyBPbi1EZW1hbmQgSW5jcmVtZW50YWxcbiAgICogU3RhdGljIFJlZ2VuZXJhdGlvbi5cbiAgICogVGhlIHBhdGggc2hvdWxkIGJlIGFuIGFjdHVhbCBwYXRoLCBub3QgYSByZXdyaXR0ZW4gcGF0aC4gRS5nLiBmb3JcbiAgICogXCIvYmxvZy9bc2x1Z11cIiB0aGlzIHNob3VsZCBiZSBcIi9ibG9nL3Bvc3QtMVwiLlxuICAgKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb24jb24tZGVtYW5kLXJldmFsaWRhdGlvbi13aXRoLXJldmFsaWRhdGVwYXRoXG4gICAqL1xuICByZXZhbGlkYXRlOiAoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICB1bnN0YWJsZV9vbmx5R2VuZXJhdGVkPzogYm9vbGVhblxuICAgIH1cbiAgKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSBoYW5kbGVyXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlIYW5kbGVyPFQgPSBhbnk+ID0gKFxuICByZXE6IE5leHRBcGlSZXF1ZXN0LFxuICByZXM6IE5leHRBcGlSZXNwb25zZTxUPlxuKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPlxuXG4vKipcbiAqIFV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjT25jZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBSZXR1cm5UeXBlPFQ+PihcbiAgZm46IFRcbik6IFQge1xuICBsZXQgdXNlZCA9IGZhbHNlXG4gIGxldCByZXN1bHQ6IFJldHVyblR5cGU8VD5cblxuICByZXR1cm4gKCguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICghdXNlZCkge1xuICAgICAgdXNlZCA9IHRydWVcbiAgICAgIHJlc3VsdCA9IGZuKC4uLmFyZ3MpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfSkgYXMgVFxufVxuXG4vLyBTY2hlbWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG4vLyBBYnNvbHV0ZSBVUkw6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tNC4zXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi9cbmV4cG9ydCBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiBBQlNPTFVURV9VUkxfUkVHRVgudGVzdCh1cmwpXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF1cblxuICByZXR1cm4gKFxuICAgIHVybE5vUXVlcnlcbiAgICAgIC8vIGZpcnN0IHdlIHJlcGxhY2UgYW55IG5vbi1lbmNvZGVkIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZFxuICAgICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvXFwvKy9nLCAnLycpICtcbiAgICAodXJsUGFydHNbMV0gPyBgPyR7dXJsUGFydHMuc2xpY2UoMSkuam9pbignPycpfWAgOiAnJylcbiAgKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdldEluaXRpYWxQcm9wczxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge30sXG4+KEFwcDogTmV4dENvbXBvbmVudFR5cGU8QywgSVAsIFA+LCBjdHg6IEMpOiBQcm9taXNlPElQPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKEFwcC5wcm90b3R5cGU/LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgIEFwcFxuICAgICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICB9XG4gIH1cbiAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxuICBjb25zdCByZXMgPSBjdHgucmVzIHx8IChjdHguY3R4ICYmIGN0eC5jdHgucmVzKVxuXG4gIGlmICghQXBwLmdldEluaXRpYWxQcm9wcykge1xuICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhZ2VQcm9wczogYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LCBjdHguY3R4KSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9IGFzIElQXG4gIH1cblxuICBjb25zdCBwcm9wcyA9IGF3YWl0IEFwcC5nZXRJbml0aWFsUHJvcHMoY3R4KVxuXG4gIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgIEFwcFxuICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYFxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBBcHBcbiAgICAgICAgKX0gcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0IGZyb20gXFxgZ2V0SW5pdGlhbFByb3BzXFxgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNgXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIChbJ21hcmsnLCAnbWVhc3VyZScsICdnZXRFbnRyaWVzQnlOYW1lJ10gYXMgY29uc3QpLmV2ZXJ5KFxuICAgIChtZXRob2QpID0+IHR5cGVvZiBwZXJmb3JtYW5jZVttZXRob2RdID09PSAnZnVuY3Rpb24nXG4gIClcblxuZXhwb3J0IGNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVFcnJvciBleHRlbmRzIEVycm9yIHt9XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvZGUgPSAnRU5PRU5UJ1xuICAgIHRoaXMubmFtZSA9ICdQYWdlTm90Rm91bmRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiAke3BhZ2V9YFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nU3RhdGljUGFnZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5tZXNzYWdlID0gYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAke3BhZ2V9ICR7bWVzc2FnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5tZXNzYWdlID0gYENhbm5vdCBmaW5kIHRoZSBtaWRkbGV3YXJlIG1vZHVsZWBcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlRnMge1xuICBleGlzdHNTeW5jOiB0eXBlb2YgZnMuZXhpc3RzU3luY1xuICByZWFkRmlsZTogdHlwZW9mIGZzLnByb21pc2VzLnJlYWRGaWxlXG4gIHJlYWRGaWxlU3luYzogdHlwZW9mIGZzLnJlYWRGaWxlU3luY1xuICB3cml0ZUZpbGUoZjogc3RyaW5nLCBkOiBhbnkpOiBQcm9taXNlPHZvaWQ+XG4gIG1rZGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkIHwgc3RyaW5nPlxuICBzdGF0KGY6IHN0cmluZyk6IFByb21pc2U8eyBtdGltZTogRGF0ZSB9PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9KVxufVxuIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/utils/error-once.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/utils/error-once.js ***!
|
||
\***************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"errorOnce\", ({\n enumerable: true,\n get: function() {\n return errorOnce;\n }\n}));\nlet errorOnce = (_)=>{};\nif (true) {\n const errors = new Set();\n errorOnce = (msg)=>{\n if (!errors.has(msg)) {\n console.error(msg);\n }\n errors.add(msg);\n };\n} //# sourceMappingURL=error-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvZXJyb3Itb25jZS5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQVdTQTs7O2VBQUFBOzs7QUFYVCxJQUFJQSxZQUFZLENBQUNDLEtBQWU7QUFDaEMsSUFBSUMsSUFBb0IsRUFBbUI7SUFDekMsTUFBTUcsU0FBUyxJQUFJQztJQUNuQk4sWUFBWSxDQUFDTztRQUNYLElBQUksQ0FBQ0YsT0FBT0csR0FBRyxDQUFDRCxNQUFNO1lBQ3BCRSxRQUFRQyxLQUFLLENBQUNIO1FBQ2hCO1FBQ0FGLE9BQU9NLEdBQUcsQ0FBQ0o7SUFDYjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvdXRpbHMvZXJyb3Itb25jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgZXJyb3JPbmNlID0gKF86IHN0cmluZykgPT4ge31cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGNvbnN0IGVycm9ycyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGVycm9yT25jZSA9IChtc2c6IHN0cmluZykgPT4ge1xuICAgIGlmICghZXJyb3JzLmhhcyhtc2cpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKG1zZylcbiAgICB9XG4gICAgZXJyb3JzLmFkZChtc2cpXG4gIH1cbn1cblxuZXhwb3J0IHsgZXJyb3JPbmNlIH1cbiJdLCJuYW1lcyI6WyJlcnJvck9uY2UiLCJfIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyb3JzIiwiU2V0IiwibXNnIiwiaGFzIiwiY29uc29sZSIsImVycm9yIiwiYWRkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils/error-once.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js":
|
||
/*!******************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/utils/reflect-utils.js ***!
|
||
\******************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\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 describeHasCheckingStringProperty: function() {\n return describeHasCheckingStringProperty;\n },\n describeStringPropertyAccess: function() {\n return describeStringPropertyAccess;\n },\n wellKnownProperties: function() {\n return wellKnownProperties;\n }\n});\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\nfunction describeStringPropertyAccess(target, prop) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return \"`\" + target + \".\" + prop + \"`\";\n }\n return \"`\" + target + \"[\" + JSON.stringify(prop) + \"]`\";\n}\nfunction describeHasCheckingStringProperty(target, prop) {\n const stringifiedProp = JSON.stringify(prop);\n return \"`Reflect.has(\" + target + \", \" + stringifiedProp + \")`, `\" + stringifiedProp + \" in \" + target + \"`, or similar\";\n}\nconst wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n // Promise prototype\n // fallthrough\n 'then',\n 'catch',\n 'finally',\n // React Promise extension\n // fallthrough\n 'status',\n // React introspection\n 'displayName',\n '_debugInfo',\n // Common tested properties\n // fallthrough\n 'toJSON',\n '$$typeof',\n '__esModule'\n]); //# sourceMappingURL=reflect-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2RUFBNkU7QUFDN0UsaUZBQWlGO0FBQ2pGLDBGQUEwRjtBQUMxRix1RkFBdUY7QUFDdkYsMkRBQTJEOzs7Ozs7Ozs7Ozs7O0lBVTNDQSxpQ0FBaUM7ZUFBakNBOztJQVBBQyw0QkFBNEI7ZUFBNUJBOztJQWVIQyxtQkFBbUI7ZUFBbkJBOzs7QUFqQmIsTUFBTUMsK0JBQStCO0FBRTlCLFNBQVNGLDZCQUE2QkcsTUFBYyxFQUFFQyxJQUFZO0lBQ3ZFLElBQUlGLDZCQUE2QkcsSUFBSSxDQUFDRCxPQUFPO1FBQzNDLE9BQVEsTUFBSUQsU0FBTyxNQUFHQyxPQUFLO0lBQzdCO0lBQ0EsT0FBUSxNQUFJRCxTQUFPLE1BQUdHLEtBQUtDLFNBQVMsQ0FBQ0gsUUFBTTtBQUM3QztBQUVPLFNBQVNMLGtDQUNkSSxNQUFjLEVBQ2RDLElBQVk7SUFFWixNQUFNSSxrQkFBa0JGLEtBQUtDLFNBQVMsQ0FBQ0g7SUFDdkMsT0FBUSxrQkFBZ0JELFNBQU8sT0FBSUssa0JBQWdCLFVBQVNBLGtCQUFnQixTQUFNTCxTQUFPO0FBQzNGO0FBRU8sTUFBTUYsc0JBQXNCLElBQUlRLElBQUk7SUFDekM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUEsb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZDtJQUNBO0lBQ0E7SUFFQSwwQkFBMEI7SUFDMUIsY0FBYztJQUNkO0lBRUEsc0JBQXNCO0lBQ3RCO0lBQ0E7SUFFQSwyQkFBMkI7SUFDM0IsY0FBYztJQUNkO0lBQ0E7SUFDQTtDQUNEIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIHJlZ2V4IHdpbGwgaGF2ZSBmYXN0IG5lZ2F0aXZlcyBtZWFuaW5nIHZhbGlkIGlkZW50aWZpZXJzIG1heSBub3QgcGFzc1xuLy8gdGhpcyB0ZXN0LiBIb3dldmVyIHRoaXMgaXMgb25seSB1c2VkIGR1cmluZyBzdGF0aWMgZ2VuZXJhdGlvbiB0byBwcm92aWRlIGhpbnRzXG4vLyBhYm91dCB3aHkgYSBwYWdlIGJhaWxlZCBvdXQgb2Ygc29tZSBvciBhbGwgcHJlcmVuZGVyaW5nIGFuZCB3ZSBjYW4gdXNlIGJyYWNrZXQgbm90YXRpb25cbi8vIGZvciBleGFtcGxlIHdoaWxlIGDgsqBf4LKgYCBpcyBhIHZhbGlkIGlkZW50aWZpZXIgaXQncyBvayB0byBwcmludCBgc2VhcmNoUGFyYW1zWyfgsqBf4LKgJ11gXG4vLyBldmVuIGlmIHRoaXMgd291bGQgaGF2ZSBiZWVuIGZpbmUgdG9vIGBzZWFyY2hQYXJhbXMu4LKgX+CyoGBcbmNvbnN0IGlzRGVmaW5pdGVseUFWYWxpZElkZW50aWZpZXIgPSAvXltBLVphLXpfJF1bQS1aYS16MC05XyRdKiQvXG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKHRhcmdldDogc3RyaW5nLCBwcm9wOiBzdHJpbmcpIHtcbiAgaWYgKGlzRGVmaW5pdGVseUFWYWxpZElkZW50aWZpZXIudGVzdChwcm9wKSkge1xuICAgIHJldHVybiBgXFxgJHt0YXJnZXR9LiR7cHJvcH1cXGBgXG4gIH1cbiAgcmV0dXJuIGBcXGAke3RhcmdldH1bJHtKU09OLnN0cmluZ2lmeShwcm9wKX1dXFxgYFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KFxuICB0YXJnZXQ6IHN0cmluZyxcbiAgcHJvcDogc3RyaW5nXG4pIHtcbiAgY29uc3Qgc3RyaW5naWZpZWRQcm9wID0gSlNPTi5zdHJpbmdpZnkocHJvcClcbiAgcmV0dXJuIGBcXGBSZWZsZWN0Lmhhcygke3RhcmdldH0sICR7c3RyaW5naWZpZWRQcm9wfSlcXGAsIFxcYCR7c3RyaW5naWZpZWRQcm9wfSBpbiAke3RhcmdldH1cXGAsIG9yIHNpbWlsYXJgXG59XG5cbmV4cG9ydCBjb25zdCB3ZWxsS25vd25Qcm9wZXJ0aWVzID0gbmV3IFNldChbXG4gICdoYXNPd25Qcm9wZXJ0eScsXG4gICdpc1Byb3RvdHlwZU9mJyxcbiAgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcbiAgJ3RvU3RyaW5nJyxcbiAgJ3ZhbHVlT2YnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuXG4gIC8vIFByb21pc2UgcHJvdG90eXBlXG4gIC8vIGZhbGx0aHJvdWdoXG4gICd0aGVuJyxcbiAgJ2NhdGNoJyxcbiAgJ2ZpbmFsbHknLFxuXG4gIC8vIFJlYWN0IFByb21pc2UgZXh0ZW5zaW9uXG4gIC8vIGZhbGx0aHJvdWdoXG4gICdzdGF0dXMnLFxuXG4gIC8vIFJlYWN0IGludHJvc3BlY3Rpb25cbiAgJ2Rpc3BsYXlOYW1lJyxcbiAgJ19kZWJ1Z0luZm8nLFxuXG4gIC8vIENvbW1vbiB0ZXN0ZWQgcHJvcGVydGllc1xuICAvLyBmYWxsdGhyb3VnaFxuICAndG9KU09OJyxcbiAgJyQkdHlwZW9mJyxcbiAgJ19fZXNNb2R1bGUnLFxuXSlcbiJdLCJuYW1lcyI6WyJkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkiLCJkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzIiwid2VsbEtub3duUHJvcGVydGllcyIsImlzRGVmaW5pdGVseUFWYWxpZElkZW50aWZpZXIiLCJ0YXJnZXQiLCJwcm9wIiwidGVzdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdHJpbmdpZmllZFByb3AiLCJTZXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\n");
|
||
|
||
/***/ }),
|
||
|
||
/***/ "(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js":
|
||
/*!**************************************************************!*\
|
||
!*** ./node_modules/next/dist/shared/lib/utils/warn-once.js ***!
|
||
\**************************************************************/
|
||
/***/ ((__unused_webpack_module, exports) => {
|
||
|
||
"use strict";
|
||
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"warnOnce\", ({\n enumerable: true,\n get: function() {\n return warnOnce;\n }\n}));\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} //# sourceMappingURL=warn-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NENBV1NBOzs7ZUFBQUE7OztBQVhULElBQUlBLFdBQVcsQ0FBQ0MsS0FBZTtBQUMvQixJQUFJQyxJQUFvQixFQUFtQjtJQUN6QyxNQUFNRyxXQUFXLElBQUlDO0lBQ3JCTixXQUFXLENBQUNPO1FBQ1YsSUFBSSxDQUFDRixTQUFTRyxHQUFHLENBQUNELE1BQU07WUFDdEJFLFFBQVFDLElBQUksQ0FBQ0g7UUFDZjtRQUNBRixTQUFTTSxHQUFHLENBQUNKO0lBQ2Y7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9zaGFyZWQvbGliL3V0aWxzL3dhcm4tb25jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgd2Fybk9uY2UgPSAoXzogc3RyaW5nKSA9PiB7fVxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3Qgd2FybmluZ3MgPSBuZXcgU2V0PHN0cmluZz4oKVxuICB3YXJuT25jZSA9IChtc2c6IHN0cmluZykgPT4ge1xuICAgIGlmICghd2FybmluZ3MuaGFzKG1zZykpIHtcbiAgICAgIGNvbnNvbGUud2Fybihtc2cpXG4gICAgfVxuICAgIHdhcm5pbmdzLmFkZChtc2cpXG4gIH1cbn1cblxuZXhwb3J0IHsgd2Fybk9uY2UgfVxuIl0sIm5hbWVzIjpbIndhcm5PbmNlIiwiXyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIndhcm5pbmdzIiwiU2V0IiwibXNnIiwiaGFzIiwiY29uc29sZSIsIndhcm4iLCJhZGQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\n");
|
||
|
||
/***/ })
|
||
|
||
};
|
||
; |